Merge branch 'feat/x8' into feat/xwayland-builtin
29 files · +3797 -2972
M Makefile +1 -1
| @@ -70,7 +70,7 @@ adapter-imports: | |||
| 70 | 70 | [ -z "$$bad" ] || { echo "$$bad"; echo 'adapter imports another adapter: use ports or a shared library (Makefile ADAPTER_LIBS)' >&2; exit 1; } | |
| 71 | 71 | # Fast, mandatory guards for tiled content publications and SHM copies. | |
| 72 | 72 | perf-check: | |
| 73 | - | CGO_ENABLED=0 go test ./internal/core ./internal/app ./internal/adapters/drm ./internal/adapters/headless ./internal/adapters/vulkan ./internal/adapters/wayland ./internal/adapters/outputkit/capture ./internal/adapters/screencast ./internal/adapters/wayland/xwm -run '^(TestAnimateAllocations|TestPublishAllocations|TestPublishSubscribersAllocations|TestPublishStashSlideAllocations|TestPublishOverviewAllocations|TestPublishLeavingAllocations|TestOutputRoutingAllocations|TestReportSeenAllocations|TestFrameLifecycleTransitionsAllocations|TestFullscreenShownAllocations|TestFrameDecisionAllocations|TestCommitFrameAllocations|TestColorPipelineAllocations|TestShownBySnapshotAllocations|TestFlipShowsAllocations|TestMRUNoteFocusDoesNotAllocateWhenSettled|TestDueFramesAllocations|TestRenderSteadyStateAllocations|TestRenderSteadyStateDMABufAllocations|TestSceneOpaqueRegionAllocations|TestSceneDeltaAllocations|TestAccountFlipAllocations|TestFlipDoneAllocations|TestSceneWalkUnchangedTiledSHM|TestTiledCommitPublishAllocations|TestCapturedCommitApplyAllocations|TestCapturedViewportApplyAllocations|TestEffectiveInputEmptyTreeAllocations|TestHeadlessTiledSHMCallbackAndCopyBudget|TestReleaseHeldAllocations|TestCommitDamageAllocations|TestEmitContentAllocations|TestPresentationPushAllocations|TestAnimatingFrameSendAllocations|TestContentBatchCycleAllocations|TestWriteMappedAllocations|TestCapturedForwardAllocations|TestCommandForwardAllocations|TestOutboxQueuedDeliveryAllocations|TestCastFrameAllocations|TestCastProducerAllocations|TestCaptureCycleAllocations|TestLogScenesAllocations|TestOverviewNamedRowsAllocations|TestBufferContentAllocations|TestDueFramesFireScratch|TestRetireSemaphoreAllocatesNothing|TestTableLookupAllocations|TestTableInsertRemoveAllocations|TestPropertyUnchangedAllocations|TestDispatchAllocations|TestConfigureFlushAllocations|TestFocusAllocations|TestSpaceAllocations|TestUnmanagedGeometryAllocations|TestFocusInUnmanagedAllocations|TestUnmanagedPublishAllocations|TestUnmanagedHitAllocations|TestOverrideMovedUnchangedAllocations)$$' -count=1 | |
| 73 | + | CGO_ENABLED=0 go test ./internal/core ./internal/app ./internal/adapters/drm ./internal/adapters/headless ./internal/adapters/vulkan ./internal/adapters/wayland ./internal/adapters/outputkit/capture ./internal/adapters/screencast ./internal/adapters/wayland/xwm -run '^(TestAnimateAllocations|TestPublishAllocations|TestPublishSubscribersAllocations|TestPublishStashSlideAllocations|TestPublishOverviewAllocations|TestPublishLeavingAllocations|TestOutputRoutingAllocations|TestReportSeenAllocations|TestFrameLifecycleTransitionsAllocations|TestFullscreenShownAllocations|TestFrameDecisionAllocations|TestCommitFrameAllocations|TestColorPipelineAllocations|TestShownBySnapshotAllocations|TestFlipShowsAllocations|TestMRUNoteFocusDoesNotAllocateWhenSettled|TestDueFramesAllocations|TestRenderSteadyStateAllocations|TestRenderSteadyStateDMABufAllocations|TestSceneOpaqueRegionAllocations|TestSceneDeltaAllocations|TestAccountFlipAllocations|TestFlipDoneAllocations|TestSceneWalkUnchangedTiledSHM|TestTiledCommitPublishAllocations|TestCapturedCommitApplyAllocations|TestCapturedViewportApplyAllocations|TestEffectiveInputEmptyTreeAllocations|TestHeadlessTiledSHMCallbackAndCopyBudget|TestReleaseHeldAllocations|TestCommitDamageAllocations|TestEmitContentAllocations|TestPresentationPushAllocations|TestAnimatingFrameSendAllocations|TestContentBatchCycleAllocations|TestWriteMappedAllocations|TestCapturedForwardAllocations|TestCommandForwardAllocations|TestOutboxQueuedDeliveryAllocations|TestCastFrameAllocations|TestCastProducerAllocations|TestCaptureCycleAllocations|TestLogScenesAllocations|TestOverviewNamedRowsAllocations|TestBufferContentAllocations|TestDueFramesFireScratch|TestRetireSemaphoreAllocatesNothing|TestTableLookupAllocations|TestTableInsertRemoveAllocations|TestPropertyUnchangedAllocations|TestDispatchAllocations|TestConfigureFlushAllocations|TestFocusAllocations|TestSpaceAllocations|TestUnmanagedGeometryAllocations|TestFocusInUnmanagedAllocations|TestUnmanagedPublishAllocations|TestUnmanagedHitAllocations|TestOverrideMovedUnchangedAllocations|TestFullscreenConfigureAllocations|TestKeyboardGrabSyncAllocations)$$' -count=1 | |
| 74 | 74 | CGO_ENABLED=0 go test -tags xturbo_poison ./internal/adapters/wayland/xwm -count=1 | |
| 75 | 75 | check: vet test arch fakes-check log-check perf-check | |
| 76 | 76 | ||
| @@ -70,7 +70,7 @@ adapter-imports: | |||||
| 70 | [ -z "$$bad" ] || { echo "$$bad"; echo 'adapter imports another adapter: use ports or a shared library (Makefile ADAPTER_LIBS)' >&2; exit 1; } | 70 | [ -z "$$bad" ] || { echo "$$bad"; echo 'adapter imports another adapter: use ports or a shared library (Makefile ADAPTER_LIBS)' >&2; exit 1; } | ||
| 71 | # Fast, mandatory guards for tiled content publications and SHM copies. | 71 | # Fast, mandatory guards for tiled content publications and SHM copies. | ||
| 72 | perf-check: | 72 | perf-check: | ||
| 73 | - | CGO_ENABLED=0 go test ./internal/core ./internal/app ./internal/adapters/drm ./internal/adapters/headless ./internal/adapters/vulkan ./internal/adapters/wayland ./internal/adapters/outputkit/capture ./internal/adapters/screencast ./internal/adapters/wayland/xwm -run '^(TestAnimateAllocations|TestPublishAllocations|TestPublishSubscribersAllocations|TestPublishStashSlideAllocations|TestPublishOverviewAllocations|TestPublishLeavingAllocations|TestOutputRoutingAllocations|TestReportSeenAllocations|TestFrameLifecycleTransitionsAllocations|TestFullscreenShownAllocations|TestFrameDecisionAllocations|TestCommitFrameAllocations|TestColorPipelineAllocations|TestShownBySnapshotAllocations|TestFlipShowsAllocations|TestMRUNoteFocusDoesNotAllocateWhenSettled|TestDueFramesAllocations|TestRenderSteadyStateAllocations|TestRenderSteadyStateDMABufAllocations|TestSceneOpaqueRegionAllocations|TestSceneDeltaAllocations|TestAccountFlipAllocations|TestFlipDoneAllocations|TestSceneWalkUnchangedTiledSHM|TestTiledCommitPublishAllocations|TestCapturedCommitApplyAllocations|TestCapturedViewportApplyAllocations|TestEffectiveInputEmptyTreeAllocations|TestHeadlessTiledSHMCallbackAndCopyBudget|TestReleaseHeldAllocations|TestCommitDamageAllocations|TestEmitContentAllocations|TestPresentationPushAllocations|TestAnimatingFrameSendAllocations|TestContentBatchCycleAllocations|TestWriteMappedAllocations|TestCapturedForwardAllocations|TestCommandForwardAllocations|TestOutboxQueuedDeliveryAllocations|TestCastFrameAllocations|TestCastProducerAllocations|TestCaptureCycleAllocations|TestLogScenesAllocations|TestOverviewNamedRowsAllocations|TestBufferContentAllocations|TestDueFramesFireScratch|TestRetireSemaphoreAllocatesNothing|TestTableLookupAllocations|TestTableInsertRemoveAllocations|TestPropertyUnchangedAllocations|TestDispatchAllocations|TestConfigureFlushAllocations|TestFocusAllocations|TestSpaceAllocations|TestUnmanagedGeometryAllocations|TestFocusInUnmanagedAllocations|TestUnmanagedPublishAllocations|TestUnmanagedHitAllocations|TestOverrideMovedUnchangedAllocations)$$' -count=1 | 73 | + | CGO_ENABLED=0 go test ./internal/core ./internal/app ./internal/adapters/drm ./internal/adapters/headless ./internal/adapters/vulkan ./internal/adapters/wayland ./internal/adapters/outputkit/capture ./internal/adapters/screencast ./internal/adapters/wayland/xwm -run '^(TestAnimateAllocations|TestPublishAllocations|TestPublishSubscribersAllocations|TestPublishStashSlideAllocations|TestPublishOverviewAllocations|TestPublishLeavingAllocations|TestOutputRoutingAllocations|TestReportSeenAllocations|TestFrameLifecycleTransitionsAllocations|TestFullscreenShownAllocations|TestFrameDecisionAllocations|TestCommitFrameAllocations|TestColorPipelineAllocations|TestShownBySnapshotAllocations|TestFlipShowsAllocations|TestMRUNoteFocusDoesNotAllocateWhenSettled|TestDueFramesAllocations|TestRenderSteadyStateAllocations|TestRenderSteadyStateDMABufAllocations|TestSceneOpaqueRegionAllocations|TestSceneDeltaAllocations|TestAccountFlipAllocations|TestFlipDoneAllocations|TestSceneWalkUnchangedTiledSHM|TestTiledCommitPublishAllocations|TestCapturedCommitApplyAllocations|TestCapturedViewportApplyAllocations|TestEffectiveInputEmptyTreeAllocations|TestHeadlessTiledSHMCallbackAndCopyBudget|TestReleaseHeldAllocations|TestCommitDamageAllocations|TestEmitContentAllocations|TestPresentationPushAllocations|TestAnimatingFrameSendAllocations|TestContentBatchCycleAllocations|TestWriteMappedAllocations|TestCapturedForwardAllocations|TestCommandForwardAllocations|TestOutboxQueuedDeliveryAllocations|TestCastFrameAllocations|TestCastProducerAllocations|TestCaptureCycleAllocations|TestLogScenesAllocations|TestOverviewNamedRowsAllocations|TestBufferContentAllocations|TestDueFramesFireScratch|TestRetireSemaphoreAllocatesNothing|TestTableLookupAllocations|TestTableInsertRemoveAllocations|TestPropertyUnchangedAllocations|TestDispatchAllocations|TestConfigureFlushAllocations|TestFocusAllocations|TestSpaceAllocations|TestUnmanagedGeometryAllocations|TestFocusInUnmanagedAllocations|TestUnmanagedPublishAllocations|TestUnmanagedHitAllocations|TestOverrideMovedUnchangedAllocations|TestFullscreenConfigureAllocations|TestKeyboardGrabSyncAllocations)$$' -count=1 |
| 74 | CGO_ENABLED=0 go test -tags xturbo_poison ./internal/adapters/wayland/xwm -count=1 | 74 | CGO_ENABLED=0 go test -tags xturbo_poison ./internal/adapters/wayland/xwm -count=1 | ||
| 75 | check: vet test arch fakes-check log-check perf-check | 75 | check: vet test arch fakes-check log-check perf-check | ||
| 76 | 76 | ||||
M README.md +1 -1
| @@ -149,7 +149,7 @@ See [Configuration](docs/config.md) for all keys, actions, bindings and automati | |||
| 149 | 149 | - Explicit sync carries client fences to the GPU and KMS, enabled by default with no flag. HDR10 on capable displays includes configurable SDR brightness. | |
| 150 | 150 | - Separate workspaces and fractional scale per output; workspaces move when a monitor is unplugged and return when it reconnects. | |
| 151 | 151 | - Hidden apps get frame callbacks once per second and the suspended state, whether on another workspace, in a hidden stash, off screen or under fullscreen. Captured windows keep their output's refresh rate. | |
| 152 | - | - Steam and other X11 clients run through xwayland-satellite, or through the experimental built-in window manager (`xwayland = builtin`; shows menus, popups and tooltips; no clipboard or XSETTINGS yet). Wine can run natively on Wayland. | |
| 152 | + | - Steam and other X11 clients run through xwayland-satellite, or through the experimental built-in window manager (`xwayland = builtin`; menus, popups and tooltips, fullscreen games with keyboard grab; no clipboard or XSETTINGS yet). Wine can run natively on Wayland. | |
| 153 | 153 | ||
| 154 | 154 | ### Windows and workspaces | |
| 155 | 155 | ||
| @@ -149,7 +149,7 @@ See [Configuration](docs/config.md) for all keys, actions, bindings and automati | |||||
| 149 | - Explicit sync carries client fences to the GPU and KMS, enabled by default with no flag. HDR10 on capable displays includes configurable SDR brightness. | 149 | - Explicit sync carries client fences to the GPU and KMS, enabled by default with no flag. HDR10 on capable displays includes configurable SDR brightness. | ||
| 150 | - Separate workspaces and fractional scale per output; workspaces move when a monitor is unplugged and return when it reconnects. | 150 | - Separate workspaces and fractional scale per output; workspaces move when a monitor is unplugged and return when it reconnects. | ||
| 151 | - Hidden apps get frame callbacks once per second and the suspended state, whether on another workspace, in a hidden stash, off screen or under fullscreen. Captured windows keep their output's refresh rate. | 151 | - Hidden apps get frame callbacks once per second and the suspended state, whether on another workspace, in a hidden stash, off screen or under fullscreen. Captured windows keep their output's refresh rate. | ||
| 152 | - | - Steam and other X11 clients run through xwayland-satellite, or through the experimental built-in window manager (`xwayland = builtin`; shows menus, popups and tooltips; no clipboard or XSETTINGS yet). Wine can run natively on Wayland. | 152 | + | - Steam and other X11 clients run through xwayland-satellite, or through the experimental built-in window manager (`xwayland = builtin`; menus, popups and tooltips, fullscreen games with keyboard grab; no clipboard or XSETTINGS yet). Wine can run natively on Wayland. |
| 153 | 153 | ||||
| 154 | ### Windows and workspaces | 154 | ### Windows and workspaces | ||
| 155 | 155 | ||||
M docs/config.md +4 -1
| @@ -146,7 +146,7 @@ Rules place an app's windows when they first open. | |||
| 146 | 146 | | `rule.<name>.width` | Column width in [cells](#column-widths), 1 to 16 | | |
| 147 | 147 | ||
| 148 | 148 | ```ini | |
| 149 | - | rule.games.app-id = steam_app_.* | |
| 149 | + | rule.games.app-id = steam_app_\d+ | |
| 150 | 150 | rule.games.workspace = 3 | |
| 151 | 151 | rule.chat.app-id = discord|org\.telegram\..* | |
| 152 | 152 | rule.chat.workspace = chat | |
| @@ -157,6 +157,9 @@ rule.calc.floating = on | |||
| 157 | 157 | ||
| 158 | 158 | - Every matching rule applies, in file order; later rules win. | |
| 159 | 159 | - A rule never moves your focus or view. | |
| 160 | + | - Proton games (X11) use `steam_app_<id>` as app ID, taken from `WM_CLASS`. | |
| 161 | + | - An X11 window that opens exactly on one output's area opens on that output, unless a rule sets `monitor`. | |
| 162 | + | - A rule can float a Proton game: `rule.games.app-id = steam_app_\d+` with `rule.games.floating = on`. Without a rule, X11 games tile until they ask for fullscreen. | |
| 160 | 163 | - To find an app ID: `neferwl state | jq '.windows[].app_id'`. | |
| 161 | 164 | ||
| 162 | 165 | ## Output placement | |
| @@ -146,7 +146,7 @@ Rules place an app's windows when they first open. | |||||
| 146 | | `rule.<name>.width` | Column width in [cells](#column-widths), 1 to 16 | | 146 | | `rule.<name>.width` | Column width in [cells](#column-widths), 1 to 16 | | ||
| 147 | 147 | ||||
| 148 | ```ini | 148 | ```ini | ||
| 149 | - | rule.games.app-id = steam_app_.* | 149 | + | rule.games.app-id = steam_app_\d+ |
| 150 | rule.games.workspace = 3 | 150 | rule.games.workspace = 3 | ||
| 151 | rule.chat.app-id = discord|org\.telegram\..* | 151 | rule.chat.app-id = discord|org\.telegram\..* | ||
| 152 | rule.chat.workspace = chat | 152 | rule.chat.workspace = chat | ||
| @@ -157,6 +157,9 @@ rule.calc.floating = on | |||||
| 157 | 157 | ||||
| 158 | - Every matching rule applies, in file order; later rules win. | 158 | - Every matching rule applies, in file order; later rules win. | ||
| 159 | - A rule never moves your focus or view. | 159 | - A rule never moves your focus or view. | ||
| 160 | + | - Proton games (X11) use `steam_app_<id>` as app ID, taken from `WM_CLASS`. | |||
| 161 | + | - An X11 window that opens exactly on one output's area opens on that output, unless a rule sets `monitor`. | |||
| 162 | + | - A rule can float a Proton game: `rule.games.app-id = steam_app_\d+` with `rule.games.floating = on`. Without a rule, X11 games tile until they ask for fullscreen. | |||
| 160 | - To find an app ID: `neferwl state | jq '.windows[].app_id'`. | 163 | - To find an app ID: `neferwl state | jq '.windows[].app_id'`. | ||
| 161 | 164 | ||||
| 162 | ## Output placement | 165 | ## Output placement | ||
M docs/desktop.md +9 -0
| @@ -60,6 +60,15 @@ xwayland = off # no X11 support | |||
| 60 | 60 | ||
| 61 | 61 | With `xwayland = builtin` (experimental), neferwl starts `Xwayland` itself and manages X11 windows: they tile, take focus and close like Wayland windows. Menus, popups and tooltips of X11 apps are shown above their window and do not take the keyboard focus. Clipboard and XSETTINGS are not supported; use `satellite` if you need them. | |
| 62 | 62 | ||
| 63 | + | Games with `builtin`: | |
| 64 | + | ||
| 65 | + | - **Fullscreen:** an X11 window can ask for fullscreen (`_NET_WM_STATE_FULLSCREEN`) and leave it again; `toggle-fullscreen` works too. A request within 1 second of the window mapping is ignored, so a launcher that remembers a fullscreen size does not cover the windows it opens next. The app can ask again later. | |
| 66 | + | - **Output:** a window that opens exactly at one output's area opens on that output, and its fullscreen fills it. | |
| 67 | + | - **Keyboard grab:** an X11 app that grabs the keyboard inhibits the compositor binds only while it is focused and fullscreen; a windowed app cannot lock the binds. There is no escape bind, as with Wayland shortcut inhibitors; leave by unfullscreening from the app or switching away with the mouse. | |
| 68 | + | - **Pointer:** mouse-look works through relative pointer and pointer constraints. | |
| 69 | + | - **App ID:** Proton windows are named `steam_app_<id>`; match them with a [window rule](config.md#window-rules). | |
| 70 | + | - **Bypass hint:** `_NET_WM_BYPASS_COMPOSITOR` is read but changes nothing; direct scanout is chosen from the window state. | |
| 71 | + | ||
| 63 | 72 | ## Session locking | |
| 64 | 73 | ||
| 65 | 74 | NeferWL supports `ext-session-lock-v1` with an external locker such as swaylock or hyprlock. The locker checks the password; NeferWL hides the desktop and blocks input. | |
| @@ -60,6 +60,15 @@ xwayland = off # no X11 support | |||||
| 60 | 60 | ||||
| 61 | With `xwayland = builtin` (experimental), neferwl starts `Xwayland` itself and manages X11 windows: they tile, take focus and close like Wayland windows. Menus, popups and tooltips of X11 apps are shown above their window and do not take the keyboard focus. Clipboard and XSETTINGS are not supported; use `satellite` if you need them. | 61 | With `xwayland = builtin` (experimental), neferwl starts `Xwayland` itself and manages X11 windows: they tile, take focus and close like Wayland windows. Menus, popups and tooltips of X11 apps are shown above their window and do not take the keyboard focus. Clipboard and XSETTINGS are not supported; use `satellite` if you need them. | ||
| 62 | 62 | ||||
| 63 | + | Games with `builtin`: | |||
| 64 | + | ||||
| 65 | + | - **Fullscreen:** an X11 window can ask for fullscreen (`_NET_WM_STATE_FULLSCREEN`) and leave it again; `toggle-fullscreen` works too. A request within 1 second of the window mapping is ignored, so a launcher that remembers a fullscreen size does not cover the windows it opens next. The app can ask again later. | |||
| 66 | + | - **Output:** a window that opens exactly at one output's area opens on that output, and its fullscreen fills it. | |||
| 67 | + | - **Keyboard grab:** an X11 app that grabs the keyboard inhibits the compositor binds only while it is focused and fullscreen; a windowed app cannot lock the binds. There is no escape bind, as with Wayland shortcut inhibitors; leave by unfullscreening from the app or switching away with the mouse. | |||
| 68 | + | - **Pointer:** mouse-look works through relative pointer and pointer constraints. | |||
| 69 | + | - **App ID:** Proton windows are named `steam_app_<id>`; match them with a [window rule](config.md#window-rules). | |||
| 70 | + | - **Bypass hint:** `_NET_WM_BYPASS_COMPOSITOR` is read but changes nothing; direct scanout is chosen from the window state. | |||
| 71 | + | ||||
| 63 | ## Session locking | 72 | ## Session locking | ||
| 64 | 73 | ||||
| 65 | NeferWL supports `ext-session-lock-v1` with an external locker such as swaylock or hyprlock. The locker checks the password; NeferWL hides the desktop and blocks input. | 74 | NeferWL supports `ext-session-lock-v1` with an external locker such as swaylock or hyprlock. The locker checks the password; NeferWL hides the desktop and blocks input. | ||
M docs/dev/headless.md +8 -2
| @@ -66,7 +66,7 @@ WAYLAND_DISPLAY=<name> go run ./examples/testime -preedit nihon -commit 日本 | |||
| 66 | 66 | ||
| 67 | 67 | `make e2e-xwayland` runs the end-to-end test of the built-in window manager (`xwayland = builtin`). It is behind the `xwayland` build tag, so `go test ./...` and `make check` only compile it (`go vet -tags xwayland`). It needs `Xwayland` on `PATH` and a GPU, and skips without Xwayland. | |
| 68 | 68 | ||
| 69 | - | The test starts a headless NeferWL with a real `Xwayland` on the first free X display (a live session's `:0` stays untouched) and runs `internal/app/testdata/x11probe`, a small X11 client (`-class`, `-title`, `-size`, `-sleep`) that paints its window green, prints `mapped WxH` and `focus`, and exits 0 on `WM_DELETE_WINDOW`. With `-override` it also maps a magenta override-redirect window (`-override-at`, `-override-size`, `-override-type menu|tooltip`, `-override-for`, `-override-shape`, `-override-dismiss-on-focusout`) and prints `override mapped`, `override unmapped` or `dismissed`. It checks: | |
| 69 | + | The test starts a headless NeferWL with a real `Xwayland` on the first free X display (a live session's `:0` stays untouched) and runs `internal/app/testdata/x11probe`, a small X11 client (`-class`, `-title`, `-size`, `-sleep`, `-at X,Y`) that paints its window green, prints `mapped WxH` and `focus`, and exits 0 on `WM_DELETE_WINDOW`. With `-override` it also maps a magenta override-redirect window (`-override-at`, `-override-size`, `-override-type menu|tooltip`, `-override-for`, `-override-shape`, `-override-dismiss-on-focusout`) and prints `override mapped`, `override unmapped` or `dismissed`. `-fullscreen` (with `-fullscreen-delay`, `-fullscreen-off`) requests `_NET_WM_STATE_FULLSCREEN` by client message and prints `fullscreen WxH` / `fullscreen off WxH` when the window manager publishes the state; `-keyboard-grab` calls `XGrabKeyboard` and prints `grab`. `-at` also sends a ConfigureRequest with the window rect before the map, like games do. It checks: | |
| 70 | 70 | ||
| 71 | 71 | - the state lists one visible `X11Probe` window with the probe's pid, and the screenshot is mostly green inside its tile; | |
| 72 | 72 | - the probe receives focus; | |
| @@ -74,7 +74,13 @@ The test starts a headless NeferWL with a real `Xwayland` on the first free X di | |||
| 74 | 74 | - `key Super+q` closes the focused probe within 2 seconds and the state drops to one window; | |
| 75 | 75 | - an override-redirect menu is drawn magenta above the green toplevel at its X position, is not listed in the state, leaves focus on the toplevel and disappears from the screenshot once the probe unmaps it; | |
| 76 | 76 | - a menu is dismissed when its owner gets `FocusOut` because another X11 window took the focus; | |
| 77 | - | - a menu with an empty input shape is still drawn and still not a window. | |
| 77 | + | - a menu with an empty input shape is still drawn and still not a window; | |
| 78 | + | - a fullscreen request 1.5 s after the map fills the output (all green, no gap) and `Super+Shift+f` leaves it; the client can also leave it itself; a request at the map stays tiled (the 1 s grace); | |
| 79 | + | - with the keyboard grab, `Super+q` does not close a fullscreen focused client and works again once it leaves fullscreen; on a windowed client it closes it; | |
| 80 | + | - on two outputs, a window created at the second output's origin opens on `HEADLESS-2` and fullscreens there; | |
| 81 | + | - a window rule `rule.games.app-id = steam_app_\d+` floats an X11 window of class `steam_app_413150`, and not another class. | |
| 82 | + | ||
| 83 | + | Not covered headless: relative pointer lock (needs a real pointer device) and Xwayland output hotplug (`--size` is fixed); these are unit-tested in the `wayland` adapter. | |
| 78 | 84 | ||
| 79 | 85 | Run it by hand with `go test -tags xwayland -race ./internal/app -run TestXwayland -count=1 -v`. | |
| 80 | 86 | ||
| @@ -66,7 +66,7 @@ WAYLAND_DISPLAY=<name> go run ./examples/testime -preedit nihon -commit 日本 | |||||
| 66 | 66 | ||||
| 67 | `make e2e-xwayland` runs the end-to-end test of the built-in window manager (`xwayland = builtin`). It is behind the `xwayland` build tag, so `go test ./...` and `make check` only compile it (`go vet -tags xwayland`). It needs `Xwayland` on `PATH` and a GPU, and skips without Xwayland. | 67 | `make e2e-xwayland` runs the end-to-end test of the built-in window manager (`xwayland = builtin`). It is behind the `xwayland` build tag, so `go test ./...` and `make check` only compile it (`go vet -tags xwayland`). It needs `Xwayland` on `PATH` and a GPU, and skips without Xwayland. | ||
| 68 | 68 | ||||
| 69 | - | The test starts a headless NeferWL with a real `Xwayland` on the first free X display (a live session's `:0` stays untouched) and runs `internal/app/testdata/x11probe`, a small X11 client (`-class`, `-title`, `-size`, `-sleep`) that paints its window green, prints `mapped WxH` and `focus`, and exits 0 on `WM_DELETE_WINDOW`. With `-override` it also maps a magenta override-redirect window (`-override-at`, `-override-size`, `-override-type menu|tooltip`, `-override-for`, `-override-shape`, `-override-dismiss-on-focusout`) and prints `override mapped`, `override unmapped` or `dismissed`. It checks: | 69 | + | The test starts a headless NeferWL with a real `Xwayland` on the first free X display (a live session's `:0` stays untouched) and runs `internal/app/testdata/x11probe`, a small X11 client (`-class`, `-title`, `-size`, `-sleep`, `-at X,Y`) that paints its window green, prints `mapped WxH` and `focus`, and exits 0 on `WM_DELETE_WINDOW`. With `-override` it also maps a magenta override-redirect window (`-override-at`, `-override-size`, `-override-type menu|tooltip`, `-override-for`, `-override-shape`, `-override-dismiss-on-focusout`) and prints `override mapped`, `override unmapped` or `dismissed`. `-fullscreen` (with `-fullscreen-delay`, `-fullscreen-off`) requests `_NET_WM_STATE_FULLSCREEN` by client message and prints `fullscreen WxH` / `fullscreen off WxH` when the window manager publishes the state; `-keyboard-grab` calls `XGrabKeyboard` and prints `grab`. `-at` also sends a ConfigureRequest with the window rect before the map, like games do. It checks: |
| 70 | 70 | ||||
| 71 | - the state lists one visible `X11Probe` window with the probe's pid, and the screenshot is mostly green inside its tile; | 71 | - the state lists one visible `X11Probe` window with the probe's pid, and the screenshot is mostly green inside its tile; | ||
| 72 | - the probe receives focus; | 72 | - the probe receives focus; | ||
| @@ -74,7 +74,13 @@ The test starts a headless NeferWL with a real `Xwayland` on the first free X di | |||||
| 74 | - `key Super+q` closes the focused probe within 2 seconds and the state drops to one window; | 74 | - `key Super+q` closes the focused probe within 2 seconds and the state drops to one window; | ||
| 75 | - an override-redirect menu is drawn magenta above the green toplevel at its X position, is not listed in the state, leaves focus on the toplevel and disappears from the screenshot once the probe unmaps it; | 75 | - an override-redirect menu is drawn magenta above the green toplevel at its X position, is not listed in the state, leaves focus on the toplevel and disappears from the screenshot once the probe unmaps it; | ||
| 76 | - a menu is dismissed when its owner gets `FocusOut` because another X11 window took the focus; | 76 | - a menu is dismissed when its owner gets `FocusOut` because another X11 window took the focus; | ||
| 77 | - | - a menu with an empty input shape is still drawn and still not a window. | 77 | + | - a menu with an empty input shape is still drawn and still not a window; |
| 78 | + | - a fullscreen request 1.5 s after the map fills the output (all green, no gap) and `Super+Shift+f` leaves it; the client can also leave it itself; a request at the map stays tiled (the 1 s grace); | |||
| 79 | + | - with the keyboard grab, `Super+q` does not close a fullscreen focused client and works again once it leaves fullscreen; on a windowed client it closes it; | |||
| 80 | + | - on two outputs, a window created at the second output's origin opens on `HEADLESS-2` and fullscreens there; | |||
| 81 | + | - a window rule `rule.games.app-id = steam_app_\d+` floats an X11 window of class `steam_app_413150`, and not another class. | |||
| 82 | + | ||||
| 83 | + | Not covered headless: relative pointer lock (needs a real pointer device) and Xwayland output hotplug (`--size` is fixed); these are unit-tested in the `wayland` adapter. | |||
| 78 | 84 | ||||
| 79 | Run it by hand with `go test -tags xwayland -race ./internal/app -run TestXwayland -count=1 -v`. | 85 | Run it by hand with `go test -tags xwayland -race ./internal/app -run TestXwayland -count=1 -v`. | ||
| 80 | 86 | ||||
M internal/adapters/wayland/alloc_hotpath_test.go +9 -0
| @@ -246,3 +246,12 @@ func TestCommandForwardAllocations(t *testing.T) { | |||
| 246 | 246 | t.Errorf("command push + merge + drain + stats: %.1f allocs, want 0", allocs) | |
| 247 | 247 | } | |
| 248 | 248 | } | |
| 249 | + | ||
| 250 | + | // A settled grab (none, or unchanged) is re-checked at every focus and | |
| 251 | + | // configure without allocating. | |
| 252 | + | func TestKeyboardGrabSyncAllocations(t *testing.T) { | |
| 253 | + | s := &Server{windows: map[ports.WindowID]*window{}} | |
| 254 | + | if n := testing.AllocsPerRun(100, s.syncKeyboardGrab); n != 0 { | |
| 255 | + | t.Fatalf("%v allocs", n) | |
| 256 | + | } | |
| 257 | + | } | |
| @@ -246,3 +246,12 @@ func TestCommandForwardAllocations(t *testing.T) { | |||||
| 246 | t.Errorf("command push + merge + drain + stats: %.1f allocs, want 0", allocs) | 246 | t.Errorf("command push + merge + drain + stats: %.1f allocs, want 0", allocs) | ||
| 247 | } | 247 | } | ||
| 248 | } | 248 | } | ||
| 249 | + | ||||
| 250 | + | // A settled grab (none, or unchanged) is re-checked at every focus and | |||
| 251 | + | // configure without allocating. | |||
| 252 | + | func TestKeyboardGrabSyncAllocations(t *testing.T) { | |||
| 253 | + | s := &Server{windows: map[ports.WindowID]*window{}} | |||
| 254 | + | if n := testing.AllocsPerRun(100, s.syncKeyboardGrab); n != 0 { | |||
| 255 | + | t.Fatalf("%v allocs", n) | |||
| 256 | + | } | |||
| 257 | + | } | |||
M internal/adapters/wayland/globals.go +1 -0
| @@ -14,6 +14,7 @@ func registerGlobals(d *server.Display, o Options, s *Server) error { | |||
| 14 | 14 | for _, register := range []func() error{ | |
| 15 | 15 | func() error { return registerXDG(d, s) }, | |
| 16 | 16 | func() error { return registerXwaylandShell(d, s) }, | |
| 17 | + | func() error { return registerXwaylandGrab(d, s) }, | |
| 17 | 18 | func() error { return registerLayer(d, s) }, | |
| 18 | 19 | func() error { | |
| 19 | 20 | // Advertise only with the production owner gate and authoritative | |
| @@ -14,6 +14,7 @@ func registerGlobals(d *server.Display, o Options, s *Server) error { | |||||
| 14 | for _, register := range []func() error{ | 14 | for _, register := range []func() error{ | ||
| 15 | func() error { return registerXDG(d, s) }, | 15 | func() error { return registerXDG(d, s) }, | ||
| 16 | func() error { return registerXwaylandShell(d, s) }, | 16 | func() error { return registerXwaylandShell(d, s) }, | ||
| 17 | + | func() error { return registerXwaylandGrab(d, s) }, | |||
| 17 | func() error { return registerLayer(d, s) }, | 18 | func() error { return registerLayer(d, s) }, | ||
| 18 | func() error { | 19 | func() error { | ||
| 19 | // Advertise only with the production owner gate and authoritative | 20 | // Advertise only with the production owner gate and authoritative | ||
M internal/adapters/wayland/inhibit.go +5 -0
| @@ -121,6 +121,11 @@ func (s *Server) syncInhibitors() { | |||
| 121 | 121 | idle[in.window] = true | |
| 122 | 122 | } | |
| 123 | 123 | } | |
| 124 | + | // syncKeyboardGrab compares against xgrabbed: it is only written here. | |
| 125 | + | s.xgrabbed = s.xgrabWindow() | |
| 126 | + | if s.xgrabbed != 0 { | |
| 127 | + | shortcuts[s.xgrabbed] = true | |
| 128 | + | } | |
| 124 | 129 | for id, on := range diffSets(s.shortcutWindows, shortcuts) { | |
| 125 | 130 | s.emit(ports.ShortcutsInhibit{Window: id, Active: on}) | |
| 126 | 131 | } | |
| @@ -121,6 +121,11 @@ func (s *Server) syncInhibitors() { | |||||
| 121 | idle[in.window] = true | 121 | idle[in.window] = true | ||
| 122 | } | 122 | } | ||
| 123 | } | 123 | } | ||
| 124 | + | // syncKeyboardGrab compares against xgrabbed: it is only written here. | |||
| 125 | + | s.xgrabbed = s.xgrabWindow() | |||
| 126 | + | if s.xgrabbed != 0 { | |||
| 127 | + | shortcuts[s.xgrabbed] = true | |||
| 128 | + | } | |||
| 124 | for id, on := range diffSets(s.shortcutWindows, shortcuts) { | 129 | for id, on := range diffSets(s.shortcutWindows, shortcuts) { | ||
| 125 | s.emit(ports.ShortcutsInhibit{Window: id, Active: on}) | 130 | s.emit(ports.ShortcutsInhibit{Window: id, Active: on}) | ||
| 126 | } | 131 | } | ||
M internal/adapters/wayland/seat.go +1 -0
| @@ -456,6 +456,7 @@ func (s *Server) changeFocus(id ports.WindowID) { | |||
| 456 | 456 | } | |
| 457 | 457 | s.textInputFocus() | |
| 458 | 458 | s.x11Focus() | |
| 459 | + | s.syncKeyboardGrab() | |
| 459 | 460 | s.log.Debug().Uint64("id", uint64(s.seat.focused)).Msg("keyboard focus") | |
| 460 | 461 | s.updateConstraint() | |
| 461 | 462 | } | |
| @@ -456,6 +456,7 @@ func (s *Server) changeFocus(id ports.WindowID) { | |||||
| 456 | } | 456 | } | ||
| 457 | s.textInputFocus() | 457 | s.textInputFocus() | ||
| 458 | s.x11Focus() | 458 | s.x11Focus() | ||
| 459 | + | s.syncKeyboardGrab() | |||
| 459 | s.log.Debug().Uint64("id", uint64(s.seat.focused)).Msg("keyboard focus") | 460 | s.log.Debug().Uint64("id", uint64(s.seat.focused)).Msg("keyboard focus") | ||
| 460 | s.updateConstraint() | 461 | s.updateConstraint() | ||
| 461 | } | 462 | } | ||
M internal/adapters/wayland/server.go +3 -0
| @@ -274,6 +274,8 @@ type Server struct { | |||
| 274 | 274 | // inhibitors are the live inhibitor objects (inhibit.go); | |
| 275 | 275 | // shortcutWindows and idleWindows what core was told. | |
| 276 | 276 | inhibitors []*inhibitor | |
| 277 | + | xgrab *xwaylandGrab // Xwayland keyboard grab (xwaylandgrab.go) | |
| 278 | + | xgrabbed ports.WindowID // window the grab inhibits for | |
| 277 | 279 | shortcutWindows, idleWindows map[ports.WindowID]bool | |
| 278 | 280 | // busInhibited is the last IdleInhibited value (idle.go). | |
| 279 | 281 | busInhibited bool | |
| @@ -816,6 +818,7 @@ func (s *Server) apply(cmd ports.ClientCommand) { | |||
| 816 | 818 | s.wakePacer() // reconsider FIFO barriers at the new period | |
| 817 | 819 | } | |
| 818 | 820 | w.sendConfigure() | |
| 821 | + | s.syncKeyboardGrab() | |
| 819 | 822 | s.toplevelChanged(w) | |
| 820 | 823 | if scanoutChanged && w.surf() != nil { | |
| 821 | 824 | s.dmabuf.resendSurface(w.surf()) | |
| @@ -274,6 +274,8 @@ type Server struct { | |||||
| 274 | // inhibitors are the live inhibitor objects (inhibit.go); | 274 | // inhibitors are the live inhibitor objects (inhibit.go); | ||
| 275 | // shortcutWindows and idleWindows what core was told. | 275 | // shortcutWindows and idleWindows what core was told. | ||
| 276 | inhibitors []*inhibitor | 276 | inhibitors []*inhibitor | ||
| 277 | + | xgrab *xwaylandGrab // Xwayland keyboard grab (xwaylandgrab.go) | |||
| 278 | + | xgrabbed ports.WindowID // window the grab inhibits for | |||
| 277 | shortcutWindows, idleWindows map[ports.WindowID]bool | 279 | shortcutWindows, idleWindows map[ports.WindowID]bool | ||
| 278 | // busInhibited is the last IdleInhibited value (idle.go). | 280 | // busInhibited is the last IdleInhibited value (idle.go). | ||
| 279 | busInhibited bool | 281 | busInhibited bool | ||
| @@ -816,6 +818,7 @@ func (s *Server) apply(cmd ports.ClientCommand) { | |||||
| 816 | s.wakePacer() // reconsider FIFO barriers at the new period | 818 | s.wakePacer() // reconsider FIFO barriers at the new period | ||
| 817 | } | 819 | } | ||
| 818 | w.sendConfigure() | 820 | w.sendConfigure() | ||
| 821 | + | s.syncKeyboardGrab() | |||
| 819 | s.toplevelChanged(w) | 822 | s.toplevelChanged(w) | ||
| 820 | if scanoutChanged && w.surf() != nil { | 823 | if scanoutChanged && w.surf() != nil { | ||
| 821 | s.dmabuf.resendSurface(w.surf()) | 824 | s.dmabuf.resendSurface(w.surf()) | ||
M internal/adapters/wayland/wire_client_test.go +3 -0
| @@ -55,6 +55,7 @@ import ( | |||
| 55 | 55 | wire_xdgforeign "github.com/bnema/go-wayland-bindings/server/xdgforeign" | |
| 56 | 56 | wire_xdgoutput "github.com/bnema/go-wayland-bindings/server/xdgoutput" | |
| 57 | 57 | wire_xdgshell "github.com/bnema/go-wayland-bindings/server/xdgshell" | |
| 58 | + | wire_xwaylandkeyboardgrab "github.com/bnema/go-wayland-bindings/server/xwaylandkeyboardgrab" | |
| 58 | 59 | wire_xwaylandshell "github.com/bnema/go-wayland-bindings/server/xwaylandshell" | |
| 59 | 60 | wire_imagecapture "github.com/bnema/neferwl/internal/adapters/wayland/imagecapture" | |
| 60 | 61 | "github.com/bnema/purego-libwayland/server" | |
| @@ -254,6 +255,8 @@ var wireSchemas = map[string]wireSchema{ | |||
| 254 | 255 | "zwp_text_input_v3": {wire_textinput.ZwpTextInputV3Interface, &client_textinput.TextInputV3{}, map[uint16]bool{0: true}, nil}, | |
| 255 | 256 | "zwp_virtual_keyboard_manager_v1": {wire_virtualkeyboard.ZwpVirtualKeyboardManagerV1Interface, &client_virtualkeyboard.VirtualKeyboardManager{}, nil, nil}, | |
| 256 | 257 | "zwp_virtual_keyboard_v1": {wire_virtualkeyboard.ZwpVirtualKeyboardV1Interface, &client_virtualkeyboard.VirtualKeyboard{}, map[uint16]bool{3: true}, nil}, | |
| 258 | + | "zwp_xwayland_keyboard_grab_manager_v1": {wire_xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabManagerV1Interface, nil, map[uint16]bool{0: true}, nil}, | |
| 259 | + | "zwp_xwayland_keyboard_grab_v1": {wire_xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabV1Interface, nil, map[uint16]bool{0: true}, nil}, | |
| 257 | 260 | "xwayland_shell_v1": {wire_xwaylandshell.XwaylandShellV1Interface, nil, map[uint16]bool{0: true}, nil}, | |
| 258 | 261 | "xwayland_surface_v1": {wire_xwaylandshell.XwaylandSurfaceV1Interface, nil, map[uint16]bool{1: true}, nil}, | |
| 259 | 262 | "zxdg_output_manager_v1": {wire_xdgoutput.ZxdgOutputManagerV1Interface, &client_xdgoutput.ZxdgOutputManager{}, map[uint16]bool{0: true}, nil}, | |
| @@ -55,6 +55,7 @@ import ( | |||||
| 55 | wire_xdgforeign "github.com/bnema/go-wayland-bindings/server/xdgforeign" | 55 | wire_xdgforeign "github.com/bnema/go-wayland-bindings/server/xdgforeign" | ||
| 56 | wire_xdgoutput "github.com/bnema/go-wayland-bindings/server/xdgoutput" | 56 | wire_xdgoutput "github.com/bnema/go-wayland-bindings/server/xdgoutput" | ||
| 57 | wire_xdgshell "github.com/bnema/go-wayland-bindings/server/xdgshell" | 57 | wire_xdgshell "github.com/bnema/go-wayland-bindings/server/xdgshell" | ||
| 58 | + | wire_xwaylandkeyboardgrab "github.com/bnema/go-wayland-bindings/server/xwaylandkeyboardgrab" | |||
| 58 | wire_xwaylandshell "github.com/bnema/go-wayland-bindings/server/xwaylandshell" | 59 | wire_xwaylandshell "github.com/bnema/go-wayland-bindings/server/xwaylandshell" | ||
| 59 | wire_imagecapture "github.com/bnema/neferwl/internal/adapters/wayland/imagecapture" | 60 | wire_imagecapture "github.com/bnema/neferwl/internal/adapters/wayland/imagecapture" | ||
| 60 | "github.com/bnema/purego-libwayland/server" | 61 | "github.com/bnema/purego-libwayland/server" | ||
| @@ -254,6 +255,8 @@ var wireSchemas = map[string]wireSchema{ | |||||
| 254 | "zwp_text_input_v3": {wire_textinput.ZwpTextInputV3Interface, &client_textinput.TextInputV3{}, map[uint16]bool{0: true}, nil}, | 255 | "zwp_text_input_v3": {wire_textinput.ZwpTextInputV3Interface, &client_textinput.TextInputV3{}, map[uint16]bool{0: true}, nil}, | ||
| 255 | "zwp_virtual_keyboard_manager_v1": {wire_virtualkeyboard.ZwpVirtualKeyboardManagerV1Interface, &client_virtualkeyboard.VirtualKeyboardManager{}, nil, nil}, | 256 | "zwp_virtual_keyboard_manager_v1": {wire_virtualkeyboard.ZwpVirtualKeyboardManagerV1Interface, &client_virtualkeyboard.VirtualKeyboardManager{}, nil, nil}, | ||
| 256 | "zwp_virtual_keyboard_v1": {wire_virtualkeyboard.ZwpVirtualKeyboardV1Interface, &client_virtualkeyboard.VirtualKeyboard{}, map[uint16]bool{3: true}, nil}, | 257 | "zwp_virtual_keyboard_v1": {wire_virtualkeyboard.ZwpVirtualKeyboardV1Interface, &client_virtualkeyboard.VirtualKeyboard{}, map[uint16]bool{3: true}, nil}, | ||
| 258 | + | "zwp_xwayland_keyboard_grab_manager_v1": {wire_xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabManagerV1Interface, nil, map[uint16]bool{0: true}, nil}, | |||
| 259 | + | "zwp_xwayland_keyboard_grab_v1": {wire_xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabV1Interface, nil, map[uint16]bool{0: true}, nil}, | |||
| 257 | "xwayland_shell_v1": {wire_xwaylandshell.XwaylandShellV1Interface, nil, map[uint16]bool{0: true}, nil}, | 260 | "xwayland_shell_v1": {wire_xwaylandshell.XwaylandShellV1Interface, nil, map[uint16]bool{0: true}, nil}, | ||
| 258 | "xwayland_surface_v1": {wire_xwaylandshell.XwaylandSurfaceV1Interface, nil, map[uint16]bool{1: true}, nil}, | 261 | "xwayland_surface_v1": {wire_xwaylandshell.XwaylandSurfaceV1Interface, nil, map[uint16]bool{1: true}, nil}, | ||
| 259 | "zxdg_output_manager_v1": {wire_xdgoutput.ZxdgOutputManagerV1Interface, &client_xdgoutput.ZxdgOutputManager{}, map[uint16]bool{0: true}, nil}, | 262 | "zxdg_output_manager_v1": {wire_xdgoutput.ZxdgOutputManagerV1Interface, &client_xdgoutput.ZxdgOutputManager{}, map[uint16]bool{0: true}, nil}, | ||
M internal/adapters/wayland/x11window.go +1 -1
| @@ -303,7 +303,7 @@ func (x *x11Window) tryMap() { | |||
| 303 | 303 | if w.parent != nil && w.parent.mapped { | |
| 304 | 304 | parent = w.parent.id | |
| 305 | 305 | } | |
| 306 | - | s.emit(ports.WindowMapped{ID: w.id, AppID: w.appID, PID: x.info.PID, Floating: w.floating, Width: w.floatW, Height: w.floatH, Parent: parent, Positioned: true, Modal: w.modal, Remap: w.gen > 1}) | |
| 306 | + | s.emit(ports.WindowMapped{ID: w.id, AppID: w.appID, PID: x.info.PID, Floating: w.floating, Width: w.floatW, Height: w.floatH, Parent: parent, Positioned: true, Modal: w.modal, Remap: w.gen > 1, HasAt: x.info.HasAt, AtX: x.info.AtX, AtY: x.info.AtY}) | |
| 307 | 307 | if x.info.Fullscreen { | |
| 308 | 308 | s.emit(ports.WindowFullscreenRequest{ID: w.id, Fullscreen: true}) | |
| 309 | 309 | } | |
| @@ -303,7 +303,7 @@ func (x *x11Window) tryMap() { | |||||
| 303 | if w.parent != nil && w.parent.mapped { | 303 | if w.parent != nil && w.parent.mapped { | ||
| 304 | parent = w.parent.id | 304 | parent = w.parent.id | ||
| 305 | } | 305 | } | ||
| 306 | - | s.emit(ports.WindowMapped{ID: w.id, AppID: w.appID, PID: x.info.PID, Floating: w.floating, Width: w.floatW, Height: w.floatH, Parent: parent, Positioned: true, Modal: w.modal, Remap: w.gen > 1}) | 306 | + | s.emit(ports.WindowMapped{ID: w.id, AppID: w.appID, PID: x.info.PID, Floating: w.floating, Width: w.floatW, Height: w.floatH, Parent: parent, Positioned: true, Modal: w.modal, Remap: w.gen > 1, HasAt: x.info.HasAt, AtX: x.info.AtX, AtY: x.info.AtY}) |
| 307 | if x.info.Fullscreen { | 307 | if x.info.Fullscreen { | ||
| 308 | s.emit(ports.WindowFullscreenRequest{ID: w.id, Fullscreen: true}) | 308 | s.emit(ports.WindowFullscreenRequest{ID: w.id, Fullscreen: true}) | ||
| 309 | } | 309 | } | ||
M internal/adapters/wayland/x11window_test.go +275 -1
| @@ -9,8 +9,10 @@ import ( | |||
| 9 | 9 | "time" | |
| 10 | 10 | ||
| 11 | 11 | "github.com/bnema/go-wayland-bindings/server/pointerconstraints" | |
| 12 | + | "github.com/bnema/go-wayland-bindings/server/relativepointer" | |
| 12 | 13 | "github.com/bnema/go-wayland-bindings/server/wayland" | |
| 13 | 14 | "github.com/bnema/go-wayland-bindings/server/xdgshell" | |
| 15 | + | "github.com/bnema/go-wayland-bindings/server/xwaylandkeyboardgrab" | |
| 14 | 16 | "github.com/bnema/go-wayland-bindings/server/xwaylandshell" | |
| 15 | 17 | "github.com/bnema/neferwl/internal/ports" | |
| 16 | 18 | "github.com/bnema/wlturbo" | |
| @@ -33,6 +35,8 @@ type x11Rig struct { | |||
| 33 | 35 | stop func() | |
| 34 | 36 | shell uint32 | |
| 35 | 37 | comp uint32 | |
| 38 | + | // surfaceProxy, when set, observes the next paired wl_surface. | |
| 39 | + | surfaceProxy func(id uint32) wlturbo.Proxy | |
| 36 | 40 | } | |
| 37 | 41 | ||
| 38 | 42 | func newX11Rig(t *testing.T) *x11Rig { | |
| @@ -86,7 +90,11 @@ func (r *x11Rig) pair(win uint32, serial uint64) uint32 { | |||
| 86 | 90 | r.peer.clientMessage(win, "WL_SURFACE_SERIAL", uint32(serial), uint32(serial>>32)) | |
| 87 | 91 | surf, xs := r.xc.AllocateID(), r.xc.AllocateID() | |
| 88 | 92 | requestProtocol(r.t, r.xc, r.comp, wayland.CompositorRequestCreateSurface, surf) | |
| 89 | - | registerProtocol(r.t, r.xc, surf) | |
| 93 | + | if r.surfaceProxy != nil { | |
| 94 | + | registerWireProxy(r.xc, r.surfaceProxy(surf)) | |
| 95 | + | } else { | |
| 96 | + | registerProtocol(r.t, r.xc, surf) | |
| 97 | + | } | |
| 90 | 98 | requestProtocol(r.t, r.xc, r.shell, xwaylandshell.XwaylandShellV1RequestGetXwaylandSurface, xs, surf) | |
| 91 | 99 | registerProtocol(r.t, r.xc, xs) | |
| 92 | 100 | requestProtocol(r.t, r.xc, xs, xwaylandshell.XwaylandSurfaceV1RequestSetSerial, uint32(serial), uint32(serial>>32)) | |
| @@ -351,3 +359,269 @@ func TestX11WindowPointerLock(t *testing.T) { | |||
| 351 | 359 | t.Fatalf("constrained %+v", got) | |
| 352 | 360 | } | |
| 353 | 361 | } | |
| 362 | + | ||
| 363 | + | // grabRig is an X11 window with an Xwayland keyboard grab on its surface. | |
| 364 | + | func grabRig(t *testing.T) (r *x11Rig, w ports.WindowID, surf uint32) { | |
| 365 | + | t.Helper() | |
| 366 | + | r = newX11Rig(t) | |
| 367 | + | r.x11Window(x11Win) | |
| 368 | + | surf = r.pair(x11Win, x11Serial) | |
| 369 | + | w = awaitEvent[ports.WindowMapped](t, r.events).ID | |
| 370 | + | seat := bindProtocol(t, r.xc, "wl_seat") | |
| 371 | + | registerProtocol(t, r.xc, seat) | |
| 372 | + | mgr := bindProtocol(t, r.xc, "zwp_xwayland_keyboard_grab_manager_v1") | |
| 373 | + | grab := r.xc.AllocateID() | |
| 374 | + | requestProtocol(t, r.xc, mgr, xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabManagerV1RequestGrabKeyboard, grab, surf, seat) | |
| 375 | + | registerProtocol(t, r.xc, grab) | |
| 376 | + | if err := r.xc.Roundtrip(); err != nil { | |
| 377 | + | t.Fatal(err) | |
| 378 | + | } | |
| 379 | + | return r, w, grab | |
| 380 | + | } | |
| 381 | + | ||
| 382 | + | // noInhibit fails when a ShortcutsInhibit event arrives shortly. | |
| 383 | + | func noInhibit(t *testing.T, r *x11Rig) { | |
| 384 | + | t.Helper() | |
| 385 | + | if err := r.xc.Roundtrip(); err != nil { | |
| 386 | + | t.Fatal(err) | |
| 387 | + | } | |
| 388 | + | for deadline := time.After(150 * time.Millisecond); ; { | |
| 389 | + | select { | |
| 390 | + | case ev := <-r.events: | |
| 391 | + | if v, ok := ev.(ports.ShortcutsInhibit); ok { | |
| 392 | + | t.Fatalf("unexpected %+v", v) | |
| 393 | + | } | |
| 394 | + | case <-deadline: | |
| 395 | + | return | |
| 396 | + | } | |
| 397 | + | } | |
| 398 | + | } | |
| 399 | + | ||
| 400 | + | func TestXwaylandKeyboardGrabThreeStates(t *testing.T) { | |
| 401 | + | r, w, grab := grabRig(t) | |
| 402 | + | // Windowed and focused: accepted, no effect. | |
| 403 | + | r.commands <- ports.ConfigureWindow{ID: w, Width: 100, Height: 100, Visible: true} | |
| 404 | + | r.commands <- ports.FocusWindow{ID: w} | |
| 405 | + | noInhibit(t, r) | |
| 406 | + | // Focused and fullscreen: inhibits. | |
| 407 | + | r.commands <- ports.ConfigureWindow{ID: w, Width: 100, Height: 100, Visible: true, Fullscreen: true} | |
| 408 | + | if v := awaitEvent[ports.ShortcutsInhibit](t, r.events); v != (ports.ShortcutsInhibit{Window: w, Active: true}) { | |
| 409 | + | t.Fatal(v) | |
| 410 | + | } | |
| 411 | + | // Focus lost: released. | |
| 412 | + | r.commands <- ports.FocusWindow{} | |
| 413 | + | if v := awaitEvent[ports.ShortcutsInhibit](t, r.events); v != (ports.ShortcutsInhibit{Window: w}) { | |
| 414 | + | t.Fatal(v) | |
| 415 | + | } | |
| 416 | + | // Back, then the grab object goes away. | |
| 417 | + | r.commands <- ports.FocusWindow{ID: w} | |
| 418 | + | awaitEvent[ports.ShortcutsInhibit](t, r.events) | |
| 419 | + | requestProtocol(t, r.xc, grab, xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabV1RequestDestroy) | |
| 420 | + | if v := awaitEvent[ports.ShortcutsInhibit](t, r.events); v != (ports.ShortcutsInhibit{Window: w}) { | |
| 421 | + | t.Fatal(v) | |
| 422 | + | } | |
| 423 | + | } | |
| 424 | + | ||
| 425 | + | // x11Pointer gives the Xwayland client a wl_pointer and a relative pointer, | |
| 426 | + | // both with event logs. | |
| 427 | + | func (r *x11Rig) x11Pointer() (pointer uint32, ptrEvents, relEvents chan []float64) { | |
| 428 | + | r.t.Helper() | |
| 429 | + | seat := bindProtocol(r.t, r.xc, "wl_seat") | |
| 430 | + | registerProtocol(r.t, r.xc, seat) | |
| 431 | + | pointer = r.xc.AllocateID() | |
| 432 | + | ptrEvents = logProxy(r.t, r.xc, pointer) | |
| 433 | + | requestProtocol(r.t, r.xc, seat, wayland.SeatRequestGetPointer, pointer) | |
| 434 | + | mgr := bindProtocol(r.t, r.xc, "zwp_relative_pointer_manager_v1") | |
| 435 | + | rel := r.xc.AllocateID() | |
| 436 | + | relEvents = logProxy(r.t, r.xc, rel) | |
| 437 | + | requestProtocol(r.t, r.xc, mgr, relativepointer.ZwpRelativePointerManagerV1RequestGetRelativePointer, rel, pointer) | |
| 438 | + | return pointer, ptrEvents, relEvents | |
| 439 | + | } | |
| 440 | + | ||
| 441 | + | // A lock on an X11 surface activates with pointer and keyboard focus, sends | |
| 442 | + | // relative motion to the Xwayland client and deactivates when a native | |
| 443 | + | // window takes the focus; it comes back with the X11 focus. | |
| 444 | + | func TestX11LockFollowsFocusAndRelativeMotion(t *testing.T) { | |
| 445 | + | r := newX11Rig(t) | |
| 446 | + | win := uint32(x11Win) | |
| 447 | + | r.x11Window(win) | |
| 448 | + | surf := r.pair(win, x11Serial) | |
| 449 | + | m := awaitEvent[ports.WindowMapped](t, r.events) | |
| 450 | + | pointer, _, relEvents := r.x11Pointer() | |
| 451 | + | constraints := bindProtocol(t, r.xc, "zwp_pointer_constraints_v1") | |
| 452 | + | lock := r.xc.AllocateID() | |
| 453 | + | lockEvents := logProxy(t, r.xc, lock) | |
| 454 | + | requestProtocol(t, r.xc, constraints, pointerconstraints.ZwpPointerConstraintsV1RequestLockPointer, lock, surf, pointer, uint32(0), uint32(pointerconstraints.ZwpPointerConstraintsV1LifetimePersistent)) | |
| 455 | + | if err := r.xc.Roundtrip(); err != nil { | |
| 456 | + | t.Fatal(err) | |
| 457 | + | } | |
| 458 | + | if len(lockEvents) > 0 { | |
| 459 | + | t.Fatal("locked without focus") | |
| 460 | + | } | |
| 461 | + | ||
| 462 | + | r.commands <- ports.PointerFocus{ID: m.ID} | |
| 463 | + | r.commands <- ports.FocusWindow{ID: m.ID} | |
| 464 | + | if ev := next(t, r.xc, lockEvents); ev[0] != float64(pointerconstraints.ZwpLockedPointerV1EventLocked) { | |
| 465 | + | t.Fatalf("lock event %v", ev) | |
| 466 | + | } | |
| 467 | + | if got := constrained(t, r.events); got.ID != m.ID || got.Mode != ports.ConstraintLock || got.Rect != (ports.Rect{}) { | |
| 468 | + | t.Fatalf("constrained %+v", got) | |
| 469 | + | } | |
| 470 | + | ||
| 471 | + | r.commands <- ports.PointerMotionTo{ID: m.ID, X: 5, Y: 5, DX: 2.5, DY: -1, UnaccelDX: 4, UnaccelDY: -2} | |
| 472 | + | if ev := next(t, r.xc, relEvents); len(ev) != 5 || ev[1] != 2.5 || ev[2] != -1 || ev[3] != 4 || ev[4] != -2 { | |
| 473 | + | t.Fatalf("relative motion %v", ev) | |
| 474 | + | } | |
| 475 | + | ||
| 476 | + | // A native window takes the focus: the X11 lock ends and the XWM drops | |
| 477 | + | // the X focus. | |
| 478 | + | nc := protocolClient(t, r.s, r.dir) | |
| 479 | + | nm, _, _ := surfaceMapper(t, nc, r.events)() | |
| 480 | + | skip := len(r.peer.requests()) | |
| 481 | + | r.commands <- ports.FocusWindow{ID: nm.ID} | |
| 482 | + | if ev := next(t, r.xc, lockEvents); ev[0] != float64(pointerconstraints.ZwpLockedPointerV1EventUnlocked) { | |
| 483 | + | t.Fatalf("unlock event %v", ev) | |
| 484 | + | } | |
| 485 | + | if got := constrained(t, r.events); got.ID != 0 { | |
| 486 | + | t.Fatalf("constrained %+v after native focus", got) | |
| 487 | + | } | |
| 488 | + | if f, _ := r.peer.waitReq(skip, func(q x11Req) bool { return q.major == x11OpSetInputFocus }); f.u32(4) == win { | |
| 489 | + | t.Fatalf("X focus still on %#x", win) | |
| 490 | + | } | |
| 491 | + | ||
| 492 | + | r.commands <- ports.FocusWindow{ID: m.ID} | |
| 493 | + | if ev := next(t, r.xc, lockEvents); ev[0] != float64(pointerconstraints.ZwpLockedPointerV1EventLocked) { | |
| 494 | + | t.Fatalf("relock event %v", ev) | |
| 495 | + | } | |
| 496 | + | } | |
| 497 | + | ||
| 498 | + | // A confine on an X11 surface reaches core with its region as given: an X11 | |
| 499 | + | // window has no geometry offset. | |
| 500 | + | func TestX11ConfineRegionHasNoOffset(t *testing.T) { | |
| 501 | + | r := newX11Rig(t) | |
| 502 | + | win := uint32(x11Win) | |
| 503 | + | r.x11Window(win) | |
| 504 | + | surf := r.pair(win, x11Serial) | |
| 505 | + | m := awaitEvent[ports.WindowMapped](t, r.events) | |
| 506 | + | pointer, _, _ := r.x11Pointer() | |
| 507 | + | region := r.xc.AllocateID() | |
| 508 | + | registerProtocol(t, r.xc, region) | |
| 509 | + | requestProtocol(t, r.xc, r.comp, wayland.CompositorRequestCreateRegion, region) | |
| 510 | + | requestProtocol(t, r.xc, region, wayland.RegionRequestAdd, int32(5), int32(6), int32(20), int32(30)) | |
| 511 | + | constraints := bindProtocol(t, r.xc, "zwp_pointer_constraints_v1") | |
| 512 | + | confine := r.xc.AllocateID() | |
| 513 | + | confineEvents := logProxy(t, r.xc, confine) | |
| 514 | + | requestProtocol(t, r.xc, constraints, pointerconstraints.ZwpPointerConstraintsV1RequestConfinePointer, confine, surf, pointer, region, uint32(pointerconstraints.ZwpPointerConstraintsV1LifetimePersistent)) | |
| 515 | + | if err := r.xc.Roundtrip(); err != nil { | |
| 516 | + | t.Fatal(err) | |
| 517 | + | } | |
| 518 | + | r.state(func() { | |
| 519 | + | if g := r.s.windows[m.ID].geometry(); g != (ports.Rect{}) { | |
| 520 | + | t.Errorf("X11 geometry %+v, want zero", g) | |
| 521 | + | } | |
| 522 | + | }) | |
| 523 | + | ||
| 524 | + | r.commands <- ports.PointerFocus{ID: m.ID, X: 10, Y: 10} | |
| 525 | + | r.commands <- ports.FocusWindow{ID: m.ID} | |
| 526 | + | r.commands <- ports.PointerMotionTo{ID: m.ID, X: 10, Y: 10} | |
| 527 | + | if ev := next(t, r.xc, confineEvents); ev[0] != float64(pointerconstraints.ZwpConfinedPointerV1EventConfined) { | |
| 528 | + | t.Fatalf("confine event %v", ev) | |
| 529 | + | } | |
| 530 | + | want := ports.PointerConstrained{ID: m.ID, PointerConstraint: ports.PointerConstraint{Mode: ports.ConstraintConfine, Rect: ports.Rect{X: 5, Y: 6, W: 20, H: 30}}} | |
| 531 | + | if got := constrained(t, r.events); got != want { | |
| 532 | + | t.Fatalf("constrained %+v, want %+v", got, want) | |
| 533 | + | } | |
| 534 | + | } | |
| 535 | + | ||
| 536 | + | // waitOn waits until window id's surface is on output name: commands reach | |
| 537 | + | // the display goroutine asynchronously. | |
| 538 | + | func (r *x11Rig) waitOn(id ports.WindowID, name string) { | |
| 539 | + | r.t.Helper() | |
| 540 | + | waitTrue(r.t, "surface on "+name, func() bool { | |
| 541 | + | ok := false | |
| 542 | + | r.state(func() { | |
| 543 | + | if w := r.s.windows[id]; w != nil { | |
| 544 | + | on := w.surf().on | |
| 545 | + | ok = on != nil && on.name() == name | |
| 546 | + | } | |
| 547 | + | }) | |
| 548 | + | return ok | |
| 549 | + | }) | |
| 550 | + | } | |
| 551 | + | ||
| 552 | + | // An X11 window is on one output only, even straddling two: a single | |
| 553 | + | // wl_surface.enter, and a leave only when its output changes. | |
| 554 | + | func TestX11WindowEntersOneOutput(t *testing.T) { | |
| 555 | + | r := newX11Rig(t) | |
| 556 | + | r.commands <- ports.SetOutputs{Outputs: ports.Layout{ | |
| 557 | + | {Info: ports.OutputInfo{Name: "A"}, X: 0, Y: 0, Width: 1920, Height: 1080, Scale: 1}, | |
| 558 | + | {Info: ports.OutputInfo{Name: "B"}, X: 1920, Y: 0, Width: 1920, Height: 1080, Scale: 1}, | |
| 559 | + | }, Focused: "A"} | |
| 560 | + | r.state(func() {}) // the layout is applied | |
| 561 | + | if err := r.xc.Roundtrip(); err != nil { | |
| 562 | + | t.Fatal(err) | |
| 563 | + | } | |
| 564 | + | outputs := 0 | |
| 565 | + | for _, g := range r.xc.Registry().GetGlobals() { | |
| 566 | + | if g.Interface != "wl_output" { | |
| 567 | + | continue | |
| 568 | + | } | |
| 569 | + | id, err := bindWireID(r.xc, g.Name, g.Interface, 1) | |
| 570 | + | if err != nil { | |
| 571 | + | t.Fatal(err) | |
| 572 | + | } | |
| 573 | + | registerProtocol(t, r.xc, id) | |
| 574 | + | outputs++ | |
| 575 | + | } | |
| 576 | + | if outputs != 2 { | |
| 577 | + | t.Fatalf("%d wl_output globals, want 2", outputs) | |
| 578 | + | } | |
| 579 | + | ||
| 580 | + | win := uint32(x11Win) | |
| 581 | + | r.x11Window(win) | |
| 582 | + | events := make(chan []float64, 64) | |
| 583 | + | r.surfaceProxy = func(id uint32) wlturbo.Proxy { | |
| 584 | + | p := &eventLog{events: events} | |
| 585 | + | p.SetID(id) | |
| 586 | + | return p | |
| 587 | + | } | |
| 588 | + | r.pair(win, x11Serial) | |
| 589 | + | m := awaitEvent[ports.WindowMapped](t, r.events) | |
| 590 | + | ||
| 591 | + | // Straddling both outputs, configured on A. | |
| 592 | + | r.commands <- ports.PlaceWindow{ID: m.ID, X: 1900, Y: 0} | |
| 593 | + | r.commands <- ports.ConfigureWindow{ID: m.ID, Width: 200, Height: 100, Visible: true, Output: "A"} | |
| 594 | + | r.waitOn(m.ID, "A") | |
| 595 | + | if err := r.xc.Roundtrip(); err != nil { | |
| 596 | + | t.Fatal(err) | |
| 597 | + | } | |
| 598 | + | count := func() (enters, leaves int) { | |
| 599 | + | for len(events) > 0 { | |
| 600 | + | switch ev := <-events; ev[0] { | |
| 601 | + | case float64(wayland.SurfaceEventEnter): | |
| 602 | + | enters++ | |
| 603 | + | case float64(wayland.SurfaceEventLeave): | |
| 604 | + | leaves++ | |
| 605 | + | } | |
| 606 | + | } | |
| 607 | + | return | |
| 608 | + | } | |
| 609 | + | if e, l := count(); e != 1 || l != 0 { | |
| 610 | + | t.Fatalf("straddling window: %d enters, %d leaves, want 1, 0", e, l) | |
| 611 | + | } | |
| 612 | + | r.state(func() { | |
| 613 | + | if on := r.s.windows[m.ID].surf().on; on == nil || on.name() != "A" { | |
| 614 | + | t.Errorf("surface on %v, want A", on) | |
| 615 | + | } | |
| 616 | + | }) | |
| 617 | + | ||
| 618 | + | // Moving to B leaves A and enters B once. | |
| 619 | + | r.commands <- ports.ConfigureWindow{ID: m.ID, Width: 200, Height: 100, Visible: true, Output: "B"} | |
| 620 | + | r.waitOn(m.ID, "B") | |
| 621 | + | if err := r.xc.Roundtrip(); err != nil { | |
| 622 | + | t.Fatal(err) | |
| 623 | + | } | |
| 624 | + | if e, l := count(); e != 1 || l != 1 { | |
| 625 | + | t.Fatalf("move to B: %d enters, %d leaves, want 1, 1", e, l) | |
| 626 | + | } | |
| 627 | + | } | |
| @@ -9,8 +9,10 @@ import ( | |||||
| 9 | "time" | 9 | "time" | ||
| 10 | 10 | ||||
| 11 | "github.com/bnema/go-wayland-bindings/server/pointerconstraints" | 11 | "github.com/bnema/go-wayland-bindings/server/pointerconstraints" | ||
| 12 | + | "github.com/bnema/go-wayland-bindings/server/relativepointer" | |||
| 12 | "github.com/bnema/go-wayland-bindings/server/wayland" | 13 | "github.com/bnema/go-wayland-bindings/server/wayland" | ||
| 13 | "github.com/bnema/go-wayland-bindings/server/xdgshell" | 14 | "github.com/bnema/go-wayland-bindings/server/xdgshell" | ||
| 15 | + | "github.com/bnema/go-wayland-bindings/server/xwaylandkeyboardgrab" | |||
| 14 | "github.com/bnema/go-wayland-bindings/server/xwaylandshell" | 16 | "github.com/bnema/go-wayland-bindings/server/xwaylandshell" | ||
| 15 | "github.com/bnema/neferwl/internal/ports" | 17 | "github.com/bnema/neferwl/internal/ports" | ||
| 16 | "github.com/bnema/wlturbo" | 18 | "github.com/bnema/wlturbo" | ||
| @@ -33,6 +35,8 @@ type x11Rig struct { | |||||
| 33 | stop func() | 35 | stop func() | ||
| 34 | shell uint32 | 36 | shell uint32 | ||
| 35 | comp uint32 | 37 | comp uint32 | ||
| 38 | + | // surfaceProxy, when set, observes the next paired wl_surface. | |||
| 39 | + | surfaceProxy func(id uint32) wlturbo.Proxy | |||
| 36 | } | 40 | } | ||
| 37 | 41 | ||||
| 38 | func newX11Rig(t *testing.T) *x11Rig { | 42 | func newX11Rig(t *testing.T) *x11Rig { | ||
| @@ -86,7 +90,11 @@ func (r *x11Rig) pair(win uint32, serial uint64) uint32 { | |||||
| 86 | r.peer.clientMessage(win, "WL_SURFACE_SERIAL", uint32(serial), uint32(serial>>32)) | 90 | r.peer.clientMessage(win, "WL_SURFACE_SERIAL", uint32(serial), uint32(serial>>32)) | ||
| 87 | surf, xs := r.xc.AllocateID(), r.xc.AllocateID() | 91 | surf, xs := r.xc.AllocateID(), r.xc.AllocateID() | ||
| 88 | requestProtocol(r.t, r.xc, r.comp, wayland.CompositorRequestCreateSurface, surf) | 92 | requestProtocol(r.t, r.xc, r.comp, wayland.CompositorRequestCreateSurface, surf) | ||
| 89 | - | registerProtocol(r.t, r.xc, surf) | 93 | + | if r.surfaceProxy != nil { |
| 94 | + | registerWireProxy(r.xc, r.surfaceProxy(surf)) | |||
| 95 | + | } else { | |||
| 96 | + | registerProtocol(r.t, r.xc, surf) | |||
| 97 | + | } | |||
| 90 | requestProtocol(r.t, r.xc, r.shell, xwaylandshell.XwaylandShellV1RequestGetXwaylandSurface, xs, surf) | 98 | requestProtocol(r.t, r.xc, r.shell, xwaylandshell.XwaylandShellV1RequestGetXwaylandSurface, xs, surf) | ||
| 91 | registerProtocol(r.t, r.xc, xs) | 99 | registerProtocol(r.t, r.xc, xs) | ||
| 92 | requestProtocol(r.t, r.xc, xs, xwaylandshell.XwaylandSurfaceV1RequestSetSerial, uint32(serial), uint32(serial>>32)) | 100 | requestProtocol(r.t, r.xc, xs, xwaylandshell.XwaylandSurfaceV1RequestSetSerial, uint32(serial), uint32(serial>>32)) | ||
| @@ -351,3 +359,269 @@ func TestX11WindowPointerLock(t *testing.T) { | |||||
| 351 | t.Fatalf("constrained %+v", got) | 359 | t.Fatalf("constrained %+v", got) | ||
| 352 | } | 360 | } | ||
| 353 | } | 361 | } | ||
| 362 | + | ||||
| 363 | + | // grabRig is an X11 window with an Xwayland keyboard grab on its surface. | |||
| 364 | + | func grabRig(t *testing.T) (r *x11Rig, w ports.WindowID, surf uint32) { | |||
| 365 | + | t.Helper() | |||
| 366 | + | r = newX11Rig(t) | |||
| 367 | + | r.x11Window(x11Win) | |||
| 368 | + | surf = r.pair(x11Win, x11Serial) | |||
| 369 | + | w = awaitEvent[ports.WindowMapped](t, r.events).ID | |||
| 370 | + | seat := bindProtocol(t, r.xc, "wl_seat") | |||
| 371 | + | registerProtocol(t, r.xc, seat) | |||
| 372 | + | mgr := bindProtocol(t, r.xc, "zwp_xwayland_keyboard_grab_manager_v1") | |||
| 373 | + | grab := r.xc.AllocateID() | |||
| 374 | + | requestProtocol(t, r.xc, mgr, xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabManagerV1RequestGrabKeyboard, grab, surf, seat) | |||
| 375 | + | registerProtocol(t, r.xc, grab) | |||
| 376 | + | if err := r.xc.Roundtrip(); err != nil { | |||
| 377 | + | t.Fatal(err) | |||
| 378 | + | } | |||
| 379 | + | return r, w, grab | |||
| 380 | + | } | |||
| 381 | + | ||||
| 382 | + | // noInhibit fails when a ShortcutsInhibit event arrives shortly. | |||
| 383 | + | func noInhibit(t *testing.T, r *x11Rig) { | |||
| 384 | + | t.Helper() | |||
| 385 | + | if err := r.xc.Roundtrip(); err != nil { | |||
| 386 | + | t.Fatal(err) | |||
| 387 | + | } | |||
| 388 | + | for deadline := time.After(150 * time.Millisecond); ; { | |||
| 389 | + | select { | |||
| 390 | + | case ev := <-r.events: | |||
| 391 | + | if v, ok := ev.(ports.ShortcutsInhibit); ok { | |||
| 392 | + | t.Fatalf("unexpected %+v", v) | |||
| 393 | + | } | |||
| 394 | + | case <-deadline: | |||
| 395 | + | return | |||
| 396 | + | } | |||
| 397 | + | } | |||
| 398 | + | } | |||
| 399 | + | ||||
| 400 | + | func TestXwaylandKeyboardGrabThreeStates(t *testing.T) { | |||
| 401 | + | r, w, grab := grabRig(t) | |||
| 402 | + | // Windowed and focused: accepted, no effect. | |||
| 403 | + | r.commands <- ports.ConfigureWindow{ID: w, Width: 100, Height: 100, Visible: true} | |||
| 404 | + | r.commands <- ports.FocusWindow{ID: w} | |||
| 405 | + | noInhibit(t, r) | |||
| 406 | + | // Focused and fullscreen: inhibits. | |||
| 407 | + | r.commands <- ports.ConfigureWindow{ID: w, Width: 100, Height: 100, Visible: true, Fullscreen: true} | |||
| 408 | + | if v := awaitEvent[ports.ShortcutsInhibit](t, r.events); v != (ports.ShortcutsInhibit{Window: w, Active: true}) { | |||
| 409 | + | t.Fatal(v) | |||
| 410 | + | } | |||
| 411 | + | // Focus lost: released. | |||
| 412 | + | r.commands <- ports.FocusWindow{} | |||
| 413 | + | if v := awaitEvent[ports.ShortcutsInhibit](t, r.events); v != (ports.ShortcutsInhibit{Window: w}) { | |||
| 414 | + | t.Fatal(v) | |||
| 415 | + | } | |||
| 416 | + | // Back, then the grab object goes away. | |||
| 417 | + | r.commands <- ports.FocusWindow{ID: w} | |||
| 418 | + | awaitEvent[ports.ShortcutsInhibit](t, r.events) | |||
| 419 | + | requestProtocol(t, r.xc, grab, xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabV1RequestDestroy) | |||
| 420 | + | if v := awaitEvent[ports.ShortcutsInhibit](t, r.events); v != (ports.ShortcutsInhibit{Window: w}) { | |||
| 421 | + | t.Fatal(v) | |||
| 422 | + | } | |||
| 423 | + | } | |||
| 424 | + | ||||
| 425 | + | // x11Pointer gives the Xwayland client a wl_pointer and a relative pointer, | |||
| 426 | + | // both with event logs. | |||
| 427 | + | func (r *x11Rig) x11Pointer() (pointer uint32, ptrEvents, relEvents chan []float64) { | |||
| 428 | + | r.t.Helper() | |||
| 429 | + | seat := bindProtocol(r.t, r.xc, "wl_seat") | |||
| 430 | + | registerProtocol(r.t, r.xc, seat) | |||
| 431 | + | pointer = r.xc.AllocateID() | |||
| 432 | + | ptrEvents = logProxy(r.t, r.xc, pointer) | |||
| 433 | + | requestProtocol(r.t, r.xc, seat, wayland.SeatRequestGetPointer, pointer) | |||
| 434 | + | mgr := bindProtocol(r.t, r.xc, "zwp_relative_pointer_manager_v1") | |||
| 435 | + | rel := r.xc.AllocateID() | |||
| 436 | + | relEvents = logProxy(r.t, r.xc, rel) | |||
| 437 | + | requestProtocol(r.t, r.xc, mgr, relativepointer.ZwpRelativePointerManagerV1RequestGetRelativePointer, rel, pointer) | |||
| 438 | + | return pointer, ptrEvents, relEvents | |||
| 439 | + | } | |||
| 440 | + | ||||
| 441 | + | // A lock on an X11 surface activates with pointer and keyboard focus, sends | |||
| 442 | + | // relative motion to the Xwayland client and deactivates when a native | |||
| 443 | + | // window takes the focus; it comes back with the X11 focus. | |||
| 444 | + | func TestX11LockFollowsFocusAndRelativeMotion(t *testing.T) { | |||
| 445 | + | r := newX11Rig(t) | |||
| 446 | + | win := uint32(x11Win) | |||
| 447 | + | r.x11Window(win) | |||
| 448 | + | surf := r.pair(win, x11Serial) | |||
| 449 | + | m := awaitEvent[ports.WindowMapped](t, r.events) | |||
| 450 | + | pointer, _, relEvents := r.x11Pointer() | |||
| 451 | + | constraints := bindProtocol(t, r.xc, "zwp_pointer_constraints_v1") | |||
| 452 | + | lock := r.xc.AllocateID() | |||
| 453 | + | lockEvents := logProxy(t, r.xc, lock) | |||
| 454 | + | requestProtocol(t, r.xc, constraints, pointerconstraints.ZwpPointerConstraintsV1RequestLockPointer, lock, surf, pointer, uint32(0), uint32(pointerconstraints.ZwpPointerConstraintsV1LifetimePersistent)) | |||
| 455 | + | if err := r.xc.Roundtrip(); err != nil { | |||
| 456 | + | t.Fatal(err) | |||
| 457 | + | } | |||
| 458 | + | if len(lockEvents) > 0 { | |||
| 459 | + | t.Fatal("locked without focus") | |||
| 460 | + | } | |||
| 461 | + | ||||
| 462 | + | r.commands <- ports.PointerFocus{ID: m.ID} | |||
| 463 | + | r.commands <- ports.FocusWindow{ID: m.ID} | |||
| 464 | + | if ev := next(t, r.xc, lockEvents); ev[0] != float64(pointerconstraints.ZwpLockedPointerV1EventLocked) { | |||
| 465 | + | t.Fatalf("lock event %v", ev) | |||
| 466 | + | } | |||
| 467 | + | if got := constrained(t, r.events); got.ID != m.ID || got.Mode != ports.ConstraintLock || got.Rect != (ports.Rect{}) { | |||
| 468 | + | t.Fatalf("constrained %+v", got) | |||
| 469 | + | } | |||
| 470 | + | ||||
| 471 | + | r.commands <- ports.PointerMotionTo{ID: m.ID, X: 5, Y: 5, DX: 2.5, DY: -1, UnaccelDX: 4, UnaccelDY: -2} | |||
| 472 | + | if ev := next(t, r.xc, relEvents); len(ev) != 5 || ev[1] != 2.5 || ev[2] != -1 || ev[3] != 4 || ev[4] != -2 { | |||
| 473 | + | t.Fatalf("relative motion %v", ev) | |||
| 474 | + | } | |||
| 475 | + | ||||
| 476 | + | // A native window takes the focus: the X11 lock ends and the XWM drops | |||
| 477 | + | // the X focus. | |||
| 478 | + | nc := protocolClient(t, r.s, r.dir) | |||
| 479 | + | nm, _, _ := surfaceMapper(t, nc, r.events)() | |||
| 480 | + | skip := len(r.peer.requests()) | |||
| 481 | + | r.commands <- ports.FocusWindow{ID: nm.ID} | |||
| 482 | + | if ev := next(t, r.xc, lockEvents); ev[0] != float64(pointerconstraints.ZwpLockedPointerV1EventUnlocked) { | |||
| 483 | + | t.Fatalf("unlock event %v", ev) | |||
| 484 | + | } | |||
| 485 | + | if got := constrained(t, r.events); got.ID != 0 { | |||
| 486 | + | t.Fatalf("constrained %+v after native focus", got) | |||
| 487 | + | } | |||
| 488 | + | if f, _ := r.peer.waitReq(skip, func(q x11Req) bool { return q.major == x11OpSetInputFocus }); f.u32(4) == win { | |||
| 489 | + | t.Fatalf("X focus still on %#x", win) | |||
| 490 | + | } | |||
| 491 | + | ||||
| 492 | + | r.commands <- ports.FocusWindow{ID: m.ID} | |||
| 493 | + | if ev := next(t, r.xc, lockEvents); ev[0] != float64(pointerconstraints.ZwpLockedPointerV1EventLocked) { | |||
| 494 | + | t.Fatalf("relock event %v", ev) | |||
| 495 | + | } | |||
| 496 | + | } | |||
| 497 | + | ||||
| 498 | + | // A confine on an X11 surface reaches core with its region as given: an X11 | |||
| 499 | + | // window has no geometry offset. | |||
| 500 | + | func TestX11ConfineRegionHasNoOffset(t *testing.T) { | |||
| 501 | + | r := newX11Rig(t) | |||
| 502 | + | win := uint32(x11Win) | |||
| 503 | + | r.x11Window(win) | |||
| 504 | + | surf := r.pair(win, x11Serial) | |||
| 505 | + | m := awaitEvent[ports.WindowMapped](t, r.events) | |||
| 506 | + | pointer, _, _ := r.x11Pointer() | |||
| 507 | + | region := r.xc.AllocateID() | |||
| 508 | + | registerProtocol(t, r.xc, region) | |||
| 509 | + | requestProtocol(t, r.xc, r.comp, wayland.CompositorRequestCreateRegion, region) | |||
| 510 | + | requestProtocol(t, r.xc, region, wayland.RegionRequestAdd, int32(5), int32(6), int32(20), int32(30)) | |||
| 511 | + | constraints := bindProtocol(t, r.xc, "zwp_pointer_constraints_v1") | |||
| 512 | + | confine := r.xc.AllocateID() | |||
| 513 | + | confineEvents := logProxy(t, r.xc, confine) | |||
| 514 | + | requestProtocol(t, r.xc, constraints, pointerconstraints.ZwpPointerConstraintsV1RequestConfinePointer, confine, surf, pointer, region, uint32(pointerconstraints.ZwpPointerConstraintsV1LifetimePersistent)) | |||
| 515 | + | if err := r.xc.Roundtrip(); err != nil { | |||
| 516 | + | t.Fatal(err) | |||
| 517 | + | } | |||
| 518 | + | r.state(func() { | |||
| 519 | + | if g := r.s.windows[m.ID].geometry(); g != (ports.Rect{}) { | |||
| 520 | + | t.Errorf("X11 geometry %+v, want zero", g) | |||
| 521 | + | } | |||
| 522 | + | }) | |||
| 523 | + | ||||
| 524 | + | r.commands <- ports.PointerFocus{ID: m.ID, X: 10, Y: 10} | |||
| 525 | + | r.commands <- ports.FocusWindow{ID: m.ID} | |||
| 526 | + | r.commands <- ports.PointerMotionTo{ID: m.ID, X: 10, Y: 10} | |||
| 527 | + | if ev := next(t, r.xc, confineEvents); ev[0] != float64(pointerconstraints.ZwpConfinedPointerV1EventConfined) { | |||
| 528 | + | t.Fatalf("confine event %v", ev) | |||
| 529 | + | } | |||
| 530 | + | want := ports.PointerConstrained{ID: m.ID, PointerConstraint: ports.PointerConstraint{Mode: ports.ConstraintConfine, Rect: ports.Rect{X: 5, Y: 6, W: 20, H: 30}}} | |||
| 531 | + | if got := constrained(t, r.events); got != want { | |||
| 532 | + | t.Fatalf("constrained %+v, want %+v", got, want) | |||
| 533 | + | } | |||
| 534 | + | } | |||
| 535 | + | ||||
| 536 | + | // waitOn waits until window id's surface is on output name: commands reach | |||
| 537 | + | // the display goroutine asynchronously. | |||
| 538 | + | func (r *x11Rig) waitOn(id ports.WindowID, name string) { | |||
| 539 | + | r.t.Helper() | |||
| 540 | + | waitTrue(r.t, "surface on "+name, func() bool { | |||
| 541 | + | ok := false | |||
| 542 | + | r.state(func() { | |||
| 543 | + | if w := r.s.windows[id]; w != nil { | |||
| 544 | + | on := w.surf().on | |||
| 545 | + | ok = on != nil && on.name() == name | |||
| 546 | + | } | |||
| 547 | + | }) | |||
| 548 | + | return ok | |||
| 549 | + | }) | |||
| 550 | + | } | |||
| 551 | + | ||||
| 552 | + | // An X11 window is on one output only, even straddling two: a single | |||
| 553 | + | // wl_surface.enter, and a leave only when its output changes. | |||
| 554 | + | func TestX11WindowEntersOneOutput(t *testing.T) { | |||
| 555 | + | r := newX11Rig(t) | |||
| 556 | + | r.commands <- ports.SetOutputs{Outputs: ports.Layout{ | |||
| 557 | + | {Info: ports.OutputInfo{Name: "A"}, X: 0, Y: 0, Width: 1920, Height: 1080, Scale: 1}, | |||
| 558 | + | {Info: ports.OutputInfo{Name: "B"}, X: 1920, Y: 0, Width: 1920, Height: 1080, Scale: 1}, | |||
| 559 | + | }, Focused: "A"} | |||
| 560 | + | r.state(func() {}) // the layout is applied | |||
| 561 | + | if err := r.xc.Roundtrip(); err != nil { | |||
| 562 | + | t.Fatal(err) | |||
| 563 | + | } | |||
| 564 | + | outputs := 0 | |||
| 565 | + | for _, g := range r.xc.Registry().GetGlobals() { | |||
| 566 | + | if g.Interface != "wl_output" { | |||
| 567 | + | continue | |||
| 568 | + | } | |||
| 569 | + | id, err := bindWireID(r.xc, g.Name, g.Interface, 1) | |||
| 570 | + | if err != nil { | |||
| 571 | + | t.Fatal(err) | |||
| 572 | + | } | |||
| 573 | + | registerProtocol(t, r.xc, id) | |||
| 574 | + | outputs++ | |||
| 575 | + | } | |||
| 576 | + | if outputs != 2 { | |||
| 577 | + | t.Fatalf("%d wl_output globals, want 2", outputs) | |||
| 578 | + | } | |||
| 579 | + | ||||
| 580 | + | win := uint32(x11Win) | |||
| 581 | + | r.x11Window(win) | |||
| 582 | + | events := make(chan []float64, 64) | |||
| 583 | + | r.surfaceProxy = func(id uint32) wlturbo.Proxy { | |||
| 584 | + | p := &eventLog{events: events} | |||
| 585 | + | p.SetID(id) | |||
| 586 | + | return p | |||
| 587 | + | } | |||
| 588 | + | r.pair(win, x11Serial) | |||
| 589 | + | m := awaitEvent[ports.WindowMapped](t, r.events) | |||
| 590 | + | ||||
| 591 | + | // Straddling both outputs, configured on A. | |||
| 592 | + | r.commands <- ports.PlaceWindow{ID: m.ID, X: 1900, Y: 0} | |||
| 593 | + | r.commands <- ports.ConfigureWindow{ID: m.ID, Width: 200, Height: 100, Visible: true, Output: "A"} | |||
| 594 | + | r.waitOn(m.ID, "A") | |||
| 595 | + | if err := r.xc.Roundtrip(); err != nil { | |||
| 596 | + | t.Fatal(err) | |||
| 597 | + | } | |||
| 598 | + | count := func() (enters, leaves int) { | |||
| 599 | + | for len(events) > 0 { | |||
| 600 | + | switch ev := <-events; ev[0] { | |||
| 601 | + | case float64(wayland.SurfaceEventEnter): | |||
| 602 | + | enters++ | |||
| 603 | + | case float64(wayland.SurfaceEventLeave): | |||
| 604 | + | leaves++ | |||
| 605 | + | } | |||
| 606 | + | } | |||
| 607 | + | return | |||
| 608 | + | } | |||
| 609 | + | if e, l := count(); e != 1 || l != 0 { | |||
| 610 | + | t.Fatalf("straddling window: %d enters, %d leaves, want 1, 0", e, l) | |||
| 611 | + | } | |||
| 612 | + | r.state(func() { | |||
| 613 | + | if on := r.s.windows[m.ID].surf().on; on == nil || on.name() != "A" { | |||
| 614 | + | t.Errorf("surface on %v, want A", on) | |||
| 615 | + | } | |||
| 616 | + | }) | |||
| 617 | + | ||||
| 618 | + | // Moving to B leaves A and enters B once. | |||
| 619 | + | r.commands <- ports.ConfigureWindow{ID: m.ID, Width: 200, Height: 100, Visible: true, Output: "B"} | |||
| 620 | + | r.waitOn(m.ID, "B") | |||
| 621 | + | if err := r.xc.Roundtrip(); err != nil { | |||
| 622 | + | t.Fatal(err) | |||
| 623 | + | } | |||
| 624 | + | if e, l := count(); e != 1 || l != 1 { | |||
| 625 | + | t.Fatalf("move to B: %d enters, %d leaves, want 1, 1", e, l) | |||
| 626 | + | } | |||
| 627 | + | } | |||
A internal/adapters/wayland/xwaylandgrab.go +90 -0
| @@ -0,0 +1,90 @@ | |||
| 1 | + | package wayland | |
| 2 | + | ||
| 3 | + | import ( | |
| 4 | + | "github.com/bnema/go-wayland-bindings/server/wayland" | |
| 5 | + | "github.com/bnema/go-wayland-bindings/server/xwaylandkeyboardgrab" | |
| 6 | + | "github.com/bnema/neferwl/internal/ports" | |
| 7 | + | "github.com/bnema/purego-libwayland/server" | |
| 8 | + | ) | |
| 9 | + | ||
| 10 | + | // zwp_xwayland_keyboard_grab_v1. Xwayland asks for it when an X client | |
| 11 | + | // takes an active keyboard grab. It is a shortcuts inhibitor, but only | |
| 12 | + | // while the grabbing surface's window has the keyboard focus and is | |
| 13 | + | // fullscreen: a windowed app must not lock the compositor binds out. | |
| 14 | + | // Otherwise the request is accepted and has no effect. Never honoured | |
| 15 | + | // while the session is protected. The global is visible to Xwayland only | |
| 16 | + | // (xwaylandRestricted). | |
| 17 | + | ||
| 18 | + | // xwaylandGrab is the seat's single grab. | |
| 19 | + | type xwaylandGrab struct { | |
| 20 | + | res *xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabV1 | |
| 21 | + | surf *surface | |
| 22 | + | } | |
| 23 | + | ||
| 24 | + | func registerXwaylandGrab(d *server.Display, s *Server) error { | |
| 25 | + | return xwaylandkeyboardgrab.NewZwpXwaylandKeyboardGrabManagerV1Global(d, 1, func(c server.Client, v, id uint32) { | |
| 26 | + | _, _ = xwaylandkeyboardgrab.NewZwpXwaylandKeyboardGrabManagerV1(c, int32(v), id, xwaylandGrabManager{s}) | |
| 27 | + | }) | |
| 28 | + | } | |
| 29 | + | ||
| 30 | + | type xwaylandGrabManager struct{ s *Server } | |
| 31 | + | ||
| 32 | + | func (xwaylandGrabManager) Destroy(*xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabManagerV1) {} | |
| 33 | + | ||
| 34 | + | // GrabKeyboard replaces the seat's grab with a new one. | |
| 35 | + | func (m xwaylandGrabManager) GrabKeyboard(r *xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabManagerV1, id uint32, surf *wayland.Surface, _ *wayland.Seat) { | |
| 36 | + | state := m.s.surfaceOf(surf) | |
| 37 | + | if state == nil { | |
| 38 | + | return | |
| 39 | + | } | |
| 40 | + | g := &xwaylandGrab{surf: state} | |
| 41 | + | res, err := xwaylandkeyboardgrab.NewZwpXwaylandKeyboardGrabV1(r.Client(), r.Version(), id, xwaylandGrabHandler{}) | |
| 42 | + | if err != nil { | |
| 43 | + | return | |
| 44 | + | } | |
| 45 | + | g.res = res | |
| 46 | + | old := m.s.xgrab | |
| 47 | + | m.s.xgrab = g | |
| 48 | + | res.OnDestroy = func() { | |
| 49 | + | if m.s.xgrab == g { | |
| 50 | + | m.s.xgrab = nil | |
| 51 | + | m.s.syncKeyboardGrab() | |
| 52 | + | } | |
| 53 | + | } | |
| 54 | + | if old != nil && old.res != nil && old.res.Resource.Alive() { | |
| 55 | + | old.res.Resource.Destroy() | |
| 56 | + | } | |
| 57 | + | m.s.syncKeyboardGrab() | |
| 58 | + | } | |
| 59 | + | ||
| 60 | + | type xwaylandGrabHandler struct{} | |
| 61 | + | ||
| 62 | + | func (xwaylandGrabHandler) Destroy(*xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabV1) {} | |
| 63 | + | ||
| 64 | + | // xgrabWindow is the window whose grab is in effect (0: none). | |
| 65 | + | func (s *Server) xgrabWindow() ports.WindowID { | |
| 66 | + | g := s.xgrab | |
| 67 | + | if g == nil || g.surf == nil || g.surf.destroyed || !g.res.Resource.Alive() { | |
| 68 | + | return 0 | |
| 69 | + | } | |
| 70 | + | if s.security != nil && s.security.Snapshot().Protected { | |
| 71 | + | return 0 | |
| 72 | + | } | |
| 73 | + | id := g.surf.root().windowID() | |
| 74 | + | if id == 0 || id != s.seat.focused { | |
| 75 | + | return 0 | |
| 76 | + | } | |
| 77 | + | if w := s.windows[id]; w == nil || !w.hasLast || !w.last.Fullscreen { | |
| 78 | + | return 0 | |
| 79 | + | } | |
| 80 | + | return id | |
| 81 | + | } | |
| 82 | + | ||
| 83 | + | // syncKeyboardGrab re-evaluates the grab after a focus or fullscreen | |
| 84 | + | // change, and reports to core only when its effect changed. | |
| 85 | + | func (s *Server) syncKeyboardGrab() { | |
| 86 | + | if id := s.xgrabWindow(); id != s.xgrabbed { | |
| 87 | + | s.xgrabbed = id | |
| 88 | + | s.syncInhibitors() | |
| 89 | + | } | |
| 90 | + | } | |
| @@ -0,0 +1,90 @@ | |||||
| 1 | + | package wayland | |||
| 2 | + | ||||
| 3 | + | import ( | |||
| 4 | + | "github.com/bnema/go-wayland-bindings/server/wayland" | |||
| 5 | + | "github.com/bnema/go-wayland-bindings/server/xwaylandkeyboardgrab" | |||
| 6 | + | "github.com/bnema/neferwl/internal/ports" | |||
| 7 | + | "github.com/bnema/purego-libwayland/server" | |||
| 8 | + | ) | |||
| 9 | + | ||||
| 10 | + | // zwp_xwayland_keyboard_grab_v1. Xwayland asks for it when an X client | |||
| 11 | + | // takes an active keyboard grab. It is a shortcuts inhibitor, but only | |||
| 12 | + | // while the grabbing surface's window has the keyboard focus and is | |||
| 13 | + | // fullscreen: a windowed app must not lock the compositor binds out. | |||
| 14 | + | // Otherwise the request is accepted and has no effect. Never honoured | |||
| 15 | + | // while the session is protected. The global is visible to Xwayland only | |||
| 16 | + | // (xwaylandRestricted). | |||
| 17 | + | ||||
| 18 | + | // xwaylandGrab is the seat's single grab. | |||
| 19 | + | type xwaylandGrab struct { | |||
| 20 | + | res *xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabV1 | |||
| 21 | + | surf *surface | |||
| 22 | + | } | |||
| 23 | + | ||||
| 24 | + | func registerXwaylandGrab(d *server.Display, s *Server) error { | |||
| 25 | + | return xwaylandkeyboardgrab.NewZwpXwaylandKeyboardGrabManagerV1Global(d, 1, func(c server.Client, v, id uint32) { | |||
| 26 | + | _, _ = xwaylandkeyboardgrab.NewZwpXwaylandKeyboardGrabManagerV1(c, int32(v), id, xwaylandGrabManager{s}) | |||
| 27 | + | }) | |||
| 28 | + | } | |||
| 29 | + | ||||
| 30 | + | type xwaylandGrabManager struct{ s *Server } | |||
| 31 | + | ||||
| 32 | + | func (xwaylandGrabManager) Destroy(*xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabManagerV1) {} | |||
| 33 | + | ||||
| 34 | + | // GrabKeyboard replaces the seat's grab with a new one. | |||
| 35 | + | func (m xwaylandGrabManager) GrabKeyboard(r *xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabManagerV1, id uint32, surf *wayland.Surface, _ *wayland.Seat) { | |||
| 36 | + | state := m.s.surfaceOf(surf) | |||
| 37 | + | if state == nil { | |||
| 38 | + | return | |||
| 39 | + | } | |||
| 40 | + | g := &xwaylandGrab{surf: state} | |||
| 41 | + | res, err := xwaylandkeyboardgrab.NewZwpXwaylandKeyboardGrabV1(r.Client(), r.Version(), id, xwaylandGrabHandler{}) | |||
| 42 | + | if err != nil { | |||
| 43 | + | return | |||
| 44 | + | } | |||
| 45 | + | g.res = res | |||
| 46 | + | old := m.s.xgrab | |||
| 47 | + | m.s.xgrab = g | |||
| 48 | + | res.OnDestroy = func() { | |||
| 49 | + | if m.s.xgrab == g { | |||
| 50 | + | m.s.xgrab = nil | |||
| 51 | + | m.s.syncKeyboardGrab() | |||
| 52 | + | } | |||
| 53 | + | } | |||
| 54 | + | if old != nil && old.res != nil && old.res.Resource.Alive() { | |||
| 55 | + | old.res.Resource.Destroy() | |||
| 56 | + | } | |||
| 57 | + | m.s.syncKeyboardGrab() | |||
| 58 | + | } | |||
| 59 | + | ||||
| 60 | + | type xwaylandGrabHandler struct{} | |||
| 61 | + | ||||
| 62 | + | func (xwaylandGrabHandler) Destroy(*xwaylandkeyboardgrab.ZwpXwaylandKeyboardGrabV1) {} | |||
| 63 | + | ||||
| 64 | + | // xgrabWindow is the window whose grab is in effect (0: none). | |||
| 65 | + | func (s *Server) xgrabWindow() ports.WindowID { | |||
| 66 | + | g := s.xgrab | |||
| 67 | + | if g == nil || g.surf == nil || g.surf.destroyed || !g.res.Resource.Alive() { | |||
| 68 | + | return 0 | |||
| 69 | + | } | |||
| 70 | + | if s.security != nil && s.security.Snapshot().Protected { | |||
| 71 | + | return 0 | |||
| 72 | + | } | |||
| 73 | + | id := g.surf.root().windowID() | |||
| 74 | + | if id == 0 || id != s.seat.focused { | |||
| 75 | + | return 0 | |||
| 76 | + | } | |||
| 77 | + | if w := s.windows[id]; w == nil || !w.hasLast || !w.last.Fullscreen { | |||
| 78 | + | return 0 | |||
| 79 | + | } | |||
| 80 | + | return id | |||
| 81 | + | } | |||
| 82 | + | ||||
| 83 | + | // syncKeyboardGrab re-evaluates the grab after a focus or fullscreen | |||
| 84 | + | // change, and reports to core only when its effect changed. | |||
| 85 | + | func (s *Server) syncKeyboardGrab() { | |||
| 86 | + | if id := s.xgrabWindow(); id != s.xgrabbed { | |||
| 87 | + | s.xgrabbed = id | |||
| 88 | + | s.syncInhibitors() | |||
| 89 | + | } | |||
| 90 | + | } | |||
M internal/adapters/wayland/xwm/configure_test.go +18 -0
| @@ -563,3 +563,21 @@ func TestFocusAllocations(t *testing.T) { | |||
| 563 | 563 | require.Zero(t, allocs) | |
| 564 | 564 | require.False(t, x.closed) | |
| 565 | 565 | } | |
| 566 | + | ||
| 567 | + | // Repeated identical fullscreen configures cost nothing. | |
| 568 | + | func TestFullscreenConfigureAllocations(t *testing.T) { | |
| 569 | + | x, p, h, _, _ := attached(t) | |
| 570 | + | s := newWin(t, x, p, h, 0x500001) | |
| 571 | + | sinkPeer(t, x, p) | |
| 572 | + | cfg := ports.ConfigureWindow{Width: 1920, Height: 1080, Fullscreen: true, Activated: true} | |
| 573 | + | x.Configure(s, cfg) | |
| 574 | + | x.posted = false | |
| 575 | + | x.flush() | |
| 576 | + | allocs := testing.AllocsPerRun(300, func() { | |
| 577 | + | x.Configure(s, cfg) | |
| 578 | + | x.Place(s, 0, 0) | |
| 579 | + | x.posted = false | |
| 580 | + | x.flush() | |
| 581 | + | }) | |
| 582 | + | require.Zero(t, allocs) | |
| 583 | + | } | |
| @@ -563,3 +563,21 @@ func TestFocusAllocations(t *testing.T) { | |||||
| 563 | require.Zero(t, allocs) | 563 | require.Zero(t, allocs) | ||
| 564 | require.False(t, x.closed) | 564 | require.False(t, x.closed) | ||
| 565 | } | 565 | } | ||
| 566 | + | ||||
| 567 | + | // Repeated identical fullscreen configures cost nothing. | |||
| 568 | + | func TestFullscreenConfigureAllocations(t *testing.T) { | |||
| 569 | + | x, p, h, _, _ := attached(t) | |||
| 570 | + | s := newWin(t, x, p, h, 0x500001) | |||
| 571 | + | sinkPeer(t, x, p) | |||
| 572 | + | cfg := ports.ConfigureWindow{Width: 1920, Height: 1080, Fullscreen: true, Activated: true} | |||
| 573 | + | x.Configure(s, cfg) | |||
| 574 | + | x.posted = false | |||
| 575 | + | x.flush() | |||
| 576 | + | allocs := testing.AllocsPerRun(300, func() { | |||
| 577 | + | x.Configure(s, cfg) | |||
| 578 | + | x.Place(s, 0, 0) | |||
| 579 | + | x.posted = false | |||
| 580 | + | x.flush() | |||
| 581 | + | }) | |||
| 582 | + | require.Zero(t, allocs) | |||
| 583 | + | } | |||
M internal/adapters/wayland/xwm/host.go +8 -3
| @@ -13,9 +13,14 @@ type WindowInfo struct { | |||
| 13 | 13 | Floating bool // dialog/utility/splash/fixed size | |
| 14 | 14 | Width, Height int // requested size, logical (scale 1) | |
| 15 | 15 | Parent Slot | |
| 16 | - | Modal bool // _NET_WM_STATE_MODAL | |
| 17 | - | Fullscreen bool // _NET_WM_STATE_FULLSCREEN at map | |
| 18 | - | Title, AppID string | |
| 16 | + | Modal bool // _NET_WM_STATE_MODAL | |
| 17 | + | Fullscreen bool // _NET_WM_STATE_FULLSCREEN at map | |
| 18 | + | Bypass uint8 // _NET_WM_BYPASS_COMPOSITOR (0 unset, 1 bypass, 2 do not) | |
| 19 | + | // HasAt: the client asked for a rect equal to a whole output; AtX, AtY | |
| 20 | + | // is that output's layout origin. | |
| 21 | + | HasAt bool | |
| 22 | + | AtX, AtY int | |
| 23 | + | Title, AppID string | |
| 19 | 24 | } | |
| 20 | 25 | ||
| 21 | 26 | // host is the wayland server as the XWM sees it. Display goroutine only. | |
| @@ -13,9 +13,14 @@ type WindowInfo struct { | |||||
| 13 | Floating bool // dialog/utility/splash/fixed size | 13 | Floating bool // dialog/utility/splash/fixed size | ||
| 14 | Width, Height int // requested size, logical (scale 1) | 14 | Width, Height int // requested size, logical (scale 1) | ||
| 15 | Parent Slot | 15 | Parent Slot | ||
| 16 | - | Modal bool // _NET_WM_STATE_MODAL | 16 | + | Modal bool // _NET_WM_STATE_MODAL |
| 17 | - | Fullscreen bool // _NET_WM_STATE_FULLSCREEN at map | 17 | + | Fullscreen bool // _NET_WM_STATE_FULLSCREEN at map |
| 18 | - | Title, AppID string | 18 | + | Bypass uint8 // _NET_WM_BYPASS_COMPOSITOR (0 unset, 1 bypass, 2 do not) |
| 19 | + | // HasAt: the client asked for a rect equal to a whole output; AtX, AtY | |||
| 20 | + | // is that output's layout origin. | |||
| 21 | + | HasAt bool | |||
| 22 | + | AtX, AtY int | |||
| 23 | + | Title, AppID string | |||
| 19 | } | 24 | } | ||
| 20 | 25 | ||||
| 21 | // host is the wayland server as the XWM sees it. Display goroutine only. | 26 | // host is the wayland server as the XWM sees it. Display goroutine only. | ||
M internal/adapters/wayland/xwm/mapflow.go +4 -0
| @@ -142,6 +142,10 @@ func (x *XWM) info(s Slot) WindowInfo { | |||
| 142 | 142 | Fullscreen: rec.fullscreen, | |
| 143 | 143 | Title: rec.title, | |
| 144 | 144 | AppID: rec.class, | |
| 145 | + | Bypass: rec.bypass, | |
| 146 | + | } | |
| 147 | + | if rec.sized && !info.Floating { | |
| 148 | + | info.AtX, info.AtY, info.HasAt = x.space.WholeOutput(int(rec.x), int(rec.y), int(rec.w), int(rec.h)) | |
| 145 | 149 | } | |
| 146 | 150 | if info.Floating || rec.sized { | |
| 147 | 151 | info.Width, info.Height = int(rec.w), int(rec.h) | |
| @@ -142,6 +142,10 @@ func (x *XWM) info(s Slot) WindowInfo { | |||||
| 142 | Fullscreen: rec.fullscreen, | 142 | Fullscreen: rec.fullscreen, | ||
| 143 | Title: rec.title, | 143 | Title: rec.title, | ||
| 144 | AppID: rec.class, | 144 | AppID: rec.class, | ||
| 145 | + | Bypass: rec.bypass, | |||
| 146 | + | } | |||
| 147 | + | if rec.sized && !info.Floating { | |||
| 148 | + | info.AtX, info.AtY, info.HasAt = x.space.WholeOutput(int(rec.x), int(rec.y), int(rec.w), int(rec.h)) | |||
| 145 | } | 149 | } | ||
| 146 | if info.Floating || rec.sized { | 150 | if info.Floating || rec.sized { | ||
| 147 | info.Width, info.Height = int(rec.w), int(rec.h) | 151 | info.Width, info.Height = int(rec.w), int(rec.h) | ||
M internal/adapters/wayland/xwm/mapflow_test.go +29 -2
| @@ -121,7 +121,7 @@ func TestMapFlowBatchesRequestsAndReadyFiresOnce(t *testing.T) { | |||
| 121 | 121 | want := []uint32{ | |
| 122 | 122 | uint32(xproto.AtomWmClass), uint32(xproto.AtomWmName), hs.p.atom("_NET_WM_NAME"), uint32(xproto.AtomWmHints), | |
| 123 | 123 | uint32(xproto.AtomWmNormalHints), hs.p.atom("WM_PROTOCOLS"), uint32(xproto.AtomWmTransientFor), | |
| 124 | - | hs.p.atom("_NET_WM_WINDOW_TYPE"), hs.p.atom("_NET_WM_STATE"), hs.p.atom("_NET_WM_PID"), | |
| 124 | + | hs.p.atom("_NET_WM_WINDOW_TYPE"), hs.p.atom("_NET_WM_STATE"), hs.p.atom("_NET_WM_PID"), hs.p.atom("_NET_WM_BYPASS_COMPOSITOR"), | |
| 125 | 125 | } | |
| 126 | 126 | require.GreaterOrEqual(t, len(reqs), len(want)+2) | |
| 127 | 127 | for i, a := range want { | |
| @@ -180,6 +180,16 @@ func TestMapFlowFloatingAndModal(t *testing.T) { | |||
| 180 | 180 | {"modal", func(hs *harness, w uint32) { | |
| 181 | 181 | hs.atoms(w, "_NET_WM_STATE", "_NET_WM_STATE_MODAL") | |
| 182 | 182 | }, func(i WindowInfo) { require.True(t, i.Modal); require.False(t, i.Fullscreen) }}, | |
| 183 | + | {"bypass 1", func(hs *harness, w uint32) { | |
| 184 | + | hs.words(w, "_NET_WM_BYPASS_COMPOSITOR", uint32(xproto.AtomCardinal), 1) | |
| 185 | + | }, func(i WindowInfo) { require.EqualValues(t, 1, i.Bypass) }}, | |
| 186 | + | {"bypass 2 kept", func(hs *harness, w uint32) { | |
| 187 | + | hs.words(w, "_NET_WM_BYPASS_COMPOSITOR", uint32(xproto.AtomCardinal), 2) | |
| 188 | + | }, func(i WindowInfo) { require.EqualValues(t, 2, i.Bypass) }}, | |
| 189 | + | {"bypass absent", func(hs *harness, w uint32) {}, func(i WindowInfo) { require.Zero(t, i.Bypass) }}, | |
| 190 | + | {"class steam_app", func(hs *harness, w uint32) { | |
| 191 | + | hs.p.setProp(w, uint32(xproto.AtomWmClass), uint32(xproto.AtomString), 8, []byte("steam_app_892970\x00steam_app_892970\x00")) | |
| 192 | + | }, func(i WindowInfo) { require.Equal(t, "steam_app_892970", i.AppID) }}, | |
| 183 | 193 | {"fullscreen at map", func(hs *harness, w uint32) { | |
| 184 | 194 | hs.atoms(w, "_NET_WM_STATE", "_NET_WM_STATE_FULLSCREEN") | |
| 185 | 195 | }, func(i WindowInfo) { require.True(t, i.Fullscreen) }}, | |
| @@ -746,7 +756,7 @@ func TestMapFlowReadyFiresOnLastReplyInAnyOrder(t *testing.T) { | |||
| 746 | 756 | r := hs.x.tab.rec(s) | |
| 747 | 757 | r.mapping, r.pending = true, propMaskAll&^propClientIDs | |
| 748 | 758 | hs.expectReady(win) | |
| 749 | - | order := []int{propCount, propPID, propClass, propNetName, propName, propHints, propNormalHints, propProtocols, propTransientFor, propWindowType, propState} | |
| 759 | + | order := []int{propCount, propPID, propBypass, propClass, propNetName, propName, propHints, propNormalHints, propProtocols, propTransientFor, propWindowType, propState} | |
| 750 | 760 | for i, bit := range order { | |
| 751 | 761 | require.False(t, hs.x.tab.rec(s).ready, i) | |
| 752 | 762 | if bit == propCount { // the geometry | |
| @@ -777,3 +787,20 @@ func TestMapFlowReadyFiresOnLastReplyInAnyOrder(t *testing.T) { | |||
| 777 | 787 | require.Equal(t, "t", hs.ready[win].Title) | |
| 778 | 788 | require.Equal(t, 5, hs.ready[win].PID) | |
| 779 | 789 | } | |
| 790 | + | ||
| 791 | + | func TestMapFlowWholeOutputRectSetsHint(t *testing.T) { | |
| 792 | + | hs := newHarness(t, nil) | |
| 793 | + | hs.x.space.Set(ports.Layout{out(0, 0, 1920, 1080), out(1920, 0, 1280, 1024)}) | |
| 794 | + | const win = 0x500001 | |
| 795 | + | hs.classic(win) | |
| 796 | + | s := hs.create(win) | |
| 797 | + | r := hs.x.tab.rec(s) | |
| 798 | + | r.x, r.y, r.w, r.h, r.sized = 1920, 0, 1280, 1024, true | |
| 799 | + | info := hs.x.info(s) | |
| 800 | + | require.True(t, info.HasAt) | |
| 801 | + | require.Equal(t, 1920, info.AtX) | |
| 802 | + | r.h = 1000 | |
| 803 | + | require.False(t, hs.x.info(s).HasAt) | |
| 804 | + | r.h, r.sized = 1024, false | |
| 805 | + | require.False(t, hs.x.info(s).HasAt) | |
| 806 | + | } | |
| @@ -121,7 +121,7 @@ func TestMapFlowBatchesRequestsAndReadyFiresOnce(t *testing.T) { | |||||
| 121 | want := []uint32{ | 121 | want := []uint32{ | ||
| 122 | uint32(xproto.AtomWmClass), uint32(xproto.AtomWmName), hs.p.atom("_NET_WM_NAME"), uint32(xproto.AtomWmHints), | 122 | uint32(xproto.AtomWmClass), uint32(xproto.AtomWmName), hs.p.atom("_NET_WM_NAME"), uint32(xproto.AtomWmHints), | ||
| 123 | uint32(xproto.AtomWmNormalHints), hs.p.atom("WM_PROTOCOLS"), uint32(xproto.AtomWmTransientFor), | 123 | uint32(xproto.AtomWmNormalHints), hs.p.atom("WM_PROTOCOLS"), uint32(xproto.AtomWmTransientFor), | ||
| 124 | - | hs.p.atom("_NET_WM_WINDOW_TYPE"), hs.p.atom("_NET_WM_STATE"), hs.p.atom("_NET_WM_PID"), | 124 | + | hs.p.atom("_NET_WM_WINDOW_TYPE"), hs.p.atom("_NET_WM_STATE"), hs.p.atom("_NET_WM_PID"), hs.p.atom("_NET_WM_BYPASS_COMPOSITOR"), |
| 125 | } | 125 | } | ||
| 126 | require.GreaterOrEqual(t, len(reqs), len(want)+2) | 126 | require.GreaterOrEqual(t, len(reqs), len(want)+2) | ||
| 127 | for i, a := range want { | 127 | for i, a := range want { | ||
| @@ -180,6 +180,16 @@ func TestMapFlowFloatingAndModal(t *testing.T) { | |||||
| 180 | {"modal", func(hs *harness, w uint32) { | 180 | {"modal", func(hs *harness, w uint32) { | ||
| 181 | hs.atoms(w, "_NET_WM_STATE", "_NET_WM_STATE_MODAL") | 181 | hs.atoms(w, "_NET_WM_STATE", "_NET_WM_STATE_MODAL") | ||
| 182 | }, func(i WindowInfo) { require.True(t, i.Modal); require.False(t, i.Fullscreen) }}, | 182 | }, func(i WindowInfo) { require.True(t, i.Modal); require.False(t, i.Fullscreen) }}, | ||
| 183 | + | {"bypass 1", func(hs *harness, w uint32) { | |||
| 184 | + | hs.words(w, "_NET_WM_BYPASS_COMPOSITOR", uint32(xproto.AtomCardinal), 1) | |||
| 185 | + | }, func(i WindowInfo) { require.EqualValues(t, 1, i.Bypass) }}, | |||
| 186 | + | {"bypass 2 kept", func(hs *harness, w uint32) { | |||
| 187 | + | hs.words(w, "_NET_WM_BYPASS_COMPOSITOR", uint32(xproto.AtomCardinal), 2) | |||
| 188 | + | }, func(i WindowInfo) { require.EqualValues(t, 2, i.Bypass) }}, | |||
| 189 | + | {"bypass absent", func(hs *harness, w uint32) {}, func(i WindowInfo) { require.Zero(t, i.Bypass) }}, | |||
| 190 | + | {"class steam_app", func(hs *harness, w uint32) { | |||
| 191 | + | hs.p.setProp(w, uint32(xproto.AtomWmClass), uint32(xproto.AtomString), 8, []byte("steam_app_892970\x00steam_app_892970\x00")) | |||
| 192 | + | }, func(i WindowInfo) { require.Equal(t, "steam_app_892970", i.AppID) }}, | |||
| 183 | {"fullscreen at map", func(hs *harness, w uint32) { | 193 | {"fullscreen at map", func(hs *harness, w uint32) { | ||
| 184 | hs.atoms(w, "_NET_WM_STATE", "_NET_WM_STATE_FULLSCREEN") | 194 | hs.atoms(w, "_NET_WM_STATE", "_NET_WM_STATE_FULLSCREEN") | ||
| 185 | }, func(i WindowInfo) { require.True(t, i.Fullscreen) }}, | 195 | }, func(i WindowInfo) { require.True(t, i.Fullscreen) }}, | ||
| @@ -746,7 +756,7 @@ func TestMapFlowReadyFiresOnLastReplyInAnyOrder(t *testing.T) { | |||||
| 746 | r := hs.x.tab.rec(s) | 756 | r := hs.x.tab.rec(s) | ||
| 747 | r.mapping, r.pending = true, propMaskAll&^propClientIDs | 757 | r.mapping, r.pending = true, propMaskAll&^propClientIDs | ||
| 748 | hs.expectReady(win) | 758 | hs.expectReady(win) | ||
| 749 | - | order := []int{propCount, propPID, propClass, propNetName, propName, propHints, propNormalHints, propProtocols, propTransientFor, propWindowType, propState} | 759 | + | order := []int{propCount, propPID, propBypass, propClass, propNetName, propName, propHints, propNormalHints, propProtocols, propTransientFor, propWindowType, propState} |
| 750 | for i, bit := range order { | 760 | for i, bit := range order { | ||
| 751 | require.False(t, hs.x.tab.rec(s).ready, i) | 761 | require.False(t, hs.x.tab.rec(s).ready, i) | ||
| 752 | if bit == propCount { // the geometry | 762 | if bit == propCount { // the geometry | ||
| @@ -777,3 +787,20 @@ func TestMapFlowReadyFiresOnLastReplyInAnyOrder(t *testing.T) { | |||||
| 777 | require.Equal(t, "t", hs.ready[win].Title) | 787 | require.Equal(t, "t", hs.ready[win].Title) | ||
| 778 | require.Equal(t, 5, hs.ready[win].PID) | 788 | require.Equal(t, 5, hs.ready[win].PID) | ||
| 779 | } | 789 | } | ||
| 790 | + | ||||
| 791 | + | func TestMapFlowWholeOutputRectSetsHint(t *testing.T) { | |||
| 792 | + | hs := newHarness(t, nil) | |||
| 793 | + | hs.x.space.Set(ports.Layout{out(0, 0, 1920, 1080), out(1920, 0, 1280, 1024)}) | |||
| 794 | + | const win = 0x500001 | |||
| 795 | + | hs.classic(win) | |||
| 796 | + | s := hs.create(win) | |||
| 797 | + | r := hs.x.tab.rec(s) | |||
| 798 | + | r.x, r.y, r.w, r.h, r.sized = 1920, 0, 1280, 1024, true | |||
| 799 | + | info := hs.x.info(s) | |||
| 800 | + | require.True(t, info.HasAt) | |||
| 801 | + | require.Equal(t, 1920, info.AtX) | |||
| 802 | + | r.h = 1000 | |||
| 803 | + | require.False(t, hs.x.info(s).HasAt) | |||
| 804 | + | r.h, r.sized = 1024, false | |||
| 805 | + | require.False(t, hs.x.info(s).HasAt) | |||
| 806 | + | } | |||
M internal/adapters/wayland/xwm/props.go +13 -0
| @@ -24,6 +24,7 @@ const ( | |||
| 24 | 24 | propWindowType | |
| 25 | 25 | propState | |
| 26 | 26 | propPID | |
| 27 | + | propBypass | |
| 27 | 28 | propCount | |
| 28 | 29 | ) | |
| 29 | 30 | ||
| @@ -67,6 +68,8 @@ func (x *XWM) propIndex(a uint32) int { | |||
| 67 | 68 | return propState | |
| 68 | 69 | case x.atoms[atomNetWMPID]: | |
| 69 | 70 | return propPID | |
| 71 | + | case x.atoms[atomNetWMBypassCompositor]: | |
| 72 | + | return propBypass | |
| 70 | 73 | } | |
| 71 | 74 | return -1 | |
| 72 | 75 | } | |
| @@ -91,6 +94,8 @@ func (x *XWM) propAtom(idx int) xproto.Atom { | |||
| 91 | 94 | return xproto.Atom(x.atoms[atomNetWMWindowType]) | |
| 92 | 95 | case propState: | |
| 93 | 96 | return xproto.Atom(x.atoms[atomNetWMState]) | |
| 97 | + | case propBypass: | |
| 98 | + | return xproto.Atom(x.atoms[atomNetWMBypassCompositor]) | |
| 94 | 99 | default: | |
| 95 | 100 | return xproto.Atom(x.atoms[atomNetWMPID]) | |
| 96 | 101 | } | |
| @@ -260,6 +265,14 @@ func (x *XWM) applyProp(s Slot, idx int, format uint8, val []byte) { | |||
| 260 | 265 | if changed && rec.ready { | |
| 261 | 266 | x.host.Fullscreen(s, fs) | |
| 262 | 267 | } | |
| 268 | + | case propBypass: | |
| 269 | + | // Kept for a later VRR/tearing policy; direct scanout and tearing | |
| 270 | + | // do not depend on it. 2 ("do not bypass") is ignored on purpose. | |
| 271 | + | rec.bypass = 0 | |
| 272 | + | if len(val) >= 4 { | |
| 273 | + | rec.bypass = uint8(min(word(val, 0), 2)) | |
| 274 | + | } | |
| 275 | + | x.log.Debug().Uint32("xid", rec.xid).Uint8("bypass", rec.bypass).Msg("_NET_WM_BYPASS_COMPOSITOR") | |
| 263 | 276 | case propPID: | |
| 264 | 277 | if len(val) >= 4 { | |
| 265 | 278 | rec.pid = int32(word(val, 0)) | |
| @@ -24,6 +24,7 @@ const ( | |||||
| 24 | propWindowType | 24 | propWindowType | ||
| 25 | propState | 25 | propState | ||
| 26 | propPID | 26 | propPID | ||
| 27 | + | propBypass | |||
| 27 | propCount | 28 | propCount | ||
| 28 | ) | 29 | ) | ||
| 29 | 30 | ||||
| @@ -67,6 +68,8 @@ func (x *XWM) propIndex(a uint32) int { | |||||
| 67 | return propState | 68 | return propState | ||
| 68 | case x.atoms[atomNetWMPID]: | 69 | case x.atoms[atomNetWMPID]: | ||
| 69 | return propPID | 70 | return propPID | ||
| 71 | + | case x.atoms[atomNetWMBypassCompositor]: | |||
| 72 | + | return propBypass | |||
| 70 | } | 73 | } | ||
| 71 | return -1 | 74 | return -1 | ||
| 72 | } | 75 | } | ||
| @@ -91,6 +94,8 @@ func (x *XWM) propAtom(idx int) xproto.Atom { | |||||
| 91 | return xproto.Atom(x.atoms[atomNetWMWindowType]) | 94 | return xproto.Atom(x.atoms[atomNetWMWindowType]) | ||
| 92 | case propState: | 95 | case propState: | ||
| 93 | return xproto.Atom(x.atoms[atomNetWMState]) | 96 | return xproto.Atom(x.atoms[atomNetWMState]) | ||
| 97 | + | case propBypass: | |||
| 98 | + | return xproto.Atom(x.atoms[atomNetWMBypassCompositor]) | |||
| 94 | default: | 99 | default: | ||
| 95 | return xproto.Atom(x.atoms[atomNetWMPID]) | 100 | return xproto.Atom(x.atoms[atomNetWMPID]) | ||
| 96 | } | 101 | } | ||
| @@ -260,6 +265,14 @@ func (x *XWM) applyProp(s Slot, idx int, format uint8, val []byte) { | |||||
| 260 | if changed && rec.ready { | 265 | if changed && rec.ready { | ||
| 261 | x.host.Fullscreen(s, fs) | 266 | x.host.Fullscreen(s, fs) | ||
| 262 | } | 267 | } | ||
| 268 | + | case propBypass: | |||
| 269 | + | // Kept for a later VRR/tearing policy; direct scanout and tearing | |||
| 270 | + | // do not depend on it. 2 ("do not bypass") is ignored on purpose. | |||
| 271 | + | rec.bypass = 0 | |||
| 272 | + | if len(val) >= 4 { | |||
| 273 | + | rec.bypass = uint8(min(word(val, 0), 2)) | |||
| 274 | + | } | |||
| 275 | + | x.log.Debug().Uint32("xid", rec.xid).Uint8("bypass", rec.bypass).Msg("_NET_WM_BYPASS_COMPOSITOR") | |||
| 263 | case propPID: | 276 | case propPID: | ||
| 264 | if len(val) >= 4 { | 277 | if len(val) >= 4 { | ||
| 265 | rec.pid = int32(word(val, 0)) | 278 | rec.pid = int32(word(val, 0)) | ||
M internal/adapters/wayland/xwm/space.go +11 -0
| @@ -114,6 +114,17 @@ func axisGap(v, lo, hi int) int { | |||
| 114 | 114 | return 0 | |
| 115 | 115 | } | |
| 116 | 116 | ||
| 117 | + | // WholeOutput reports whether the X rect is exactly one output's, and that | |
| 118 | + | // output's layout origin. | |
| 119 | + | func (s *Space) WholeOutput(x, y, w, h int) (lx, ly int, ok bool) { | |
| 120 | + | for i := 0; i < s.n; i++ { | |
| 121 | + | if r := s.regions[i]; r.X.X == x && r.X.Y == y && r.X.W == w && r.X.H == h { | |
| 122 | + | return r.Layout.X, r.Layout.Y, true | |
| 123 | + | } | |
| 124 | + | } | |
| 125 | + | return 0, 0, false | |
| 126 | + | } | |
| 127 | + | ||
| 117 | 128 | // ToX converts a layout point to X, through the nearest region. | |
| 118 | 129 | func (s *Space) ToX(lx, ly int) (x, y int) { | |
| 119 | 130 | i := s.nearest(lx, ly) | |
| @@ -114,6 +114,17 @@ func axisGap(v, lo, hi int) int { | |||||
| 114 | return 0 | 114 | return 0 | ||
| 115 | } | 115 | } | ||
| 116 | 116 | ||||
| 117 | + | // WholeOutput reports whether the X rect is exactly one output's, and that | |||
| 118 | + | // output's layout origin. | |||
| 119 | + | func (s *Space) WholeOutput(x, y, w, h int) (lx, ly int, ok bool) { | |||
| 120 | + | for i := 0; i < s.n; i++ { | |||
| 121 | + | if r := s.regions[i]; r.X.X == x && r.X.Y == y && r.X.W == w && r.X.H == h { | |||
| 122 | + | return r.Layout.X, r.Layout.Y, true | |||
| 123 | + | } | |||
| 124 | + | } | |||
| 125 | + | return 0, 0, false | |||
| 126 | + | } | |||
| 127 | + | ||||
| 117 | // ToX converts a layout point to X, through the nearest region. | 128 | // ToX converts a layout point to X, through the nearest region. | ||
| 118 | func (s *Space) ToX(lx, ly int) (x, y int) { | 129 | func (s *Space) ToX(lx, ly int) (x, y int) { | ||
| 119 | i := s.nearest(lx, ly) | 130 | i := s.nearest(lx, ly) | ||
M internal/adapters/wayland/xwm/space_test.go +16 -0
| @@ -92,3 +92,19 @@ func TestSpaceAllocations(t *testing.T) { | |||
| 92 | 92 | t.Fatalf("allocs = %v", n) | |
| 93 | 93 | } | |
| 94 | 94 | } | |
| 95 | + | ||
| 96 | + | func TestSpaceWholeOutputMatchesPlace(t *testing.T) { | |
| 97 | + | var s Space | |
| 98 | + | s.Set(ports.Layout{out(-640, 0, 640, 480), out(0, 0, 1920, 1080)}) | |
| 99 | + | lx, ly, ok := s.WholeOutput(0, 0, 640, 480) | |
| 100 | + | if !ok || lx != -640 || ly != 0 { | |
| 101 | + | t.Fatalf("WholeOutput = %d,%d,%v", lx, ly, ok) | |
| 102 | + | } | |
| 103 | + | // Placing the window at that origin lands on the same X point. | |
| 104 | + | if x, y := s.ToX(lx, ly); x != 0 || y != 0 { | |
| 105 | + | t.Fatalf("ToX = %d,%d", x, y) | |
| 106 | + | } | |
| 107 | + | if _, _, ok := s.WholeOutput(0, 0, 640, 481); ok { | |
| 108 | + | t.Fatal("partial rect matched") | |
| 109 | + | } | |
| 110 | + | } | |
| @@ -92,3 +92,19 @@ func TestSpaceAllocations(t *testing.T) { | |||||
| 92 | t.Fatalf("allocs = %v", n) | 92 | t.Fatalf("allocs = %v", n) | ||
| 93 | } | 93 | } | ||
| 94 | } | 94 | } | ||
| 95 | + | ||||
| 96 | + | func TestSpaceWholeOutputMatchesPlace(t *testing.T) { | |||
| 97 | + | var s Space | |||
| 98 | + | s.Set(ports.Layout{out(-640, 0, 640, 480), out(0, 0, 1920, 1080)}) | |||
| 99 | + | lx, ly, ok := s.WholeOutput(0, 0, 640, 480) | |||
| 100 | + | if !ok || lx != -640 || ly != 0 { | |||
| 101 | + | t.Fatalf("WholeOutput = %d,%d,%v", lx, ly, ok) | |||
| 102 | + | } | |||
| 103 | + | // Placing the window at that origin lands on the same X point. | |||
| 104 | + | if x, y := s.ToX(lx, ly); x != 0 || y != 0 { | |||
| 105 | + | t.Fatalf("ToX = %d,%d", x, y) | |||
| 106 | + | } | |||
| 107 | + | if _, _, ok := s.WholeOutput(0, 0, 640, 481); ok { | |||
| 108 | + | t.Fatal("partial rect matched") | |||
| 109 | + | } | |||
| 110 | + | } | |||
M internal/adapters/wayland/xwm/table.go +3 -2
| @@ -54,8 +54,9 @@ type record struct { | |||
| 54 | 54 | minW, minH, maxW, maxH int32 | |
| 55 | 55 | title, class string // owned, replaced only on change | |
| 56 | 56 | hasNetName bool | |
| 57 | - | floating bool // dialog-like type; set with the properties | |
| 58 | - | sized bool // the client asked for its size before Ready | |
| 57 | + | floating bool // dialog-like type; set with the properties | |
| 58 | + | bypass uint8 // _NET_WM_BYPASS_COMPOSITOR, 0..2 | |
| 59 | + | sized bool // the client asked for its size before Ready | |
| 59 | 60 | ||
| 60 | 61 | // pairing | |
| 61 | 62 | serial uint64 | |
| @@ -54,8 +54,9 @@ type record struct { | |||||
| 54 | minW, minH, maxW, maxH int32 | 54 | minW, minH, maxW, maxH int32 | ||
| 55 | title, class string // owned, replaced only on change | 55 | title, class string // owned, replaced only on change | ||
| 56 | hasNetName bool | 56 | hasNetName bool | ||
| 57 | - | floating bool // dialog-like type; set with the properties | 57 | + | floating bool // dialog-like type; set with the properties |
| 58 | - | sized bool // the client asked for its size before Ready | 58 | + | bypass uint8 // _NET_WM_BYPASS_COMPOSITOR, 0..2 |
| 59 | + | sized bool // the client asked for its size before Ready | |||
| 59 | 60 | ||||
| 60 | // pairing | 61 | // pairing | ||
| 61 | serial uint64 | 62 | serial uint64 | ||
M internal/adapters/wayland/xwm/testdata/streams/property_unchanged.hex +949 -949
| @@ -1,950 +1,950 @@ | |||
| 1 | - | 1c00650001005000f30300000000000000000000000000000000000000000000 | |
| 2 | - | 0108660003000000ef0300000000000009000000000000000000000000000000 | |
| 3 | - | 6e6574207469746c650000001c00660001005000f30300000000000000000000 | |
| 4 | - | 0000000000000000000000000108670003000000ef0300000000000009000000 | |
| 5 | - | 0000000000000000000000006e6574207469746c650000001c00670001005000 | |
| 6 | - | f303000000000000000000000000000000000000000000000108680003000000 | |
| 7 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 8 | - | 650000001c00680001005000f303000000000000000000000000000000000000 | |
| 9 | - | 000000000108690003000000ef03000000000000090000000000000000000000 | |
| 10 | - | 000000006e6574207469746c650000001c00690001005000f303000000000000 | |
| 11 | - | 0000000000000000000000000000000001086a0003000000ef03000000000000 | |
| 12 | - | 090000000000000000000000000000006e6574207469746c650000001c006a00 | |
| 13 | - | 01005000f3030000000000000000000000000000000000000000000001086b00 | |
| 14 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 15 | - | 7469746c650000001c006b0001005000f3030000000000000000000000000000 | |
| 16 | - | 000000000000000001086c0003000000ef030000000000000900000000000000 | |
| 17 | - | 00000000000000006e6574207469746c650000001c006c0001005000f3030000 | |
| 18 | - | 000000000000000000000000000000000000000001086d0003000000ef030000 | |
| 19 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 20 | - | 1c006d0001005000f30300000000000000000000000000000000000000000000 | |
| 21 | - | 01086e0003000000ef0300000000000009000000000000000000000000000000 | |
| 22 | - | 6e6574207469746c650000001c006e0001005000f30300000000000000000000 | |
| 23 | - | 00000000000000000000000001086f0003000000ef0300000000000009000000 | |
| 24 | - | 0000000000000000000000006e6574207469746c650000001c006f0001005000 | |
| 25 | - | f303000000000000000000000000000000000000000000000108700003000000 | |
| 26 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 27 | - | 650000001c00700001005000f303000000000000000000000000000000000000 | |
| 28 | - | 000000000108710003000000ef03000000000000090000000000000000000000 | |
| 29 | - | 000000006e6574207469746c650000001c00710001005000f303000000000000 | |
| 30 | - | 000000000000000000000000000000000108720003000000ef03000000000000 | |
| 31 | - | 090000000000000000000000000000006e6574207469746c650000001c007200 | |
| 32 | - | 01005000f3030000000000000000000000000000000000000000000001087300 | |
| 33 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 34 | - | 7469746c650000001c00730001005000f3030000000000000000000000000000 | |
| 35 | - | 00000000000000000108740003000000ef030000000000000900000000000000 | |
| 36 | - | 00000000000000006e6574207469746c650000001c00740001005000f3030000 | |
| 37 | - | 00000000000000000000000000000000000000000108750003000000ef030000 | |
| 38 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 39 | - | 1c00750001005000f30300000000000000000000000000000000000000000000 | |
| 40 | - | 0108760003000000ef0300000000000009000000000000000000000000000000 | |
| 41 | - | 6e6574207469746c650000001c00760001005000f30300000000000000000000 | |
| 42 | - | 0000000000000000000000000108770003000000ef0300000000000009000000 | |
| 43 | - | 0000000000000000000000006e6574207469746c650000001c00770001005000 | |
| 44 | - | f303000000000000000000000000000000000000000000000108780003000000 | |
| 45 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 46 | - | 650000001c00780001005000f303000000000000000000000000000000000000 | |
| 47 | - | 000000000108790003000000ef03000000000000090000000000000000000000 | |
| 48 | - | 000000006e6574207469746c650000001c00790001005000f303000000000000 | |
| 49 | - | 0000000000000000000000000000000001087a0003000000ef03000000000000 | |
| 50 | - | 090000000000000000000000000000006e6574207469746c650000001c007a00 | |
| 51 | - | 01005000f3030000000000000000000000000000000000000000000001087b00 | |
| 52 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 53 | - | 7469746c650000001c007b0001005000f3030000000000000000000000000000 | |
| 54 | - | 000000000000000001087c0003000000ef030000000000000900000000000000 | |
| 55 | - | 00000000000000006e6574207469746c650000001c007c0001005000f3030000 | |
| 56 | - | 000000000000000000000000000000000000000001087d0003000000ef030000 | |
| 57 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 58 | - | 1c007d0001005000f30300000000000000000000000000000000000000000000 | |
| 59 | - | 01087e0003000000ef0300000000000009000000000000000000000000000000 | |
| 60 | - | 6e6574207469746c650000001c007e0001005000f30300000000000000000000 | |
| 61 | - | 00000000000000000000000001087f0003000000ef0300000000000009000000 | |
| 62 | - | 0000000000000000000000006e6574207469746c650000001c007f0001005000 | |
| 63 | - | f303000000000000000000000000000000000000000000000108800003000000 | |
| 64 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 65 | - | 650000001c00800001005000f303000000000000000000000000000000000000 | |
| 66 | - | 000000000108810003000000ef03000000000000090000000000000000000000 | |
| 67 | - | 000000006e6574207469746c650000001c00810001005000f303000000000000 | |
| 68 | - | 000000000000000000000000000000000108820003000000ef03000000000000 | |
| 69 | - | 090000000000000000000000000000006e6574207469746c650000001c008200 | |
| 70 | - | 01005000f3030000000000000000000000000000000000000000000001088300 | |
| 71 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 72 | - | 7469746c650000001c00830001005000f3030000000000000000000000000000 | |
| 73 | - | 00000000000000000108840003000000ef030000000000000900000000000000 | |
| 74 | - | 00000000000000006e6574207469746c650000001c00840001005000f3030000 | |
| 75 | - | 00000000000000000000000000000000000000000108850003000000ef030000 | |
| 76 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 77 | - | 1c00850001005000f30300000000000000000000000000000000000000000000 | |
| 78 | - | 0108860003000000ef0300000000000009000000000000000000000000000000 | |
| 79 | - | 6e6574207469746c650000001c00860001005000f30300000000000000000000 | |
| 80 | - | 0000000000000000000000000108870003000000ef0300000000000009000000 | |
| 81 | - | 0000000000000000000000006e6574207469746c650000001c00870001005000 | |
| 82 | - | f303000000000000000000000000000000000000000000000108880003000000 | |
| 83 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 84 | - | 650000001c00880001005000f303000000000000000000000000000000000000 | |
| 85 | - | 000000000108890003000000ef03000000000000090000000000000000000000 | |
| 86 | - | 000000006e6574207469746c650000001c00890001005000f303000000000000 | |
| 87 | - | 0000000000000000000000000000000001088a0003000000ef03000000000000 | |
| 88 | - | 090000000000000000000000000000006e6574207469746c650000001c008a00 | |
| 89 | - | 01005000f3030000000000000000000000000000000000000000000001088b00 | |
| 90 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 91 | - | 7469746c650000001c008b0001005000f3030000000000000000000000000000 | |
| 92 | - | 000000000000000001088c0003000000ef030000000000000900000000000000 | |
| 93 | - | 00000000000000006e6574207469746c650000001c008c0001005000f3030000 | |
| 94 | - | 000000000000000000000000000000000000000001088d0003000000ef030000 | |
| 95 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 96 | - | 1c008d0001005000f30300000000000000000000000000000000000000000000 | |
| 97 | - | 01088e0003000000ef0300000000000009000000000000000000000000000000 | |
| 98 | - | 6e6574207469746c650000001c008e0001005000f30300000000000000000000 | |
| 99 | - | 00000000000000000000000001088f0003000000ef0300000000000009000000 | |
| 100 | - | 0000000000000000000000006e6574207469746c650000001c008f0001005000 | |
| 101 | - | f303000000000000000000000000000000000000000000000108900003000000 | |
| 102 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 103 | - | 650000001c00900001005000f303000000000000000000000000000000000000 | |
| 104 | - | 000000000108910003000000ef03000000000000090000000000000000000000 | |
| 105 | - | 000000006e6574207469746c650000001c00910001005000f303000000000000 | |
| 106 | - | 000000000000000000000000000000000108920003000000ef03000000000000 | |
| 107 | - | 090000000000000000000000000000006e6574207469746c650000001c009200 | |
| 108 | - | 01005000f3030000000000000000000000000000000000000000000001089300 | |
| 109 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 110 | - | 7469746c650000001c00930001005000f3030000000000000000000000000000 | |
| 111 | - | 00000000000000000108940003000000ef030000000000000900000000000000 | |
| 112 | - | 00000000000000006e6574207469746c650000001c00940001005000f3030000 | |
| 113 | - | 00000000000000000000000000000000000000000108950003000000ef030000 | |
| 114 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 115 | - | 1c00950001005000f30300000000000000000000000000000000000000000000 | |
| 116 | - | 0108960003000000ef0300000000000009000000000000000000000000000000 | |
| 117 | - | 6e6574207469746c650000001c00960001005000f30300000000000000000000 | |
| 118 | - | 0000000000000000000000000108970003000000ef0300000000000009000000 | |
| 119 | - | 0000000000000000000000006e6574207469746c650000001c00970001005000 | |
| 120 | - | f303000000000000000000000000000000000000000000000108980003000000 | |
| 121 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 122 | - | 650000001c00980001005000f303000000000000000000000000000000000000 | |
| 123 | - | 000000000108990003000000ef03000000000000090000000000000000000000 | |
| 124 | - | 000000006e6574207469746c650000001c00990001005000f303000000000000 | |
| 125 | - | 0000000000000000000000000000000001089a0003000000ef03000000000000 | |
| 126 | - | 090000000000000000000000000000006e6574207469746c650000001c009a00 | |
| 127 | - | 01005000f3030000000000000000000000000000000000000000000001089b00 | |
| 128 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 129 | - | 7469746c650000001c009b0001005000f3030000000000000000000000000000 | |
| 130 | - | 000000000000000001089c0003000000ef030000000000000900000000000000 | |
| 131 | - | 00000000000000006e6574207469746c650000001c009c0001005000f3030000 | |
| 132 | - | 000000000000000000000000000000000000000001089d0003000000ef030000 | |
| 133 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 134 | - | 1c009d0001005000f30300000000000000000000000000000000000000000000 | |
| 135 | - | 01089e0003000000ef0300000000000009000000000000000000000000000000 | |
| 136 | - | 6e6574207469746c650000001c009e0001005000f30300000000000000000000 | |
| 137 | - | 00000000000000000000000001089f0003000000ef0300000000000009000000 | |
| 138 | - | 0000000000000000000000006e6574207469746c650000001c009f0001005000 | |
| 139 | - | f303000000000000000000000000000000000000000000000108a00003000000 | |
| 140 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 141 | - | 650000001c00a00001005000f303000000000000000000000000000000000000 | |
| 142 | - | 000000000108a10003000000ef03000000000000090000000000000000000000 | |
| 143 | - | 000000006e6574207469746c650000001c00a10001005000f303000000000000 | |
| 144 | - | 000000000000000000000000000000000108a20003000000ef03000000000000 | |
| 145 | - | 090000000000000000000000000000006e6574207469746c650000001c00a200 | |
| 146 | - | 01005000f303000000000000000000000000000000000000000000000108a300 | |
| 147 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 148 | - | 7469746c650000001c00a30001005000f3030000000000000000000000000000 | |
| 149 | - | 00000000000000000108a40003000000ef030000000000000900000000000000 | |
| 150 | - | 00000000000000006e6574207469746c650000001c00a40001005000f3030000 | |
| 151 | - | 00000000000000000000000000000000000000000108a50003000000ef030000 | |
| 152 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 153 | - | 1c00a50001005000f30300000000000000000000000000000000000000000000 | |
| 154 | - | 0108a60003000000ef0300000000000009000000000000000000000000000000 | |
| 155 | - | 6e6574207469746c650000001c00a60001005000f30300000000000000000000 | |
| 156 | - | 0000000000000000000000000108a70003000000ef0300000000000009000000 | |
| 157 | - | 0000000000000000000000006e6574207469746c650000001c00a70001005000 | |
| 158 | - | f303000000000000000000000000000000000000000000000108a80003000000 | |
| 159 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 160 | - | 650000001c00a80001005000f303000000000000000000000000000000000000 | |
| 161 | - | 000000000108a90003000000ef03000000000000090000000000000000000000 | |
| 162 | - | 000000006e6574207469746c650000001c00a90001005000f303000000000000 | |
| 163 | - | 000000000000000000000000000000000108aa0003000000ef03000000000000 | |
| 164 | - | 090000000000000000000000000000006e6574207469746c650000001c00aa00 | |
| 165 | - | 01005000f303000000000000000000000000000000000000000000000108ab00 | |
| 166 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 167 | - | 7469746c650000001c00ab0001005000f3030000000000000000000000000000 | |
| 168 | - | 00000000000000000108ac0003000000ef030000000000000900000000000000 | |
| 169 | - | 00000000000000006e6574207469746c650000001c00ac0001005000f3030000 | |
| 170 | - | 00000000000000000000000000000000000000000108ad0003000000ef030000 | |
| 171 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 172 | - | 1c00ad0001005000f30300000000000000000000000000000000000000000000 | |
| 173 | - | 0108ae0003000000ef0300000000000009000000000000000000000000000000 | |
| 174 | - | 6e6574207469746c650000001c00ae0001005000f30300000000000000000000 | |
| 175 | - | 0000000000000000000000000108af0003000000ef0300000000000009000000 | |
| 176 | - | 0000000000000000000000006e6574207469746c650000001c00af0001005000 | |
| 177 | - | f303000000000000000000000000000000000000000000000108b00003000000 | |
| 178 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 179 | - | 650000001c00b00001005000f303000000000000000000000000000000000000 | |
| 180 | - | 000000000108b10003000000ef03000000000000090000000000000000000000 | |
| 181 | - | 000000006e6574207469746c650000001c00b10001005000f303000000000000 | |
| 182 | - | 000000000000000000000000000000000108b20003000000ef03000000000000 | |
| 183 | - | 090000000000000000000000000000006e6574207469746c650000001c00b200 | |
| 184 | - | 01005000f303000000000000000000000000000000000000000000000108b300 | |
| 185 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 186 | - | 7469746c650000001c00b30001005000f3030000000000000000000000000000 | |
| 187 | - | 00000000000000000108b40003000000ef030000000000000900000000000000 | |
| 188 | - | 00000000000000006e6574207469746c650000001c00b40001005000f3030000 | |
| 189 | - | 00000000000000000000000000000000000000000108b50003000000ef030000 | |
| 190 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 191 | - | 1c00b50001005000f30300000000000000000000000000000000000000000000 | |
| 192 | - | 0108b60003000000ef0300000000000009000000000000000000000000000000 | |
| 193 | - | 6e6574207469746c650000001c00b60001005000f30300000000000000000000 | |
| 194 | - | 0000000000000000000000000108b70003000000ef0300000000000009000000 | |
| 195 | - | 0000000000000000000000006e6574207469746c650000001c00b70001005000 | |
| 196 | - | f303000000000000000000000000000000000000000000000108b80003000000 | |
| 197 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 198 | - | 650000001c00b80001005000f303000000000000000000000000000000000000 | |
| 199 | - | 000000000108b90003000000ef03000000000000090000000000000000000000 | |
| 200 | - | 000000006e6574207469746c650000001c00b90001005000f303000000000000 | |
| 201 | - | 000000000000000000000000000000000108ba0003000000ef03000000000000 | |
| 202 | - | 090000000000000000000000000000006e6574207469746c650000001c00ba00 | |
| 203 | - | 01005000f303000000000000000000000000000000000000000000000108bb00 | |
| 204 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 205 | - | 7469746c650000001c00bb0001005000f3030000000000000000000000000000 | |
| 206 | - | 00000000000000000108bc0003000000ef030000000000000900000000000000 | |
| 207 | - | 00000000000000006e6574207469746c650000001c00bc0001005000f3030000 | |
| 208 | - | 00000000000000000000000000000000000000000108bd0003000000ef030000 | |
| 209 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 210 | - | 1c00bd0001005000f30300000000000000000000000000000000000000000000 | |
| 211 | - | 0108be0003000000ef0300000000000009000000000000000000000000000000 | |
| 212 | - | 6e6574207469746c650000001c00be0001005000f30300000000000000000000 | |
| 213 | - | 0000000000000000000000000108bf0003000000ef0300000000000009000000 | |
| 214 | - | 0000000000000000000000006e6574207469746c650000001c00bf0001005000 | |
| 215 | - | f303000000000000000000000000000000000000000000000108c00003000000 | |
| 216 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 217 | - | 650000001c00c00001005000f303000000000000000000000000000000000000 | |
| 218 | - | 000000000108c10003000000ef03000000000000090000000000000000000000 | |
| 219 | - | 000000006e6574207469746c650000001c00c10001005000f303000000000000 | |
| 220 | - | 000000000000000000000000000000000108c20003000000ef03000000000000 | |
| 221 | - | 090000000000000000000000000000006e6574207469746c650000001c00c200 | |
| 222 | - | 01005000f303000000000000000000000000000000000000000000000108c300 | |
| 223 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 224 | - | 7469746c650000001c00c30001005000f3030000000000000000000000000000 | |
| 225 | - | 00000000000000000108c40003000000ef030000000000000900000000000000 | |
| 226 | - | 00000000000000006e6574207469746c650000001c00c40001005000f3030000 | |
| 227 | - | 00000000000000000000000000000000000000000108c50003000000ef030000 | |
| 228 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 229 | - | 1c00c50001005000f30300000000000000000000000000000000000000000000 | |
| 230 | - | 0108c60003000000ef0300000000000009000000000000000000000000000000 | |
| 231 | - | 6e6574207469746c650000001c00c60001005000f30300000000000000000000 | |
| 232 | - | 0000000000000000000000000108c70003000000ef0300000000000009000000 | |
| 233 | - | 0000000000000000000000006e6574207469746c650000001c00c70001005000 | |
| 234 | - | f303000000000000000000000000000000000000000000000108c80003000000 | |
| 235 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 236 | - | 650000001c00c80001005000f303000000000000000000000000000000000000 | |
| 237 | - | 000000000108c90003000000ef03000000000000090000000000000000000000 | |
| 238 | - | 000000006e6574207469746c650000001c00c90001005000f303000000000000 | |
| 239 | - | 000000000000000000000000000000000108ca0003000000ef03000000000000 | |
| 240 | - | 090000000000000000000000000000006e6574207469746c650000001c00ca00 | |
| 241 | - | 01005000f303000000000000000000000000000000000000000000000108cb00 | |
| 242 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 243 | - | 7469746c650000001c00cb0001005000f3030000000000000000000000000000 | |
| 244 | - | 00000000000000000108cc0003000000ef030000000000000900000000000000 | |
| 245 | - | 00000000000000006e6574207469746c650000001c00cc0001005000f3030000 | |
| 246 | - | 00000000000000000000000000000000000000000108cd0003000000ef030000 | |
| 247 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 248 | - | 1c00cd0001005000f30300000000000000000000000000000000000000000000 | |
| 249 | - | 0108ce0003000000ef0300000000000009000000000000000000000000000000 | |
| 250 | - | 6e6574207469746c650000001c00ce0001005000f30300000000000000000000 | |
| 251 | - | 0000000000000000000000000108cf0003000000ef0300000000000009000000 | |
| 252 | - | 0000000000000000000000006e6574207469746c650000001c00cf0001005000 | |
| 253 | - | f303000000000000000000000000000000000000000000000108d00003000000 | |
| 254 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 255 | - | 650000001c00d00001005000f303000000000000000000000000000000000000 | |
| 256 | - | 000000000108d10003000000ef03000000000000090000000000000000000000 | |
| 257 | - | 000000006e6574207469746c650000001c00d10001005000f303000000000000 | |
| 258 | - | 000000000000000000000000000000000108d20003000000ef03000000000000 | |
| 259 | - | 090000000000000000000000000000006e6574207469746c650000001c00d200 | |
| 260 | - | 01005000f303000000000000000000000000000000000000000000000108d300 | |
| 261 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 262 | - | 7469746c650000001c00d30001005000f3030000000000000000000000000000 | |
| 263 | - | 00000000000000000108d40003000000ef030000000000000900000000000000 | |
| 264 | - | 00000000000000006e6574207469746c650000001c00d40001005000f3030000 | |
| 265 | - | 00000000000000000000000000000000000000000108d50003000000ef030000 | |
| 266 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 267 | - | 1c00d50001005000f30300000000000000000000000000000000000000000000 | |
| 268 | - | 0108d60003000000ef0300000000000009000000000000000000000000000000 | |
| 269 | - | 6e6574207469746c650000001c00d60001005000f30300000000000000000000 | |
| 270 | - | 0000000000000000000000000108d70003000000ef0300000000000009000000 | |
| 271 | - | 0000000000000000000000006e6574207469746c650000001c00d70001005000 | |
| 272 | - | f303000000000000000000000000000000000000000000000108d80003000000 | |
| 273 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 274 | - | 650000001c00d80001005000f303000000000000000000000000000000000000 | |
| 275 | - | 000000000108d90003000000ef03000000000000090000000000000000000000 | |
| 276 | - | 000000006e6574207469746c650000001c00d90001005000f303000000000000 | |
| 277 | - | 000000000000000000000000000000000108da0003000000ef03000000000000 | |
| 278 | - | 090000000000000000000000000000006e6574207469746c650000001c00da00 | |
| 279 | - | 01005000f303000000000000000000000000000000000000000000000108db00 | |
| 280 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 281 | - | 7469746c650000001c00db0001005000f3030000000000000000000000000000 | |
| 282 | - | 00000000000000000108dc0003000000ef030000000000000900000000000000 | |
| 283 | - | 00000000000000006e6574207469746c650000001c00dc0001005000f3030000 | |
| 284 | - | 00000000000000000000000000000000000000000108dd0003000000ef030000 | |
| 285 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 286 | - | 1c00dd0001005000f30300000000000000000000000000000000000000000000 | |
| 287 | - | 0108de0003000000ef0300000000000009000000000000000000000000000000 | |
| 288 | - | 6e6574207469746c650000001c00de0001005000f30300000000000000000000 | |
| 289 | - | 0000000000000000000000000108df0003000000ef0300000000000009000000 | |
| 290 | - | 0000000000000000000000006e6574207469746c650000001c00df0001005000 | |
| 291 | - | f303000000000000000000000000000000000000000000000108e00003000000 | |
| 292 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 293 | - | 650000001c00e00001005000f303000000000000000000000000000000000000 | |
| 294 | - | 000000000108e10003000000ef03000000000000090000000000000000000000 | |
| 295 | - | 000000006e6574207469746c650000001c00e10001005000f303000000000000 | |
| 296 | - | 000000000000000000000000000000000108e20003000000ef03000000000000 | |
| 297 | - | 090000000000000000000000000000006e6574207469746c650000001c00e200 | |
| 298 | - | 01005000f303000000000000000000000000000000000000000000000108e300 | |
| 299 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 300 | - | 7469746c650000001c00e30001005000f3030000000000000000000000000000 | |
| 301 | - | 00000000000000000108e40003000000ef030000000000000900000000000000 | |
| 302 | - | 00000000000000006e6574207469746c650000001c00e40001005000f3030000 | |
| 303 | - | 00000000000000000000000000000000000000000108e50003000000ef030000 | |
| 304 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 305 | - | 1c00e50001005000f30300000000000000000000000000000000000000000000 | |
| 306 | - | 0108e60003000000ef0300000000000009000000000000000000000000000000 | |
| 307 | - | 6e6574207469746c650000001c00e60001005000f30300000000000000000000 | |
| 308 | - | 0000000000000000000000000108e70003000000ef0300000000000009000000 | |
| 309 | - | 0000000000000000000000006e6574207469746c650000001c00e70001005000 | |
| 310 | - | f303000000000000000000000000000000000000000000000108e80003000000 | |
| 311 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 312 | - | 650000001c00e80001005000f303000000000000000000000000000000000000 | |
| 313 | - | 000000000108e90003000000ef03000000000000090000000000000000000000 | |
| 314 | - | 000000006e6574207469746c650000001c00e90001005000f303000000000000 | |
| 315 | - | 000000000000000000000000000000000108ea0003000000ef03000000000000 | |
| 316 | - | 090000000000000000000000000000006e6574207469746c650000001c00ea00 | |
| 317 | - | 01005000f303000000000000000000000000000000000000000000000108eb00 | |
| 318 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 319 | - | 7469746c650000001c00eb0001005000f3030000000000000000000000000000 | |
| 320 | - | 00000000000000000108ec0003000000ef030000000000000900000000000000 | |
| 321 | - | 00000000000000006e6574207469746c650000001c00ec0001005000f3030000 | |
| 322 | - | 00000000000000000000000000000000000000000108ed0003000000ef030000 | |
| 323 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 324 | - | 1c00ed0001005000f30300000000000000000000000000000000000000000000 | |
| 325 | - | 0108ee0003000000ef0300000000000009000000000000000000000000000000 | |
| 326 | - | 6e6574207469746c650000001c00ee0001005000f30300000000000000000000 | |
| 327 | - | 0000000000000000000000000108ef0003000000ef0300000000000009000000 | |
| 328 | - | 0000000000000000000000006e6574207469746c650000001c00ef0001005000 | |
| 329 | - | f303000000000000000000000000000000000000000000000108f00003000000 | |
| 330 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 331 | - | 650000001c00f00001005000f303000000000000000000000000000000000000 | |
| 332 | - | 000000000108f10003000000ef03000000000000090000000000000000000000 | |
| 333 | - | 000000006e6574207469746c650000001c00f10001005000f303000000000000 | |
| 334 | - | 000000000000000000000000000000000108f20003000000ef03000000000000 | |
| 335 | - | 090000000000000000000000000000006e6574207469746c650000001c00f200 | |
| 336 | - | 01005000f303000000000000000000000000000000000000000000000108f300 | |
| 337 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 338 | - | 7469746c650000001c00f30001005000f3030000000000000000000000000000 | |
| 339 | - | 00000000000000000108f40003000000ef030000000000000900000000000000 | |
| 340 | - | 00000000000000006e6574207469746c650000001c00f40001005000f3030000 | |
| 341 | - | 00000000000000000000000000000000000000000108f50003000000ef030000 | |
| 342 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 343 | - | 1c00f50001005000f30300000000000000000000000000000000000000000000 | |
| 344 | - | 0108f60003000000ef0300000000000009000000000000000000000000000000 | |
| 345 | - | 6e6574207469746c650000001c00f60001005000f30300000000000000000000 | |
| 346 | - | 0000000000000000000000000108f70003000000ef0300000000000009000000 | |
| 347 | - | 0000000000000000000000006e6574207469746c650000001c00f70001005000 | |
| 348 | - | f303000000000000000000000000000000000000000000000108f80003000000 | |
| 349 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 350 | - | 650000001c00f80001005000f303000000000000000000000000000000000000 | |
| 351 | - | 000000000108f90003000000ef03000000000000090000000000000000000000 | |
| 352 | - | 000000006e6574207469746c650000001c00f90001005000f303000000000000 | |
| 353 | - | 000000000000000000000000000000000108fa0003000000ef03000000000000 | |
| 354 | - | 090000000000000000000000000000006e6574207469746c650000001c00fa00 | |
| 355 | - | 01005000f303000000000000000000000000000000000000000000000108fb00 | |
| 356 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 357 | - | 7469746c650000001c00fb0001005000f3030000000000000000000000000000 | |
| 358 | - | 00000000000000000108fc0003000000ef030000000000000900000000000000 | |
| 359 | - | 00000000000000006e6574207469746c650000001c00fc0001005000f3030000 | |
| 360 | - | 00000000000000000000000000000000000000000108fd0003000000ef030000 | |
| 361 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 362 | - | 1c00fd0001005000f30300000000000000000000000000000000000000000000 | |
| 363 | - | 0108fe0003000000ef0300000000000009000000000000000000000000000000 | |
| 364 | - | 6e6574207469746c650000001c00fe0001005000f30300000000000000000000 | |
| 365 | - | 0000000000000000000000000108ff0003000000ef0300000000000009000000 | |
| 366 | - | 0000000000000000000000006e6574207469746c650000001c00ff0001005000 | |
| 367 | - | f303000000000000000000000000000000000000000000000108000103000000 | |
| 368 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 369 | - | 650000001c00000101005000f303000000000000000000000000000000000000 | |
| 370 | - | 000000000108010103000000ef03000000000000090000000000000000000000 | |
| 371 | - | 000000006e6574207469746c650000001c00010101005000f303000000000000 | |
| 372 | - | 000000000000000000000000000000000108020103000000ef03000000000000 | |
| 373 | - | 090000000000000000000000000000006e6574207469746c650000001c000201 | |
| 374 | - | 01005000f3030000000000000000000000000000000000000000000001080301 | |
| 375 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 376 | - | 7469746c650000001c00030101005000f3030000000000000000000000000000 | |
| 377 | - | 00000000000000000108040103000000ef030000000000000900000000000000 | |
| 378 | - | 00000000000000006e6574207469746c650000001c00040101005000f3030000 | |
| 379 | - | 00000000000000000000000000000000000000000108050103000000ef030000 | |
| 380 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 381 | - | 1c00050101005000f30300000000000000000000000000000000000000000000 | |
| 382 | - | 0108060103000000ef0300000000000009000000000000000000000000000000 | |
| 383 | - | 6e6574207469746c650000001c00060101005000f30300000000000000000000 | |
| 384 | - | 0000000000000000000000000108070103000000ef0300000000000009000000 | |
| 385 | - | 0000000000000000000000006e6574207469746c650000001c00070101005000 | |
| 386 | - | f303000000000000000000000000000000000000000000000108080103000000 | |
| 387 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 388 | - | 650000001c00080101005000f303000000000000000000000000000000000000 | |
| 389 | - | 000000000108090103000000ef03000000000000090000000000000000000000 | |
| 390 | - | 000000006e6574207469746c650000001c00090101005000f303000000000000 | |
| 391 | - | 0000000000000000000000000000000001080a0103000000ef03000000000000 | |
| 392 | - | 090000000000000000000000000000006e6574207469746c650000001c000a01 | |
| 393 | - | 01005000f3030000000000000000000000000000000000000000000001080b01 | |
| 394 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 395 | - | 7469746c650000001c000b0101005000f3030000000000000000000000000000 | |
| 396 | - | 000000000000000001080c0103000000ef030000000000000900000000000000 | |
| 397 | - | 00000000000000006e6574207469746c650000001c000c0101005000f3030000 | |
| 398 | - | 000000000000000000000000000000000000000001080d0103000000ef030000 | |
| 399 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 400 | - | 1c000d0101005000f30300000000000000000000000000000000000000000000 | |
| 401 | - | 01080e0103000000ef0300000000000009000000000000000000000000000000 | |
| 402 | - | 6e6574207469746c650000001c000e0101005000f30300000000000000000000 | |
| 403 | - | 00000000000000000000000001080f0103000000ef0300000000000009000000 | |
| 404 | - | 0000000000000000000000006e6574207469746c650000001c000f0101005000 | |
| 405 | - | f303000000000000000000000000000000000000000000000108100103000000 | |
| 406 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 407 | - | 650000001c00100101005000f303000000000000000000000000000000000000 | |
| 408 | - | 000000000108110103000000ef03000000000000090000000000000000000000 | |
| 409 | - | 000000006e6574207469746c650000001c00110101005000f303000000000000 | |
| 410 | - | 000000000000000000000000000000000108120103000000ef03000000000000 | |
| 411 | - | 090000000000000000000000000000006e6574207469746c650000001c001201 | |
| 412 | - | 01005000f3030000000000000000000000000000000000000000000001081301 | |
| 413 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 414 | - | 7469746c650000001c00130101005000f3030000000000000000000000000000 | |
| 415 | - | 00000000000000000108140103000000ef030000000000000900000000000000 | |
| 416 | - | 00000000000000006e6574207469746c650000001c00140101005000f3030000 | |
| 417 | - | 00000000000000000000000000000000000000000108150103000000ef030000 | |
| 418 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 419 | - | 1c00150101005000f30300000000000000000000000000000000000000000000 | |
| 420 | - | 0108160103000000ef0300000000000009000000000000000000000000000000 | |
| 421 | - | 6e6574207469746c650000001c00160101005000f30300000000000000000000 | |
| 422 | - | 0000000000000000000000000108170103000000ef0300000000000009000000 | |
| 423 | - | 0000000000000000000000006e6574207469746c650000001c00170101005000 | |
| 424 | - | f303000000000000000000000000000000000000000000000108180103000000 | |
| 425 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 426 | - | 650000001c00180101005000f303000000000000000000000000000000000000 | |
| 427 | - | 000000000108190103000000ef03000000000000090000000000000000000000 | |
| 428 | - | 000000006e6574207469746c650000001c00190101005000f303000000000000 | |
| 429 | - | 0000000000000000000000000000000001081a0103000000ef03000000000000 | |
| 430 | - | 090000000000000000000000000000006e6574207469746c650000001c001a01 | |
| 431 | - | 01005000f3030000000000000000000000000000000000000000000001081b01 | |
| 432 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 433 | - | 7469746c650000001c001b0101005000f3030000000000000000000000000000 | |
| 434 | - | 000000000000000001081c0103000000ef030000000000000900000000000000 | |
| 435 | - | 00000000000000006e6574207469746c650000001c001c0101005000f3030000 | |
| 436 | - | 000000000000000000000000000000000000000001081d0103000000ef030000 | |
| 437 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 438 | - | 1c001d0101005000f30300000000000000000000000000000000000000000000 | |
| 439 | - | 01081e0103000000ef0300000000000009000000000000000000000000000000 | |
| 440 | - | 6e6574207469746c650000001c001e0101005000f30300000000000000000000 | |
| 441 | - | 00000000000000000000000001081f0103000000ef0300000000000009000000 | |
| 442 | - | 0000000000000000000000006e6574207469746c650000001c001f0101005000 | |
| 443 | - | f303000000000000000000000000000000000000000000000108200103000000 | |
| 444 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 445 | - | 650000001c00200101005000f303000000000000000000000000000000000000 | |
| 446 | - | 000000000108210103000000ef03000000000000090000000000000000000000 | |
| 447 | - | 000000006e6574207469746c650000001c00210101005000f303000000000000 | |
| 448 | - | 000000000000000000000000000000000108220103000000ef03000000000000 | |
| 449 | - | 090000000000000000000000000000006e6574207469746c650000001c002201 | |
| 450 | - | 01005000f3030000000000000000000000000000000000000000000001082301 | |
| 451 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 452 | - | 7469746c650000001c00230101005000f3030000000000000000000000000000 | |
| 453 | - | 00000000000000000108240103000000ef030000000000000900000000000000 | |
| 454 | - | 00000000000000006e6574207469746c650000001c00240101005000f3030000 | |
| 455 | - | 00000000000000000000000000000000000000000108250103000000ef030000 | |
| 456 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 457 | - | 1c00250101005000f30300000000000000000000000000000000000000000000 | |
| 458 | - | 0108260103000000ef0300000000000009000000000000000000000000000000 | |
| 459 | - | 6e6574207469746c650000001c00260101005000f30300000000000000000000 | |
| 460 | - | 0000000000000000000000000108270103000000ef0300000000000009000000 | |
| 461 | - | 0000000000000000000000006e6574207469746c650000001c00270101005000 | |
| 462 | - | f303000000000000000000000000000000000000000000000108280103000000 | |
| 463 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 464 | - | 650000001c00280101005000f303000000000000000000000000000000000000 | |
| 465 | - | 000000000108290103000000ef03000000000000090000000000000000000000 | |
| 466 | - | 000000006e6574207469746c650000001c00290101005000f303000000000000 | |
| 467 | - | 0000000000000000000000000000000001082a0103000000ef03000000000000 | |
| 468 | - | 090000000000000000000000000000006e6574207469746c650000001c002a01 | |
| 469 | - | 01005000f3030000000000000000000000000000000000000000000001082b01 | |
| 470 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 471 | - | 7469746c650000001c002b0101005000f3030000000000000000000000000000 | |
| 472 | - | 000000000000000001082c0103000000ef030000000000000900000000000000 | |
| 473 | - | 00000000000000006e6574207469746c650000001c002c0101005000f3030000 | |
| 474 | - | 000000000000000000000000000000000000000001082d0103000000ef030000 | |
| 475 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 476 | - | 1c002d0101005000f30300000000000000000000000000000000000000000000 | |
| 477 | - | 01082e0103000000ef0300000000000009000000000000000000000000000000 | |
| 478 | - | 6e6574207469746c650000001c002e0101005000f30300000000000000000000 | |
| 479 | - | 00000000000000000000000001082f0103000000ef0300000000000009000000 | |
| 480 | - | 0000000000000000000000006e6574207469746c650000001c002f0101005000 | |
| 481 | - | f303000000000000000000000000000000000000000000000108300103000000 | |
| 482 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 483 | - | 650000001c00300101005000f303000000000000000000000000000000000000 | |
| 484 | - | 000000000108310103000000ef03000000000000090000000000000000000000 | |
| 485 | - | 000000006e6574207469746c650000001c00310101005000f303000000000000 | |
| 486 | - | 000000000000000000000000000000000108320103000000ef03000000000000 | |
| 487 | - | 090000000000000000000000000000006e6574207469746c650000001c003201 | |
| 488 | - | 01005000f3030000000000000000000000000000000000000000000001083301 | |
| 489 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 490 | - | 7469746c650000001c00330101005000f3030000000000000000000000000000 | |
| 491 | - | 00000000000000000108340103000000ef030000000000000900000000000000 | |
| 492 | - | 00000000000000006e6574207469746c650000001c00340101005000f3030000 | |
| 493 | - | 00000000000000000000000000000000000000000108350103000000ef030000 | |
| 494 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 495 | - | 1c00350101005000f30300000000000000000000000000000000000000000000 | |
| 496 | - | 0108360103000000ef0300000000000009000000000000000000000000000000 | |
| 497 | - | 6e6574207469746c650000001c00360101005000f30300000000000000000000 | |
| 498 | - | 0000000000000000000000000108370103000000ef0300000000000009000000 | |
| 499 | - | 0000000000000000000000006e6574207469746c650000001c00370101005000 | |
| 500 | - | f303000000000000000000000000000000000000000000000108380103000000 | |
| 501 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 502 | - | 650000001c00380101005000f303000000000000000000000000000000000000 | |
| 503 | - | 000000000108390103000000ef03000000000000090000000000000000000000 | |
| 504 | - | 000000006e6574207469746c650000001c00390101005000f303000000000000 | |
| 505 | - | 0000000000000000000000000000000001083a0103000000ef03000000000000 | |
| 506 | - | 090000000000000000000000000000006e6574207469746c650000001c003a01 | |
| 507 | - | 01005000f3030000000000000000000000000000000000000000000001083b01 | |
| 508 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 509 | - | 7469746c650000001c003b0101005000f3030000000000000000000000000000 | |
| 510 | - | 000000000000000001083c0103000000ef030000000000000900000000000000 | |
| 511 | - | 00000000000000006e6574207469746c650000001c003c0101005000f3030000 | |
| 512 | - | 000000000000000000000000000000000000000001083d0103000000ef030000 | |
| 513 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 514 | - | 1c003d0101005000f30300000000000000000000000000000000000000000000 | |
| 515 | - | 01083e0103000000ef0300000000000009000000000000000000000000000000 | |
| 516 | - | 6e6574207469746c650000001c003e0101005000f30300000000000000000000 | |
| 517 | - | 00000000000000000000000001083f0103000000ef0300000000000009000000 | |
| 518 | - | 0000000000000000000000006e6574207469746c650000001c003f0101005000 | |
| 519 | - | f303000000000000000000000000000000000000000000000108400103000000 | |
| 520 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 521 | - | 650000001c00400101005000f303000000000000000000000000000000000000 | |
| 522 | - | 000000000108410103000000ef03000000000000090000000000000000000000 | |
| 523 | - | 000000006e6574207469746c650000001c00410101005000f303000000000000 | |
| 524 | - | 000000000000000000000000000000000108420103000000ef03000000000000 | |
| 525 | - | 090000000000000000000000000000006e6574207469746c650000001c004201 | |
| 526 | - | 01005000f3030000000000000000000000000000000000000000000001084301 | |
| 527 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 528 | - | 7469746c650000001c00430101005000f3030000000000000000000000000000 | |
| 529 | - | 00000000000000000108440103000000ef030000000000000900000000000000 | |
| 530 | - | 00000000000000006e6574207469746c650000001c00440101005000f3030000 | |
| 531 | - | 00000000000000000000000000000000000000000108450103000000ef030000 | |
| 532 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 533 | - | 1c00450101005000f30300000000000000000000000000000000000000000000 | |
| 534 | - | 0108460103000000ef0300000000000009000000000000000000000000000000 | |
| 535 | - | 6e6574207469746c650000001c00460101005000f30300000000000000000000 | |
| 536 | - | 0000000000000000000000000108470103000000ef0300000000000009000000 | |
| 537 | - | 0000000000000000000000006e6574207469746c650000001c00470101005000 | |
| 538 | - | f303000000000000000000000000000000000000000000000108480103000000 | |
| 539 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 540 | - | 650000001c00480101005000f303000000000000000000000000000000000000 | |
| 541 | - | 000000000108490103000000ef03000000000000090000000000000000000000 | |
| 542 | - | 000000006e6574207469746c650000001c00490101005000f303000000000000 | |
| 543 | - | 0000000000000000000000000000000001084a0103000000ef03000000000000 | |
| 544 | - | 090000000000000000000000000000006e6574207469746c650000001c004a01 | |
| 545 | - | 01005000f3030000000000000000000000000000000000000000000001084b01 | |
| 546 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 547 | - | 7469746c650000001c004b0101005000f3030000000000000000000000000000 | |
| 548 | - | 000000000000000001084c0103000000ef030000000000000900000000000000 | |
| 549 | - | 00000000000000006e6574207469746c650000001c004c0101005000f3030000 | |
| 550 | - | 000000000000000000000000000000000000000001084d0103000000ef030000 | |
| 551 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 552 | - | 1c004d0101005000f30300000000000000000000000000000000000000000000 | |
| 553 | - | 01084e0103000000ef0300000000000009000000000000000000000000000000 | |
| 554 | - | 6e6574207469746c650000001c004e0101005000f30300000000000000000000 | |
| 555 | - | 00000000000000000000000001084f0103000000ef0300000000000009000000 | |
| 556 | - | 0000000000000000000000006e6574207469746c650000001c004f0101005000 | |
| 557 | - | f303000000000000000000000000000000000000000000000108500103000000 | |
| 558 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 559 | - | 650000001c00500101005000f303000000000000000000000000000000000000 | |
| 560 | - | 000000000108510103000000ef03000000000000090000000000000000000000 | |
| 561 | - | 000000006e6574207469746c650000001c00510101005000f303000000000000 | |
| 562 | - | 000000000000000000000000000000000108520103000000ef03000000000000 | |
| 563 | - | 090000000000000000000000000000006e6574207469746c650000001c005201 | |
| 564 | - | 01005000f3030000000000000000000000000000000000000000000001085301 | |
| 565 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 566 | - | 7469746c650000001c00530101005000f3030000000000000000000000000000 | |
| 567 | - | 00000000000000000108540103000000ef030000000000000900000000000000 | |
| 568 | - | 00000000000000006e6574207469746c650000001c00540101005000f3030000 | |
| 569 | - | 00000000000000000000000000000000000000000108550103000000ef030000 | |
| 570 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 571 | - | 1c00550101005000f30300000000000000000000000000000000000000000000 | |
| 572 | - | 0108560103000000ef0300000000000009000000000000000000000000000000 | |
| 573 | - | 6e6574207469746c650000001c00560101005000f30300000000000000000000 | |
| 574 | - | 0000000000000000000000000108570103000000ef0300000000000009000000 | |
| 575 | - | 0000000000000000000000006e6574207469746c650000001c00570101005000 | |
| 576 | - | f303000000000000000000000000000000000000000000000108580103000000 | |
| 577 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 578 | - | 650000001c00580101005000f303000000000000000000000000000000000000 | |
| 579 | - | 000000000108590103000000ef03000000000000090000000000000000000000 | |
| 580 | - | 000000006e6574207469746c650000001c00590101005000f303000000000000 | |
| 581 | - | 0000000000000000000000000000000001085a0103000000ef03000000000000 | |
| 582 | - | 090000000000000000000000000000006e6574207469746c650000001c005a01 | |
| 583 | - | 01005000f3030000000000000000000000000000000000000000000001085b01 | |
| 584 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 585 | - | 7469746c650000001c005b0101005000f3030000000000000000000000000000 | |
| 586 | - | 000000000000000001085c0103000000ef030000000000000900000000000000 | |
| 587 | - | 00000000000000006e6574207469746c650000001c005c0101005000f3030000 | |
| 588 | - | 000000000000000000000000000000000000000001085d0103000000ef030000 | |
| 589 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 590 | - | 1c005d0101005000f30300000000000000000000000000000000000000000000 | |
| 591 | - | 01085e0103000000ef0300000000000009000000000000000000000000000000 | |
| 592 | - | 6e6574207469746c650000001c005e0101005000f30300000000000000000000 | |
| 593 | - | 00000000000000000000000001085f0103000000ef0300000000000009000000 | |
| 594 | - | 0000000000000000000000006e6574207469746c650000001c005f0101005000 | |
| 595 | - | f303000000000000000000000000000000000000000000000108600103000000 | |
| 596 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 597 | - | 650000001c00600101005000f303000000000000000000000000000000000000 | |
| 598 | - | 000000000108610103000000ef03000000000000090000000000000000000000 | |
| 599 | - | 000000006e6574207469746c650000001c00610101005000f303000000000000 | |
| 600 | - | 000000000000000000000000000000000108620103000000ef03000000000000 | |
| 601 | - | 090000000000000000000000000000006e6574207469746c650000001c006201 | |
| 602 | - | 01005000f3030000000000000000000000000000000000000000000001086301 | |
| 603 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 604 | - | 7469746c650000001c00630101005000f3030000000000000000000000000000 | |
| 605 | - | 00000000000000000108640103000000ef030000000000000900000000000000 | |
| 606 | - | 00000000000000006e6574207469746c650000001c00640101005000f3030000 | |
| 607 | - | 00000000000000000000000000000000000000000108650103000000ef030000 | |
| 608 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 609 | - | 1c00650101005000f30300000000000000000000000000000000000000000000 | |
| 610 | - | 0108660103000000ef0300000000000009000000000000000000000000000000 | |
| 611 | - | 6e6574207469746c650000001c00660101005000f30300000000000000000000 | |
| 612 | - | 0000000000000000000000000108670103000000ef0300000000000009000000 | |
| 613 | - | 0000000000000000000000006e6574207469746c650000001c00670101005000 | |
| 614 | - | f303000000000000000000000000000000000000000000000108680103000000 | |
| 615 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 616 | - | 650000001c00680101005000f303000000000000000000000000000000000000 | |
| 617 | - | 000000000108690103000000ef03000000000000090000000000000000000000 | |
| 618 | - | 000000006e6574207469746c650000001c00690101005000f303000000000000 | |
| 619 | - | 0000000000000000000000000000000001086a0103000000ef03000000000000 | |
| 620 | - | 090000000000000000000000000000006e6574207469746c650000001c006a01 | |
| 621 | - | 01005000f3030000000000000000000000000000000000000000000001086b01 | |
| 622 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 623 | - | 7469746c650000001c006b0101005000f3030000000000000000000000000000 | |
| 624 | - | 000000000000000001086c0103000000ef030000000000000900000000000000 | |
| 625 | - | 00000000000000006e6574207469746c650000001c006c0101005000f3030000 | |
| 626 | - | 000000000000000000000000000000000000000001086d0103000000ef030000 | |
| 627 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 628 | - | 1c006d0101005000f30300000000000000000000000000000000000000000000 | |
| 629 | - | 01086e0103000000ef0300000000000009000000000000000000000000000000 | |
| 630 | - | 6e6574207469746c650000001c006e0101005000f30300000000000000000000 | |
| 631 | - | 00000000000000000000000001086f0103000000ef0300000000000009000000 | |
| 632 | - | 0000000000000000000000006e6574207469746c650000001c006f0101005000 | |
| 633 | - | f303000000000000000000000000000000000000000000000108700103000000 | |
| 634 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 635 | - | 650000001c00700101005000f303000000000000000000000000000000000000 | |
| 636 | - | 000000000108710103000000ef03000000000000090000000000000000000000 | |
| 637 | - | 000000006e6574207469746c650000001c00710101005000f303000000000000 | |
| 638 | - | 000000000000000000000000000000000108720103000000ef03000000000000 | |
| 639 | - | 090000000000000000000000000000006e6574207469746c650000001c007201 | |
| 640 | - | 01005000f3030000000000000000000000000000000000000000000001087301 | |
| 641 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 642 | - | 7469746c650000001c00730101005000f3030000000000000000000000000000 | |
| 643 | - | 00000000000000000108740103000000ef030000000000000900000000000000 | |
| 644 | - | 00000000000000006e6574207469746c650000001c00740101005000f3030000 | |
| 645 | - | 00000000000000000000000000000000000000000108750103000000ef030000 | |
| 646 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 647 | - | 1c00750101005000f30300000000000000000000000000000000000000000000 | |
| 648 | - | 0108760103000000ef0300000000000009000000000000000000000000000000 | |
| 649 | - | 6e6574207469746c650000001c00760101005000f30300000000000000000000 | |
| 650 | - | 0000000000000000000000000108770103000000ef0300000000000009000000 | |
| 651 | - | 0000000000000000000000006e6574207469746c650000001c00770101005000 | |
| 652 | - | f303000000000000000000000000000000000000000000000108780103000000 | |
| 653 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 654 | - | 650000001c00780101005000f303000000000000000000000000000000000000 | |
| 655 | - | 000000000108790103000000ef03000000000000090000000000000000000000 | |
| 656 | - | 000000006e6574207469746c650000001c00790101005000f303000000000000 | |
| 657 | - | 0000000000000000000000000000000001087a0103000000ef03000000000000 | |
| 658 | - | 090000000000000000000000000000006e6574207469746c650000001c007a01 | |
| 659 | - | 01005000f3030000000000000000000000000000000000000000000001087b01 | |
| 660 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 661 | - | 7469746c650000001c007b0101005000f3030000000000000000000000000000 | |
| 662 | - | 000000000000000001087c0103000000ef030000000000000900000000000000 | |
| 663 | - | 00000000000000006e6574207469746c650000001c007c0101005000f3030000 | |
| 664 | - | 000000000000000000000000000000000000000001087d0103000000ef030000 | |
| 665 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 666 | - | 1c007d0101005000f30300000000000000000000000000000000000000000000 | |
| 667 | - | 01087e0103000000ef0300000000000009000000000000000000000000000000 | |
| 668 | - | 6e6574207469746c650000001c007e0101005000f30300000000000000000000 | |
| 669 | - | 00000000000000000000000001087f0103000000ef0300000000000009000000 | |
| 670 | - | 0000000000000000000000006e6574207469746c650000001c007f0101005000 | |
| 671 | - | f303000000000000000000000000000000000000000000000108800103000000 | |
| 672 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 673 | - | 650000001c00800101005000f303000000000000000000000000000000000000 | |
| 674 | - | 000000000108810103000000ef03000000000000090000000000000000000000 | |
| 675 | - | 000000006e6574207469746c650000001c00810101005000f303000000000000 | |
| 676 | - | 000000000000000000000000000000000108820103000000ef03000000000000 | |
| 677 | - | 090000000000000000000000000000006e6574207469746c650000001c008201 | |
| 678 | - | 01005000f3030000000000000000000000000000000000000000000001088301 | |
| 679 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 680 | - | 7469746c650000001c00830101005000f3030000000000000000000000000000 | |
| 681 | - | 00000000000000000108840103000000ef030000000000000900000000000000 | |
| 682 | - | 00000000000000006e6574207469746c650000001c00840101005000f3030000 | |
| 683 | - | 00000000000000000000000000000000000000000108850103000000ef030000 | |
| 684 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 685 | - | 1c00850101005000f30300000000000000000000000000000000000000000000 | |
| 686 | - | 0108860103000000ef0300000000000009000000000000000000000000000000 | |
| 687 | - | 6e6574207469746c650000001c00860101005000f30300000000000000000000 | |
| 688 | - | 0000000000000000000000000108870103000000ef0300000000000009000000 | |
| 689 | - | 0000000000000000000000006e6574207469746c650000001c00870101005000 | |
| 690 | - | f303000000000000000000000000000000000000000000000108880103000000 | |
| 691 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 692 | - | 650000001c00880101005000f303000000000000000000000000000000000000 | |
| 693 | - | 000000000108890103000000ef03000000000000090000000000000000000000 | |
| 694 | - | 000000006e6574207469746c650000001c00890101005000f303000000000000 | |
| 695 | - | 0000000000000000000000000000000001088a0103000000ef03000000000000 | |
| 696 | - | 090000000000000000000000000000006e6574207469746c650000001c008a01 | |
| 697 | - | 01005000f3030000000000000000000000000000000000000000000001088b01 | |
| 698 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 699 | - | 7469746c650000001c008b0101005000f3030000000000000000000000000000 | |
| 700 | - | 000000000000000001088c0103000000ef030000000000000900000000000000 | |
| 701 | - | 00000000000000006e6574207469746c650000001c008c0101005000f3030000 | |
| 702 | - | 000000000000000000000000000000000000000001088d0103000000ef030000 | |
| 703 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 704 | - | 1c008d0101005000f30300000000000000000000000000000000000000000000 | |
| 705 | - | 01088e0103000000ef0300000000000009000000000000000000000000000000 | |
| 706 | - | 6e6574207469746c650000001c008e0101005000f30300000000000000000000 | |
| 707 | - | 00000000000000000000000001088f0103000000ef0300000000000009000000 | |
| 708 | - | 0000000000000000000000006e6574207469746c650000001c008f0101005000 | |
| 709 | - | f303000000000000000000000000000000000000000000000108900103000000 | |
| 710 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 711 | - | 650000001c00900101005000f303000000000000000000000000000000000000 | |
| 712 | - | 000000000108910103000000ef03000000000000090000000000000000000000 | |
| 713 | - | 000000006e6574207469746c650000001c00910101005000f303000000000000 | |
| 714 | - | 000000000000000000000000000000000108920103000000ef03000000000000 | |
| 715 | - | 090000000000000000000000000000006e6574207469746c650000001c009201 | |
| 716 | - | 01005000f3030000000000000000000000000000000000000000000001089301 | |
| 717 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 718 | - | 7469746c650000001c00930101005000f3030000000000000000000000000000 | |
| 719 | - | 00000000000000000108940103000000ef030000000000000900000000000000 | |
| 720 | - | 00000000000000006e6574207469746c650000001c00940101005000f3030000 | |
| 721 | - | 00000000000000000000000000000000000000000108950103000000ef030000 | |
| 722 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 723 | - | 1c00950101005000f30300000000000000000000000000000000000000000000 | |
| 724 | - | 0108960103000000ef0300000000000009000000000000000000000000000000 | |
| 725 | - | 6e6574207469746c650000001c00960101005000f30300000000000000000000 | |
| 726 | - | 0000000000000000000000000108970103000000ef0300000000000009000000 | |
| 727 | - | 0000000000000000000000006e6574207469746c650000001c00970101005000 | |
| 728 | - | f303000000000000000000000000000000000000000000000108980103000000 | |
| 729 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 730 | - | 650000001c00980101005000f303000000000000000000000000000000000000 | |
| 731 | - | 000000000108990103000000ef03000000000000090000000000000000000000 | |
| 732 | - | 000000006e6574207469746c650000001c00990101005000f303000000000000 | |
| 733 | - | 0000000000000000000000000000000001089a0103000000ef03000000000000 | |
| 734 | - | 090000000000000000000000000000006e6574207469746c650000001c009a01 | |
| 735 | - | 01005000f3030000000000000000000000000000000000000000000001089b01 | |
| 736 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 737 | - | 7469746c650000001c009b0101005000f3030000000000000000000000000000 | |
| 738 | - | 000000000000000001089c0103000000ef030000000000000900000000000000 | |
| 739 | - | 00000000000000006e6574207469746c650000001c009c0101005000f3030000 | |
| 740 | - | 000000000000000000000000000000000000000001089d0103000000ef030000 | |
| 741 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 742 | - | 1c009d0101005000f30300000000000000000000000000000000000000000000 | |
| 743 | - | 01089e0103000000ef0300000000000009000000000000000000000000000000 | |
| 744 | - | 6e6574207469746c650000001c009e0101005000f30300000000000000000000 | |
| 745 | - | 00000000000000000000000001089f0103000000ef0300000000000009000000 | |
| 746 | - | 0000000000000000000000006e6574207469746c650000001c009f0101005000 | |
| 747 | - | f303000000000000000000000000000000000000000000000108a00103000000 | |
| 748 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 749 | - | 650000001c00a00101005000f303000000000000000000000000000000000000 | |
| 750 | - | 000000000108a10103000000ef03000000000000090000000000000000000000 | |
| 751 | - | 000000006e6574207469746c650000001c00a10101005000f303000000000000 | |
| 752 | - | 000000000000000000000000000000000108a20103000000ef03000000000000 | |
| 753 | - | 090000000000000000000000000000006e6574207469746c650000001c00a201 | |
| 754 | - | 01005000f303000000000000000000000000000000000000000000000108a301 | |
| 755 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 756 | - | 7469746c650000001c00a30101005000f3030000000000000000000000000000 | |
| 757 | - | 00000000000000000108a40103000000ef030000000000000900000000000000 | |
| 758 | - | 00000000000000006e6574207469746c650000001c00a40101005000f3030000 | |
| 759 | - | 00000000000000000000000000000000000000000108a50103000000ef030000 | |
| 760 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 761 | - | 1c00a50101005000f30300000000000000000000000000000000000000000000 | |
| 762 | - | 0108a60103000000ef0300000000000009000000000000000000000000000000 | |
| 763 | - | 6e6574207469746c650000001c00a60101005000f30300000000000000000000 | |
| 764 | - | 0000000000000000000000000108a70103000000ef0300000000000009000000 | |
| 765 | - | 0000000000000000000000006e6574207469746c650000001c00a70101005000 | |
| 766 | - | f303000000000000000000000000000000000000000000000108a80103000000 | |
| 767 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 768 | - | 650000001c00a80101005000f303000000000000000000000000000000000000 | |
| 769 | - | 000000000108a90103000000ef03000000000000090000000000000000000000 | |
| 770 | - | 000000006e6574207469746c650000001c00a90101005000f303000000000000 | |
| 771 | - | 000000000000000000000000000000000108aa0103000000ef03000000000000 | |
| 772 | - | 090000000000000000000000000000006e6574207469746c650000001c00aa01 | |
| 773 | - | 01005000f303000000000000000000000000000000000000000000000108ab01 | |
| 774 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 775 | - | 7469746c650000001c00ab0101005000f3030000000000000000000000000000 | |
| 776 | - | 00000000000000000108ac0103000000ef030000000000000900000000000000 | |
| 777 | - | 00000000000000006e6574207469746c650000001c00ac0101005000f3030000 | |
| 778 | - | 00000000000000000000000000000000000000000108ad0103000000ef030000 | |
| 779 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 780 | - | 1c00ad0101005000f30300000000000000000000000000000000000000000000 | |
| 781 | - | 0108ae0103000000ef0300000000000009000000000000000000000000000000 | |
| 782 | - | 6e6574207469746c650000001c00ae0101005000f30300000000000000000000 | |
| 783 | - | 0000000000000000000000000108af0103000000ef0300000000000009000000 | |
| 784 | - | 0000000000000000000000006e6574207469746c650000001c00af0101005000 | |
| 785 | - | f303000000000000000000000000000000000000000000000108b00103000000 | |
| 786 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 787 | - | 650000001c00b00101005000f303000000000000000000000000000000000000 | |
| 788 | - | 000000000108b10103000000ef03000000000000090000000000000000000000 | |
| 789 | - | 000000006e6574207469746c650000001c00b10101005000f303000000000000 | |
| 790 | - | 000000000000000000000000000000000108b20103000000ef03000000000000 | |
| 791 | - | 090000000000000000000000000000006e6574207469746c650000001c00b201 | |
| 792 | - | 01005000f303000000000000000000000000000000000000000000000108b301 | |
| 793 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 794 | - | 7469746c650000001c00b30101005000f3030000000000000000000000000000 | |
| 795 | - | 00000000000000000108b40103000000ef030000000000000900000000000000 | |
| 796 | - | 00000000000000006e6574207469746c650000001c00b40101005000f3030000 | |
| 797 | - | 00000000000000000000000000000000000000000108b50103000000ef030000 | |
| 798 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 799 | - | 1c00b50101005000f30300000000000000000000000000000000000000000000 | |
| 800 | - | 0108b60103000000ef0300000000000009000000000000000000000000000000 | |
| 801 | - | 6e6574207469746c650000001c00b60101005000f30300000000000000000000 | |
| 802 | - | 0000000000000000000000000108b70103000000ef0300000000000009000000 | |
| 803 | - | 0000000000000000000000006e6574207469746c650000001c00b70101005000 | |
| 804 | - | f303000000000000000000000000000000000000000000000108b80103000000 | |
| 805 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 806 | - | 650000001c00b80101005000f303000000000000000000000000000000000000 | |
| 807 | - | 000000000108b90103000000ef03000000000000090000000000000000000000 | |
| 808 | - | 000000006e6574207469746c650000001c00b90101005000f303000000000000 | |
| 809 | - | 000000000000000000000000000000000108ba0103000000ef03000000000000 | |
| 810 | - | 090000000000000000000000000000006e6574207469746c650000001c00ba01 | |
| 811 | - | 01005000f303000000000000000000000000000000000000000000000108bb01 | |
| 812 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 813 | - | 7469746c650000001c00bb0101005000f3030000000000000000000000000000 | |
| 814 | - | 00000000000000000108bc0103000000ef030000000000000900000000000000 | |
| 815 | - | 00000000000000006e6574207469746c650000001c00bc0101005000f3030000 | |
| 816 | - | 00000000000000000000000000000000000000000108bd0103000000ef030000 | |
| 817 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 818 | - | 1c00bd0101005000f30300000000000000000000000000000000000000000000 | |
| 819 | - | 0108be0103000000ef0300000000000009000000000000000000000000000000 | |
| 820 | - | 6e6574207469746c650000001c00be0101005000f30300000000000000000000 | |
| 821 | - | 0000000000000000000000000108bf0103000000ef0300000000000009000000 | |
| 822 | - | 0000000000000000000000006e6574207469746c650000001c00bf0101005000 | |
| 823 | - | f303000000000000000000000000000000000000000000000108c00103000000 | |
| 824 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 825 | - | 650000001c00c00101005000f303000000000000000000000000000000000000 | |
| 826 | - | 000000000108c10103000000ef03000000000000090000000000000000000000 | |
| 827 | - | 000000006e6574207469746c650000001c00c10101005000f303000000000000 | |
| 828 | - | 000000000000000000000000000000000108c20103000000ef03000000000000 | |
| 829 | - | 090000000000000000000000000000006e6574207469746c650000001c00c201 | |
| 830 | - | 01005000f303000000000000000000000000000000000000000000000108c301 | |
| 831 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 832 | - | 7469746c650000001c00c30101005000f3030000000000000000000000000000 | |
| 833 | - | 00000000000000000108c40103000000ef030000000000000900000000000000 | |
| 834 | - | 00000000000000006e6574207469746c650000001c00c40101005000f3030000 | |
| 835 | - | 00000000000000000000000000000000000000000108c50103000000ef030000 | |
| 836 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 837 | - | 1c00c50101005000f30300000000000000000000000000000000000000000000 | |
| 838 | - | 0108c60103000000ef0300000000000009000000000000000000000000000000 | |
| 839 | - | 6e6574207469746c650000001c00c60101005000f30300000000000000000000 | |
| 840 | - | 0000000000000000000000000108c70103000000ef0300000000000009000000 | |
| 841 | - | 0000000000000000000000006e6574207469746c650000001c00c70101005000 | |
| 842 | - | f303000000000000000000000000000000000000000000000108c80103000000 | |
| 843 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 844 | - | 650000001c00c80101005000f303000000000000000000000000000000000000 | |
| 845 | - | 000000000108c90103000000ef03000000000000090000000000000000000000 | |
| 846 | - | 000000006e6574207469746c650000001c00c90101005000f303000000000000 | |
| 847 | - | 000000000000000000000000000000000108ca0103000000ef03000000000000 | |
| 848 | - | 090000000000000000000000000000006e6574207469746c650000001c00ca01 | |
| 849 | - | 01005000f303000000000000000000000000000000000000000000000108cb01 | |
| 850 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 851 | - | 7469746c650000001c00cb0101005000f3030000000000000000000000000000 | |
| 852 | - | 00000000000000000108cc0103000000ef030000000000000900000000000000 | |
| 853 | - | 00000000000000006e6574207469746c650000001c00cc0101005000f3030000 | |
| 854 | - | 00000000000000000000000000000000000000000108cd0103000000ef030000 | |
| 855 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 856 | - | 1c00cd0101005000f30300000000000000000000000000000000000000000000 | |
| 857 | - | 0108ce0103000000ef0300000000000009000000000000000000000000000000 | |
| 858 | - | 6e6574207469746c650000001c00ce0101005000f30300000000000000000000 | |
| 859 | - | 0000000000000000000000000108cf0103000000ef0300000000000009000000 | |
| 860 | - | 0000000000000000000000006e6574207469746c650000001c00cf0101005000 | |
| 861 | - | f303000000000000000000000000000000000000000000000108d00103000000 | |
| 862 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 863 | - | 650000001c00d00101005000f303000000000000000000000000000000000000 | |
| 864 | - | 000000000108d10103000000ef03000000000000090000000000000000000000 | |
| 865 | - | 000000006e6574207469746c650000001c00d10101005000f303000000000000 | |
| 866 | - | 000000000000000000000000000000000108d20103000000ef03000000000000 | |
| 867 | - | 090000000000000000000000000000006e6574207469746c650000001c00d201 | |
| 868 | - | 01005000f303000000000000000000000000000000000000000000000108d301 | |
| 869 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 870 | - | 7469746c650000001c00d30101005000f3030000000000000000000000000000 | |
| 871 | - | 00000000000000000108d40103000000ef030000000000000900000000000000 | |
| 872 | - | 00000000000000006e6574207469746c650000001c00d40101005000f3030000 | |
| 873 | - | 00000000000000000000000000000000000000000108d50103000000ef030000 | |
| 874 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 875 | - | 1c00d50101005000f30300000000000000000000000000000000000000000000 | |
| 876 | - | 0108d60103000000ef0300000000000009000000000000000000000000000000 | |
| 877 | - | 6e6574207469746c650000001c00d60101005000f30300000000000000000000 | |
| 878 | - | 0000000000000000000000000108d70103000000ef0300000000000009000000 | |
| 879 | - | 0000000000000000000000006e6574207469746c650000001c00d70101005000 | |
| 880 | - | f303000000000000000000000000000000000000000000000108d80103000000 | |
| 881 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 882 | - | 650000001c00d80101005000f303000000000000000000000000000000000000 | |
| 883 | - | 000000000108d90103000000ef03000000000000090000000000000000000000 | |
| 884 | - | 000000006e6574207469746c650000001c00d90101005000f303000000000000 | |
| 885 | - | 000000000000000000000000000000000108da0103000000ef03000000000000 | |
| 886 | - | 090000000000000000000000000000006e6574207469746c650000001c00da01 | |
| 887 | - | 01005000f303000000000000000000000000000000000000000000000108db01 | |
| 888 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 889 | - | 7469746c650000001c00db0101005000f3030000000000000000000000000000 | |
| 890 | - | 00000000000000000108dc0103000000ef030000000000000900000000000000 | |
| 891 | - | 00000000000000006e6574207469746c650000001c00dc0101005000f3030000 | |
| 892 | - | 00000000000000000000000000000000000000000108dd0103000000ef030000 | |
| 893 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 894 | - | 1c00dd0101005000f30300000000000000000000000000000000000000000000 | |
| 895 | - | 0108de0103000000ef0300000000000009000000000000000000000000000000 | |
| 896 | - | 6e6574207469746c650000001c00de0101005000f30300000000000000000000 | |
| 897 | - | 0000000000000000000000000108df0103000000ef0300000000000009000000 | |
| 898 | - | 0000000000000000000000006e6574207469746c650000001c00df0101005000 | |
| 899 | - | f303000000000000000000000000000000000000000000000108e00103000000 | |
| 900 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 901 | - | 650000001c00e00101005000f303000000000000000000000000000000000000 | |
| 902 | - | 000000000108e10103000000ef03000000000000090000000000000000000000 | |
| 903 | - | 000000006e6574207469746c650000001c00e10101005000f303000000000000 | |
| 904 | - | 000000000000000000000000000000000108e20103000000ef03000000000000 | |
| 905 | - | 090000000000000000000000000000006e6574207469746c650000001c00e201 | |
| 906 | - | 01005000f303000000000000000000000000000000000000000000000108e301 | |
| 907 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 908 | - | 7469746c650000001c00e30101005000f3030000000000000000000000000000 | |
| 909 | - | 00000000000000000108e40103000000ef030000000000000900000000000000 | |
| 910 | - | 00000000000000006e6574207469746c650000001c00e40101005000f3030000 | |
| 911 | - | 00000000000000000000000000000000000000000108e50103000000ef030000 | |
| 912 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 913 | - | 1c00e50101005000f30300000000000000000000000000000000000000000000 | |
| 914 | - | 0108e60103000000ef0300000000000009000000000000000000000000000000 | |
| 915 | - | 6e6574207469746c650000001c00e60101005000f30300000000000000000000 | |
| 916 | - | 0000000000000000000000000108e70103000000ef0300000000000009000000 | |
| 917 | - | 0000000000000000000000006e6574207469746c650000001c00e70101005000 | |
| 918 | - | f303000000000000000000000000000000000000000000000108e80103000000 | |
| 919 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 920 | - | 650000001c00e80101005000f303000000000000000000000000000000000000 | |
| 921 | - | 000000000108e90103000000ef03000000000000090000000000000000000000 | |
| 922 | - | 000000006e6574207469746c650000001c00e90101005000f303000000000000 | |
| 923 | - | 000000000000000000000000000000000108ea0103000000ef03000000000000 | |
| 924 | - | 090000000000000000000000000000006e6574207469746c650000001c00ea01 | |
| 925 | - | 01005000f303000000000000000000000000000000000000000000000108eb01 | |
| 926 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 927 | - | 7469746c650000001c00eb0101005000f3030000000000000000000000000000 | |
| 928 | - | 00000000000000000108ec0103000000ef030000000000000900000000000000 | |
| 929 | - | 00000000000000006e6574207469746c650000001c00ec0101005000f3030000 | |
| 930 | - | 00000000000000000000000000000000000000000108ed0103000000ef030000 | |
| 931 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 932 | - | 1c00ed0101005000f30300000000000000000000000000000000000000000000 | |
| 933 | - | 0108ee0103000000ef0300000000000009000000000000000000000000000000 | |
| 934 | - | 6e6574207469746c650000001c00ee0101005000f30300000000000000000000 | |
| 935 | - | 0000000000000000000000000108ef0103000000ef0300000000000009000000 | |
| 936 | - | 0000000000000000000000006e6574207469746c650000001c00ef0101005000 | |
| 937 | - | f303000000000000000000000000000000000000000000000108f00103000000 | |
| 938 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 939 | - | 650000001c00f00101005000f303000000000000000000000000000000000000 | |
| 940 | - | 000000000108f10103000000ef03000000000000090000000000000000000000 | |
| 941 | - | 000000006e6574207469746c650000001c00f10101005000f303000000000000 | |
| 942 | - | 000000000000000000000000000000000108f20103000000ef03000000000000 | |
| 943 | - | 090000000000000000000000000000006e6574207469746c650000001c00f201 | |
| 944 | - | 01005000f303000000000000000000000000000000000000000000000108f301 | |
| 945 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 946 | - | 7469746c650000001c00f30101005000f3030000000000000000000000000000 | |
| 947 | - | 00000000000000000108f40103000000ef030000000000000900000000000000 | |
| 948 | - | 00000000000000006e6574207469746c650000001c00f40101005000f3030000 | |
| 949 | - | 00000000000000000000000000000000000000000108f50103000000ef030000 | |
| 1 | + | 1c00660001005000f30300000000000000000000000000000000000000000000 | |
| 2 | + | 0108670003000000ef0300000000000009000000000000000000000000000000 | |
| 3 | + | 6e6574207469746c650000001c00670001005000f30300000000000000000000 | |
| 4 | + | 0000000000000000000000000108680003000000ef0300000000000009000000 | |
| 5 | + | 0000000000000000000000006e6574207469746c650000001c00680001005000 | |
| 6 | + | f303000000000000000000000000000000000000000000000108690003000000 | |
| 7 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 8 | + | 650000001c00690001005000f303000000000000000000000000000000000000 | |
| 9 | + | 0000000001086a0003000000ef03000000000000090000000000000000000000 | |
| 10 | + | 000000006e6574207469746c650000001c006a0001005000f303000000000000 | |
| 11 | + | 0000000000000000000000000000000001086b0003000000ef03000000000000 | |
| 12 | + | 090000000000000000000000000000006e6574207469746c650000001c006b00 | |
| 13 | + | 01005000f3030000000000000000000000000000000000000000000001086c00 | |
| 14 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 15 | + | 7469746c650000001c006c0001005000f3030000000000000000000000000000 | |
| 16 | + | 000000000000000001086d0003000000ef030000000000000900000000000000 | |
| 17 | + | 00000000000000006e6574207469746c650000001c006d0001005000f3030000 | |
| 18 | + | 000000000000000000000000000000000000000001086e0003000000ef030000 | |
| 19 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 20 | + | 1c006e0001005000f30300000000000000000000000000000000000000000000 | |
| 21 | + | 01086f0003000000ef0300000000000009000000000000000000000000000000 | |
| 22 | + | 6e6574207469746c650000001c006f0001005000f30300000000000000000000 | |
| 23 | + | 0000000000000000000000000108700003000000ef0300000000000009000000 | |
| 24 | + | 0000000000000000000000006e6574207469746c650000001c00700001005000 | |
| 25 | + | f303000000000000000000000000000000000000000000000108710003000000 | |
| 26 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 27 | + | 650000001c00710001005000f303000000000000000000000000000000000000 | |
| 28 | + | 000000000108720003000000ef03000000000000090000000000000000000000 | |
| 29 | + | 000000006e6574207469746c650000001c00720001005000f303000000000000 | |
| 30 | + | 000000000000000000000000000000000108730003000000ef03000000000000 | |
| 31 | + | 090000000000000000000000000000006e6574207469746c650000001c007300 | |
| 32 | + | 01005000f3030000000000000000000000000000000000000000000001087400 | |
| 33 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 34 | + | 7469746c650000001c00740001005000f3030000000000000000000000000000 | |
| 35 | + | 00000000000000000108750003000000ef030000000000000900000000000000 | |
| 36 | + | 00000000000000006e6574207469746c650000001c00750001005000f3030000 | |
| 37 | + | 00000000000000000000000000000000000000000108760003000000ef030000 | |
| 38 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 39 | + | 1c00760001005000f30300000000000000000000000000000000000000000000 | |
| 40 | + | 0108770003000000ef0300000000000009000000000000000000000000000000 | |
| 41 | + | 6e6574207469746c650000001c00770001005000f30300000000000000000000 | |
| 42 | + | 0000000000000000000000000108780003000000ef0300000000000009000000 | |
| 43 | + | 0000000000000000000000006e6574207469746c650000001c00780001005000 | |
| 44 | + | f303000000000000000000000000000000000000000000000108790003000000 | |
| 45 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 46 | + | 650000001c00790001005000f303000000000000000000000000000000000000 | |
| 47 | + | 0000000001087a0003000000ef03000000000000090000000000000000000000 | |
| 48 | + | 000000006e6574207469746c650000001c007a0001005000f303000000000000 | |
| 49 | + | 0000000000000000000000000000000001087b0003000000ef03000000000000 | |
| 50 | + | 090000000000000000000000000000006e6574207469746c650000001c007b00 | |
| 51 | + | 01005000f3030000000000000000000000000000000000000000000001087c00 | |
| 52 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 53 | + | 7469746c650000001c007c0001005000f3030000000000000000000000000000 | |
| 54 | + | 000000000000000001087d0003000000ef030000000000000900000000000000 | |
| 55 | + | 00000000000000006e6574207469746c650000001c007d0001005000f3030000 | |
| 56 | + | 000000000000000000000000000000000000000001087e0003000000ef030000 | |
| 57 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 58 | + | 1c007e0001005000f30300000000000000000000000000000000000000000000 | |
| 59 | + | 01087f0003000000ef0300000000000009000000000000000000000000000000 | |
| 60 | + | 6e6574207469746c650000001c007f0001005000f30300000000000000000000 | |
| 61 | + | 0000000000000000000000000108800003000000ef0300000000000009000000 | |
| 62 | + | 0000000000000000000000006e6574207469746c650000001c00800001005000 | |
| 63 | + | f303000000000000000000000000000000000000000000000108810003000000 | |
| 64 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 65 | + | 650000001c00810001005000f303000000000000000000000000000000000000 | |
| 66 | + | 000000000108820003000000ef03000000000000090000000000000000000000 | |
| 67 | + | 000000006e6574207469746c650000001c00820001005000f303000000000000 | |
| 68 | + | 000000000000000000000000000000000108830003000000ef03000000000000 | |
| 69 | + | 090000000000000000000000000000006e6574207469746c650000001c008300 | |
| 70 | + | 01005000f3030000000000000000000000000000000000000000000001088400 | |
| 71 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 72 | + | 7469746c650000001c00840001005000f3030000000000000000000000000000 | |
| 73 | + | 00000000000000000108850003000000ef030000000000000900000000000000 | |
| 74 | + | 00000000000000006e6574207469746c650000001c00850001005000f3030000 | |
| 75 | + | 00000000000000000000000000000000000000000108860003000000ef030000 | |
| 76 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 77 | + | 1c00860001005000f30300000000000000000000000000000000000000000000 | |
| 78 | + | 0108870003000000ef0300000000000009000000000000000000000000000000 | |
| 79 | + | 6e6574207469746c650000001c00870001005000f30300000000000000000000 | |
| 80 | + | 0000000000000000000000000108880003000000ef0300000000000009000000 | |
| 81 | + | 0000000000000000000000006e6574207469746c650000001c00880001005000 | |
| 82 | + | f303000000000000000000000000000000000000000000000108890003000000 | |
| 83 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 84 | + | 650000001c00890001005000f303000000000000000000000000000000000000 | |
| 85 | + | 0000000001088a0003000000ef03000000000000090000000000000000000000 | |
| 86 | + | 000000006e6574207469746c650000001c008a0001005000f303000000000000 | |
| 87 | + | 0000000000000000000000000000000001088b0003000000ef03000000000000 | |
| 88 | + | 090000000000000000000000000000006e6574207469746c650000001c008b00 | |
| 89 | + | 01005000f3030000000000000000000000000000000000000000000001088c00 | |
| 90 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 91 | + | 7469746c650000001c008c0001005000f3030000000000000000000000000000 | |
| 92 | + | 000000000000000001088d0003000000ef030000000000000900000000000000 | |
| 93 | + | 00000000000000006e6574207469746c650000001c008d0001005000f3030000 | |
| 94 | + | 000000000000000000000000000000000000000001088e0003000000ef030000 | |
| 95 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 96 | + | 1c008e0001005000f30300000000000000000000000000000000000000000000 | |
| 97 | + | 01088f0003000000ef0300000000000009000000000000000000000000000000 | |
| 98 | + | 6e6574207469746c650000001c008f0001005000f30300000000000000000000 | |
| 99 | + | 0000000000000000000000000108900003000000ef0300000000000009000000 | |
| 100 | + | 0000000000000000000000006e6574207469746c650000001c00900001005000 | |
| 101 | + | f303000000000000000000000000000000000000000000000108910003000000 | |
| 102 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 103 | + | 650000001c00910001005000f303000000000000000000000000000000000000 | |
| 104 | + | 000000000108920003000000ef03000000000000090000000000000000000000 | |
| 105 | + | 000000006e6574207469746c650000001c00920001005000f303000000000000 | |
| 106 | + | 000000000000000000000000000000000108930003000000ef03000000000000 | |
| 107 | + | 090000000000000000000000000000006e6574207469746c650000001c009300 | |
| 108 | + | 01005000f3030000000000000000000000000000000000000000000001089400 | |
| 109 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 110 | + | 7469746c650000001c00940001005000f3030000000000000000000000000000 | |
| 111 | + | 00000000000000000108950003000000ef030000000000000900000000000000 | |
| 112 | + | 00000000000000006e6574207469746c650000001c00950001005000f3030000 | |
| 113 | + | 00000000000000000000000000000000000000000108960003000000ef030000 | |
| 114 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 115 | + | 1c00960001005000f30300000000000000000000000000000000000000000000 | |
| 116 | + | 0108970003000000ef0300000000000009000000000000000000000000000000 | |
| 117 | + | 6e6574207469746c650000001c00970001005000f30300000000000000000000 | |
| 118 | + | 0000000000000000000000000108980003000000ef0300000000000009000000 | |
| 119 | + | 0000000000000000000000006e6574207469746c650000001c00980001005000 | |
| 120 | + | f303000000000000000000000000000000000000000000000108990003000000 | |
| 121 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 122 | + | 650000001c00990001005000f303000000000000000000000000000000000000 | |
| 123 | + | 0000000001089a0003000000ef03000000000000090000000000000000000000 | |
| 124 | + | 000000006e6574207469746c650000001c009a0001005000f303000000000000 | |
| 125 | + | 0000000000000000000000000000000001089b0003000000ef03000000000000 | |
| 126 | + | 090000000000000000000000000000006e6574207469746c650000001c009b00 | |
| 127 | + | 01005000f3030000000000000000000000000000000000000000000001089c00 | |
| 128 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 129 | + | 7469746c650000001c009c0001005000f3030000000000000000000000000000 | |
| 130 | + | 000000000000000001089d0003000000ef030000000000000900000000000000 | |
| 131 | + | 00000000000000006e6574207469746c650000001c009d0001005000f3030000 | |
| 132 | + | 000000000000000000000000000000000000000001089e0003000000ef030000 | |
| 133 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 134 | + | 1c009e0001005000f30300000000000000000000000000000000000000000000 | |
| 135 | + | 01089f0003000000ef0300000000000009000000000000000000000000000000 | |
| 136 | + | 6e6574207469746c650000001c009f0001005000f30300000000000000000000 | |
| 137 | + | 0000000000000000000000000108a00003000000ef0300000000000009000000 | |
| 138 | + | 0000000000000000000000006e6574207469746c650000001c00a00001005000 | |
| 139 | + | f303000000000000000000000000000000000000000000000108a10003000000 | |
| 140 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 141 | + | 650000001c00a10001005000f303000000000000000000000000000000000000 | |
| 142 | + | 000000000108a20003000000ef03000000000000090000000000000000000000 | |
| 143 | + | 000000006e6574207469746c650000001c00a20001005000f303000000000000 | |
| 144 | + | 000000000000000000000000000000000108a30003000000ef03000000000000 | |
| 145 | + | 090000000000000000000000000000006e6574207469746c650000001c00a300 | |
| 146 | + | 01005000f303000000000000000000000000000000000000000000000108a400 | |
| 147 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 148 | + | 7469746c650000001c00a40001005000f3030000000000000000000000000000 | |
| 149 | + | 00000000000000000108a50003000000ef030000000000000900000000000000 | |
| 150 | + | 00000000000000006e6574207469746c650000001c00a50001005000f3030000 | |
| 151 | + | 00000000000000000000000000000000000000000108a60003000000ef030000 | |
| 152 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 153 | + | 1c00a60001005000f30300000000000000000000000000000000000000000000 | |
| 154 | + | 0108a70003000000ef0300000000000009000000000000000000000000000000 | |
| 155 | + | 6e6574207469746c650000001c00a70001005000f30300000000000000000000 | |
| 156 | + | 0000000000000000000000000108a80003000000ef0300000000000009000000 | |
| 157 | + | 0000000000000000000000006e6574207469746c650000001c00a80001005000 | |
| 158 | + | f303000000000000000000000000000000000000000000000108a90003000000 | |
| 159 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 160 | + | 650000001c00a90001005000f303000000000000000000000000000000000000 | |
| 161 | + | 000000000108aa0003000000ef03000000000000090000000000000000000000 | |
| 162 | + | 000000006e6574207469746c650000001c00aa0001005000f303000000000000 | |
| 163 | + | 000000000000000000000000000000000108ab0003000000ef03000000000000 | |
| 164 | + | 090000000000000000000000000000006e6574207469746c650000001c00ab00 | |
| 165 | + | 01005000f303000000000000000000000000000000000000000000000108ac00 | |
| 166 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 167 | + | 7469746c650000001c00ac0001005000f3030000000000000000000000000000 | |
| 168 | + | 00000000000000000108ad0003000000ef030000000000000900000000000000 | |
| 169 | + | 00000000000000006e6574207469746c650000001c00ad0001005000f3030000 | |
| 170 | + | 00000000000000000000000000000000000000000108ae0003000000ef030000 | |
| 171 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 172 | + | 1c00ae0001005000f30300000000000000000000000000000000000000000000 | |
| 173 | + | 0108af0003000000ef0300000000000009000000000000000000000000000000 | |
| 174 | + | 6e6574207469746c650000001c00af0001005000f30300000000000000000000 | |
| 175 | + | 0000000000000000000000000108b00003000000ef0300000000000009000000 | |
| 176 | + | 0000000000000000000000006e6574207469746c650000001c00b00001005000 | |
| 177 | + | f303000000000000000000000000000000000000000000000108b10003000000 | |
| 178 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 179 | + | 650000001c00b10001005000f303000000000000000000000000000000000000 | |
| 180 | + | 000000000108b20003000000ef03000000000000090000000000000000000000 | |
| 181 | + | 000000006e6574207469746c650000001c00b20001005000f303000000000000 | |
| 182 | + | 000000000000000000000000000000000108b30003000000ef03000000000000 | |
| 183 | + | 090000000000000000000000000000006e6574207469746c650000001c00b300 | |
| 184 | + | 01005000f303000000000000000000000000000000000000000000000108b400 | |
| 185 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 186 | + | 7469746c650000001c00b40001005000f3030000000000000000000000000000 | |
| 187 | + | 00000000000000000108b50003000000ef030000000000000900000000000000 | |
| 188 | + | 00000000000000006e6574207469746c650000001c00b50001005000f3030000 | |
| 189 | + | 00000000000000000000000000000000000000000108b60003000000ef030000 | |
| 190 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 191 | + | 1c00b60001005000f30300000000000000000000000000000000000000000000 | |
| 192 | + | 0108b70003000000ef0300000000000009000000000000000000000000000000 | |
| 193 | + | 6e6574207469746c650000001c00b70001005000f30300000000000000000000 | |
| 194 | + | 0000000000000000000000000108b80003000000ef0300000000000009000000 | |
| 195 | + | 0000000000000000000000006e6574207469746c650000001c00b80001005000 | |
| 196 | + | f303000000000000000000000000000000000000000000000108b90003000000 | |
| 197 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 198 | + | 650000001c00b90001005000f303000000000000000000000000000000000000 | |
| 199 | + | 000000000108ba0003000000ef03000000000000090000000000000000000000 | |
| 200 | + | 000000006e6574207469746c650000001c00ba0001005000f303000000000000 | |
| 201 | + | 000000000000000000000000000000000108bb0003000000ef03000000000000 | |
| 202 | + | 090000000000000000000000000000006e6574207469746c650000001c00bb00 | |
| 203 | + | 01005000f303000000000000000000000000000000000000000000000108bc00 | |
| 204 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 205 | + | 7469746c650000001c00bc0001005000f3030000000000000000000000000000 | |
| 206 | + | 00000000000000000108bd0003000000ef030000000000000900000000000000 | |
| 207 | + | 00000000000000006e6574207469746c650000001c00bd0001005000f3030000 | |
| 208 | + | 00000000000000000000000000000000000000000108be0003000000ef030000 | |
| 209 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 210 | + | 1c00be0001005000f30300000000000000000000000000000000000000000000 | |
| 211 | + | 0108bf0003000000ef0300000000000009000000000000000000000000000000 | |
| 212 | + | 6e6574207469746c650000001c00bf0001005000f30300000000000000000000 | |
| 213 | + | 0000000000000000000000000108c00003000000ef0300000000000009000000 | |
| 214 | + | 0000000000000000000000006e6574207469746c650000001c00c00001005000 | |
| 215 | + | f303000000000000000000000000000000000000000000000108c10003000000 | |
| 216 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 217 | + | 650000001c00c10001005000f303000000000000000000000000000000000000 | |
| 218 | + | 000000000108c20003000000ef03000000000000090000000000000000000000 | |
| 219 | + | 000000006e6574207469746c650000001c00c20001005000f303000000000000 | |
| 220 | + | 000000000000000000000000000000000108c30003000000ef03000000000000 | |
| 221 | + | 090000000000000000000000000000006e6574207469746c650000001c00c300 | |
| 222 | + | 01005000f303000000000000000000000000000000000000000000000108c400 | |
| 223 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 224 | + | 7469746c650000001c00c40001005000f3030000000000000000000000000000 | |
| 225 | + | 00000000000000000108c50003000000ef030000000000000900000000000000 | |
| 226 | + | 00000000000000006e6574207469746c650000001c00c50001005000f3030000 | |
| 227 | + | 00000000000000000000000000000000000000000108c60003000000ef030000 | |
| 228 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 229 | + | 1c00c60001005000f30300000000000000000000000000000000000000000000 | |
| 230 | + | 0108c70003000000ef0300000000000009000000000000000000000000000000 | |
| 231 | + | 6e6574207469746c650000001c00c70001005000f30300000000000000000000 | |
| 232 | + | 0000000000000000000000000108c80003000000ef0300000000000009000000 | |
| 233 | + | 0000000000000000000000006e6574207469746c650000001c00c80001005000 | |
| 234 | + | f303000000000000000000000000000000000000000000000108c90003000000 | |
| 235 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 236 | + | 650000001c00c90001005000f303000000000000000000000000000000000000 | |
| 237 | + | 000000000108ca0003000000ef03000000000000090000000000000000000000 | |
| 238 | + | 000000006e6574207469746c650000001c00ca0001005000f303000000000000 | |
| 239 | + | 000000000000000000000000000000000108cb0003000000ef03000000000000 | |
| 240 | + | 090000000000000000000000000000006e6574207469746c650000001c00cb00 | |
| 241 | + | 01005000f303000000000000000000000000000000000000000000000108cc00 | |
| 242 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 243 | + | 7469746c650000001c00cc0001005000f3030000000000000000000000000000 | |
| 244 | + | 00000000000000000108cd0003000000ef030000000000000900000000000000 | |
| 245 | + | 00000000000000006e6574207469746c650000001c00cd0001005000f3030000 | |
| 246 | + | 00000000000000000000000000000000000000000108ce0003000000ef030000 | |
| 247 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 248 | + | 1c00ce0001005000f30300000000000000000000000000000000000000000000 | |
| 249 | + | 0108cf0003000000ef0300000000000009000000000000000000000000000000 | |
| 250 | + | 6e6574207469746c650000001c00cf0001005000f30300000000000000000000 | |
| 251 | + | 0000000000000000000000000108d00003000000ef0300000000000009000000 | |
| 252 | + | 0000000000000000000000006e6574207469746c650000001c00d00001005000 | |
| 253 | + | f303000000000000000000000000000000000000000000000108d10003000000 | |
| 254 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 255 | + | 650000001c00d10001005000f303000000000000000000000000000000000000 | |
| 256 | + | 000000000108d20003000000ef03000000000000090000000000000000000000 | |
| 257 | + | 000000006e6574207469746c650000001c00d20001005000f303000000000000 | |
| 258 | + | 000000000000000000000000000000000108d30003000000ef03000000000000 | |
| 259 | + | 090000000000000000000000000000006e6574207469746c650000001c00d300 | |
| 260 | + | 01005000f303000000000000000000000000000000000000000000000108d400 | |
| 261 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 262 | + | 7469746c650000001c00d40001005000f3030000000000000000000000000000 | |
| 263 | + | 00000000000000000108d50003000000ef030000000000000900000000000000 | |
| 264 | + | 00000000000000006e6574207469746c650000001c00d50001005000f3030000 | |
| 265 | + | 00000000000000000000000000000000000000000108d60003000000ef030000 | |
| 266 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 267 | + | 1c00d60001005000f30300000000000000000000000000000000000000000000 | |
| 268 | + | 0108d70003000000ef0300000000000009000000000000000000000000000000 | |
| 269 | + | 6e6574207469746c650000001c00d70001005000f30300000000000000000000 | |
| 270 | + | 0000000000000000000000000108d80003000000ef0300000000000009000000 | |
| 271 | + | 0000000000000000000000006e6574207469746c650000001c00d80001005000 | |
| 272 | + | f303000000000000000000000000000000000000000000000108d90003000000 | |
| 273 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 274 | + | 650000001c00d90001005000f303000000000000000000000000000000000000 | |
| 275 | + | 000000000108da0003000000ef03000000000000090000000000000000000000 | |
| 276 | + | 000000006e6574207469746c650000001c00da0001005000f303000000000000 | |
| 277 | + | 000000000000000000000000000000000108db0003000000ef03000000000000 | |
| 278 | + | 090000000000000000000000000000006e6574207469746c650000001c00db00 | |
| 279 | + | 01005000f303000000000000000000000000000000000000000000000108dc00 | |
| 280 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 281 | + | 7469746c650000001c00dc0001005000f3030000000000000000000000000000 | |
| 282 | + | 00000000000000000108dd0003000000ef030000000000000900000000000000 | |
| 283 | + | 00000000000000006e6574207469746c650000001c00dd0001005000f3030000 | |
| 284 | + | 00000000000000000000000000000000000000000108de0003000000ef030000 | |
| 285 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 286 | + | 1c00de0001005000f30300000000000000000000000000000000000000000000 | |
| 287 | + | 0108df0003000000ef0300000000000009000000000000000000000000000000 | |
| 288 | + | 6e6574207469746c650000001c00df0001005000f30300000000000000000000 | |
| 289 | + | 0000000000000000000000000108e00003000000ef0300000000000009000000 | |
| 290 | + | 0000000000000000000000006e6574207469746c650000001c00e00001005000 | |
| 291 | + | f303000000000000000000000000000000000000000000000108e10003000000 | |
| 292 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 293 | + | 650000001c00e10001005000f303000000000000000000000000000000000000 | |
| 294 | + | 000000000108e20003000000ef03000000000000090000000000000000000000 | |
| 295 | + | 000000006e6574207469746c650000001c00e20001005000f303000000000000 | |
| 296 | + | 000000000000000000000000000000000108e30003000000ef03000000000000 | |
| 297 | + | 090000000000000000000000000000006e6574207469746c650000001c00e300 | |
| 298 | + | 01005000f303000000000000000000000000000000000000000000000108e400 | |
| 299 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 300 | + | 7469746c650000001c00e40001005000f3030000000000000000000000000000 | |
| 301 | + | 00000000000000000108e50003000000ef030000000000000900000000000000 | |
| 302 | + | 00000000000000006e6574207469746c650000001c00e50001005000f3030000 | |
| 303 | + | 00000000000000000000000000000000000000000108e60003000000ef030000 | |
| 304 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 305 | + | 1c00e60001005000f30300000000000000000000000000000000000000000000 | |
| 306 | + | 0108e70003000000ef0300000000000009000000000000000000000000000000 | |
| 307 | + | 6e6574207469746c650000001c00e70001005000f30300000000000000000000 | |
| 308 | + | 0000000000000000000000000108e80003000000ef0300000000000009000000 | |
| 309 | + | 0000000000000000000000006e6574207469746c650000001c00e80001005000 | |
| 310 | + | f303000000000000000000000000000000000000000000000108e90003000000 | |
| 311 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 312 | + | 650000001c00e90001005000f303000000000000000000000000000000000000 | |
| 313 | + | 000000000108ea0003000000ef03000000000000090000000000000000000000 | |
| 314 | + | 000000006e6574207469746c650000001c00ea0001005000f303000000000000 | |
| 315 | + | 000000000000000000000000000000000108eb0003000000ef03000000000000 | |
| 316 | + | 090000000000000000000000000000006e6574207469746c650000001c00eb00 | |
| 317 | + | 01005000f303000000000000000000000000000000000000000000000108ec00 | |
| 318 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 319 | + | 7469746c650000001c00ec0001005000f3030000000000000000000000000000 | |
| 320 | + | 00000000000000000108ed0003000000ef030000000000000900000000000000 | |
| 321 | + | 00000000000000006e6574207469746c650000001c00ed0001005000f3030000 | |
| 322 | + | 00000000000000000000000000000000000000000108ee0003000000ef030000 | |
| 323 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 324 | + | 1c00ee0001005000f30300000000000000000000000000000000000000000000 | |
| 325 | + | 0108ef0003000000ef0300000000000009000000000000000000000000000000 | |
| 326 | + | 6e6574207469746c650000001c00ef0001005000f30300000000000000000000 | |
| 327 | + | 0000000000000000000000000108f00003000000ef0300000000000009000000 | |
| 328 | + | 0000000000000000000000006e6574207469746c650000001c00f00001005000 | |
| 329 | + | f303000000000000000000000000000000000000000000000108f10003000000 | |
| 330 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 331 | + | 650000001c00f10001005000f303000000000000000000000000000000000000 | |
| 332 | + | 000000000108f20003000000ef03000000000000090000000000000000000000 | |
| 333 | + | 000000006e6574207469746c650000001c00f20001005000f303000000000000 | |
| 334 | + | 000000000000000000000000000000000108f30003000000ef03000000000000 | |
| 335 | + | 090000000000000000000000000000006e6574207469746c650000001c00f300 | |
| 336 | + | 01005000f303000000000000000000000000000000000000000000000108f400 | |
| 337 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 338 | + | 7469746c650000001c00f40001005000f3030000000000000000000000000000 | |
| 339 | + | 00000000000000000108f50003000000ef030000000000000900000000000000 | |
| 340 | + | 00000000000000006e6574207469746c650000001c00f50001005000f3030000 | |
| 341 | + | 00000000000000000000000000000000000000000108f60003000000ef030000 | |
| 342 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 343 | + | 1c00f60001005000f30300000000000000000000000000000000000000000000 | |
| 344 | + | 0108f70003000000ef0300000000000009000000000000000000000000000000 | |
| 345 | + | 6e6574207469746c650000001c00f70001005000f30300000000000000000000 | |
| 346 | + | 0000000000000000000000000108f80003000000ef0300000000000009000000 | |
| 347 | + | 0000000000000000000000006e6574207469746c650000001c00f80001005000 | |
| 348 | + | f303000000000000000000000000000000000000000000000108f90003000000 | |
| 349 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 350 | + | 650000001c00f90001005000f303000000000000000000000000000000000000 | |
| 351 | + | 000000000108fa0003000000ef03000000000000090000000000000000000000 | |
| 352 | + | 000000006e6574207469746c650000001c00fa0001005000f303000000000000 | |
| 353 | + | 000000000000000000000000000000000108fb0003000000ef03000000000000 | |
| 354 | + | 090000000000000000000000000000006e6574207469746c650000001c00fb00 | |
| 355 | + | 01005000f303000000000000000000000000000000000000000000000108fc00 | |
| 356 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 357 | + | 7469746c650000001c00fc0001005000f3030000000000000000000000000000 | |
| 358 | + | 00000000000000000108fd0003000000ef030000000000000900000000000000 | |
| 359 | + | 00000000000000006e6574207469746c650000001c00fd0001005000f3030000 | |
| 360 | + | 00000000000000000000000000000000000000000108fe0003000000ef030000 | |
| 361 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 362 | + | 1c00fe0001005000f30300000000000000000000000000000000000000000000 | |
| 363 | + | 0108ff0003000000ef0300000000000009000000000000000000000000000000 | |
| 364 | + | 6e6574207469746c650000001c00ff0001005000f30300000000000000000000 | |
| 365 | + | 0000000000000000000000000108000103000000ef0300000000000009000000 | |
| 366 | + | 0000000000000000000000006e6574207469746c650000001c00000101005000 | |
| 367 | + | f303000000000000000000000000000000000000000000000108010103000000 | |
| 368 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 369 | + | 650000001c00010101005000f303000000000000000000000000000000000000 | |
| 370 | + | 000000000108020103000000ef03000000000000090000000000000000000000 | |
| 371 | + | 000000006e6574207469746c650000001c00020101005000f303000000000000 | |
| 372 | + | 000000000000000000000000000000000108030103000000ef03000000000000 | |
| 373 | + | 090000000000000000000000000000006e6574207469746c650000001c000301 | |
| 374 | + | 01005000f3030000000000000000000000000000000000000000000001080401 | |
| 375 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 376 | + | 7469746c650000001c00040101005000f3030000000000000000000000000000 | |
| 377 | + | 00000000000000000108050103000000ef030000000000000900000000000000 | |
| 378 | + | 00000000000000006e6574207469746c650000001c00050101005000f3030000 | |
| 379 | + | 00000000000000000000000000000000000000000108060103000000ef030000 | |
| 380 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 381 | + | 1c00060101005000f30300000000000000000000000000000000000000000000 | |
| 382 | + | 0108070103000000ef0300000000000009000000000000000000000000000000 | |
| 383 | + | 6e6574207469746c650000001c00070101005000f30300000000000000000000 | |
| 384 | + | 0000000000000000000000000108080103000000ef0300000000000009000000 | |
| 385 | + | 0000000000000000000000006e6574207469746c650000001c00080101005000 | |
| 386 | + | f303000000000000000000000000000000000000000000000108090103000000 | |
| 387 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 388 | + | 650000001c00090101005000f303000000000000000000000000000000000000 | |
| 389 | + | 0000000001080a0103000000ef03000000000000090000000000000000000000 | |
| 390 | + | 000000006e6574207469746c650000001c000a0101005000f303000000000000 | |
| 391 | + | 0000000000000000000000000000000001080b0103000000ef03000000000000 | |
| 392 | + | 090000000000000000000000000000006e6574207469746c650000001c000b01 | |
| 393 | + | 01005000f3030000000000000000000000000000000000000000000001080c01 | |
| 394 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 395 | + | 7469746c650000001c000c0101005000f3030000000000000000000000000000 | |
| 396 | + | 000000000000000001080d0103000000ef030000000000000900000000000000 | |
| 397 | + | 00000000000000006e6574207469746c650000001c000d0101005000f3030000 | |
| 398 | + | 000000000000000000000000000000000000000001080e0103000000ef030000 | |
| 399 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 400 | + | 1c000e0101005000f30300000000000000000000000000000000000000000000 | |
| 401 | + | 01080f0103000000ef0300000000000009000000000000000000000000000000 | |
| 402 | + | 6e6574207469746c650000001c000f0101005000f30300000000000000000000 | |
| 403 | + | 0000000000000000000000000108100103000000ef0300000000000009000000 | |
| 404 | + | 0000000000000000000000006e6574207469746c650000001c00100101005000 | |
| 405 | + | f303000000000000000000000000000000000000000000000108110103000000 | |
| 406 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 407 | + | 650000001c00110101005000f303000000000000000000000000000000000000 | |
| 408 | + | 000000000108120103000000ef03000000000000090000000000000000000000 | |
| 409 | + | 000000006e6574207469746c650000001c00120101005000f303000000000000 | |
| 410 | + | 000000000000000000000000000000000108130103000000ef03000000000000 | |
| 411 | + | 090000000000000000000000000000006e6574207469746c650000001c001301 | |
| 412 | + | 01005000f3030000000000000000000000000000000000000000000001081401 | |
| 413 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 414 | + | 7469746c650000001c00140101005000f3030000000000000000000000000000 | |
| 415 | + | 00000000000000000108150103000000ef030000000000000900000000000000 | |
| 416 | + | 00000000000000006e6574207469746c650000001c00150101005000f3030000 | |
| 417 | + | 00000000000000000000000000000000000000000108160103000000ef030000 | |
| 418 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 419 | + | 1c00160101005000f30300000000000000000000000000000000000000000000 | |
| 420 | + | 0108170103000000ef0300000000000009000000000000000000000000000000 | |
| 421 | + | 6e6574207469746c650000001c00170101005000f30300000000000000000000 | |
| 422 | + | 0000000000000000000000000108180103000000ef0300000000000009000000 | |
| 423 | + | 0000000000000000000000006e6574207469746c650000001c00180101005000 | |
| 424 | + | f303000000000000000000000000000000000000000000000108190103000000 | |
| 425 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 426 | + | 650000001c00190101005000f303000000000000000000000000000000000000 | |
| 427 | + | 0000000001081a0103000000ef03000000000000090000000000000000000000 | |
| 428 | + | 000000006e6574207469746c650000001c001a0101005000f303000000000000 | |
| 429 | + | 0000000000000000000000000000000001081b0103000000ef03000000000000 | |
| 430 | + | 090000000000000000000000000000006e6574207469746c650000001c001b01 | |
| 431 | + | 01005000f3030000000000000000000000000000000000000000000001081c01 | |
| 432 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 433 | + | 7469746c650000001c001c0101005000f3030000000000000000000000000000 | |
| 434 | + | 000000000000000001081d0103000000ef030000000000000900000000000000 | |
| 435 | + | 00000000000000006e6574207469746c650000001c001d0101005000f3030000 | |
| 436 | + | 000000000000000000000000000000000000000001081e0103000000ef030000 | |
| 437 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 438 | + | 1c001e0101005000f30300000000000000000000000000000000000000000000 | |
| 439 | + | 01081f0103000000ef0300000000000009000000000000000000000000000000 | |
| 440 | + | 6e6574207469746c650000001c001f0101005000f30300000000000000000000 | |
| 441 | + | 0000000000000000000000000108200103000000ef0300000000000009000000 | |
| 442 | + | 0000000000000000000000006e6574207469746c650000001c00200101005000 | |
| 443 | + | f303000000000000000000000000000000000000000000000108210103000000 | |
| 444 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 445 | + | 650000001c00210101005000f303000000000000000000000000000000000000 | |
| 446 | + | 000000000108220103000000ef03000000000000090000000000000000000000 | |
| 447 | + | 000000006e6574207469746c650000001c00220101005000f303000000000000 | |
| 448 | + | 000000000000000000000000000000000108230103000000ef03000000000000 | |
| 449 | + | 090000000000000000000000000000006e6574207469746c650000001c002301 | |
| 450 | + | 01005000f3030000000000000000000000000000000000000000000001082401 | |
| 451 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 452 | + | 7469746c650000001c00240101005000f3030000000000000000000000000000 | |
| 453 | + | 00000000000000000108250103000000ef030000000000000900000000000000 | |
| 454 | + | 00000000000000006e6574207469746c650000001c00250101005000f3030000 | |
| 455 | + | 00000000000000000000000000000000000000000108260103000000ef030000 | |
| 456 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 457 | + | 1c00260101005000f30300000000000000000000000000000000000000000000 | |
| 458 | + | 0108270103000000ef0300000000000009000000000000000000000000000000 | |
| 459 | + | 6e6574207469746c650000001c00270101005000f30300000000000000000000 | |
| 460 | + | 0000000000000000000000000108280103000000ef0300000000000009000000 | |
| 461 | + | 0000000000000000000000006e6574207469746c650000001c00280101005000 | |
| 462 | + | f303000000000000000000000000000000000000000000000108290103000000 | |
| 463 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 464 | + | 650000001c00290101005000f303000000000000000000000000000000000000 | |
| 465 | + | 0000000001082a0103000000ef03000000000000090000000000000000000000 | |
| 466 | + | 000000006e6574207469746c650000001c002a0101005000f303000000000000 | |
| 467 | + | 0000000000000000000000000000000001082b0103000000ef03000000000000 | |
| 468 | + | 090000000000000000000000000000006e6574207469746c650000001c002b01 | |
| 469 | + | 01005000f3030000000000000000000000000000000000000000000001082c01 | |
| 470 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 471 | + | 7469746c650000001c002c0101005000f3030000000000000000000000000000 | |
| 472 | + | 000000000000000001082d0103000000ef030000000000000900000000000000 | |
| 473 | + | 00000000000000006e6574207469746c650000001c002d0101005000f3030000 | |
| 474 | + | 000000000000000000000000000000000000000001082e0103000000ef030000 | |
| 475 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 476 | + | 1c002e0101005000f30300000000000000000000000000000000000000000000 | |
| 477 | + | 01082f0103000000ef0300000000000009000000000000000000000000000000 | |
| 478 | + | 6e6574207469746c650000001c002f0101005000f30300000000000000000000 | |
| 479 | + | 0000000000000000000000000108300103000000ef0300000000000009000000 | |
| 480 | + | 0000000000000000000000006e6574207469746c650000001c00300101005000 | |
| 481 | + | f303000000000000000000000000000000000000000000000108310103000000 | |
| 482 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 483 | + | 650000001c00310101005000f303000000000000000000000000000000000000 | |
| 484 | + | 000000000108320103000000ef03000000000000090000000000000000000000 | |
| 485 | + | 000000006e6574207469746c650000001c00320101005000f303000000000000 | |
| 486 | + | 000000000000000000000000000000000108330103000000ef03000000000000 | |
| 487 | + | 090000000000000000000000000000006e6574207469746c650000001c003301 | |
| 488 | + | 01005000f3030000000000000000000000000000000000000000000001083401 | |
| 489 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 490 | + | 7469746c650000001c00340101005000f3030000000000000000000000000000 | |
| 491 | + | 00000000000000000108350103000000ef030000000000000900000000000000 | |
| 492 | + | 00000000000000006e6574207469746c650000001c00350101005000f3030000 | |
| 493 | + | 00000000000000000000000000000000000000000108360103000000ef030000 | |
| 494 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 495 | + | 1c00360101005000f30300000000000000000000000000000000000000000000 | |
| 496 | + | 0108370103000000ef0300000000000009000000000000000000000000000000 | |
| 497 | + | 6e6574207469746c650000001c00370101005000f30300000000000000000000 | |
| 498 | + | 0000000000000000000000000108380103000000ef0300000000000009000000 | |
| 499 | + | 0000000000000000000000006e6574207469746c650000001c00380101005000 | |
| 500 | + | f303000000000000000000000000000000000000000000000108390103000000 | |
| 501 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 502 | + | 650000001c00390101005000f303000000000000000000000000000000000000 | |
| 503 | + | 0000000001083a0103000000ef03000000000000090000000000000000000000 | |
| 504 | + | 000000006e6574207469746c650000001c003a0101005000f303000000000000 | |
| 505 | + | 0000000000000000000000000000000001083b0103000000ef03000000000000 | |
| 506 | + | 090000000000000000000000000000006e6574207469746c650000001c003b01 | |
| 507 | + | 01005000f3030000000000000000000000000000000000000000000001083c01 | |
| 508 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 509 | + | 7469746c650000001c003c0101005000f3030000000000000000000000000000 | |
| 510 | + | 000000000000000001083d0103000000ef030000000000000900000000000000 | |
| 511 | + | 00000000000000006e6574207469746c650000001c003d0101005000f3030000 | |
| 512 | + | 000000000000000000000000000000000000000001083e0103000000ef030000 | |
| 513 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 514 | + | 1c003e0101005000f30300000000000000000000000000000000000000000000 | |
| 515 | + | 01083f0103000000ef0300000000000009000000000000000000000000000000 | |
| 516 | + | 6e6574207469746c650000001c003f0101005000f30300000000000000000000 | |
| 517 | + | 0000000000000000000000000108400103000000ef0300000000000009000000 | |
| 518 | + | 0000000000000000000000006e6574207469746c650000001c00400101005000 | |
| 519 | + | f303000000000000000000000000000000000000000000000108410103000000 | |
| 520 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 521 | + | 650000001c00410101005000f303000000000000000000000000000000000000 | |
| 522 | + | 000000000108420103000000ef03000000000000090000000000000000000000 | |
| 523 | + | 000000006e6574207469746c650000001c00420101005000f303000000000000 | |
| 524 | + | 000000000000000000000000000000000108430103000000ef03000000000000 | |
| 525 | + | 090000000000000000000000000000006e6574207469746c650000001c004301 | |
| 526 | + | 01005000f3030000000000000000000000000000000000000000000001084401 | |
| 527 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 528 | + | 7469746c650000001c00440101005000f3030000000000000000000000000000 | |
| 529 | + | 00000000000000000108450103000000ef030000000000000900000000000000 | |
| 530 | + | 00000000000000006e6574207469746c650000001c00450101005000f3030000 | |
| 531 | + | 00000000000000000000000000000000000000000108460103000000ef030000 | |
| 532 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 533 | + | 1c00460101005000f30300000000000000000000000000000000000000000000 | |
| 534 | + | 0108470103000000ef0300000000000009000000000000000000000000000000 | |
| 535 | + | 6e6574207469746c650000001c00470101005000f30300000000000000000000 | |
| 536 | + | 0000000000000000000000000108480103000000ef0300000000000009000000 | |
| 537 | + | 0000000000000000000000006e6574207469746c650000001c00480101005000 | |
| 538 | + | f303000000000000000000000000000000000000000000000108490103000000 | |
| 539 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 540 | + | 650000001c00490101005000f303000000000000000000000000000000000000 | |
| 541 | + | 0000000001084a0103000000ef03000000000000090000000000000000000000 | |
| 542 | + | 000000006e6574207469746c650000001c004a0101005000f303000000000000 | |
| 543 | + | 0000000000000000000000000000000001084b0103000000ef03000000000000 | |
| 544 | + | 090000000000000000000000000000006e6574207469746c650000001c004b01 | |
| 545 | + | 01005000f3030000000000000000000000000000000000000000000001084c01 | |
| 546 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 547 | + | 7469746c650000001c004c0101005000f3030000000000000000000000000000 | |
| 548 | + | 000000000000000001084d0103000000ef030000000000000900000000000000 | |
| 549 | + | 00000000000000006e6574207469746c650000001c004d0101005000f3030000 | |
| 550 | + | 000000000000000000000000000000000000000001084e0103000000ef030000 | |
| 551 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 552 | + | 1c004e0101005000f30300000000000000000000000000000000000000000000 | |
| 553 | + | 01084f0103000000ef0300000000000009000000000000000000000000000000 | |
| 554 | + | 6e6574207469746c650000001c004f0101005000f30300000000000000000000 | |
| 555 | + | 0000000000000000000000000108500103000000ef0300000000000009000000 | |
| 556 | + | 0000000000000000000000006e6574207469746c650000001c00500101005000 | |
| 557 | + | f303000000000000000000000000000000000000000000000108510103000000 | |
| 558 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 559 | + | 650000001c00510101005000f303000000000000000000000000000000000000 | |
| 560 | + | 000000000108520103000000ef03000000000000090000000000000000000000 | |
| 561 | + | 000000006e6574207469746c650000001c00520101005000f303000000000000 | |
| 562 | + | 000000000000000000000000000000000108530103000000ef03000000000000 | |
| 563 | + | 090000000000000000000000000000006e6574207469746c650000001c005301 | |
| 564 | + | 01005000f3030000000000000000000000000000000000000000000001085401 | |
| 565 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 566 | + | 7469746c650000001c00540101005000f3030000000000000000000000000000 | |
| 567 | + | 00000000000000000108550103000000ef030000000000000900000000000000 | |
| 568 | + | 00000000000000006e6574207469746c650000001c00550101005000f3030000 | |
| 569 | + | 00000000000000000000000000000000000000000108560103000000ef030000 | |
| 570 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 571 | + | 1c00560101005000f30300000000000000000000000000000000000000000000 | |
| 572 | + | 0108570103000000ef0300000000000009000000000000000000000000000000 | |
| 573 | + | 6e6574207469746c650000001c00570101005000f30300000000000000000000 | |
| 574 | + | 0000000000000000000000000108580103000000ef0300000000000009000000 | |
| 575 | + | 0000000000000000000000006e6574207469746c650000001c00580101005000 | |
| 576 | + | f303000000000000000000000000000000000000000000000108590103000000 | |
| 577 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 578 | + | 650000001c00590101005000f303000000000000000000000000000000000000 | |
| 579 | + | 0000000001085a0103000000ef03000000000000090000000000000000000000 | |
| 580 | + | 000000006e6574207469746c650000001c005a0101005000f303000000000000 | |
| 581 | + | 0000000000000000000000000000000001085b0103000000ef03000000000000 | |
| 582 | + | 090000000000000000000000000000006e6574207469746c650000001c005b01 | |
| 583 | + | 01005000f3030000000000000000000000000000000000000000000001085c01 | |
| 584 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 585 | + | 7469746c650000001c005c0101005000f3030000000000000000000000000000 | |
| 586 | + | 000000000000000001085d0103000000ef030000000000000900000000000000 | |
| 587 | + | 00000000000000006e6574207469746c650000001c005d0101005000f3030000 | |
| 588 | + | 000000000000000000000000000000000000000001085e0103000000ef030000 | |
| 589 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 590 | + | 1c005e0101005000f30300000000000000000000000000000000000000000000 | |
| 591 | + | 01085f0103000000ef0300000000000009000000000000000000000000000000 | |
| 592 | + | 6e6574207469746c650000001c005f0101005000f30300000000000000000000 | |
| 593 | + | 0000000000000000000000000108600103000000ef0300000000000009000000 | |
| 594 | + | 0000000000000000000000006e6574207469746c650000001c00600101005000 | |
| 595 | + | f303000000000000000000000000000000000000000000000108610103000000 | |
| 596 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 597 | + | 650000001c00610101005000f303000000000000000000000000000000000000 | |
| 598 | + | 000000000108620103000000ef03000000000000090000000000000000000000 | |
| 599 | + | 000000006e6574207469746c650000001c00620101005000f303000000000000 | |
| 600 | + | 000000000000000000000000000000000108630103000000ef03000000000000 | |
| 601 | + | 090000000000000000000000000000006e6574207469746c650000001c006301 | |
| 602 | + | 01005000f3030000000000000000000000000000000000000000000001086401 | |
| 603 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 604 | + | 7469746c650000001c00640101005000f3030000000000000000000000000000 | |
| 605 | + | 00000000000000000108650103000000ef030000000000000900000000000000 | |
| 606 | + | 00000000000000006e6574207469746c650000001c00650101005000f3030000 | |
| 607 | + | 00000000000000000000000000000000000000000108660103000000ef030000 | |
| 608 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 609 | + | 1c00660101005000f30300000000000000000000000000000000000000000000 | |
| 610 | + | 0108670103000000ef0300000000000009000000000000000000000000000000 | |
| 611 | + | 6e6574207469746c650000001c00670101005000f30300000000000000000000 | |
| 612 | + | 0000000000000000000000000108680103000000ef0300000000000009000000 | |
| 613 | + | 0000000000000000000000006e6574207469746c650000001c00680101005000 | |
| 614 | + | f303000000000000000000000000000000000000000000000108690103000000 | |
| 615 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 616 | + | 650000001c00690101005000f303000000000000000000000000000000000000 | |
| 617 | + | 0000000001086a0103000000ef03000000000000090000000000000000000000 | |
| 618 | + | 000000006e6574207469746c650000001c006a0101005000f303000000000000 | |
| 619 | + | 0000000000000000000000000000000001086b0103000000ef03000000000000 | |
| 620 | + | 090000000000000000000000000000006e6574207469746c650000001c006b01 | |
| 621 | + | 01005000f3030000000000000000000000000000000000000000000001086c01 | |
| 622 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 623 | + | 7469746c650000001c006c0101005000f3030000000000000000000000000000 | |
| 624 | + | 000000000000000001086d0103000000ef030000000000000900000000000000 | |
| 625 | + | 00000000000000006e6574207469746c650000001c006d0101005000f3030000 | |
| 626 | + | 000000000000000000000000000000000000000001086e0103000000ef030000 | |
| 627 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 628 | + | 1c006e0101005000f30300000000000000000000000000000000000000000000 | |
| 629 | + | 01086f0103000000ef0300000000000009000000000000000000000000000000 | |
| 630 | + | 6e6574207469746c650000001c006f0101005000f30300000000000000000000 | |
| 631 | + | 0000000000000000000000000108700103000000ef0300000000000009000000 | |
| 632 | + | 0000000000000000000000006e6574207469746c650000001c00700101005000 | |
| 633 | + | f303000000000000000000000000000000000000000000000108710103000000 | |
| 634 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 635 | + | 650000001c00710101005000f303000000000000000000000000000000000000 | |
| 636 | + | 000000000108720103000000ef03000000000000090000000000000000000000 | |
| 637 | + | 000000006e6574207469746c650000001c00720101005000f303000000000000 | |
| 638 | + | 000000000000000000000000000000000108730103000000ef03000000000000 | |
| 639 | + | 090000000000000000000000000000006e6574207469746c650000001c007301 | |
| 640 | + | 01005000f3030000000000000000000000000000000000000000000001087401 | |
| 641 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 642 | + | 7469746c650000001c00740101005000f3030000000000000000000000000000 | |
| 643 | + | 00000000000000000108750103000000ef030000000000000900000000000000 | |
| 644 | + | 00000000000000006e6574207469746c650000001c00750101005000f3030000 | |
| 645 | + | 00000000000000000000000000000000000000000108760103000000ef030000 | |
| 646 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 647 | + | 1c00760101005000f30300000000000000000000000000000000000000000000 | |
| 648 | + | 0108770103000000ef0300000000000009000000000000000000000000000000 | |
| 649 | + | 6e6574207469746c650000001c00770101005000f30300000000000000000000 | |
| 650 | + | 0000000000000000000000000108780103000000ef0300000000000009000000 | |
| 651 | + | 0000000000000000000000006e6574207469746c650000001c00780101005000 | |
| 652 | + | f303000000000000000000000000000000000000000000000108790103000000 | |
| 653 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 654 | + | 650000001c00790101005000f303000000000000000000000000000000000000 | |
| 655 | + | 0000000001087a0103000000ef03000000000000090000000000000000000000 | |
| 656 | + | 000000006e6574207469746c650000001c007a0101005000f303000000000000 | |
| 657 | + | 0000000000000000000000000000000001087b0103000000ef03000000000000 | |
| 658 | + | 090000000000000000000000000000006e6574207469746c650000001c007b01 | |
| 659 | + | 01005000f3030000000000000000000000000000000000000000000001087c01 | |
| 660 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 661 | + | 7469746c650000001c007c0101005000f3030000000000000000000000000000 | |
| 662 | + | 000000000000000001087d0103000000ef030000000000000900000000000000 | |
| 663 | + | 00000000000000006e6574207469746c650000001c007d0101005000f3030000 | |
| 664 | + | 000000000000000000000000000000000000000001087e0103000000ef030000 | |
| 665 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 666 | + | 1c007e0101005000f30300000000000000000000000000000000000000000000 | |
| 667 | + | 01087f0103000000ef0300000000000009000000000000000000000000000000 | |
| 668 | + | 6e6574207469746c650000001c007f0101005000f30300000000000000000000 | |
| 669 | + | 0000000000000000000000000108800103000000ef0300000000000009000000 | |
| 670 | + | 0000000000000000000000006e6574207469746c650000001c00800101005000 | |
| 671 | + | f303000000000000000000000000000000000000000000000108810103000000 | |
| 672 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 673 | + | 650000001c00810101005000f303000000000000000000000000000000000000 | |
| 674 | + | 000000000108820103000000ef03000000000000090000000000000000000000 | |
| 675 | + | 000000006e6574207469746c650000001c00820101005000f303000000000000 | |
| 676 | + | 000000000000000000000000000000000108830103000000ef03000000000000 | |
| 677 | + | 090000000000000000000000000000006e6574207469746c650000001c008301 | |
| 678 | + | 01005000f3030000000000000000000000000000000000000000000001088401 | |
| 679 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 680 | + | 7469746c650000001c00840101005000f3030000000000000000000000000000 | |
| 681 | + | 00000000000000000108850103000000ef030000000000000900000000000000 | |
| 682 | + | 00000000000000006e6574207469746c650000001c00850101005000f3030000 | |
| 683 | + | 00000000000000000000000000000000000000000108860103000000ef030000 | |
| 684 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 685 | + | 1c00860101005000f30300000000000000000000000000000000000000000000 | |
| 686 | + | 0108870103000000ef0300000000000009000000000000000000000000000000 | |
| 687 | + | 6e6574207469746c650000001c00870101005000f30300000000000000000000 | |
| 688 | + | 0000000000000000000000000108880103000000ef0300000000000009000000 | |
| 689 | + | 0000000000000000000000006e6574207469746c650000001c00880101005000 | |
| 690 | + | f303000000000000000000000000000000000000000000000108890103000000 | |
| 691 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 692 | + | 650000001c00890101005000f303000000000000000000000000000000000000 | |
| 693 | + | 0000000001088a0103000000ef03000000000000090000000000000000000000 | |
| 694 | + | 000000006e6574207469746c650000001c008a0101005000f303000000000000 | |
| 695 | + | 0000000000000000000000000000000001088b0103000000ef03000000000000 | |
| 696 | + | 090000000000000000000000000000006e6574207469746c650000001c008b01 | |
| 697 | + | 01005000f3030000000000000000000000000000000000000000000001088c01 | |
| 698 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 699 | + | 7469746c650000001c008c0101005000f3030000000000000000000000000000 | |
| 700 | + | 000000000000000001088d0103000000ef030000000000000900000000000000 | |
| 701 | + | 00000000000000006e6574207469746c650000001c008d0101005000f3030000 | |
| 702 | + | 000000000000000000000000000000000000000001088e0103000000ef030000 | |
| 703 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 704 | + | 1c008e0101005000f30300000000000000000000000000000000000000000000 | |
| 705 | + | 01088f0103000000ef0300000000000009000000000000000000000000000000 | |
| 706 | + | 6e6574207469746c650000001c008f0101005000f30300000000000000000000 | |
| 707 | + | 0000000000000000000000000108900103000000ef0300000000000009000000 | |
| 708 | + | 0000000000000000000000006e6574207469746c650000001c00900101005000 | |
| 709 | + | f303000000000000000000000000000000000000000000000108910103000000 | |
| 710 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 711 | + | 650000001c00910101005000f303000000000000000000000000000000000000 | |
| 712 | + | 000000000108920103000000ef03000000000000090000000000000000000000 | |
| 713 | + | 000000006e6574207469746c650000001c00920101005000f303000000000000 | |
| 714 | + | 000000000000000000000000000000000108930103000000ef03000000000000 | |
| 715 | + | 090000000000000000000000000000006e6574207469746c650000001c009301 | |
| 716 | + | 01005000f3030000000000000000000000000000000000000000000001089401 | |
| 717 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 718 | + | 7469746c650000001c00940101005000f3030000000000000000000000000000 | |
| 719 | + | 00000000000000000108950103000000ef030000000000000900000000000000 | |
| 720 | + | 00000000000000006e6574207469746c650000001c00950101005000f3030000 | |
| 721 | + | 00000000000000000000000000000000000000000108960103000000ef030000 | |
| 722 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 723 | + | 1c00960101005000f30300000000000000000000000000000000000000000000 | |
| 724 | + | 0108970103000000ef0300000000000009000000000000000000000000000000 | |
| 725 | + | 6e6574207469746c650000001c00970101005000f30300000000000000000000 | |
| 726 | + | 0000000000000000000000000108980103000000ef0300000000000009000000 | |
| 727 | + | 0000000000000000000000006e6574207469746c650000001c00980101005000 | |
| 728 | + | f303000000000000000000000000000000000000000000000108990103000000 | |
| 729 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 730 | + | 650000001c00990101005000f303000000000000000000000000000000000000 | |
| 731 | + | 0000000001089a0103000000ef03000000000000090000000000000000000000 | |
| 732 | + | 000000006e6574207469746c650000001c009a0101005000f303000000000000 | |
| 733 | + | 0000000000000000000000000000000001089b0103000000ef03000000000000 | |
| 734 | + | 090000000000000000000000000000006e6574207469746c650000001c009b01 | |
| 735 | + | 01005000f3030000000000000000000000000000000000000000000001089c01 | |
| 736 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 737 | + | 7469746c650000001c009c0101005000f3030000000000000000000000000000 | |
| 738 | + | 000000000000000001089d0103000000ef030000000000000900000000000000 | |
| 739 | + | 00000000000000006e6574207469746c650000001c009d0101005000f3030000 | |
| 740 | + | 000000000000000000000000000000000000000001089e0103000000ef030000 | |
| 741 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 742 | + | 1c009e0101005000f30300000000000000000000000000000000000000000000 | |
| 743 | + | 01089f0103000000ef0300000000000009000000000000000000000000000000 | |
| 744 | + | 6e6574207469746c650000001c009f0101005000f30300000000000000000000 | |
| 745 | + | 0000000000000000000000000108a00103000000ef0300000000000009000000 | |
| 746 | + | 0000000000000000000000006e6574207469746c650000001c00a00101005000 | |
| 747 | + | f303000000000000000000000000000000000000000000000108a10103000000 | |
| 748 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 749 | + | 650000001c00a10101005000f303000000000000000000000000000000000000 | |
| 750 | + | 000000000108a20103000000ef03000000000000090000000000000000000000 | |
| 751 | + | 000000006e6574207469746c650000001c00a20101005000f303000000000000 | |
| 752 | + | 000000000000000000000000000000000108a30103000000ef03000000000000 | |
| 753 | + | 090000000000000000000000000000006e6574207469746c650000001c00a301 | |
| 754 | + | 01005000f303000000000000000000000000000000000000000000000108a401 | |
| 755 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 756 | + | 7469746c650000001c00a40101005000f3030000000000000000000000000000 | |
| 757 | + | 00000000000000000108a50103000000ef030000000000000900000000000000 | |
| 758 | + | 00000000000000006e6574207469746c650000001c00a50101005000f3030000 | |
| 759 | + | 00000000000000000000000000000000000000000108a60103000000ef030000 | |
| 760 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 761 | + | 1c00a60101005000f30300000000000000000000000000000000000000000000 | |
| 762 | + | 0108a70103000000ef0300000000000009000000000000000000000000000000 | |
| 763 | + | 6e6574207469746c650000001c00a70101005000f30300000000000000000000 | |
| 764 | + | 0000000000000000000000000108a80103000000ef0300000000000009000000 | |
| 765 | + | 0000000000000000000000006e6574207469746c650000001c00a80101005000 | |
| 766 | + | f303000000000000000000000000000000000000000000000108a90103000000 | |
| 767 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 768 | + | 650000001c00a90101005000f303000000000000000000000000000000000000 | |
| 769 | + | 000000000108aa0103000000ef03000000000000090000000000000000000000 | |
| 770 | + | 000000006e6574207469746c650000001c00aa0101005000f303000000000000 | |
| 771 | + | 000000000000000000000000000000000108ab0103000000ef03000000000000 | |
| 772 | + | 090000000000000000000000000000006e6574207469746c650000001c00ab01 | |
| 773 | + | 01005000f303000000000000000000000000000000000000000000000108ac01 | |
| 774 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 775 | + | 7469746c650000001c00ac0101005000f3030000000000000000000000000000 | |
| 776 | + | 00000000000000000108ad0103000000ef030000000000000900000000000000 | |
| 777 | + | 00000000000000006e6574207469746c650000001c00ad0101005000f3030000 | |
| 778 | + | 00000000000000000000000000000000000000000108ae0103000000ef030000 | |
| 779 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 780 | + | 1c00ae0101005000f30300000000000000000000000000000000000000000000 | |
| 781 | + | 0108af0103000000ef0300000000000009000000000000000000000000000000 | |
| 782 | + | 6e6574207469746c650000001c00af0101005000f30300000000000000000000 | |
| 783 | + | 0000000000000000000000000108b00103000000ef0300000000000009000000 | |
| 784 | + | 0000000000000000000000006e6574207469746c650000001c00b00101005000 | |
| 785 | + | f303000000000000000000000000000000000000000000000108b10103000000 | |
| 786 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 787 | + | 650000001c00b10101005000f303000000000000000000000000000000000000 | |
| 788 | + | 000000000108b20103000000ef03000000000000090000000000000000000000 | |
| 789 | + | 000000006e6574207469746c650000001c00b20101005000f303000000000000 | |
| 790 | + | 000000000000000000000000000000000108b30103000000ef03000000000000 | |
| 791 | + | 090000000000000000000000000000006e6574207469746c650000001c00b301 | |
| 792 | + | 01005000f303000000000000000000000000000000000000000000000108b401 | |
| 793 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 794 | + | 7469746c650000001c00b40101005000f3030000000000000000000000000000 | |
| 795 | + | 00000000000000000108b50103000000ef030000000000000900000000000000 | |
| 796 | + | 00000000000000006e6574207469746c650000001c00b50101005000f3030000 | |
| 797 | + | 00000000000000000000000000000000000000000108b60103000000ef030000 | |
| 798 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 799 | + | 1c00b60101005000f30300000000000000000000000000000000000000000000 | |
| 800 | + | 0108b70103000000ef0300000000000009000000000000000000000000000000 | |
| 801 | + | 6e6574207469746c650000001c00b70101005000f30300000000000000000000 | |
| 802 | + | 0000000000000000000000000108b80103000000ef0300000000000009000000 | |
| 803 | + | 0000000000000000000000006e6574207469746c650000001c00b80101005000 | |
| 804 | + | f303000000000000000000000000000000000000000000000108b90103000000 | |
| 805 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 806 | + | 650000001c00b90101005000f303000000000000000000000000000000000000 | |
| 807 | + | 000000000108ba0103000000ef03000000000000090000000000000000000000 | |
| 808 | + | 000000006e6574207469746c650000001c00ba0101005000f303000000000000 | |
| 809 | + | 000000000000000000000000000000000108bb0103000000ef03000000000000 | |
| 810 | + | 090000000000000000000000000000006e6574207469746c650000001c00bb01 | |
| 811 | + | 01005000f303000000000000000000000000000000000000000000000108bc01 | |
| 812 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 813 | + | 7469746c650000001c00bc0101005000f3030000000000000000000000000000 | |
| 814 | + | 00000000000000000108bd0103000000ef030000000000000900000000000000 | |
| 815 | + | 00000000000000006e6574207469746c650000001c00bd0101005000f3030000 | |
| 816 | + | 00000000000000000000000000000000000000000108be0103000000ef030000 | |
| 817 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 818 | + | 1c00be0101005000f30300000000000000000000000000000000000000000000 | |
| 819 | + | 0108bf0103000000ef0300000000000009000000000000000000000000000000 | |
| 820 | + | 6e6574207469746c650000001c00bf0101005000f30300000000000000000000 | |
| 821 | + | 0000000000000000000000000108c00103000000ef0300000000000009000000 | |
| 822 | + | 0000000000000000000000006e6574207469746c650000001c00c00101005000 | |
| 823 | + | f303000000000000000000000000000000000000000000000108c10103000000 | |
| 824 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 825 | + | 650000001c00c10101005000f303000000000000000000000000000000000000 | |
| 826 | + | 000000000108c20103000000ef03000000000000090000000000000000000000 | |
| 827 | + | 000000006e6574207469746c650000001c00c20101005000f303000000000000 | |
| 828 | + | 000000000000000000000000000000000108c30103000000ef03000000000000 | |
| 829 | + | 090000000000000000000000000000006e6574207469746c650000001c00c301 | |
| 830 | + | 01005000f303000000000000000000000000000000000000000000000108c401 | |
| 831 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 832 | + | 7469746c650000001c00c40101005000f3030000000000000000000000000000 | |
| 833 | + | 00000000000000000108c50103000000ef030000000000000900000000000000 | |
| 834 | + | 00000000000000006e6574207469746c650000001c00c50101005000f3030000 | |
| 835 | + | 00000000000000000000000000000000000000000108c60103000000ef030000 | |
| 836 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 837 | + | 1c00c60101005000f30300000000000000000000000000000000000000000000 | |
| 838 | + | 0108c70103000000ef0300000000000009000000000000000000000000000000 | |
| 839 | + | 6e6574207469746c650000001c00c70101005000f30300000000000000000000 | |
| 840 | + | 0000000000000000000000000108c80103000000ef0300000000000009000000 | |
| 841 | + | 0000000000000000000000006e6574207469746c650000001c00c80101005000 | |
| 842 | + | f303000000000000000000000000000000000000000000000108c90103000000 | |
| 843 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 844 | + | 650000001c00c90101005000f303000000000000000000000000000000000000 | |
| 845 | + | 000000000108ca0103000000ef03000000000000090000000000000000000000 | |
| 846 | + | 000000006e6574207469746c650000001c00ca0101005000f303000000000000 | |
| 847 | + | 000000000000000000000000000000000108cb0103000000ef03000000000000 | |
| 848 | + | 090000000000000000000000000000006e6574207469746c650000001c00cb01 | |
| 849 | + | 01005000f303000000000000000000000000000000000000000000000108cc01 | |
| 850 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 851 | + | 7469746c650000001c00cc0101005000f3030000000000000000000000000000 | |
| 852 | + | 00000000000000000108cd0103000000ef030000000000000900000000000000 | |
| 853 | + | 00000000000000006e6574207469746c650000001c00cd0101005000f3030000 | |
| 854 | + | 00000000000000000000000000000000000000000108ce0103000000ef030000 | |
| 855 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 856 | + | 1c00ce0101005000f30300000000000000000000000000000000000000000000 | |
| 857 | + | 0108cf0103000000ef0300000000000009000000000000000000000000000000 | |
| 858 | + | 6e6574207469746c650000001c00cf0101005000f30300000000000000000000 | |
| 859 | + | 0000000000000000000000000108d00103000000ef0300000000000009000000 | |
| 860 | + | 0000000000000000000000006e6574207469746c650000001c00d00101005000 | |
| 861 | + | f303000000000000000000000000000000000000000000000108d10103000000 | |
| 862 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 863 | + | 650000001c00d10101005000f303000000000000000000000000000000000000 | |
| 864 | + | 000000000108d20103000000ef03000000000000090000000000000000000000 | |
| 865 | + | 000000006e6574207469746c650000001c00d20101005000f303000000000000 | |
| 866 | + | 000000000000000000000000000000000108d30103000000ef03000000000000 | |
| 867 | + | 090000000000000000000000000000006e6574207469746c650000001c00d301 | |
| 868 | + | 01005000f303000000000000000000000000000000000000000000000108d401 | |
| 869 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 870 | + | 7469746c650000001c00d40101005000f3030000000000000000000000000000 | |
| 871 | + | 00000000000000000108d50103000000ef030000000000000900000000000000 | |
| 872 | + | 00000000000000006e6574207469746c650000001c00d50101005000f3030000 | |
| 873 | + | 00000000000000000000000000000000000000000108d60103000000ef030000 | |
| 874 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 875 | + | 1c00d60101005000f30300000000000000000000000000000000000000000000 | |
| 876 | + | 0108d70103000000ef0300000000000009000000000000000000000000000000 | |
| 877 | + | 6e6574207469746c650000001c00d70101005000f30300000000000000000000 | |
| 878 | + | 0000000000000000000000000108d80103000000ef0300000000000009000000 | |
| 879 | + | 0000000000000000000000006e6574207469746c650000001c00d80101005000 | |
| 880 | + | f303000000000000000000000000000000000000000000000108d90103000000 | |
| 881 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 882 | + | 650000001c00d90101005000f303000000000000000000000000000000000000 | |
| 883 | + | 000000000108da0103000000ef03000000000000090000000000000000000000 | |
| 884 | + | 000000006e6574207469746c650000001c00da0101005000f303000000000000 | |
| 885 | + | 000000000000000000000000000000000108db0103000000ef03000000000000 | |
| 886 | + | 090000000000000000000000000000006e6574207469746c650000001c00db01 | |
| 887 | + | 01005000f303000000000000000000000000000000000000000000000108dc01 | |
| 888 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 889 | + | 7469746c650000001c00dc0101005000f3030000000000000000000000000000 | |
| 890 | + | 00000000000000000108dd0103000000ef030000000000000900000000000000 | |
| 891 | + | 00000000000000006e6574207469746c650000001c00dd0101005000f3030000 | |
| 892 | + | 00000000000000000000000000000000000000000108de0103000000ef030000 | |
| 893 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 894 | + | 1c00de0101005000f30300000000000000000000000000000000000000000000 | |
| 895 | + | 0108df0103000000ef0300000000000009000000000000000000000000000000 | |
| 896 | + | 6e6574207469746c650000001c00df0101005000f30300000000000000000000 | |
| 897 | + | 0000000000000000000000000108e00103000000ef0300000000000009000000 | |
| 898 | + | 0000000000000000000000006e6574207469746c650000001c00e00101005000 | |
| 899 | + | f303000000000000000000000000000000000000000000000108e10103000000 | |
| 900 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 901 | + | 650000001c00e10101005000f303000000000000000000000000000000000000 | |
| 902 | + | 000000000108e20103000000ef03000000000000090000000000000000000000 | |
| 903 | + | 000000006e6574207469746c650000001c00e20101005000f303000000000000 | |
| 904 | + | 000000000000000000000000000000000108e30103000000ef03000000000000 | |
| 905 | + | 090000000000000000000000000000006e6574207469746c650000001c00e301 | |
| 906 | + | 01005000f303000000000000000000000000000000000000000000000108e401 | |
| 907 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 908 | + | 7469746c650000001c00e40101005000f3030000000000000000000000000000 | |
| 909 | + | 00000000000000000108e50103000000ef030000000000000900000000000000 | |
| 910 | + | 00000000000000006e6574207469746c650000001c00e50101005000f3030000 | |
| 911 | + | 00000000000000000000000000000000000000000108e60103000000ef030000 | |
| 912 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 913 | + | 1c00e60101005000f30300000000000000000000000000000000000000000000 | |
| 914 | + | 0108e70103000000ef0300000000000009000000000000000000000000000000 | |
| 915 | + | 6e6574207469746c650000001c00e70101005000f30300000000000000000000 | |
| 916 | + | 0000000000000000000000000108e80103000000ef0300000000000009000000 | |
| 917 | + | 0000000000000000000000006e6574207469746c650000001c00e80101005000 | |
| 918 | + | f303000000000000000000000000000000000000000000000108e90103000000 | |
| 919 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 920 | + | 650000001c00e90101005000f303000000000000000000000000000000000000 | |
| 921 | + | 000000000108ea0103000000ef03000000000000090000000000000000000000 | |
| 922 | + | 000000006e6574207469746c650000001c00ea0101005000f303000000000000 | |
| 923 | + | 000000000000000000000000000000000108eb0103000000ef03000000000000 | |
| 924 | + | 090000000000000000000000000000006e6574207469746c650000001c00eb01 | |
| 925 | + | 01005000f303000000000000000000000000000000000000000000000108ec01 | |
| 926 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 927 | + | 7469746c650000001c00ec0101005000f3030000000000000000000000000000 | |
| 928 | + | 00000000000000000108ed0103000000ef030000000000000900000000000000 | |
| 929 | + | 00000000000000006e6574207469746c650000001c00ed0101005000f3030000 | |
| 930 | + | 00000000000000000000000000000000000000000108ee0103000000ef030000 | |
| 931 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| 932 | + | 1c00ee0101005000f30300000000000000000000000000000000000000000000 | |
| 933 | + | 0108ef0103000000ef0300000000000009000000000000000000000000000000 | |
| 934 | + | 6e6574207469746c650000001c00ef0101005000f30300000000000000000000 | |
| 935 | + | 0000000000000000000000000108f00103000000ef0300000000000009000000 | |
| 936 | + | 0000000000000000000000006e6574207469746c650000001c00f00101005000 | |
| 937 | + | f303000000000000000000000000000000000000000000000108f10103000000 | |
| 938 | + | ef03000000000000090000000000000000000000000000006e6574207469746c | |
| 939 | + | 650000001c00f10101005000f303000000000000000000000000000000000000 | |
| 940 | + | 000000000108f20103000000ef03000000000000090000000000000000000000 | |
| 941 | + | 000000006e6574207469746c650000001c00f20101005000f303000000000000 | |
| 942 | + | 000000000000000000000000000000000108f30103000000ef03000000000000 | |
| 943 | + | 090000000000000000000000000000006e6574207469746c650000001c00f301 | |
| 944 | + | 01005000f303000000000000000000000000000000000000000000000108f401 | |
| 945 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 | |
| 946 | + | 7469746c650000001c00f40101005000f3030000000000000000000000000000 | |
| 947 | + | 00000000000000000108f50103000000ef030000000000000900000000000000 | |
| 948 | + | 00000000000000006e6574207469746c650000001c00f50101005000f3030000 | |
| 949 | + | 00000000000000000000000000000000000000000108f60103000000ef030000 | |
| 950 | 950 | 00000000090000000000000000000000000000006e6574207469746c65000000 | |
| @@ -1,950 +1,950 @@ | |||||
| 1 | - | 1c00650001005000f30300000000000000000000000000000000000000000000 | 1 | + | 1c00660001005000f30300000000000000000000000000000000000000000000 |
| 2 | - | 0108660003000000ef0300000000000009000000000000000000000000000000 | 2 | + | 0108670003000000ef0300000000000009000000000000000000000000000000 |
| 3 | - | 6e6574207469746c650000001c00660001005000f30300000000000000000000 | 3 | + | 6e6574207469746c650000001c00670001005000f30300000000000000000000 |
| 4 | - | 0000000000000000000000000108670003000000ef0300000000000009000000 | 4 | + | 0000000000000000000000000108680003000000ef0300000000000009000000 |
| 5 | - | 0000000000000000000000006e6574207469746c650000001c00670001005000 | 5 | + | 0000000000000000000000006e6574207469746c650000001c00680001005000 |
| 6 | - | f303000000000000000000000000000000000000000000000108680003000000 | 6 | + | f303000000000000000000000000000000000000000000000108690003000000 |
| 7 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 7 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 8 | - | 650000001c00680001005000f303000000000000000000000000000000000000 | 8 | + | 650000001c00690001005000f303000000000000000000000000000000000000 |
| 9 | - | 000000000108690003000000ef03000000000000090000000000000000000000 | 9 | + | 0000000001086a0003000000ef03000000000000090000000000000000000000 |
| 10 | - | 000000006e6574207469746c650000001c00690001005000f303000000000000 | 10 | + | 000000006e6574207469746c650000001c006a0001005000f303000000000000 |
| 11 | - | 0000000000000000000000000000000001086a0003000000ef03000000000000 | 11 | + | 0000000000000000000000000000000001086b0003000000ef03000000000000 |
| 12 | - | 090000000000000000000000000000006e6574207469746c650000001c006a00 | 12 | + | 090000000000000000000000000000006e6574207469746c650000001c006b00 |
| 13 | - | 01005000f3030000000000000000000000000000000000000000000001086b00 | 13 | + | 01005000f3030000000000000000000000000000000000000000000001086c00 |
| 14 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 14 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 15 | - | 7469746c650000001c006b0001005000f3030000000000000000000000000000 | 15 | + | 7469746c650000001c006c0001005000f3030000000000000000000000000000 |
| 16 | - | 000000000000000001086c0003000000ef030000000000000900000000000000 | 16 | + | 000000000000000001086d0003000000ef030000000000000900000000000000 |
| 17 | - | 00000000000000006e6574207469746c650000001c006c0001005000f3030000 | 17 | + | 00000000000000006e6574207469746c650000001c006d0001005000f3030000 |
| 18 | - | 000000000000000000000000000000000000000001086d0003000000ef030000 | 18 | + | 000000000000000000000000000000000000000001086e0003000000ef030000 |
| 19 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 19 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 20 | - | 1c006d0001005000f30300000000000000000000000000000000000000000000 | 20 | + | 1c006e0001005000f30300000000000000000000000000000000000000000000 |
| 21 | - | 01086e0003000000ef0300000000000009000000000000000000000000000000 | 21 | + | 01086f0003000000ef0300000000000009000000000000000000000000000000 |
| 22 | - | 6e6574207469746c650000001c006e0001005000f30300000000000000000000 | 22 | + | 6e6574207469746c650000001c006f0001005000f30300000000000000000000 |
| 23 | - | 00000000000000000000000001086f0003000000ef0300000000000009000000 | 23 | + | 0000000000000000000000000108700003000000ef0300000000000009000000 |
| 24 | - | 0000000000000000000000006e6574207469746c650000001c006f0001005000 | 24 | + | 0000000000000000000000006e6574207469746c650000001c00700001005000 |
| 25 | - | f303000000000000000000000000000000000000000000000108700003000000 | 25 | + | f303000000000000000000000000000000000000000000000108710003000000 |
| 26 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 26 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 27 | - | 650000001c00700001005000f303000000000000000000000000000000000000 | 27 | + | 650000001c00710001005000f303000000000000000000000000000000000000 |
| 28 | - | 000000000108710003000000ef03000000000000090000000000000000000000 | 28 | + | 000000000108720003000000ef03000000000000090000000000000000000000 |
| 29 | - | 000000006e6574207469746c650000001c00710001005000f303000000000000 | 29 | + | 000000006e6574207469746c650000001c00720001005000f303000000000000 |
| 30 | - | 000000000000000000000000000000000108720003000000ef03000000000000 | 30 | + | 000000000000000000000000000000000108730003000000ef03000000000000 |
| 31 | - | 090000000000000000000000000000006e6574207469746c650000001c007200 | 31 | + | 090000000000000000000000000000006e6574207469746c650000001c007300 |
| 32 | - | 01005000f3030000000000000000000000000000000000000000000001087300 | 32 | + | 01005000f3030000000000000000000000000000000000000000000001087400 |
| 33 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 33 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 34 | - | 7469746c650000001c00730001005000f3030000000000000000000000000000 | 34 | + | 7469746c650000001c00740001005000f3030000000000000000000000000000 |
| 35 | - | 00000000000000000108740003000000ef030000000000000900000000000000 | 35 | + | 00000000000000000108750003000000ef030000000000000900000000000000 |
| 36 | - | 00000000000000006e6574207469746c650000001c00740001005000f3030000 | 36 | + | 00000000000000006e6574207469746c650000001c00750001005000f3030000 |
| 37 | - | 00000000000000000000000000000000000000000108750003000000ef030000 | 37 | + | 00000000000000000000000000000000000000000108760003000000ef030000 |
| 38 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 38 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 39 | - | 1c00750001005000f30300000000000000000000000000000000000000000000 | 39 | + | 1c00760001005000f30300000000000000000000000000000000000000000000 |
| 40 | - | 0108760003000000ef0300000000000009000000000000000000000000000000 | 40 | + | 0108770003000000ef0300000000000009000000000000000000000000000000 |
| 41 | - | 6e6574207469746c650000001c00760001005000f30300000000000000000000 | 41 | + | 6e6574207469746c650000001c00770001005000f30300000000000000000000 |
| 42 | - | 0000000000000000000000000108770003000000ef0300000000000009000000 | 42 | + | 0000000000000000000000000108780003000000ef0300000000000009000000 |
| 43 | - | 0000000000000000000000006e6574207469746c650000001c00770001005000 | 43 | + | 0000000000000000000000006e6574207469746c650000001c00780001005000 |
| 44 | - | f303000000000000000000000000000000000000000000000108780003000000 | 44 | + | f303000000000000000000000000000000000000000000000108790003000000 |
| 45 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 45 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 46 | - | 650000001c00780001005000f303000000000000000000000000000000000000 | 46 | + | 650000001c00790001005000f303000000000000000000000000000000000000 |
| 47 | - | 000000000108790003000000ef03000000000000090000000000000000000000 | 47 | + | 0000000001087a0003000000ef03000000000000090000000000000000000000 |
| 48 | - | 000000006e6574207469746c650000001c00790001005000f303000000000000 | 48 | + | 000000006e6574207469746c650000001c007a0001005000f303000000000000 |
| 49 | - | 0000000000000000000000000000000001087a0003000000ef03000000000000 | 49 | + | 0000000000000000000000000000000001087b0003000000ef03000000000000 |
| 50 | - | 090000000000000000000000000000006e6574207469746c650000001c007a00 | 50 | + | 090000000000000000000000000000006e6574207469746c650000001c007b00 |
| 51 | - | 01005000f3030000000000000000000000000000000000000000000001087b00 | 51 | + | 01005000f3030000000000000000000000000000000000000000000001087c00 |
| 52 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 52 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 53 | - | 7469746c650000001c007b0001005000f3030000000000000000000000000000 | 53 | + | 7469746c650000001c007c0001005000f3030000000000000000000000000000 |
| 54 | - | 000000000000000001087c0003000000ef030000000000000900000000000000 | 54 | + | 000000000000000001087d0003000000ef030000000000000900000000000000 |
| 55 | - | 00000000000000006e6574207469746c650000001c007c0001005000f3030000 | 55 | + | 00000000000000006e6574207469746c650000001c007d0001005000f3030000 |
| 56 | - | 000000000000000000000000000000000000000001087d0003000000ef030000 | 56 | + | 000000000000000000000000000000000000000001087e0003000000ef030000 |
| 57 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 57 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 58 | - | 1c007d0001005000f30300000000000000000000000000000000000000000000 | 58 | + | 1c007e0001005000f30300000000000000000000000000000000000000000000 |
| 59 | - | 01087e0003000000ef0300000000000009000000000000000000000000000000 | 59 | + | 01087f0003000000ef0300000000000009000000000000000000000000000000 |
| 60 | - | 6e6574207469746c650000001c007e0001005000f30300000000000000000000 | 60 | + | 6e6574207469746c650000001c007f0001005000f30300000000000000000000 |
| 61 | - | 00000000000000000000000001087f0003000000ef0300000000000009000000 | 61 | + | 0000000000000000000000000108800003000000ef0300000000000009000000 |
| 62 | - | 0000000000000000000000006e6574207469746c650000001c007f0001005000 | 62 | + | 0000000000000000000000006e6574207469746c650000001c00800001005000 |
| 63 | - | f303000000000000000000000000000000000000000000000108800003000000 | 63 | + | f303000000000000000000000000000000000000000000000108810003000000 |
| 64 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 64 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 65 | - | 650000001c00800001005000f303000000000000000000000000000000000000 | 65 | + | 650000001c00810001005000f303000000000000000000000000000000000000 |
| 66 | - | 000000000108810003000000ef03000000000000090000000000000000000000 | 66 | + | 000000000108820003000000ef03000000000000090000000000000000000000 |
| 67 | - | 000000006e6574207469746c650000001c00810001005000f303000000000000 | 67 | + | 000000006e6574207469746c650000001c00820001005000f303000000000000 |
| 68 | - | 000000000000000000000000000000000108820003000000ef03000000000000 | 68 | + | 000000000000000000000000000000000108830003000000ef03000000000000 |
| 69 | - | 090000000000000000000000000000006e6574207469746c650000001c008200 | 69 | + | 090000000000000000000000000000006e6574207469746c650000001c008300 |
| 70 | - | 01005000f3030000000000000000000000000000000000000000000001088300 | 70 | + | 01005000f3030000000000000000000000000000000000000000000001088400 |
| 71 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 71 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 72 | - | 7469746c650000001c00830001005000f3030000000000000000000000000000 | 72 | + | 7469746c650000001c00840001005000f3030000000000000000000000000000 |
| 73 | - | 00000000000000000108840003000000ef030000000000000900000000000000 | 73 | + | 00000000000000000108850003000000ef030000000000000900000000000000 |
| 74 | - | 00000000000000006e6574207469746c650000001c00840001005000f3030000 | 74 | + | 00000000000000006e6574207469746c650000001c00850001005000f3030000 |
| 75 | - | 00000000000000000000000000000000000000000108850003000000ef030000 | 75 | + | 00000000000000000000000000000000000000000108860003000000ef030000 |
| 76 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 76 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 77 | - | 1c00850001005000f30300000000000000000000000000000000000000000000 | 77 | + | 1c00860001005000f30300000000000000000000000000000000000000000000 |
| 78 | - | 0108860003000000ef0300000000000009000000000000000000000000000000 | 78 | + | 0108870003000000ef0300000000000009000000000000000000000000000000 |
| 79 | - | 6e6574207469746c650000001c00860001005000f30300000000000000000000 | 79 | + | 6e6574207469746c650000001c00870001005000f30300000000000000000000 |
| 80 | - | 0000000000000000000000000108870003000000ef0300000000000009000000 | 80 | + | 0000000000000000000000000108880003000000ef0300000000000009000000 |
| 81 | - | 0000000000000000000000006e6574207469746c650000001c00870001005000 | 81 | + | 0000000000000000000000006e6574207469746c650000001c00880001005000 |
| 82 | - | f303000000000000000000000000000000000000000000000108880003000000 | 82 | + | f303000000000000000000000000000000000000000000000108890003000000 |
| 83 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 83 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 84 | - | 650000001c00880001005000f303000000000000000000000000000000000000 | 84 | + | 650000001c00890001005000f303000000000000000000000000000000000000 |
| 85 | - | 000000000108890003000000ef03000000000000090000000000000000000000 | 85 | + | 0000000001088a0003000000ef03000000000000090000000000000000000000 |
| 86 | - | 000000006e6574207469746c650000001c00890001005000f303000000000000 | 86 | + | 000000006e6574207469746c650000001c008a0001005000f303000000000000 |
| 87 | - | 0000000000000000000000000000000001088a0003000000ef03000000000000 | 87 | + | 0000000000000000000000000000000001088b0003000000ef03000000000000 |
| 88 | - | 090000000000000000000000000000006e6574207469746c650000001c008a00 | 88 | + | 090000000000000000000000000000006e6574207469746c650000001c008b00 |
| 89 | - | 01005000f3030000000000000000000000000000000000000000000001088b00 | 89 | + | 01005000f3030000000000000000000000000000000000000000000001088c00 |
| 90 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 90 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 91 | - | 7469746c650000001c008b0001005000f3030000000000000000000000000000 | 91 | + | 7469746c650000001c008c0001005000f3030000000000000000000000000000 |
| 92 | - | 000000000000000001088c0003000000ef030000000000000900000000000000 | 92 | + | 000000000000000001088d0003000000ef030000000000000900000000000000 |
| 93 | - | 00000000000000006e6574207469746c650000001c008c0001005000f3030000 | 93 | + | 00000000000000006e6574207469746c650000001c008d0001005000f3030000 |
| 94 | - | 000000000000000000000000000000000000000001088d0003000000ef030000 | 94 | + | 000000000000000000000000000000000000000001088e0003000000ef030000 |
| 95 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 95 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 96 | - | 1c008d0001005000f30300000000000000000000000000000000000000000000 | 96 | + | 1c008e0001005000f30300000000000000000000000000000000000000000000 |
| 97 | - | 01088e0003000000ef0300000000000009000000000000000000000000000000 | 97 | + | 01088f0003000000ef0300000000000009000000000000000000000000000000 |
| 98 | - | 6e6574207469746c650000001c008e0001005000f30300000000000000000000 | 98 | + | 6e6574207469746c650000001c008f0001005000f30300000000000000000000 |
| 99 | - | 00000000000000000000000001088f0003000000ef0300000000000009000000 | 99 | + | 0000000000000000000000000108900003000000ef0300000000000009000000 |
| 100 | - | 0000000000000000000000006e6574207469746c650000001c008f0001005000 | 100 | + | 0000000000000000000000006e6574207469746c650000001c00900001005000 |
| 101 | - | f303000000000000000000000000000000000000000000000108900003000000 | 101 | + | f303000000000000000000000000000000000000000000000108910003000000 |
| 102 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 102 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 103 | - | 650000001c00900001005000f303000000000000000000000000000000000000 | 103 | + | 650000001c00910001005000f303000000000000000000000000000000000000 |
| 104 | - | 000000000108910003000000ef03000000000000090000000000000000000000 | 104 | + | 000000000108920003000000ef03000000000000090000000000000000000000 |
| 105 | - | 000000006e6574207469746c650000001c00910001005000f303000000000000 | 105 | + | 000000006e6574207469746c650000001c00920001005000f303000000000000 |
| 106 | - | 000000000000000000000000000000000108920003000000ef03000000000000 | 106 | + | 000000000000000000000000000000000108930003000000ef03000000000000 |
| 107 | - | 090000000000000000000000000000006e6574207469746c650000001c009200 | 107 | + | 090000000000000000000000000000006e6574207469746c650000001c009300 |
| 108 | - | 01005000f3030000000000000000000000000000000000000000000001089300 | 108 | + | 01005000f3030000000000000000000000000000000000000000000001089400 |
| 109 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 109 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 110 | - | 7469746c650000001c00930001005000f3030000000000000000000000000000 | 110 | + | 7469746c650000001c00940001005000f3030000000000000000000000000000 |
| 111 | - | 00000000000000000108940003000000ef030000000000000900000000000000 | 111 | + | 00000000000000000108950003000000ef030000000000000900000000000000 |
| 112 | - | 00000000000000006e6574207469746c650000001c00940001005000f3030000 | 112 | + | 00000000000000006e6574207469746c650000001c00950001005000f3030000 |
| 113 | - | 00000000000000000000000000000000000000000108950003000000ef030000 | 113 | + | 00000000000000000000000000000000000000000108960003000000ef030000 |
| 114 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 114 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 115 | - | 1c00950001005000f30300000000000000000000000000000000000000000000 | 115 | + | 1c00960001005000f30300000000000000000000000000000000000000000000 |
| 116 | - | 0108960003000000ef0300000000000009000000000000000000000000000000 | 116 | + | 0108970003000000ef0300000000000009000000000000000000000000000000 |
| 117 | - | 6e6574207469746c650000001c00960001005000f30300000000000000000000 | 117 | + | 6e6574207469746c650000001c00970001005000f30300000000000000000000 |
| 118 | - | 0000000000000000000000000108970003000000ef0300000000000009000000 | 118 | + | 0000000000000000000000000108980003000000ef0300000000000009000000 |
| 119 | - | 0000000000000000000000006e6574207469746c650000001c00970001005000 | 119 | + | 0000000000000000000000006e6574207469746c650000001c00980001005000 |
| 120 | - | f303000000000000000000000000000000000000000000000108980003000000 | 120 | + | f303000000000000000000000000000000000000000000000108990003000000 |
| 121 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 121 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 122 | - | 650000001c00980001005000f303000000000000000000000000000000000000 | 122 | + | 650000001c00990001005000f303000000000000000000000000000000000000 |
| 123 | - | 000000000108990003000000ef03000000000000090000000000000000000000 | 123 | + | 0000000001089a0003000000ef03000000000000090000000000000000000000 |
| 124 | - | 000000006e6574207469746c650000001c00990001005000f303000000000000 | 124 | + | 000000006e6574207469746c650000001c009a0001005000f303000000000000 |
| 125 | - | 0000000000000000000000000000000001089a0003000000ef03000000000000 | 125 | + | 0000000000000000000000000000000001089b0003000000ef03000000000000 |
| 126 | - | 090000000000000000000000000000006e6574207469746c650000001c009a00 | 126 | + | 090000000000000000000000000000006e6574207469746c650000001c009b00 |
| 127 | - | 01005000f3030000000000000000000000000000000000000000000001089b00 | 127 | + | 01005000f3030000000000000000000000000000000000000000000001089c00 |
| 128 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 128 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 129 | - | 7469746c650000001c009b0001005000f3030000000000000000000000000000 | 129 | + | 7469746c650000001c009c0001005000f3030000000000000000000000000000 |
| 130 | - | 000000000000000001089c0003000000ef030000000000000900000000000000 | 130 | + | 000000000000000001089d0003000000ef030000000000000900000000000000 |
| 131 | - | 00000000000000006e6574207469746c650000001c009c0001005000f3030000 | 131 | + | 00000000000000006e6574207469746c650000001c009d0001005000f3030000 |
| 132 | - | 000000000000000000000000000000000000000001089d0003000000ef030000 | 132 | + | 000000000000000000000000000000000000000001089e0003000000ef030000 |
| 133 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 133 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 134 | - | 1c009d0001005000f30300000000000000000000000000000000000000000000 | 134 | + | 1c009e0001005000f30300000000000000000000000000000000000000000000 |
| 135 | - | 01089e0003000000ef0300000000000009000000000000000000000000000000 | 135 | + | 01089f0003000000ef0300000000000009000000000000000000000000000000 |
| 136 | - | 6e6574207469746c650000001c009e0001005000f30300000000000000000000 | 136 | + | 6e6574207469746c650000001c009f0001005000f30300000000000000000000 |
| 137 | - | 00000000000000000000000001089f0003000000ef0300000000000009000000 | 137 | + | 0000000000000000000000000108a00003000000ef0300000000000009000000 |
| 138 | - | 0000000000000000000000006e6574207469746c650000001c009f0001005000 | 138 | + | 0000000000000000000000006e6574207469746c650000001c00a00001005000 |
| 139 | - | f303000000000000000000000000000000000000000000000108a00003000000 | 139 | + | f303000000000000000000000000000000000000000000000108a10003000000 |
| 140 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 140 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 141 | - | 650000001c00a00001005000f303000000000000000000000000000000000000 | 141 | + | 650000001c00a10001005000f303000000000000000000000000000000000000 |
| 142 | - | 000000000108a10003000000ef03000000000000090000000000000000000000 | 142 | + | 000000000108a20003000000ef03000000000000090000000000000000000000 |
| 143 | - | 000000006e6574207469746c650000001c00a10001005000f303000000000000 | 143 | + | 000000006e6574207469746c650000001c00a20001005000f303000000000000 |
| 144 | - | 000000000000000000000000000000000108a20003000000ef03000000000000 | 144 | + | 000000000000000000000000000000000108a30003000000ef03000000000000 |
| 145 | - | 090000000000000000000000000000006e6574207469746c650000001c00a200 | 145 | + | 090000000000000000000000000000006e6574207469746c650000001c00a300 |
| 146 | - | 01005000f303000000000000000000000000000000000000000000000108a300 | 146 | + | 01005000f303000000000000000000000000000000000000000000000108a400 |
| 147 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 147 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 148 | - | 7469746c650000001c00a30001005000f3030000000000000000000000000000 | 148 | + | 7469746c650000001c00a40001005000f3030000000000000000000000000000 |
| 149 | - | 00000000000000000108a40003000000ef030000000000000900000000000000 | 149 | + | 00000000000000000108a50003000000ef030000000000000900000000000000 |
| 150 | - | 00000000000000006e6574207469746c650000001c00a40001005000f3030000 | 150 | + | 00000000000000006e6574207469746c650000001c00a50001005000f3030000 |
| 151 | - | 00000000000000000000000000000000000000000108a50003000000ef030000 | 151 | + | 00000000000000000000000000000000000000000108a60003000000ef030000 |
| 152 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 152 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 153 | - | 1c00a50001005000f30300000000000000000000000000000000000000000000 | 153 | + | 1c00a60001005000f30300000000000000000000000000000000000000000000 |
| 154 | - | 0108a60003000000ef0300000000000009000000000000000000000000000000 | 154 | + | 0108a70003000000ef0300000000000009000000000000000000000000000000 |
| 155 | - | 6e6574207469746c650000001c00a60001005000f30300000000000000000000 | 155 | + | 6e6574207469746c650000001c00a70001005000f30300000000000000000000 |
| 156 | - | 0000000000000000000000000108a70003000000ef0300000000000009000000 | 156 | + | 0000000000000000000000000108a80003000000ef0300000000000009000000 |
| 157 | - | 0000000000000000000000006e6574207469746c650000001c00a70001005000 | 157 | + | 0000000000000000000000006e6574207469746c650000001c00a80001005000 |
| 158 | - | f303000000000000000000000000000000000000000000000108a80003000000 | 158 | + | f303000000000000000000000000000000000000000000000108a90003000000 |
| 159 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 159 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 160 | - | 650000001c00a80001005000f303000000000000000000000000000000000000 | 160 | + | 650000001c00a90001005000f303000000000000000000000000000000000000 |
| 161 | - | 000000000108a90003000000ef03000000000000090000000000000000000000 | 161 | + | 000000000108aa0003000000ef03000000000000090000000000000000000000 |
| 162 | - | 000000006e6574207469746c650000001c00a90001005000f303000000000000 | 162 | + | 000000006e6574207469746c650000001c00aa0001005000f303000000000000 |
| 163 | - | 000000000000000000000000000000000108aa0003000000ef03000000000000 | 163 | + | 000000000000000000000000000000000108ab0003000000ef03000000000000 |
| 164 | - | 090000000000000000000000000000006e6574207469746c650000001c00aa00 | 164 | + | 090000000000000000000000000000006e6574207469746c650000001c00ab00 |
| 165 | - | 01005000f303000000000000000000000000000000000000000000000108ab00 | 165 | + | 01005000f303000000000000000000000000000000000000000000000108ac00 |
| 166 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 166 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 167 | - | 7469746c650000001c00ab0001005000f3030000000000000000000000000000 | 167 | + | 7469746c650000001c00ac0001005000f3030000000000000000000000000000 |
| 168 | - | 00000000000000000108ac0003000000ef030000000000000900000000000000 | 168 | + | 00000000000000000108ad0003000000ef030000000000000900000000000000 |
| 169 | - | 00000000000000006e6574207469746c650000001c00ac0001005000f3030000 | 169 | + | 00000000000000006e6574207469746c650000001c00ad0001005000f3030000 |
| 170 | - | 00000000000000000000000000000000000000000108ad0003000000ef030000 | 170 | + | 00000000000000000000000000000000000000000108ae0003000000ef030000 |
| 171 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 171 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 172 | - | 1c00ad0001005000f30300000000000000000000000000000000000000000000 | 172 | + | 1c00ae0001005000f30300000000000000000000000000000000000000000000 |
| 173 | - | 0108ae0003000000ef0300000000000009000000000000000000000000000000 | 173 | + | 0108af0003000000ef0300000000000009000000000000000000000000000000 |
| 174 | - | 6e6574207469746c650000001c00ae0001005000f30300000000000000000000 | 174 | + | 6e6574207469746c650000001c00af0001005000f30300000000000000000000 |
| 175 | - | 0000000000000000000000000108af0003000000ef0300000000000009000000 | 175 | + | 0000000000000000000000000108b00003000000ef0300000000000009000000 |
| 176 | - | 0000000000000000000000006e6574207469746c650000001c00af0001005000 | 176 | + | 0000000000000000000000006e6574207469746c650000001c00b00001005000 |
| 177 | - | f303000000000000000000000000000000000000000000000108b00003000000 | 177 | + | f303000000000000000000000000000000000000000000000108b10003000000 |
| 178 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 178 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 179 | - | 650000001c00b00001005000f303000000000000000000000000000000000000 | 179 | + | 650000001c00b10001005000f303000000000000000000000000000000000000 |
| 180 | - | 000000000108b10003000000ef03000000000000090000000000000000000000 | 180 | + | 000000000108b20003000000ef03000000000000090000000000000000000000 |
| 181 | - | 000000006e6574207469746c650000001c00b10001005000f303000000000000 | 181 | + | 000000006e6574207469746c650000001c00b20001005000f303000000000000 |
| 182 | - | 000000000000000000000000000000000108b20003000000ef03000000000000 | 182 | + | 000000000000000000000000000000000108b30003000000ef03000000000000 |
| 183 | - | 090000000000000000000000000000006e6574207469746c650000001c00b200 | 183 | + | 090000000000000000000000000000006e6574207469746c650000001c00b300 |
| 184 | - | 01005000f303000000000000000000000000000000000000000000000108b300 | 184 | + | 01005000f303000000000000000000000000000000000000000000000108b400 |
| 185 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 185 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 186 | - | 7469746c650000001c00b30001005000f3030000000000000000000000000000 | 186 | + | 7469746c650000001c00b40001005000f3030000000000000000000000000000 |
| 187 | - | 00000000000000000108b40003000000ef030000000000000900000000000000 | 187 | + | 00000000000000000108b50003000000ef030000000000000900000000000000 |
| 188 | - | 00000000000000006e6574207469746c650000001c00b40001005000f3030000 | 188 | + | 00000000000000006e6574207469746c650000001c00b50001005000f3030000 |
| 189 | - | 00000000000000000000000000000000000000000108b50003000000ef030000 | 189 | + | 00000000000000000000000000000000000000000108b60003000000ef030000 |
| 190 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 190 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 191 | - | 1c00b50001005000f30300000000000000000000000000000000000000000000 | 191 | + | 1c00b60001005000f30300000000000000000000000000000000000000000000 |
| 192 | - | 0108b60003000000ef0300000000000009000000000000000000000000000000 | 192 | + | 0108b70003000000ef0300000000000009000000000000000000000000000000 |
| 193 | - | 6e6574207469746c650000001c00b60001005000f30300000000000000000000 | 193 | + | 6e6574207469746c650000001c00b70001005000f30300000000000000000000 |
| 194 | - | 0000000000000000000000000108b70003000000ef0300000000000009000000 | 194 | + | 0000000000000000000000000108b80003000000ef0300000000000009000000 |
| 195 | - | 0000000000000000000000006e6574207469746c650000001c00b70001005000 | 195 | + | 0000000000000000000000006e6574207469746c650000001c00b80001005000 |
| 196 | - | f303000000000000000000000000000000000000000000000108b80003000000 | 196 | + | f303000000000000000000000000000000000000000000000108b90003000000 |
| 197 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 197 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 198 | - | 650000001c00b80001005000f303000000000000000000000000000000000000 | 198 | + | 650000001c00b90001005000f303000000000000000000000000000000000000 |
| 199 | - | 000000000108b90003000000ef03000000000000090000000000000000000000 | 199 | + | 000000000108ba0003000000ef03000000000000090000000000000000000000 |
| 200 | - | 000000006e6574207469746c650000001c00b90001005000f303000000000000 | 200 | + | 000000006e6574207469746c650000001c00ba0001005000f303000000000000 |
| 201 | - | 000000000000000000000000000000000108ba0003000000ef03000000000000 | 201 | + | 000000000000000000000000000000000108bb0003000000ef03000000000000 |
| 202 | - | 090000000000000000000000000000006e6574207469746c650000001c00ba00 | 202 | + | 090000000000000000000000000000006e6574207469746c650000001c00bb00 |
| 203 | - | 01005000f303000000000000000000000000000000000000000000000108bb00 | 203 | + | 01005000f303000000000000000000000000000000000000000000000108bc00 |
| 204 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 204 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 205 | - | 7469746c650000001c00bb0001005000f3030000000000000000000000000000 | 205 | + | 7469746c650000001c00bc0001005000f3030000000000000000000000000000 |
| 206 | - | 00000000000000000108bc0003000000ef030000000000000900000000000000 | 206 | + | 00000000000000000108bd0003000000ef030000000000000900000000000000 |
| 207 | - | 00000000000000006e6574207469746c650000001c00bc0001005000f3030000 | 207 | + | 00000000000000006e6574207469746c650000001c00bd0001005000f3030000 |
| 208 | - | 00000000000000000000000000000000000000000108bd0003000000ef030000 | 208 | + | 00000000000000000000000000000000000000000108be0003000000ef030000 |
| 209 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 209 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 210 | - | 1c00bd0001005000f30300000000000000000000000000000000000000000000 | 210 | + | 1c00be0001005000f30300000000000000000000000000000000000000000000 |
| 211 | - | 0108be0003000000ef0300000000000009000000000000000000000000000000 | 211 | + | 0108bf0003000000ef0300000000000009000000000000000000000000000000 |
| 212 | - | 6e6574207469746c650000001c00be0001005000f30300000000000000000000 | 212 | + | 6e6574207469746c650000001c00bf0001005000f30300000000000000000000 |
| 213 | - | 0000000000000000000000000108bf0003000000ef0300000000000009000000 | 213 | + | 0000000000000000000000000108c00003000000ef0300000000000009000000 |
| 214 | - | 0000000000000000000000006e6574207469746c650000001c00bf0001005000 | 214 | + | 0000000000000000000000006e6574207469746c650000001c00c00001005000 |
| 215 | - | f303000000000000000000000000000000000000000000000108c00003000000 | 215 | + | f303000000000000000000000000000000000000000000000108c10003000000 |
| 216 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 216 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 217 | - | 650000001c00c00001005000f303000000000000000000000000000000000000 | 217 | + | 650000001c00c10001005000f303000000000000000000000000000000000000 |
| 218 | - | 000000000108c10003000000ef03000000000000090000000000000000000000 | 218 | + | 000000000108c20003000000ef03000000000000090000000000000000000000 |
| 219 | - | 000000006e6574207469746c650000001c00c10001005000f303000000000000 | 219 | + | 000000006e6574207469746c650000001c00c20001005000f303000000000000 |
| 220 | - | 000000000000000000000000000000000108c20003000000ef03000000000000 | 220 | + | 000000000000000000000000000000000108c30003000000ef03000000000000 |
| 221 | - | 090000000000000000000000000000006e6574207469746c650000001c00c200 | 221 | + | 090000000000000000000000000000006e6574207469746c650000001c00c300 |
| 222 | - | 01005000f303000000000000000000000000000000000000000000000108c300 | 222 | + | 01005000f303000000000000000000000000000000000000000000000108c400 |
| 223 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 223 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 224 | - | 7469746c650000001c00c30001005000f3030000000000000000000000000000 | 224 | + | 7469746c650000001c00c40001005000f3030000000000000000000000000000 |
| 225 | - | 00000000000000000108c40003000000ef030000000000000900000000000000 | 225 | + | 00000000000000000108c50003000000ef030000000000000900000000000000 |
| 226 | - | 00000000000000006e6574207469746c650000001c00c40001005000f3030000 | 226 | + | 00000000000000006e6574207469746c650000001c00c50001005000f3030000 |
| 227 | - | 00000000000000000000000000000000000000000108c50003000000ef030000 | 227 | + | 00000000000000000000000000000000000000000108c60003000000ef030000 |
| 228 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 228 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 229 | - | 1c00c50001005000f30300000000000000000000000000000000000000000000 | 229 | + | 1c00c60001005000f30300000000000000000000000000000000000000000000 |
| 230 | - | 0108c60003000000ef0300000000000009000000000000000000000000000000 | 230 | + | 0108c70003000000ef0300000000000009000000000000000000000000000000 |
| 231 | - | 6e6574207469746c650000001c00c60001005000f30300000000000000000000 | 231 | + | 6e6574207469746c650000001c00c70001005000f30300000000000000000000 |
| 232 | - | 0000000000000000000000000108c70003000000ef0300000000000009000000 | 232 | + | 0000000000000000000000000108c80003000000ef0300000000000009000000 |
| 233 | - | 0000000000000000000000006e6574207469746c650000001c00c70001005000 | 233 | + | 0000000000000000000000006e6574207469746c650000001c00c80001005000 |
| 234 | - | f303000000000000000000000000000000000000000000000108c80003000000 | 234 | + | f303000000000000000000000000000000000000000000000108c90003000000 |
| 235 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 235 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 236 | - | 650000001c00c80001005000f303000000000000000000000000000000000000 | 236 | + | 650000001c00c90001005000f303000000000000000000000000000000000000 |
| 237 | - | 000000000108c90003000000ef03000000000000090000000000000000000000 | 237 | + | 000000000108ca0003000000ef03000000000000090000000000000000000000 |
| 238 | - | 000000006e6574207469746c650000001c00c90001005000f303000000000000 | 238 | + | 000000006e6574207469746c650000001c00ca0001005000f303000000000000 |
| 239 | - | 000000000000000000000000000000000108ca0003000000ef03000000000000 | 239 | + | 000000000000000000000000000000000108cb0003000000ef03000000000000 |
| 240 | - | 090000000000000000000000000000006e6574207469746c650000001c00ca00 | 240 | + | 090000000000000000000000000000006e6574207469746c650000001c00cb00 |
| 241 | - | 01005000f303000000000000000000000000000000000000000000000108cb00 | 241 | + | 01005000f303000000000000000000000000000000000000000000000108cc00 |
| 242 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 242 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 243 | - | 7469746c650000001c00cb0001005000f3030000000000000000000000000000 | 243 | + | 7469746c650000001c00cc0001005000f3030000000000000000000000000000 |
| 244 | - | 00000000000000000108cc0003000000ef030000000000000900000000000000 | 244 | + | 00000000000000000108cd0003000000ef030000000000000900000000000000 |
| 245 | - | 00000000000000006e6574207469746c650000001c00cc0001005000f3030000 | 245 | + | 00000000000000006e6574207469746c650000001c00cd0001005000f3030000 |
| 246 | - | 00000000000000000000000000000000000000000108cd0003000000ef030000 | 246 | + | 00000000000000000000000000000000000000000108ce0003000000ef030000 |
| 247 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 247 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 248 | - | 1c00cd0001005000f30300000000000000000000000000000000000000000000 | 248 | + | 1c00ce0001005000f30300000000000000000000000000000000000000000000 |
| 249 | - | 0108ce0003000000ef0300000000000009000000000000000000000000000000 | 249 | + | 0108cf0003000000ef0300000000000009000000000000000000000000000000 |
| 250 | - | 6e6574207469746c650000001c00ce0001005000f30300000000000000000000 | 250 | + | 6e6574207469746c650000001c00cf0001005000f30300000000000000000000 |
| 251 | - | 0000000000000000000000000108cf0003000000ef0300000000000009000000 | 251 | + | 0000000000000000000000000108d00003000000ef0300000000000009000000 |
| 252 | - | 0000000000000000000000006e6574207469746c650000001c00cf0001005000 | 252 | + | 0000000000000000000000006e6574207469746c650000001c00d00001005000 |
| 253 | - | f303000000000000000000000000000000000000000000000108d00003000000 | 253 | + | f303000000000000000000000000000000000000000000000108d10003000000 |
| 254 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 254 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 255 | - | 650000001c00d00001005000f303000000000000000000000000000000000000 | 255 | + | 650000001c00d10001005000f303000000000000000000000000000000000000 |
| 256 | - | 000000000108d10003000000ef03000000000000090000000000000000000000 | 256 | + | 000000000108d20003000000ef03000000000000090000000000000000000000 |
| 257 | - | 000000006e6574207469746c650000001c00d10001005000f303000000000000 | 257 | + | 000000006e6574207469746c650000001c00d20001005000f303000000000000 |
| 258 | - | 000000000000000000000000000000000108d20003000000ef03000000000000 | 258 | + | 000000000000000000000000000000000108d30003000000ef03000000000000 |
| 259 | - | 090000000000000000000000000000006e6574207469746c650000001c00d200 | 259 | + | 090000000000000000000000000000006e6574207469746c650000001c00d300 |
| 260 | - | 01005000f303000000000000000000000000000000000000000000000108d300 | 260 | + | 01005000f303000000000000000000000000000000000000000000000108d400 |
| 261 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 261 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 262 | - | 7469746c650000001c00d30001005000f3030000000000000000000000000000 | 262 | + | 7469746c650000001c00d40001005000f3030000000000000000000000000000 |
| 263 | - | 00000000000000000108d40003000000ef030000000000000900000000000000 | 263 | + | 00000000000000000108d50003000000ef030000000000000900000000000000 |
| 264 | - | 00000000000000006e6574207469746c650000001c00d40001005000f3030000 | 264 | + | 00000000000000006e6574207469746c650000001c00d50001005000f3030000 |
| 265 | - | 00000000000000000000000000000000000000000108d50003000000ef030000 | 265 | + | 00000000000000000000000000000000000000000108d60003000000ef030000 |
| 266 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 266 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 267 | - | 1c00d50001005000f30300000000000000000000000000000000000000000000 | 267 | + | 1c00d60001005000f30300000000000000000000000000000000000000000000 |
| 268 | - | 0108d60003000000ef0300000000000009000000000000000000000000000000 | 268 | + | 0108d70003000000ef0300000000000009000000000000000000000000000000 |
| 269 | - | 6e6574207469746c650000001c00d60001005000f30300000000000000000000 | 269 | + | 6e6574207469746c650000001c00d70001005000f30300000000000000000000 |
| 270 | - | 0000000000000000000000000108d70003000000ef0300000000000009000000 | 270 | + | 0000000000000000000000000108d80003000000ef0300000000000009000000 |
| 271 | - | 0000000000000000000000006e6574207469746c650000001c00d70001005000 | 271 | + | 0000000000000000000000006e6574207469746c650000001c00d80001005000 |
| 272 | - | f303000000000000000000000000000000000000000000000108d80003000000 | 272 | + | f303000000000000000000000000000000000000000000000108d90003000000 |
| 273 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 273 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 274 | - | 650000001c00d80001005000f303000000000000000000000000000000000000 | 274 | + | 650000001c00d90001005000f303000000000000000000000000000000000000 |
| 275 | - | 000000000108d90003000000ef03000000000000090000000000000000000000 | 275 | + | 000000000108da0003000000ef03000000000000090000000000000000000000 |
| 276 | - | 000000006e6574207469746c650000001c00d90001005000f303000000000000 | 276 | + | 000000006e6574207469746c650000001c00da0001005000f303000000000000 |
| 277 | - | 000000000000000000000000000000000108da0003000000ef03000000000000 | 277 | + | 000000000000000000000000000000000108db0003000000ef03000000000000 |
| 278 | - | 090000000000000000000000000000006e6574207469746c650000001c00da00 | 278 | + | 090000000000000000000000000000006e6574207469746c650000001c00db00 |
| 279 | - | 01005000f303000000000000000000000000000000000000000000000108db00 | 279 | + | 01005000f303000000000000000000000000000000000000000000000108dc00 |
| 280 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 280 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 281 | - | 7469746c650000001c00db0001005000f3030000000000000000000000000000 | 281 | + | 7469746c650000001c00dc0001005000f3030000000000000000000000000000 |
| 282 | - | 00000000000000000108dc0003000000ef030000000000000900000000000000 | 282 | + | 00000000000000000108dd0003000000ef030000000000000900000000000000 |
| 283 | - | 00000000000000006e6574207469746c650000001c00dc0001005000f3030000 | 283 | + | 00000000000000006e6574207469746c650000001c00dd0001005000f3030000 |
| 284 | - | 00000000000000000000000000000000000000000108dd0003000000ef030000 | 284 | + | 00000000000000000000000000000000000000000108de0003000000ef030000 |
| 285 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 285 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 286 | - | 1c00dd0001005000f30300000000000000000000000000000000000000000000 | 286 | + | 1c00de0001005000f30300000000000000000000000000000000000000000000 |
| 287 | - | 0108de0003000000ef0300000000000009000000000000000000000000000000 | 287 | + | 0108df0003000000ef0300000000000009000000000000000000000000000000 |
| 288 | - | 6e6574207469746c650000001c00de0001005000f30300000000000000000000 | 288 | + | 6e6574207469746c650000001c00df0001005000f30300000000000000000000 |
| 289 | - | 0000000000000000000000000108df0003000000ef0300000000000009000000 | 289 | + | 0000000000000000000000000108e00003000000ef0300000000000009000000 |
| 290 | - | 0000000000000000000000006e6574207469746c650000001c00df0001005000 | 290 | + | 0000000000000000000000006e6574207469746c650000001c00e00001005000 |
| 291 | - | f303000000000000000000000000000000000000000000000108e00003000000 | 291 | + | f303000000000000000000000000000000000000000000000108e10003000000 |
| 292 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 292 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 293 | - | 650000001c00e00001005000f303000000000000000000000000000000000000 | 293 | + | 650000001c00e10001005000f303000000000000000000000000000000000000 |
| 294 | - | 000000000108e10003000000ef03000000000000090000000000000000000000 | 294 | + | 000000000108e20003000000ef03000000000000090000000000000000000000 |
| 295 | - | 000000006e6574207469746c650000001c00e10001005000f303000000000000 | 295 | + | 000000006e6574207469746c650000001c00e20001005000f303000000000000 |
| 296 | - | 000000000000000000000000000000000108e20003000000ef03000000000000 | 296 | + | 000000000000000000000000000000000108e30003000000ef03000000000000 |
| 297 | - | 090000000000000000000000000000006e6574207469746c650000001c00e200 | 297 | + | 090000000000000000000000000000006e6574207469746c650000001c00e300 |
| 298 | - | 01005000f303000000000000000000000000000000000000000000000108e300 | 298 | + | 01005000f303000000000000000000000000000000000000000000000108e400 |
| 299 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 299 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 300 | - | 7469746c650000001c00e30001005000f3030000000000000000000000000000 | 300 | + | 7469746c650000001c00e40001005000f3030000000000000000000000000000 |
| 301 | - | 00000000000000000108e40003000000ef030000000000000900000000000000 | 301 | + | 00000000000000000108e50003000000ef030000000000000900000000000000 |
| 302 | - | 00000000000000006e6574207469746c650000001c00e40001005000f3030000 | 302 | + | 00000000000000006e6574207469746c650000001c00e50001005000f3030000 |
| 303 | - | 00000000000000000000000000000000000000000108e50003000000ef030000 | 303 | + | 00000000000000000000000000000000000000000108e60003000000ef030000 |
| 304 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 304 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 305 | - | 1c00e50001005000f30300000000000000000000000000000000000000000000 | 305 | + | 1c00e60001005000f30300000000000000000000000000000000000000000000 |
| 306 | - | 0108e60003000000ef0300000000000009000000000000000000000000000000 | 306 | + | 0108e70003000000ef0300000000000009000000000000000000000000000000 |
| 307 | - | 6e6574207469746c650000001c00e60001005000f30300000000000000000000 | 307 | + | 6e6574207469746c650000001c00e70001005000f30300000000000000000000 |
| 308 | - | 0000000000000000000000000108e70003000000ef0300000000000009000000 | 308 | + | 0000000000000000000000000108e80003000000ef0300000000000009000000 |
| 309 | - | 0000000000000000000000006e6574207469746c650000001c00e70001005000 | 309 | + | 0000000000000000000000006e6574207469746c650000001c00e80001005000 |
| 310 | - | f303000000000000000000000000000000000000000000000108e80003000000 | 310 | + | f303000000000000000000000000000000000000000000000108e90003000000 |
| 311 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 311 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 312 | - | 650000001c00e80001005000f303000000000000000000000000000000000000 | 312 | + | 650000001c00e90001005000f303000000000000000000000000000000000000 |
| 313 | - | 000000000108e90003000000ef03000000000000090000000000000000000000 | 313 | + | 000000000108ea0003000000ef03000000000000090000000000000000000000 |
| 314 | - | 000000006e6574207469746c650000001c00e90001005000f303000000000000 | 314 | + | 000000006e6574207469746c650000001c00ea0001005000f303000000000000 |
| 315 | - | 000000000000000000000000000000000108ea0003000000ef03000000000000 | 315 | + | 000000000000000000000000000000000108eb0003000000ef03000000000000 |
| 316 | - | 090000000000000000000000000000006e6574207469746c650000001c00ea00 | 316 | + | 090000000000000000000000000000006e6574207469746c650000001c00eb00 |
| 317 | - | 01005000f303000000000000000000000000000000000000000000000108eb00 | 317 | + | 01005000f303000000000000000000000000000000000000000000000108ec00 |
| 318 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 318 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 319 | - | 7469746c650000001c00eb0001005000f3030000000000000000000000000000 | 319 | + | 7469746c650000001c00ec0001005000f3030000000000000000000000000000 |
| 320 | - | 00000000000000000108ec0003000000ef030000000000000900000000000000 | 320 | + | 00000000000000000108ed0003000000ef030000000000000900000000000000 |
| 321 | - | 00000000000000006e6574207469746c650000001c00ec0001005000f3030000 | 321 | + | 00000000000000006e6574207469746c650000001c00ed0001005000f3030000 |
| 322 | - | 00000000000000000000000000000000000000000108ed0003000000ef030000 | 322 | + | 00000000000000000000000000000000000000000108ee0003000000ef030000 |
| 323 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 323 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 324 | - | 1c00ed0001005000f30300000000000000000000000000000000000000000000 | 324 | + | 1c00ee0001005000f30300000000000000000000000000000000000000000000 |
| 325 | - | 0108ee0003000000ef0300000000000009000000000000000000000000000000 | 325 | + | 0108ef0003000000ef0300000000000009000000000000000000000000000000 |
| 326 | - | 6e6574207469746c650000001c00ee0001005000f30300000000000000000000 | 326 | + | 6e6574207469746c650000001c00ef0001005000f30300000000000000000000 |
| 327 | - | 0000000000000000000000000108ef0003000000ef0300000000000009000000 | 327 | + | 0000000000000000000000000108f00003000000ef0300000000000009000000 |
| 328 | - | 0000000000000000000000006e6574207469746c650000001c00ef0001005000 | 328 | + | 0000000000000000000000006e6574207469746c650000001c00f00001005000 |
| 329 | - | f303000000000000000000000000000000000000000000000108f00003000000 | 329 | + | f303000000000000000000000000000000000000000000000108f10003000000 |
| 330 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 330 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 331 | - | 650000001c00f00001005000f303000000000000000000000000000000000000 | 331 | + | 650000001c00f10001005000f303000000000000000000000000000000000000 |
| 332 | - | 000000000108f10003000000ef03000000000000090000000000000000000000 | 332 | + | 000000000108f20003000000ef03000000000000090000000000000000000000 |
| 333 | - | 000000006e6574207469746c650000001c00f10001005000f303000000000000 | 333 | + | 000000006e6574207469746c650000001c00f20001005000f303000000000000 |
| 334 | - | 000000000000000000000000000000000108f20003000000ef03000000000000 | 334 | + | 000000000000000000000000000000000108f30003000000ef03000000000000 |
| 335 | - | 090000000000000000000000000000006e6574207469746c650000001c00f200 | 335 | + | 090000000000000000000000000000006e6574207469746c650000001c00f300 |
| 336 | - | 01005000f303000000000000000000000000000000000000000000000108f300 | 336 | + | 01005000f303000000000000000000000000000000000000000000000108f400 |
| 337 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 337 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 338 | - | 7469746c650000001c00f30001005000f3030000000000000000000000000000 | 338 | + | 7469746c650000001c00f40001005000f3030000000000000000000000000000 |
| 339 | - | 00000000000000000108f40003000000ef030000000000000900000000000000 | 339 | + | 00000000000000000108f50003000000ef030000000000000900000000000000 |
| 340 | - | 00000000000000006e6574207469746c650000001c00f40001005000f3030000 | 340 | + | 00000000000000006e6574207469746c650000001c00f50001005000f3030000 |
| 341 | - | 00000000000000000000000000000000000000000108f50003000000ef030000 | 341 | + | 00000000000000000000000000000000000000000108f60003000000ef030000 |
| 342 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 342 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 343 | - | 1c00f50001005000f30300000000000000000000000000000000000000000000 | 343 | + | 1c00f60001005000f30300000000000000000000000000000000000000000000 |
| 344 | - | 0108f60003000000ef0300000000000009000000000000000000000000000000 | 344 | + | 0108f70003000000ef0300000000000009000000000000000000000000000000 |
| 345 | - | 6e6574207469746c650000001c00f60001005000f30300000000000000000000 | 345 | + | 6e6574207469746c650000001c00f70001005000f30300000000000000000000 |
| 346 | - | 0000000000000000000000000108f70003000000ef0300000000000009000000 | 346 | + | 0000000000000000000000000108f80003000000ef0300000000000009000000 |
| 347 | - | 0000000000000000000000006e6574207469746c650000001c00f70001005000 | 347 | + | 0000000000000000000000006e6574207469746c650000001c00f80001005000 |
| 348 | - | f303000000000000000000000000000000000000000000000108f80003000000 | 348 | + | f303000000000000000000000000000000000000000000000108f90003000000 |
| 349 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 349 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 350 | - | 650000001c00f80001005000f303000000000000000000000000000000000000 | 350 | + | 650000001c00f90001005000f303000000000000000000000000000000000000 |
| 351 | - | 000000000108f90003000000ef03000000000000090000000000000000000000 | 351 | + | 000000000108fa0003000000ef03000000000000090000000000000000000000 |
| 352 | - | 000000006e6574207469746c650000001c00f90001005000f303000000000000 | 352 | + | 000000006e6574207469746c650000001c00fa0001005000f303000000000000 |
| 353 | - | 000000000000000000000000000000000108fa0003000000ef03000000000000 | 353 | + | 000000000000000000000000000000000108fb0003000000ef03000000000000 |
| 354 | - | 090000000000000000000000000000006e6574207469746c650000001c00fa00 | 354 | + | 090000000000000000000000000000006e6574207469746c650000001c00fb00 |
| 355 | - | 01005000f303000000000000000000000000000000000000000000000108fb00 | 355 | + | 01005000f303000000000000000000000000000000000000000000000108fc00 |
| 356 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 356 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 357 | - | 7469746c650000001c00fb0001005000f3030000000000000000000000000000 | 357 | + | 7469746c650000001c00fc0001005000f3030000000000000000000000000000 |
| 358 | - | 00000000000000000108fc0003000000ef030000000000000900000000000000 | 358 | + | 00000000000000000108fd0003000000ef030000000000000900000000000000 |
| 359 | - | 00000000000000006e6574207469746c650000001c00fc0001005000f3030000 | 359 | + | 00000000000000006e6574207469746c650000001c00fd0001005000f3030000 |
| 360 | - | 00000000000000000000000000000000000000000108fd0003000000ef030000 | 360 | + | 00000000000000000000000000000000000000000108fe0003000000ef030000 |
| 361 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 361 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 362 | - | 1c00fd0001005000f30300000000000000000000000000000000000000000000 | 362 | + | 1c00fe0001005000f30300000000000000000000000000000000000000000000 |
| 363 | - | 0108fe0003000000ef0300000000000009000000000000000000000000000000 | 363 | + | 0108ff0003000000ef0300000000000009000000000000000000000000000000 |
| 364 | - | 6e6574207469746c650000001c00fe0001005000f30300000000000000000000 | 364 | + | 6e6574207469746c650000001c00ff0001005000f30300000000000000000000 |
| 365 | - | 0000000000000000000000000108ff0003000000ef0300000000000009000000 | 365 | + | 0000000000000000000000000108000103000000ef0300000000000009000000 |
| 366 | - | 0000000000000000000000006e6574207469746c650000001c00ff0001005000 | 366 | + | 0000000000000000000000006e6574207469746c650000001c00000101005000 |
| 367 | - | f303000000000000000000000000000000000000000000000108000103000000 | 367 | + | f303000000000000000000000000000000000000000000000108010103000000 |
| 368 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 368 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 369 | - | 650000001c00000101005000f303000000000000000000000000000000000000 | 369 | + | 650000001c00010101005000f303000000000000000000000000000000000000 |
| 370 | - | 000000000108010103000000ef03000000000000090000000000000000000000 | 370 | + | 000000000108020103000000ef03000000000000090000000000000000000000 |
| 371 | - | 000000006e6574207469746c650000001c00010101005000f303000000000000 | 371 | + | 000000006e6574207469746c650000001c00020101005000f303000000000000 |
| 372 | - | 000000000000000000000000000000000108020103000000ef03000000000000 | 372 | + | 000000000000000000000000000000000108030103000000ef03000000000000 |
| 373 | - | 090000000000000000000000000000006e6574207469746c650000001c000201 | 373 | + | 090000000000000000000000000000006e6574207469746c650000001c000301 |
| 374 | - | 01005000f3030000000000000000000000000000000000000000000001080301 | 374 | + | 01005000f3030000000000000000000000000000000000000000000001080401 |
| 375 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 375 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 376 | - | 7469746c650000001c00030101005000f3030000000000000000000000000000 | 376 | + | 7469746c650000001c00040101005000f3030000000000000000000000000000 |
| 377 | - | 00000000000000000108040103000000ef030000000000000900000000000000 | 377 | + | 00000000000000000108050103000000ef030000000000000900000000000000 |
| 378 | - | 00000000000000006e6574207469746c650000001c00040101005000f3030000 | 378 | + | 00000000000000006e6574207469746c650000001c00050101005000f3030000 |
| 379 | - | 00000000000000000000000000000000000000000108050103000000ef030000 | 379 | + | 00000000000000000000000000000000000000000108060103000000ef030000 |
| 380 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 380 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 381 | - | 1c00050101005000f30300000000000000000000000000000000000000000000 | 381 | + | 1c00060101005000f30300000000000000000000000000000000000000000000 |
| 382 | - | 0108060103000000ef0300000000000009000000000000000000000000000000 | 382 | + | 0108070103000000ef0300000000000009000000000000000000000000000000 |
| 383 | - | 6e6574207469746c650000001c00060101005000f30300000000000000000000 | 383 | + | 6e6574207469746c650000001c00070101005000f30300000000000000000000 |
| 384 | - | 0000000000000000000000000108070103000000ef0300000000000009000000 | 384 | + | 0000000000000000000000000108080103000000ef0300000000000009000000 |
| 385 | - | 0000000000000000000000006e6574207469746c650000001c00070101005000 | 385 | + | 0000000000000000000000006e6574207469746c650000001c00080101005000 |
| 386 | - | f303000000000000000000000000000000000000000000000108080103000000 | 386 | + | f303000000000000000000000000000000000000000000000108090103000000 |
| 387 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 387 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 388 | - | 650000001c00080101005000f303000000000000000000000000000000000000 | 388 | + | 650000001c00090101005000f303000000000000000000000000000000000000 |
| 389 | - | 000000000108090103000000ef03000000000000090000000000000000000000 | 389 | + | 0000000001080a0103000000ef03000000000000090000000000000000000000 |
| 390 | - | 000000006e6574207469746c650000001c00090101005000f303000000000000 | 390 | + | 000000006e6574207469746c650000001c000a0101005000f303000000000000 |
| 391 | - | 0000000000000000000000000000000001080a0103000000ef03000000000000 | 391 | + | 0000000000000000000000000000000001080b0103000000ef03000000000000 |
| 392 | - | 090000000000000000000000000000006e6574207469746c650000001c000a01 | 392 | + | 090000000000000000000000000000006e6574207469746c650000001c000b01 |
| 393 | - | 01005000f3030000000000000000000000000000000000000000000001080b01 | 393 | + | 01005000f3030000000000000000000000000000000000000000000001080c01 |
| 394 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 394 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 395 | - | 7469746c650000001c000b0101005000f3030000000000000000000000000000 | 395 | + | 7469746c650000001c000c0101005000f3030000000000000000000000000000 |
| 396 | - | 000000000000000001080c0103000000ef030000000000000900000000000000 | 396 | + | 000000000000000001080d0103000000ef030000000000000900000000000000 |
| 397 | - | 00000000000000006e6574207469746c650000001c000c0101005000f3030000 | 397 | + | 00000000000000006e6574207469746c650000001c000d0101005000f3030000 |
| 398 | - | 000000000000000000000000000000000000000001080d0103000000ef030000 | 398 | + | 000000000000000000000000000000000000000001080e0103000000ef030000 |
| 399 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 399 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 400 | - | 1c000d0101005000f30300000000000000000000000000000000000000000000 | 400 | + | 1c000e0101005000f30300000000000000000000000000000000000000000000 |
| 401 | - | 01080e0103000000ef0300000000000009000000000000000000000000000000 | 401 | + | 01080f0103000000ef0300000000000009000000000000000000000000000000 |
| 402 | - | 6e6574207469746c650000001c000e0101005000f30300000000000000000000 | 402 | + | 6e6574207469746c650000001c000f0101005000f30300000000000000000000 |
| 403 | - | 00000000000000000000000001080f0103000000ef0300000000000009000000 | 403 | + | 0000000000000000000000000108100103000000ef0300000000000009000000 |
| 404 | - | 0000000000000000000000006e6574207469746c650000001c000f0101005000 | 404 | + | 0000000000000000000000006e6574207469746c650000001c00100101005000 |
| 405 | - | f303000000000000000000000000000000000000000000000108100103000000 | 405 | + | f303000000000000000000000000000000000000000000000108110103000000 |
| 406 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 406 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 407 | - | 650000001c00100101005000f303000000000000000000000000000000000000 | 407 | + | 650000001c00110101005000f303000000000000000000000000000000000000 |
| 408 | - | 000000000108110103000000ef03000000000000090000000000000000000000 | 408 | + | 000000000108120103000000ef03000000000000090000000000000000000000 |
| 409 | - | 000000006e6574207469746c650000001c00110101005000f303000000000000 | 409 | + | 000000006e6574207469746c650000001c00120101005000f303000000000000 |
| 410 | - | 000000000000000000000000000000000108120103000000ef03000000000000 | 410 | + | 000000000000000000000000000000000108130103000000ef03000000000000 |
| 411 | - | 090000000000000000000000000000006e6574207469746c650000001c001201 | 411 | + | 090000000000000000000000000000006e6574207469746c650000001c001301 |
| 412 | - | 01005000f3030000000000000000000000000000000000000000000001081301 | 412 | + | 01005000f3030000000000000000000000000000000000000000000001081401 |
| 413 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 413 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 414 | - | 7469746c650000001c00130101005000f3030000000000000000000000000000 | 414 | + | 7469746c650000001c00140101005000f3030000000000000000000000000000 |
| 415 | - | 00000000000000000108140103000000ef030000000000000900000000000000 | 415 | + | 00000000000000000108150103000000ef030000000000000900000000000000 |
| 416 | - | 00000000000000006e6574207469746c650000001c00140101005000f3030000 | 416 | + | 00000000000000006e6574207469746c650000001c00150101005000f3030000 |
| 417 | - | 00000000000000000000000000000000000000000108150103000000ef030000 | 417 | + | 00000000000000000000000000000000000000000108160103000000ef030000 |
| 418 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 418 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 419 | - | 1c00150101005000f30300000000000000000000000000000000000000000000 | 419 | + | 1c00160101005000f30300000000000000000000000000000000000000000000 |
| 420 | - | 0108160103000000ef0300000000000009000000000000000000000000000000 | 420 | + | 0108170103000000ef0300000000000009000000000000000000000000000000 |
| 421 | - | 6e6574207469746c650000001c00160101005000f30300000000000000000000 | 421 | + | 6e6574207469746c650000001c00170101005000f30300000000000000000000 |
| 422 | - | 0000000000000000000000000108170103000000ef0300000000000009000000 | 422 | + | 0000000000000000000000000108180103000000ef0300000000000009000000 |
| 423 | - | 0000000000000000000000006e6574207469746c650000001c00170101005000 | 423 | + | 0000000000000000000000006e6574207469746c650000001c00180101005000 |
| 424 | - | f303000000000000000000000000000000000000000000000108180103000000 | 424 | + | f303000000000000000000000000000000000000000000000108190103000000 |
| 425 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 425 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 426 | - | 650000001c00180101005000f303000000000000000000000000000000000000 | 426 | + | 650000001c00190101005000f303000000000000000000000000000000000000 |
| 427 | - | 000000000108190103000000ef03000000000000090000000000000000000000 | 427 | + | 0000000001081a0103000000ef03000000000000090000000000000000000000 |
| 428 | - | 000000006e6574207469746c650000001c00190101005000f303000000000000 | 428 | + | 000000006e6574207469746c650000001c001a0101005000f303000000000000 |
| 429 | - | 0000000000000000000000000000000001081a0103000000ef03000000000000 | 429 | + | 0000000000000000000000000000000001081b0103000000ef03000000000000 |
| 430 | - | 090000000000000000000000000000006e6574207469746c650000001c001a01 | 430 | + | 090000000000000000000000000000006e6574207469746c650000001c001b01 |
| 431 | - | 01005000f3030000000000000000000000000000000000000000000001081b01 | 431 | + | 01005000f3030000000000000000000000000000000000000000000001081c01 |
| 432 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 432 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 433 | - | 7469746c650000001c001b0101005000f3030000000000000000000000000000 | 433 | + | 7469746c650000001c001c0101005000f3030000000000000000000000000000 |
| 434 | - | 000000000000000001081c0103000000ef030000000000000900000000000000 | 434 | + | 000000000000000001081d0103000000ef030000000000000900000000000000 |
| 435 | - | 00000000000000006e6574207469746c650000001c001c0101005000f3030000 | 435 | + | 00000000000000006e6574207469746c650000001c001d0101005000f3030000 |
| 436 | - | 000000000000000000000000000000000000000001081d0103000000ef030000 | 436 | + | 000000000000000000000000000000000000000001081e0103000000ef030000 |
| 437 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 437 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 438 | - | 1c001d0101005000f30300000000000000000000000000000000000000000000 | 438 | + | 1c001e0101005000f30300000000000000000000000000000000000000000000 |
| 439 | - | 01081e0103000000ef0300000000000009000000000000000000000000000000 | 439 | + | 01081f0103000000ef0300000000000009000000000000000000000000000000 |
| 440 | - | 6e6574207469746c650000001c001e0101005000f30300000000000000000000 | 440 | + | 6e6574207469746c650000001c001f0101005000f30300000000000000000000 |
| 441 | - | 00000000000000000000000001081f0103000000ef0300000000000009000000 | 441 | + | 0000000000000000000000000108200103000000ef0300000000000009000000 |
| 442 | - | 0000000000000000000000006e6574207469746c650000001c001f0101005000 | 442 | + | 0000000000000000000000006e6574207469746c650000001c00200101005000 |
| 443 | - | f303000000000000000000000000000000000000000000000108200103000000 | 443 | + | f303000000000000000000000000000000000000000000000108210103000000 |
| 444 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 444 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 445 | - | 650000001c00200101005000f303000000000000000000000000000000000000 | 445 | + | 650000001c00210101005000f303000000000000000000000000000000000000 |
| 446 | - | 000000000108210103000000ef03000000000000090000000000000000000000 | 446 | + | 000000000108220103000000ef03000000000000090000000000000000000000 |
| 447 | - | 000000006e6574207469746c650000001c00210101005000f303000000000000 | 447 | + | 000000006e6574207469746c650000001c00220101005000f303000000000000 |
| 448 | - | 000000000000000000000000000000000108220103000000ef03000000000000 | 448 | + | 000000000000000000000000000000000108230103000000ef03000000000000 |
| 449 | - | 090000000000000000000000000000006e6574207469746c650000001c002201 | 449 | + | 090000000000000000000000000000006e6574207469746c650000001c002301 |
| 450 | - | 01005000f3030000000000000000000000000000000000000000000001082301 | 450 | + | 01005000f3030000000000000000000000000000000000000000000001082401 |
| 451 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 451 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 452 | - | 7469746c650000001c00230101005000f3030000000000000000000000000000 | 452 | + | 7469746c650000001c00240101005000f3030000000000000000000000000000 |
| 453 | - | 00000000000000000108240103000000ef030000000000000900000000000000 | 453 | + | 00000000000000000108250103000000ef030000000000000900000000000000 |
| 454 | - | 00000000000000006e6574207469746c650000001c00240101005000f3030000 | 454 | + | 00000000000000006e6574207469746c650000001c00250101005000f3030000 |
| 455 | - | 00000000000000000000000000000000000000000108250103000000ef030000 | 455 | + | 00000000000000000000000000000000000000000108260103000000ef030000 |
| 456 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 456 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 457 | - | 1c00250101005000f30300000000000000000000000000000000000000000000 | 457 | + | 1c00260101005000f30300000000000000000000000000000000000000000000 |
| 458 | - | 0108260103000000ef0300000000000009000000000000000000000000000000 | 458 | + | 0108270103000000ef0300000000000009000000000000000000000000000000 |
| 459 | - | 6e6574207469746c650000001c00260101005000f30300000000000000000000 | 459 | + | 6e6574207469746c650000001c00270101005000f30300000000000000000000 |
| 460 | - | 0000000000000000000000000108270103000000ef0300000000000009000000 | 460 | + | 0000000000000000000000000108280103000000ef0300000000000009000000 |
| 461 | - | 0000000000000000000000006e6574207469746c650000001c00270101005000 | 461 | + | 0000000000000000000000006e6574207469746c650000001c00280101005000 |
| 462 | - | f303000000000000000000000000000000000000000000000108280103000000 | 462 | + | f303000000000000000000000000000000000000000000000108290103000000 |
| 463 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 463 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 464 | - | 650000001c00280101005000f303000000000000000000000000000000000000 | 464 | + | 650000001c00290101005000f303000000000000000000000000000000000000 |
| 465 | - | 000000000108290103000000ef03000000000000090000000000000000000000 | 465 | + | 0000000001082a0103000000ef03000000000000090000000000000000000000 |
| 466 | - | 000000006e6574207469746c650000001c00290101005000f303000000000000 | 466 | + | 000000006e6574207469746c650000001c002a0101005000f303000000000000 |
| 467 | - | 0000000000000000000000000000000001082a0103000000ef03000000000000 | 467 | + | 0000000000000000000000000000000001082b0103000000ef03000000000000 |
| 468 | - | 090000000000000000000000000000006e6574207469746c650000001c002a01 | 468 | + | 090000000000000000000000000000006e6574207469746c650000001c002b01 |
| 469 | - | 01005000f3030000000000000000000000000000000000000000000001082b01 | 469 | + | 01005000f3030000000000000000000000000000000000000000000001082c01 |
| 470 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 470 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 471 | - | 7469746c650000001c002b0101005000f3030000000000000000000000000000 | 471 | + | 7469746c650000001c002c0101005000f3030000000000000000000000000000 |
| 472 | - | 000000000000000001082c0103000000ef030000000000000900000000000000 | 472 | + | 000000000000000001082d0103000000ef030000000000000900000000000000 |
| 473 | - | 00000000000000006e6574207469746c650000001c002c0101005000f3030000 | 473 | + | 00000000000000006e6574207469746c650000001c002d0101005000f3030000 |
| 474 | - | 000000000000000000000000000000000000000001082d0103000000ef030000 | 474 | + | 000000000000000000000000000000000000000001082e0103000000ef030000 |
| 475 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 475 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 476 | - | 1c002d0101005000f30300000000000000000000000000000000000000000000 | 476 | + | 1c002e0101005000f30300000000000000000000000000000000000000000000 |
| 477 | - | 01082e0103000000ef0300000000000009000000000000000000000000000000 | 477 | + | 01082f0103000000ef0300000000000009000000000000000000000000000000 |
| 478 | - | 6e6574207469746c650000001c002e0101005000f30300000000000000000000 | 478 | + | 6e6574207469746c650000001c002f0101005000f30300000000000000000000 |
| 479 | - | 00000000000000000000000001082f0103000000ef0300000000000009000000 | 479 | + | 0000000000000000000000000108300103000000ef0300000000000009000000 |
| 480 | - | 0000000000000000000000006e6574207469746c650000001c002f0101005000 | 480 | + | 0000000000000000000000006e6574207469746c650000001c00300101005000 |
| 481 | - | f303000000000000000000000000000000000000000000000108300103000000 | 481 | + | f303000000000000000000000000000000000000000000000108310103000000 |
| 482 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 482 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 483 | - | 650000001c00300101005000f303000000000000000000000000000000000000 | 483 | + | 650000001c00310101005000f303000000000000000000000000000000000000 |
| 484 | - | 000000000108310103000000ef03000000000000090000000000000000000000 | 484 | + | 000000000108320103000000ef03000000000000090000000000000000000000 |
| 485 | - | 000000006e6574207469746c650000001c00310101005000f303000000000000 | 485 | + | 000000006e6574207469746c650000001c00320101005000f303000000000000 |
| 486 | - | 000000000000000000000000000000000108320103000000ef03000000000000 | 486 | + | 000000000000000000000000000000000108330103000000ef03000000000000 |
| 487 | - | 090000000000000000000000000000006e6574207469746c650000001c003201 | 487 | + | 090000000000000000000000000000006e6574207469746c650000001c003301 |
| 488 | - | 01005000f3030000000000000000000000000000000000000000000001083301 | 488 | + | 01005000f3030000000000000000000000000000000000000000000001083401 |
| 489 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 489 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 490 | - | 7469746c650000001c00330101005000f3030000000000000000000000000000 | 490 | + | 7469746c650000001c00340101005000f3030000000000000000000000000000 |
| 491 | - | 00000000000000000108340103000000ef030000000000000900000000000000 | 491 | + | 00000000000000000108350103000000ef030000000000000900000000000000 |
| 492 | - | 00000000000000006e6574207469746c650000001c00340101005000f3030000 | 492 | + | 00000000000000006e6574207469746c650000001c00350101005000f3030000 |
| 493 | - | 00000000000000000000000000000000000000000108350103000000ef030000 | 493 | + | 00000000000000000000000000000000000000000108360103000000ef030000 |
| 494 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 494 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 495 | - | 1c00350101005000f30300000000000000000000000000000000000000000000 | 495 | + | 1c00360101005000f30300000000000000000000000000000000000000000000 |
| 496 | - | 0108360103000000ef0300000000000009000000000000000000000000000000 | 496 | + | 0108370103000000ef0300000000000009000000000000000000000000000000 |
| 497 | - | 6e6574207469746c650000001c00360101005000f30300000000000000000000 | 497 | + | 6e6574207469746c650000001c00370101005000f30300000000000000000000 |
| 498 | - | 0000000000000000000000000108370103000000ef0300000000000009000000 | 498 | + | 0000000000000000000000000108380103000000ef0300000000000009000000 |
| 499 | - | 0000000000000000000000006e6574207469746c650000001c00370101005000 | 499 | + | 0000000000000000000000006e6574207469746c650000001c00380101005000 |
| 500 | - | f303000000000000000000000000000000000000000000000108380103000000 | 500 | + | f303000000000000000000000000000000000000000000000108390103000000 |
| 501 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 501 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 502 | - | 650000001c00380101005000f303000000000000000000000000000000000000 | 502 | + | 650000001c00390101005000f303000000000000000000000000000000000000 |
| 503 | - | 000000000108390103000000ef03000000000000090000000000000000000000 | 503 | + | 0000000001083a0103000000ef03000000000000090000000000000000000000 |
| 504 | - | 000000006e6574207469746c650000001c00390101005000f303000000000000 | 504 | + | 000000006e6574207469746c650000001c003a0101005000f303000000000000 |
| 505 | - | 0000000000000000000000000000000001083a0103000000ef03000000000000 | 505 | + | 0000000000000000000000000000000001083b0103000000ef03000000000000 |
| 506 | - | 090000000000000000000000000000006e6574207469746c650000001c003a01 | 506 | + | 090000000000000000000000000000006e6574207469746c650000001c003b01 |
| 507 | - | 01005000f3030000000000000000000000000000000000000000000001083b01 | 507 | + | 01005000f3030000000000000000000000000000000000000000000001083c01 |
| 508 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 508 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 509 | - | 7469746c650000001c003b0101005000f3030000000000000000000000000000 | 509 | + | 7469746c650000001c003c0101005000f3030000000000000000000000000000 |
| 510 | - | 000000000000000001083c0103000000ef030000000000000900000000000000 | 510 | + | 000000000000000001083d0103000000ef030000000000000900000000000000 |
| 511 | - | 00000000000000006e6574207469746c650000001c003c0101005000f3030000 | 511 | + | 00000000000000006e6574207469746c650000001c003d0101005000f3030000 |
| 512 | - | 000000000000000000000000000000000000000001083d0103000000ef030000 | 512 | + | 000000000000000000000000000000000000000001083e0103000000ef030000 |
| 513 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 513 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 514 | - | 1c003d0101005000f30300000000000000000000000000000000000000000000 | 514 | + | 1c003e0101005000f30300000000000000000000000000000000000000000000 |
| 515 | - | 01083e0103000000ef0300000000000009000000000000000000000000000000 | 515 | + | 01083f0103000000ef0300000000000009000000000000000000000000000000 |
| 516 | - | 6e6574207469746c650000001c003e0101005000f30300000000000000000000 | 516 | + | 6e6574207469746c650000001c003f0101005000f30300000000000000000000 |
| 517 | - | 00000000000000000000000001083f0103000000ef0300000000000009000000 | 517 | + | 0000000000000000000000000108400103000000ef0300000000000009000000 |
| 518 | - | 0000000000000000000000006e6574207469746c650000001c003f0101005000 | 518 | + | 0000000000000000000000006e6574207469746c650000001c00400101005000 |
| 519 | - | f303000000000000000000000000000000000000000000000108400103000000 | 519 | + | f303000000000000000000000000000000000000000000000108410103000000 |
| 520 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 520 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 521 | - | 650000001c00400101005000f303000000000000000000000000000000000000 | 521 | + | 650000001c00410101005000f303000000000000000000000000000000000000 |
| 522 | - | 000000000108410103000000ef03000000000000090000000000000000000000 | 522 | + | 000000000108420103000000ef03000000000000090000000000000000000000 |
| 523 | - | 000000006e6574207469746c650000001c00410101005000f303000000000000 | 523 | + | 000000006e6574207469746c650000001c00420101005000f303000000000000 |
| 524 | - | 000000000000000000000000000000000108420103000000ef03000000000000 | 524 | + | 000000000000000000000000000000000108430103000000ef03000000000000 |
| 525 | - | 090000000000000000000000000000006e6574207469746c650000001c004201 | 525 | + | 090000000000000000000000000000006e6574207469746c650000001c004301 |
| 526 | - | 01005000f3030000000000000000000000000000000000000000000001084301 | 526 | + | 01005000f3030000000000000000000000000000000000000000000001084401 |
| 527 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 527 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 528 | - | 7469746c650000001c00430101005000f3030000000000000000000000000000 | 528 | + | 7469746c650000001c00440101005000f3030000000000000000000000000000 |
| 529 | - | 00000000000000000108440103000000ef030000000000000900000000000000 | 529 | + | 00000000000000000108450103000000ef030000000000000900000000000000 |
| 530 | - | 00000000000000006e6574207469746c650000001c00440101005000f3030000 | 530 | + | 00000000000000006e6574207469746c650000001c00450101005000f3030000 |
| 531 | - | 00000000000000000000000000000000000000000108450103000000ef030000 | 531 | + | 00000000000000000000000000000000000000000108460103000000ef030000 |
| 532 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 532 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 533 | - | 1c00450101005000f30300000000000000000000000000000000000000000000 | 533 | + | 1c00460101005000f30300000000000000000000000000000000000000000000 |
| 534 | - | 0108460103000000ef0300000000000009000000000000000000000000000000 | 534 | + | 0108470103000000ef0300000000000009000000000000000000000000000000 |
| 535 | - | 6e6574207469746c650000001c00460101005000f30300000000000000000000 | 535 | + | 6e6574207469746c650000001c00470101005000f30300000000000000000000 |
| 536 | - | 0000000000000000000000000108470103000000ef0300000000000009000000 | 536 | + | 0000000000000000000000000108480103000000ef0300000000000009000000 |
| 537 | - | 0000000000000000000000006e6574207469746c650000001c00470101005000 | 537 | + | 0000000000000000000000006e6574207469746c650000001c00480101005000 |
| 538 | - | f303000000000000000000000000000000000000000000000108480103000000 | 538 | + | f303000000000000000000000000000000000000000000000108490103000000 |
| 539 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 539 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 540 | - | 650000001c00480101005000f303000000000000000000000000000000000000 | 540 | + | 650000001c00490101005000f303000000000000000000000000000000000000 |
| 541 | - | 000000000108490103000000ef03000000000000090000000000000000000000 | 541 | + | 0000000001084a0103000000ef03000000000000090000000000000000000000 |
| 542 | - | 000000006e6574207469746c650000001c00490101005000f303000000000000 | 542 | + | 000000006e6574207469746c650000001c004a0101005000f303000000000000 |
| 543 | - | 0000000000000000000000000000000001084a0103000000ef03000000000000 | 543 | + | 0000000000000000000000000000000001084b0103000000ef03000000000000 |
| 544 | - | 090000000000000000000000000000006e6574207469746c650000001c004a01 | 544 | + | 090000000000000000000000000000006e6574207469746c650000001c004b01 |
| 545 | - | 01005000f3030000000000000000000000000000000000000000000001084b01 | 545 | + | 01005000f3030000000000000000000000000000000000000000000001084c01 |
| 546 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 546 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 547 | - | 7469746c650000001c004b0101005000f3030000000000000000000000000000 | 547 | + | 7469746c650000001c004c0101005000f3030000000000000000000000000000 |
| 548 | - | 000000000000000001084c0103000000ef030000000000000900000000000000 | 548 | + | 000000000000000001084d0103000000ef030000000000000900000000000000 |
| 549 | - | 00000000000000006e6574207469746c650000001c004c0101005000f3030000 | 549 | + | 00000000000000006e6574207469746c650000001c004d0101005000f3030000 |
| 550 | - | 000000000000000000000000000000000000000001084d0103000000ef030000 | 550 | + | 000000000000000000000000000000000000000001084e0103000000ef030000 |
| 551 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 551 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 552 | - | 1c004d0101005000f30300000000000000000000000000000000000000000000 | 552 | + | 1c004e0101005000f30300000000000000000000000000000000000000000000 |
| 553 | - | 01084e0103000000ef0300000000000009000000000000000000000000000000 | 553 | + | 01084f0103000000ef0300000000000009000000000000000000000000000000 |
| 554 | - | 6e6574207469746c650000001c004e0101005000f30300000000000000000000 | 554 | + | 6e6574207469746c650000001c004f0101005000f30300000000000000000000 |
| 555 | - | 00000000000000000000000001084f0103000000ef0300000000000009000000 | 555 | + | 0000000000000000000000000108500103000000ef0300000000000009000000 |
| 556 | - | 0000000000000000000000006e6574207469746c650000001c004f0101005000 | 556 | + | 0000000000000000000000006e6574207469746c650000001c00500101005000 |
| 557 | - | f303000000000000000000000000000000000000000000000108500103000000 | 557 | + | f303000000000000000000000000000000000000000000000108510103000000 |
| 558 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 558 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 559 | - | 650000001c00500101005000f303000000000000000000000000000000000000 | 559 | + | 650000001c00510101005000f303000000000000000000000000000000000000 |
| 560 | - | 000000000108510103000000ef03000000000000090000000000000000000000 | 560 | + | 000000000108520103000000ef03000000000000090000000000000000000000 |
| 561 | - | 000000006e6574207469746c650000001c00510101005000f303000000000000 | 561 | + | 000000006e6574207469746c650000001c00520101005000f303000000000000 |
| 562 | - | 000000000000000000000000000000000108520103000000ef03000000000000 | 562 | + | 000000000000000000000000000000000108530103000000ef03000000000000 |
| 563 | - | 090000000000000000000000000000006e6574207469746c650000001c005201 | 563 | + | 090000000000000000000000000000006e6574207469746c650000001c005301 |
| 564 | - | 01005000f3030000000000000000000000000000000000000000000001085301 | 564 | + | 01005000f3030000000000000000000000000000000000000000000001085401 |
| 565 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 565 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 566 | - | 7469746c650000001c00530101005000f3030000000000000000000000000000 | 566 | + | 7469746c650000001c00540101005000f3030000000000000000000000000000 |
| 567 | - | 00000000000000000108540103000000ef030000000000000900000000000000 | 567 | + | 00000000000000000108550103000000ef030000000000000900000000000000 |
| 568 | - | 00000000000000006e6574207469746c650000001c00540101005000f3030000 | 568 | + | 00000000000000006e6574207469746c650000001c00550101005000f3030000 |
| 569 | - | 00000000000000000000000000000000000000000108550103000000ef030000 | 569 | + | 00000000000000000000000000000000000000000108560103000000ef030000 |
| 570 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 570 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 571 | - | 1c00550101005000f30300000000000000000000000000000000000000000000 | 571 | + | 1c00560101005000f30300000000000000000000000000000000000000000000 |
| 572 | - | 0108560103000000ef0300000000000009000000000000000000000000000000 | 572 | + | 0108570103000000ef0300000000000009000000000000000000000000000000 |
| 573 | - | 6e6574207469746c650000001c00560101005000f30300000000000000000000 | 573 | + | 6e6574207469746c650000001c00570101005000f30300000000000000000000 |
| 574 | - | 0000000000000000000000000108570103000000ef0300000000000009000000 | 574 | + | 0000000000000000000000000108580103000000ef0300000000000009000000 |
| 575 | - | 0000000000000000000000006e6574207469746c650000001c00570101005000 | 575 | + | 0000000000000000000000006e6574207469746c650000001c00580101005000 |
| 576 | - | f303000000000000000000000000000000000000000000000108580103000000 | 576 | + | f303000000000000000000000000000000000000000000000108590103000000 |
| 577 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 577 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 578 | - | 650000001c00580101005000f303000000000000000000000000000000000000 | 578 | + | 650000001c00590101005000f303000000000000000000000000000000000000 |
| 579 | - | 000000000108590103000000ef03000000000000090000000000000000000000 | 579 | + | 0000000001085a0103000000ef03000000000000090000000000000000000000 |
| 580 | - | 000000006e6574207469746c650000001c00590101005000f303000000000000 | 580 | + | 000000006e6574207469746c650000001c005a0101005000f303000000000000 |
| 581 | - | 0000000000000000000000000000000001085a0103000000ef03000000000000 | 581 | + | 0000000000000000000000000000000001085b0103000000ef03000000000000 |
| 582 | - | 090000000000000000000000000000006e6574207469746c650000001c005a01 | 582 | + | 090000000000000000000000000000006e6574207469746c650000001c005b01 |
| 583 | - | 01005000f3030000000000000000000000000000000000000000000001085b01 | 583 | + | 01005000f3030000000000000000000000000000000000000000000001085c01 |
| 584 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 584 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 585 | - | 7469746c650000001c005b0101005000f3030000000000000000000000000000 | 585 | + | 7469746c650000001c005c0101005000f3030000000000000000000000000000 |
| 586 | - | 000000000000000001085c0103000000ef030000000000000900000000000000 | 586 | + | 000000000000000001085d0103000000ef030000000000000900000000000000 |
| 587 | - | 00000000000000006e6574207469746c650000001c005c0101005000f3030000 | 587 | + | 00000000000000006e6574207469746c650000001c005d0101005000f3030000 |
| 588 | - | 000000000000000000000000000000000000000001085d0103000000ef030000 | 588 | + | 000000000000000000000000000000000000000001085e0103000000ef030000 |
| 589 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 589 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 590 | - | 1c005d0101005000f30300000000000000000000000000000000000000000000 | 590 | + | 1c005e0101005000f30300000000000000000000000000000000000000000000 |
| 591 | - | 01085e0103000000ef0300000000000009000000000000000000000000000000 | 591 | + | 01085f0103000000ef0300000000000009000000000000000000000000000000 |
| 592 | - | 6e6574207469746c650000001c005e0101005000f30300000000000000000000 | 592 | + | 6e6574207469746c650000001c005f0101005000f30300000000000000000000 |
| 593 | - | 00000000000000000000000001085f0103000000ef0300000000000009000000 | 593 | + | 0000000000000000000000000108600103000000ef0300000000000009000000 |
| 594 | - | 0000000000000000000000006e6574207469746c650000001c005f0101005000 | 594 | + | 0000000000000000000000006e6574207469746c650000001c00600101005000 |
| 595 | - | f303000000000000000000000000000000000000000000000108600103000000 | 595 | + | f303000000000000000000000000000000000000000000000108610103000000 |
| 596 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 596 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 597 | - | 650000001c00600101005000f303000000000000000000000000000000000000 | 597 | + | 650000001c00610101005000f303000000000000000000000000000000000000 |
| 598 | - | 000000000108610103000000ef03000000000000090000000000000000000000 | 598 | + | 000000000108620103000000ef03000000000000090000000000000000000000 |
| 599 | - | 000000006e6574207469746c650000001c00610101005000f303000000000000 | 599 | + | 000000006e6574207469746c650000001c00620101005000f303000000000000 |
| 600 | - | 000000000000000000000000000000000108620103000000ef03000000000000 | 600 | + | 000000000000000000000000000000000108630103000000ef03000000000000 |
| 601 | - | 090000000000000000000000000000006e6574207469746c650000001c006201 | 601 | + | 090000000000000000000000000000006e6574207469746c650000001c006301 |
| 602 | - | 01005000f3030000000000000000000000000000000000000000000001086301 | 602 | + | 01005000f3030000000000000000000000000000000000000000000001086401 |
| 603 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 603 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 604 | - | 7469746c650000001c00630101005000f3030000000000000000000000000000 | 604 | + | 7469746c650000001c00640101005000f3030000000000000000000000000000 |
| 605 | - | 00000000000000000108640103000000ef030000000000000900000000000000 | 605 | + | 00000000000000000108650103000000ef030000000000000900000000000000 |
| 606 | - | 00000000000000006e6574207469746c650000001c00640101005000f3030000 | 606 | + | 00000000000000006e6574207469746c650000001c00650101005000f3030000 |
| 607 | - | 00000000000000000000000000000000000000000108650103000000ef030000 | 607 | + | 00000000000000000000000000000000000000000108660103000000ef030000 |
| 608 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 608 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 609 | - | 1c00650101005000f30300000000000000000000000000000000000000000000 | 609 | + | 1c00660101005000f30300000000000000000000000000000000000000000000 |
| 610 | - | 0108660103000000ef0300000000000009000000000000000000000000000000 | 610 | + | 0108670103000000ef0300000000000009000000000000000000000000000000 |
| 611 | - | 6e6574207469746c650000001c00660101005000f30300000000000000000000 | 611 | + | 6e6574207469746c650000001c00670101005000f30300000000000000000000 |
| 612 | - | 0000000000000000000000000108670103000000ef0300000000000009000000 | 612 | + | 0000000000000000000000000108680103000000ef0300000000000009000000 |
| 613 | - | 0000000000000000000000006e6574207469746c650000001c00670101005000 | 613 | + | 0000000000000000000000006e6574207469746c650000001c00680101005000 |
| 614 | - | f303000000000000000000000000000000000000000000000108680103000000 | 614 | + | f303000000000000000000000000000000000000000000000108690103000000 |
| 615 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 615 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 616 | - | 650000001c00680101005000f303000000000000000000000000000000000000 | 616 | + | 650000001c00690101005000f303000000000000000000000000000000000000 |
| 617 | - | 000000000108690103000000ef03000000000000090000000000000000000000 | 617 | + | 0000000001086a0103000000ef03000000000000090000000000000000000000 |
| 618 | - | 000000006e6574207469746c650000001c00690101005000f303000000000000 | 618 | + | 000000006e6574207469746c650000001c006a0101005000f303000000000000 |
| 619 | - | 0000000000000000000000000000000001086a0103000000ef03000000000000 | 619 | + | 0000000000000000000000000000000001086b0103000000ef03000000000000 |
| 620 | - | 090000000000000000000000000000006e6574207469746c650000001c006a01 | 620 | + | 090000000000000000000000000000006e6574207469746c650000001c006b01 |
| 621 | - | 01005000f3030000000000000000000000000000000000000000000001086b01 | 621 | + | 01005000f3030000000000000000000000000000000000000000000001086c01 |
| 622 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 622 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 623 | - | 7469746c650000001c006b0101005000f3030000000000000000000000000000 | 623 | + | 7469746c650000001c006c0101005000f3030000000000000000000000000000 |
| 624 | - | 000000000000000001086c0103000000ef030000000000000900000000000000 | 624 | + | 000000000000000001086d0103000000ef030000000000000900000000000000 |
| 625 | - | 00000000000000006e6574207469746c650000001c006c0101005000f3030000 | 625 | + | 00000000000000006e6574207469746c650000001c006d0101005000f3030000 |
| 626 | - | 000000000000000000000000000000000000000001086d0103000000ef030000 | 626 | + | 000000000000000000000000000000000000000001086e0103000000ef030000 |
| 627 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 627 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 628 | - | 1c006d0101005000f30300000000000000000000000000000000000000000000 | 628 | + | 1c006e0101005000f30300000000000000000000000000000000000000000000 |
| 629 | - | 01086e0103000000ef0300000000000009000000000000000000000000000000 | 629 | + | 01086f0103000000ef0300000000000009000000000000000000000000000000 |
| 630 | - | 6e6574207469746c650000001c006e0101005000f30300000000000000000000 | 630 | + | 6e6574207469746c650000001c006f0101005000f30300000000000000000000 |
| 631 | - | 00000000000000000000000001086f0103000000ef0300000000000009000000 | 631 | + | 0000000000000000000000000108700103000000ef0300000000000009000000 |
| 632 | - | 0000000000000000000000006e6574207469746c650000001c006f0101005000 | 632 | + | 0000000000000000000000006e6574207469746c650000001c00700101005000 |
| 633 | - | f303000000000000000000000000000000000000000000000108700103000000 | 633 | + | f303000000000000000000000000000000000000000000000108710103000000 |
| 634 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 634 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 635 | - | 650000001c00700101005000f303000000000000000000000000000000000000 | 635 | + | 650000001c00710101005000f303000000000000000000000000000000000000 |
| 636 | - | 000000000108710103000000ef03000000000000090000000000000000000000 | 636 | + | 000000000108720103000000ef03000000000000090000000000000000000000 |
| 637 | - | 000000006e6574207469746c650000001c00710101005000f303000000000000 | 637 | + | 000000006e6574207469746c650000001c00720101005000f303000000000000 |
| 638 | - | 000000000000000000000000000000000108720103000000ef03000000000000 | 638 | + | 000000000000000000000000000000000108730103000000ef03000000000000 |
| 639 | - | 090000000000000000000000000000006e6574207469746c650000001c007201 | 639 | + | 090000000000000000000000000000006e6574207469746c650000001c007301 |
| 640 | - | 01005000f3030000000000000000000000000000000000000000000001087301 | 640 | + | 01005000f3030000000000000000000000000000000000000000000001087401 |
| 641 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 641 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 642 | - | 7469746c650000001c00730101005000f3030000000000000000000000000000 | 642 | + | 7469746c650000001c00740101005000f3030000000000000000000000000000 |
| 643 | - | 00000000000000000108740103000000ef030000000000000900000000000000 | 643 | + | 00000000000000000108750103000000ef030000000000000900000000000000 |
| 644 | - | 00000000000000006e6574207469746c650000001c00740101005000f3030000 | 644 | + | 00000000000000006e6574207469746c650000001c00750101005000f3030000 |
| 645 | - | 00000000000000000000000000000000000000000108750103000000ef030000 | 645 | + | 00000000000000000000000000000000000000000108760103000000ef030000 |
| 646 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 646 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 647 | - | 1c00750101005000f30300000000000000000000000000000000000000000000 | 647 | + | 1c00760101005000f30300000000000000000000000000000000000000000000 |
| 648 | - | 0108760103000000ef0300000000000009000000000000000000000000000000 | 648 | + | 0108770103000000ef0300000000000009000000000000000000000000000000 |
| 649 | - | 6e6574207469746c650000001c00760101005000f30300000000000000000000 | 649 | + | 6e6574207469746c650000001c00770101005000f30300000000000000000000 |
| 650 | - | 0000000000000000000000000108770103000000ef0300000000000009000000 | 650 | + | 0000000000000000000000000108780103000000ef0300000000000009000000 |
| 651 | - | 0000000000000000000000006e6574207469746c650000001c00770101005000 | 651 | + | 0000000000000000000000006e6574207469746c650000001c00780101005000 |
| 652 | - | f303000000000000000000000000000000000000000000000108780103000000 | 652 | + | f303000000000000000000000000000000000000000000000108790103000000 |
| 653 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 653 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 654 | - | 650000001c00780101005000f303000000000000000000000000000000000000 | 654 | + | 650000001c00790101005000f303000000000000000000000000000000000000 |
| 655 | - | 000000000108790103000000ef03000000000000090000000000000000000000 | 655 | + | 0000000001087a0103000000ef03000000000000090000000000000000000000 |
| 656 | - | 000000006e6574207469746c650000001c00790101005000f303000000000000 | 656 | + | 000000006e6574207469746c650000001c007a0101005000f303000000000000 |
| 657 | - | 0000000000000000000000000000000001087a0103000000ef03000000000000 | 657 | + | 0000000000000000000000000000000001087b0103000000ef03000000000000 |
| 658 | - | 090000000000000000000000000000006e6574207469746c650000001c007a01 | 658 | + | 090000000000000000000000000000006e6574207469746c650000001c007b01 |
| 659 | - | 01005000f3030000000000000000000000000000000000000000000001087b01 | 659 | + | 01005000f3030000000000000000000000000000000000000000000001087c01 |
| 660 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 660 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 661 | - | 7469746c650000001c007b0101005000f3030000000000000000000000000000 | 661 | + | 7469746c650000001c007c0101005000f3030000000000000000000000000000 |
| 662 | - | 000000000000000001087c0103000000ef030000000000000900000000000000 | 662 | + | 000000000000000001087d0103000000ef030000000000000900000000000000 |
| 663 | - | 00000000000000006e6574207469746c650000001c007c0101005000f3030000 | 663 | + | 00000000000000006e6574207469746c650000001c007d0101005000f3030000 |
| 664 | - | 000000000000000000000000000000000000000001087d0103000000ef030000 | 664 | + | 000000000000000000000000000000000000000001087e0103000000ef030000 |
| 665 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 665 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 666 | - | 1c007d0101005000f30300000000000000000000000000000000000000000000 | 666 | + | 1c007e0101005000f30300000000000000000000000000000000000000000000 |
| 667 | - | 01087e0103000000ef0300000000000009000000000000000000000000000000 | 667 | + | 01087f0103000000ef0300000000000009000000000000000000000000000000 |
| 668 | - | 6e6574207469746c650000001c007e0101005000f30300000000000000000000 | 668 | + | 6e6574207469746c650000001c007f0101005000f30300000000000000000000 |
| 669 | - | 00000000000000000000000001087f0103000000ef0300000000000009000000 | 669 | + | 0000000000000000000000000108800103000000ef0300000000000009000000 |
| 670 | - | 0000000000000000000000006e6574207469746c650000001c007f0101005000 | 670 | + | 0000000000000000000000006e6574207469746c650000001c00800101005000 |
| 671 | - | f303000000000000000000000000000000000000000000000108800103000000 | 671 | + | f303000000000000000000000000000000000000000000000108810103000000 |
| 672 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 672 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 673 | - | 650000001c00800101005000f303000000000000000000000000000000000000 | 673 | + | 650000001c00810101005000f303000000000000000000000000000000000000 |
| 674 | - | 000000000108810103000000ef03000000000000090000000000000000000000 | 674 | + | 000000000108820103000000ef03000000000000090000000000000000000000 |
| 675 | - | 000000006e6574207469746c650000001c00810101005000f303000000000000 | 675 | + | 000000006e6574207469746c650000001c00820101005000f303000000000000 |
| 676 | - | 000000000000000000000000000000000108820103000000ef03000000000000 | 676 | + | 000000000000000000000000000000000108830103000000ef03000000000000 |
| 677 | - | 090000000000000000000000000000006e6574207469746c650000001c008201 | 677 | + | 090000000000000000000000000000006e6574207469746c650000001c008301 |
| 678 | - | 01005000f3030000000000000000000000000000000000000000000001088301 | 678 | + | 01005000f3030000000000000000000000000000000000000000000001088401 |
| 679 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 679 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 680 | - | 7469746c650000001c00830101005000f3030000000000000000000000000000 | 680 | + | 7469746c650000001c00840101005000f3030000000000000000000000000000 |
| 681 | - | 00000000000000000108840103000000ef030000000000000900000000000000 | 681 | + | 00000000000000000108850103000000ef030000000000000900000000000000 |
| 682 | - | 00000000000000006e6574207469746c650000001c00840101005000f3030000 | 682 | + | 00000000000000006e6574207469746c650000001c00850101005000f3030000 |
| 683 | - | 00000000000000000000000000000000000000000108850103000000ef030000 | 683 | + | 00000000000000000000000000000000000000000108860103000000ef030000 |
| 684 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 684 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 685 | - | 1c00850101005000f30300000000000000000000000000000000000000000000 | 685 | + | 1c00860101005000f30300000000000000000000000000000000000000000000 |
| 686 | - | 0108860103000000ef0300000000000009000000000000000000000000000000 | 686 | + | 0108870103000000ef0300000000000009000000000000000000000000000000 |
| 687 | - | 6e6574207469746c650000001c00860101005000f30300000000000000000000 | 687 | + | 6e6574207469746c650000001c00870101005000f30300000000000000000000 |
| 688 | - | 0000000000000000000000000108870103000000ef0300000000000009000000 | 688 | + | 0000000000000000000000000108880103000000ef0300000000000009000000 |
| 689 | - | 0000000000000000000000006e6574207469746c650000001c00870101005000 | 689 | + | 0000000000000000000000006e6574207469746c650000001c00880101005000 |
| 690 | - | f303000000000000000000000000000000000000000000000108880103000000 | 690 | + | f303000000000000000000000000000000000000000000000108890103000000 |
| 691 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 691 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 692 | - | 650000001c00880101005000f303000000000000000000000000000000000000 | 692 | + | 650000001c00890101005000f303000000000000000000000000000000000000 |
| 693 | - | 000000000108890103000000ef03000000000000090000000000000000000000 | 693 | + | 0000000001088a0103000000ef03000000000000090000000000000000000000 |
| 694 | - | 000000006e6574207469746c650000001c00890101005000f303000000000000 | 694 | + | 000000006e6574207469746c650000001c008a0101005000f303000000000000 |
| 695 | - | 0000000000000000000000000000000001088a0103000000ef03000000000000 | 695 | + | 0000000000000000000000000000000001088b0103000000ef03000000000000 |
| 696 | - | 090000000000000000000000000000006e6574207469746c650000001c008a01 | 696 | + | 090000000000000000000000000000006e6574207469746c650000001c008b01 |
| 697 | - | 01005000f3030000000000000000000000000000000000000000000001088b01 | 697 | + | 01005000f3030000000000000000000000000000000000000000000001088c01 |
| 698 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 698 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 699 | - | 7469746c650000001c008b0101005000f3030000000000000000000000000000 | 699 | + | 7469746c650000001c008c0101005000f3030000000000000000000000000000 |
| 700 | - | 000000000000000001088c0103000000ef030000000000000900000000000000 | 700 | + | 000000000000000001088d0103000000ef030000000000000900000000000000 |
| 701 | - | 00000000000000006e6574207469746c650000001c008c0101005000f3030000 | 701 | + | 00000000000000006e6574207469746c650000001c008d0101005000f3030000 |
| 702 | - | 000000000000000000000000000000000000000001088d0103000000ef030000 | 702 | + | 000000000000000000000000000000000000000001088e0103000000ef030000 |
| 703 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 703 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 704 | - | 1c008d0101005000f30300000000000000000000000000000000000000000000 | 704 | + | 1c008e0101005000f30300000000000000000000000000000000000000000000 |
| 705 | - | 01088e0103000000ef0300000000000009000000000000000000000000000000 | 705 | + | 01088f0103000000ef0300000000000009000000000000000000000000000000 |
| 706 | - | 6e6574207469746c650000001c008e0101005000f30300000000000000000000 | 706 | + | 6e6574207469746c650000001c008f0101005000f30300000000000000000000 |
| 707 | - | 00000000000000000000000001088f0103000000ef0300000000000009000000 | 707 | + | 0000000000000000000000000108900103000000ef0300000000000009000000 |
| 708 | - | 0000000000000000000000006e6574207469746c650000001c008f0101005000 | 708 | + | 0000000000000000000000006e6574207469746c650000001c00900101005000 |
| 709 | - | f303000000000000000000000000000000000000000000000108900103000000 | 709 | + | f303000000000000000000000000000000000000000000000108910103000000 |
| 710 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 710 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 711 | - | 650000001c00900101005000f303000000000000000000000000000000000000 | 711 | + | 650000001c00910101005000f303000000000000000000000000000000000000 |
| 712 | - | 000000000108910103000000ef03000000000000090000000000000000000000 | 712 | + | 000000000108920103000000ef03000000000000090000000000000000000000 |
| 713 | - | 000000006e6574207469746c650000001c00910101005000f303000000000000 | 713 | + | 000000006e6574207469746c650000001c00920101005000f303000000000000 |
| 714 | - | 000000000000000000000000000000000108920103000000ef03000000000000 | 714 | + | 000000000000000000000000000000000108930103000000ef03000000000000 |
| 715 | - | 090000000000000000000000000000006e6574207469746c650000001c009201 | 715 | + | 090000000000000000000000000000006e6574207469746c650000001c009301 |
| 716 | - | 01005000f3030000000000000000000000000000000000000000000001089301 | 716 | + | 01005000f3030000000000000000000000000000000000000000000001089401 |
| 717 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 717 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 718 | - | 7469746c650000001c00930101005000f3030000000000000000000000000000 | 718 | + | 7469746c650000001c00940101005000f3030000000000000000000000000000 |
| 719 | - | 00000000000000000108940103000000ef030000000000000900000000000000 | 719 | + | 00000000000000000108950103000000ef030000000000000900000000000000 |
| 720 | - | 00000000000000006e6574207469746c650000001c00940101005000f3030000 | 720 | + | 00000000000000006e6574207469746c650000001c00950101005000f3030000 |
| 721 | - | 00000000000000000000000000000000000000000108950103000000ef030000 | 721 | + | 00000000000000000000000000000000000000000108960103000000ef030000 |
| 722 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 722 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 723 | - | 1c00950101005000f30300000000000000000000000000000000000000000000 | 723 | + | 1c00960101005000f30300000000000000000000000000000000000000000000 |
| 724 | - | 0108960103000000ef0300000000000009000000000000000000000000000000 | 724 | + | 0108970103000000ef0300000000000009000000000000000000000000000000 |
| 725 | - | 6e6574207469746c650000001c00960101005000f30300000000000000000000 | 725 | + | 6e6574207469746c650000001c00970101005000f30300000000000000000000 |
| 726 | - | 0000000000000000000000000108970103000000ef0300000000000009000000 | 726 | + | 0000000000000000000000000108980103000000ef0300000000000009000000 |
| 727 | - | 0000000000000000000000006e6574207469746c650000001c00970101005000 | 727 | + | 0000000000000000000000006e6574207469746c650000001c00980101005000 |
| 728 | - | f303000000000000000000000000000000000000000000000108980103000000 | 728 | + | f303000000000000000000000000000000000000000000000108990103000000 |
| 729 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 729 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 730 | - | 650000001c00980101005000f303000000000000000000000000000000000000 | 730 | + | 650000001c00990101005000f303000000000000000000000000000000000000 |
| 731 | - | 000000000108990103000000ef03000000000000090000000000000000000000 | 731 | + | 0000000001089a0103000000ef03000000000000090000000000000000000000 |
| 732 | - | 000000006e6574207469746c650000001c00990101005000f303000000000000 | 732 | + | 000000006e6574207469746c650000001c009a0101005000f303000000000000 |
| 733 | - | 0000000000000000000000000000000001089a0103000000ef03000000000000 | 733 | + | 0000000000000000000000000000000001089b0103000000ef03000000000000 |
| 734 | - | 090000000000000000000000000000006e6574207469746c650000001c009a01 | 734 | + | 090000000000000000000000000000006e6574207469746c650000001c009b01 |
| 735 | - | 01005000f3030000000000000000000000000000000000000000000001089b01 | 735 | + | 01005000f3030000000000000000000000000000000000000000000001089c01 |
| 736 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 736 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 737 | - | 7469746c650000001c009b0101005000f3030000000000000000000000000000 | 737 | + | 7469746c650000001c009c0101005000f3030000000000000000000000000000 |
| 738 | - | 000000000000000001089c0103000000ef030000000000000900000000000000 | 738 | + | 000000000000000001089d0103000000ef030000000000000900000000000000 |
| 739 | - | 00000000000000006e6574207469746c650000001c009c0101005000f3030000 | 739 | + | 00000000000000006e6574207469746c650000001c009d0101005000f3030000 |
| 740 | - | 000000000000000000000000000000000000000001089d0103000000ef030000 | 740 | + | 000000000000000000000000000000000000000001089e0103000000ef030000 |
| 741 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 741 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 742 | - | 1c009d0101005000f30300000000000000000000000000000000000000000000 | 742 | + | 1c009e0101005000f30300000000000000000000000000000000000000000000 |
| 743 | - | 01089e0103000000ef0300000000000009000000000000000000000000000000 | 743 | + | 01089f0103000000ef0300000000000009000000000000000000000000000000 |
| 744 | - | 6e6574207469746c650000001c009e0101005000f30300000000000000000000 | 744 | + | 6e6574207469746c650000001c009f0101005000f30300000000000000000000 |
| 745 | - | 00000000000000000000000001089f0103000000ef0300000000000009000000 | 745 | + | 0000000000000000000000000108a00103000000ef0300000000000009000000 |
| 746 | - | 0000000000000000000000006e6574207469746c650000001c009f0101005000 | 746 | + | 0000000000000000000000006e6574207469746c650000001c00a00101005000 |
| 747 | - | f303000000000000000000000000000000000000000000000108a00103000000 | 747 | + | f303000000000000000000000000000000000000000000000108a10103000000 |
| 748 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 748 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 749 | - | 650000001c00a00101005000f303000000000000000000000000000000000000 | 749 | + | 650000001c00a10101005000f303000000000000000000000000000000000000 |
| 750 | - | 000000000108a10103000000ef03000000000000090000000000000000000000 | 750 | + | 000000000108a20103000000ef03000000000000090000000000000000000000 |
| 751 | - | 000000006e6574207469746c650000001c00a10101005000f303000000000000 | 751 | + | 000000006e6574207469746c650000001c00a20101005000f303000000000000 |
| 752 | - | 000000000000000000000000000000000108a20103000000ef03000000000000 | 752 | + | 000000000000000000000000000000000108a30103000000ef03000000000000 |
| 753 | - | 090000000000000000000000000000006e6574207469746c650000001c00a201 | 753 | + | 090000000000000000000000000000006e6574207469746c650000001c00a301 |
| 754 | - | 01005000f303000000000000000000000000000000000000000000000108a301 | 754 | + | 01005000f303000000000000000000000000000000000000000000000108a401 |
| 755 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 755 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 756 | - | 7469746c650000001c00a30101005000f3030000000000000000000000000000 | 756 | + | 7469746c650000001c00a40101005000f3030000000000000000000000000000 |
| 757 | - | 00000000000000000108a40103000000ef030000000000000900000000000000 | 757 | + | 00000000000000000108a50103000000ef030000000000000900000000000000 |
| 758 | - | 00000000000000006e6574207469746c650000001c00a40101005000f3030000 | 758 | + | 00000000000000006e6574207469746c650000001c00a50101005000f3030000 |
| 759 | - | 00000000000000000000000000000000000000000108a50103000000ef030000 | 759 | + | 00000000000000000000000000000000000000000108a60103000000ef030000 |
| 760 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 760 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 761 | - | 1c00a50101005000f30300000000000000000000000000000000000000000000 | 761 | + | 1c00a60101005000f30300000000000000000000000000000000000000000000 |
| 762 | - | 0108a60103000000ef0300000000000009000000000000000000000000000000 | 762 | + | 0108a70103000000ef0300000000000009000000000000000000000000000000 |
| 763 | - | 6e6574207469746c650000001c00a60101005000f30300000000000000000000 | 763 | + | 6e6574207469746c650000001c00a70101005000f30300000000000000000000 |
| 764 | - | 0000000000000000000000000108a70103000000ef0300000000000009000000 | 764 | + | 0000000000000000000000000108a80103000000ef0300000000000009000000 |
| 765 | - | 0000000000000000000000006e6574207469746c650000001c00a70101005000 | 765 | + | 0000000000000000000000006e6574207469746c650000001c00a80101005000 |
| 766 | - | f303000000000000000000000000000000000000000000000108a80103000000 | 766 | + | f303000000000000000000000000000000000000000000000108a90103000000 |
| 767 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 767 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 768 | - | 650000001c00a80101005000f303000000000000000000000000000000000000 | 768 | + | 650000001c00a90101005000f303000000000000000000000000000000000000 |
| 769 | - | 000000000108a90103000000ef03000000000000090000000000000000000000 | 769 | + | 000000000108aa0103000000ef03000000000000090000000000000000000000 |
| 770 | - | 000000006e6574207469746c650000001c00a90101005000f303000000000000 | 770 | + | 000000006e6574207469746c650000001c00aa0101005000f303000000000000 |
| 771 | - | 000000000000000000000000000000000108aa0103000000ef03000000000000 | 771 | + | 000000000000000000000000000000000108ab0103000000ef03000000000000 |
| 772 | - | 090000000000000000000000000000006e6574207469746c650000001c00aa01 | 772 | + | 090000000000000000000000000000006e6574207469746c650000001c00ab01 |
| 773 | - | 01005000f303000000000000000000000000000000000000000000000108ab01 | 773 | + | 01005000f303000000000000000000000000000000000000000000000108ac01 |
| 774 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 774 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 775 | - | 7469746c650000001c00ab0101005000f3030000000000000000000000000000 | 775 | + | 7469746c650000001c00ac0101005000f3030000000000000000000000000000 |
| 776 | - | 00000000000000000108ac0103000000ef030000000000000900000000000000 | 776 | + | 00000000000000000108ad0103000000ef030000000000000900000000000000 |
| 777 | - | 00000000000000006e6574207469746c650000001c00ac0101005000f3030000 | 777 | + | 00000000000000006e6574207469746c650000001c00ad0101005000f3030000 |
| 778 | - | 00000000000000000000000000000000000000000108ad0103000000ef030000 | 778 | + | 00000000000000000000000000000000000000000108ae0103000000ef030000 |
| 779 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 779 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 780 | - | 1c00ad0101005000f30300000000000000000000000000000000000000000000 | 780 | + | 1c00ae0101005000f30300000000000000000000000000000000000000000000 |
| 781 | - | 0108ae0103000000ef0300000000000009000000000000000000000000000000 | 781 | + | 0108af0103000000ef0300000000000009000000000000000000000000000000 |
| 782 | - | 6e6574207469746c650000001c00ae0101005000f30300000000000000000000 | 782 | + | 6e6574207469746c650000001c00af0101005000f30300000000000000000000 |
| 783 | - | 0000000000000000000000000108af0103000000ef0300000000000009000000 | 783 | + | 0000000000000000000000000108b00103000000ef0300000000000009000000 |
| 784 | - | 0000000000000000000000006e6574207469746c650000001c00af0101005000 | 784 | + | 0000000000000000000000006e6574207469746c650000001c00b00101005000 |
| 785 | - | f303000000000000000000000000000000000000000000000108b00103000000 | 785 | + | f303000000000000000000000000000000000000000000000108b10103000000 |
| 786 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 786 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 787 | - | 650000001c00b00101005000f303000000000000000000000000000000000000 | 787 | + | 650000001c00b10101005000f303000000000000000000000000000000000000 |
| 788 | - | 000000000108b10103000000ef03000000000000090000000000000000000000 | 788 | + | 000000000108b20103000000ef03000000000000090000000000000000000000 |
| 789 | - | 000000006e6574207469746c650000001c00b10101005000f303000000000000 | 789 | + | 000000006e6574207469746c650000001c00b20101005000f303000000000000 |
| 790 | - | 000000000000000000000000000000000108b20103000000ef03000000000000 | 790 | + | 000000000000000000000000000000000108b30103000000ef03000000000000 |
| 791 | - | 090000000000000000000000000000006e6574207469746c650000001c00b201 | 791 | + | 090000000000000000000000000000006e6574207469746c650000001c00b301 |
| 792 | - | 01005000f303000000000000000000000000000000000000000000000108b301 | 792 | + | 01005000f303000000000000000000000000000000000000000000000108b401 |
| 793 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 793 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 794 | - | 7469746c650000001c00b30101005000f3030000000000000000000000000000 | 794 | + | 7469746c650000001c00b40101005000f3030000000000000000000000000000 |
| 795 | - | 00000000000000000108b40103000000ef030000000000000900000000000000 | 795 | + | 00000000000000000108b50103000000ef030000000000000900000000000000 |
| 796 | - | 00000000000000006e6574207469746c650000001c00b40101005000f3030000 | 796 | + | 00000000000000006e6574207469746c650000001c00b50101005000f3030000 |
| 797 | - | 00000000000000000000000000000000000000000108b50103000000ef030000 | 797 | + | 00000000000000000000000000000000000000000108b60103000000ef030000 |
| 798 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 798 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 799 | - | 1c00b50101005000f30300000000000000000000000000000000000000000000 | 799 | + | 1c00b60101005000f30300000000000000000000000000000000000000000000 |
| 800 | - | 0108b60103000000ef0300000000000009000000000000000000000000000000 | 800 | + | 0108b70103000000ef0300000000000009000000000000000000000000000000 |
| 801 | - | 6e6574207469746c650000001c00b60101005000f30300000000000000000000 | 801 | + | 6e6574207469746c650000001c00b70101005000f30300000000000000000000 |
| 802 | - | 0000000000000000000000000108b70103000000ef0300000000000009000000 | 802 | + | 0000000000000000000000000108b80103000000ef0300000000000009000000 |
| 803 | - | 0000000000000000000000006e6574207469746c650000001c00b70101005000 | 803 | + | 0000000000000000000000006e6574207469746c650000001c00b80101005000 |
| 804 | - | f303000000000000000000000000000000000000000000000108b80103000000 | 804 | + | f303000000000000000000000000000000000000000000000108b90103000000 |
| 805 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 805 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 806 | - | 650000001c00b80101005000f303000000000000000000000000000000000000 | 806 | + | 650000001c00b90101005000f303000000000000000000000000000000000000 |
| 807 | - | 000000000108b90103000000ef03000000000000090000000000000000000000 | 807 | + | 000000000108ba0103000000ef03000000000000090000000000000000000000 |
| 808 | - | 000000006e6574207469746c650000001c00b90101005000f303000000000000 | 808 | + | 000000006e6574207469746c650000001c00ba0101005000f303000000000000 |
| 809 | - | 000000000000000000000000000000000108ba0103000000ef03000000000000 | 809 | + | 000000000000000000000000000000000108bb0103000000ef03000000000000 |
| 810 | - | 090000000000000000000000000000006e6574207469746c650000001c00ba01 | 810 | + | 090000000000000000000000000000006e6574207469746c650000001c00bb01 |
| 811 | - | 01005000f303000000000000000000000000000000000000000000000108bb01 | 811 | + | 01005000f303000000000000000000000000000000000000000000000108bc01 |
| 812 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 812 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 813 | - | 7469746c650000001c00bb0101005000f3030000000000000000000000000000 | 813 | + | 7469746c650000001c00bc0101005000f3030000000000000000000000000000 |
| 814 | - | 00000000000000000108bc0103000000ef030000000000000900000000000000 | 814 | + | 00000000000000000108bd0103000000ef030000000000000900000000000000 |
| 815 | - | 00000000000000006e6574207469746c650000001c00bc0101005000f3030000 | 815 | + | 00000000000000006e6574207469746c650000001c00bd0101005000f3030000 |
| 816 | - | 00000000000000000000000000000000000000000108bd0103000000ef030000 | 816 | + | 00000000000000000000000000000000000000000108be0103000000ef030000 |
| 817 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 817 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 818 | - | 1c00bd0101005000f30300000000000000000000000000000000000000000000 | 818 | + | 1c00be0101005000f30300000000000000000000000000000000000000000000 |
| 819 | - | 0108be0103000000ef0300000000000009000000000000000000000000000000 | 819 | + | 0108bf0103000000ef0300000000000009000000000000000000000000000000 |
| 820 | - | 6e6574207469746c650000001c00be0101005000f30300000000000000000000 | 820 | + | 6e6574207469746c650000001c00bf0101005000f30300000000000000000000 |
| 821 | - | 0000000000000000000000000108bf0103000000ef0300000000000009000000 | 821 | + | 0000000000000000000000000108c00103000000ef0300000000000009000000 |
| 822 | - | 0000000000000000000000006e6574207469746c650000001c00bf0101005000 | 822 | + | 0000000000000000000000006e6574207469746c650000001c00c00101005000 |
| 823 | - | f303000000000000000000000000000000000000000000000108c00103000000 | 823 | + | f303000000000000000000000000000000000000000000000108c10103000000 |
| 824 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 824 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 825 | - | 650000001c00c00101005000f303000000000000000000000000000000000000 | 825 | + | 650000001c00c10101005000f303000000000000000000000000000000000000 |
| 826 | - | 000000000108c10103000000ef03000000000000090000000000000000000000 | 826 | + | 000000000108c20103000000ef03000000000000090000000000000000000000 |
| 827 | - | 000000006e6574207469746c650000001c00c10101005000f303000000000000 | 827 | + | 000000006e6574207469746c650000001c00c20101005000f303000000000000 |
| 828 | - | 000000000000000000000000000000000108c20103000000ef03000000000000 | 828 | + | 000000000000000000000000000000000108c30103000000ef03000000000000 |
| 829 | - | 090000000000000000000000000000006e6574207469746c650000001c00c201 | 829 | + | 090000000000000000000000000000006e6574207469746c650000001c00c301 |
| 830 | - | 01005000f303000000000000000000000000000000000000000000000108c301 | 830 | + | 01005000f303000000000000000000000000000000000000000000000108c401 |
| 831 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 831 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 832 | - | 7469746c650000001c00c30101005000f3030000000000000000000000000000 | 832 | + | 7469746c650000001c00c40101005000f3030000000000000000000000000000 |
| 833 | - | 00000000000000000108c40103000000ef030000000000000900000000000000 | 833 | + | 00000000000000000108c50103000000ef030000000000000900000000000000 |
| 834 | - | 00000000000000006e6574207469746c650000001c00c40101005000f3030000 | 834 | + | 00000000000000006e6574207469746c650000001c00c50101005000f3030000 |
| 835 | - | 00000000000000000000000000000000000000000108c50103000000ef030000 | 835 | + | 00000000000000000000000000000000000000000108c60103000000ef030000 |
| 836 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 836 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 837 | - | 1c00c50101005000f30300000000000000000000000000000000000000000000 | 837 | + | 1c00c60101005000f30300000000000000000000000000000000000000000000 |
| 838 | - | 0108c60103000000ef0300000000000009000000000000000000000000000000 | 838 | + | 0108c70103000000ef0300000000000009000000000000000000000000000000 |
| 839 | - | 6e6574207469746c650000001c00c60101005000f30300000000000000000000 | 839 | + | 6e6574207469746c650000001c00c70101005000f30300000000000000000000 |
| 840 | - | 0000000000000000000000000108c70103000000ef0300000000000009000000 | 840 | + | 0000000000000000000000000108c80103000000ef0300000000000009000000 |
| 841 | - | 0000000000000000000000006e6574207469746c650000001c00c70101005000 | 841 | + | 0000000000000000000000006e6574207469746c650000001c00c80101005000 |
| 842 | - | f303000000000000000000000000000000000000000000000108c80103000000 | 842 | + | f303000000000000000000000000000000000000000000000108c90103000000 |
| 843 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 843 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 844 | - | 650000001c00c80101005000f303000000000000000000000000000000000000 | 844 | + | 650000001c00c90101005000f303000000000000000000000000000000000000 |
| 845 | - | 000000000108c90103000000ef03000000000000090000000000000000000000 | 845 | + | 000000000108ca0103000000ef03000000000000090000000000000000000000 |
| 846 | - | 000000006e6574207469746c650000001c00c90101005000f303000000000000 | 846 | + | 000000006e6574207469746c650000001c00ca0101005000f303000000000000 |
| 847 | - | 000000000000000000000000000000000108ca0103000000ef03000000000000 | 847 | + | 000000000000000000000000000000000108cb0103000000ef03000000000000 |
| 848 | - | 090000000000000000000000000000006e6574207469746c650000001c00ca01 | 848 | + | 090000000000000000000000000000006e6574207469746c650000001c00cb01 |
| 849 | - | 01005000f303000000000000000000000000000000000000000000000108cb01 | 849 | + | 01005000f303000000000000000000000000000000000000000000000108cc01 |
| 850 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 850 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 851 | - | 7469746c650000001c00cb0101005000f3030000000000000000000000000000 | 851 | + | 7469746c650000001c00cc0101005000f3030000000000000000000000000000 |
| 852 | - | 00000000000000000108cc0103000000ef030000000000000900000000000000 | 852 | + | 00000000000000000108cd0103000000ef030000000000000900000000000000 |
| 853 | - | 00000000000000006e6574207469746c650000001c00cc0101005000f3030000 | 853 | + | 00000000000000006e6574207469746c650000001c00cd0101005000f3030000 |
| 854 | - | 00000000000000000000000000000000000000000108cd0103000000ef030000 | 854 | + | 00000000000000000000000000000000000000000108ce0103000000ef030000 |
| 855 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 855 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 856 | - | 1c00cd0101005000f30300000000000000000000000000000000000000000000 | 856 | + | 1c00ce0101005000f30300000000000000000000000000000000000000000000 |
| 857 | - | 0108ce0103000000ef0300000000000009000000000000000000000000000000 | 857 | + | 0108cf0103000000ef0300000000000009000000000000000000000000000000 |
| 858 | - | 6e6574207469746c650000001c00ce0101005000f30300000000000000000000 | 858 | + | 6e6574207469746c650000001c00cf0101005000f30300000000000000000000 |
| 859 | - | 0000000000000000000000000108cf0103000000ef0300000000000009000000 | 859 | + | 0000000000000000000000000108d00103000000ef0300000000000009000000 |
| 860 | - | 0000000000000000000000006e6574207469746c650000001c00cf0101005000 | 860 | + | 0000000000000000000000006e6574207469746c650000001c00d00101005000 |
| 861 | - | f303000000000000000000000000000000000000000000000108d00103000000 | 861 | + | f303000000000000000000000000000000000000000000000108d10103000000 |
| 862 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 862 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 863 | - | 650000001c00d00101005000f303000000000000000000000000000000000000 | 863 | + | 650000001c00d10101005000f303000000000000000000000000000000000000 |
| 864 | - | 000000000108d10103000000ef03000000000000090000000000000000000000 | 864 | + | 000000000108d20103000000ef03000000000000090000000000000000000000 |
| 865 | - | 000000006e6574207469746c650000001c00d10101005000f303000000000000 | 865 | + | 000000006e6574207469746c650000001c00d20101005000f303000000000000 |
| 866 | - | 000000000000000000000000000000000108d20103000000ef03000000000000 | 866 | + | 000000000000000000000000000000000108d30103000000ef03000000000000 |
| 867 | - | 090000000000000000000000000000006e6574207469746c650000001c00d201 | 867 | + | 090000000000000000000000000000006e6574207469746c650000001c00d301 |
| 868 | - | 01005000f303000000000000000000000000000000000000000000000108d301 | 868 | + | 01005000f303000000000000000000000000000000000000000000000108d401 |
| 869 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 869 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 870 | - | 7469746c650000001c00d30101005000f3030000000000000000000000000000 | 870 | + | 7469746c650000001c00d40101005000f3030000000000000000000000000000 |
| 871 | - | 00000000000000000108d40103000000ef030000000000000900000000000000 | 871 | + | 00000000000000000108d50103000000ef030000000000000900000000000000 |
| 872 | - | 00000000000000006e6574207469746c650000001c00d40101005000f3030000 | 872 | + | 00000000000000006e6574207469746c650000001c00d50101005000f3030000 |
| 873 | - | 00000000000000000000000000000000000000000108d50103000000ef030000 | 873 | + | 00000000000000000000000000000000000000000108d60103000000ef030000 |
| 874 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 874 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 875 | - | 1c00d50101005000f30300000000000000000000000000000000000000000000 | 875 | + | 1c00d60101005000f30300000000000000000000000000000000000000000000 |
| 876 | - | 0108d60103000000ef0300000000000009000000000000000000000000000000 | 876 | + | 0108d70103000000ef0300000000000009000000000000000000000000000000 |
| 877 | - | 6e6574207469746c650000001c00d60101005000f30300000000000000000000 | 877 | + | 6e6574207469746c650000001c00d70101005000f30300000000000000000000 |
| 878 | - | 0000000000000000000000000108d70103000000ef0300000000000009000000 | 878 | + | 0000000000000000000000000108d80103000000ef0300000000000009000000 |
| 879 | - | 0000000000000000000000006e6574207469746c650000001c00d70101005000 | 879 | + | 0000000000000000000000006e6574207469746c650000001c00d80101005000 |
| 880 | - | f303000000000000000000000000000000000000000000000108d80103000000 | 880 | + | f303000000000000000000000000000000000000000000000108d90103000000 |
| 881 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 881 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 882 | - | 650000001c00d80101005000f303000000000000000000000000000000000000 | 882 | + | 650000001c00d90101005000f303000000000000000000000000000000000000 |
| 883 | - | 000000000108d90103000000ef03000000000000090000000000000000000000 | 883 | + | 000000000108da0103000000ef03000000000000090000000000000000000000 |
| 884 | - | 000000006e6574207469746c650000001c00d90101005000f303000000000000 | 884 | + | 000000006e6574207469746c650000001c00da0101005000f303000000000000 |
| 885 | - | 000000000000000000000000000000000108da0103000000ef03000000000000 | 885 | + | 000000000000000000000000000000000108db0103000000ef03000000000000 |
| 886 | - | 090000000000000000000000000000006e6574207469746c650000001c00da01 | 886 | + | 090000000000000000000000000000006e6574207469746c650000001c00db01 |
| 887 | - | 01005000f303000000000000000000000000000000000000000000000108db01 | 887 | + | 01005000f303000000000000000000000000000000000000000000000108dc01 |
| 888 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 888 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 889 | - | 7469746c650000001c00db0101005000f3030000000000000000000000000000 | 889 | + | 7469746c650000001c00dc0101005000f3030000000000000000000000000000 |
| 890 | - | 00000000000000000108dc0103000000ef030000000000000900000000000000 | 890 | + | 00000000000000000108dd0103000000ef030000000000000900000000000000 |
| 891 | - | 00000000000000006e6574207469746c650000001c00dc0101005000f3030000 | 891 | + | 00000000000000006e6574207469746c650000001c00dd0101005000f3030000 |
| 892 | - | 00000000000000000000000000000000000000000108dd0103000000ef030000 | 892 | + | 00000000000000000000000000000000000000000108de0103000000ef030000 |
| 893 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 893 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 894 | - | 1c00dd0101005000f30300000000000000000000000000000000000000000000 | 894 | + | 1c00de0101005000f30300000000000000000000000000000000000000000000 |
| 895 | - | 0108de0103000000ef0300000000000009000000000000000000000000000000 | 895 | + | 0108df0103000000ef0300000000000009000000000000000000000000000000 |
| 896 | - | 6e6574207469746c650000001c00de0101005000f30300000000000000000000 | 896 | + | 6e6574207469746c650000001c00df0101005000f30300000000000000000000 |
| 897 | - | 0000000000000000000000000108df0103000000ef0300000000000009000000 | 897 | + | 0000000000000000000000000108e00103000000ef0300000000000009000000 |
| 898 | - | 0000000000000000000000006e6574207469746c650000001c00df0101005000 | 898 | + | 0000000000000000000000006e6574207469746c650000001c00e00101005000 |
| 899 | - | f303000000000000000000000000000000000000000000000108e00103000000 | 899 | + | f303000000000000000000000000000000000000000000000108e10103000000 |
| 900 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 900 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 901 | - | 650000001c00e00101005000f303000000000000000000000000000000000000 | 901 | + | 650000001c00e10101005000f303000000000000000000000000000000000000 |
| 902 | - | 000000000108e10103000000ef03000000000000090000000000000000000000 | 902 | + | 000000000108e20103000000ef03000000000000090000000000000000000000 |
| 903 | - | 000000006e6574207469746c650000001c00e10101005000f303000000000000 | 903 | + | 000000006e6574207469746c650000001c00e20101005000f303000000000000 |
| 904 | - | 000000000000000000000000000000000108e20103000000ef03000000000000 | 904 | + | 000000000000000000000000000000000108e30103000000ef03000000000000 |
| 905 | - | 090000000000000000000000000000006e6574207469746c650000001c00e201 | 905 | + | 090000000000000000000000000000006e6574207469746c650000001c00e301 |
| 906 | - | 01005000f303000000000000000000000000000000000000000000000108e301 | 906 | + | 01005000f303000000000000000000000000000000000000000000000108e401 |
| 907 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 907 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 908 | - | 7469746c650000001c00e30101005000f3030000000000000000000000000000 | 908 | + | 7469746c650000001c00e40101005000f3030000000000000000000000000000 |
| 909 | - | 00000000000000000108e40103000000ef030000000000000900000000000000 | 909 | + | 00000000000000000108e50103000000ef030000000000000900000000000000 |
| 910 | - | 00000000000000006e6574207469746c650000001c00e40101005000f3030000 | 910 | + | 00000000000000006e6574207469746c650000001c00e50101005000f3030000 |
| 911 | - | 00000000000000000000000000000000000000000108e50103000000ef030000 | 911 | + | 00000000000000000000000000000000000000000108e60103000000ef030000 |
| 912 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 912 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 913 | - | 1c00e50101005000f30300000000000000000000000000000000000000000000 | 913 | + | 1c00e60101005000f30300000000000000000000000000000000000000000000 |
| 914 | - | 0108e60103000000ef0300000000000009000000000000000000000000000000 | 914 | + | 0108e70103000000ef0300000000000009000000000000000000000000000000 |
| 915 | - | 6e6574207469746c650000001c00e60101005000f30300000000000000000000 | 915 | + | 6e6574207469746c650000001c00e70101005000f30300000000000000000000 |
| 916 | - | 0000000000000000000000000108e70103000000ef0300000000000009000000 | 916 | + | 0000000000000000000000000108e80103000000ef0300000000000009000000 |
| 917 | - | 0000000000000000000000006e6574207469746c650000001c00e70101005000 | 917 | + | 0000000000000000000000006e6574207469746c650000001c00e80101005000 |
| 918 | - | f303000000000000000000000000000000000000000000000108e80103000000 | 918 | + | f303000000000000000000000000000000000000000000000108e90103000000 |
| 919 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 919 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 920 | - | 650000001c00e80101005000f303000000000000000000000000000000000000 | 920 | + | 650000001c00e90101005000f303000000000000000000000000000000000000 |
| 921 | - | 000000000108e90103000000ef03000000000000090000000000000000000000 | 921 | + | 000000000108ea0103000000ef03000000000000090000000000000000000000 |
| 922 | - | 000000006e6574207469746c650000001c00e90101005000f303000000000000 | 922 | + | 000000006e6574207469746c650000001c00ea0101005000f303000000000000 |
| 923 | - | 000000000000000000000000000000000108ea0103000000ef03000000000000 | 923 | + | 000000000000000000000000000000000108eb0103000000ef03000000000000 |
| 924 | - | 090000000000000000000000000000006e6574207469746c650000001c00ea01 | 924 | + | 090000000000000000000000000000006e6574207469746c650000001c00eb01 |
| 925 | - | 01005000f303000000000000000000000000000000000000000000000108eb01 | 925 | + | 01005000f303000000000000000000000000000000000000000000000108ec01 |
| 926 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 926 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 927 | - | 7469746c650000001c00eb0101005000f3030000000000000000000000000000 | 927 | + | 7469746c650000001c00ec0101005000f3030000000000000000000000000000 |
| 928 | - | 00000000000000000108ec0103000000ef030000000000000900000000000000 | 928 | + | 00000000000000000108ed0103000000ef030000000000000900000000000000 |
| 929 | - | 00000000000000006e6574207469746c650000001c00ec0101005000f3030000 | 929 | + | 00000000000000006e6574207469746c650000001c00ed0101005000f3030000 |
| 930 | - | 00000000000000000000000000000000000000000108ed0103000000ef030000 | 930 | + | 00000000000000000000000000000000000000000108ee0103000000ef030000 |
| 931 | - | 00000000090000000000000000000000000000006e6574207469746c65000000 | 931 | + | 00000000090000000000000000000000000000006e6574207469746c65000000 |
| 932 | - | 1c00ed0101005000f30300000000000000000000000000000000000000000000 | 932 | + | 1c00ee0101005000f30300000000000000000000000000000000000000000000 |
| 933 | - | 0108ee0103000000ef0300000000000009000000000000000000000000000000 | 933 | + | 0108ef0103000000ef0300000000000009000000000000000000000000000000 |
| 934 | - | 6e6574207469746c650000001c00ee0101005000f30300000000000000000000 | 934 | + | 6e6574207469746c650000001c00ef0101005000f30300000000000000000000 |
| 935 | - | 0000000000000000000000000108ef0103000000ef0300000000000009000000 | 935 | + | 0000000000000000000000000108f00103000000ef0300000000000009000000 |
| 936 | - | 0000000000000000000000006e6574207469746c650000001c00ef0101005000 | 936 | + | 0000000000000000000000006e6574207469746c650000001c00f00101005000 |
| 937 | - | f303000000000000000000000000000000000000000000000108f00103000000 | 937 | + | f303000000000000000000000000000000000000000000000108f10103000000 |
| 938 | - | ef03000000000000090000000000000000000000000000006e6574207469746c | 938 | + | ef03000000000000090000000000000000000000000000006e6574207469746c |
| 939 | - | 650000001c00f00101005000f303000000000000000000000000000000000000 | 939 | + | 650000001c00f10101005000f303000000000000000000000000000000000000 |
| 940 | - | 000000000108f10103000000ef03000000000000090000000000000000000000 | 940 | + | 000000000108f20103000000ef03000000000000090000000000000000000000 |
| 941 | - | 000000006e6574207469746c650000001c00f10101005000f303000000000000 | 941 | + | 000000006e6574207469746c650000001c00f20101005000f303000000000000 |
| 942 | - | 000000000000000000000000000000000108f20103000000ef03000000000000 | 942 | + | 000000000000000000000000000000000108f30103000000ef03000000000000 |
| 943 | - | 090000000000000000000000000000006e6574207469746c650000001c00f201 | 943 | + | 090000000000000000000000000000006e6574207469746c650000001c00f301 |
| 944 | - | 01005000f303000000000000000000000000000000000000000000000108f301 | 944 | + | 01005000f303000000000000000000000000000000000000000000000108f401 |
| 945 | - | 03000000ef03000000000000090000000000000000000000000000006e657420 | 945 | + | 03000000ef03000000000000090000000000000000000000000000006e657420 |
| 946 | - | 7469746c650000001c00f30101005000f3030000000000000000000000000000 | 946 | + | 7469746c650000001c00f40101005000f3030000000000000000000000000000 |
| 947 | - | 00000000000000000108f40103000000ef030000000000000900000000000000 | 947 | + | 00000000000000000108f50103000000ef030000000000000900000000000000 |
| 948 | - | 00000000000000006e6574207469746c650000001c00f40101005000f3030000 | 948 | + | 00000000000000006e6574207469746c650000001c00f50101005000f3030000 |
| 949 | - | 00000000000000000000000000000000000000000108f50103000000ef030000 | 949 | + | 00000000000000000000000000000000000000000108f60103000000ef030000 |
| 950 | 00000000090000000000000000000000000000006e6574207469746c65000000 | 950 | 00000000090000000000000000000000000000006e6574207469746c65000000 | ||
M internal/adapters/wayland/xwm/testdata/streams/steady.hex +2000 -2000 large diff (4000 lines changed): collapsed
M internal/app/testdata/x11probe/main.go +93 -7
| @@ -8,6 +8,13 @@ | |||
| 8 | 8 | // main one is mapped (prints "override mapped") and unmaps it after | |
| 9 | 9 | // -override-for (prints "override unmapped"). With -override-dismiss-on-focusout | |
| 10 | 10 | // it unmaps it instead when the main window loses focus (prints "dismissed"). | |
| 11 | + | // | |
| 12 | + | // With -fullscreen it asks the window manager for _NET_WM_STATE_FULLSCREEN | |
| 13 | + | // -fullscreen-delay after the window is mapped (0: right at the map) and | |
| 14 | + | // prints "fullscreen WxH" when the window is resized; -fullscreen-off asks to | |
| 15 | + | // leave it that long after (prints "fullscreen off WxH"). -keyboard-grab | |
| 16 | + | // calls XGrabKeyboard on the window once it is mapped (prints "grab"). | |
| 17 | + | // -at X,Y creates the window at that root position. | |
| 11 | 18 | package main | |
| 12 | 19 | ||
| 13 | 20 | import ( | |
| @@ -50,7 +57,16 @@ func run() error { | |||
| 50 | 57 | overrideType := flag.String("override-type", "menu", "override window type: menu or tooltip") | |
| 51 | 58 | overrideShape := flag.Bool("override-shape", false, "give the override window an empty input shape") | |
| 52 | 59 | dismiss := flag.Bool("override-dismiss-on-focusout", false, "unmap the override window when the main window loses focus") | |
| 60 | + | fullscreen := flag.Bool("fullscreen", false, "request _NET_WM_STATE_FULLSCREEN after the window is mapped") | |
| 61 | + | fullscreenDelay := flag.Duration("fullscreen-delay", 0, "delay between the map and the fullscreen request") | |
| 62 | + | fullscreenOff := flag.Duration("fullscreen-off", 0, "leave fullscreen this long after the request (0: never)") | |
| 63 | + | keyboardGrab := flag.Bool("keyboard-grab", false, "XGrabKeyboard on the window once it is mapped") | |
| 64 | + | at := flag.String("at", "0,0", "window position X,Y in root coordinates") | |
| 53 | 65 | flag.Parse() | |
| 66 | + | atX, atY, okAt := strings.Cut(*at, ",") | |
| 67 | + | if !okAt { | |
| 68 | + | return fmt.Errorf("bad -at %q", *at) | |
| 69 | + | } | |
| 54 | 70 | w, h, ok := parseSize(*size) | |
| 55 | 71 | if !ok { | |
| 56 | 72 | return fmt.Errorf("bad -size %q", *size) | |
| @@ -62,13 +78,14 @@ func run() error { | |||
| 62 | 78 | } | |
| 63 | 79 | defer c.Close() | |
| 64 | 80 | ||
| 65 | - | var atoms [7]uint32 | |
| 81 | + | var atoms [9]uint32 | |
| 66 | 82 | if err := c.InternAtoms([]string{"WM_PROTOCOLS", "WM_DELETE_WINDOW", "_NET_WM_NAME", "UTF8_STRING", | |
| 67 | - | "_NET_WM_WINDOW_TYPE", "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", "_NET_WM_WINDOW_TYPE_TOOLTIP"}, false, atoms[:]); err != nil { | |
| 83 | + | "_NET_WM_WINDOW_TYPE", "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", "_NET_WM_WINDOW_TYPE_TOOLTIP", "_NET_WM_STATE", "_NET_WM_STATE_FULLSCREEN"}, false, atoms[:]); err != nil { | |
| 68 | 84 | return err | |
| 69 | 85 | } | |
| 70 | 86 | protocols, deleteWin, netWMName, utf8 := xproto.Atom(atoms[0]), xproto.Atom(atoms[1]), xproto.Atom(atoms[2]), xproto.Atom(atoms[3]) | |
| 71 | 87 | typeAtom, typeMenu, typeTooltip := xproto.Atom(atoms[4]), atoms[5], atoms[6] | |
| 88 | + | netWMState, netWMFullscreen := atoms[7], atoms[8] | |
| 72 | 89 | ||
| 73 | 90 | b := c.Buf() | |
| 74 | 91 | xwin, err := c.NewXID() | |
| @@ -82,8 +99,8 @@ func run() error { | |||
| 82 | 99 | win, gc := xproto.Window(xwin), xproto.Gcontext(xgc) | |
| 83 | 100 | ||
| 84 | 101 | var v xproto.CreateWindowValues | |
| 85 | - | v.SetEventMask(xproto.EventMaskExposure | xproto.EventMaskStructureNotify | xproto.EventMaskFocusChange) | |
| 86 | - | xproto.CreateWindow(b, 0, win, xproto.Window(c.Root()), 0, 0, uint16(w), uint16(h), 0, xproto.WindowClassInputOutput, 0, &v) | |
| 102 | + | v.SetEventMask(xproto.EventMaskExposure | xproto.EventMaskStructureNotify | xproto.EventMaskFocusChange | xproto.EventMaskPropertyChange) | |
| 103 | + | xproto.CreateWindow(b, 0, win, xproto.Window(c.Root()), int16(atoi(atX)), int16(atoi(atY)), uint16(w), uint16(h), 0, xproto.WindowClassInputOutput, 0, &v) | |
| 87 | 104 | ||
| 88 | 105 | wmClass := []byte("x11probe\x00" + *class + "\x00") | |
| 89 | 106 | xproto.ChangeProperty(b, xproto.PropModeReplace, win, xproto.AtomWmClass, xproto.AtomString, 8, uint32(len(wmClass)), wmClass) | |
| @@ -100,6 +117,13 @@ func run() error { | |||
| 100 | 117 | return err | |
| 101 | 118 | } | |
| 102 | 119 | time.Sleep(*sleep) | |
| 120 | + | if *at != "0,0" { | |
| 121 | + | // Like games, ask for the rect before the map (a ConfigureRequest the | |
| 122 | + | // window manager sees as the output hint). | |
| 123 | + | var cv xproto.ConfigureWindowValues | |
| 124 | + | cv.SetX(int32(atoi(atX))).SetY(int32(atoi(atY))).SetWidth(uint32(w)).SetHeight(uint32(h)) | |
| 125 | + | xproto.ConfigureWindow(b, win, &cv) | |
| 126 | + | } | |
| 103 | 127 | xproto.MapWindow(b, win) | |
| 104 | 128 | ||
| 105 | 129 | // The override-redirect window is created once the main window is mapped. | |
| @@ -153,7 +177,21 @@ func run() error { | |||
| 153 | 177 | } | |
| 154 | 178 | var ovErr error | |
| 155 | 179 | ||
| 156 | - | mapped, done := false, false | |
| 180 | + | // Fullscreen requests go to the root window as a client message, as ICCCM | |
| 181 | + | // and EWMH say for a mapped window. | |
| 182 | + | fsMsg := func(action uint32) { | |
| 183 | + | var ev [32]byte | |
| 184 | + | ev[0] = byte(xproto.KindClientMessage) | |
| 185 | + | ev[1] = 32 | |
| 186 | + | binary.LittleEndian.PutUint32(ev[4:], uint32(win)) | |
| 187 | + | binary.LittleEndian.PutUint32(ev[8:], netWMState) | |
| 188 | + | binary.LittleEndian.PutUint32(ev[12:], action) | |
| 189 | + | binary.LittleEndian.PutUint32(ev[16:], netWMFullscreen) | |
| 190 | + | xproto.SendEvent(b, false, xproto.Window(c.Root()), xproto.EventMaskSubstructureRedirect|xproto.EventMaskSubstructureNotify, &ev) | |
| 191 | + | } | |
| 192 | + | var fsAt, fsOffAt time.Time // zero: nothing pending | |
| 193 | + | ||
| 194 | + | mapped, done, isFS := false, false, false | |
| 157 | 195 | cw, ch := uint16(w), uint16(h) // current size, tracked from ConfigureNotify | |
| 158 | 196 | hd := &xturbo.Handler{ | |
| 159 | 197 | OnEvent: func(ev *xturbo.Event) { | |
| @@ -172,6 +210,20 @@ func run() error { | |||
| 172 | 210 | if *override { | |
| 173 | 211 | ovErr = mapOverride() | |
| 174 | 212 | } | |
| 213 | + | if *fullscreen { | |
| 214 | + | fsAt = time.Now().Add(*fullscreenDelay) | |
| 215 | + | } | |
| 216 | + | if *keyboardGrab { | |
| 217 | + | xproto.GrabKeyboard(b, true, win, 0, xproto.GrabModeAsync, xproto.GrabModeAsync) | |
| 218 | + | fmt.Println("grab") | |
| 219 | + | } | |
| 220 | + | } | |
| 221 | + | case xproto.KindPropertyNotify: | |
| 222 | + | if e := xproto.PropertyNotifyOf(ev); e.Window() == win && xproto.Atom(e.Atom()) == xproto.Atom(netWMState) { | |
| 223 | + | seq := xproto.GetProperty(b, false, win, xproto.Atom(netWMState), xproto.AtomAtom, 0, 64) | |
| 224 | + | if err := c.Expect(seq, 16, 0, 0, 0, 0); err != nil { | |
| 225 | + | ovErr = err | |
| 226 | + | } | |
| 175 | 227 | } | |
| 176 | 228 | case xproto.KindFocusIn: | |
| 177 | 229 | fmt.Println("focus") | |
| @@ -186,6 +238,24 @@ func run() error { | |||
| 186 | 238 | } | |
| 187 | 239 | } | |
| 188 | 240 | }, | |
| 241 | + | OnReply: func(r *xturbo.Reply) { | |
| 242 | + | rep, ok := xproto.ParseGetPropertyReply(r.Raw) | |
| 243 | + | if !ok { | |
| 244 | + | return | |
| 245 | + | } | |
| 246 | + | on := false | |
| 247 | + | for v := rep.Value(); len(v) >= 4; v = v[4:] { | |
| 248 | + | on = on || binary.LittleEndian.Uint32(v) == netWMFullscreen | |
| 249 | + | } | |
| 250 | + | // Report the state the window manager published, once per change. | |
| 251 | + | switch { | |
| 252 | + | case on && !isFS: | |
| 253 | + | fmt.Printf("fullscreen %dx%d\n", cw, ch) | |
| 254 | + | case !on && isFS: | |
| 255 | + | fmt.Printf("fullscreen off %dx%d\n", cw, ch) | |
| 256 | + | } | |
| 257 | + | isFS = on | |
| 258 | + | }, | |
| 189 | 259 | OnError: func(e *xturbo.XError) { fmt.Fprintln(os.Stderr, "x11probe:", e) }, | |
| 190 | 260 | } | |
| 191 | 261 | for !done { | |
| @@ -196,8 +266,13 @@ func run() error { | |||
| 196 | 266 | return err | |
| 197 | 267 | } | |
| 198 | 268 | timeout := -1 | |
| 199 | - | if !ovDeadline.IsZero() { | |
| 200 | - | timeout = max(int(time.Until(ovDeadline).Milliseconds()), 0) | |
| 269 | + | for _, d := range []time.Time{ovDeadline, fsAt, fsOffAt} { | |
| 270 | + | if !d.IsZero() { | |
| 271 | + | ms := max(int(time.Until(d).Milliseconds())+1, 0) | |
| 272 | + | if timeout < 0 || ms < timeout { | |
| 273 | + | timeout = ms | |
| 274 | + | } | |
| 275 | + | } | |
| 201 | 276 | } | |
| 202 | 277 | fds := []unix.PollFd{{Fd: int32(c.Fd()), Events: events}} | |
| 203 | 278 | if _, err := unix.Poll(fds, timeout); err != nil && err != unix.EINTR { | |
| @@ -206,6 +281,17 @@ func run() error { | |||
| 206 | 281 | if !ovDeadline.IsZero() && !time.Now().Before(ovDeadline) { | |
| 207 | 282 | unmapOverride("override unmapped") | |
| 208 | 283 | } | |
| 284 | + | if !fsAt.IsZero() && !time.Now().Before(fsAt) { | |
| 285 | + | fsAt = time.Time{} | |
| 286 | + | fsMsg(1) | |
| 287 | + | if *fullscreenOff > 0 { | |
| 288 | + | fsOffAt = time.Now().Add(*fullscreenOff) | |
| 289 | + | } | |
| 290 | + | } | |
| 291 | + | if !fsOffAt.IsZero() && !time.Now().Before(fsOffAt) { | |
| 292 | + | fsOffAt = time.Time{} | |
| 293 | + | fsMsg(0) | |
| 294 | + | } | |
| 209 | 295 | if err := c.Dispatch(hd); err != nil { | |
| 210 | 296 | return err | |
| 211 | 297 | } | |
| @@ -8,6 +8,13 @@ | |||||
| 8 | // main one is mapped (prints "override mapped") and unmaps it after | 8 | // main one is mapped (prints "override mapped") and unmaps it after | ||
| 9 | // -override-for (prints "override unmapped"). With -override-dismiss-on-focusout | 9 | // -override-for (prints "override unmapped"). With -override-dismiss-on-focusout | ||
| 10 | // it unmaps it instead when the main window loses focus (prints "dismissed"). | 10 | // it unmaps it instead when the main window loses focus (prints "dismissed"). | ||
| 11 | + | // | |||
| 12 | + | // With -fullscreen it asks the window manager for _NET_WM_STATE_FULLSCREEN | |||
| 13 | + | // -fullscreen-delay after the window is mapped (0: right at the map) and | |||
| 14 | + | // prints "fullscreen WxH" when the window is resized; -fullscreen-off asks to | |||
| 15 | + | // leave it that long after (prints "fullscreen off WxH"). -keyboard-grab | |||
| 16 | + | // calls XGrabKeyboard on the window once it is mapped (prints "grab"). | |||
| 17 | + | // -at X,Y creates the window at that root position. | |||
| 11 | package main | 18 | package main | ||
| 12 | 19 | ||||
| 13 | import ( | 20 | import ( | ||
| @@ -50,7 +57,16 @@ func run() error { | |||||
| 50 | overrideType := flag.String("override-type", "menu", "override window type: menu or tooltip") | 57 | overrideType := flag.String("override-type", "menu", "override window type: menu or tooltip") | ||
| 51 | overrideShape := flag.Bool("override-shape", false, "give the override window an empty input shape") | 58 | overrideShape := flag.Bool("override-shape", false, "give the override window an empty input shape") | ||
| 52 | dismiss := flag.Bool("override-dismiss-on-focusout", false, "unmap the override window when the main window loses focus") | 59 | dismiss := flag.Bool("override-dismiss-on-focusout", false, "unmap the override window when the main window loses focus") | ||
| 60 | + | fullscreen := flag.Bool("fullscreen", false, "request _NET_WM_STATE_FULLSCREEN after the window is mapped") | |||
| 61 | + | fullscreenDelay := flag.Duration("fullscreen-delay", 0, "delay between the map and the fullscreen request") | |||
| 62 | + | fullscreenOff := flag.Duration("fullscreen-off", 0, "leave fullscreen this long after the request (0: never)") | |||
| 63 | + | keyboardGrab := flag.Bool("keyboard-grab", false, "XGrabKeyboard on the window once it is mapped") | |||
| 64 | + | at := flag.String("at", "0,0", "window position X,Y in root coordinates") | |||
| 53 | flag.Parse() | 65 | flag.Parse() | ||
| 66 | + | atX, atY, okAt := strings.Cut(*at, ",") | |||
| 67 | + | if !okAt { | |||
| 68 | + | return fmt.Errorf("bad -at %q", *at) | |||
| 69 | + | } | |||
| 54 | w, h, ok := parseSize(*size) | 70 | w, h, ok := parseSize(*size) | ||
| 55 | if !ok { | 71 | if !ok { | ||
| 56 | return fmt.Errorf("bad -size %q", *size) | 72 | return fmt.Errorf("bad -size %q", *size) | ||
| @@ -62,13 +78,14 @@ func run() error { | |||||
| 62 | } | 78 | } | ||
| 63 | defer c.Close() | 79 | defer c.Close() | ||
| 64 | 80 | ||||
| 65 | - | var atoms [7]uint32 | 81 | + | var atoms [9]uint32 |
| 66 | if err := c.InternAtoms([]string{"WM_PROTOCOLS", "WM_DELETE_WINDOW", "_NET_WM_NAME", "UTF8_STRING", | 82 | if err := c.InternAtoms([]string{"WM_PROTOCOLS", "WM_DELETE_WINDOW", "_NET_WM_NAME", "UTF8_STRING", | ||
| 67 | - | "_NET_WM_WINDOW_TYPE", "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", "_NET_WM_WINDOW_TYPE_TOOLTIP"}, false, atoms[:]); err != nil { | 83 | + | "_NET_WM_WINDOW_TYPE", "_NET_WM_WINDOW_TYPE_DROPDOWN_MENU", "_NET_WM_WINDOW_TYPE_TOOLTIP", "_NET_WM_STATE", "_NET_WM_STATE_FULLSCREEN"}, false, atoms[:]); err != nil { |
| 68 | return err | 84 | return err | ||
| 69 | } | 85 | } | ||
| 70 | protocols, deleteWin, netWMName, utf8 := xproto.Atom(atoms[0]), xproto.Atom(atoms[1]), xproto.Atom(atoms[2]), xproto.Atom(atoms[3]) | 86 | protocols, deleteWin, netWMName, utf8 := xproto.Atom(atoms[0]), xproto.Atom(atoms[1]), xproto.Atom(atoms[2]), xproto.Atom(atoms[3]) | ||
| 71 | typeAtom, typeMenu, typeTooltip := xproto.Atom(atoms[4]), atoms[5], atoms[6] | 87 | typeAtom, typeMenu, typeTooltip := xproto.Atom(atoms[4]), atoms[5], atoms[6] | ||
| 88 | + | netWMState, netWMFullscreen := atoms[7], atoms[8] | |||
| 72 | 89 | ||||
| 73 | b := c.Buf() | 90 | b := c.Buf() | ||
| 74 | xwin, err := c.NewXID() | 91 | xwin, err := c.NewXID() | ||
| @@ -82,8 +99,8 @@ func run() error { | |||||
| 82 | win, gc := xproto.Window(xwin), xproto.Gcontext(xgc) | 99 | win, gc := xproto.Window(xwin), xproto.Gcontext(xgc) | ||
| 83 | 100 | ||||
| 84 | var v xproto.CreateWindowValues | 101 | var v xproto.CreateWindowValues | ||
| 85 | - | v.SetEventMask(xproto.EventMaskExposure | xproto.EventMaskStructureNotify | xproto.EventMaskFocusChange) | 102 | + | v.SetEventMask(xproto.EventMaskExposure | xproto.EventMaskStructureNotify | xproto.EventMaskFocusChange | xproto.EventMaskPropertyChange) |
| 86 | - | xproto.CreateWindow(b, 0, win, xproto.Window(c.Root()), 0, 0, uint16(w), uint16(h), 0, xproto.WindowClassInputOutput, 0, &v) | 103 | + | xproto.CreateWindow(b, 0, win, xproto.Window(c.Root()), int16(atoi(atX)), int16(atoi(atY)), uint16(w), uint16(h), 0, xproto.WindowClassInputOutput, 0, &v) |
| 87 | 104 | ||||
| 88 | wmClass := []byte("x11probe\x00" + *class + "\x00") | 105 | wmClass := []byte("x11probe\x00" + *class + "\x00") | ||
| 89 | xproto.ChangeProperty(b, xproto.PropModeReplace, win, xproto.AtomWmClass, xproto.AtomString, 8, uint32(len(wmClass)), wmClass) | 106 | xproto.ChangeProperty(b, xproto.PropModeReplace, win, xproto.AtomWmClass, xproto.AtomString, 8, uint32(len(wmClass)), wmClass) | ||
| @@ -100,6 +117,13 @@ func run() error { | |||||
| 100 | return err | 117 | return err | ||
| 101 | } | 118 | } | ||
| 102 | time.Sleep(*sleep) | 119 | time.Sleep(*sleep) | ||
| 120 | + | if *at != "0,0" { | |||
| 121 | + | // Like games, ask for the rect before the map (a ConfigureRequest the | |||
| 122 | + | // window manager sees as the output hint). | |||
| 123 | + | var cv xproto.ConfigureWindowValues | |||
| 124 | + | cv.SetX(int32(atoi(atX))).SetY(int32(atoi(atY))).SetWidth(uint32(w)).SetHeight(uint32(h)) | |||
| 125 | + | xproto.ConfigureWindow(b, win, &cv) | |||
| 126 | + | } | |||
| 103 | xproto.MapWindow(b, win) | 127 | xproto.MapWindow(b, win) | ||
| 104 | 128 | ||||
| 105 | // The override-redirect window is created once the main window is mapped. | 129 | // The override-redirect window is created once the main window is mapped. | ||
| @@ -153,7 +177,21 @@ func run() error { | |||||
| 153 | } | 177 | } | ||
| 154 | var ovErr error | 178 | var ovErr error | ||
| 155 | 179 | ||||
| 156 | - | mapped, done := false, false | 180 | + | // Fullscreen requests go to the root window as a client message, as ICCCM |
| 181 | + | // and EWMH say for a mapped window. | |||
| 182 | + | fsMsg := func(action uint32) { | |||
| 183 | + | var ev [32]byte | |||
| 184 | + | ev[0] = byte(xproto.KindClientMessage) | |||
| 185 | + | ev[1] = 32 | |||
| 186 | + | binary.LittleEndian.PutUint32(ev[4:], uint32(win)) | |||
| 187 | + | binary.LittleEndian.PutUint32(ev[8:], netWMState) | |||
| 188 | + | binary.LittleEndian.PutUint32(ev[12:], action) | |||
| 189 | + | binary.LittleEndian.PutUint32(ev[16:], netWMFullscreen) | |||
| 190 | + | xproto.SendEvent(b, false, xproto.Window(c.Root()), xproto.EventMaskSubstructureRedirect|xproto.EventMaskSubstructureNotify, &ev) | |||
| 191 | + | } | |||
| 192 | + | var fsAt, fsOffAt time.Time // zero: nothing pending | |||
| 193 | + | ||||
| 194 | + | mapped, done, isFS := false, false, false | |||
| 157 | cw, ch := uint16(w), uint16(h) // current size, tracked from ConfigureNotify | 195 | cw, ch := uint16(w), uint16(h) // current size, tracked from ConfigureNotify | ||
| 158 | hd := &xturbo.Handler{ | 196 | hd := &xturbo.Handler{ | ||
| 159 | OnEvent: func(ev *xturbo.Event) { | 197 | OnEvent: func(ev *xturbo.Event) { | ||
| @@ -172,6 +210,20 @@ func run() error { | |||||
| 172 | if *override { | 210 | if *override { | ||
| 173 | ovErr = mapOverride() | 211 | ovErr = mapOverride() | ||
| 174 | } | 212 | } | ||
| 213 | + | if *fullscreen { | |||
| 214 | + | fsAt = time.Now().Add(*fullscreenDelay) | |||
| 215 | + | } | |||
| 216 | + | if *keyboardGrab { | |||
| 217 | + | xproto.GrabKeyboard(b, true, win, 0, xproto.GrabModeAsync, xproto.GrabModeAsync) | |||
| 218 | + | fmt.Println("grab") | |||
| 219 | + | } | |||
| 220 | + | } | |||
| 221 | + | case xproto.KindPropertyNotify: | |||
| 222 | + | if e := xproto.PropertyNotifyOf(ev); e.Window() == win && xproto.Atom(e.Atom()) == xproto.Atom(netWMState) { | |||
| 223 | + | seq := xproto.GetProperty(b, false, win, xproto.Atom(netWMState), xproto.AtomAtom, 0, 64) | |||
| 224 | + | if err := c.Expect(seq, 16, 0, 0, 0, 0); err != nil { | |||
| 225 | + | ovErr = err | |||
| 226 | + | } | |||
| 175 | } | 227 | } | ||
| 176 | case xproto.KindFocusIn: | 228 | case xproto.KindFocusIn: | ||
| 177 | fmt.Println("focus") | 229 | fmt.Println("focus") | ||
| @@ -186,6 +238,24 @@ func run() error { | |||||
| 186 | } | 238 | } | ||
| 187 | } | 239 | } | ||
| 188 | }, | 240 | }, | ||
| 241 | + | OnReply: func(r *xturbo.Reply) { | |||
| 242 | + | rep, ok := xproto.ParseGetPropertyReply(r.Raw) | |||
| 243 | + | if !ok { | |||
| 244 | + | return | |||
| 245 | + | } | |||
| 246 | + | on := false | |||
| 247 | + | for v := rep.Value(); len(v) >= 4; v = v[4:] { | |||
| 248 | + | on = on || binary.LittleEndian.Uint32(v) == netWMFullscreen | |||
| 249 | + | } | |||
| 250 | + | // Report the state the window manager published, once per change. | |||
| 251 | + | switch { | |||
| 252 | + | case on && !isFS: | |||
| 253 | + | fmt.Printf("fullscreen %dx%d\n", cw, ch) | |||
| 254 | + | case !on && isFS: | |||
| 255 | + | fmt.Printf("fullscreen off %dx%d\n", cw, ch) | |||
| 256 | + | } | |||
| 257 | + | isFS = on | |||
| 258 | + | }, | |||
| 189 | OnError: func(e *xturbo.XError) { fmt.Fprintln(os.Stderr, "x11probe:", e) }, | 259 | OnError: func(e *xturbo.XError) { fmt.Fprintln(os.Stderr, "x11probe:", e) }, | ||
| 190 | } | 260 | } | ||
| 191 | for !done { | 261 | for !done { | ||
| @@ -196,8 +266,13 @@ func run() error { | |||||
| 196 | return err | 266 | return err | ||
| 197 | } | 267 | } | ||
| 198 | timeout := -1 | 268 | timeout := -1 | ||
| 199 | - | if !ovDeadline.IsZero() { | 269 | + | for _, d := range []time.Time{ovDeadline, fsAt, fsOffAt} { |
| 200 | - | timeout = max(int(time.Until(ovDeadline).Milliseconds()), 0) | 270 | + | if !d.IsZero() { |
| 271 | + | ms := max(int(time.Until(d).Milliseconds())+1, 0) | |||
| 272 | + | if timeout < 0 || ms < timeout { | |||
| 273 | + | timeout = ms | |||
| 274 | + | } | |||
| 275 | + | } | |||
| 201 | } | 276 | } | ||
| 202 | fds := []unix.PollFd{{Fd: int32(c.Fd()), Events: events}} | 277 | fds := []unix.PollFd{{Fd: int32(c.Fd()), Events: events}} | ||
| 203 | if _, err := unix.Poll(fds, timeout); err != nil && err != unix.EINTR { | 278 | if _, err := unix.Poll(fds, timeout); err != nil && err != unix.EINTR { | ||
| @@ -206,6 +281,17 @@ func run() error { | |||||
| 206 | if !ovDeadline.IsZero() && !time.Now().Before(ovDeadline) { | 281 | if !ovDeadline.IsZero() && !time.Now().Before(ovDeadline) { | ||
| 207 | unmapOverride("override unmapped") | 282 | unmapOverride("override unmapped") | ||
| 208 | } | 283 | } | ||
| 284 | + | if !fsAt.IsZero() && !time.Now().Before(fsAt) { | |||
| 285 | + | fsAt = time.Time{} | |||
| 286 | + | fsMsg(1) | |||
| 287 | + | if *fullscreenOff > 0 { | |||
| 288 | + | fsOffAt = time.Now().Add(*fullscreenOff) | |||
| 289 | + | } | |||
| 290 | + | } | |||
| 291 | + | if !fsOffAt.IsZero() && !time.Now().Before(fsOffAt) { | |||
| 292 | + | fsOffAt = time.Time{} | |||
| 293 | + | fsMsg(0) | |||
| 294 | + | } | |||
| 209 | if err := c.Dispatch(hd); err != nil { | 295 | if err := c.Dispatch(hd); err != nil { | ||
| 210 | return err | 296 | return err | ||
| 211 | } | 297 | } | ||
M internal/app/xwayland_test.go +184 -1
| @@ -51,6 +51,13 @@ type xwaylandEnv struct { | |||
| 51 | 51 | // X11 display. It skips the test without Xwayland and stops everything when | |
| 52 | 52 | // the test ends. | |
| 53 | 53 | func startXwayland(t *testing.T) *xwaylandEnv { | |
| 54 | + | t.Helper() | |
| 55 | + | return startXwaylandWith(t, [][2]int{{xwaylandW, xwaylandH}}, nil) | |
| 56 | + | } | |
| 57 | + | ||
| 58 | + | // startXwaylandWith is startXwayland with the given headless outputs, left to | |
| 59 | + | // right, and an optional change to the default config. | |
| 60 | + | func startXwaylandWith(t *testing.T, sizes [][2]int, mutate func(*ports.Config)) *xwaylandEnv { | |
| 54 | 61 | t.Helper() | |
| 55 | 62 | if _, err := exec.LookPath("Xwayland"); err != nil { | |
| 56 | 63 | t.Skip("Xwayland not on PATH") | |
| @@ -73,11 +80,14 @@ func startXwayland(t *testing.T) *xwaylandEnv { | |||
| 73 | 80 | ctx, cancel := context.WithCancel(zerowrap.WithCtx(context.Background(), zerowrap.New(zerowrap.Config{Level: "info", Format: "json", Output: logs}))) | |
| 74 | 81 | cfg := config.Defaults() | |
| 75 | 82 | cfg.Xwayland = ports.XwaylandConfig{Backend: ports.XwaylandBuiltin, Binary: "Xwayland"} | |
| 83 | + | if mutate != nil { | |
| 84 | + | mutate(&cfg) | |
| 85 | + | } | |
| 76 | 86 | done := make(chan error, 1) | |
| 77 | 87 | go func() { | |
| 78 | 88 | done <- Run(ctx, Options{ | |
| 79 | 89 | Backend: "headless", NoTerminal: true, Config: cfg, Script: script, | |
| 80 | - | ScreenshotDir: shots, Sizes: [][2]int{{xwaylandW, xwaylandH}}, | |
| 90 | + | ScreenshotDir: shots, Sizes: sizes, | |
| 81 | 91 | }) | |
| 82 | 92 | }() | |
| 83 | 93 | t.Cleanup(func() { | |
| @@ -392,3 +402,176 @@ func TestXwaylandOverrideShape(t *testing.T) { | |||
| 392 | 402 | }) | |
| 393 | 403 | until(t, "only the toplevel in state", func() bool { return len(readState(e.statePath).Windows) == 1 }) | |
| 394 | 404 | } | |
| 405 | + | ||
| 406 | + | // fullOutput is the share of the output screenshot at path that is green. | |
| 407 | + | func fullOutput(path string) float64 { | |
| 408 | + | return greenShare(path, image.Rect(0, 0, xwaylandW, xwaylandH)) | |
| 409 | + | } | |
| 410 | + | ||
| 411 | + | // windowOf returns the state window with the given pid. | |
| 412 | + | func windowOf(st statefile.State, pid int) (statefile.Window, bool) { | |
| 413 | + | for _, w := range st.Windows { | |
| 414 | + | if w.PID == pid { | |
| 415 | + | return w, true | |
| 416 | + | } | |
| 417 | + | } | |
| 418 | + | return statefile.Window{}, false | |
| 419 | + | } | |
| 420 | + | ||
| 421 | + | // TestXwaylandFullscreen: a fullscreen request after the 1 s grace fills the | |
| 422 | + | // output, the toggle bind leaves it, and a request made right at the map is | |
| 423 | + | // ignored (the grace, current policy). | |
| 424 | + | func TestXwaylandFullscreen(t *testing.T) { | |
| 425 | + | // Gaps make a tile visibly smaller than the output. | |
| 426 | + | e := startXwaylandWith(t, [][2]int{{xwaylandW, xwaylandH}}, func(c *ports.Config) { c.Layout.Gaps = 20 }) | |
| 427 | + | shot := filepath.Join(e.shots, "latest.png") | |
| 428 | + | corner := image.Rect(0, 0, 4, 4) | |
| 429 | + | p := startProbe(t, e.bin, e.display, "-fullscreen", "-fullscreen-delay", "2s") | |
| 430 | + | until(t, "tiled with a gap", func() bool { | |
| 431 | + | return strings.Contains(p.out.String(), "mapped ") && fullOutput(shot) > 0.3 && greenShare(shot, corner) == 0 | |
| 432 | + | }) | |
| 433 | + | until(t, "probe fullscreen at output size", func() bool { | |
| 434 | + | return strings.Contains(p.out.String(), "fullscreen 640x360") | |
| 435 | + | }) | |
| 436 | + | until(t, "output all green", func() bool { return fullOutput(shot) >= 0.99 }) | |
| 437 | + | ||
| 438 | + | // The toggle bind (cmd+shift+f) leaves fullscreen. | |
| 439 | + | if _, err := io.WriteString(e.script, "key Super+Shift+f\n"); err != nil { | |
| 440 | + | t.Fatal(err) | |
| 441 | + | } | |
| 442 | + | until(t, "probe left fullscreen", func() bool { return strings.Contains(p.out.String(), "fullscreen off ") }) | |
| 443 | + | until(t, "gap back", func() bool { return greenShare(shot, corner) == 0 && fullOutput(shot) < 0.99 }) | |
| 444 | + | } | |
| 445 | + | ||
| 446 | + | // TestXwaylandFullscreenOff: the client leaves fullscreen itself. | |
| 447 | + | func TestXwaylandFullscreenOff(t *testing.T) { | |
| 448 | + | e := startXwayland(t) | |
| 449 | + | p := startProbe(t, e.bin, e.display, "-fullscreen", "-fullscreen-delay", "1500ms", "-fullscreen-off", "1s") | |
| 450 | + | until(t, "fullscreen", func() bool { return strings.Contains(p.out.String(), "fullscreen 640x360") }) | |
| 451 | + | until(t, "fullscreen off", func() bool { return strings.Contains(p.out.String(), "fullscreen off ") }) | |
| 452 | + | until(t, "tiled", func() bool { | |
| 453 | + | st := readState(e.statePath) | |
| 454 | + | return len(st.Windows) == 1 && func() bool { _, ok := tileRect(st, st.Windows[0].ID); return ok }() | |
| 455 | + | }) | |
| 456 | + | } | |
| 457 | + | ||
| 458 | + | // TestXwaylandFullscreenGrace: a request made at once after the map stays | |
| 459 | + | // tiled (fullscreenGrace in core). | |
| 460 | + | func TestXwaylandFullscreenGrace(t *testing.T) { | |
| 461 | + | e := startXwayland(t) | |
| 462 | + | p := startProbe(t, e.bin, e.display, "-fullscreen") | |
| 463 | + | until(t, "mapped", func() bool { return strings.Contains(p.out.String(), "mapped ") }) | |
| 464 | + | until(t, "tiled window", func() bool { | |
| 465 | + | st := readState(e.statePath) | |
| 466 | + | return len(st.Windows) == 1 && func() bool { _, ok := tileRect(st, st.Windows[0].ID); return ok }() | |
| 467 | + | }) | |
| 468 | + | // Stay inside the grace, then check it is still not fullscreen. | |
| 469 | + | time.Sleep(500 * time.Millisecond) | |
| 470 | + | st := readState(e.statePath) | |
| 471 | + | if _, ok := tileRect(st, st.Windows[0].ID); !ok { | |
| 472 | + | t.Error("window went fullscreen inside the grace") | |
| 473 | + | } | |
| 474 | + | if strings.Contains(p.out.String(), "fullscreen ") { | |
| 475 | + | t.Errorf("probe saw a fullscreen resize inside the grace: %q", p.out.String()) | |
| 476 | + | } | |
| 477 | + | } | |
| 478 | + | ||
| 479 | + | // TestXwaylandKeyboardGrab: while a fullscreen, focused X11 client holds the | |
| 480 | + | // keyboard grab the close bind does not fire; after it leaves fullscreen the | |
| 481 | + | // binds work again. | |
| 482 | + | func TestXwaylandKeyboardGrab(t *testing.T) { | |
| 483 | + | e := startXwayland(t) | |
| 484 | + | p := startProbe(t, e.bin, e.display, "-fullscreen", "-fullscreen-delay", "1500ms", "-fullscreen-off", "2500ms", "-keyboard-grab") | |
| 485 | + | until(t, "fullscreen", func() bool { return strings.Contains(p.out.String(), "fullscreen 640x360") }) | |
| 486 | + | until(t, "grab", func() bool { return strings.Contains(p.out.String(), "grab") }) | |
| 487 | + | until(t, "probe focus", func() bool { return strings.Contains(p.out.String(), "focus") }) | |
| 488 | + | if _, err := io.WriteString(e.script, "key Super+q\n"); err != nil { | |
| 489 | + | t.Fatal(err) | |
| 490 | + | } | |
| 491 | + | select { | |
| 492 | + | case err := <-p.waited: | |
| 493 | + | t.Fatalf("probe closed (%v) by Super+q despite the keyboard grab", err) | |
| 494 | + | case <-time.After(2 * time.Second): | |
| 495 | + | } | |
| 496 | + | ||
| 497 | + | // The probe leaves fullscreen itself; its grab stays, but the binds work again. | |
| 498 | + | until(t, "fullscreen off", func() bool { return strings.Contains(p.out.String(), "fullscreen off ") }) | |
| 499 | + | if _, err := io.WriteString(e.script, "key Super+q\n"); err != nil { | |
| 500 | + | t.Fatal(err) | |
| 501 | + | } | |
| 502 | + | select { | |
| 503 | + | case err := <-p.waited: | |
| 504 | + | if err != nil { | |
| 505 | + | t.Errorf("probe exited with %v, want 0", err) | |
| 506 | + | } | |
| 507 | + | case <-time.After(2 * time.Second): | |
| 508 | + | t.Fatal("Super+q did not close the client after it left fullscreen") | |
| 509 | + | } | |
| 510 | + | } | |
| 511 | + | ||
| 512 | + | // TestXwaylandKeyboardGrabWindowed: a grab on a windowed client does not lock | |
| 513 | + | // the binds. | |
| 514 | + | func TestXwaylandKeyboardGrabWindowed(t *testing.T) { | |
| 515 | + | e := startXwayland(t) | |
| 516 | + | p := startProbe(t, e.bin, e.display, "-keyboard-grab") | |
| 517 | + | until(t, "grab", func() bool { return strings.Contains(p.out.String(), "grab") }) | |
| 518 | + | until(t, "probe focus", func() bool { return strings.Contains(p.out.String(), "focus") }) | |
| 519 | + | if _, err := io.WriteString(e.script, "key Super+q\n"); err != nil { | |
| 520 | + | t.Fatal(err) | |
| 521 | + | } | |
| 522 | + | select { | |
| 523 | + | case err := <-p.waited: | |
| 524 | + | if err != nil { | |
| 525 | + | t.Errorf("probe exited with %v, want 0", err) | |
| 526 | + | } | |
| 527 | + | case <-time.After(2 * time.Second): | |
| 528 | + | t.Fatal("Super+q did not close a windowed client that holds a keyboard grab") | |
| 529 | + | } | |
| 530 | + | } | |
| 531 | + | ||
| 532 | + | // TestXwaylandOutputHint: with two outputs a window created at the origin of | |
| 533 | + | // the second one opens on it, and a fullscreen request fills that output. | |
| 534 | + | func TestXwaylandOutputHint(t *testing.T) { | |
| 535 | + | sizes := [][2]int{{xwaylandW, xwaylandH}, {xwaylandW, xwaylandH}} | |
| 536 | + | e := startXwaylandWith(t, sizes, nil) | |
| 537 | + | p := startProbe(t, e.bin, e.display, "-size", "640x360", "-at", "640,0", "-fullscreen", "-fullscreen-delay", "1500ms") | |
| 538 | + | var w statefile.Window | |
| 539 | + | until(t, "window on HEADLESS-2", func() bool { | |
| 540 | + | var ok bool | |
| 541 | + | w, ok = windowOf(readState(e.statePath), p.cmd.Process.Pid) | |
| 542 | + | if ok && w.Output != "HEADLESS-2" { | |
| 543 | + | t.Logf("window output = %s", w.Output) | |
| 544 | + | } | |
| 545 | + | return ok && w.Output == "HEADLESS-2" | |
| 546 | + | }) | |
| 547 | + | until(t, "probe fullscreen", func() bool { return strings.Contains(p.out.String(), "fullscreen 640x360") }) | |
| 548 | + | until(t, "HEADLESS-2 all green", func() bool { | |
| 549 | + | return fullOutput(filepath.Join(e.shots, "HEADLESS-2", "latest.png")) >= 0.99 | |
| 550 | + | }) | |
| 551 | + | if g := fullOutput(filepath.Join(e.shots, "HEADLESS-1", "latest.png")); g > 0.1 { | |
| 552 | + | t.Errorf("HEADLESS-1 green share = %.2f, want empty", g) | |
| 553 | + | } | |
| 554 | + | } | |
| 555 | + | ||
| 556 | + | // TestXwaylandClassRule: [window-rule] matches the WM_CLASS of an X11 window | |
| 557 | + | // the way it matches a Wayland app ID (steam_app_<id> from Proton). | |
| 558 | + | func TestXwaylandClassRule(t *testing.T) { | |
| 559 | + | yes := true | |
| 560 | + | e := startXwaylandWith(t, [][2]int{{xwaylandW, xwaylandH}}, func(c *ports.Config) { | |
| 561 | + | c.Rules = append(c.Rules, ports.WindowRule{Name: "games", AppID: regexp.MustCompile(`^steam_app_\d+$`), Floating: &yes}) | |
| 562 | + | }) | |
| 563 | + | startProbe(t, e.bin, e.display, "-class", "steam_app_413150") | |
| 564 | + | until(t, "floating steam_app window", func() bool { | |
| 565 | + | st := readState(e.statePath) | |
| 566 | + | return len(st.Windows) == 1 && st.Windows[0].AppID == "steam_app_413150" && st.Windows[0].Floating | |
| 567 | + | }) | |
| 568 | + | startProbe(t, e.bin, e.display, "-class", "Other") | |
| 569 | + | until(t, "other class tiled", func() bool { | |
| 570 | + | for _, w := range readState(e.statePath).Windows { | |
| 571 | + | if w.AppID == "Other" { | |
| 572 | + | return !w.Floating | |
| 573 | + | } | |
| 574 | + | } | |
| 575 | + | return false | |
| 576 | + | }) | |
| 577 | + | } | |
| @@ -51,6 +51,13 @@ type xwaylandEnv struct { | |||||
| 51 | // X11 display. It skips the test without Xwayland and stops everything when | 51 | // X11 display. It skips the test without Xwayland and stops everything when | ||
| 52 | // the test ends. | 52 | // the test ends. | ||
| 53 | func startXwayland(t *testing.T) *xwaylandEnv { | 53 | func startXwayland(t *testing.T) *xwaylandEnv { | ||
| 54 | + | t.Helper() | |||
| 55 | + | return startXwaylandWith(t, [][2]int{{xwaylandW, xwaylandH}}, nil) | |||
| 56 | + | } | |||
| 57 | + | ||||
| 58 | + | // startXwaylandWith is startXwayland with the given headless outputs, left to | |||
| 59 | + | // right, and an optional change to the default config. | |||
| 60 | + | func startXwaylandWith(t *testing.T, sizes [][2]int, mutate func(*ports.Config)) *xwaylandEnv { | |||
| 54 | t.Helper() | 61 | t.Helper() | ||
| 55 | if _, err := exec.LookPath("Xwayland"); err != nil { | 62 | if _, err := exec.LookPath("Xwayland"); err != nil { | ||
| 56 | t.Skip("Xwayland not on PATH") | 63 | t.Skip("Xwayland not on PATH") | ||
| @@ -73,11 +80,14 @@ func startXwayland(t *testing.T) *xwaylandEnv { | |||||
| 73 | ctx, cancel := context.WithCancel(zerowrap.WithCtx(context.Background(), zerowrap.New(zerowrap.Config{Level: "info", Format: "json", Output: logs}))) | 80 | ctx, cancel := context.WithCancel(zerowrap.WithCtx(context.Background(), zerowrap.New(zerowrap.Config{Level: "info", Format: "json", Output: logs}))) | ||
| 74 | cfg := config.Defaults() | 81 | cfg := config.Defaults() | ||
| 75 | cfg.Xwayland = ports.XwaylandConfig{Backend: ports.XwaylandBuiltin, Binary: "Xwayland"} | 82 | cfg.Xwayland = ports.XwaylandConfig{Backend: ports.XwaylandBuiltin, Binary: "Xwayland"} | ||
| 83 | + | if mutate != nil { | |||
| 84 | + | mutate(&cfg) | |||
| 85 | + | } | |||
| 76 | done := make(chan error, 1) | 86 | done := make(chan error, 1) | ||
| 77 | go func() { | 87 | go func() { | ||
| 78 | done <- Run(ctx, Options{ | 88 | done <- Run(ctx, Options{ | ||
| 79 | Backend: "headless", NoTerminal: true, Config: cfg, Script: script, | 89 | Backend: "headless", NoTerminal: true, Config: cfg, Script: script, | ||
| 80 | - | ScreenshotDir: shots, Sizes: [][2]int{{xwaylandW, xwaylandH}}, | 90 | + | ScreenshotDir: shots, Sizes: sizes, |
| 81 | }) | 91 | }) | ||
| 82 | }() | 92 | }() | ||
| 83 | t.Cleanup(func() { | 93 | t.Cleanup(func() { | ||
| @@ -392,3 +402,176 @@ func TestXwaylandOverrideShape(t *testing.T) { | |||||
| 392 | }) | 402 | }) | ||
| 393 | until(t, "only the toplevel in state", func() bool { return len(readState(e.statePath).Windows) == 1 }) | 403 | until(t, "only the toplevel in state", func() bool { return len(readState(e.statePath).Windows) == 1 }) | ||
| 394 | } | 404 | } | ||
| 405 | + | ||||
| 406 | + | // fullOutput is the share of the output screenshot at path that is green. | |||
| 407 | + | func fullOutput(path string) float64 { | |||
| 408 | + | return greenShare(path, image.Rect(0, 0, xwaylandW, xwaylandH)) | |||
| 409 | + | } | |||
| 410 | + | ||||
| 411 | + | // windowOf returns the state window with the given pid. | |||
| 412 | + | func windowOf(st statefile.State, pid int) (statefile.Window, bool) { | |||
| 413 | + | for _, w := range st.Windows { | |||
| 414 | + | if w.PID == pid { | |||
| 415 | + | return w, true | |||
| 416 | + | } | |||
| 417 | + | } | |||
| 418 | + | return statefile.Window{}, false | |||
| 419 | + | } | |||
| 420 | + | ||||
| 421 | + | // TestXwaylandFullscreen: a fullscreen request after the 1 s grace fills the | |||
| 422 | + | // output, the toggle bind leaves it, and a request made right at the map is | |||
| 423 | + | // ignored (the grace, current policy). | |||
| 424 | + | func TestXwaylandFullscreen(t *testing.T) { | |||
| 425 | + | // Gaps make a tile visibly smaller than the output. | |||
| 426 | + | e := startXwaylandWith(t, [][2]int{{xwaylandW, xwaylandH}}, func(c *ports.Config) { c.Layout.Gaps = 20 }) | |||
| 427 | + | shot := filepath.Join(e.shots, "latest.png") | |||
| 428 | + | corner := image.Rect(0, 0, 4, 4) | |||
| 429 | + | p := startProbe(t, e.bin, e.display, "-fullscreen", "-fullscreen-delay", "2s") | |||
| 430 | + | until(t, "tiled with a gap", func() bool { | |||
| 431 | + | return strings.Contains(p.out.String(), "mapped ") && fullOutput(shot) > 0.3 && greenShare(shot, corner) == 0 | |||
| 432 | + | }) | |||
| 433 | + | until(t, "probe fullscreen at output size", func() bool { | |||
| 434 | + | return strings.Contains(p.out.String(), "fullscreen 640x360") | |||
| 435 | + | }) | |||
| 436 | + | until(t, "output all green", func() bool { return fullOutput(shot) >= 0.99 }) | |||
| 437 | + | ||||
| 438 | + | // The toggle bind (cmd+shift+f) leaves fullscreen. | |||
| 439 | + | if _, err := io.WriteString(e.script, "key Super+Shift+f\n"); err != nil { | |||
| 440 | + | t.Fatal(err) | |||
| 441 | + | } | |||
| 442 | + | until(t, "probe left fullscreen", func() bool { return strings.Contains(p.out.String(), "fullscreen off ") }) | |||
| 443 | + | until(t, "gap back", func() bool { return greenShare(shot, corner) == 0 && fullOutput(shot) < 0.99 }) | |||
| 444 | + | } | |||
| 445 | + | ||||
| 446 | + | // TestXwaylandFullscreenOff: the client leaves fullscreen itself. | |||
| 447 | + | func TestXwaylandFullscreenOff(t *testing.T) { | |||
| 448 | + | e := startXwayland(t) | |||
| 449 | + | p := startProbe(t, e.bin, e.display, "-fullscreen", "-fullscreen-delay", "1500ms", "-fullscreen-off", "1s") | |||
| 450 | + | until(t, "fullscreen", func() bool { return strings.Contains(p.out.String(), "fullscreen 640x360") }) | |||
| 451 | + | until(t, "fullscreen off", func() bool { return strings.Contains(p.out.String(), "fullscreen off ") }) | |||
| 452 | + | until(t, "tiled", func() bool { | |||
| 453 | + | st := readState(e.statePath) | |||
| 454 | + | return len(st.Windows) == 1 && func() bool { _, ok := tileRect(st, st.Windows[0].ID); return ok }() | |||
| 455 | + | }) | |||
| 456 | + | } | |||
| 457 | + | ||||
| 458 | + | // TestXwaylandFullscreenGrace: a request made at once after the map stays | |||
| 459 | + | // tiled (fullscreenGrace in core). | |||
| 460 | + | func TestXwaylandFullscreenGrace(t *testing.T) { | |||
| 461 | + | e := startXwayland(t) | |||
| 462 | + | p := startProbe(t, e.bin, e.display, "-fullscreen") | |||
| 463 | + | until(t, "mapped", func() bool { return strings.Contains(p.out.String(), "mapped ") }) | |||
| 464 | + | until(t, "tiled window", func() bool { | |||
| 465 | + | st := readState(e.statePath) | |||
| 466 | + | return len(st.Windows) == 1 && func() bool { _, ok := tileRect(st, st.Windows[0].ID); return ok }() | |||
| 467 | + | }) | |||
| 468 | + | // Stay inside the grace, then check it is still not fullscreen. | |||
| 469 | + | time.Sleep(500 * time.Millisecond) | |||
| 470 | + | st := readState(e.statePath) | |||
| 471 | + | if _, ok := tileRect(st, st.Windows[0].ID); !ok { | |||
| 472 | + | t.Error("window went fullscreen inside the grace") | |||
| 473 | + | } | |||
| 474 | + | if strings.Contains(p.out.String(), "fullscreen ") { | |||
| 475 | + | t.Errorf("probe saw a fullscreen resize inside the grace: %q", p.out.String()) | |||
| 476 | + | } | |||
| 477 | + | } | |||
| 478 | + | ||||
| 479 | + | // TestXwaylandKeyboardGrab: while a fullscreen, focused X11 client holds the | |||
| 480 | + | // keyboard grab the close bind does not fire; after it leaves fullscreen the | |||
| 481 | + | // binds work again. | |||
| 482 | + | func TestXwaylandKeyboardGrab(t *testing.T) { | |||
| 483 | + | e := startXwayland(t) | |||
| 484 | + | p := startProbe(t, e.bin, e.display, "-fullscreen", "-fullscreen-delay", "1500ms", "-fullscreen-off", "2500ms", "-keyboard-grab") | |||
| 485 | + | until(t, "fullscreen", func() bool { return strings.Contains(p.out.String(), "fullscreen 640x360") }) | |||
| 486 | + | until(t, "grab", func() bool { return strings.Contains(p.out.String(), "grab") }) | |||
| 487 | + | until(t, "probe focus", func() bool { return strings.Contains(p.out.String(), "focus") }) | |||
| 488 | + | if _, err := io.WriteString(e.script, "key Super+q\n"); err != nil { | |||
| 489 | + | t.Fatal(err) | |||
| 490 | + | } | |||
| 491 | + | select { | |||
| 492 | + | case err := <-p.waited: | |||
| 493 | + | t.Fatalf("probe closed (%v) by Super+q despite the keyboard grab", err) | |||
| 494 | + | case <-time.After(2 * time.Second): | |||
| 495 | + | } | |||
| 496 | + | ||||
| 497 | + | // The probe leaves fullscreen itself; its grab stays, but the binds work again. | |||
| 498 | + | until(t, "fullscreen off", func() bool { return strings.Contains(p.out.String(), "fullscreen off ") }) | |||
| 499 | + | if _, err := io.WriteString(e.script, "key Super+q\n"); err != nil { | |||
| 500 | + | t.Fatal(err) | |||
| 501 | + | } | |||
| 502 | + | select { | |||
| 503 | + | case err := <-p.waited: | |||
| 504 | + | if err != nil { | |||
| 505 | + | t.Errorf("probe exited with %v, want 0", err) | |||
| 506 | + | } | |||
| 507 | + | case <-time.After(2 * time.Second): | |||
| 508 | + | t.Fatal("Super+q did not close the client after it left fullscreen") | |||
| 509 | + | } | |||
| 510 | + | } | |||
| 511 | + | ||||
| 512 | + | // TestXwaylandKeyboardGrabWindowed: a grab on a windowed client does not lock | |||
| 513 | + | // the binds. | |||
| 514 | + | func TestXwaylandKeyboardGrabWindowed(t *testing.T) { | |||
| 515 | + | e := startXwayland(t) | |||
| 516 | + | p := startProbe(t, e.bin, e.display, "-keyboard-grab") | |||
| 517 | + | until(t, "grab", func() bool { return strings.Contains(p.out.String(), "grab") }) | |||
| 518 | + | until(t, "probe focus", func() bool { return strings.Contains(p.out.String(), "focus") }) | |||
| 519 | + | if _, err := io.WriteString(e.script, "key Super+q\n"); err != nil { | |||
| 520 | + | t.Fatal(err) | |||
| 521 | + | } | |||
| 522 | + | select { | |||
| 523 | + | case err := <-p.waited: | |||
| 524 | + | if err != nil { | |||
| 525 | + | t.Errorf("probe exited with %v, want 0", err) | |||
| 526 | + | } | |||
| 527 | + | case <-time.After(2 * time.Second): | |||
| 528 | + | t.Fatal("Super+q did not close a windowed client that holds a keyboard grab") | |||
| 529 | + | } | |||
| 530 | + | } | |||
| 531 | + | ||||
| 532 | + | // TestXwaylandOutputHint: with two outputs a window created at the origin of | |||
| 533 | + | // the second one opens on it, and a fullscreen request fills that output. | |||
| 534 | + | func TestXwaylandOutputHint(t *testing.T) { | |||
| 535 | + | sizes := [][2]int{{xwaylandW, xwaylandH}, {xwaylandW, xwaylandH}} | |||
| 536 | + | e := startXwaylandWith(t, sizes, nil) | |||
| 537 | + | p := startProbe(t, e.bin, e.display, "-size", "640x360", "-at", "640,0", "-fullscreen", "-fullscreen-delay", "1500ms") | |||
| 538 | + | var w statefile.Window | |||
| 539 | + | until(t, "window on HEADLESS-2", func() bool { | |||
| 540 | + | var ok bool | |||
| 541 | + | w, ok = windowOf(readState(e.statePath), p.cmd.Process.Pid) | |||
| 542 | + | if ok && w.Output != "HEADLESS-2" { | |||
| 543 | + | t.Logf("window output = %s", w.Output) | |||
| 544 | + | } | |||
| 545 | + | return ok && w.Output == "HEADLESS-2" | |||
| 546 | + | }) | |||
| 547 | + | until(t, "probe fullscreen", func() bool { return strings.Contains(p.out.String(), "fullscreen 640x360") }) | |||
| 548 | + | until(t, "HEADLESS-2 all green", func() bool { | |||
| 549 | + | return fullOutput(filepath.Join(e.shots, "HEADLESS-2", "latest.png")) >= 0.99 | |||
| 550 | + | }) | |||
| 551 | + | if g := fullOutput(filepath.Join(e.shots, "HEADLESS-1", "latest.png")); g > 0.1 { | |||
| 552 | + | t.Errorf("HEADLESS-1 green share = %.2f, want empty", g) | |||
| 553 | + | } | |||
| 554 | + | } | |||
| 555 | + | ||||
| 556 | + | // TestXwaylandClassRule: [window-rule] matches the WM_CLASS of an X11 window | |||
| 557 | + | // the way it matches a Wayland app ID (steam_app_<id> from Proton). | |||
| 558 | + | func TestXwaylandClassRule(t *testing.T) { | |||
| 559 | + | yes := true | |||
| 560 | + | e := startXwaylandWith(t, [][2]int{{xwaylandW, xwaylandH}}, func(c *ports.Config) { | |||
| 561 | + | c.Rules = append(c.Rules, ports.WindowRule{Name: "games", AppID: regexp.MustCompile(`^steam_app_\d+$`), Floating: &yes}) | |||
| 562 | + | }) | |||
| 563 | + | startProbe(t, e.bin, e.display, "-class", "steam_app_413150") | |||
| 564 | + | until(t, "floating steam_app window", func() bool { | |||
| 565 | + | st := readState(e.statePath) | |||
| 566 | + | return len(st.Windows) == 1 && st.Windows[0].AppID == "steam_app_413150" && st.Windows[0].Floating | |||
| 567 | + | }) | |||
| 568 | + | startProbe(t, e.bin, e.display, "-class", "Other") | |||
| 569 | + | until(t, "other class tiled", func() bool { | |||
| 570 | + | for _, w := range readState(e.statePath).Windows { | |||
| 571 | + | if w.AppID == "Other" { | |||
| 572 | + | return !w.Floating | |||
| 573 | + | } | |||
| 574 | + | } | |||
| 575 | + | return false | |||
| 576 | + | }) | |||
| 577 | + | } | |||
M internal/core/rules_test.go +44 -0
| @@ -411,3 +411,47 @@ func TestRuleWidthWithFixedOverflow(t *testing.T) { | |||
| 411 | 411 | t.Fatalf("%+v", s.Windows) | |
| 412 | 412 | } | |
| 413 | 413 | } | |
| 414 | + | ||
| 415 | + | func TestMapAtOutputPlacesOnThatOutput(t *testing.T) { | |
| 416 | + | r := startMulti(t, nil, left, right) | |
| 417 | + | r.mapApp(t, 1, "term") | |
| 418 | + | // DP-2 starts at layout x=200: a game mapping at its rect goes there. | |
| 419 | + | r.client <- ports.WindowMapped{ID: 2, AppID: "game", HasAt: true, AtX: 200, AtY: 0} | |
| 420 | + | if w := stWindow(r.stateWith(t, 2), 2); w.Output != "DP-2" { | |
| 421 | + | t.Fatalf("not on DP-2: %+v", w) | |
| 422 | + | } | |
| 423 | + | } | |
| 424 | + | ||
| 425 | + | func TestMapAtOutputKeepsRuleMonitor(t *testing.T) { | |
| 426 | + | r := startMulti(t, func(c *ports.Config) { | |
| 427 | + | c.Rules = []ports.WindowRule{winRule("g", "game", func(r *ports.WindowRule) { r.Monitor = "DP-1" })} | |
| 428 | + | }, left, right) | |
| 429 | + | r.client <- ports.WindowMapped{ID: 2, AppID: "game", HasAt: true, AtX: 200, AtY: 0} | |
| 430 | + | if w := stWindow(r.stateWith(t, 2), 2); w.Output != "DP-1" { | |
| 431 | + | t.Fatalf("rule monitor lost to the hint: %+v", w) | |
| 432 | + | } | |
| 433 | + | } | |
| 434 | + | ||
| 435 | + | func TestMapAtOutputKeepsRuleWorkspace(t *testing.T) { | |
| 436 | + | r := startMulti(t, func(c *ports.Config) { | |
| 437 | + | c.Rules = []ports.WindowRule{winRule("g", "game", func(r *ports.WindowRule) { r.Workspace = "1" })} | |
| 438 | + | }, left, right) | |
| 439 | + | r.client <- ports.WindowMapped{ID: 2, AppID: "game", HasAt: true, AtX: 200, AtY: 0} | |
| 440 | + | if w := stWindow(r.stateWith(t, 2), 2); w.Output != "DP-1" { | |
| 441 | + | t.Fatalf("rule workspace lost to the hint: %+v", w) | |
| 442 | + | } | |
| 443 | + | } | |
| 444 | + | ||
| 445 | + | func TestRuleMatchesSteamAppClass(t *testing.T) { | |
| 446 | + | r := startMulti(t, func(c *ports.Config) { | |
| 447 | + | c.Rules = []ports.WindowRule{winRule("steam", `steam_app_\d+`, func(r *ports.WindowRule) { r.Floating = ruleOn() })} | |
| 448 | + | }, left) | |
| 449 | + | r.client <- ports.WindowMapped{ID: 1, AppID: "steam_app_892970", Positioned: true} | |
| 450 | + | if w := stWindow(r.stateWith(t, 1), 1); !w.Floating { | |
| 451 | + | t.Fatalf("steam_app rule did not match: %+v", w) | |
| 452 | + | } | |
| 453 | + | r.client <- ports.WindowMapped{ID: 2, AppID: "steam_app_x", Positioned: true} | |
| 454 | + | if w := stWindow(r.stateWith(t, 2), 2); w.Floating { | |
| 455 | + | t.Fatalf("non-numeric id matched: %+v", w) | |
| 456 | + | } | |
| 457 | + | } | |
| @@ -411,3 +411,47 @@ func TestRuleWidthWithFixedOverflow(t *testing.T) { | |||||
| 411 | t.Fatalf("%+v", s.Windows) | 411 | t.Fatalf("%+v", s.Windows) | ||
| 412 | } | 412 | } | ||
| 413 | } | 413 | } | ||
| 414 | + | ||||
| 415 | + | func TestMapAtOutputPlacesOnThatOutput(t *testing.T) { | |||
| 416 | + | r := startMulti(t, nil, left, right) | |||
| 417 | + | r.mapApp(t, 1, "term") | |||
| 418 | + | // DP-2 starts at layout x=200: a game mapping at its rect goes there. | |||
| 419 | + | r.client <- ports.WindowMapped{ID: 2, AppID: "game", HasAt: true, AtX: 200, AtY: 0} | |||
| 420 | + | if w := stWindow(r.stateWith(t, 2), 2); w.Output != "DP-2" { | |||
| 421 | + | t.Fatalf("not on DP-2: %+v", w) | |||
| 422 | + | } | |||
| 423 | + | } | |||
| 424 | + | ||||
| 425 | + | func TestMapAtOutputKeepsRuleMonitor(t *testing.T) { | |||
| 426 | + | r := startMulti(t, func(c *ports.Config) { | |||
| 427 | + | c.Rules = []ports.WindowRule{winRule("g", "game", func(r *ports.WindowRule) { r.Monitor = "DP-1" })} | |||
| 428 | + | }, left, right) | |||
| 429 | + | r.client <- ports.WindowMapped{ID: 2, AppID: "game", HasAt: true, AtX: 200, AtY: 0} | |||
| 430 | + | if w := stWindow(r.stateWith(t, 2), 2); w.Output != "DP-1" { | |||
| 431 | + | t.Fatalf("rule monitor lost to the hint: %+v", w) | |||
| 432 | + | } | |||
| 433 | + | } | |||
| 434 | + | ||||
| 435 | + | func TestMapAtOutputKeepsRuleWorkspace(t *testing.T) { | |||
| 436 | + | r := startMulti(t, func(c *ports.Config) { | |||
| 437 | + | c.Rules = []ports.WindowRule{winRule("g", "game", func(r *ports.WindowRule) { r.Workspace = "1" })} | |||
| 438 | + | }, left, right) | |||
| 439 | + | r.client <- ports.WindowMapped{ID: 2, AppID: "game", HasAt: true, AtX: 200, AtY: 0} | |||
| 440 | + | if w := stWindow(r.stateWith(t, 2), 2); w.Output != "DP-1" { | |||
| 441 | + | t.Fatalf("rule workspace lost to the hint: %+v", w) | |||
| 442 | + | } | |||
| 443 | + | } | |||
| 444 | + | ||||
| 445 | + | func TestRuleMatchesSteamAppClass(t *testing.T) { | |||
| 446 | + | r := startMulti(t, func(c *ports.Config) { | |||
| 447 | + | c.Rules = []ports.WindowRule{winRule("steam", `steam_app_\d+`, func(r *ports.WindowRule) { r.Floating = ruleOn() })} | |||
| 448 | + | }, left) | |||
| 449 | + | r.client <- ports.WindowMapped{ID: 1, AppID: "steam_app_892970", Positioned: true} | |||
| 450 | + | if w := stWindow(r.stateWith(t, 1), 1); !w.Floating { | |||
| 451 | + | t.Fatalf("steam_app rule did not match: %+v", w) | |||
| 452 | + | } | |||
| 453 | + | r.client <- ports.WindowMapped{ID: 2, AppID: "steam_app_x", Positioned: true} | |||
| 454 | + | if w := stWindow(r.stateWith(t, 2), 2); w.Floating { | |||
| 455 | + | t.Fatalf("non-numeric id matched: %+v", w) | |||
| 456 | + | } | |||
| 457 | + | } | |||
M internal/core/spawn_placement.go +9 -1
| @@ -139,7 +139,15 @@ func (p *spawnPlacement) place(c *Core, v ports.WindowMapped) { | |||
| 139 | 139 | } | |
| 140 | 140 | } | |
| 141 | 141 | if s, _ := c.screenOf(v.ID); s == nil { | |
| 142 | - | if eff, ok := c.ruleFor(v); ok { | |
| 142 | + | eff, ok := c.ruleFor(v) | |
| 143 | + | // A window mapping at an output's rect goes to that output unless a | |
| 144 | + | // rule names a monitor or workspace. | |
| 145 | + | if v.HasAt && !v.Remap && eff.monitor == "" && eff.workspace == "" && eff.number == 0 { | |
| 146 | + | if i := c.screenAt(float64(v.AtX), float64(v.AtY)); i >= 0 && i != c.focusScreen { | |
| 147 | + | eff.monitor, ok = c.screens[i].name(), true | |
| 148 | + | } | |
| 149 | + | } | |
| 150 | + | if ok { | |
| 143 | 151 | c.placeByRule(v, eff) | |
| 144 | 152 | return | |
| 145 | 153 | } | |
| @@ -139,7 +139,15 @@ func (p *spawnPlacement) place(c *Core, v ports.WindowMapped) { | |||||
| 139 | } | 139 | } | ||
| 140 | } | 140 | } | ||
| 141 | if s, _ := c.screenOf(v.ID); s == nil { | 141 | if s, _ := c.screenOf(v.ID); s == nil { | ||
| 142 | - | if eff, ok := c.ruleFor(v); ok { | 142 | + | eff, ok := c.ruleFor(v) |
| 143 | + | // A window mapping at an output's rect goes to that output unless a | |||
| 144 | + | // rule names a monitor or workspace. | |||
| 145 | + | if v.HasAt && !v.Remap && eff.monitor == "" && eff.workspace == "" && eff.number == 0 { | |||
| 146 | + | if i := c.screenAt(float64(v.AtX), float64(v.AtY)); i >= 0 && i != c.focusScreen { | |||
| 147 | + | eff.monitor, ok = c.screens[i].name(), true | |||
| 148 | + | } | |||
| 149 | + | } | |||
| 150 | + | if ok { | |||
| 143 | c.placeByRule(v, eff) | 151 | c.placeByRule(v, eff) | ||
| 144 | return | 152 | return | ||
| 145 | } | 153 | } | ||
M internal/ports/client_events.go +5 -0
| @@ -29,6 +29,11 @@ type WindowMapped struct { | |||
| 29 | 29 | // Modal is set for a dialog that blocks its parent (xdg_dialog_v1): | |
| 30 | 30 | // focusing the parent focuses the dialog. | |
| 31 | 31 | Modal bool | |
| 32 | + | // HasAt asks for the screen containing the layout point (AtX, AtY) when | |
| 33 | + | // no rule sets a monitor: the X11 host sets it for a window that maps at | |
| 34 | + | // exactly one output's rect. | |
| 35 | + | HasAt bool | |
| 36 | + | AtX, AtY int | |
| 32 | 37 | } | |
| 33 | 38 | ||
| 34 | 39 | // SlotEnv is the environment variable neferwl sets on processes it spawns | |
| @@ -29,6 +29,11 @@ type WindowMapped struct { | |||||
| 29 | // Modal is set for a dialog that blocks its parent (xdg_dialog_v1): | 29 | // Modal is set for a dialog that blocks its parent (xdg_dialog_v1): | ||
| 30 | // focusing the parent focuses the dialog. | 30 | // focusing the parent focuses the dialog. | ||
| 31 | Modal bool | 31 | Modal bool | ||
| 32 | + | // HasAt asks for the screen containing the layout point (AtX, AtY) when | |||
| 33 | + | // no rule sets a monitor: the X11 host sets it for a window that maps at | |||
| 34 | + | // exactly one output's rect. | |||
| 35 | + | HasAt bool | |||
| 36 | + | AtX, AtY int | |||
| 32 | } | 37 | } | ||
| 33 | 38 | ||||
| 34 | // SlotEnv is the environment variable neferwl sets on processes it spawns | 39 | // SlotEnv is the environment variable neferwl sets on processes it spawns | ||