summaryrefslogtreecommitdiffstats
path: root/tdescreensaver
diff options
context:
space:
mode:
Diffstat (limited to 'tdescreensaver')
-rw-r--r--tdescreensaver/CMakeLists.txt18
-rw-r--r--tdescreensaver/Makefile.am14
-rw-r--r--tdescreensaver/configure.in.bot17
-rw-r--r--tdescreensaver/configure.in.in86
-rw-r--r--tdescreensaver/kdesavers/CMakeLists.txt145
-rw-r--r--tdescreensaver/kdesavers/Euphoria.cpp1084
-rw-r--r--tdescreensaver/kdesavers/Euphoria.h158
-rw-r--r--tdescreensaver/kdesavers/EuphoriaTexture.h4138
-rw-r--r--tdescreensaver/kdesavers/Flux.cpp967
-rw-r--r--tdescreensaver/kdesavers/Flux.h150
-rw-r--r--tdescreensaver/kdesavers/KBanner.desktop243
-rw-r--r--tdescreensaver/kdesavers/KBlob.desktop227
-rw-r--r--tdescreensaver/kdesavers/KClock.desktop252
-rw-r--r--tdescreensaver/kdesavers/KEuphoria.desktop233
-rw-r--r--tdescreensaver/kdesavers/KFiresaver.desktop233
-rw-r--r--tdescreensaver/kdesavers/KFlux.desktop224
-rw-r--r--tdescreensaver/kdesavers/KFountain.desktop249
-rw-r--r--tdescreensaver/kdesavers/KGravity.desktop253
-rw-r--r--tdescreensaver/kdesavers/KLines-saver.desktop255
-rw-r--r--tdescreensaver/kdesavers/KLorenz.desktop244
-rw-r--r--tdescreensaver/kdesavers/KPendulum.desktop221
-rw-r--r--tdescreensaver/kdesavers/KPolygon.desktop251
-rw-r--r--tdescreensaver/kdesavers/KRotation.desktop221
-rw-r--r--tdescreensaver/kdesavers/KScience.desktop254
-rw-r--r--tdescreensaver/kdesavers/KSlideshow.desktop251
-rw-r--r--tdescreensaver/kdesavers/KSolarWinds.desktop243
-rw-r--r--tdescreensaver/kdesavers/KVm.desktop253
-rw-r--r--tdescreensaver/kdesavers/KWave.desktop251
-rw-r--r--tdescreensaver/kdesavers/Makefile.am109
-rw-r--r--tdescreensaver/kdesavers/README3
-rw-r--r--tdescreensaver/kdesavers/SolarWinds.cpp778
-rw-r--r--tdescreensaver/kdesavers/SolarWinds.h141
-rw-r--r--tdescreensaver/kdesavers/banner.cpp509
-rw-r--r--tdescreensaver/kdesavers/banner.h114
-rw-r--r--tdescreensaver/kdesavers/blob.cpp527
-rw-r--r--tdescreensaver/kdesavers/blob.h119
-rw-r--r--tdescreensaver/kdesavers/data/CMakeLists.txt17
-rw-r--r--tdescreensaver/kdesavers/data/Makefile.am11
-rw-r--r--tdescreensaver/kdesavers/data/kfs_debris.oggbin0 -> 28158 bytes
-rw-r--r--tdescreensaver/kdesavers/data/kfs_explode.oggbin0 -> 9864 bytes
-rw-r--r--tdescreensaver/kdesavers/data/kfs_kde.pngbin0 -> 9899 bytes
-rw-r--r--tdescreensaver/kdesavers/data/kfs_letters.desc84
-rw-r--r--tdescreensaver/kdesavers/data/kfs_letters1.pngbin0 -> 28082 bytes
-rw-r--r--tdescreensaver/kdesavers/data/kfs_letters2.pngbin0 -> 26885 bytes
-rw-r--r--tdescreensaver/kdesavers/data/kfs_particle.pngbin0 -> 890 bytes
-rw-r--r--tdescreensaver/kdesavers/data/kfs_particle_diastar.pngbin0 -> 1100 bytes
-rw-r--r--tdescreensaver/kdesavers/data/kfs_particle_flare.pngbin0 -> 6041 bytes
-rw-r--r--tdescreensaver/kdesavers/data/kfs_tux.pngbin0 -> 4382 bytes
-rw-r--r--tdescreensaver/kdesavers/firesaver.ChangeLog106
-rw-r--r--tdescreensaver/kdesavers/firesaver.cpp1151
-rw-r--r--tdescreensaver/kdesavers/firesaver.h170
-rw-r--r--tdescreensaver/kdesavers/firesaverparticle.cpp273
-rw-r--r--tdescreensaver/kdesavers/firesaverparticle.h105
-rw-r--r--tdescreensaver/kdesavers/firesaversetup.ui1855
-rw-r--r--tdescreensaver/kdesavers/firesaversetup.ui.h400
-rw-r--r--tdescreensaver/kdesavers/firesaverwriter.cpp247
-rw-r--r--tdescreensaver/kdesavers/firesaverwriter.h113
-rw-r--r--tdescreensaver/kdesavers/fountain.cpp461
-rw-r--r--tdescreensaver/kdesavers/fountain.h143
-rw-r--r--tdescreensaver/kdesavers/fountaincfg.ui192
-rw-r--r--tdescreensaver/kdesavers/gravity.cpp419
-rw-r--r--tdescreensaver/kdesavers/gravity.h144
-rw-r--r--tdescreensaver/kdesavers/gravitycfg.ui192
-rw-r--r--tdescreensaver/kdesavers/image.pngbin0 -> 86063 bytes
-rw-r--r--tdescreensaver/kdesavers/kclock.cpp588
-rw-r--r--tdescreensaver/kdesavers/kclock.h132
-rw-r--r--tdescreensaver/kdesavers/kscience.pngbin0 -> 10664 bytes
-rw-r--r--tdescreensaver/kdesavers/kvm.cpp384
-rw-r--r--tdescreensaver/kdesavers/kvm.h101
-rw-r--r--tdescreensaver/kdesavers/lines.cpp401
-rw-r--r--tdescreensaver/kdesavers/lines.h98
-rw-r--r--tdescreensaver/kdesavers/lorenz.cpp569
-rw-r--r--tdescreensaver/kdesavers/lorenz.h88
-rw-r--r--tdescreensaver/kdesavers/particle.pngbin0 -> 1957 bytes
-rw-r--r--tdescreensaver/kdesavers/pendulum.cpp881
-rw-r--r--tdescreensaver/kdesavers/pendulum.h391
-rw-r--r--tdescreensaver/kdesavers/pendulumcfg.ui566
-rw-r--r--tdescreensaver/kdesavers/polygon.cpp366
-rw-r--r--tdescreensaver/kdesavers/polygon.h81
-rw-r--r--tdescreensaver/kdesavers/rkodesolver.cpp252
-rw-r--r--tdescreensaver/kdesavers/rkodesolver.h187
-rw-r--r--tdescreensaver/kdesavers/rotation.cpp825
-rw-r--r--tdescreensaver/kdesavers/rotation.h328
-rw-r--r--tdescreensaver/kdesavers/rotationcfg.ui488
-rw-r--r--tdescreensaver/kdesavers/science.cpp1151
-rw-r--r--tdescreensaver/kdesavers/science.h151
-rw-r--r--tdescreensaver/kdesavers/slideshow.cpp1022
-rw-r--r--tdescreensaver/kdesavers/slideshow.h152
-rw-r--r--tdescreensaver/kdesavers/slideshowcfg.ui176
-rw-r--r--tdescreensaver/kdesavers/sspreviewarea.cpp21
-rw-r--r--tdescreensaver/kdesavers/sspreviewarea.h58
-rw-r--r--tdescreensaver/kdesavers/vec3.cpp105
-rw-r--r--tdescreensaver/kdesavers/vec3.h214
-rw-r--r--tdescreensaver/kdesavers/vm.c264
-rw-r--r--tdescreensaver/kdesavers/vm.h52
-rw-r--r--tdescreensaver/kdesavers/vm.xbm191
-rw-r--r--tdescreensaver/kdesavers/vm.xpm493
-rw-r--r--tdescreensaver/kdesavers/vm_random.c379
-rw-r--r--tdescreensaver/kdesavers/vm_random.h31
-rw-r--r--tdescreensaver/kdesavers/wave.cpp324
-rw-r--r--tdescreensaver/kdesavers/wave.h100
-rw-r--r--tdescreensaver/kdesavers/wavecfg.ui191
-rw-r--r--tdescreensaver/krootbacking/CMakeLists.txt17
-rw-r--r--tdescreensaver/krootbacking/Makefile.am8
-rw-r--r--tdescreensaver/krootbacking/xscreensaver-getimage9
-rw-r--r--tdescreensaver/krootbacking/xscreensaver-getimage-file3
-rw-r--r--tdescreensaver/kxsconfig/CMakeLists.txt66
-rw-r--r--tdescreensaver/kxsconfig/Makefile.am56
-rw-r--r--tdescreensaver/kxsconfig/README17
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/abstractile.desktop202
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/anemone.desktop229
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/anemotaxis.desktop207
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/ant.desktop248
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/antinspect.desktop223
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/antmaze.desktop223
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/antspotlight.desktop229
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/apollonian.desktop228
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/apple2.desktop203
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/atlantis.desktop221
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/attraction.desktop251
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/atunnel.desktop217
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/barcode.desktop234
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/blaster.desktop224
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/blinkbox.desktop225
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/blitspin.desktop218
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/blocktube.desktop230
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/boing.desktop207
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/bouboule.desktop223
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/bouncingcow.desktop237
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/boxed.desktop236
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/boxfit.desktop213
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/braid.desktop237
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/bsod.desktop204
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/bubble3d.desktop249
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/bubbles.desktop249
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/bumps.desktop238
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/cage.desktop249
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/carousel.desktop228
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/ccurve.desktop242
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/celtic.desktop227
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/circuit.desktop240
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/cloudlife.desktop232
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/compass.desktop253
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/coral.desktop246
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/crackberg.desktop205
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/critical.desktop242
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/crystal.desktop251
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/cube21.desktop225
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/cubenetic.desktop226
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/cubestorm.desktop230
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/cubicgrid.desktop25
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/cwaves.desktop204
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/cynosure.desktop221
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/dangerball.desktop235
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/decayscreen.desktop236
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/deco.desktop217
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/deluxe.desktop226
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/demon.desktop235
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/discrete.desktop240
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/distort.desktop240
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/drift.desktop240
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/endgame.desktop243
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/engine.desktop246
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/epicycle.desktop232
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/eruption.desktop235
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/euler2d.desktop218
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/extrusion.desktop233
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/fadeplot.desktop237
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/fiberlamp.desktop224
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/fireworkx.desktop224
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/flag.desktop252
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/flame.desktop252
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/flipflop.desktop219
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/flipscreen3d.desktop231
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/fliptext.desktop225
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/flow.desktop248
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/fluidballs.desktop233
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/flurry.desktop224
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/flyingtoasters.desktop238
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/fontglide.desktop226
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/forest.desktop253
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/fuzzyflakes.desktop220
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/galaxy.desktop250
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/gears.desktop248
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/gflux.desktop219
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/glblur.desktop224
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/glcells.desktop207
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/gleidescope.desktop226
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/glforestfire.desktop235
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/glhanoi.desktop216
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/glknots.desktop224
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/glmatrix.desktop228
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/glplanet.desktop245
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/glschool.desktop205
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/glslideshow.desktop232
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/glsnake.desktop234
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/gltext.desktop234
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/goop.desktop217
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/grav.desktop249
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/greynetic.desktop227
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/halftone.desktop234
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/halo.desktop214
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/helix.desktop229
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/hopalong.desktop216
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/hyperball.desktop233
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/hypercube.desktop245
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/hypertorus.desktop229
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/hypnowheel.desktop25
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/ifs.desktop246
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/imsmap.desktop251
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/interaggregate.desktop220
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/interference.desktop249
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/intermomentary.desktop217
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/jigglypuff.desktop215
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/jigsaw.desktop235
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/juggle.desktop233
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/juggler3d.desktop223
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/julia.desktop211
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/kaleidescope.desktop247
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/klein.desktop209
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/kumppa.desktop206
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/lament.desktop231
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/laser.desktop226
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/lavalite.desktop218
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/lcdscrub.desktop23
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/lightning.desktop250
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/lisa.desktop210
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/lissie.desktop216
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/lmorph.desktop247
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/lockward.desktop203
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/loop.desktop240
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/m6502.desktop194
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/maze.desktop238
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/memscroller.desktop217
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/menger.desktop209
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/metaballs.desktop228
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/mirrorblob.desktop229
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/mismunch.desktop212
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/moebius.desktop225
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/moebiusgears.desktop208
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/moire.desktop218
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/moire2.desktop221
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/molecule.desktop243
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/morph3d.desktop223
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/mountain.desktop247
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/munch.desktop220
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/nerverot.desktop219
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/noof.desktop205
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/noseguy.desktop232
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/pacman.desktop206
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/pedal.desktop218
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/penetrate.desktop235
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/penrose.desktop209
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/petri.desktop212
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/phosphor.desktop246
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/photopile.desktop25
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/piecewise.desktop225
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/pinion.desktop210
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/pipes.desktop251
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/pixmaps.desktop233
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/polyhedra.desktop226
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/polyominoes.desktop223
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/polytopes.desktop237
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/pong.desktop208
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/popsquares.desktop226
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/providence.desktop221
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/pulsar.desktop229
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/pyro.desktop232
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/qix.desktop204
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/queens.desktop240
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/rd-bomb.desktop232
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/ripples.desktop237
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/rocks.desktop244
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/rorschach.desktop207
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/rotor.desktop215
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/rotzoomer.desktop216
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/rubik.desktop248
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/sballs.desktop223
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/shadebobs.desktop218
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/sierpinski.desktop208
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/sierpinski3d.desktop220
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/skytentacles.desktop25
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/slidescreen.desktop241
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/slip.desktop234
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/sonar.desktop221
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/speedmine.desktop224
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/sphere.desktop244
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/spheremonics.desktop226
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/spiral.desktop237
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/spotlight.desktop236
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/sproingies.desktop217
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/squiral.desktop211
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/stairs.desktop251
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/starfish.desktop245
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/starwars.desktop232
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/stonerview.desktop218
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/strange.desktop250
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/substrate.desktop224
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/superquadrics.desktop234
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/swirl.desktop244
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/t3d.desktop250
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/tangram.desktop204
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/thornbird.desktop224
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/timetunnel.desktop228
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/topblock.desktop204
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/triangle.desktop250
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/truchet.desktop207
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/twang.desktop217
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/vermiculate.desktop227
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/vidwhacker.desktop223
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/vines.desktop241
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/voronoi.desktop198
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/wander.desktop232
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/webcollage.desktop235
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/whirlwindwarp.desktop225
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/whirlygig.desktop216
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/worm.desktop250
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/wormhole.desktop235
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/xanalogtv.desktop213
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/xflame.desktop239
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/xjack.desktop213
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/xlyap.desktop209
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/xmatrix.desktop236
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/xrayswarm.desktop225
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/xscreensaver.template24
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/xspirograph.desktop221
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/xsublim.desktop220
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/xteevee.desktop216
-rw-r--r--tdescreensaver/kxsconfig/ScreenSavers/zoom.desktop232
-rw-r--r--tdescreensaver/kxsconfig/XScreenSaver_ad.h439
-rw-r--r--tdescreensaver/kxsconfig/configure.in.bot9
-rw-r--r--tdescreensaver/kxsconfig/configure.in.in70
-rw-r--r--tdescreensaver/kxsconfig/hacks.pot4319
-rw-r--r--tdescreensaver/kxsconfig/kxsconfig.cpp388
-rw-r--r--tdescreensaver/kxsconfig/kxsconfig.h60
-rw-r--r--tdescreensaver/kxsconfig/kxscontrol.cpp321
-rw-r--r--tdescreensaver/kxsconfig/kxscontrol.h166
-rw-r--r--tdescreensaver/kxsconfig/kxsitem.cpp251
-rw-r--r--tdescreensaver/kxsconfig/kxsitem.h132
-rw-r--r--tdescreensaver/kxsconfig/kxsrun.cpp195
-rw-r--r--tdescreensaver/kxsconfig/kxsxml.cpp157
-rw-r--r--tdescreensaver/kxsconfig/kxsxml.h69
-rwxr-xr-xtdescreensaver/kxsconfig/update_hacks.sh18
-rw-r--r--tdescreensaver/tdepartsaver/CMakeLists.txt33
-rw-r--r--tdescreensaver/tdepartsaver/Makefile.am14
-rw-r--r--tdescreensaver/tdepartsaver/configwidget.ui299
-rw-r--r--tdescreensaver/tdepartsaver/tdepartsaver.cpp387
-rw-r--r--tdescreensaver/tdepartsaver/tdepartsaver.desktop247
-rw-r--r--tdescreensaver/tdepartsaver/tdepartsaver.h103
-rw-r--r--tdescreensaver/xsavers/CMakeLists.txt52
-rw-r--r--tdescreensaver/xsavers/KSpace.desktop250
-rw-r--r--tdescreensaver/xsavers/KSwarm.desktop245
-rw-r--r--tdescreensaver/xsavers/Makefile.am36
-rw-r--r--tdescreensaver/xsavers/demowin.cpp11
-rw-r--r--tdescreensaver/xsavers/demowin.h45
-rw-r--r--tdescreensaver/xsavers/helpers.cpp38
-rw-r--r--tdescreensaver/xsavers/helpers.h23
-rw-r--r--tdescreensaver/xsavers/main.cpp108
-rw-r--r--tdescreensaver/xsavers/mode.h692
-rw-r--r--tdescreensaver/xsavers/saver.cpp31
-rw-r--r--tdescreensaver/xsavers/saver.h29
-rw-r--r--tdescreensaver/xsavers/space.cpp735
-rw-r--r--tdescreensaver/xsavers/space.h64
-rw-r--r--tdescreensaver/xsavers/swarm.cpp419
-rw-r--r--tdescreensaver/xsavers/swarm.h67
-rw-r--r--tdescreensaver/xsavers/xlock.cpp86
-rw-r--r--tdescreensaver/xsavers/xlock.h229
-rw-r--r--tdescreensaver/xsavers/xlockmore.h261
-rw-r--r--tdescreensaver/xsavers/xs_colors.c693
-rw-r--r--tdescreensaver/xsavers/xs_colors.h140
-rw-r--r--tdescreensaver/xsavers/xs_hsv.c81
-rw-r--r--tdescreensaver/xsavers/xs_hsv.h27
-rw-r--r--tdescreensaver/xsavers/xs_utils.h22
-rw-r--r--tdescreensaver/xsavers/xs_visual.c473
-rw-r--r--tdescreensaver/xsavers/xs_visual.h27
-rw-r--r--tdescreensaver/xsavers/xs_yarandom.h52
376 files changed, 93012 insertions, 0 deletions
diff --git a/tdescreensaver/CMakeLists.txt b/tdescreensaver/CMakeLists.txt
new file mode 100644
index 00000000..a600db48
--- /dev/null
+++ b/tdescreensaver/CMakeLists.txt
@@ -0,0 +1,18 @@
+#################################################
+#
+# (C) 2011 Golubev Alexander
+# fatzer2 (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+add_subdirectory( kdesavers )
+add_subdirectory( tdepartsaver)
+add_subdirectory( krootbacking )
+if( WITH_XSCREENSAVER )
+ add_subdirectory( kxsconfig )
+ add_subdirectory( xsavers )
+endif( WITH_XSCREENSAVER )
diff --git a/tdescreensaver/Makefile.am b/tdescreensaver/Makefile.am
new file mode 100644
index 00000000..1aec0efb
--- /dev/null
+++ b/tdescreensaver/Makefile.am
@@ -0,0 +1,14 @@
+if include_XSCREENSAVER
+KXSCONFIG_SUBDIR = kxsconfig
+endif
+
+if COMPILE_X11_KSAVERS
+XSAVERS_SUBDIR = xsavers
+endif
+
+SUBDIRS = kdesavers tdepartsaver krootbacking $(KXSCONFIG_SUBDIR) $(XSAVERS_SUBDIR)
+
+messages:
+ $(EXTRACTRC) kdesavers/*.ui > rc.cpp
+ $(XGETTEXT) kdesavers/*.cpp kdesavers/*.h xsavers/*.cpp xsavers/*.h rc.cpp -o $(podir)/klock.pot
+ rm -f rc.cpp
diff --git a/tdescreensaver/configure.in.bot b/tdescreensaver/configure.in.bot
new file mode 100644
index 00000000..8d4e595b
--- /dev/null
+++ b/tdescreensaver/configure.in.bot
@@ -0,0 +1,17 @@
+if test x$have_gl = xno; then
+ echo ""
+ echo "You are missing"
+ if test "$ac_cv_header_GL_gl_h" = "no"; then
+ echo " - OpenGL (mesa)"
+ fi
+ if test "$ac_cv_header_GL_glu_h" = "no"; then
+ echo " - GLU"
+ fi
+ if test "$ac_cv_header_GL_glut_h" = "no"; then
+ echo " - GLUT"
+ fi
+ echo "OpenGL support has been disabled."
+ echo "Some of the screensavers wont be compiled."
+ echo ""
+ all_tests=bad
+fi
diff --git a/tdescreensaver/configure.in.in b/tdescreensaver/configure.in.in
new file mode 100644
index 00000000..08629422
--- /dev/null
+++ b/tdescreensaver/configure.in.in
@@ -0,0 +1,86 @@
+
+AC_MSG_CHECKING(for Qt with OpenGL support)
+AC_CACHE_VAL(ac_cv_kde_qt_has_opengl,
+[
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+
+ save_CXXFLAGS="$CXXFLAGS"
+ save_LIBS="$LIBS"
+ save_LDFLAGS="$LDFLAGS"
+
+ CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
+ LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
+ LIBS="$LIBS $LIBQT $KDE_MT_LIBS"
+
+ AC_TRY_LINK([
+ #include <tqgl.h>
+ ],
+ [
+ (void)new TQGLWidget((TQWidget*)0, "qgl");
+ ],
+ ac_cv_kde_qt_has_opengl=yes,
+ ac_cv_kde_qt_has_opengl=no)
+
+ CXXFLAGS="$save_CXXFLAGS"
+ LIBS="$save_LIBS"
+ LDFLAGS="$save_LDFLAGS"
+ AC_LANG_RESTORE
+])
+AC_MSG_RESULT($ac_cv_kde_qt_has_opengl)
+
+AC_HAVE_GL( have_gl=yes, have_gl=no )
+
+AM_CONDITIONAL(COMPILE_GL_XSAVERS, test x$have_gl = xyes)
+AM_CONDITIONAL(COMPILE_GL_KSAVERS, test x$have_gl = xyes && test x$ac_cv_kde_qt_has_opengl = xyes)
+AM_CONDITIONAL(COMPILE_X11_KSAVERS, test "x$ac_x_includes" != x && test "x$ac_x_libraries" != x)
+AM_CONDITIONAL(COMPILE_ARTS_KSAVERS, test x$build_arts = xyes)
+AM_CONDITIONAL(COMPILE_ARTS_GL_KSAVERS, test x$have_gl = xyes && test x$ac_cv_kde_qt_has_opengl = xyes && test x$build_arts = xyes)
+
+AC_ARG_WITH(libart,
+ [AC_HELP_STRING(--with-libart,
+ [enable support for libart @<:@default=check@:>@])],
+ [], with_libart=check)
+
+LIBART=
+if test "x$with_libart" != xno; then
+ KDE_FIND_PATH(libart2-config, LIBART_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [
+ AC_MSG_WARN([Could not find libart anywhere, check http://www.levien.com/libart/])
+ ])
+
+ if test -n "$LIBART_CONFIG"; then
+ vers=`$LIBART_CONFIG --version 2>/dev/null | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
+ if test -n "$vers" && test "$vers" -ge 2003008; then
+ LIBART_LIBS="`$LIBART_CONFIG --libs`"
+ LIBART_RPATH=
+ for args in $LIBART_LIBS; do
+ case $args in
+ -L*)
+ LIBART_RPATH="$LIBART_RPATH $args"
+ ;;
+ esac
+ done
+ LIBART_RPATH=`echo $LIBART_RPATH | sed -e "s/-L/-R/g"`
+ LIBART_CFLAGS="`$LIBART_CONFIG --cflags`"
+ LIBART=yes
+
+ AC_DEFINE_UNQUOTED(HAVE_LIBART, 1, [Defines if your system has the libart library])
+ else
+ AC_MSG_WARN([You need at least libart 2.3.8])
+ fi
+ fi
+
+ if test "x$with_libart" != xcheck && test -z "$LIBART"; then
+ AC_MSG_ERROR([--with-libart was given, but test for libart failed])
+ fi
+fi
+
+AC_SUBST(LIBART_LIBS)
+AC_SUBST(LIBART_CFLAGS)
+AC_SUBST(LIBART_RPATH)
+AM_CONDITIONAL(COMPILE_LIBART_KSAVERS, test -n "$LIBART")
+
+
+AC_CHECK_FUNCS(gettimeofday)
+
+AC_HAVE_DPMS()
diff --git a/tdescreensaver/kdesavers/CMakeLists.txt b/tdescreensaver/kdesavers/CMakeLists.txt
new file mode 100644
index 00000000..f2e3f027
--- /dev/null
+++ b/tdescreensaver/kdesavers/CMakeLists.txt
@@ -0,0 +1,145 @@
+#################################################
+#
+# (C) 2011 Golubev Alexander
+# fatzer2 (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+ ${TDE_LIB_DIR}
+)
+
+# ##### The "normal" screensavers ###############
+
+set( kbanner_SOURCES banner.cpp )
+set( kbanner_DESKTOP KBanner.desktop )
+set( kpolygon_SOURCES polygon.cpp )
+set( kpolygon_DESKTOP KPolygon.desktop )
+set( klines_SOURCES lines.cpp )
+set( klines_DESKTOP KLines-saver.desktop )
+set( klorenz_SOURCES lorenz.cpp )
+set( klorenz_DESKTOP KLorenz.desktop )
+set( kslideshow_SOURCES slideshow.cpp slideshowcfg.ui )
+set( kslideshow_DESKTOP KSlideshow.desktop )
+set( kblob_SOURCES blob.cpp )
+set( kblob_DESKTOP KBlob.desktop )
+set( kvm_SOURCES kvm.cpp vm.c vm_random.c )
+set( kvm_DESKTOP KVm.desktop )
+
+set( kslideshow_LINK kio-shared )
+
+set( NORMAL_SCREENSAVERS
+ kbanner kpolygon kslideshow klines klorenz kblob kvm )
+
+##### X11 screensavers ##########################
+
+set( kscience_SOURCES science.cpp )
+set( kscience_DESKTOP KScience.desktop )
+
+set( X11_SCREENSAVERS kscience)
+
+##### The GL screensavers #######################
+
+set( kfountain_SOURCES fountain.cpp fountaincfg.ui )
+set( kfountain_DESKTOP KFountain.desktop )
+set( kwave_SOURCES wave.cpp wavecfg.ui )
+set( kwave_DESKTOP KWave.desktop )
+set( kgravity_SOURCES gravity.cpp gravitycfg.ui )
+set( kgravity_DESKTOP KGravity.desktop )
+set( kflux_SOURCES Flux.cpp )
+set( kflux_DESKTOP KFlux.desktop )
+set( keuphoria_SOURCES Euphoria.cpp )
+set( keuphoria_DESKTOP KEuphoria.desktop )
+set( ksolarwinds_SOURCES SolarWinds.cpp )
+set( ksolarwinds_DESKTOP KSolarWinds.desktop )
+set( krotation_SOURCES rotation.cpp rotationcfg.ui sspreviewarea.cpp
+ rkodesolver.cpp vec3.cpp )
+set( krotation_DESKTOP KRotation.desktop )
+set( kpendulum_SOURCES pendulum.cpp pendulumcfg.ui sspreviewarea.cpp
+ rkodesolver.cpp )
+set( kpendulum_DESKTOP KPendulum.desktop )
+set( OPENGL_SCREENSAVERS kfountain kwave kgravity kflux keuphoria ksolarwinds
+ krotation kpendulum )
+
+##### The GL-Arts screensavers ##################
+
+set( kfiresaver_SOURCES firesaversetup.ui firesaverparticle.cpp
+ firesaverwriter.cpp firesaver.cpp )
+set( kfiresaver_DESKTOP KFiresaver.desktop )
+set( kfiresaver_LINK artskde-shared )
+set( GL_ARTS_SCREENSAVERS kfiresaver )
+
+##### The LIBART screensavers ###################
+
+set( kclock_SOURCES kclock.cpp )
+set( kclock_DESKTOP KClock.desktop )
+
+set( LIBART_SCREENSAVERS kclock )
+
+##### LIBART conditions #########################
+
+if( WITH_LIBART )
+ list( APPEND SCREENSAVERS ${LIBART_SCREENSAVERS} )
+
+ include_directories( ${LIBART_INCLUDE_DIRS} )
+ link_directories( ${LIBART_LIBRARY_DIRS} )
+ foreach( saver ${LIBART_SCREENSAVERS} )
+ list ( APPEND ${saver}_LINK ${LIBART_LIBRARIES} )
+ endforeach( saver ${LIBART_SCREENSAVERS} )
+endif( WITH_LIBART )
+
+##### GL conditions #############################
+
+if( WITH_OPENGL )
+ if( WITH_ARTS )
+ list( APPEND OPENGL_SCREENSAVERS ${GL_ARTS_SCREENSAVERS} )
+ endif( WITH_ARTS )
+
+ list( APPEND SCREENSAVERS ${OPENGL_SCREENSAVERS} )
+
+ include_directories( ${OPENGL_INCLUDE_DIRS} )
+ link_directories( ${OPENGL_LIBRARY_DIRS} )
+ foreach( saver ${OPENGL_SCREENSAVERS} )
+ list ( APPEND ${saver}_LINK ${OPENGL_LIBRARIES} )
+ endforeach( saver ${OPENGL_SCREENSAVERS} )
+
+endif( WITH_OPENGL )
+
+##### add normal screensavers ###################
+
+# FIXME: check for X includes/libraries
+# this screensavers will work only in X
+list( APPEND SCREENSAVERS ${X11_SCREENSAVERS} )
+list( APPEND SCREENSAVERS ${NORMAL_SCREENSAVERS} )
+
+##### create install/compile rules ##############
+foreach( saver ${SCREENSAVERS} )
+ tde_add_executable( ${saver}.kss AUTOMOC
+ SOURCES ${${saver}_SOURCES}
+ LINK tdescreensaver-shared tdeui-shared ${${saver}_LINK}
+ DESTINATION ${BIN_INSTALL_DIR}
+ )
+ install( FILES ${${saver}_DESKTOP}
+ DESTINATION ${APPS_INSTALL_DIR}/System/ScreenSavers )
+endforeach( saver ${SCREENSAVERS} )
+
+##### install various data ######################
+
+install( FILES image.png kscience.png particle.png
+ DESTINATION ${DATA_INSTALL_DIR}/tdescreensaver )
+
+# Actually the only screensaver tha uses this data is kfiresaver
+add_subdirectory( data )
diff --git a/tdescreensaver/kdesavers/Euphoria.cpp b/tdescreensaver/kdesavers/Euphoria.cpp
new file mode 100644
index 00000000..304aaeee
--- /dev/null
+++ b/tdescreensaver/kdesavers/Euphoria.cpp
@@ -0,0 +1,1084 @@
+//============================================================================
+//
+// Terence Welsh Screensaver - Euphoria
+// http://www.reallyslick.com/
+//
+// Ported to KDE by Karl Robillard
+//
+/*
+ * Copyright (C) 2002 Terence M. Welsh
+ *
+ * Euphoria is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Euphoria is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+//============================================================================
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <time.h>
+#include <tqtimer.h>
+#include "Euphoria.h"
+#include "Euphoria.moc"
+#include "EuphoriaTexture.h"
+
+
+#define NUMCONSTS 9
+#define PIx2 6.28318530718f
+
+
+//----------------------------------------------------------------------------
+
+
+#include <sys/time.h>
+#include <unistd.h>
+
+
+// Returns the system time, in seconds.
+double timeGetTime()
+{
+ struct timeval tp;
+ gettimeofday( &tp, 0 );
+ return (double)tp.tv_sec + (double)tp.tv_usec / 1000000;
+}
+
+
+//----------------------------------------------------------------------------
+
+
+class rsVec
+{
+public:
+
+ float v[3];
+
+ rsVec() {}
+ rsVec(float xx, float yy, float zz);
+
+ void set(float xx, float yy, float zz);
+ float normalize();
+ float dot(rsVec);
+ void cross(rsVec, rsVec);
+
+ float & operator [] (int i) {return v[i];}
+ const float & operator [] (int i) const {return v[i];}
+ rsVec & operator = (const rsVec &vec)
+ {v[0]=vec[0];v[1]=vec[1];v[2]=vec[2];return *this;};
+ rsVec operator + (const rsVec &vec)
+ {return(rsVec(v[0]+vec[0], v[1]+vec[1], v[2]+vec[2]));};
+ rsVec operator - (const rsVec &vec)
+ {return(rsVec(v[0]-vec[0], v[1]-vec[1], v[2]-vec[2]));};
+ rsVec operator * (const float &mul)
+ {return(rsVec(v[0]*mul, v[1]*mul, v[2]*mul));};
+ rsVec operator / (const float &div)
+ {float rec = 1.0f/div; return(rsVec(v[0]*rec, v[1]*rec, v[2]*rec));};
+ rsVec & operator += (const rsVec &vec)
+ {v[0]+=vec[0];v[1]+=vec[1];v[2]+=vec[2];return *this;};
+ rsVec & operator -= (const rsVec &vec)
+ {v[0]-=vec[0];v[1]-=vec[1];v[2]-=vec[2];return *this;};
+ rsVec & operator *= (const rsVec &vec)
+ {v[0]*=vec[0];v[1]*=vec[1];v[2]*=vec[2];return *this;};
+ rsVec & operator *= (const float &mul)
+ {v[0]*=mul;v[1]*=mul;v[2]*=mul;return *this;};
+};
+
+
+rsVec::rsVec(float xx, float yy, float zz){
+ v[0] = xx;
+ v[1] = yy;
+ v[2] = zz;
+}
+
+
+void rsVec::set(float xx, float yy, float zz){
+ v[0] = xx;
+ v[1] = yy;
+ v[2] = zz;
+}
+
+
+float rsVec::normalize(){
+ float length = float(sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]));
+ if(length == 0.0f){
+ v[1] = 1.0f;
+ return(0.0f);
+ }
+ float reciprocal = 1.0f / length;
+ v[0] *= reciprocal;
+ v[1] *= reciprocal;
+ v[2] *= reciprocal;
+ // Really freakin' stupid compiler bug fix for VC++ 5.0
+ /*v[0] /= length;
+ v[1] /= length;
+ v[2] /= length;*/
+ return(length);
+}
+
+
+float rsVec::dot(rsVec vec1){
+ return(v[0] * vec1[0] + v[1] * vec1[1] + v[2] * vec1[2]);
+}
+
+
+void rsVec::cross(rsVec vec1, rsVec vec2){
+ v[0] = vec1[1] * vec2[2] - vec2[1] * vec1[2];
+ v[1] = vec1[2] * vec2[0] - vec2[2] * vec1[0];
+ v[2] = vec1[0] * vec2[1] - vec2[0] * vec1[1];
+}
+
+
+//----------------------------------------------------------------------------
+
+
+void hsl2rgb(float h, float s, float l, float &r, float &g, float &b)
+{
+ // hue influence
+ if(h < 0.166667){ // full red, some green
+ r = 1.0;
+ g = h * 6.0f;
+ b = 0.0;
+ }
+ else {
+ if(h < 0.5){ // full green
+ g = 1.0;
+ if(h < 0.333333){ // some red
+ r = 1.0f - ((h - 0.166667f) * 6.0f);
+ b = 0.0;
+ }
+ else{ // some blue
+ b = (h - 0.333333f) * 6.0f;
+ r = 0.0;
+ }
+ }
+ else{
+ if(h < 0.833333){ // full blue
+ b = 1.0;
+ if(h < 0.666667){ // some green
+ g = 1.0f - ((h - 0.5f) * 6.0f);
+ r = 0.0;
+ }
+ else{ // some red
+ r = (h - 0.666667f) * 6.0f;
+ g = 0.0;
+ }
+ }
+ else{ // full red, some blue
+ r = 1.0;
+ b = 1.0f - ((h - 0.833333f) * 6.0f);
+ g = 0.0;
+ }
+ }
+ }
+
+ // saturation influence
+ r = 1.0f - (s * (1.0f - r));
+ g = 1.0f - (s * (1.0f - g));
+ b = 1.0f - (s * (1.0f - b));
+
+ // luminosity influence
+ r *= l;
+ g *= l;
+ b *= l;
+}
+
+
+// Useful random number macros
+// Don't forget to initialize with srand()
+inline int myRandi(int x){
+ return((rand() * x) / RAND_MAX);
+}
+inline float myRandf(float x){
+ return(float(rand() * x) / float(RAND_MAX));
+}
+
+
+//----------------------------------------------------------------------------
+
+
+// Context pointer to allow many instances.
+static EuphoriaWidget* _ec = 0;
+
+
+class wisp
+{
+public:
+
+ wisp();
+ ~wisp();
+ void update();
+ void draw();
+ void drawAsBackground();
+
+
+ int density;
+ float*** vertices;
+ float c[NUMCONSTS]; // constants
+ float cr[NUMCONSTS]; // constants' radial position
+ float cv[NUMCONSTS]; // constants' change velocities
+ float hsl[3];
+ float rgb[3];
+ float hueSpeed;
+ float saturationSpeed;
+};
+
+
+wisp::wisp()
+{
+ int i, j;
+ float recHalfDens = 1.0f / (float(_ec->dDensity) * 0.5f);
+
+ density = _ec->dDensity;
+ vertices = new float**[density+1];
+ for(i=0; i<=density; i++)
+ {
+ vertices[i] = new float*[density+1];
+ for(j=0; j<=density; j++)
+ {
+ vertices[i][j] = new float[7];
+ vertices[i][j][3] = float(i) * recHalfDens - 1.0f; // x position on grid
+ vertices[i][j][4] = float(j) * recHalfDens - 1.0f; // y position on grid
+ // distance squared from the center
+ vertices[i][j][5] = vertices[i][j][3] * vertices[i][j][3]
+ + vertices[i][j][4] * vertices[i][j][4];
+ vertices[i][j][6] = 0.0f; // intensity
+ }
+ }
+
+ // initialize constants
+ for(i=0; i<NUMCONSTS; i++)
+ {
+ c[i] = myRandf(2.0f) - 1.0f;
+ cr[i] = myRandf(PIx2);
+ cv[i] = myRandf(_ec->dSpeed * 0.03f) + (_ec->dSpeed * 0.001f);
+ }
+
+ // pick color
+ hsl[0] = myRandf(1.0f);
+ hsl[1] = 0.1f + myRandf(0.9f);
+ hsl[2] = 1.0f;
+ hueSpeed = myRandf(0.1f) - 0.05f;
+ saturationSpeed = myRandf(0.04f) + 0.001f;
+}
+
+
+wisp::~wisp()
+{
+ int i, j;
+
+ for(i=0; i<=density; i++)
+ {
+ for(j=0; j<=density; j++)
+ {
+ delete[] vertices[i][j];
+ }
+ delete[] vertices[i];
+ }
+ delete[] vertices;
+}
+
+
+void wisp::update()
+{
+ int i, j;
+ rsVec up, right, crossvec;
+ // visibility constants
+ static float viscon1 = float(_ec->dVisibility) * 0.01f;
+ static float viscon2 = 1.0f / viscon1;
+
+ // update constants
+ for(i=0; i<NUMCONSTS; i++){
+ cr[i] += cv[i] * _ec->elapsedTime;
+ if(cr[i] > PIx2)
+ cr[i] -= PIx2;
+ c[i] = cos(cr[i]);
+ }
+
+ // update vertex positions
+ for(i=0; i<=density; i++){
+ for(j=0; j<=density; j++){
+ vertices[i][j][0] = vertices[i][j][3] * vertices[i][j][3] * vertices[i][j][4] * c[0]
+ + vertices[i][j][5] * c[1] + 0.5f * c[2];
+ vertices[i][j][1] = vertices[i][j][4] * vertices[i][j][4] * vertices[i][j][5] * c[3]
+ + vertices[i][j][3] * c[4] + 0.5f * c[5];
+ vertices[i][j][2] = vertices[i][j][5] * vertices[i][j][5] * vertices[i][j][3] * c[6]
+ + vertices[i][j][4] * c[7] + c[8];
+ }
+ }
+
+ // update vertex normals for most of mesh
+ for(i=1; i<density; i++){
+ for(j=1; j<density; j++){
+ up.set(vertices[i][j+1][0] - vertices[i][j-1][0],
+ vertices[i][j+1][1] - vertices[i][j-1][1],
+ vertices[i][j+1][2] - vertices[i][j-1][2]);
+ right.set(vertices[i+1][j][0] - vertices[i-1][j][0],
+ vertices[i+1][j][1] - vertices[i-1][j][1],
+ vertices[i+1][j][2] - vertices[i-1][j][2]);
+ up.normalize();
+ right.normalize();
+ crossvec.cross(right, up);
+ // Use depth component of normal to compute intensity
+ // This way only edges of wisp are bright
+ if(crossvec[2] < 0.0f)
+ crossvec[2] *= -1.0f;
+ vertices[i][j][6] = viscon2 * (viscon1 - crossvec[2]);
+ if(vertices[i][j][6] > 1.0f)
+ vertices[i][j][6] = 1.0f;
+ if(vertices[i][j][6] < 0.0f)
+ vertices[i][j][6] = 0.0f;
+ }
+ }
+
+ // update color
+ hsl[0] += hueSpeed * _ec->elapsedTime;
+ if(hsl[0] < 0.0f)
+ hsl[0] += 1.0f;
+ if(hsl[0] > 1.0f)
+ hsl[0] -= 1.0f;
+ hsl[1] += saturationSpeed * _ec->elapsedTime;
+ if(hsl[1] <= 0.1f){
+ hsl[1] = 0.1f;
+ saturationSpeed = -saturationSpeed;
+ }
+ if(hsl[1] >= 1.0f){
+ hsl[1] = 1.0f;
+ saturationSpeed = -saturationSpeed;
+ }
+ hsl2rgb(hsl[0], hsl[1], hsl[2], rgb[0], rgb[1], rgb[2]);
+}
+
+
+void wisp::draw()
+{
+ int i, j;
+
+ glPushMatrix();
+
+ if(_ec->dWireframe)
+ {
+ for(i=1; i<density; i++){
+ glBegin(GL_LINE_STRIP);
+ for(j=0; j<=density; j++){
+ glColor3f(rgb[0] + vertices[i][j][6] - 1.0f, rgb[1] + vertices[i][j][6] - 1.0f, rgb[2] + vertices[i][j][6] - 1.0f);
+ glTexCoord2d(vertices[i][j][3] - vertices[i][j][0], vertices[i][j][4] - vertices[i][j][1]);
+ glVertex3fv(vertices[i][j]);
+ }
+ glEnd();
+ }
+ for(j=1; j<density; j++){
+ glBegin(GL_LINE_STRIP);
+ for(i=0; i<=density; i++){
+ glColor3f(rgb[0] + vertices[i][j][6] - 1.0f, rgb[1] + vertices[i][j][6] - 1.0f, rgb[2] + vertices[i][j][6] - 1.0f);
+ glTexCoord2d(vertices[i][j][3] - vertices[i][j][0], vertices[i][j][4] - vertices[i][j][1]);
+ glVertex3fv(vertices[i][j]);
+ }
+ glEnd();
+ }
+ }
+ else
+ {
+ for(i=0; i<density; i++){
+ glBegin(GL_TRIANGLE_STRIP);
+ for(j=0; j<=density; j++){
+ glColor3f(rgb[0] + vertices[i+1][j][6] - 1.0f, rgb[1] + vertices[i+1][j][6] - 1.0f, rgb[2] + vertices[i+1][j][6] - 1.0f);
+ glTexCoord2d(vertices[i+1][j][3] - vertices[i+1][j][0], vertices[i+1][j][4] - vertices[i+1][j][1]);
+ glVertex3fv(vertices[i+1][j]);
+ glColor3f(rgb[0] + vertices[i][j][6] - 1.0f, rgb[1] + vertices[i][j][6] - 1.0f, rgb[2] + vertices[i][j][6] - 1.0f);
+ glTexCoord2d(vertices[i][j][3] - vertices[i][j][0], vertices[i][j][4] - vertices[i][j][1]);
+ glVertex3fv(vertices[i][j]);
+ }
+ glEnd();
+ }
+ }
+
+ glPopMatrix();
+}
+
+
+void wisp::drawAsBackground()
+{
+ int i, j;
+
+ glPushMatrix();
+ glTranslatef(c[0] * 0.2f, c[1] * 0.2f, 1.6f);
+
+ if(_ec->dWireframe)
+ {
+ for(i=1; i<density; i++){
+ glBegin(GL_LINE_STRIP);
+ for(j=0; j<=density; j++){
+ glColor3f(rgb[0] + vertices[i][j][6] - 1.0f, rgb[1] + vertices[i][j][6] - 1.0f, rgb[2] + vertices[i][j][6] - 1.0f);
+ glTexCoord2d(vertices[i][j][3] - vertices[i][j][0], vertices[i][j][4] - vertices[i][j][1]);
+ glVertex3f(vertices[i][j][3], vertices[i][j][4], vertices[i][j][6]);
+ }
+ glEnd();
+ }
+ for(j=1; j<density; j++){
+ glBegin(GL_LINE_STRIP);
+ for(i=0; i<=density; i++){
+ glColor3f(rgb[0] + vertices[i][j][6] - 1.0f, rgb[1] + vertices[i][j][6] - 1.0f, rgb[2] + vertices[i][j][6] - 1.0f);
+ glTexCoord2d(vertices[i][j][3] - vertices[i][j][0], vertices[i][j][4] - vertices[i][j][1]);
+ glVertex3f(vertices[i][j][3], vertices[i][j][4], vertices[i][j][6]);
+ }
+ glEnd();
+ }
+ }
+ else
+ {
+ for(i=0; i<density; i++){
+ glBegin(GL_TRIANGLE_STRIP);
+ for(j=0; j<=density; j++){
+ glColor3f(rgb[0] + vertices[i+1][j][6] - 1.0f, rgb[1] + vertices[i+1][j][6] - 1.0f, rgb[2] + vertices[i+1][j][6] - 1.0f);
+ glTexCoord2d(vertices[i+1][j][3] - vertices[i+1][j][0], vertices[i+1][j][4] - vertices[i+1][j][1]);
+ glVertex3f(vertices[i+1][j][3], vertices[i+1][j][4], vertices[i+1][j][6]);
+ glColor3f(rgb[0] + vertices[i][j][6] - 1.0f, rgb[1] + vertices[i][j][6] - 1.0f, rgb[2] + vertices[i][j][6] - 1.0f);
+ glTexCoord2d(vertices[i][j][3] - vertices[i][j][0], vertices[i][j][4] - vertices[i][j][1]);
+ glVertex3f(vertices[i][j][3], vertices[i][j][4], vertices[i][j][6]);
+ }
+ glEnd();
+ }
+ }
+
+ glPopMatrix();
+}
+
+
+//----------------------------------------------------------------------------
+
+
+EuphoriaWidget::EuphoriaWidget( TQWidget* parent, const char* name )
+ : TQGLWidget(parent, name), texName(0), _wisps(0), _backwisps(0),
+ feedbackmap(0), feedbacktex(0)
+{
+ setDefaults( Regular );
+
+ _frameTime = 1000 / 60;
+ _timer = new TQTimer( this );
+ connect( _timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(nextFrame()) );
+}
+
+
+EuphoriaWidget::~EuphoriaWidget()
+{
+ // Free memory
+ if ( texName )
+ glDeleteTextures( 1, &texName );
+ if ( feedbacktex )
+ glDeleteTextures( 1, &feedbacktex );
+ delete[] _wisps;
+ delete[] _backwisps;
+}
+
+
+void EuphoriaWidget::paintGL()
+{
+ int i;
+ static double lastTime = timeGetTime();
+
+ // update time
+ elapsedTime = timeGetTime() - lastTime;
+ lastTime += elapsedTime;
+
+ _ec = this;
+
+ // Update wisps
+ for(i=0; i<dWisps; i++)
+ _wisps[i].update();
+ for(i=0; i<dBackground; i++)
+ _backwisps[i].update();
+
+
+ if(dFeedback)
+ {
+ float feedbackIntensity = float(dFeedback) / 101.0f;
+
+ // update feedback variables
+ for(i=0; i<4; i++)
+ {
+ fr[i] += elapsedTime * fv[i];
+ if(fr[i] > PIx2)
+ fr[i] -= PIx2;
+ }
+ f[0] = 30.0f * cos(fr[0]);
+ f[1] = 0.2f * cos(fr[1]);
+ f[2] = 0.2f * cos(fr[2]);
+ f[3] = 0.8f * cos(fr[3]);
+ for(i=0; i<3; i++)
+ {
+ lr[i] += elapsedTime * lv[i];
+ if(lr[i] > PIx2)
+ lr[i] -= PIx2;
+ l[i] = cos(lr[i]);
+ l[i] = l[i] * l[i];
+ }
+
+ // Create drawing area for feedback texture
+ glViewport(0, 0, feedbacktexsize, feedbacktexsize);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(30.0, aspectRatio, 0.01f, 20.0f);
+ glMatrixMode(GL_MODELVIEW);
+
+ // Draw
+ glClear(GL_COLOR_BUFFER_BIT);
+ glColor3f(feedbackIntensity, feedbackIntensity, feedbackIntensity);
+ glBindTexture(GL_TEXTURE_2D, feedbacktex);
+ glPushMatrix();
+ glTranslatef(f[1] * l[1], f[2] * l[1], f[3] * l[2]);
+ glRotatef(f[0] * l[0], 0, 0, 1);
+ glBegin(GL_TRIANGLE_STRIP);
+ glTexCoord2f(-0.5f, -0.5f);
+ glVertex3f(-aspectRatio*2.0f, -2.0f, 1.25f);
+ glTexCoord2f(1.5f, -0.5f);
+ glVertex3f(aspectRatio*2.0f, -2.0f, 1.25f);
+ glTexCoord2f(-0.5f, 1.5f);
+ glVertex3f(-aspectRatio*2.0f, 2.0f, 1.25f);
+ glTexCoord2f(1.5f, 1.5f);
+ glVertex3f(aspectRatio*2.0f, 2.0f, 1.25f);
+ glEnd();
+ glPopMatrix();
+ glBindTexture(GL_TEXTURE_2D, texName);
+ for(i=0; i<dBackground; i++)
+ _backwisps[i].drawAsBackground();
+ for(i=0; i<dWisps; i++)
+ _wisps[i].draw();
+
+ // readback feedback texture
+ glReadBuffer(GL_BACK);
+ glPixelStorei(GL_UNPACK_ROW_LENGTH, feedbacktexsize);
+ glBindTexture(GL_TEXTURE_2D, feedbacktex);
+ glReadPixels(0, 0, feedbacktexsize, feedbacktexsize, GL_RGB, GL_UNSIGNED_BYTE, feedbackmap);
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, feedbacktexsize, feedbacktexsize, GL_RGB, GL_UNSIGNED_BYTE, feedbackmap);
+
+ // create regular drawing area
+ glViewport(viewport[0], viewport[1], viewport[2], viewport[3]);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(20.0, aspectRatio, 0.01f, 20.0f);
+ glMatrixMode(GL_MODELVIEW);
+
+ // Draw again
+ glClear(GL_COLOR_BUFFER_BIT);
+ glColor3f(feedbackIntensity, feedbackIntensity, feedbackIntensity);
+ glPushMatrix();
+ glTranslatef(f[1] * l[1], f[2] * l[1], f[3] * l[2]);
+ glRotatef(f[0] * l[0], 0, 0, 1);
+ glBegin(GL_TRIANGLE_STRIP);
+ glTexCoord2f(-0.5f, -0.5f);
+ glVertex3f(-aspectRatio*2.0f, -2.0f, 1.25f);
+ glTexCoord2f(1.5f, -0.5f);
+ glVertex3f(aspectRatio*2.0f, -2.0f, 1.25f);
+ glTexCoord2f(-0.5f, 1.5f);
+ glVertex3f(-aspectRatio*2.0f, 2.0f, 1.25f);
+ glTexCoord2f(1.5f, 1.5f);
+ glVertex3f(aspectRatio*2.0f, 2.0f, 1.25f);
+ glEnd();
+ glPopMatrix();
+
+ glBindTexture(GL_TEXTURE_2D, texName);
+ }
+ else
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ //
+ for(i=0; i<dBackground; i++)
+ _backwisps[i].drawAsBackground();
+ for(i=0; i<dWisps; i++)
+ _wisps[i].draw();
+
+ glFlush();
+}
+
+
+void EuphoriaWidget::resizeGL( int w, int h )
+{
+ glViewport(0, 0, w, h );
+
+ viewport[0] = 0;
+ viewport[1] = 0;
+ viewport[2] = w;
+ viewport[3] = h;
+
+ aspectRatio = (float) w / (float) h;
+
+ // setup regular drawing area just in case feedback isn't used
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(20.0, aspectRatio, 0.01, 20);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+ glTranslatef(0.0, 0.0, -5.0);
+}
+
+
+// Window initialization
+void EuphoriaWidget::initializeGL()
+{
+ // Need to call this to setup viewport[] parameters used in
+ // the next updateParameters() call
+ resizeGL( width(), height() );
+
+ updateParameters();
+
+ _timer->start( _frameTime, true );
+}
+
+
+#ifdef UNIT_TEST
+void EuphoriaWidget::keyPressEvent( TQKeyEvent* e )
+{
+ if( e->key() == TQt::Key_0 ) { setDefaults( 0 ); updateParameters(); }
+ if( e->key() == TQt::Key_1 ) { setDefaults( 1 ); updateParameters(); }
+ if( e->key() == TQt::Key_2 ) { setDefaults( 2 ); updateParameters(); }
+ if( e->key() == TQt::Key_3 ) { setDefaults( 3 ); updateParameters(); }
+ if( e->key() == TQt::Key_4 ) { setDefaults( 4 ); updateParameters(); }
+ if( e->key() == TQt::Key_5 ) { setDefaults( 5 ); updateParameters(); }
+ if( e->key() == TQt::Key_6 ) { setDefaults( 6 ); updateParameters(); }
+ if( e->key() == TQt::Key_7 ) { setDefaults( 7 ); updateParameters(); }
+ if( e->key() == TQt::Key_8 ) { setDefaults( 8 ); updateParameters(); }
+}
+#endif
+
+
+void EuphoriaWidget::nextFrame()
+{
+ updateGL();
+ _timer->start( _frameTime, true );
+}
+
+
+void EuphoriaWidget::updateParameters()
+{
+ srand((unsigned)time(NULL));
+ rand(); rand(); rand(); rand(); rand();
+
+ elapsedTime = 0.0f;
+
+ fr[0] = 0.0f;
+ fr[1] = 0.0f;
+ fr[2] = 0.0f;
+ fr[3] = 0.0f;
+
+ lr[0] = 0.0f;
+ lr[1] = 0.0f;
+ lr[2] = 0.0f;
+
+ glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
+ glClear(GL_COLOR_BUFFER_BIT);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_ONE, GL_ONE);
+ glLineWidth(2.0f);
+
+ // Commented out because smooth lines and textures don't mix on my TNT.
+ // It's like it rendering in software mode
+ glEnable(GL_LINE_SMOOTH);
+ //glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
+
+ if(dTexture)
+ {
+ int whichtex = dTexture;
+ if(whichtex == 4) // random texture
+ whichtex = myRandi(3) + 1;
+ glEnable(GL_TEXTURE_2D);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ // Initialize texture
+ glGenTextures(1, &texName);
+ glBindTexture(GL_TEXTURE_2D, texName);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
+ switch(whichtex){
+ case 1:
+ gluBuild2DMipmaps(GL_TEXTURE_2D, 1, TEXSIZE, TEXSIZE, GL_LUMINANCE, GL_UNSIGNED_BYTE, plasmamap);
+ break;
+ case 2:
+ gluBuild2DMipmaps(GL_TEXTURE_2D, 1, TEXSIZE, TEXSIZE, GL_LUMINANCE, GL_UNSIGNED_BYTE, stringymap);
+ break;
+ case 3:
+ gluBuild2DMipmaps(GL_TEXTURE_2D, 1, TEXSIZE, TEXSIZE, GL_LUMINANCE, GL_UNSIGNED_BYTE, linesmap);
+ }
+ } else if ( texName ) {
+ glDeleteTextures( 1, &texName );
+ texName = 0;
+ }
+
+ if(dFeedback)
+ {
+ feedbacktexsize = int(pow(2.0, dFeedbacksize));
+ while(feedbacktexsize > viewport[2] || feedbacktexsize > viewport[3]){
+ dFeedbacksize -= 1;
+ feedbacktexsize = int(pow(2.0, dFeedbacksize));
+ }
+
+ // feedback texture setup
+ glEnable(GL_TEXTURE_2D);
+ delete [] feedbackmap;
+ feedbackmap = new unsigned char[feedbacktexsize*feedbacktexsize*3];
+ glGenTextures(1, &feedbacktex);
+ glBindTexture(GL_TEXTURE_2D, feedbacktex);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+ glTexImage2D(GL_TEXTURE_2D, 0, 3, feedbacktexsize, feedbacktexsize, 0, GL_RGB, GL_UNSIGNED_BYTE, feedbackmap);
+
+ // feedback velocity variable setup
+ fv[0] = float(dFeedbackspeed) * (myRandf(0.025f) + 0.025f);
+ fv[1] = float(dFeedbackspeed) * (myRandf(0.05f) + 0.05f);
+ fv[2] = float(dFeedbackspeed) * (myRandf(0.05f) + 0.05f);
+ fv[3] = float(dFeedbackspeed) * (myRandf(0.1f) + 0.1f);
+ lv[0] = float(dFeedbackspeed) * (myRandf(0.0025f) + 0.0025f);
+ lv[1] = float(dFeedbackspeed) * (myRandf(0.0025f) + 0.0025f);
+ lv[2] = float(dFeedbackspeed) * (myRandf(0.0025f) + 0.0025f);
+ } else if ( feedbacktex ) {
+ glDeleteTextures( 1, &feedbacktex );
+ feedbacktex = 0;
+ }
+
+ // Initialize wisps
+ _ec = this;
+ delete[] _wisps;
+ delete[] _backwisps;
+ _wisps = new wisp[dWisps];
+ _backwisps = new wisp[dBackground];
+}
+
+
+/**
+ May be called at any time - makes no OpenGL calls.
+*/
+void EuphoriaWidget::setDefaults(int which)
+{
+ switch(which)
+ {
+ case Grid:
+ dWisps = 4;
+ dBackground = 1;
+ dDensity = 25;
+ dVisibility = 70;
+ dSpeed = 15;
+ dFeedback = 0;
+ dFeedbackspeed = 1;
+ dFeedbacksize = 8;
+ dWireframe = 1;
+ dTexture = 0;
+ break;
+
+ case Cubism:
+ dWisps = 15;
+ dBackground = 0;
+ dDensity = 4;
+ dVisibility = 15;
+ dSpeed = 10;
+ dFeedback = 0;
+ dFeedbackspeed = 1;
+ dFeedbacksize = 8;
+ dWireframe = 0;
+ dTexture = 0;
+ break;
+
+ case BadMath:
+ dWisps = 2;
+ dBackground = 2;
+ dDensity = 20;
+ dVisibility = 40;
+ dSpeed = 30;
+ dFeedback = 40;
+ dFeedbackspeed = 5;
+ dFeedbacksize = 8;
+ dWireframe = 1;
+ dTexture = 2;
+ break;
+
+ case MTheory:
+ dWisps = 3;
+ dBackground = 0;
+ dDensity = 25;
+ dVisibility = 15;
+ dSpeed = 20;
+ dFeedback = 40;
+ dFeedbackspeed = 20;
+ dFeedbacksize = 8;
+ dWireframe = 0;
+ dTexture = 0;
+ break;
+
+ case UHFTEM:
+ dWisps = 0;
+ dBackground = 3;
+ dDensity = 35;
+ dVisibility = 5;
+ dSpeed = 50;
+ dFeedback = 0;
+ dFeedbackspeed = 1;
+ dFeedbacksize = 8;
+ dWireframe = 0;
+ dTexture = 0;
+ break;
+
+ case Nowhere:
+ dWisps = 0;
+ dBackground = 3;
+ dDensity = 30;
+ dVisibility = 40;
+ dSpeed = 20;
+ dFeedback = 80;
+ dFeedbackspeed = 10;
+ dFeedbacksize = 8;
+ dWireframe = 1;
+ dTexture = 3;
+ break;
+
+ case Echo:
+ dWisps = 3;
+ dBackground = 0;
+ dDensity = 25;
+ dVisibility = 30;
+ dSpeed = 20;
+ dFeedback = 85;
+ dFeedbackspeed = 30;
+ dFeedbacksize = 8;
+ dWireframe = 0;
+ dTexture = 1;
+ break;
+
+ case Kaleidoscope:
+ dWisps = 3;
+ dBackground = 0;
+ dDensity = 25;
+ dVisibility = 40;
+ dSpeed = 15;
+ dFeedback = 90;
+ dFeedbackspeed = 3;
+ dFeedbacksize = 8;
+ dWireframe = 0;
+ dTexture = 0;
+ break;
+
+ case Regular:
+ default:
+ dWisps = 5;
+ dBackground = 0;
+ dDensity = 25;
+ dVisibility = 35;
+ dSpeed = 15;
+ dFeedback = 0;
+ dFeedbackspeed = 1;
+ dFeedbacksize = 8;
+ dWireframe = 0;
+ dTexture = 2;
+ break;
+ }
+}
+
+
+//----------------------------------------------------------------------------
+
+
+#ifndef UNIT_TEST
+#include <klocale.h>
+#include <kglobal.h>
+#include <kconfig.h>
+
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char* kss_applicationName = "keuphoria.kss";
+ KDE_EXPORT const char* kss_description = I18N_NOOP( "Euphoria" );
+ KDE_EXPORT const char* kss_version = "1.0";
+
+ KDE_EXPORT KScreenSaver* kss_create( WId id )
+ {
+ return new KEuphoriaScreenSaver( id );
+ }
+
+ KDE_EXPORT TQDialog* kss_setup()
+ {
+ return new KEuphoriaSetup;
+ }
+}
+
+
+//----------------------------------------------------------------------------
+
+
+KEuphoriaScreenSaver::KEuphoriaScreenSaver( WId id ) : KScreenSaver( id )
+{
+ _effect = new EuphoriaWidget;
+
+ readSettings();
+
+ embed( _effect );
+ _effect->show();
+}
+
+
+KEuphoriaScreenSaver::~KEuphoriaScreenSaver()
+{
+}
+
+
+static int filterRandom( int n )
+{
+ if( (n < 0) || (n >= EuphoriaWidget::DefaultModes) )
+ {
+ srand((unsigned)time(NULL));
+ n = rand() % EuphoriaWidget::DefaultModes;
+ }
+ return n;
+}
+
+
+void KEuphoriaScreenSaver::readSettings()
+{
+ TDEConfig* config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ _mode = config->readNumEntry( "Mode", EuphoriaWidget::Regular );
+ _effect->setDefaults( filterRandom(_mode) );
+}
+
+
+/**
+ Any invalid mode will select one at random.
+*/
+void KEuphoriaScreenSaver::setMode( int id )
+{
+ _mode = id;
+ _effect->setDefaults( filterRandom(id) );
+ _effect->updateParameters();
+}
+
+
+//----------------------------------------------------------------------------
+
+
+#include <tqlayout.h>
+#include <tqlabel.h>
+#include <tqcombobox.h>
+#include <kmessagebox.h>
+
+
+static const char* defaultText[] =
+{
+ I18N_NOOP( "Regular" ),
+ I18N_NOOP( "Grid" ),
+ I18N_NOOP( "Cubism" ),
+ I18N_NOOP( "Bad Math" ),
+ I18N_NOOP( "M-Theory" ),
+ I18N_NOOP( "UHFTEM" ), //"ultra high frequency tunneling electron microscope",
+ I18N_NOOP( "Nowhere" ),
+ I18N_NOOP( "Echo" ),
+ I18N_NOOP( "Kaleidoscope" ),
+ I18N_NOOP( "(Random)" ),
+ 0
+};
+
+
+KEuphoriaSetup::KEuphoriaSetup( TQWidget* parent, const char* name )
+ : KDialogBase( parent, name, true, i18n("Setup Euphoria Screen Saver"),
+ Ok|Cancel|Help, Ok, true )
+{
+ setButtonText( Help, i18n( "A&bout" ) );
+
+ TQWidget *main = makeMainWidget();
+
+ TQHBoxLayout* top = new TQHBoxLayout(main, 0, spacingHint());
+ TQVBoxLayout* leftCol = new TQVBoxLayout;
+ top->addLayout( leftCol );
+
+ TQLabel* label = new TQLabel( i18n("Mode:"), main );
+ leftCol->addWidget( label );
+
+ modeW = new TQComboBox( main );
+ int i = 0;
+ while (defaultText[i])
+ modeW->insertItem( i18n(defaultText[i++]) );
+ leftCol->addWidget( modeW );
+
+ leftCol->addStretch();
+
+ // Preview
+ TQWidget* preview;
+ preview = new TQWidget( main );
+ preview->setFixedSize( 220, 170 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ _saver = new KEuphoriaScreenSaver( preview->winId() );
+ top->addWidget(preview);
+
+ // Now that we have _saver...
+ modeW->setCurrentItem( _saver->mode() ); // set before we connect
+ connect( modeW, TQT_SIGNAL(activated(int)), _saver, TQT_SLOT(setMode(int)) );
+
+ setMinimumSize( sizeHint() );
+}
+
+
+KEuphoriaSetup::~KEuphoriaSetup()
+{
+ delete _saver;
+}
+
+
+void KEuphoriaSetup::slotHelp()
+{
+ KMessageBox::about(this,
+ i18n("<h3>Euphoria 1.0</h3>\n<p>Copyright (c) 2002 Terence M. Welsh<br>\n<a href=\"http://www.reallyslick.com/\">http://www.reallyslick.com/</a></p>\n\n<p>Ported to KDE by Karl Robillard</p>"),
+ TQString(), KMessageBox::AllowLink);
+}
+
+
+/**
+ Ok pressed - save settings and exit
+*/
+void KEuphoriaSetup::slotOk()
+{
+ TDEConfig* config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ TQString val;
+ val.setNum( modeW->currentItem() );
+ config->writeEntry("Mode", val );
+
+ config->sync();
+ accept();
+}
+#endif
+//----------------------------------------------------------------------------
+
+
+#ifdef UNIT_TEST
+// moc Euphoria.h -o Euphoria.moc
+// g++ -g -DUNIT_TEST Euphoria.cpp -I/usr/lib/qt3/include -lqt -L/usr/lib/qt3/lib -lGLU -lGL
+
+#include <tqapplication.h>
+
+int main( int argc, char** argv )
+{
+ TQApplication app( argc, argv );
+
+ EuphoriaWidget w;
+ w.setDefaults( EuphoriaWidget::UHFTEM );
+ app.setMainWidget( &w );
+ w.show();
+
+ return app.exec();
+}
+#endif
+
+
+//EOF
diff --git a/tdescreensaver/kdesavers/Euphoria.h b/tdescreensaver/kdesavers/Euphoria.h
new file mode 100644
index 00000000..26fdf27b
--- /dev/null
+++ b/tdescreensaver/kdesavers/Euphoria.h
@@ -0,0 +1,158 @@
+#ifndef __EUPHORIASS_H__
+#define __EUPHORIASS_H__
+//============================================================================
+//
+// Terence Welsh Screensaver - Euphoria
+// http://www.reallyslick.com/
+//
+// KDE port by Karl Robillard
+//
+//============================================================================
+
+
+#include <tqgl.h>
+
+#include <kdialogbase.h>
+
+class wisp;
+class TQTimer;
+
+class EuphoriaWidget : public TQGLWidget
+{
+ Q_OBJECT
+
+
+public:
+
+ enum eDefault
+ {
+ Regular,
+ Grid,
+ Cubism,
+ BadMath,
+ MTheory,
+ UHFTEM, // ultra high frequency tunneling electron microscope
+ Nowhere,
+ Echo,
+ Kaleidoscope,
+ DefaultModes
+ };
+
+ EuphoriaWidget( TQWidget* parent=0, const char* name=0 );
+ ~EuphoriaWidget();
+
+ void updateParameters();
+ void setDefaults( int which );
+
+protected:
+
+ void paintGL();
+ void resizeGL( int w, int h );
+ void initializeGL();
+#ifdef UNIT_TEST
+ void keyPressEvent( TQKeyEvent* );
+#endif
+
+private slots:
+
+ void nextFrame();
+
+private:
+
+ GLuint texName;
+ wisp* _wisps;
+ wisp* _backwisps;
+ unsigned char* feedbackmap;
+ float aspectRatio;
+ int viewport[4];
+ double elapsedTime;
+
+ // feedback texture object
+ unsigned int feedbacktex;
+ int feedbacktexsize;
+ // feedback variables
+ float fr[4];
+ float fv[4];
+ float f[4];
+ // feedback limiters
+ float lr[3];
+ float lv[3];
+ float l[3];
+
+
+
+ int dWisps;
+ int dBackground;
+ int dDensity;
+ int dVisibility;
+ float dSpeed;
+ int dFeedback;
+ int dFeedbackspeed;
+ int dFeedbacksize;
+ int dWireframe;
+ int dTexture;
+ int dPriority;
+
+
+ // Using TQTimer rather than timerEvent() to avoid getting locked out of
+ // the TQEvent loop on lower-end systems. Ian Geiser <geiseri@kde.org>
+ // says this is the way to go.
+ TQTimer* _timer;
+ int _frameTime;
+
+ friend class wisp;
+};
+
+
+#ifndef UNIT_TEST
+#include <tqdialog.h>
+#include <tdescreensaver.h>
+
+
+class KEuphoriaScreenSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+
+public:
+
+ KEuphoriaScreenSaver( WId id );
+ virtual ~KEuphoriaScreenSaver();
+
+ int mode() const { return _mode; }
+
+public slots:
+
+ void setMode( int );
+
+private:
+
+ void readSettings();
+
+ EuphoriaWidget* _effect;
+ int _mode;
+};
+
+
+class TQComboBox;
+
+class KEuphoriaSetup : public KDialogBase
+{
+ Q_OBJECT
+
+
+public:
+ KEuphoriaSetup( TQWidget* parent = 0, const char* name = 0 );
+ ~KEuphoriaSetup();
+
+private slots:
+ void slotHelp();
+ void slotOk();
+
+private:
+ TQComboBox* modeW;
+ KEuphoriaScreenSaver* _saver;
+};
+#endif
+
+#endif //__EUPHORIASS_H__
diff --git a/tdescreensaver/kdesavers/EuphoriaTexture.h b/tdescreensaver/kdesavers/EuphoriaTexture.h
new file mode 100644
index 00000000..5a6962b4
--- /dev/null
+++ b/tdescreensaver/kdesavers/EuphoriaTexture.h
@@ -0,0 +1,4138 @@
+/*
+ * Copyright (C) 2002 Terence M. Welsh
+ *
+ * Euphoria is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Euphoria is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+
+#ifndef TEXTURE_H
+#define TEXTURE_H
+
+
+
+#define TEXSIZE 256
+
+
+
+unsigned char plasmamap[TEXSIZE * TEXSIZE] = {
+224,235,221,199,206,186,153,139,173,154,105,108,129,82,34,16,9,12,17,21,21,19,14,5,1,6,21,61,84,114,185,164,183,190,176,161,173,199,191,157,194,193,187,163,150,139,121,114,
+104,84,72,68,63,66,69,66,58,51,44,34,30,28,27,22,17,9,6,9,10,5,0,0,0,6,17,28,37,49,56,64,62,59,64,73,83,88,84,73,75,84,105,130,116,91,97,97,
+109,123,146,189,247,253,178,184,210,186,151,122,84,91,92,90,100,92,88,111,165,219,217,207,204,190,225,252,239,250,255,255,252,252,239,224,191,173,177,165,120,78,66,83,51,50,115,137,
+95,104,150,149,100,86,80,72,75,87,83,58,45,28,24,15,7,2,0,0,1,6,7,3,3,3,8,9,19,36,47,51,45,44,52,71,83,72,61,57,63,86,108,147,191,186,165,172,
+160,147,107,88,95,122,135,157,193,227,241,229,221,229,243,253,255,255,254,252,248,238,229,228,233,245,247,239,246,248,235,226,184,147,98,55,44,36,43,43,34,29,49,59,63,194,255,255,
+255,255,255,255,255,255,255,255,255,242,252,233,213,231,221,228,205,192,193,191,190,175,153,156,173,184,172,127,104,62,24,8,5,9,14,19,23,23,16,6,1,8,30,66,77,114,192,217,
+219,210,177,148,142,149,130,111,147,157,155,162,162,157,154,148,129,100,84,75,68,68,70,63,57,51,45,37,30,28,27,22,16,10,6,7,6,0,0,0,0,1,15,27,35,43,55,62,
+63,58,61,70,88,84,75,73,73,85,111,134,125,101,85,82,107,150,183,186,236,247,133,100,113,107,98,72,63,85,78,83,108,121,116,135,160,163,161,158,155,147,192,246,253,254,254,250,
+253,248,232,233,227,236,224,201,171,149,120,69,83,140,158,130,94,143,142,118,113,120,94,70,62,64,71,55,41,31,29,17,3,0,0,0,0,0,7,7,7,10,14,16,27,45,58,63,
+58,65,78,86,86,77,62,55,59,71,94,130,142,125,114,99,83,84,78,82,92,99,123,169,207,214,224,217,222,233,249,254,252,250,246,226,205,206,210,211,221,245,245,243,248,248,242,226,
+178,99,57,36,28,29,30,30,27,28,64,116,162,235,255,255,255,255,255,255,255,255,255,255,255,255,255,252,203,196,176,203,164,144,121,143,172,180,169,178,163,141,118,85,48,21,6,1,
+1,7,14,20,24,22,15,8,5,10,28,44,71,106,155,208,194,175,140,116,113,98,88,83,88,106,136,158,165,164,153,141,126,109,92,78,70,65,63,63,56,49,43,37,33,28,26,22,
+16,14,8,5,0,0,0,0,0,0,9,22,31,38,49,57,61,59,59,64,92,94,100,80,78,107,136,143,154,121,84,94,165,183,140,158,253,218,84,68,68,73,76,56,52,44,47,88,
+153,162,144,146,149,163,186,172,156,196,227,245,248,238,234,241,247,232,199,211,221,219,191,141,168,175,164,137,153,178,151,112,102,151,144,104,111,123,76,40,33,34,29,27,29,19,19,9,
+0,0,0,0,0,3,7,7,10,15,19,23,35,49,56,61,68,83,92,88,80,70,59,51,50,52,64,98,100,65,51,50,63,70,77,84,80,91,108,168,217,199,194,205,227,243,253,253,
+252,243,224,187,160,163,191,203,215,225,238,241,241,241,239,221,190,106,50,27,23,21,21,28,27,24,62,130,211,255,255,255,255,254,254,255,255,255,255,255,255,255,248,243,224,200,190,182,
+91,79,72,79,73,132,164,172,140,61,22,23,16,6,0,0,0,2,12,20,21,20,17,10,9,14,20,28,65,98,104,147,142,141,123,111,94,87,84,78,78,84,97,123,146,149,126,106,
+111,109,95,84,71,64,63,64,52,44,41,34,30,27,24,23,19,14,9,7,2,0,1,0,0,0,8,19,33,43,49,62,76,75,66,65,86,99,104,73,88,133,149,165,175,132,114,143,
+185,187,123,127,238,203,72,61,54,59,71,48,38,43,85,148,189,183,133,154,157,175,184,177,184,219,238,253,247,222,236,243,234,229,206,194,207,180,141,97,123,132,118,126,142,151,143,122,
+128,147,156,144,109,87,50,20,13,19,10,3,5,2,1,0,0,0,12,16,3,7,13,8,14,16,22,31,41,57,69,72,84,90,90,75,66,59,50,44,40,36,43,57,49,33,30,34,
+42,51,66,77,84,109,115,168,219,204,185,205,240,246,250,252,248,232,215,200,190,190,201,213,213,220,194,210,229,231,235,204,162,102,55,35,26,26,26,28,30,29,45,92,170,239,247,246,
+235,235,254,255,255,255,255,255,255,255,253,253,222,198,183,126,75,57,49,61,61,82,121,134,125,50,13,6,0,0,0,0,0,0,8,17,21,23,20,16,22,22,16,28,44,52,61,77,
+91,106,97,79,69,63,65,70,78,90,118,146,155,136,118,102,104,102,90,82,72,64,61,58,48,40,34,29,27,23,23,21,20,15,14,12,7,5,6,5,2,6,15,23,31,43,56,77,
+114,98,86,76,76,71,70,66,109,151,187,203,170,153,155,193,194,161,116,113,154,134,71,65,51,49,61,44,37,61,113,140,134,119,113,149,191,200,187,198,171,198,208,193,199,176,201,228,
+219,213,175,192,196,155,109,73,72,71,59,50,83,115,120,115,121,107,95,83,61,37,21,8,6,13,8,0,0,0,0,0,1,28,30,15,5,8,10,17,22,23,28,38,47,71,72,65,
+76,78,73,62,52,44,40,35,30,30,31,33,28,27,29,30,40,59,98,109,101,122,155,205,219,218,207,219,245,241,229,248,229,226,218,212,214,210,184,153,168,157,140,139,178,199,207,184,
+134,90,55,42,37,35,33,30,34,41,45,65,109,167,196,208,218,235,255,255,255,255,255,255,255,255,255,255,218,150,133,106,82,51,43,40,50,52,69,88,78,36,10,3,0,0,0,0,
+0,0,8,20,26,26,27,27,35,30,19,22,34,34,37,47,47,57,55,49,45,44,47,61,86,125,148,155,161,128,106,99,92,86,82,76,70,65,61,55,43,35,28,26,23,20,16,15,
+17,16,17,19,15,13,10,8,7,10,16,26,28,41,68,87,92,105,107,73,56,50,64,86,106,130,185,196,182,197,180,193,210,143,99,92,104,85,71,63,49,47,50,44,45,68,93,120,
+111,102,116,155,179,161,168,186,182,162,143,106,120,105,140,180,207,165,128,150,144,109,82,54,27,19,15,17,30,34,58,78,77,55,24,14,19,16,12,7,8,16,14,3,0,1,1,0,
+19,44,28,13,8,14,19,24,30,37,41,41,55,75,66,58,55,57,59,56,45,35,30,26,24,27,23,23,22,23,33,49,63,108,158,123,101,147,193,229,224,224,224,231,238,186,125,142,
+130,180,217,218,210,162,119,80,86,82,83,71,102,151,171,162,112,71,56,41,35,35,31,33,37,45,50,57,72,101,130,158,217,255,255,255,255,255,255,255,255,255,255,255,215,125,115,112,
+97,66,58,43,40,44,34,37,35,23,10,3,0,0,0,0,0,2,16,33,36,38,40,31,27,20,19,23,34,37,33,30,27,35,37,40,34,34,45,68,98,95,78,78,85,79,80,79,
+76,77,75,71,69,65,63,52,42,35,30,26,23,17,14,14,16,19,21,20,19,19,19,16,14,14,21,27,31,45,78,100,91,99,101,70,44,45,68,104,113,149,186,221,249,253,232,208,
+217,129,122,125,78,66,63,51,43,47,51,54,59,79,101,115,87,76,101,127,130,123,153,175,168,122,100,84,95,98,121,141,167,135,137,141,118,106,66,24,9,9,10,12,16,13,15,27,
+23,20,8,13,14,9,7,10,26,30,24,14,10,10,9,10,14,21,23,23,20,22,34,33,34,42,61,62,62,58,58,69,65,51,50,49,40,35,31,26,22,19,22,26,26,35,48,73,
+120,162,187,161,126,180,229,229,224,227,234,228,147,90,54,37,45,115,208,200,146,87,77,77,72,73,82,78,90,102,108,136,113,83,49,29,34,35,34,35,36,37,38,43,51,56,61,111,
+183,248,255,255,255,255,255,255,255,255,255,255,228,136,111,123,109,85,73,52,44,44,30,22,19,12,8,3,2,0,1,2,3,8,34,50,36,44,49,37,23,16,16,31,59,58,31,20,
+16,22,27,28,31,47,65,99,112,57,42,52,61,58,61,65,69,71,69,65,65,61,57,49,38,35,31,26,22,17,13,15,17,21,26,26,24,27,29,27,24,23,27,31,36,54,78,107,
+129,139,119,75,49,45,62,107,171,247,255,253,255,255,255,252,233,156,165,171,76,58,56,43,42,49,51,69,85,95,102,106,87,73,79,78,87,104,128,144,135,98,88,104,108,121,139,133,
+137,113,130,135,95,93,69,21,13,10,10,15,9,3,1,3,0,0,3,19,21,14,15,15,27,37,36,24,20,20,20,20,19,21,21,24,30,59,75,61,61,57,85,84,62,54,63,85,
+78,51,45,48,44,44,36,29,24,21,23,27,43,73,100,132,156,177,172,162,147,187,232,224,219,235,241,194,101,51,28,31,43,116,182,179,148,105,100,120,112,115,128,134,112,97,100,122,
+72,48,37,38,42,43,38,34,33,37,41,43,45,42,52,73,128,178,226,255,255,255,255,255,255,248,225,232,179,123,130,137,84,79,73,64,62,47,31,23,19,13,9,9,8,8,9,9,
+12,20,42,45,30,41,55,51,33,20,22,65,107,73,36,23,21,19,20,22,30,37,56,82,93,66,45,52,61,52,51,59,63,68,65,62,62,56,50,42,35,35,34,28,22,20,17,20,
+24,24,28,31,31,35,36,37,33,31,33,36,41,54,76,121,170,163,142,84,55,49,62,98,144,193,229,255,255,255,254,253,245,176,172,128,63,50,48,41,44,52,66,91,106,116,111,102,
+86,86,72,65,78,92,105,120,119,104,113,136,135,140,126,102,100,112,109,93,62,63,56,23,13,10,16,21,10,1,6,17,2,0,15,30,29,28,22,17,28,40,40,33,28,27,28,30,
+40,37,34,47,73,109,125,112,73,55,80,93,76,69,66,77,68,54,54,57,50,44,38,35,36,40,36,40,86,146,167,175,184,191,186,162,155,194,222,211,192,205,211,162,85,45,30,33,
+31,36,72,148,149,125,126,150,135,126,126,126,106,111,147,119,56,43,50,50,48,49,44,40,38,43,49,54,61,51,54,64,97,123,175,219,247,255,255,255,255,222,178,167,140,115,129,122,
+80,69,69,85,92,62,42,35,30,20,16,16,14,16,19,19,20,29,45,42,36,55,65,65,50,34,66,119,99,62,50,35,31,28,27,35,40,31,37,66,92,92,72,87,72,51,58,65,
+65,65,59,58,55,49,45,38,34,31,33,28,23,23,23,26,28,29,33,36,42,41,41,42,42,37,36,38,47,59,90,136,165,146,154,86,54,57,65,65,73,94,189,255,255,255,255,254,
+254,245,147,80,57,50,49,48,48,56,77,106,121,129,118,98,91,94,78,77,77,79,88,100,111,127,141,162,170,161,121,78,76,105,115,93,77,55,40,21,6,8,14,22,26,12,22,36,
+10,10,31,44,40,22,26,26,37,50,49,47,42,38,41,44,55,42,52,84,108,128,129,118,73,61,91,114,104,65,57,59,65,75,63,54,44,37,33,42,59,93,84,99,171,208,199,196,
+218,217,199,179,184,208,213,185,136,129,141,90,51,38,28,28,29,23,27,64,102,100,115,112,76,94,123,125,143,139,141,100,50,52,56,56,54,50,45,44,43,47,54,66,69,50,50,59,
+93,118,171,189,204,243,255,253,213,156,140,144,126,112,129,108,116,115,112,105,100,75,52,45,37,27,24,24,23,27,30,26,30,31,47,62,93,106,85,75,70,70,112,130,101,82,76,62,
+63,45,28,43,33,30,82,122,119,120,92,85,87,97,101,79,65,58,54,51,48,45,42,38,36,30,33,31,29,27,29,31,34,36,41,44,47,48,47,48,45,41,40,43,49,71,92,123,
+153,121,115,97,75,75,78,66,64,68,108,170,217,211,232,255,255,215,97,69,58,55,51,51,55,66,85,111,127,132,136,134,125,111,106,106,66,56,62,76,94,118,156,170,154,148,130,91,
+125,128,112,102,84,68,40,21,10,7,19,34,27,15,26,30,14,22,43,54,57,34,37,37,42,54,56,55,51,52,52,51,55,48,57,79,102,121,122,107,102,112,111,111,100,66,57,57,
+54,59,50,42,38,36,43,69,115,160,180,217,242,236,225,225,227,191,171,187,217,245,242,192,111,84,68,54,44,33,28,28,22,16,17,23,38,45,51,55,43,42,77,135,178,175,140,94,
+55,50,56,57,54,49,48,44,44,44,55,76,75,44,40,64,80,95,161,189,184,238,254,225,155,92,93,127,118,107,123,137,173,171,158,136,92,80,71,57,33,28,35,37,40,33,37,40,
+41,35,51,80,104,98,79,80,95,129,141,108,90,82,88,83,82,63,56,69,51,68,101,140,136,107,71,70,99,122,107,76,58,51,51,47,43,40,38,35,34,36,35,33,31,33,35,37,
+41,41,45,49,51,54,52,51,49,48,50,50,57,83,94,106,142,123,100,107,98,97,95,82,63,56,61,80,114,139,187,246,241,207,112,88,72,62,55,55,62,77,101,123,140,151,162,172,
+160,121,90,75,47,38,45,57,70,90,162,196,146,149,175,142,148,123,100,102,71,51,33,29,27,24,42,42,22,17,34,35,20,31,43,43,66,75,70,51,51,56,57,55,59,63,57,54,
+58,45,51,65,86,120,126,132,120,109,118,106,92,76,64,57,48,54,42,35,38,54,85,153,201,215,240,255,254,248,247,250,250,194,180,235,253,255,255,193,90,70,57,50,47,42,34,28,
+17,10,13,20,22,23,29,35,36,36,40,69,164,183,135,77,59,49,51,52,48,49,49,47,45,42,58,72,68,45,41,66,76,77,136,189,197,218,214,190,164,119,119,120,111,129,133,173,
+201,205,210,189,128,82,77,63,47,42,44,71,79,55,49,44,38,55,83,82,70,68,58,68,147,163,147,118,84,75,79,79,77,116,146,123,112,104,70,90,137,128,102,114,114,99,95,71,
+50,44,43,41,37,37,36,30,31,35,35,33,33,34,40,43,43,44,50,55,56,56,57,59,57,59,65,63,77,93,105,135,137,139,107,86,85,80,88,80,52,47,55,66,85,100,128,196,
+212,203,167,148,93,65,62,62,73,82,97,121,146,168,180,169,141,107,68,38,26,23,42,64,80,92,164,199,175,165,171,180,142,94,88,98,65,42,35,33,40,36,45,41,27,29,51,47,
+30,40,42,38,55,57,68,68,66,65,70,72,78,70,62,58,48,42,58,78,97,116,132,146,113,118,118,94,63,64,58,48,40,36,34,33,40,72,154,233,255,253,253,255,255,255,255,255,
+252,241,241,255,255,252,254,175,91,90,73,52,48,45,38,29,20,14,10,9,12,15,19,24,30,38,40,48,127,162,136,93,56,44,43,45,48,48,49,44,41,42,52,62,62,48,43,58,
+70,77,126,160,167,176,177,165,157,125,121,115,115,155,172,199,210,211,211,206,170,105,80,65,98,101,101,147,129,102,72,45,38,80,101,100,68,70,65,78,144,153,165,175,148,95,84,80,
+70,119,161,135,136,122,78,86,147,160,150,121,97,86,78,55,40,37,37,36,38,40,37,33,28,31,34,36,38,40,42,44,45,48,55,59,59,62,64,64,65,79,86,79,83,90,118,167,
+175,133,90,48,54,65,78,72,51,42,50,57,70,105,156,165,162,175,176,142,97,71,72,71,83,97,105,100,109,139,162,144,106,79,50,28,21,27,49,104,153,160,175,183,176,167,135,165,
+137,85,88,92,62,42,38,41,49,48,52,40,36,43,61,65,50,62,62,55,51,48,56,68,70,88,76,71,79,84,90,73,58,75,86,92,111,129,137,142,137,146,136,113,75,61,51,45,
+40,30,28,29,45,109,215,255,255,254,255,255,255,255,255,255,254,255,253,254,250,248,248,227,196,179,135,86,61,58,52,44,29,14,6,5,5,6,13,21,28,33,35,42,95,148,136,87,
+48,43,36,40,45,47,48,45,44,45,54,58,62,52,44,52,70,105,133,142,172,183,190,164,137,122,129,150,175,193,200,210,193,203,217,214,194,168,157,150,179,204,213,196,172,157,108,64,
+54,80,115,120,70,73,101,115,135,143,168,196,171,140,114,78,87,136,172,164,149,147,105,93,109,98,90,91,72,54,52,40,30,33,35,37,38,38,33,29,27,29,31,38,41,44,42,44,
+47,51,57,59,63,69,72,73,86,112,104,88,77,79,113,168,179,102,50,35,43,63,66,58,49,42,37,36,55,111,164,147,132,158,167,129,91,77,78,80,90,116,122,100,100,105,125,133,
+95,85,56,34,27,36,51,120,168,204,193,162,130,123,126,150,123,102,93,84,58,43,43,58,76,71,58,49,52,71,71,68,84,100,91,62,63,57,50,61,85,102,76,69,71,85,105,100,
+122,134,98,59,102,154,141,135,142,136,133,108,106,82,59,49,42,31,28,33,66,161,249,255,255,255,255,255,255,255,255,255,255,255,255,255,254,253,249,236,225,197,176,154,118,99,83,79,
+51,9,0,0,0,0,12,24,35,41,35,41,83,125,113,66,71,72,56,50,56,59,57,65,73,80,91,94,92,78,55,59,109,136,150,172,189,196,191,157,127,142,157,183,214,211,214,205,
+177,200,242,239,234,228,227,224,217,225,234,217,208,189,137,141,150,158,194,172,94,123,142,155,161,167,179,180,178,191,148,121,137,179,189,175,155,140,107,63,37,48,59,64,48,41,41,33,
+33,37,41,38,37,37,31,26,30,31,34,38,42,43,42,43,48,52,59,63,68,73,78,85,107,137,129,92,76,79,106,135,112,68,43,38,44,45,43,45,41,45,40,45,83,141,172,146,
+126,125,156,163,121,97,91,95,104,134,137,116,118,114,122,128,90,73,52,36,30,45,48,102,168,208,193,154,136,153,160,132,105,100,87,64,45,45,47,65,76,71,58,69,86,98,97,105,
+111,108,95,72,62,50,45,59,108,108,69,76,79,82,106,141,168,160,90,57,76,146,155,143,130,126,114,107,115,107,71,48,30,30,33,40,90,203,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,254,253,241,215,201,205,184,111,95,84,66,40,10,1,0,0,6,22,33,42,52,47,70,113,120,78,83,118,112,114,111,105,128,113,122,147,164,158,144,125,99,64,70,
+107,139,175,193,191,193,167,137,163,203,205,222,218,212,222,200,220,242,255,248,249,254,253,247,242,242,243,241,241,214,201,231,221,193,196,203,162,170,140,148,148,147,153,168,182,203,193,189,
+205,198,189,177,151,118,85,52,33,30,41,42,38,34,29,30,41,52,49,45,38,35,34,30,34,36,35,40,42,43,43,47,49,52,58,63,71,78,83,90,107,123,113,85,77,86,97,97,
+70,56,51,49,51,43,37,50,54,56,62,75,129,173,190,171,157,156,171,177,147,109,87,99,112,136,139,150,160,157,164,151,121,86,50,29,26,49,55,80,119,170,217,180,170,177,139,107,
+99,86,77,55,38,42,45,51,56,62,83,107,114,102,129,150,118,97,99,85,68,51,52,68,102,105,79,97,104,97,105,154,173,148,129,121,121,141,147,144,134,129,125,132,134,104,58,35,
+23,27,35,43,97,211,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,254,243,228,218,206,189,154,143,100,61,26,9,3,8,19,26,27,41,56,51,44,86,76,34,24,35,
+79,142,169,168,150,156,160,180,201,205,185,165,141,99,77,79,93,133,175,184,193,185,133,149,179,215,240,234,226,218,228,229,249,255,254,254,255,255,255,255,255,255,254,255,254,248,255,250,
+218,183,169,196,176,196,191,142,95,100,156,148,176,200,200,212,212,200,142,149,141,84,51,35,33,37,37,33,34,31,34,36,48,61,52,41,35,30,30,31,36,36,37,41,44,47,47,49,
+51,54,59,68,75,82,86,90,101,120,97,77,75,82,85,80,63,51,58,66,65,65,64,71,77,73,77,114,163,213,232,236,228,225,214,158,170,114,106,132,133,133,130,170,192,182,189,170,
+132,94,55,30,24,33,40,76,84,80,204,199,197,160,82,91,97,68,63,55,41,41,48,54,70,93,132,134,109,94,121,144,142,150,130,82,62,47,49,82,104,93,97,118,150,141,151,176,
+183,165,160,164,163,153,137,132,137,133,130,144,134,71,34,19,21,30,47,69,113,219,255,255,255,255,255,255,255,255,255,255,255,255,255,254,253,253,249,245,239,226,210,182,164,149,101,49,
+20,13,10,27,44,40,30,52,58,45,41,59,33,22,29,38,63,108,173,156,129,136,149,182,205,205,192,182,161,137,129,107,106,128,156,175,215,185,167,190,170,189,239,240,249,246,249,252,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,242,236,218,200,186,197,177,135,134,172,169,141,187,191,183,194,201,172,91,105,114,69,49,40,40,47,41,33,31,35,41,38,
+37,42,47,42,31,30,31,33,35,40,43,43,52,57,54,55,56,58,63,71,77,84,92,99,102,114,97,79,76,82,80,70,58,54,71,88,87,86,79,91,95,92,106,143,193,240,255,255,
+255,255,214,129,140,133,167,176,170,157,168,187,205,198,192,160,109,65,34,30,30,26,29,55,78,87,151,192,177,105,77,93,79,57,52,49,44,49,61,94,127,113,118,112,95,98,120,128,
+133,167,128,75,63,43,49,87,112,114,112,128,167,177,182,194,194,161,146,164,173,167,157,155,160,153,148,153,120,42,21,22,38,56,115,189,213,248,255,255,255,255,255,255,255,255,255,254,
+255,255,255,255,255,255,253,248,240,171,121,100,95,97,58,31,22,20,23,42,57,48,54,90,88,68,61,65,57,42,44,62,94,118,154,142,151,171,189,199,207,204,200,199,196,194,179,132,
+125,128,154,173,212,213,178,151,144,192,232,248,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,246,218,199,213,201,178,173,187,183,184,116,126,176,193,157,168,
+179,151,109,85,71,61,51,45,41,40,38,40,41,41,44,33,24,29,37,36,30,29,31,35,38,48,55,57,59,63,64,61,61,61,65,78,86,95,106,112,119,121,105,83,73,73,70,66,
+61,63,88,115,113,108,102,105,112,130,158,186,214,250,255,255,255,252,236,201,168,168,194,203,179,184,200,204,212,219,192,157,98,49,26,29,35,41,49,50,51,70,113,179,169,94,102,88,
+58,50,48,50,54,66,86,129,164,113,85,90,92,93,121,120,115,154,123,85,77,51,57,85,126,139,147,154,157,185,182,180,183,177,178,184,180,170,171,167,167,160,144,126,68,21,28,62,
+79,123,217,255,255,255,255,255,255,255,255,255,255,254,248,245,255,247,180,197,213,186,212,241,194,91,66,87,102,92,61,29,24,24,34,51,70,72,73,85,121,119,78,92,95,58,64,79,
+120,144,160,167,183,196,217,226,232,227,220,212,206,193,178,128,127,139,154,150,136,183,176,149,179,226,226,245,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,
+229,200,187,212,236,228,221,211,185,139,85,128,149,161,118,107,151,156,120,82,80,71,59,49,33,31,41,47,52,56,49,26,19,23,28,31,31,33,37,41,47,55,65,75,69,68,70,71,
+70,66,70,83,100,109,125,141,156,146,132,111,100,83,68,68,77,86,108,136,147,139,136,123,116,157,205,218,224,250,255,255,255,235,232,198,176,175,191,201,177,185,199,220,227,224,197,176,
+99,57,35,41,57,65,63,49,54,76,149,187,200,143,90,68,52,55,59,62,80,100,116,132,129,98,85,90,106,113,139,123,118,119,111,99,85,65,72,104,151,158,169,162,135,151,184,177,
+186,215,221,210,198,177,175,161,161,157,94,37,29,29,44,65,99,176,253,255,255,255,255,255,255,255,255,255,255,252,234,227,231,160,54,52,63,65,95,160,137,66,57,64,90,84,57,31,
+30,41,56,70,82,78,65,83,111,119,115,148,118,64,77,102,143,173,191,206,219,231,246,250,250,247,239,227,212,192,189,134,102,126,133,123,97,151,200,201,224,238,241,252,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,240,236,247,242,248,241,238,225,167,139,144,165,123,132,136,98,108,107,83,94,98,97,92,82,70,45,50,57,56,65,45,27,
+21,26,28,31,40,44,48,52,59,64,70,75,75,79,83,82,78,72,77,84,102,121,143,167,189,164,156,149,132,101,97,95,102,107,107,135,157,147,160,157,151,186,210,232,249,254,255,255,
+255,227,198,205,183,185,178,185,196,199,197,206,211,207,185,160,106,85,71,84,115,105,85,64,59,93,178,219,218,182,109,88,73,77,86,115,160,168,161,137,121,114,112,120,129,129,141,130,
+120,122,121,88,79,86,102,151,177,156,171,170,108,115,167,190,221,236,234,229,219,187,177,162,168,111,20,7,31,30,35,27,33,100,247,255,235,247,255,255,255,255,255,255,255,252,228,213,
+137,73,45,36,38,45,50,92,107,63,56,51,51,44,33,33,41,66,90,80,70,73,61,61,102,100,153,169,128,92,78,112,144,176,224,238,243,254,255,255,255,254,255,240,208,192,186,130,
+90,102,91,92,90,127,186,224,224,236,249,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,247,249,253,247,245,241,225,217,221,226,205,153,146,118,95,
+77,70,86,107,105,120,125,132,128,83,68,69,55,54,42,30,24,31,40,44,52,58,61,65,69,72,71,71,73,77,80,83,80,75,80,101,121,135,150,172,196,180,171,172,160,129,109,126,
+132,146,149,148,164,163,168,176,197,222,210,224,250,255,255,255,255,246,220,228,217,189,169,203,218,205,199,198,178,189,182,160,130,112,112,141,176,147,92,84,88,121,190,218,219,215,171,129,
+98,104,142,206,242,241,239,212,170,142,132,137,139,136,141,143,120,137,116,98,115,126,142,190,197,170,176,164,111,112,136,162,211,228,229,226,212,198,184,180,156,62,0,0,12,8,12,14,
+9,35,150,222,211,245,255,255,255,255,255,255,255,250,232,208,122,73,56,49,48,50,50,76,93,72,62,56,43,34,29,33,42,54,79,70,69,85,68,68,106,113,151,142,161,157,115,93,
+123,183,238,250,255,255,255,255,255,255,250,198,173,189,182,148,101,91,78,78,86,109,132,173,220,240,243,254,255,255,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,254,253,250,250,247,245,236,236,233,221,161,114,87,92,79,92,106,120,133,142,156,164,112,72,70,63,63,49,40,33,30,37,49,56,62,66,70,72,70,68,65,69,71,75,75,76,
+78,76,79,120,154,149,149,186,212,190,171,197,192,161,93,82,112,178,197,186,183,182,173,191,226,224,212,222,248,254,255,255,255,253,240,231,208,184,203,234,221,198,205,212,189,187,193,185,
+182,177,196,201,179,182,112,106,119,185,186,189,217,239,222,194,161,154,220,255,255,255,255,238,190,165,157,155,153,151,147,140,127,139,141,133,136,135,167,212,205,197,199,150,126,129,129,155,
+206,226,231,224,206,204,182,178,136,70,24,16,15,24,29,21,9,7,30,115,146,171,234,245,236,253,255,255,255,250,247,236,151,83,65,61,50,43,47,63,77,78,72,57,41,33,29,33,
+41,45,50,49,61,76,78,80,92,135,126,142,176,137,100,112,127,189,239,247,255,255,255,255,255,254,231,170,167,185,183,158,107,98,90,93,105,120,127,141,197,234,240,254,255,255,254,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,252,248,247,247,234,225,214,190,156,119,102,104,122,137,134,141,137,150,182,185,111,55,52,56,65,51,49,44,
+31,37,47,56,61,62,65,65,64,65,66,70,75,75,76,72,72,73,77,102,148,175,183,196,215,217,198,192,194,146,78,62,90,171,189,158,146,150,142,180,226,210,215,225,229,232,242,252,
+255,255,247,220,199,192,232,248,228,213,213,218,208,204,203,201,212,239,255,245,207,206,178,143,156,211,213,219,242,248,249,245,228,219,240,255,255,255,255,245,219,205,196,220,224,204,200,172,
+146,153,162,160,141,148,177,213,226,235,224,158,125,164,153,167,212,228,231,225,203,200,211,184,128,90,95,137,125,107,66,33,16,12,28,37,41,88,196,225,232,254,255,255,255,254,255,253,
+186,98,70,66,58,49,52,61,71,77,70,52,40,33,30,30,36,38,38,34,43,58,77,76,95,151,160,156,116,101,113,143,172,192,211,228,234,250,255,255,255,255,221,191,192,193,182,146,
+105,120,121,126,139,154,144,130,185,227,242,253,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,252,248,248,243,236,231,221,192,187,182,170,167,
+175,157,120,126,119,134,169,185,134,73,59,62,68,56,47,38,35,36,37,48,54,56,58,58,59,64,68,75,83,79,79,80,76,72,73,86,122,155,190,191,191,205,196,163,158,161,98,73,
+85,125,158,161,123,113,112,151,194,201,200,201,197,191,207,234,247,234,224,207,190,193,221,233,221,204,208,222,222,232,219,225,229,245,255,255,248,235,255,238,245,247,247,239,254,255,255,253,
+250,249,254,255,255,255,255,255,250,252,248,250,255,252,255,240,225,217,193,191,192,182,187,221,238,243,228,193,165,185,156,185,217,226,227,217,193,158,184,208,162,142,160,192,199,135,86,58,
+35,24,42,56,38,90,173,224,240,255,255,255,255,255,255,255,198,106,71,68,62,55,61,65,75,72,64,50,38,31,34,35,37,36,33,30,36,43,55,61,105,161,143,127,115,116,135,150,
+199,194,197,207,187,226,255,255,255,253,219,203,208,196,167,128,112,132,140,149,161,155,157,154,199,235,247,252,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,250,242,245,240,238,241,236,231,233,231,220,211,192,162,133,120,100,105,135,155,121,85,87,100,59,49,45,43,57,52,43,47,58,59,61,69,77,92,104,109,125,112,101,99,
+100,90,78,82,93,133,210,221,194,191,197,170,146,191,155,104,125,160,170,164,123,125,118,132,142,147,179,191,182,162,182,212,214,201,197,183,179,185,204,212,199,189,214,232,229,217,218,235,
+235,238,252,255,255,255,255,255,255,255,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,255,255,255,255,255,249,242,246,250,234,227,242,249,246,239,213,193,200,178,201,
+220,226,224,207,164,127,154,149,177,210,164,153,184,151,121,86,61,41,50,68,68,99,175,214,240,255,255,255,255,255,255,243,165,98,77,69,63,58,62,72,78,68,64,58,48,34,36,41,
+43,38,33,30,31,35,34,42,88,128,109,93,135,154,168,184,189,171,190,172,161,226,254,255,255,248,218,194,206,193,163,143,141,140,160,169,173,167,161,156,194,234,242,249,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,234,239,235,228,227,233,239,239,232,217,207,194,175,151,116,91,85,108,122,73,69,86,105,63,43,48,66,
+87,92,107,88,106,116,100,122,153,164,162,167,170,164,148,136,119,107,91,95,115,154,194,180,184,193,199,182,167,199,198,167,179,207,205,180,120,115,113,107,123,114,143,164,157,153,167,182,
+187,182,171,157,160,171,192,205,183,176,199,211,203,180,211,239,245,247,245,254,255,255,255,255,255,255,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,253,252,248,236,220,208,196,220,228,233,228,211,163,132,182,148,192,238,168,184,187,149,148,106,73,58,49,51,64,86,160,191,212,255,255,255,255,255,255,217,
+130,91,85,75,68,65,64,82,82,66,63,59,55,41,41,45,47,38,33,31,33,41,47,44,48,59,65,66,93,141,189,211,197,167,142,151,162,194,228,249,238,222,204,193,205,194,156,154,
+176,178,192,208,198,178,176,169,201,228,234,224,243,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,246,253,255,255,248,236,238,236,233,226,222,226,229,226,212,203,
+193,176,149,122,91,73,98,94,57,61,65,71,66,41,28,26,68,139,158,137,115,132,143,171,182,185,176,147,139,157,171,171,142,116,94,105,128,137,157,156,136,170,192,189,169,190,207,201,
+197,199,189,179,121,91,91,73,78,82,95,116,115,108,125,139,153,155,136,133,142,160,183,185,178,160,163,155,154,162,199,234,248,252,254,255,255,255,255,255,255,255,255,255,253,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,250,246,242,240,234,233,241,245,246,235,218,176,143,186,207,215,162,142,206,229,177,133,107,
+72,79,93,108,105,100,132,177,196,232,228,239,255,255,255,219,150,111,87,73,66,66,72,86,85,76,79,73,62,47,43,47,47,43,40,35,34,36,41,43,36,36,45,69,85,137,189,158,
+155,141,134,151,168,150,161,189,191,185,175,175,182,182,179,194,203,194,189,201,200,200,192,179,208,228,221,197,220,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,248,252,250,
+250,253,253,253,248,240,240,236,232,226,225,222,220,218,208,203,191,173,151,123,92,80,84,73,73,65,58,64,62,57,35,12,8,107,144,51,22,37,57,132,172,170,132,112,136,153,168,177,
+139,128,97,93,109,111,126,168,148,140,158,162,158,171,180,189,190,179,160,156,146,102,64,52,42,44,59,83,83,79,97,104,119,122,116,120,137,154,178,171,168,153,161,142,143,165,198,234,
+252,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,249,233,203,214,232,229,242,250,252,
+253,252,243,224,180,157,193,218,196,141,133,161,219,233,170,104,68,88,79,82,87,136,165,192,199,163,172,212,252,255,255,234,183,130,79,61,58,59,71,101,109,93,94,85,64,51,57,63,
+65,63,45,42,40,30,33,33,29,35,50,90,98,115,146,120,123,121,126,127,130,127,143,163,170,161,160,164,176,183,201,221,205,199,205,199,193,213,215,204,197,210,192,186,218,249,255,255,
+255,255,255,249,255,255,255,255,255,255,255,255,254,248,250,253,254,254,253,252,248,246,240,243,240,232,234,225,225,219,211,199,170,142,125,108,79,90,80,57,63,61,45,47,38,52,45,15,
+0,54,76,10,14,29,42,95,149,154,144,155,160,164,157,161,156,155,112,86,91,101,106,129,154,154,127,132,144,143,119,146,167,150,134,135,125,75,31,23,22,24,36,55,58,64,76,82,
+95,101,108,114,129,140,153,147,129,140,151,146,156,187,225,243,246,255,255,255,255,255,255,255,255,255,255,255,255,252,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,235,182,160,178,214,225,238,247,253,255,255,247,224,176,151,190,206,168,154,137,82,77,151,155,113,66,70,48,29,36,99,189,196,175,154,190,217,239,255,255,250,
+197,115,71,65,64,62,71,111,119,104,99,92,73,72,73,77,90,78,50,43,38,35,34,30,33,54,71,88,86,92,111,90,80,79,92,122,139,119,121,143,142,134,142,165,178,187,211,229,
+217,229,242,229,212,217,225,224,217,200,192,171,214,249,255,255,255,255,245,238,254,255,255,255,255,255,252,246,245,241,252,252,252,254,254,253,247,247,246,243,235,241,243,240,236,218,207,178,
+144,108,86,93,88,82,66,57,49,38,22,21,28,33,35,14,3,12,14,10,16,33,48,90,160,177,176,175,164,155,129,143,172,171,148,106,85,97,106,116,150,158,125,108,108,98,64,93,
+119,113,116,113,76,27,13,10,13,20,34,49,54,57,61,68,84,100,115,125,135,149,153,142,119,126,146,169,190,215,240,245,248,255,255,255,255,255,255,255,255,255,255,255,255,254,254,253,
+250,255,255,249,248,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,238,224,253,247,187,164,177,204,234,240,250,255,255,255,246,225,199,162,180,193,142,93,84,57,42,70,98,87,
+47,33,36,41,80,109,126,165,163,169,199,203,231,242,249,229,170,97,71,76,75,71,78,101,132,139,120,111,99,105,98,90,87,64,44,38,34,36,36,31,31,45,61,66,68,66,79,59,
+54,62,73,122,139,99,92,108,122,148,156,170,186,197,213,221,231,250,252,239,221,222,232,225,219,207,200,170,220,249,254,255,231,220,203,215,247,255,255,255,255,255,240,228,239,245,249,248,
+249,252,254,252,250,252,248,240,236,241,247,241,232,204,199,182,160,108,77,82,84,93,77,59,41,24,13,10,15,16,15,9,5,7,8,15,16,26,40,64,148,180,175,165,149,150,146,144,
+158,165,164,139,100,86,93,115,132,127,108,92,85,80,61,73,79,83,85,82,44,19,7,5,15,28,48,59,61,61,58,64,78,101,118,136,164,183,163,155,153,149,147,182,210,218,221,232,
+245,252,254,255,255,255,255,255,255,255,255,255,255,255,255,253,233,236,238,241,248,255,255,255,255,255,255,255,255,255,255,255,255,255,232,218,199,168,213,249,208,161,175,207,228,242,253,255,
+255,255,243,220,196,182,169,147,111,63,56,40,33,38,62,47,36,28,23,28,71,106,119,155,182,168,173,155,149,139,142,139,100,80,71,76,78,76,80,98,134,162,140,112,102,106,109,101,
+71,48,38,34,33,34,30,27,30,38,52,52,57,52,54,44,54,68,95,137,122,95,100,123,168,182,171,172,182,207,218,229,240,248,253,254,247,233,227,231,240,206,179,172,222,255,255,247,
+172,158,176,200,225,252,254,255,255,255,250,245,236,236,241,236,247,250,255,253,248,233,235,241,246,247,246,238,224,208,191,167,128,107,73,56,78,93,82,57,27,13,12,14,16,13,10,8,
+8,15,17,14,12,15,24,33,70,132,153,130,104,107,134,147,157,149,155,162,125,69,72,86,99,105,93,77,63,62,61,59,61,72,66,55,33,14,5,1,19,47,79,94,84,75,62,68,
+83,104,126,150,171,194,176,168,170,157,146,182,222,228,227,234,241,235,229,248,255,255,255,255,255,255,255,255,255,255,249,246,231,206,221,235,249,255,255,255,255,255,255,255,255,255,255,255,
+255,253,221,208,217,190,165,180,175,162,177,201,228,246,255,255,255,255,241,219,190,184,173,108,58,47,41,33,26,27,29,27,30,33,26,24,36,71,133,184,150,113,106,70,55,52,55,64,
+72,78,76,77,79,79,84,104,143,186,167,118,106,109,121,114,77,52,37,34,33,31,31,31,31,34,44,44,49,51,55,57,62,78,134,139,95,94,114,136,154,163,165,157,163,208,233,242,
+248,246,248,248,253,252,241,246,245,204,175,173,177,212,214,197,122,144,185,214,206,201,247,255,255,254,254,247,226,205,220,234,239,231,243,252,234,194,201,234,242,247,245,241,229,221,173,132,
+88,88,102,112,104,98,77,50,20,16,21,23,22,14,10,10,15,20,19,13,8,10,19,22,31,48,77,101,94,75,104,147,153,125,150,153,90,49,58,73,85,86,86,68,44,40,38,38,
+44,54,48,34,19,6,3,10,44,79,106,101,90,86,63,71,114,139,135,144,176,201,182,170,185,172,155,162,214,234,234,226,232,235,240,240,247,255,255,255,255,254,255,255,255,255,236,232,
+234,213,211,220,234,254,253,255,255,255,255,255,255,255,255,255,255,254,240,215,204,200,200,173,167,184,182,186,220,246,255,255,255,253,235,214,200,199,205,156,76,40,37,31,16,17,23,15,
+22,30,24,27,34,47,104,126,78,42,30,30,29,41,62,82,100,86,82,79,77,79,88,104,142,201,187,129,107,108,133,157,132,76,43,33,34,42,44,43,41,38,42,41,44,68,101,87,
+78,134,164,130,94,98,130,147,156,187,196,197,207,233,249,250,253,248,246,247,248,254,239,229,221,208,179,157,130,133,140,139,105,123,158,189,173,210,255,255,255,254,249,239,229,233,238,231,
+207,213,229,235,225,182,189,215,227,235,231,231,235,231,210,185,164,161,156,161,150,119,73,35,23,28,26,27,28,23,19,19,30,33,16,13,15,16,20,24,30,31,55,93,82,62,85,144,
+149,114,150,107,45,42,51,70,76,71,73,63,38,23,19,23,40,59,44,17,10,7,13,31,65,106,139,135,108,95,73,71,114,161,161,158,191,218,203,177,192,180,149,140,179,221,229,218,
+196,197,234,238,227,243,255,255,255,253,253,255,255,252,221,228,221,214,221,219,234,250,252,255,255,255,255,255,255,255,255,254,252,241,219,220,222,222,217,196,198,205,182,154,187,245,255,255,
+255,252,231,211,208,208,208,178,111,69,47,23,16,16,17,14,20,26,28,29,38,66,76,70,55,22,22,26,45,94,136,162,146,98,85,77,72,73,85,97,114,151,146,127,113,113,141,183,
+189,116,68,38,41,64,69,64,54,51,58,54,57,101,161,139,126,193,204,165,148,146,167,185,197,205,208,222,245,254,254,255,253,249,248,238,235,228,231,210,187,185,171,144,111,106,108,105,
+88,104,153,165,151,217,255,253,252,240,246,246,227,226,247,239,198,196,199,211,184,186,206,208,206,210,180,178,203,215,213,207,208,194,167,157,146,123,87,56,41,34,24,29,36,34,28,34,
+56,49,27,20,23,24,19,22,27,37,48,55,56,48,64,139,158,147,154,71,41,45,51,64,58,54,59,58,40,16,14,27,73,93,42,19,22,27,41,72,94,125,172,163,119,83,71,68,
+83,134,165,183,183,198,212,198,175,173,150,128,154,199,228,197,160,180,193,217,215,224,252,255,241,238,254,255,255,252,238,241,215,218,231,243,253,253,254,255,255,255,255,255,255,255,255,255,
+249,235,219,238,242,233,210,194,206,197,190,182,208,252,254,254,254,247,228,215,208,211,208,178,144,109,56,17,19,20,21,21,26,28,33,37,44,73,82,77,72,54,51,61,77,118,160,162,
+130,84,70,61,65,69,77,91,97,111,119,109,115,121,139,176,173,148,108,64,62,71,86,82,62,56,71,84,92,115,192,240,232,235,233,220,199,193,204,203,207,217,228,245,254,255,255,255,
+252,242,238,220,215,224,219,186,171,199,176,141,109,90,86,88,90,95,135,155,154,180,224,242,233,224,252,242,210,211,238,252,229,198,193,222,183,191,199,189,200,206,172,176,210,224,222,220,
+212,189,184,178,169,143,108,77,52,40,30,26,26,27,24,33,41,35,36,33,31,36,31,29,31,45,54,51,47,49,55,100,150,133,100,54,43,42,44,49,45,44,48,48,37,28,23,76,
+108,66,34,29,41,59,78,113,122,128,163,163,144,97,75,62,63,88,129,198,205,183,189,187,157,148,173,153,157,193,213,179,180,185,168,198,214,211,224,234,231,240,255,255,255,254,252,252,
+247,247,253,255,252,248,250,255,255,255,255,255,255,255,255,255,254,246,245,245,229,214,199,196,196,182,172,200,245,252,254,254,252,241,222,213,205,213,210,204,193,108,56,34,23,27,29,29,
+35,35,38,54,49,87,113,75,73,75,102,129,133,142,158,146,118,70,48,37,58,69,72,80,83,83,86,85,100,119,126,142,149,147,119,102,97,97,102,93,70,65,75,92,121,136,176,253,
+255,248,218,220,210,214,219,219,219,233,246,255,255,255,255,255,253,228,204,182,185,204,219,185,183,204,165,120,111,83,82,93,87,90,129,204,199,192,208,234,235,252,252,203,182,215,246,253,
+254,247,250,246,208,201,204,199,217,219,205,218,222,205,208,232,222,210,206,196,155,123,119,107,59,37,27,26,20,23,24,30,33,33,40,61,70,70,64,44,37,45,55,48,38,38,34,36,
+58,44,33,48,54,37,34,40,47,56,50,44,48,58,64,112,109,73,58,56,73,101,111,147,154,122,119,137,136,119,85,73,78,87,137,221,212,192,189,192,175,165,197,184,175,187,203,205,
+187,167,180,207,217,208,200,205,228,252,255,255,255,255,255,245,246,252,255,255,252,245,250,248,250,253,255,255,255,255,255,255,255,250,249,236,207,189,190,210,211,187,184,207,248,250,255,254,
+248,232,214,207,206,207,207,198,197,123,43,52,38,36,38,35,35,43,59,79,78,69,56,44,49,62,125,146,148,157,164,156,129,75,52,42,56,64,69,70,68,64,66,73,83,105,112,121,
+156,134,114,118,105,105,106,92,83,77,87,126,171,190,229,255,255,235,199,210,211,217,220,222,229,245,255,255,255,255,255,255,247,214,183,170,160,185,215,196,193,184,121,101,102,78,86,93,
+93,118,149,186,194,206,203,240,255,255,227,184,208,225,241,252,252,253,249,249,232,220,215,199,203,232,225,219,211,194,205,222,229,231,227,219,153,135,154,142,80,38,27,23,17,17,29,34,
+28,31,50,82,107,104,93,69,47,42,48,44,34,19,24,20,22,29,33,51,57,36,33,52,65,63,49,50,69,94,132,132,97,76,68,76,98,128,146,165,156,127,111,127,132,130,93,84,
+114,165,179,182,146,144,179,196,185,176,204,204,200,194,196,207,190,179,206,225,227,224,204,208,227,254,255,255,255,255,255,243,242,245,249,255,253,243,228,228,240,242,250,255,255,255,255,255,
+255,254,249,221,184,196,213,222,210,190,198,196,233,252,254,253,246,227,212,217,208,205,211,203,200,165,94,92,78,61,52,49,43,47,79,105,90,58,44,43,38,41,65,108,141,165,154,98,
+66,61,57,51,56,57,62,65,62,57,59,65,72,90,111,146,167,135,134,104,80,83,86,79,82,91,151,218,249,243,250,255,255,246,212,213,219,224,235,247,253,254,255,255,255,255,255,250,
+231,203,178,173,167,184,200,214,198,160,106,104,112,86,82,79,111,111,148,193,176,175,178,220,239,215,157,155,183,238,241,248,248,246,217,200,210,210,204,183,199,215,198,185,200,213,201,197,
+208,224,224,220,170,116,132,127,62,28,26,22,24,22,21,35,43,52,69,83,105,109,109,80,49,40,45,55,51,35,27,38,62,66,63,83,65,42,76,100,97,72,55,45,83,160,160,151,
+115,80,68,76,99,135,180,164,137,106,100,116,105,80,72,75,128,146,130,143,167,121,144,175,177,169,184,196,205,220,217,217,226,189,203,213,199,201,186,197,218,249,255,245,226,226,236,233,
+235,232,229,233,241,233,228,238,252,248,249,255,255,255,255,255,255,255,246,217,207,225,228,225,201,185,206,224,239,248,250,247,240,221,207,206,203,204,211,206,201,194,189,155,122,127,97,73,
+54,59,105,118,73,52,50,43,43,43,31,72,115,137,76,40,52,63,57,55,52,54,55,57,56,55,57,59,64,77,104,143,176,158,161,94,63,69,80,87,104,128,207,255,255,255,255,253,
+254,248,232,219,221,232,250,255,255,255,254,255,255,255,249,228,207,184,163,154,151,165,193,213,157,116,105,119,115,107,93,94,147,140,144,178,151,146,160,171,163,185,207,198,204,249,249,241,
+232,205,168,133,151,165,178,192,205,214,194,155,194,224,212,197,193,194,197,203,161,113,125,112,56,28,21,19,35,34,22,38,69,85,86,84,112,129,118,71,51,38,34,55,50,50,95,140,
+136,112,85,84,90,116,162,154,127,83,82,71,104,163,162,176,177,136,86,82,95,120,172,148,153,120,72,88,77,57,47,51,84,109,118,106,148,147,129,130,143,156,165,168,198,215,204,212,
+228,211,185,171,137,141,130,144,175,211,228,196,141,160,186,215,229,214,217,227,234,227,241,254,255,255,255,255,255,255,255,255,255,255,254,246,240,238,239,232,211,197,224,238,236,246,246,241,
+233,210,201,201,199,204,210,208,210,207,212,191,170,186,144,111,82,87,105,100,79,71,61,55,49,45,45,47,65,58,21,29,48,59,56,50,45,44,49,50,48,48,51,55,58,73,92,132,
+172,169,142,88,64,58,75,118,171,225,246,255,255,255,254,253,249,218,224,217,215,234,253,255,255,255,253,241,240,242,233,204,184,161,149,146,148,165,196,196,148,101,97,108,115,136,142,129,
+189,163,146,154,133,132,164,150,161,213,253,255,255,253,242,225,213,149,115,115,123,142,170,193,192,183,142,115,170,206,210,214,205,177,160,172,139,111,121,99,55,35,23,27,48,34,27,45,
+75,95,80,101,111,122,113,88,59,31,28,62,50,79,180,203,164,123,95,79,98,146,171,168,139,88,98,112,129,146,150,175,198,162,133,108,88,122,167,155,170,144,101,88,70,65,43,49,
+70,94,127,112,112,144,158,118,114,122,121,109,155,182,173,208,231,203,154,132,102,97,90,99,112,140,163,150,111,105,137,184,180,182,205,220,222,220,247,250,249,252,255,255,255,255,255,255,
+255,255,255,254,253,250,245,236,226,215,225,238,246,248,246,243,229,207,197,191,192,203,210,215,215,222,215,203,218,190,155,141,122,113,92,105,122,91,87,85,64,57,51,37,42,36,22,30,
+42,47,48,41,37,36,38,37,40,43,44,48,52,68,93,118,128,133,121,82,58,61,78,120,171,232,245,248,255,255,255,247,234,196,213,218,201,226,250,255,255,255,240,206,192,206,217,203,
+171,150,150,150,144,154,207,224,178,134,115,115,153,164,200,198,206,183,144,134,127,132,164,185,165,217,254,238,192,179,143,134,127,104,108,119,108,126,136,156,160,116,88,88,120,183,207,214,
+196,158,140,136,122,113,127,90,58,48,40,56,68,50,63,99,123,105,99,128,130,134,125,95,52,35,44,62,68,88,146,182,160,153,121,87,134,170,193,214,163,113,143,143,157,151,154,167,
+167,180,183,137,122,147,169,161,164,141,118,102,78,69,62,56,72,98,119,120,126,143,139,113,93,88,86,73,109,139,156,200,210,164,109,83,82,80,70,77,73,77,93,95,82,78,97,105,
+106,136,167,198,219,219,235,242,248,249,254,254,255,254,252,254,255,255,255,255,255,254,247,239,231,222,204,206,229,242,229,224,204,180,172,179,176,196,208,229,231,232,222,225,227,184,182,190,
+183,135,93,100,109,86,86,87,80,70,55,40,31,29,23,29,40,38,37,29,26,27,29,27,31,37,41,44,45,58,87,107,99,107,111,82,59,65,88,120,126,153,189,218,239,245,225,214,
+226,172,183,212,203,211,240,252,253,245,229,211,207,212,220,212,183,161,149,169,178,165,214,246,222,172,157,142,179,197,219,228,246,245,214,194,150,150,179,210,221,243,255,201,149,140,134,144,
+128,95,111,99,104,106,105,149,141,92,75,91,139,196,212,192,135,92,120,140,115,113,134,113,68,59,64,90,85,86,116,165,167,125,127,168,184,160,147,95,68,68,65,50,52,125,170,183,
+191,194,171,177,212,201,199,205,194,165,163,137,141,140,127,147,146,185,203,187,186,191,183,183,176,147,116,91,70,63,71,65,61,71,82,91,102,108,105,90,78,72,77,78,97,118,147,179,
+186,133,80,65,66,57,51,59,57,50,48,52,56,73,93,93,88,105,136,158,206,219,213,226,225,233,250,253,249,247,245,243,253,252,254,254,254,254,253,245,235,219,160,171,225,246,222,206,
+183,155,132,146,172,197,203,229,241,240,240,240,240,235,235,225,220,175,122,104,88,69,63,65,77,58,40,29,28,24,21,23,27,28,21,15,12,15,20,22,27,34,38,45,47,50,68,86,
+95,104,111,84,73,70,84,102,132,156,204,210,190,200,200,217,229,212,208,224,221,186,192,232,236,235,225,224,222,212,185,183,173,148,140,176,221,214,219,238,215,206,194,175,219,249,247,243,
+242,242,210,168,162,136,106,143,235,248,235,169,149,147,168,169,180,154,125,99,111,105,120,139,150,133,105,147,192,206,203,177,130,98,135,154,128,118,107,113,91,69,70,104,100,115,119,170,
+189,169,163,204,164,126,112,105,114,94,65,43,82,208,239,235,250,240,239,255,226,187,179,186,196,176,199,180,120,84,98,153,139,184,201,205,211,207,187,153,165,148,111,80,49,44,48,47,
+48,55,57,64,76,80,84,80,65,54,61,68,77,97,132,161,189,132,93,70,42,36,47,44,43,48,41,41,47,73,122,123,111,122,126,132,172,183,133,141,125,101,149,235,242,236,235,227,
+233,241,247,250,253,254,253,243,240,228,180,196,231,222,205,182,169,149,133,149,184,203,201,236,246,249,250,252,253,253,250,246,240,190,141,114,77,56,49,43,42,36,34,31,29,27,26,26,
+22,16,12,3,0,1,9,14,20,26,33,41,48,51,56,69,85,84,82,77,86,92,94,90,126,167,191,210,193,180,197,220,232,235,227,222,228,175,135,150,165,214,228,225,191,156,156,176,
+169,151,128,162,215,228,220,236,204,234,241,234,249,255,255,253,247,225,169,137,155,143,94,121,189,168,144,113,128,177,200,189,186,153,102,94,112,123,164,161,182,193,179,160,168,179,171,168,
+164,161,180,163,132,140,140,170,158,134,135,128,91,82,92,154,212,212,206,179,136,105,102,112,105,82,61,48,151,246,246,255,255,255,250,250,242,235,231,213,196,187,196,161,126,136,177,156,
+151,194,192,192,204,203,160,108,129,114,82,62,47,41,27,27,30,33,36,47,68,69,63,69,62,44,44,49,59,77,115,136,148,130,98,58,31,24,29,33,37,41,40,38,51,85,157,168,
+119,130,132,130,149,105,64,86,72,44,50,133,218,212,220,210,211,200,208,236,245,250,252,246,235,233,219,213,221,187,170,167,168,167,155,169,192,207,227,247,252,253,255,255,255,255,254,249,
+213,155,130,100,68,55,49,49,40,31,37,40,34,27,29,28,19,10,3,0,0,0,0,5,10,16,24,33,38,44,50,58,61,65,62,64,91,105,115,92,99,137,161,175,191,165,183,212,
+234,239,218,201,252,213,93,83,102,187,224,191,123,97,113,157,204,200,156,168,168,184,204,200,207,239,247,254,254,255,255,253,255,233,184,196,190,184,160,160,148,108,83,84,122,186,183,178,
+154,97,83,94,111,120,175,186,200,213,185,139,146,162,172,161,149,143,158,148,148,165,183,194,186,187,201,192,136,128,132,141,225,225,189,184,177,140,119,104,88,106,129,126,238,255,253,255,
+255,255,253,253,243,207,192,191,210,187,168,168,179,179,163,107,137,186,187,158,180,182,146,114,90,68,57,54,44,36,23,17,15,15,23,34,58,50,45,56,58,44,33,38,56,88,125,123,
+100,85,62,35,23,22,24,31,40,37,34,37,50,68,115,191,146,123,136,149,121,49,45,61,48,34,42,73,173,207,208,206,179,148,163,217,236,239,246,242,221,184,155,192,204,163,156,144,
+128,154,164,196,205,214,247,253,253,255,255,255,255,255,255,250,199,137,101,80,71,64,61,61,49,38,41,44,59,43,31,26,15,8,0,0,0,0,0,0,2,13,20,26,30,35,41,45,
+47,45,51,61,86,86,86,79,84,109,142,160,179,172,184,191,212,233,220,199,245,225,98,82,116,185,206,183,146,118,122,144,171,176,164,162,170,179,199,191,175,200,234,249,254,255,255,254,
+255,250,234,227,205,183,165,142,130,99,78,97,127,146,161,160,112,79,71,82,97,107,167,193,186,186,186,173,187,192,187,153,134,146,160,171,187,190,196,191,183,193,206,212,212,229,221,227,
+252,247,227,238,226,194,135,98,125,214,239,241,250,253,254,255,255,254,254,255,238,144,149,172,212,227,219,218,198,168,108,85,137,150,150,104,123,168,155,115,72,57,48,43,37,33,23,19,
+14,17,29,30,38,34,35,45,54,44,31,40,77,118,118,98,72,66,45,28,26,27,28,33,38,36,34,41,48,58,80,160,163,150,137,156,116,30,24,36,33,23,29,44,90,175,203,167,
+87,79,122,200,235,238,240,235,221,186,141,169,167,133,136,122,128,146,155,210,222,224,238,253,255,255,255,255,255,255,255,253,197,109,85,83,79,76,77,69,59,50,50,51,66,43,23,15,
+8,5,0,0,0,0,0,0,0,6,12,17,24,30,35,36,36,36,43,58,75,72,65,62,70,87,113,144,151,147,140,143,175,220,226,208,242,250,147,121,139,136,168,187,162,161,167,161,
+155,150,136,149,170,185,180,187,207,228,246,255,255,255,255,255,252,246,225,217,182,146,127,127,128,102,86,94,94,113,139,122,72,66,64,65,76,118,165,176,178,176,215,200,187,189,175,142,
+155,177,177,204,205,207,203,165,158,190,231,241,250,248,254,255,255,255,252,249,248,248,219,179,208,255,254,255,250,253,255,255,255,255,255,253,240,182,197,226,224,241,233,233,205,136,116,151,
+156,115,136,129,115,132,115,87,72,57,42,37,35,30,20,15,13,16,20,17,23,27,37,41,40,44,52,62,118,127,92,78,63,56,45,35,34,33,33,34,35,34,36,42,58,102,135,135,
+135,120,112,135,98,27,17,16,17,20,24,34,48,102,151,120,56,52,73,125,199,231,234,231,236,215,171,171,161,133,142,118,118,105,132,190,214,225,235,254,255,255,255,255,255,255,255,241,
+150,91,84,83,83,77,73,69,63,62,54,45,43,28,20,13,5,0,0,0,1,0,0,0,0,3,6,12,19,26,30,30,29,33,45,71,78,73,71,65,68,82,101,130,119,94,99,107,
+147,167,155,182,242,250,190,203,229,210,175,172,155,148,154,140,136,127,116,130,185,238,236,233,239,255,255,255,255,255,255,255,221,183,180,201,179,160,129,116,120,119,113,102,104,122,116,93,
+65,51,61,58,79,123,165,193,215,233,221,189,184,173,130,137,187,218,213,215,199,201,200,165,167,226,252,247,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,254,255,255,
+255,255,255,254,254,234,212,234,238,232,231,226,212,197,199,215,179,157,163,154,143,105,76,75,70,54,40,36,31,23,17,13,14,10,3,6,22,37,49,42,48,69,85,108,127,106,84,71,
+63,61,56,42,37,35,35,36,38,40,40,52,70,116,179,139,127,164,155,122,79,47,36,36,34,34,35,31,36,49,58,51,47,48,57,80,143,193,183,178,211,196,162,180,157,128,128,104,
+102,106,119,183,196,197,238,255,255,255,255,255,255,255,255,227,143,93,85,83,75,72,66,64,57,61,48,36,31,24,16,12,5,0,0,0,0,0,0,0,0,1,2,6,15,22,24,24,
+28,38,54,83,91,82,72,70,69,78,104,128,101,88,100,93,153,135,119,168,224,210,217,253,255,246,182,157,147,107,100,112,120,105,118,148,225,255,252,254,253,255,255,255,255,255,255,255,
+203,142,127,167,218,199,156,144,139,161,162,134,118,101,70,57,50,45,57,61,95,136,194,219,221,232,204,186,206,157,149,183,162,199,221,208,226,217,221,224,236,255,254,254,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,250,246,243,233,228,221,229,215,213,212,196,163,153,163,162,114,88,87,88,62,37,30,22,28,30,15,
+14,7,1,17,45,51,43,40,48,77,129,153,132,88,68,59,58,57,52,47,40,38,38,41,43,47,54,65,107,156,200,173,173,183,160,129,102,99,107,105,83,61,45,37,36,36,31,35,
+41,45,55,83,126,123,123,134,144,149,170,157,128,116,114,108,111,113,132,187,196,211,239,254,255,255,255,255,255,255,253,220,154,106,93,94,84,79,72,69,55,45,43,34,33,27,20,15,
+6,2,0,0,0,0,0,0,0,0,0,6,15,20,21,23,31,45,59,87,94,86,69,72,69,77,112,140,141,112,91,88,118,115,111,146,180,154,172,229,255,240,225,206,134,98,106,127,
+129,107,120,179,234,254,255,255,255,255,255,255,255,255,255,253,224,140,122,149,198,207,180,197,179,160,162,139,108,93,73,51,43,51,65,90,126,148,176,179,169,170,191,210,238,189,179,160,
+146,190,217,226,250,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,252,246,228,213,219,218,201,214,211,
+192,176,165,170,150,132,118,84,70,51,44,26,35,57,33,19,12,5,17,65,83,73,51,57,54,95,161,146,134,105,76,57,58,54,49,50,43,40,38,41,43,44,54,73,146,204,221,213,
+203,146,147,175,146,149,149,125,83,58,40,33,35,33,24,24,29,38,48,78,134,130,118,118,119,132,156,177,155,123,137,142,112,111,127,182,217,233,242,254,255,255,255,255,255,255,252,226,
+178,153,105,106,104,90,71,65,54,44,38,35,38,31,28,21,12,5,2,0,0,0,0,0,0,0,0,3,13,17,19,24,34,45,64,95,107,76,70,79,80,95,115,146,173,137,90,76,
+79,80,78,92,113,127,168,176,215,219,196,182,127,105,113,140,169,173,197,241,228,247,255,255,255,255,255,255,255,255,255,255,241,136,128,160,201,210,203,189,158,129,140,128,104,86,90,69,
+48,55,71,92,115,137,137,150,148,148,184,171,187,200,156,136,161,208,217,236,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,254,253,246,227,217,221,217,214,221,217,198,203,200,183,153,140,111,58,40,34,48,95,112,82,34,27,17,10,29,72,94,93,63,79,86,104,135,136,132,121,88,62,
+56,50,48,51,48,41,37,40,42,41,44,68,134,208,224,208,205,173,157,200,194,160,157,114,54,43,34,24,30,26,21,20,24,29,42,68,126,129,115,115,122,114,121,162,170,135,167,165,
+109,112,129,180,220,243,254,255,255,255,255,255,255,254,247,228,201,196,137,115,105,75,54,51,51,48,45,38,40,38,33,22,14,10,7,2,0,0,0,0,0,0,0,5,10,16,19,22,
+31,54,78,120,107,52,69,85,90,116,122,128,156,150,107,78,72,68,64,78,99,115,129,126,162,214,162,177,148,109,116,153,199,219,249,255,249,253,255,255,255,255,255,255,255,255,255,255,
+217,136,135,158,224,228,210,154,135,154,163,135,90,90,95,85,55,52,61,73,78,99,119,113,134,165,165,130,104,176,164,140,151,192,196,238,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,253,213,191,205,200,210,222,217,217,214,208,185,155,105,65,40,28,24,50,154,149,82,62,55,
+31,37,69,107,155,122,65,98,130,144,132,116,114,100,80,68,52,45,50,54,48,44,41,37,40,38,40,55,104,172,203,197,187,187,162,179,205,180,148,86,45,38,33,30,34,29,23,24,
+27,29,42,66,116,126,111,107,102,94,99,121,127,164,203,161,107,105,141,173,210,249,255,255,255,255,255,255,255,255,252,229,205,204,139,78,72,51,47,49,51,52,47,42,41,41,31,19,
+16,17,14,9,7,2,0,0,0,0,1,7,13,16,19,22,26,50,86,143,75,41,57,71,83,93,119,142,143,165,143,98,78,72,69,77,95,116,121,120,180,229,150,140,132,123,146,178,
+214,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,200,164,151,168,240,225,192,146,118,146,158,116,79,84,88,82,57,48,54,62,62,71,83,78,121,153,119,94,83,134,160,133,
+116,157,182,215,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,254,255,255,253,184,153,192,197,194,178,193,
+219,225,196,161,128,79,43,31,29,37,77,129,157,118,115,98,80,147,172,187,210,169,125,148,132,137,128,111,94,80,73,66,55,47,48,51,49,47,43,41,41,41,42,69,107,143,198,208,
+156,130,126,148,173,206,184,133,86,54,41,43,44,40,34,30,28,31,44,65,93,116,106,95,100,82,79,129,128,177,177,163,151,119,119,140,180,249,255,255,255,255,255,255,255,255,227,191,
+196,191,137,79,64,52,52,51,55,64,55,47,47,43,23,17,21,29,27,20,10,7,2,0,3,7,7,9,14,17,23,22,20,42,95,136,69,42,49,61,76,86,137,183,171,165,123,115,
+109,84,66,75,90,127,157,133,183,207,133,143,153,171,192,204,190,234,250,255,255,255,255,254,255,255,255,255,255,255,255,255,233,201,183,185,192,160,132,132,125,109,100,66,64,63,59,59,
+45,40,49,48,49,48,45,56,80,87,73,65,69,98,121,101,108,147,184,207,234,232,242,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,254,235,218,249,255,246,186,157,192,210,205,171,168,211,213,173,133,111,72,41,34,38,59,164,198,189,199,190,186,212,208,173,158,176,193,167,163,139,113,91,77,80,69,66,63,
+52,48,48,50,50,50,45,43,42,43,42,64,133,179,191,203,155,125,108,140,176,196,207,197,123,71,57,57,70,54,37,26,26,31,44,58,79,98,105,104,94,86,90,112,143,154,155,194,
+175,130,112,125,191,248,254,255,255,255,255,255,254,236,165,155,184,189,162,99,71,59,68,77,83,99,72,56,48,31,17,22,29,35,30,20,22,26,12,6,8,9,9,13,14,20,20,17,
+23,37,111,125,75,45,49,61,75,102,176,208,190,186,180,162,151,123,87,76,80,119,142,118,148,179,127,143,172,198,199,215,176,205,243,255,255,255,255,254,255,255,255,255,255,255,255,255,
+255,234,193,196,158,130,149,151,111,72,52,44,43,35,31,33,30,34,38,44,48,36,38,57,70,75,77,72,78,93,90,78,104,163,207,214,191,200,226,254,255,255,255,255,255,255,255,254,
+254,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,249,243,234,226,236,221,206,180,161,172,203,214,199,196,197,165,140,106,99,70,48,38,43,114,220,225,226,235,231,231,
+243,225,199,189,186,186,168,179,146,90,71,78,77,64,65,52,48,52,52,54,52,52,50,48,44,44,41,54,111,143,161,165,153,136,119,146,189,205,201,187,163,109,78,86,78,45,27,24,
+27,33,41,55,76,93,112,109,94,101,101,120,162,154,165,160,128,115,140,150,190,232,239,253,255,255,255,255,255,222,163,165,191,194,170,108,100,90,113,127,141,151,106,72,50,27,23,28,
+35,31,24,23,45,56,22,13,15,14,15,16,16,21,17,17,41,61,95,80,43,37,47,63,98,146,178,170,148,183,239,225,190,151,129,95,75,95,100,104,132,136,118,118,141,168,192,199,
+176,192,239,255,255,255,255,255,255,255,255,255,255,255,255,255,255,246,210,210,180,153,137,109,75,65,49,40,30,23,20,19,21,29,41,50,54,50,56,90,111,119,113,108,121,130,102,76,
+115,178,201,211,197,219,238,250,255,255,255,255,254,254,249,247,247,253,255,255,255,255,255,255,253,255,255,255,255,255,255,255,255,249,235,236,241,232,191,135,130,141,146,169,196,227,227,206,
+158,155,140,109,94,75,73,75,78,194,236,231,236,245,240,234,247,247,238,221,200,189,171,148,118,99,88,83,68,64,68,58,56,55,52,52,54,54,50,49,48,47,47,55,82,104,115,108,
+120,129,113,125,158,185,208,225,194,142,87,84,48,34,28,26,29,36,41,55,54,71,99,95,105,115,98,112,164,171,161,122,118,140,161,201,201,199,218,211,239,255,255,255,255,218,194,203,
+197,178,130,97,123,133,134,139,144,161,109,85,54,34,27,30,30,26,26,34,62,68,30,20,26,22,21,17,17,23,24,33,76,105,105,73,50,37,41,56,92,139,164,154,137,148,212,217,
+175,126,116,90,70,90,100,82,111,155,134,135,143,172,200,196,203,236,246,255,255,255,255,255,255,255,255,255,255,255,255,255,255,248,187,176,178,169,122,73,57,64,50,31,24,17,14,15,
+17,29,42,58,92,97,90,128,146,151,143,153,157,143,111,82,127,177,206,212,226,241,235,247,253,254,254,253,252,246,236,245,241,250,254,255,255,255,255,246,248,255,255,255,255,255,255,253,
+248,236,208,213,198,153,112,101,119,129,185,197,198,232,241,210,186,185,156,142,116,114,160,192,191,247,245,246,248,246,242,246,253,238,163,157,167,193,172,143,123,104,78,63,55,64,62,59,
+58,55,52,52,54,52,54,52,51,52,52,66,69,72,93,98,87,87,90,112,132,143,183,215,175,149,118,79,35,36,31,28,28,35,42,51,45,43,42,38,43,52,63,118,165,139,123,144,
+153,160,165,192,184,200,191,171,228,255,255,255,252,214,196,204,191,158,127,111,113,120,118,123,127,135,98,91,55,35,28,24,24,27,42,62,76,76,37,33,36,35,29,27,24,26,47,71,
+109,135,144,116,75,44,34,44,64,97,118,142,160,123,164,180,177,142,87,72,64,108,133,80,107,189,172,161,160,182,207,217,228,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,254,242,189,170,151,105,61,45,44,37,28,20,16,12,17,21,29,45,71,123,155,155,189,189,180,190,207,197,157,135,102,127,184,218,219,228,228,228,218,217,214,228,238,247,245,232,236,
+241,252,255,255,247,240,233,226,240,255,255,255,255,255,255,246,235,229,217,204,187,160,165,180,171,187,213,228,234,246,249,220,205,217,212,171,130,164,247,249,255,248,249,252,252,253,248,252,
+253,234,146,170,189,189,183,154,122,88,57,42,45,57,50,48,48,49,47,48,50,54,52,54,51,52,55,63,58,58,65,57,55,54,68,93,114,112,115,139,122,125,154,82,23,28,31,30,
+22,28,37,37,30,23,20,20,29,41,45,69,97,98,94,134,164,185,218,206,168,162,153,157,232,255,255,255,252,224,192,200,187,139,113,121,119,127,143,164,171,141,104,92,58,38,28,23,
+24,28,44,65,71,65,47,41,51,56,50,45,38,48,104,135,146,149,143,126,82,35,31,41,45,62,78,112,148,123,109,109,148,165,94,72,79,113,157,147,171,211,182,149,172,229,248,235,
+246,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,226,163,94,65,49,34,22,21,15,13,13,17,22,33,57,90,134,171,199,240,243,232,236,232,196,153,134,106,
+142,193,214,231,238,222,214,176,157,175,198,221,241,241,220,222,232,231,229,218,206,210,210,222,231,249,254,255,255,255,255,254,243,232,231,221,215,218,222,235,217,219,227,232,240,253,253,248,
+245,254,255,249,228,242,255,254,254,253,253,255,255,254,255,255,249,245,210,201,213,192,173,142,111,77,50,35,35,40,37,34,38,42,43,44,45,50,50,52,51,52,54,52,47,38,36,31,
+30,24,27,44,65,63,62,101,141,135,114,51,19,23,23,24,16,20,28,28,22,17,14,14,21,35,38,42,51,63,73,95,156,213,201,183,156,129,160,185,183,206,235,234,225,204,210,199,
+164,126,120,136,142,141,176,201,217,200,109,93,63,38,28,27,28,27,34,47,56,52,43,41,58,69,64,62,68,80,100,144,171,167,150,115,92,41,34,41,44,50,62,73,95,104,88,78,
+93,137,97,65,87,104,135,189,245,228,169,169,164,240,255,240,227,248,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,248,241,179,148,153,49,20,20,17,12,8,12,16,
+19,31,58,94,135,162,193,224,250,245,239,227,185,143,123,121,170,203,218,235,242,201,186,162,136,143,165,184,196,190,187,186,192,184,180,160,154,182,210,226,231,232,241,255,255,255,255,255,
+248,241,239,239,236,232,229,240,234,228,228,231,242,253,255,255,250,250,255,255,255,255,255,255,255,254,253,255,255,255,255,255,254,255,243,220,212,198,168,137,104,75,52,34,22,21,19,20,
+26,33,36,38,41,41,45,47,48,48,47,47,44,35,27,21,17,13,9,19,45,49,43,83,118,111,95,54,21,30,29,15,8,17,29,33,33,21,15,10,7,14,23,22,27,43,91,116,
+162,217,158,151,139,137,141,158,141,162,189,213,214,218,208,172,149,130,137,121,122,144,156,185,215,190,94,78,52,29,26,28,33,29,37,54,66,59,59,66,75,68,59,79,120,111,90,140,
+183,178,153,134,116,49,37,42,45,51,56,57,66,86,88,76,71,123,129,79,75,84,100,164,252,249,233,226,194,201,255,255,235,242,254,254,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,238,186,163,150,70,19,15,17,12,9,10,16,20,29,52,87,122,158,190,201,240,233,205,197,193,178,151,176,219,231,239,242,229,194,173,146,151,139,130,150,155,156,172,171,
+173,163,175,155,153,179,214,225,234,234,248,255,255,255,255,254,253,252,252,249,242,233,235,239,238,227,224,231,242,252,255,254,250,249,255,255,255,255,255,254,255,255,254,255,255,255,255,253,
+254,255,254,247,227,205,171,133,102,76,54,34,21,19,10,10,10,17,22,28,34,37,37,41,42,42,43,43,40,35,24,17,9,6,5,6,23,37,29,55,69,80,113,66,17,19,21,8,
+9,31,49,66,63,31,22,15,7,7,8,12,38,77,130,135,163,207,155,132,111,107,99,88,99,143,189,204,182,192,217,175,142,128,141,99,98,156,169,183,213,190,91,49,38,29,27,36,
+51,52,57,76,77,76,88,114,102,70,64,112,157,154,175,200,193,168,115,92,94,55,47,41,45,52,55,56,57,76,93,84,71,95,108,82,72,76,85,139,219,249,255,254,207,153,215,245,
+255,249,247,252,249,236,250,255,255,255,255,255,255,255,255,255,255,255,255,255,253,177,105,90,78,37,15,16,14,12,10,16,20,27,49,79,122,163,176,169,191,191,200,217,225,208,160,160,
+193,208,219,218,201,180,161,167,196,162,116,139,150,169,207,185,163,141,169,157,163,199,234,242,246,248,254,255,255,255,255,255,254,252,252,254,246,234,236,233,228,212,226,236,240,248,248,250,
+254,255,255,255,255,254,255,255,255,255,255,255,255,255,254,252,250,254,252,248,236,213,176,135,104,78,55,35,21,10,8,7,5,9,12,15,29,37,37,42,45,45,43,40,37,31,24,16,
+9,5,2,3,8,17,21,33,45,47,78,72,33,23,38,34,43,43,59,94,76,35,26,21,19,19,17,24,65,107,139,143,156,198,126,93,84,85,70,59,79,105,147,155,134,154,187,156,
+134,147,162,135,136,192,201,186,193,196,141,66,41,36,33,40,65,77,77,90,101,118,120,125,106,83,86,116,157,189,206,213,201,129,69,54,63,62,51,38,44,52,52,54,55,61,75,82,
+90,95,99,84,86,105,91,111,157,180,221,255,193,163,193,198,235,245,238,224,210,201,242,255,254,255,255,255,255,255,255,255,255,254,254,254,239,172,95,57,36,36,20,14,13,12,10,10,
+15,23,47,78,114,127,113,140,160,156,173,194,179,194,191,187,186,196,196,167,175,196,187,205,213,177,168,185,180,179,210,175,151,161,160,144,176,218,242,246,250,254,255,255,255,255,255,255,
+255,253,252,254,254,243,233,229,232,200,221,231,233,247,249,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,252,254,254,252,245,215,175,141,111,82,64,43,24,13,10,7,
+6,7,9,16,26,35,37,38,45,44,42,38,35,30,23,20,14,8,7,6,9,14,22,28,26,24,43,76,56,58,62,44,62,65,76,79,54,35,27,24,28,24,23,35,69,123,148,163,
+129,156,99,92,97,73,66,64,90,127,137,130,154,182,139,143,155,165,173,180,192,213,215,191,185,192,170,93,63,56,43,55,85,112,101,112,140,157,151,146,121,107,108,100,111,183,210,218,
+191,119,70,68,62,61,47,36,37,45,49,50,50,56,64,68,76,88,107,101,94,128,140,135,139,136,185,254,221,210,225,199,214,229,233,193,172,190,227,248,249,254,255,255,255,255,255,255,
+255,254,252,250,238,154,83,52,26,23,16,15,15,14,10,10,16,29,49,77,100,90,68,106,147,127,135,158,180,190,192,184,183,173,137,113,139,178,201,205,187,192,215,200,175,186,179,154,
+146,164,143,150,197,224,245,249,255,255,255,255,255,255,255,255,253,252,253,255,255,254,252,252,246,212,222,232,234,241,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+253,250,255,255,253,228,164,123,106,77,64,50,26,12,8,8,3,6,7,14,22,26,26,31,44,48,37,37,34,29,24,19,14,12,9,8,12,17,23,24,17,14,27,70,99,64,48,50,
+56,71,64,43,37,33,29,27,26,20,26,45,87,167,169,175,141,139,116,127,132,107,99,82,115,158,161,150,173,147,133,179,191,179,177,205,213,208,208,206,197,176,112,99,83,69,68,82,
+108,132,100,114,141,154,178,175,130,104,120,127,116,172,203,211,197,148,111,75,65,64,50,36,37,40,47,49,49,52,57,55,61,70,88,125,123,151,190,185,143,133,168,252,255,253,248,239,
+224,232,236,184,177,197,206,229,243,254,255,255,255,255,255,255,252,255,253,250,255,164,48,34,16,16,20,16,16,16,14,16,21,33,49,72,94,105,100,118,121,116,146,160,201,206,199,173,
+163,134,105,100,126,165,192,180,186,198,187,165,153,161,129,116,141,169,160,193,232,235,246,249,254,255,255,254,255,255,255,253,252,253,253,254,254,254,254,254,252,234,226,225,220,220,242,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,254,253,240,234,252,255,229,157,108,106,92,69,41,23,12,5,2,2,3,3,9,19,26,26,33,45,51,37,35,36,35,30,21,
+14,12,13,15,23,30,27,28,17,12,30,70,118,79,49,62,86,82,41,40,48,42,36,29,21,21,36,52,75,161,168,180,201,168,127,130,139,135,121,86,99,135,172,196,185,157,177,193,
+197,169,185,208,198,185,205,218,207,162,107,116,98,108,108,109,140,137,118,128,149,167,194,185,144,126,142,127,161,201,203,208,204,186,135,93,71,66,56,44,47,43,43,44,44,48,52,52,
+54,50,68,116,143,165,179,197,167,130,137,241,255,254,255,255,248,249,229,191,157,182,218,232,238,253,255,255,255,255,255,254,239,236,243,241,221,205,93,22,10,9,15,16,22,21,21,22,
+21,28,44,66,90,106,106,113,104,114,156,187,210,197,191,180,161,114,77,77,111,175,173,173,160,146,144,182,169,133,137,146,175,206,201,205,199,197,219,236,250,245,252,252,248,245,242,240,
+243,249,253,253,254,253,248,220,208,213,210,201,193,224,241,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,241,238,221,206,243,249,224,164,111,109,109,77,41,19,7,1,3,
+15,17,10,16,37,48,55,61,78,58,41,55,57,57,42,23,15,19,16,22,41,44,33,35,28,27,49,93,140,121,82,73,98,77,36,40,37,38,38,30,23,22,43,65,91,149,144,148,
+212,158,142,149,160,136,100,73,71,82,95,183,238,207,187,192,193,155,176,196,142,127,170,185,184,148,122,126,113,125,111,135,163,156,114,104,141,192,198,180,167,153,136,118,156,186,196,179,
+177,172,169,143,84,79,76,65,59,45,40,35,37,47,55,55,50,45,62,92,112,149,175,186,169,142,134,228,252,255,255,255,252,225,201,186,143,150,204,243,234,236,252,254,255,255,255,255,
+182,144,207,234,178,191,134,43,33,14,9,16,30,35,29,24,23,29,48,70,85,95,106,120,132,158,180,200,204,190,185,178,149,100,73,66,80,122,114,129,129,143,133,163,177,144,157,157,
+163,194,197,172,146,165,190,220,220,198,218,225,214,194,232,243,242,247,255,255,254,250,235,200,176,184,203,203,203,224,239,249,255,255,255,255,255,255,255,255,255,255,255,255,255,250,234,219,
+214,229,236,222,180,162,143,107,100,107,92,62,26,12,2,9,30,15,24,86,111,98,95,72,83,91,114,122,90,63,37,27,21,27,24,24,33,37,50,59,52,57,82,130,176,162,92,52,
+52,58,51,35,29,28,28,23,21,23,42,59,87,111,105,147,190,155,201,203,173,120,77,63,62,91,126,171,211,189,192,204,179,148,167,151,95,93,113,146,168,149,116,107,112,151,167,170,
+155,146,97,78,108,176,199,183,182,200,194,170,142,141,154,150,155,171,192,170,116,100,99,80,47,35,34,33,36,43,48,48,47,41,48,62,64,92,130,176,176,114,121,208,242,255,255,254,
+232,193,179,172,151,113,162,238,229,220,253,255,255,255,255,236,201,155,194,225,161,184,160,83,85,50,19,24,51,61,47,30,26,31,49,70,79,92,122,139,171,196,201,205,182,169,176,177,
+143,100,85,73,61,70,91,111,112,97,104,118,144,150,126,139,139,160,163,201,179,180,167,179,164,142,171,193,185,199,239,254,255,255,253,249,246,243,225,211,213,201,193,200,212,207,215,218,
+235,252,255,255,254,249,255,255,255,255,255,255,255,250,225,192,208,222,201,153,106,83,83,85,93,100,99,80,43,26,8,22,48,29,52,101,139,118,87,61,65,101,140,129,90,58,43,34,
+20,20,22,21,35,62,77,71,64,82,107,162,196,149,55,35,34,50,50,34,37,24,17,15,14,16,24,27,48,68,69,122,165,177,229,221,161,106,79,68,69,119,165,184,193,205,222,217,
+189,190,183,111,72,76,128,187,176,144,136,129,133,191,190,172,165,147,100,70,75,142,203,205,201,212,217,151,101,128,176,156,149,167,164,164,142,127,90,54,29,28,29,30,34,36,40,40,
+41,42,41,44,51,57,69,125,137,86,92,134,206,250,254,253,201,197,197,182,171,120,125,203,240,248,255,255,255,254,252,218,228,178,193,210,172,199,198,119,98,71,44,42,72,87,68,41,
+27,35,47,59,71,120,157,171,198,191,201,199,155,139,173,180,143,108,92,79,62,56,86,93,95,84,87,105,116,115,120,142,146,172,182,226,196,163,165,163,146,129,156,187,198,198,242,255,
+236,218,201,194,211,224,218,217,218,194,180,180,200,187,177,187,219,238,248,248,238,240,255,255,255,255,255,253,227,199,185,177,186,169,119,95,78,61,90,129,114,94,95,100,62,33,28,41,
+52,50,47,42,82,109,99,63,58,70,83,88,68,43,44,30,15,9,10,14,30,69,91,87,76,80,104,141,175,144,52,47,45,48,47,34,33,20,13,8,8,3,1,1,8,17,40,83,
+140,211,229,204,137,113,85,61,83,153,168,151,176,233,233,177,189,214,194,129,80,91,156,206,197,183,184,176,164,200,198,165,140,126,98,70,75,123,197,198,198,214,204,134,142,186,177,107,
+146,156,144,155,156,118,62,34,27,28,29,30,31,34,41,43,49,45,37,37,36,38,45,63,93,82,87,100,149,208,253,249,193,193,214,218,205,119,95,154,227,255,255,255,253,252,247,236,
+227,215,212,196,194,191,148,107,88,65,57,54,66,64,63,52,36,38,44,51,83,114,164,189,196,203,204,210,198,191,199,177,147,114,87,75,61,49,61,73,91,93,95,112,105,114,132,132,
+139,212,245,240,219,217,234,220,194,156,172,199,218,235,250,254,217,187,194,215,228,225,218,215,205,203,200,187,194,165,150,168,191,215,232,226,210,198,241,255,255,255,255,250,226,189,162,171,
+163,139,122,140,164,118,135,148,140,130,141,129,76,61,64,51,29,19,14,16,27,69,70,49,49,52,61,61,35,28,26,15,9,7,8,12,28,61,85,82,68,66,78,113,122,141,91,58,
+55,49,41,41,30,17,7,1,0,0,0,0,0,8,40,63,122,201,226,191,128,106,70,56,78,123,141,156,178,225,214,179,187,199,177,136,127,141,163,175,177,171,177,167,170,180,191,171,
+98,91,122,114,128,127,179,206,201,225,205,161,184,184,140,104,149,161,142,147,139,87,66,61,43,34,34,28,33,37,49,54,68,75,49,35,37,44,50,58,70,64,76,83,107,193,245,238,
+214,197,217,210,163,94,83,134,213,248,253,254,247,246,245,240,243,229,193,190,177,163,93,63,58,44,51,55,42,37,44,43,36,41,45,65,91,94,143,189,201,242,243,250,250,240,213,173,
+147,113,82,62,48,41,45,57,77,83,97,109,113,127,126,109,141,231,255,255,214,169,187,191,171,148,125,129,187,247,250,234,211,219,227,236,227,219,208,206,200,210,191,172,155,163,147,147,
+186,213,218,213,205,185,203,231,254,255,254,249,246,205,161,161,172,167,170,180,218,184,165,160,150,162,158,130,113,111,82,47,17,6,1,2,5,16,28,36,64,49,48,69,45,24,20,15,
+9,13,12,14,35,59,51,44,55,43,45,82,77,86,52,27,37,40,50,52,31,14,2,0,0,0,0,0,0,0,13,38,84,130,161,185,147,98,64,52,61,86,127,165,190,221,193,175,
+192,179,141,115,134,133,147,136,144,176,175,163,178,163,162,141,109,102,134,135,153,150,190,220,226,233,221,224,211,187,141,148,153,161,125,88,77,78,65,86,86,61,43,31,30,43,58,66,
+95,114,91,64,58,59,69,71,80,79,71,78,112,191,221,192,164,162,196,189,161,134,97,135,183,194,194,219,231,232,236,235,236,224,176,200,203,165,133,85,73,43,40,42,37,42,47,41,
+34,40,48,61,71,94,151,187,222,255,255,255,255,255,228,178,141,107,77,56,43,38,40,52,72,90,100,104,112,116,104,92,122,203,252,228,173,125,115,127,125,106,91,109,170,214,204,178,
+165,201,222,224,215,194,163,139,153,162,151,160,157,190,191,179,167,180,187,191,203,197,178,212,254,255,254,250,247,234,218,212,208,192,170,182,213,214,197,165,163,170,155,140,127,97,59,29,
+7,2,0,0,0,5,22,35,45,31,35,51,36,21,17,15,13,16,22,26,42,48,31,40,41,14,12,26,24,0,0,5,21,31,45,52,27,3,0,0,0,0,0,0,0,0,5,24,
+87,119,101,99,93,77,52,45,58,91,125,144,179,193,162,162,160,153,120,88,83,104,121,139,172,205,198,182,180,148,120,142,148,118,111,135,156,178,211,226,225,228,231,235,220,172,179,194,
+147,149,112,78,68,95,97,91,95,86,62,38,33,49,77,102,129,149,142,127,127,100,94,83,73,78,88,98,133,183,207,198,182,168,151,150,163,163,128,120,153,156,168,201,221,220,232,234,
+238,222,178,170,186,144,147,115,76,44,45,37,40,52,51,50,54,43,42,56,72,107,160,180,231,255,255,255,255,255,236,190,149,115,84,63,57,49,50,57,78,105,107,99,104,98,91,99,
+146,190,215,167,160,116,105,140,134,99,113,154,185,176,171,162,144,164,201,194,196,155,106,93,105,127,142,180,184,206,211,178,141,160,175,186,191,182,171,235,255,255,255,253,249,245,243,248,
+245,212,189,207,210,213,187,180,213,199,173,140,97,51,30,17,6,0,0,0,5,3,12,35,27,28,21,17,19,16,17,16,14,13,22,30,36,27,22,30,14,0,0,0,0,0,0,0,
+1,15,23,36,28,0,0,0,0,0,0,0,0,0,7,29,57,68,83,92,82,59,42,37,54,76,100,132,146,128,107,100,78,78,73,73,80,86,95,133,189,214,199,178,168,165,161,162,
+165,132,119,146,153,165,203,227,227,235,234,235,224,176,199,198,175,129,82,79,68,111,135,116,116,106,77,47,37,48,83,115,135,179,207,175,169,178,169,130,99,92,106,122,125,156,196,189,
+178,180,155,139,151,149,130,136,153,171,183,211,226,225,227,231,212,206,189,139,133,150,163,135,107,83,70,49,38,45,52,68,75,55,43,64,83,101,143,167,218,255,255,255,255,255,243,210,
+177,141,102,83,75,66,61,61,68,85,93,90,111,164,211,224,250,249,208,144,109,92,90,108,108,94,94,132,154,148,160,173,168,165,169,180,171,128,90,69,88,114,135,182,199,193,192,187,
+184,194,201,193,180,175,189,231,252,254,249,247,253,250,243,242,249,239,214,201,210,233,204,229,247,228,196,135,77,44,28,14,5,0,0,0,0,0,9,20,19,30,23,14,14,15,16,16,
+15,12,14,16,17,12,12,13,0,0,0,0,0,0,0,0,0,1,10,29,31,9,1,0,0,0,0,0,0,0,5,17,22,37,78,79,61,50,41,38,50,64,72,101,114,80,50,43,
+51,63,70,78,75,72,83,114,194,228,211,182,176,210,196,169,163,139,182,207,213,218,233,239,238,239,235,241,231,199,190,179,167,104,84,87,90,118,153,178,193,149,98,55,42,55,80,114,
+154,178,219,201,180,194,184,148,122,144,140,150,141,141,167,175,165,180,176,183,162,123,121,156,153,165,156,190,220,222,234,219,153,179,187,147,101,153,161,149,162,160,99,64,40,45,59,65,
+61,47,43,61,70,88,129,156,191,250,253,255,255,254,253,236,210,163,118,111,120,97,68,62,66,80,90,92,118,176,249,246,239,239,220,171,91,72,65,69,65,69,84,104,126,140,144,146,
+143,146,143,148,123,83,71,71,97,102,136,176,191,184,190,222,204,198,194,178,167,203,213,222,243,250,247,253,253,232,239,250,253,255,252,246,250,255,252,250,245,228,204,158,99,57,36,16,
+8,3,0,0,1,17,52,47,26,36,24,15,14,13,15,17,16,13,9,5,9,20,23,15,0,0,9,2,0,0,0,0,0,2,17,33,38,21,7,7,2,0,0,0,3,3,8,12,
+10,26,45,45,44,42,35,40,50,62,65,76,71,44,29,30,37,45,55,70,66,84,88,111,191,249,246,228,215,225,224,193,162,167,197,228,253,255,255,252,250,248,241,224,206,210,200,197,
+206,178,134,129,122,155,219,232,189,127,102,59,43,71,130,141,143,168,226,220,180,190,206,190,146,116,132,162,186,192,180,184,176,177,193,203,184,125,118,134,123,137,143,191,205,198,221,206,
+134,125,173,185,114,141,162,156,163,163,141,83,58,59,58,52,45,29,33,41,45,66,105,157,187,204,207,229,254,254,252,235,215,189,154,141,179,140,72,63,88,143,168,111,93,113,123,160,
+185,171,158,134,77,59,59,58,63,93,120,116,105,111,122,121,126,136,142,123,106,75,73,99,108,107,144,193,211,226,240,222,197,199,180,146,178,232,242,240,243,250,254,255,242,231,249,255,
+255,255,255,255,255,255,255,253,249,234,198,179,139,79,42,24,17,10,5,3,8,38,45,62,62,35,20,14,14,14,15,15,14,13,8,13,24,48,56,37,19,13,40,33,0,0,0,0,
+0,6,22,35,38,24,14,14,8,5,5,3,6,8,15,17,14,14,21,27,30,31,30,34,40,50,55,55,49,38,36,37,41,49,77,107,88,90,102,156,212,249,250,201,207,219,220,224,
+198,206,214,235,255,255,255,255,255,250,235,229,176,196,217,172,199,200,135,129,139,154,200,227,211,144,101,71,48,69,142,168,160,179,229,236,190,193,214,194,126,80,86,153,207,191,175,178,
+171,161,205,201,173,162,151,120,93,94,144,207,205,203,213,205,160,100,120,164,164,158,175,183,179,156,150,146,118,66,43,42,40,27,27,33,38,56,97,154,184,164,185,221,248,255,240,212,
+190,179,183,198,221,162,95,93,157,165,154,107,98,113,112,141,173,122,108,98,71,52,56,55,78,134,154,129,125,129,155,140,126,121,99,86,82,63,76,90,91,119,170,217,227,239,241,211,
+199,214,167,177,200,199,233,239,239,254,255,255,249,253,255,255,255,255,255,255,255,255,255,253,248,226,205,212,187,120,57,31,17,9,5,1,3,8,20,36,48,34,16,15,16,15,15,14,
+14,13,20,42,70,106,109,84,55,28,51,44,7,0,0,3,3,14,21,42,59,43,20,16,12,12,2,1,3,7,17,26,21,14,13,15,19,20,22,28,35,48,47,44,42,38,43,54,
+64,80,142,148,88,99,142,199,245,252,246,205,205,201,193,193,198,221,238,240,241,255,255,255,255,254,222,191,149,200,232,180,198,183,137,136,156,176,169,227,222,155,90,59,50,54,104,155,
+183,193,197,217,221,190,185,184,121,82,83,120,177,177,143,127,120,130,187,194,184,172,157,119,93,101,162,206,203,193,206,218,156,144,146,157,151,162,183,208,185,129,123,153,169,128,56,36,
+30,23,27,29,35,56,95,137,158,177,208,217,241,247,236,210,175,136,151,186,228,236,212,227,231,153,143,121,143,161,184,167,130,111,132,109,77,58,62,84,128,173,169,178,186,164,168,151,
+125,95,71,58,52,54,73,76,91,126,160,182,187,184,196,213,229,236,190,184,169,185,220,233,245,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,247,238,238,228,175,128,80,44,
+19,8,3,1,2,5,13,13,16,21,16,21,31,26,23,22,20,29,87,126,137,142,133,113,50,27,56,70,41,16,10,17,28,35,42,61,71,45,21,22,23,14,9,5,3,5,19,31,
+31,22,17,15,15,14,17,23,33,38,41,41,37,48,68,72,108,149,183,179,126,123,211,229,248,252,253,228,194,185,179,171,173,221,250,233,224,253,255,255,255,255,245,198,169,219,236,199,
+213,183,144,133,150,190,146,182,182,167,114,68,47,47,75,109,170,222,196,191,201,185,149,170,170,111,101,121,149,168,151,121,115,118,149,158,169,163,157,111,95,126,187,198,176,168,175,167,
+111,153,187,196,191,194,193,182,155,113,116,120,125,141,80,42,29,26,24,30,37,48,84,133,155,178,194,204,226,231,211,197,167,130,112,127,228,255,255,255,252,239,221,211,204,183,182,142,
+92,114,160,122,79,68,78,125,182,220,211,198,179,167,176,151,122,87,68,55,45,45,51,75,80,100,130,140,167,167,184,208,204,204,197,165,161,196,226,231,250,255,255,255,255,255,255,255,
+255,255,255,255,255,255,254,253,247,240,233,220,198,153,100,66,35,12,15,13,10,12,12,7,15,22,22,28,35,36,30,23,23,64,146,155,151,144,123,100,68,70,83,88,66,24,19,31,
+44,41,61,76,65,37,23,29,36,26,16,9,6,7,19,37,40,29,22,16,13,12,13,21,31,36,37,37,38,57,97,125,160,176,186,167,141,129,224,240,247,250,253,249,233,207,182,139,
+176,229,245,236,246,254,255,255,255,255,254,246,250,249,247,239,213,146,165,160,161,220,160,122,128,139,122,92,63,64,84,106,191,231,205,193,197,198,165,184,203,158,140,184,199,192,150,121,
+132,116,129,116,133,165,162,127,120,151,191,197,176,143,123,129,128,148,187,192,204,207,193,158,113,98,109,99,65,71,58,37,24,22,29,38,41,44,80,143,191,192,196,221,185,157,155,180,
+160,134,132,147,232,250,255,255,248,243,239,186,191,180,126,80,78,104,105,94,80,86,114,146,197,243,233,200,163,184,187,161,130,102,78,66,44,41,44,65,68,72,105,127,143,167,184,173,
+154,135,191,168,161,176,207,213,252,255,255,255,255,255,255,255,255,255,255,255,255,255,254,250,248,242,228,217,213,177,97,66,69,56,37,20,19,22,16,10,16,34,42,44,38,37,31,21,
+51,118,153,148,137,140,116,106,102,104,102,94,70,38,34,51,63,57,76,77,50,30,21,28,41,42,30,13,8,6,17,40,42,30,17,13,8,7,9,19,27,34,35,38,45,66,119,140,
+164,184,199,165,130,140,243,249,240,240,245,235,246,231,173,150,189,227,229,239,254,255,255,255,255,255,254,253,254,252,249,254,177,116,180,177,189,186,156,115,118,126,122,108,72,95,143,183,
+189,178,148,171,196,203,177,187,212,208,199,207,217,208,167,104,115,101,107,109,107,130,136,114,116,134,155,187,170,119,106,135,116,97,154,190,210,198,155,135,111,104,115,97,69,52,40,37,
+35,37,43,52,51,58,101,156,208,234,219,225,191,148,150,160,126,111,134,157,182,171,215,241,254,248,254,203,165,147,101,79,78,94,97,91,94,119,168,175,214,246,227,198,194,211,201,167,
+130,135,150,105,45,45,45,45,65,58,75,90,93,141,154,118,98,112,158,165,133,135,173,194,239,255,255,255,255,255,255,255,255,255,255,255,255,255,253,249,246,243,234,217,205,193,167,132,
+122,104,52,22,20,26,20,12,28,44,56,52,38,33,28,30,108,149,156,149,134,139,125,133,104,94,102,90,76,66,69,95,101,88,86,64,45,29,17,22,50,63,40,15,7,5,13,34,
+37,27,13,7,6,5,9,15,24,35,40,50,66,88,118,114,147,185,175,140,134,178,253,250,236,222,212,211,225,232,175,169,201,217,234,245,255,255,255,255,255,255,255,255,253,252,250,235,
+176,150,179,175,179,133,129,97,107,108,78,73,64,105,154,151,147,178,165,136,177,187,180,179,203,212,212,211,203,192,180,129,105,85,71,65,77,99,120,82,80,98,118,161,154,115,94,112,
+99,114,175,201,217,201,144,113,122,128,134,119,91,61,54,65,65,64,65,77,84,98,135,170,208,222,217,210,187,165,151,128,104,84,90,101,111,133,165,229,255,255,255,236,172,147,125,111,
+84,76,78,107,134,155,183,203,219,205,176,162,205,229,198,140,167,197,182,116,51,51,54,35,49,47,44,51,56,86,93,72,57,77,108,116,95,107,136,178,213,242,241,252,255,255,255,255,
+255,255,255,255,255,254,252,250,245,243,232,215,211,207,210,204,193,130,101,49,38,76,56,44,66,58,58,48,27,27,34,69,114,141,162,155,132,132,126,136,115,129,122,98,57,58,56,88,
+115,91,71,43,22,13,9,24,52,55,33,10,5,1,7,24,28,20,9,2,2,3,10,15,24,40,54,70,83,101,93,90,126,123,126,143,142,190,255,204,183,208,179,211,228,231,196,178,
+201,236,252,252,255,255,255,255,255,255,255,255,253,254,254,246,185,133,150,163,168,139,164,91,71,76,59,50,49,76,116,141,136,150,182,155,147,153,165,178,176,185,212,215,189,184,192,171,
+90,59,55,42,47,69,83,58,70,77,90,116,122,108,100,104,119,158,178,204,219,215,173,142,140,162,168,150,108,84,76,84,79,80,90,98,104,121,148,172,189,193,196,175,151,176,157,126,
+127,116,104,102,136,153,172,242,255,255,255,229,160,176,170,137,108,100,88,132,168,170,182,206,214,180,162,197,225,217,144,108,225,250,168,93,80,84,69,41,34,45,50,44,48,56,78,78,
+58,71,82,76,72,87,125,183,184,177,205,235,255,255,255,255,254,254,255,255,254,253,253,245,240,238,240,227,220,218,210,206,205,172,179,132,87,128,148,136,125,71,45,30,27,42,64,86,
+116,157,162,149,130,144,130,134,143,140,141,114,76,45,51,65,87,80,44,17,7,0,1,17,28,23,10,1,0,0,2,13,14,9,1,0,3,5,13,20,33,58,66,76,85,94,84,84,
+95,87,112,167,199,236,255,197,154,185,204,242,247,239,234,232,213,242,255,255,255,255,255,255,255,255,255,254,255,255,255,249,183,151,162,178,150,161,201,126,86,70,76,64,55,79,113,160,
+175,150,161,203,169,140,146,157,126,126,184,194,186,199,193,121,55,36,29,26,27,44,47,34,41,45,52,77,112,102,72,80,105,151,148,164,201,211,206,189,190,205,192,154,99,90,86,94,
+105,132,150,141,116,114,122,120,121,161,172,143,156,183,150,128,142,155,133,147,185,158,147,214,255,255,243,205,196,201,157,133,121,114,118,130,143,161,201,219,222,191,194,231,222,160,114,144,
+222,210,154,112,93,86,76,38,27,38,55,61,64,70,94,94,85,101,121,91,73,91,112,153,162,172,208,226,246,255,255,255,252,240,242,236,233,239,246,224,226,231,238,234,226,220,214,213,
+212,208,207,196,158,150,136,132,112,62,38,28,36,65,87,122,157,173,167,151,135,150,147,141,130,113,104,68,54,37,49,62,68,57,35,7,0,0,1,10,10,7,2,0,0,0,0,1,
+2,3,0,0,3,9,20,27,55,76,66,57,94,114,80,75,76,83,144,234,255,255,252,206,155,228,252,253,247,249,254,253,241,250,255,255,255,255,255,255,255,255,255,254,254,254,253,234,
+182,176,183,150,132,161,207,150,130,111,106,100,95,106,154,196,215,201,213,220,179,151,132,143,104,101,151,163,178,212,186,79,42,31,21,17,22,29,23,19,20,16,23,45,92,93,66,61,
+79,119,122,113,164,210,218,214,214,224,184,135,102,105,113,118,134,184,199,211,162,130,137,108,84,115,143,147,164,173,154,164,153,141,144,167,162,176,169,186,207,246,241,179,204,191,147,122,
+94,86,95,120,129,158,189,218,219,210,225,233,203,144,133,191,217,198,154,165,153,132,94,28,26,43,62,79,102,113,121,109,122,137,141,92,73,86,108,134,133,176,198,203,238,249,252,248,
+245,236,211,203,225,220,213,212,232,234,233,233,224,215,214,215,215,211,208,192,176,167,116,79,66,51,42,43,79,111,108,149,167,170,165,161,144,135,146,144,105,69,38,28,21,22,36,59,
+64,50,38,21,7,7,12,5,0,0,0,0,0,0,0,0,0,0,0,3,12,20,27,41,64,64,58,64,122,121,76,79,90,106,167,249,245,215,211,182,215,255,252,226,241,255,254,254,
+255,255,255,255,255,255,255,255,255,255,255,255,253,253,246,241,171,126,141,106,109,162,220,156,148,134,130,146,173,151,168,196,215,218,214,213,184,155,136,140,128,133,146,161,192,219,192,94,
+79,50,26,19,20,19,13,9,9,8,9,23,43,58,61,58,69,82,111,148,191,214,225,225,217,200,153,125,120,115,91,118,130,164,198,220,153,115,107,66,63,94,136,178,154,135,169,168,
+129,122,151,169,155,193,207,186,175,234,229,157,170,179,126,86,76,79,92,119,126,163,173,218,228,236,236,199,142,112,111,167,220,214,217,218,212,163,82,28,30,61,80,100,148,125,148,156,
+168,154,143,119,87,78,111,130,156,162,184,192,184,184,185,218,224,221,192,203,212,218,197,210,224,224,221,225,225,222,219,212,210,211,207,197,186,187,173,125,132,135,129,140,165,154,125,148,
+175,173,171,165,150,91,68,97,92,49,24,37,36,28,55,63,58,45,37,27,22,16,5,0,0,0,0,0,0,0,0,0,0,0,3,7,19,36,54,86,92,71,68,94,139,91,64,86,
+105,141,189,235,221,167,162,165,242,255,239,233,252,255,255,255,255,255,255,255,255,255,255,255,255,254,253,253,253,255,240,191,114,78,82,87,100,151,204,214,191,155,123,151,176,194,227,248,
+246,236,213,210,206,177,133,121,136,139,139,175,197,207,189,104,86,55,33,24,17,13,9,5,6,7,2,10,22,43,54,55,58,70,93,151,194,224,225,220,227,203,146,116,121,112,62,107,
+157,167,198,217,153,91,65,37,57,108,165,179,161,150,140,125,120,114,123,139,168,226,234,203,214,210,189,169,177,162,92,61,65,80,100,121,128,157,187,225,217,221,212,161,109,69,75,169,
+198,147,186,219,198,130,71,36,48,88,88,111,193,184,205,218,182,134,122,108,73,88,130,146,190,194,190,184,132,119,149,182,187,190,187,178,191,204,189,193,203,215,229,232,229,227,224,213,
+217,215,207,214,208,205,203,198,198,193,190,186,190,185,177,182,179,175,162,153,146,90,37,54,75,35,17,36,38,43,77,88,75,62,48,28,19,7,0,0,0,0,0,0,0,0,0,0,
+0,3,8,17,43,62,100,139,101,101,112,153,162,86,66,68,116,154,130,161,214,192,162,186,231,245,240,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,250,252,214,123,76,
+87,115,108,101,147,165,177,201,196,161,170,155,151,233,255,255,255,253,225,198,203,192,154,126,123,114,122,129,150,156,127,95,85,50,29,22,15,9,5,2,1,0,0,2,12,28,37,42,
+45,59,84,119,160,203,197,198,200,185,134,126,143,141,107,153,199,189,184,198,176,106,54,42,61,104,168,147,137,111,119,108,126,114,100,121,163,208,224,214,219,213,189,196,179,142,90,61,
+50,69,79,105,135,170,215,200,180,177,179,180,134,142,144,149,175,143,150,201,207,155,86,58,78,107,97,112,178,232,224,224,177,114,108,92,87,122,149,155,215,208,161,158,136,112,129,142,
+129,130,126,108,128,149,169,189,213,228,239,239,229,226,222,220,221,221,217,215,213,212,213,214,208,204,200,193,193,193,191,190,182,164,133,128,142,107,78,90,58,20,13,21,24,34,55,83,
+93,62,35,17,9,0,0,0,0,0,0,0,0,0,0,0,3,9,21,48,90,113,129,140,109,169,190,169,121,79,65,56,106,129,95,137,200,185,185,180,200,220,229,243,255,255,250,255,
+255,255,255,255,255,255,255,255,255,255,254,255,239,127,65,64,116,165,141,130,148,143,148,153,191,183,194,194,170,220,255,255,255,254,220,201,207,194,164,128,108,118,122,119,120,121,139,93,
+85,51,31,21,14,10,2,1,0,0,0,0,7,17,26,35,41,52,77,116,150,167,173,206,177,143,143,150,157,168,175,200,214,201,182,184,182,122,65,71,75,85,105,90,98,92,95,83,
+94,107,109,122,161,185,211,219,208,214,197,184,172,143,122,82,63,80,107,129,156,150,151,146,134,144,194,226,236,240,226,215,222,198,167,153,157,154,109,68,69,79,100,129,144,217,197,164,
+140,154,150,125,161,200,205,219,207,189,165,146,129,142,115,108,106,105,106,90,102,153,178,206,224,225,231,239,236,239,238,238,239,236,234,231,226,225,220,215,212,205,198,197,192,193,191,190,
+184,158,122,142,144,141,150,113,41,10,14,19,23,24,26,69,99,48,15,8,0,0,0,0,0,0,0,0,0,0,1,6,12,22,40,83,135,161,143,119,143,215,214,170,123,114,84,56,
+80,118,133,164,184,178,183,180,204,231,234,235,242,229,211,253,255,255,255,255,255,255,255,255,255,255,255,255,241,147,92,80,102,157,171,168,133,116,130,151,184,192,198,219,218,243,255,255,
+255,255,224,193,197,196,185,144,101,120,123,129,137,147,160,108,79,48,27,21,19,17,8,0,0,0,0,0,6,15,24,31,40,50,72,122,163,164,175,200,161,164,182,182,164,184,207,207,
+203,207,194,186,133,91,73,68,70,59,58,78,84,72,52,62,65,76,88,109,150,172,191,204,191,184,212,204,164,143,135,136,140,144,158,154,172,157,143,134,119,144,196,225,238,212,210,224,
+232,221,197,176,162,168,158,91,49,57,88,105,99,133,139,173,186,217,180,132,141,168,173,176,158,176,158,140,160,186,139,105,107,106,100,91,119,134,164,206,206,219,232,245,250,252,253,252,
+253,250,252,249,246,238,227,219,211,203,198,200,196,184,179,178,163,129,153,168,164,163,150,91,27,23,27,23,23,16,10,40,58,16,0,0,0,0,0,0,0,0,0,0,0,1,6,14,
+22,33,49,80,128,171,173,148,183,235,217,179,139,109,77,54,92,148,178,206,215,193,180,185,213,234,239,226,214,189,180,210,243,250,254,255,255,255,255,255,255,255,255,250,205,127,97,95,
+109,154,148,168,178,137,109,130,134,184,238,243,255,255,255,255,255,255,227,160,161,189,193,170,107,86,69,92,109,126,136,90,63,44,19,10,15,23,21,8,2,1,0,0,7,15,23,29,
+40,47,64,100,149,183,203,199,206,198,193,178,164,196,204,182,189,210,208,180,115,87,66,50,61,48,36,56,66,75,64,54,55,47,47,73,126,158,168,170,157,167,192,208,191,160,158,164,
+173,163,143,144,155,156,155,141,113,141,208,222,205,172,173,200,219,217,197,198,192,169,163,101,40,40,49,50,58,77,95,142,153,161,187,182,175,164,161,140,125,177,167,150,191,194,162,164,
+162,129,95,92,106,120,158,187,184,213,238,250,253,254,255,254,254,254,254,254,254,248,239,226,218,206,200,190,172,148,134,136,130,118,150,169,154,142,121,76,47,27,15,9,8,1,2,8,
+9,0,0,0,0,0,0,0,0,0,0,2,5,7,14,22,30,35,44,59,84,162,204,186,171,144,132,129,100,65,57,56,114,185,197,226,240,192,189,197,219,225,240,227,220,179,169,157,
+184,219,245,255,255,255,255,255,255,255,255,197,132,122,97,99,125,144,173,168,203,193,140,114,129,190,249,255,255,255,255,255,255,255,243,178,161,186,186,155,86,56,47,51,58,62,75,55,
+42,38,26,9,13,21,27,22,12,2,1,1,7,19,24,29,35,41,49,71,83,130,225,236,221,192,191,167,144,193,165,115,140,178,179,161,113,94,63,41,38,35,27,34,48,65,59,55,
+52,40,36,54,101,144,168,163,151,162,185,183,175,179,169,132,151,148,143,139,139,142,141,135,108,118,161,168,163,173,158,170,194,214,204,173,180,179,147,76,30,26,31,36,38,54,59,104,
+141,171,184,182,167,168,163,137,121,143,163,180,173,164,191,199,157,129,104,119,119,123,154,160,185,217,240,253,253,254,255,255,254,255,255,255,254,250,242,234,221,189,167,170,151,142,107,116,
+130,139,147,162,121,88,93,88,58,22,10,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,7,9,15,20,29,37,42,50,62,71,116,164,153,156,118,101,87,63,50,55,59,
+109,156,176,236,248,200,192,190,201,217,221,203,171,141,146,128,154,232,254,255,255,255,255,255,255,255,255,185,113,115,98,99,149,151,194,200,198,187,148,136,161,193,252,255,255,255,255,255,
+255,255,255,240,205,198,192,128,64,51,38,35,35,38,43,35,30,31,31,17,9,13,19,20,16,7,1,3,7,16,26,31,34,37,41,55,92,137,199,214,218,208,190,149,142,165,111,80,
+93,126,155,157,113,91,66,44,34,30,26,26,33,48,50,52,44,38,43,69,121,150,173,191,203,194,217,203,186,200,176,134,158,132,140,132,107,111,116,151,161,150,120,157,155,169,182,178,
+204,207,219,197,169,176,95,38,24,24,27,23,16,27,54,109,153,180,189,178,154,167,141,102,121,141,163,179,151,168,180,160,130,122,104,99,98,114,157,164,210,235,241,247,247,250,254,253,
+254,253,249,250,250,246,240,226,211,185,184,192,179,153,114,98,101,140,169,156,116,75,65,64,47,22,10,1,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,10,13,16,23,31,
+41,56,64,69,84,105,122,134,156,129,82,61,57,54,57,68,97,147,201,235,248,225,226,205,206,222,185,171,130,98,102,114,196,255,255,255,255,255,255,255,255,255,255,222,135,113,107,119,
+162,169,182,217,199,169,146,144,184,220,247,255,255,255,255,255,255,255,254,249,228,200,198,134,71,63,37,28,27,28,30,27,23,22,24,19,9,9,13,9,12,10,7,8,14,19,23,28,
+35,36,37,55,104,149,182,200,227,234,198,179,189,144,76,65,92,165,187,157,122,106,83,62,45,35,28,26,31,48,59,54,41,44,66,109,151,169,179,199,213,219,220,221,220,191,146,147,
+171,156,125,116,93,86,137,191,180,154,127,184,158,192,220,219,217,221,218,214,196,151,58,34,29,27,21,15,13,27,66,118,141,137,147,167,160,158,116,59,100,162,187,167,160,141,130,141,
+173,142,111,128,126,150,198,189,205,183,194,212,231,236,236,249,240,201,199,229,232,234,233,219,213,208,185,164,137,120,119,104,108,135,150,156,121,65,49,41,36,20,5,0,0,0,0,0,
+0,0,0,0,0,0,0,0,3,14,13,12,14,19,23,29,41,64,72,75,101,108,120,155,139,86,62,62,54,50,62,78,116,184,228,241,247,232,217,199,213,198,176,173,134,91,97,143,
+218,255,255,255,255,255,255,255,255,255,255,242,149,130,127,153,205,201,167,191,184,160,137,134,183,220,240,248,252,255,255,255,255,255,254,245,222,187,178,111,100,94,61,36,28,24,23,22,
+22,22,21,21,10,6,10,10,12,10,13,15,20,24,28,33,37,37,38,58,104,121,140,196,240,215,178,203,205,162,90,77,115,191,208,189,171,148,112,79,55,43,37,34,35,42,57,54,
+45,59,113,169,170,172,185,217,236,238,221,222,226,190,151,144,164,192,170,125,90,79,144,170,186,175,161,234,214,196,214,241,250,245,238,219,134,76,43,34,38,38,38,31,29,61,75,98,
+127,144,150,164,177,125,66,61,90,135,149,127,125,125,133,130,163,169,135,149,134,150,173,142,116,90,113,172,193,176,172,200,191,148,132,185,194,205,199,214,224,226,207,179,156,144,149,165,
+167,160,144,111,85,50,37,29,23,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,17,19,15,20,27,31,35,47,59,59,57,68,97,135,163,123,77,64,70,72,72,88,116,
+139,206,235,252,249,245,221,187,178,150,154,157,137,113,119,176,242,255,255,255,255,255,255,255,254,243,254,214,151,129,146,207,225,186,164,164,156,160,143,129,182,213,224,228,252,255,255,255,
+255,255,255,250,215,147,104,71,79,77,63,47,40,26,20,19,19,21,17,14,9,7,10,12,13,14,17,21,26,30,33,36,41,41,40,55,83,106,140,187,231,204,186,194,189,157,119,135,
+149,173,183,179,183,178,134,86,65,59,56,47,42,42,45,52,59,83,128,158,171,162,163,204,222,224,221,234,228,208,186,142,86,119,158,120,78,61,80,116,206,255,255,246,210,184,225,246,
+255,254,254,226,154,94,75,106,133,121,72,51,55,77,57,82,142,160,120,122,162,156,106,101,109,114,100,102,102,97,86,102,113,148,128,102,115,92,84,75,72,93,120,150,141,122,130,149,
+136,126,133,155,150,169,162,162,194,212,213,212,203,210,187,172,171,165,136,95,68,44,34,28,16,9,0,0,0,5,10,2,0,0,0,0,0,0,0,5,17,24,21,22,26,31,38,43,
+52,50,47,43,51,92,123,113,90,76,75,121,113,101,154,197,169,198,246,255,247,231,235,201,146,115,106,108,109,114,123,198,255,254,255,255,255,255,255,255,253,248,245,200,165,154,180,218,
+200,169,147,142,135,136,126,123,182,179,193,234,254,255,255,255,255,255,255,253,207,123,58,54,61,51,45,34,30,23,22,21,15,15,14,7,6,9,13,16,19,21,24,31,35,41,40,41,
+49,47,43,50,69,98,146,196,222,189,187,190,162,119,123,135,141,143,141,168,203,203,155,91,78,82,84,64,47,43,44,54,62,78,94,113,127,129,146,175,199,168,191,218,210,162,122,108,
+63,70,85,68,48,41,43,77,184,255,255,254,247,250,255,255,255,254,250,247,211,171,170,210,210,192,156,142,119,71,90,151,171,143,112,154,155,126,115,132,121,87,69,83,88,88,83,88,
+101,99,76,85,105,79,59,75,95,127,121,151,160,149,130,127,109,109,132,132,125,139,140,123,156,190,212,213,215,214,184,164,158,161,133,99,71,90,70,51,28,12,7,1,5,10,19,9,
+0,0,0,0,0,0,2,10,24,31,28,28,29,37,43,44,54,49,42,38,49,78,109,84,66,84,77,136,118,105,157,224,226,224,249,255,249,211,199,183,153,106,73,70,71,84,107,198,
+255,246,246,243,255,255,254,243,248,253,252,215,204,206,212,187,193,169,140,155,122,106,94,107,173,194,191,232,254,255,255,255,255,255,255,255,215,97,47,43,44,38,31,24,24,26,33,22,
+17,15,8,6,9,14,17,24,30,35,36,41,43,48,51,55,63,52,47,50,71,94,135,186,187,164,168,156,142,100,84,92,118,130,156,191,213,221,173,116,104,112,115,85,54,47,48,54,
+59,68,72,86,105,116,118,132,147,125,119,140,148,113,75,59,47,50,47,34,27,43,54,56,191,255,255,255,255,255,255,255,255,255,255,255,242,252,229,203,200,144,185,193,180,153,164,186,
+162,127,118,164,160,114,119,140,100,55,45,61,79,97,93,97,104,88,91,102,79,54,63,82,112,182,162,189,199,175,141,123,108,101,109,108,136,144,134,158,199,210,214,214,212,205,200,192,
+177,153,121,98,80,82,71,44,33,27,9,6,6,6,21,19,0,0,0,0,0,0,3,14,29,38,37,35,35,38,45,54,54,45,34,34,48,76,107,91,64,71,72,90,107,133,180,247,
+252,183,196,222,220,204,179,148,171,148,92,95,85,82,104,157,214,212,203,197,179,219,250,234,250,255,255,250,248,235,227,206,194,177,147,148,112,112,99,123,187,210,222,229,254,255,255,255,
+255,255,255,255,235,118,36,33,34,38,26,22,24,27,30,28,28,31,17,13,16,21,24,30,47,55,62,55,55,59,68,77,73,58,48,51,61,84,122,133,118,109,94,79,82,76,78,87,
+94,125,172,203,196,192,175,155,150,196,192,122,70,61,57,57,59,64,73,84,98,94,71,65,72,73,57,64,71,68,50,34,31,29,24,22,22,56,109,157,234,255,255,255,255,255,255,255,
+255,255,255,255,255,255,252,186,158,130,184,189,161,157,171,179,168,149,155,172,186,178,137,115,76,36,30,41,62,80,84,99,100,97,105,92,56,52,75,77,108,190,219,220,212,175,120,104,
+104,101,104,113,141,170,194,205,208,182,163,185,201,204,207,183,146,108,86,79,59,42,38,37,42,37,20,9,2,5,10,7,0,0,0,0,0,0,5,13,31,48,48,45,49,51,54,72,
+65,48,33,34,55,87,115,107,83,66,63,93,141,177,180,234,247,136,112,142,198,192,168,160,183,147,93,114,135,125,135,156,158,156,156,156,141,186,243,252,253,253,249,252,242,205,213,206,
+217,191,134,133,105,100,132,143,201,214,215,238,253,255,255,255,255,255,254,252,243,167,51,20,21,28,23,20,23,20,16,21,30,58,38,26,27,30,35,40,54,66,71,66,71,76,79,80,
+75,62,51,47,47,58,91,94,59,47,49,64,72,78,84,77,87,109,169,213,190,154,155,194,218,238,219,177,98,68,65,61,59,70,85,88,82,68,52,43,38,37,35,35,45,45,27,21,
+17,16,19,14,13,54,125,207,254,255,255,255,254,254,255,255,255,255,255,255,255,248,243,214,162,151,156,143,115,87,125,169,184,176,182,165,146,129,101,65,40,20,20,28,48,72,87,91,
+84,83,80,65,48,45,50,70,100,148,206,191,167,133,102,101,106,112,135,135,120,136,165,153,148,130,112,136,157,165,158,135,98,75,61,47,38,33,26,31,37,56,47,15,14,16,9,3,
+0,0,0,0,0,0,6,16,34,59,65,64,71,70,68,107,107,85,55,50,82,119,128,141,108,69,82,158,176,134,155,252,218,95,104,155,204,169,141,149,153,144,116,163,179,157,149,151,
+163,186,177,168,198,227,243,247,236,231,236,242,210,115,132,171,220,211,154,139,127,108,133,143,177,189,204,245,253,253,254,255,254,254,252,248,240,139,54,40,22,21,17,13,15,9,3,13,
+23,38,33,33,38,41,43,50,56,63,68,73,80,80,80,82,70,59,49,44,38,43,56,48,31,29,36,44,55,71,76,79,105,113,164,218,203,164,155,204,227,226,224,173,92,69,70,71,
+71,86,105,93,83,63,47,36,35,30,24,23,28,29,16,8,10,12,16,16,14,33,80,165,238,247,246,235,236,254,255,255,255,255,255,255,255,253,253,218,170,150,92,65,55,49,69,73,
+139,175,180,149,80,52,52,41,27,14,14,23,43,71,94,80,68,66,55,41,36,29,29,61,88,93,146,140,130,113,108,104,109,121,132,146,134,107,87,84,90,108,100,114,126,127,132,116,
+78,64,58,44,37,36,33,34,29,55,63,22,26,27,10,5,2,5,3,0,0,2,13,27,45,72,86,91,95,90,83,112,139,122,70,73,119,139,157,167,121,104,135,180,184,120,128,238,
+203,87,109,167,170,144,147,139,140,168,178,197,205,162,162,160,176,187,183,193,225,238,253,246,220,233,239,226,212,125,78,118,175,190,144,121,139,151,146,132,151,179,196,211,242,252,253,253,
+254,249,240,239,236,185,88,75,47,22,14,10,6,0,1,9,20,19,22,37,44,44,50,57,68,77,79,88,85,73,70,75,62,57,48,41,36,36,34,28,28,33,36,44,64,102,109,95,
+116,149,196,210,203,168,151,201,221,212,211,111,61,64,73,78,73,85,107,90,69,55,42,35,31,26,21,19,16,14,5,1,2,7,10,14,23,29,52,101,162,193,208,219,236,255,255,255,
+255,255,255,255,255,255,255,215,128,112,100,71,58,47,69,75,95,140,151,141,95,84,62,34,21,14,14,19,34,51,72,65,57,56,48,36,29,15,22,35,40,50,70,86,106,97,85,79,
+98,108,112,146,151,122,98,79,87,98,104,100,107,115,123,97,71,82,70,52,51,52,45,44,36,57,69,59,43,34,21,9,5,5,8,6,5,10,22,31,48,78,100,115,113,113,106,111,
+129,132,82,106,146,184,200,165,147,149,189,193,162,121,115,153,136,82,101,130,133,134,129,136,154,185,186,168,165,154,165,193,200,191,205,183,206,211,194,199,173,192,217,213,200,91,59,86,
+123,200,199,144,130,139,125,107,129,167,190,189,232,243,246,247,245,240,234,232,226,227,158,93,71,43,26,14,13,17,13,13,16,20,30,44,48,49,57,66,86,85,78,85,80,71,69,66,
+61,52,44,40,37,34,30,27,30,38,54,66,112,162,126,100,142,186,220,207,180,154,167,210,169,98,97,57,57,75,80,59,54,73,80,66,56,49,41,37,34,27,21,15,9,6,1,0,
+0,0,2,12,22,30,42,62,95,129,161,219,255,255,255,255,255,255,255,255,255,255,255,214,122,113,121,108,75,58,55,69,75,95,112,112,114,99,64,31,23,20,16,15,29,41,51,51,
+47,43,37,37,28,10,9,15,19,28,38,43,59,56,58,75,93,99,109,127,120,113,108,72,63,70,75,80,100,118,99,70,78,85,68,61,63,64,55,48,42,42,54,63,51,36,24,14,
+5,5,6,6,9,15,24,28,45,86,113,122,133,139,112,100,119,141,119,111,132,186,194,180,197,179,193,210,153,113,99,111,95,83,88,95,102,105,112,142,169,190,183,162,153,156,175,186,
+165,175,196,192,171,150,109,118,97,108,147,201,151,56,57,58,73,175,231,198,178,161,137,119,140,160,189,194,225,235,233,232,227,222,199,204,201,197,136,83,78,72,48,37,43,56,38,22,
+22,30,36,49,54,55,62,75,93,84,76,73,71,73,71,68,63,57,49,44,37,38,37,37,47,57,78,123,164,189,160,127,183,225,213,196,183,186,189,128,90,54,40,44,73,98,83,62,
+64,72,69,68,57,50,41,37,33,28,20,14,9,6,0,0,0,0,0,2,8,13,23,37,51,64,118,187,249,255,255,255,255,255,255,255,255,255,255,228,136,109,125,107,75,64,63,73,
+76,63,77,99,92,70,52,30,24,21,15,14,21,31,36,36,35,29,24,21,15,10,8,10,19,23,22,24,34,40,56,92,83,75,88,87,88,90,91,71,62,69,69,90,119,119,97,88,
+105,97,109,100,87,69,80,70,50,45,55,54,41,26,9,5,3,9,7,9,12,15,23,30,50,93,122,125,133,129,104,94,118,127,141,126,155,191,225,250,253,233,210,218,143,137,142,120,
+112,94,78,87,111,111,126,156,171,177,176,186,163,164,176,180,157,167,189,179,132,104,82,83,71,68,87,133,116,73,64,78,99,186,233,226,221,203,175,169,172,168,186,200,221,220,222,210,
+208,215,149,137,157,149,109,76,90,101,71,70,66,52,43,37,34,37,40,49,56,62,70,88,86,84,92,86,71,71,72,69,72,63,55,49,42,41,41,54,85,108,137,160,179,173,162,148,
+189,226,204,193,211,211,149,82,57,52,45,50,69,76,57,69,65,64,76,77,61,47,41,36,30,26,20,14,9,5,0,0,0,0,0,0,2,10,22,33,43,65,92,143,190,229,255,255,
+255,255,255,255,248,227,233,178,120,127,130,93,72,70,66,78,93,104,98,88,75,52,38,22,20,17,15,12,13,23,29,23,24,23,22,15,9,12,13,16,26,30,16,16,24,31,62,99,
+80,71,78,80,79,71,65,69,70,66,68,92,102,88,94,100,92,111,142,129,90,61,91,75,49,41,41,35,23,13,6,6,5,15,14,14,14,19,27,34,55,86,122,148,156,140,107,97,
+116,120,140,182,247,255,254,255,255,255,252,235,172,183,204,173,148,90,77,108,171,169,147,164,178,170,177,221,198,186,189,186,168,167,183,157,112,91,92,86,68,65,68,76,91,93,95,111,
+161,207,241,248,245,232,203,190,186,186,196,203,205,205,210,204,187,200,179,130,108,88,93,88,94,107,80,68,62,43,36,37,34,33,38,47,58,71,85,92,86,93,108,101,78,73,78,75,
+75,68,63,59,58,54,54,97,153,172,179,187,191,187,164,161,198,222,207,189,189,169,111,63,43,43,41,51,61,47,34,38,34,40,56,58,56,49,41,34,27,23,17,12,7,0,0,0,
+0,0,0,0,0,15,31,51,62,90,111,135,150,186,226,248,255,255,255,255,224,178,165,134,105,119,105,70,69,75,68,77,99,122,92,75,76,47,22,20,19,16,13,10,9,21,30,23,
+20,22,24,17,10,10,17,31,38,36,21,20,31,51,86,108,92,79,87,113,106,72,58,63,56,52,68,84,80,68,70,68,63,79,85,100,104,85,83,57,41,31,30,33,33,20,12,13,
+21,23,23,17,19,23,29,34,51,78,128,178,175,154,112,99,102,113,132,161,201,233,255,255,255,254,252,247,193,206,222,231,189,106,119,148,180,201,183,171,176,168,173,203,229,222,190,164,
+164,179,183,158,129,109,98,75,65,75,70,76,91,106,104,111,186,229,245,248,246,235,207,194,193,190,196,203,200,200,197,204,172,137,165,118,82,66,80,107,100,68,62,52,41,33,30,27,
+29,30,38,45,62,77,94,101,97,97,105,98,85,86,88,82,71,64,69,80,109,98,111,176,213,203,200,219,218,203,187,197,218,220,207,191,176,155,101,62,49,36,33,36,47,45,21,17,
+17,36,54,59,56,55,43,31,29,22,17,14,7,1,0,0,0,0,0,0,0,16,41,56,52,77,99,133,149,184,203,215,247,255,254,217,157,140,140,116,98,113,86,57,68,88,93,104,
+104,100,85,73,64,43,26,31,31,29,20,15,20,37,38,26,35,38,42,30,17,22,38,57,56,45,29,33,61,107,140,133,93,105,151,171,140,98,95,82,55,54,63,71,80,57,54,51,
+58,75,90,97,119,116,65,50,58,49,47,51,58,36,21,24,29,26,21,23,20,23,27,36,51,88,139,170,155,163,114,112,108,109,104,99,113,197,255,255,255,255,254,254,248,224,246,255,
+249,231,219,233,203,197,196,164,172,169,164,193,221,226,169,141,151,171,180,180,171,134,97,76,79,76,69,82,98,94,72,86,170,238,248,253,249,239,218,203,205,198,197,205,200,193,183,162,
+129,104,98,72,68,66,73,108,121,78,57,54,38,29,27,24,28,30,44,54,66,86,100,101,90,87,93,98,105,95,88,79,71,76,93,129,169,186,220,243,238,226,227,228,194,178,199,226,
+247,246,224,204,180,141,108,84,68,42,27,31,40,43,22,16,21,49,62,54,45,45,41,31,27,23,17,13,8,2,0,0,0,0,0,0,0,17,49,61,38,44,77,111,127,173,199,199,
+241,254,229,163,98,94,123,106,85,83,76,65,111,116,116,133,137,102,77,77,79,50,47,50,41,44,35,35,37,54,57,72,84,64,45,28,22,31,57,62,58,59,52,57,84,130,162,123,
+102,156,210,197,170,134,121,114,109,94,75,70,73,58,52,52,70,90,86,73,79,95,59,55,57,55,44,47,44,31,26,22,23,22,22,23,22,24,28,37,63,90,125,156,130,133,129,127,
+123,113,93,88,90,128,183,224,219,236,255,254,238,212,247,255,255,255,255,255,183,167,182,183,200,201,200,205,229,232,179,127,122,129,157,186,184,151,115,95,88,80,75,64,80,90,79,101,
+170,238,252,253,249,238,217,205,211,204,200,203,196,196,150,65,72,63,49,54,64,69,73,93,113,98,65,47,40,33,29,29,33,38,44,54,70,82,92,97,87,87,88,91,98,87,78,76,
+83,109,165,206,219,241,255,254,248,247,252,250,198,190,240,254,255,255,238,213,182,135,127,146,141,61,33,38,26,30,26,6,15,28,29,33,33,33,34,30,26,22,19,14,9,6,2,0,
+0,0,0,0,0,23,51,54,37,40,70,93,98,147,194,204,225,222,198,168,126,121,115,97,99,76,107,126,167,171,187,186,184,139,97,86,69,51,61,61,44,49,50,56,63,62,61,78,
+79,58,38,28,22,23,36,41,48,61,66,99,123,140,144,126,143,204,229,213,169,139,151,172,139,97,78,63,58,63,44,45,56,57,55,51,49,57,61,50,36,35,34,38,35,28,29,28,
+27,27,26,24,27,33,35,47,75,90,108,146,134,120,133,126,122,120,122,109,88,101,128,154,168,207,249,247,239,229,248,255,255,255,255,253,197,177,179,211,239,236,236,224,218,228,213,161,
+107,114,134,146,161,153,139,129,104,95,99,78,75,94,104,128,196,249,250,253,249,235,221,210,204,201,207,205,197,192,113,43,50,42,44,54,61,63,68,77,93,92,78,61,47,40,33,34,
+38,40,47,55,62,78,86,87,83,91,90,85,93,79,70,71,95,165,235,255,253,254,255,255,255,255,255,252,242,243,255,255,253,255,238,221,178,155,196,196,164,83,47,54,34,20,26,1,
+2,5,13,34,35,24,24,27,26,21,19,16,14,9,6,5,2,0,0,0,5,23,42,49,42,41,61,76,85,130,164,175,185,187,175,158,128,120,104,91,120,133,178,190,197,214,232,222,
+185,155,136,107,79,68,73,77,58,58,62,72,85,66,47,41,42,35,23,21,10,12,17,20,26,38,59,93,137,142,121,122,137,203,225,199,168,193,201,183,118,73,76,65,49,61,45,41,
+43,42,54,57,43,34,37,36,30,31,42,49,48,36,31,31,29,30,33,33,37,48,50,68,86,104,139,143,148,122,104,100,99,115,151,151,99,102,120,137,153,175,226,246,250,241,246,255,
+255,255,253,243,242,206,199,210,242,249,247,212,183,185,221,213,156,123,137,116,119,130,120,120,119,114,113,101,86,91,102,129,187,240,252,250,247,239,227,218,213,205,213,210,201,187,113,65,
+40,35,45,55,63,69,68,71,73,72,86,82,64,47,31,33,37,38,44,55,66,75,86,86,84,90,86,83,83,78,69,70,129,220,255,255,254,255,255,255,255,255,255,254,255,253,254,252,
+250,253,252,238,203,210,255,220,143,105,101,88,49,19,20,24,13,3,8,29,40,27,23,24,27,23,21,20,17,14,12,9,9,7,8,9,16,31,41,48,42,41,52,71,109,137,147,178,
+189,194,169,141,126,125,128,144,164,176,190,193,212,224,231,219,167,132,106,127,133,118,143,140,129,123,100,92,76,45,35,22,15,13,14,5,0,7,8,9,13,30,83,122,133,128,107,99,
+155,207,196,135,151,249,236,156,102,98,93,72,49,48,61,61,49,43,49,58,47,31,31,35,36,49,59,55,47,45,37,30,29,35,36,42,61,71,68,75,84,118,169,179,149,112,70,70,
+91,123,167,164,127,108,126,146,171,198,228,254,255,253,250,255,255,255,248,213,221,189,182,196,224,247,246,175,137,142,184,196,208,197,180,135,116,102,102,106,123,127,129,114,100,102,119,127,
+147,196,250,250,250,239,227,220,215,211,212,211,177,137,111,69,35,36,45,56,71,66,61,63,58,61,85,64,48,45,28,30,35,40,45,57,69,76,83,88,90,84,82,80,77,73,68,77,
+172,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,249,234,220,233,246,213,176,142,135,108,54,15,12,20,19,13,10,22,43,36,26,27,29,29,27,26,23,23,21,22,
+21,22,27,31,37,51,63,66,59,47,58,108,136,151,172,190,198,193,157,129,142,147,164,191,191,194,178,170,196,221,226,215,190,170,156,180,180,189,201,190,198,185,128,93,71,43,27,20,
+19,17,20,9,8,22,9,10,19,37,109,165,141,113,98,147,211,193,125,109,163,233,204,156,116,111,98,79,44,41,55,62,54,42,38,52,56,35,36,43,47,52,55,41,42,42,35,30,
+35,41,44,61,94,91,78,70,76,113,169,182,118,80,59,68,119,170,182,160,140,147,179,215,219,226,246,255,255,255,255,255,255,255,253,208,220,225,198,194,196,227,249,179,112,128,128,129,
+194,217,201,179,150,98,94,108,126,125,140,139,108,118,146,136,130,192,243,253,249,241,227,217,211,213,213,214,189,120,72,61,47,37,43,61,70,59,50,49,49,55,80,84,54,37,28,30,
+36,41,48,62,69,76,83,88,90,83,80,80,75,70,69,92,208,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,250,232,234,246,243,205,192,190,171,134,56,5,8,14,
+19,23,34,41,42,26,28,40,35,30,30,35,35,36,36,42,44,48,55,66,86,101,104,93,77,49,59,99,133,165,187,187,191,164,132,161,198,185,200,192,191,198,161,139,189,242,241,239,
+232,227,222,212,205,206,211,218,206,182,186,151,98,61,36,23,30,43,42,28,49,55,47,36,50,58,106,165,178,141,136,197,218,180,120,143,203,220,194,163,172,162,136,90,38,42,49,49,
+48,48,48,52,41,29,54,50,38,41,38,33,37,37,36,36,41,48,56,83,121,118,79,64,73,102,134,113,79,70,66,85,147,219,219,182,168,199,221,232,240,249,255,255,255,255,255,255,
+255,255,255,240,236,236,205,187,203,227,236,169,126,134,150,111,112,167,178,168,163,119,92,99,136,156,155,136,115,112,135,154,184,226,242,252,248,235,227,222,221,206,205,208,155,83,52,50,
+48,40,45,65,59,55,62,55,50,58,78,128,112,45,38,42,45,44,55,64,73,82,86,90,90,83,82,80,76,72,73,112,217,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,248,238,235,245,246,241,236,232,206,132,43,12,23,36,38,31,36,55,38,21,40,47,40,35,38,50,54,54,61,70,79,86,102,133,154,143,139,125,82,61,63,78,115,156,177,191,
+182,128,146,167,198,218,201,200,191,194,189,198,241,255,248,250,254,253,247,236,228,224,224,234,201,190,221,213,155,112,61,30,47,77,62,27,30,51,73,84,79,71,106,158,212,215,214,215,
+164,125,109,121,190,224,220,219,221,208,155,84,55,52,57,48,42,36,43,37,22,29,57,51,37,42,40,33,34,37,38,44,48,52,64,86,105,97,68,63,76,90,93,70,62,71,76,98,
+157,208,214,187,206,221,222,233,252,255,255,255,255,255,255,255,255,255,255,252,249,232,217,214,228,241,235,192,205,194,203,160,123,121,130,134,126,114,92,98,129,160,141,122,141,134,123,148,
+193,227,242,245,245,234,231,227,220,201,194,180,129,87,62,56,47,47,55,64,55,58,76,64,54,71,114,160,135,73,59,55,54,56,58,68,73,80,84,88,86,82,76,75,73,71,76,120,
+225,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,248,240,235,243,226,213,235,231,179,106,51,29,52,70,51,37,52,52,34,27,41,43,43,47,54,75,75,78,94,105,
+115,134,157,163,169,169,170,147,101,75,76,86,107,142,170,217,182,160,184,146,160,217,206,235,235,239,243,247,255,255,254,255,255,255,255,252,247,240,238,234,215,231,249,229,199,186,102,78,
+107,115,78,16,15,44,56,82,86,82,123,178,218,203,210,186,137,100,70,102,193,192,156,206,220,192,130,87,71,66,62,45,34,28,23,19,14,26,40,37,33,37,41,37,38,43,48,54,
+57,61,65,79,102,79,61,63,71,77,75,59,52,69,84,98,147,179,192,198,206,231,253,255,255,255,255,255,255,255,255,255,255,255,255,255,252,233,233,233,241,247,239,208,207,225,220,232,
+247,178,115,102,83,78,83,101,123,132,112,140,169,143,139,169,206,232,239,240,239,236,235,226,217,207,190,179,173,129,69,58,43,43,57,87,71,59,69,64,66,113,150,156,135,95,71,59,
+61,61,59,66,75,77,76,78,77,73,69,72,73,83,102,136,249,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,255,253,250,248,217,203,197,175,207,214,197,120,79,63,85,97,
+68,68,98,88,62,51,56,57,54,57,70,99,112,120,128,143,153,169,182,183,180,184,183,163,126,95,86,99,106,143,171,211,210,172,142,130,179,213,225,254,255,255,255,255,255,255,255,255,
+255,255,255,255,254,250,249,234,229,231,234,227,217,210,168,139,150,135,80,16,8,16,24,38,68,92,155,208,179,163,161,175,173,136,154,151,167,182,147,176,211,210,147,98,75,80,80,50,
+36,29,17,10,14,20,19,30,37,37,42,42,43,50,56,61,65,73,80,85,99,83,68,69,77,77,64,55,54,75,98,106,123,144,169,197,208,224,254,255,255,255,255,255,255,255,255,255,
+255,255,255,255,249,239,236,241,238,240,215,170,167,219,190,198,235,196,136,90,65,58,72,95,114,107,94,168,193,135,143,165,203,235,241,243,236,232,231,221,215,194,151,169,182,104,59,50,
+36,42,63,87,88,56,64,77,93,128,161,155,144,106,72,62,62,61,59,69,76,71,69,70,72,70,75,84,93,141,201,221,255,255,255,255,255,255,255,255,255,249,246,255,248,201,212,239,
+241,253,255,249,227,226,226,205,187,168,164,137,97,78,97,104,91,90,93,122,116,75,90,99,68,71,83,125,148,161,168,178,187,205,211,218,213,208,199,186,160,148,104,111,122,146,146,133,
+179,169,141,157,201,207,224,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,248,239,225,221,229,238,219,199,208,169,157,137,82,36,26,21,38,75,105,123,119,133,127,113,146,203,
+234,238,241,224,221,224,196,173,163,172,154,107,71,77,71,45,38,30,20,14,20,28,30,34,42,48,50,50,48,54,64,70,82,95,102,109,111,95,77,72,72,69,65,59,65,91,116,118,
+119,129,149,176,204,221,250,255,255,255,255,255,255,255,255,255,255,255,254,254,249,245,243,235,234,214,194,189,207,217,157,148,149,173,149,82,66,61,70,76,78,87,92,156,207,162,129,168,
+219,226,238,246,234,226,224,222,211,155,121,160,162,86,52,43,34,38,66,91,78,59,77,83,104,134,146,143,157,137,92,75,65,63,66,83,79,66,66,68,70,78,102,115,151,224,255,255,
+255,255,255,255,255,255,255,255,252,236,232,238,189,108,125,177,217,239,241,227,224,232,234,222,203,180,160,173,141,97,93,101,95,80,84,108,116,114,148,122,75,88,112,149,177,193,206,217,
+229,245,248,246,241,234,222,205,180,176,127,99,122,125,116,92,144,180,151,133,160,180,206,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,248,241,231,232,228,232,220,184,190,219,
+193,132,88,80,106,108,120,130,142,164,137,126,115,107,153,212,234,238,214,214,229,234,222,200,185,172,176,147,80,50,45,41,40,29,20,22,26,35,47,47,57,68,66,65,55,54,68,86,
+99,116,135,150,141,127,107,102,84,68,68,79,86,107,133,142,135,140,142,156,201,238,249,255,255,255,255,255,255,255,255,255,255,255,250,236,234,241,240,234,234,206,193,215,221,219,167,111,
+97,102,88,70,64,70,84,73,71,97,100,153,210,203,164,203,231,226,228,234,226,219,222,224,215,172,125,153,149,101,65,50,42,41,69,85,61,58,68,87,121,148,160,164,187,193,146,120,
+82,70,83,108,86,58,64,77,78,90,106,134,194,253,255,255,248,255,255,255,255,255,255,255,252,232,219,167,132,107,108,173,224,220,208,196,196,215,226,208,201,196,180,171,164,123,90,78,
+85,68,61,101,104,158,175,137,108,99,127,151,178,224,236,243,255,255,255,255,254,254,239,204,186,176,115,77,93,86,80,83,115,148,136,105,125,149,176,243,249,250,255,255,255,255,255,255,
+255,255,255,255,253,249,248,236,234,228,225,222,224,217,214,221,213,164,121,130,149,155,141,136,140,160,146,139,119,108,170,227,231,214,192,199,213,227,219,207,211,196,173,156,85,37,31,40,
+44,35,34,40,52,54,57,64,84,97,91,76,59,57,66,87,112,136,162,186,161,150,148,132,100,94,93,104,107,106,132,153,140,156,163,171,211,234,248,254,255,255,255,255,255,255,255,255,
+255,246,232,219,215,234,228,226,217,196,191,214,194,207,155,106,100,62,52,55,62,71,90,101,108,122,125,142,186,214,208,233,242,233,215,213,222,218,224,225,217,186,134,127,114,95,78,63,
+48,42,54,62,72,69,65,70,98,130,165,198,212,200,190,173,111,112,133,143,97,54,61,78,79,83,76,79,133,249,255,240,246,255,255,255,255,255,255,255,250,233,215,153,128,119,106,143,
+176,168,184,190,172,193,210,217,187,170,184,170,133,99,73,72,92,71,63,105,122,165,161,176,171,133,111,129,182,238,252,255,255,255,255,255,255,249,193,164,178,170,133,82,68,69,70,78,
+100,106,92,83,98,141,187,192,192,201,249,255,255,255,255,254,255,254,255,255,252,250,243,235,231,222,219,221,218,212,224,221,203,192,171,171,165,171,168,156,136,132,127,123,128,122,161,194,
+200,205,212,203,200,212,225,206,185,191,179,135,69,43,43,51,55,45,45,57,71,79,79,77,84,90,93,83,61,57,80,105,125,144,168,192,176,165,170,155,125,105,121,129,144,146,144,160,
+157,161,175,203,232,232,241,254,255,255,255,255,255,253,252,249,249,241,232,221,204,211,221,206,196,203,185,171,143,155,134,113,119,88,75,65,68,84,102,130,165,175,143,139,182,229,246,253,
+253,250,238,218,225,219,221,226,218,189,141,107,106,105,94,76,52,45,43,51,66,63,58,71,90,115,135,186,191,167,176,183,158,158,172,158,99,52,49,59,59,65,65,57,78,171,228,218,
+175,234,245,234,253,255,255,255,250,247,238,165,135,154,164,133,141,165,165,194,190,200,212,213,213,173,175,149,69,55,51,65,78,73,73,92,144,148,167,193,158,121,133,141,192,239,248,255,
+255,255,255,255,254,227,157,153,177,177,153,97,83,78,82,94,108,107,85,76,97,149,184,155,163,204,240,254,255,255,255,241,243,249,245,246,248,243,211,210,214,218,218,227,226,222,228,240,
+228,227,220,191,194,206,190,165,122,91,94,121,169,182,176,180,210,213,227,210,201,219,219,225,197,179,171,83,51,52,58,58,58,49,52,64,72,85,90,85,83,98,109,90,62,56,98,141,
+137,140,180,210,185,164,192,189,154,86,75,107,176,196,184,180,175,164,186,226,232,231,240,253,255,255,255,255,254,252,248,243,238,239,246,222,186,187,199,190,189,191,153,135,148,120,99,107,
+107,94,80,78,83,106,151,184,194,204,203,191,214,248,255,255,255,255,249,227,227,227,225,225,221,197,136,107,106,111,102,87,70,62,63,68,68,62,55,83,101,99,121,160,169,156,161,175,
+189,172,179,154,99,63,54,57,70,73,65,55,52,69,137,156,86,189,220,229,254,255,255,255,254,255,253,194,168,175,180,137,164,182,173,219,227,220,224,218,218,200,180,100,44,37,35,43,
+52,68,70,107,171,183,178,151,141,147,165,184,197,213,228,236,252,255,255,255,255,219,184,184,189,180,146,101,115,112,111,129,143,128,86,92,112,136,148,155,200,206,228,248,255,255,250,233,
+217,205,214,225,226,214,189,186,196,204,219,224,234,231,236,242,245,242,222,205,198,193,173,128,104,68,79,165,204,206,193,194,225,224,242,235,222,226,226,226,215,199,142,62,52,55,59,55,
+51,48,58,80,93,91,98,119,132,133,115,85,59,61,82,134,163,175,191,212,213,191,187,191,140,70,54,83,169,187,156,141,143,132,177,228,221,233,243,243,245,249,252,255,255,250,236,228,
+219,242,253,231,199,193,192,155,157,148,139,149,184,164,125,120,123,94,90,100,121,154,189,219,229,241,249,239,245,252,255,255,255,255,252,235,236,238,243,245,238,231,179,132,121,106,120,108,
+105,95,97,122,139,109,80,72,76,66,95,121,135,137,143,144,179,211,192,149,111,116,154,146,135,100,72,59,54,61,65,62,65,146,211,236,255,255,255,255,255,255,255,207,167,170,197,162,
+207,234,206,211,232,249,248,239,235,173,94,54,35,37,42,48,51,57,73,134,178,169,162,158,157,167,171,205,200,201,210,192,228,255,255,255,254,219,203,208,194,165,127,108,126,132,137,148,
+137,136,101,95,106,141,137,156,184,190,207,227,220,228,232,224,205,175,210,219,201,185,185,178,175,197,212,215,238,242,245,241,246,242,218,208,206,199,201,171,136,107,136,201,199,212,203,213,
+248,240,239,239,248,250,246,242,208,134,85,61,56,63,66,68,59,62,86,83,88,104,129,148,163,165,108,78,69,68,75,107,147,184,186,186,200,190,155,154,156,92,69,79,118,154,157,116,
+105,105,151,200,217,226,232,224,214,220,240,248,239,229,220,206,208,228,241,227,191,192,194,163,167,175,197,197,184,189,192,182,163,121,101,104,111,167,207,248,255,255,254,253,254,255,255,255,
+255,255,255,253,254,253,254,255,254,255,243,224,201,163,175,180,160,137,135,170,190,154,127,88,57,55,70,87,102,114,112,120,150,193,217,175,153,168,199,206,155,116,90,73,59,55,55,49,
+55,108,186,238,255,255,255,255,255,255,241,165,122,160,247,255,252,232,192,206,239,253,255,254,246,185,118,78,87,121,129,99,65,57,82,118,140,142,150,169,172,185,197,197,179,198,182,172,
+229,254,255,255,249,219,196,206,193,161,137,130,125,142,150,153,144,136,113,95,112,137,160,175,169,197,164,140,135,170,192,194,186,184,192,208,200,170,154,135,160,189,210,219,239,240,241,245,
+248,246,239,233,218,191,205,219,197,177,186,194,198,241,255,254,245,226,228,245,252,255,255,253,215,149,105,113,141,150,132,97,83,92,104,84,108,164,169,154,160,176,158,128,112,95,91,87,
+125,206,219,190,185,192,164,140,187,150,99,118,153,163,158,116,119,114,137,160,175,205,213,201,185,200,226,224,214,210,198,190,185,194,213,200,177,201,214,187,154,184,218,203,182,179,185,175,
+167,120,88,99,105,126,204,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,255,255,249,241,245,250,228,213,220,222,211,173,134,106,71,57,68,71,76,92,90,97,
+132,164,157,177,207,171,164,194,169,141,111,88,71,51,50,50,49,90,161,212,254,255,255,255,255,255,212,121,92,142,233,255,255,249,247,254,255,255,255,252,246,233,185,164,189,214,204,178,
+151,137,99,78,112,134,127,132,162,200,218,203,176,158,168,175,203,233,249,241,226,208,192,203,191,146,134,148,153,160,182,171,154,143,104,98,119,128,144,179,158,161,135,106,114,147,146,140,
+149,141,142,170,171,143,116,102,151,187,204,215,233,235,231,241,245,241,232,221,217,211,214,208,204,192,191,191,199,236,255,255,253,249,253,255,255,255,255,252,245,205,185,201,228,227,207,185,
+179,149,139,175,210,212,198,192,210,191,173,155,150,120,104,105,142,186,175,178,189,193,175,161,197,196,161,173,205,200,173,116,118,120,133,164,162,183,198,191,184,198,211,210,206,197,178,170,
+169,183,196,176,163,182,189,163,127,178,213,211,200,183,162,157,161,111,86,102,106,128,167,233,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,254,242,240,208,157,136,114,101,80,65,65,78,87,100,136,183,146,186,238,172,192,199,165,160,115,85,73,64,54,48,68,86,150,183,229,224,238,255,255,255,215,146,104,135,247,255,
+255,255,255,255,255,255,255,255,255,248,239,248,204,217,164,165,194,182,147,119,119,114,113,119,163,203,173,169,160,160,171,186,165,167,191,196,193,180,177,178,170,155,157,161,161,161,172,167,
+167,148,109,122,126,125,137,140,121,113,108,90,87,97,99,94,95,87,82,112,137,141,123,112,148,189,199,212,226,231,229,232,233,232,220,217,219,213,211,206,198,192,194,192,193,245,255,255,
+255,255,255,255,255,255,255,255,253,238,250,228,232,227,206,219,226,218,218,225,229,213,177,175,210,205,189,182,165,113,98,112,116,142,144,118,156,185,184,162,184,201,194,190,194,185,178,123,
+105,129,146,168,186,201,199,182,164,176,190,194,194,180,156,160,163,176,184,176,153,140,116,100,99,141,189,203,211,197,157,133,125,99,95,106,100,118,165,215,253,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,253,252,239,196,155,178,182,155,132,87,84,86,93,108,135,172,196,212,160,150,211,231,178,132,109,77,85,97,98,92,
+119,146,173,185,155,164,204,252,255,255,232,185,165,186,250,255,255,255,255,255,255,255,255,255,255,255,255,255,232,175,153,164,208,173,132,116,108,106,126,129,141,167,144,146,148,154,149,140,
+133,148,160,170,165,162,158,158,155,157,179,160,147,161,161,144,157,142,99,98,98,98,101,100,100,87,78,107,119,82,90,94,95,90,85,122,118,142,143,141,162,208,218,224,232,235,238,232,
+227,227,220,217,217,215,210,203,192,194,204,214,227,253,255,255,255,255,255,255,255,255,255,255,255,255,255,246,211,206,165,212,203,173,203,229,228,203,176,194,213,225,220,178,157,101,73,84,
+85,102,151,127,121,144,150,149,163,175,184,185,177,162,164,157,132,133,160,190,225,222,199,185,171,173,178,183,176,165,150,160,168,176,175,175,151,144,98,77,79,112,182,207,198,155,118,119,
+114,92,95,122,106,121,151,153,224,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,231,201,160,126,98,120,183,190,143,101,94,88,99,121,
+140,154,183,187,148,146,171,222,231,156,108,78,88,71,64,76,62,173,176,162,148,185,212,236,254,255,248,198,170,207,253,255,255,255,253,254,255,255,255,255,255,255,255,249,250,200,170,175,
+170,141,98,83,111,119,123,118,125,137,119,112,113,126,141,129,115,122,132,135,132,135,153,149,146,160,189,175,182,203,172,142,128,120,88,64,61,57,59,70,82,76,82,116,121,104,107,112,
+93,78,87,93,94,140,147,154,194,228,234,238,247,249,246,242,239,231,231,227,218,220,208,205,193,196,203,214,240,255,255,255,255,255,255,255,255,255,255,255,255,255,248,249,226,192,167,171,
+158,121,130,205,228,228,219,222,210,193,185,170,156,95,55,58,68,73,101,133,135,107,114,128,130,108,137,161,150,142,153,149,126,125,162,222,254,239,218,207,198,222,226,210,208,186,158,160,
+155,170,163,155,158,153,123,102,113,158,201,206,173,118,79,95,118,101,92,115,115,109,151,127,135,218,255,255,255,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,204,129,106,85,64,56,84,84,56,66,72,70,86,102,118,136,156,161,160,147,99,92,153,143,100,73,66,45,28,8,28,64,120,147,164,194,196,226,240,247,224,162,128,183,239,247,
+243,231,245,254,255,255,255,255,255,255,255,255,255,215,186,139,85,70,57,63,76,90,102,98,99,106,90,91,99,115,148,143,116,107,104,106,113,129,139,134,140,160,184,191,225,236,186,133,
+109,111,101,78,61,54,45,57,78,83,83,109,118,136,156,141,102,90,106,101,125,137,120,150,203,234,238,243,252,254,252,245,241,240,236,224,227,229,221,207,183,173,160,173,213,248,250,250,
+250,254,255,255,255,255,255,255,255,255,254,255,227,183,148,76,62,52,88,165,183,229,234,229,190,123,128,163,161,130,73,43,57,70,84,128,142,105,86,86,84,55,85,116,121,133,140,127,
+114,140,186,245,255,255,247,250,246,249,255,252,255,243,231,218,189,204,206,173,164,170,168,158,167,191,192,179,165,147,125,127,120,105,95,106,128,121,137,112,88,151,175,205,255,253,218,212,
+254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,250,247,253,239,162,102,76,63,55,48,50,50,55,57,63,72,76,77,100,116,115,94,90,70,57,78,83,73,64,49,48,45,34,
+21,12,100,172,163,168,142,134,122,125,120,82,86,128,184,204,221,225,253,255,255,255,255,255,255,255,255,255,255,190,106,83,55,42,45,56,73,82,85,83,77,79,78,86,105,135,161,136,
+106,98,92,99,106,100,107,116,127,125,136,172,215,239,242,208,165,157,141,115,85,51,44,58,88,101,78,80,109,140,134,109,100,100,113,98,121,129,147,206,221,238,242,247,249,252,249,248,
+246,239,229,224,225,229,221,194,157,173,170,171,168,197,213,228,242,253,255,255,255,255,255,255,255,255,255,255,213,100,77,42,24,30,54,153,187,206,217,210,191,140,127,143,149,146,111,61,
+43,51,80,107,104,86,69,64,71,62,79,90,106,120,130,127,136,165,218,255,255,255,255,255,255,249,255,255,255,255,255,254,247,253,255,227,205,198,190,187,160,150,160,158,153,141,126,129,
+104,92,102,121,146,126,109,104,102,125,104,126,173,197,169,203,253,255,255,255,255,255,255,255,255,255,255,255,255,246,241,245,236,242,250,200,135,94,75,63,50,49,55,54,55,65,57,51,
+48,56,69,73,57,54,50,51,54,57,58,57,45,44,41,37,16,21,128,144,111,99,55,31,21,21,34,45,65,86,126,153,196,245,255,255,255,255,255,255,255,255,255,255,255,173,88,68,
+59,50,54,58,66,73,70,71,71,78,84,87,113,163,158,108,87,80,80,88,94,85,83,94,112,115,121,184,194,213,224,240,246,207,196,169,118,63,52,61,84,90,78,79,97,116,139,118,
+98,95,101,106,147,175,179,219,214,227,222,238,245,253,250,236,201,211,222,226,231,225,205,192,183,177,167,146,142,142,154,193,241,255,255,255,255,255,255,255,255,255,255,255,200,83,56,37,
+26,23,31,71,142,170,165,151,134,127,133,142,129,135,142,94,24,30,49,71,79,69,56,47,63,79,88,94,114,122,134,143,163,187,236,255,255,255,255,255,254,254,255,255,255,255,255,255,
+255,255,255,255,241,211,196,191,175,178,179,179,151,129,120,122,112,109,115,134,143,111,85,90,105,127,107,95,105,177,183,212,255,255,255,255,255,255,255,255,255,255,255,255,253,243,238,252,
+254,242,229,211,178,143,107,86,71,65,68,55,50,56,44,36,36,35,41,42,44,41,43,43,47,48,49,50,47,44,38,34,24,37,83,78,44,28,21,13,10,23,44,72,63,70,76,101,
+162,226,255,255,255,255,255,255,255,255,255,255,255,221,106,73,84,82,73,66,62,66,61,58,82,116,104,99,156,176,142,106,86,71,69,77,84,86,78,79,87,105,107,203,206,205,225,231,
+252,210,179,167,134,83,57,55,62,71,80,72,92,116,162,148,109,129,143,146,187,190,168,139,105,154,193,215,190,210,224,177,115,161,199,204,210,211,213,212,201,156,127,102,114,129,141,175,
+220,255,255,255,255,255,255,255,255,255,255,255,243,115,55,44,49,36,29,21,57,91,111,105,76,93,135,141,105,134,135,57,12,22,36,54,61,66,52,35,51,73,85,106,132,140,154,170,
+196,222,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,215,199,197,203,205,198,180,147,142,153,140,133,125,118,105,121,126,119,106,106,125,122,102,118,163,167,153,
+232,249,255,255,255,255,255,255,255,255,255,254,255,252,246,255,255,253,241,227,206,153,109,88,87,83,85,63,45,41,36,30,30,31,33,35,36,35,38,38,38,43,40,47,45,44,41,34,
+35,49,64,52,28,23,20,31,76,113,141,122,70,59,66,84,118,175,211,252,255,255,255,255,255,255,255,255,247,193,183,151,129,112,88,73,69,75,68,66,108,167,148,134,196,197,147,126,
+97,72,68,75,82,80,72,69,72,86,94,156,193,211,197,207,200,205,165,137,111,65,59,54,49,59,72,70,75,93,127,122,118,114,121,114,120,107,64,42,52,94,135,114,93,121,137,128,
+88,119,146,162,168,165,194,215,214,198,177,169,171,165,171,176,187,201,241,255,255,255,255,255,255,255,255,252,182,173,149,105,72,36,24,17,38,75,106,85,55,73,137,139,100,137,86,15,
+10,17,36,47,44,56,52,38,43,58,75,128,170,180,193,213,235,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,246,210,189,185,203,204,190,157,136,182,193,167,
+148,120,109,107,114,116,133,129,129,153,150,127,146,163,161,149,196,245,255,255,255,255,255,255,255,255,253,250,241,221,228,253,255,255,253,241,220,163,108,70,61,57,55,54,44,36,31,27,
+26,28,29,28,30,29,34,35,36,37,37,45,45,45,42,40,41,68,66,56,54,50,57,71,106,144,142,101,54,45,49,70,98,132,169,224,250,255,255,255,255,255,255,255,252,226,184,184,
+157,127,102,79,70,82,90,95,116,191,239,231,234,224,187,139,98,82,73,76,76,72,66,65,69,87,112,125,144,190,184,190,203,193,132,105,68,48,47,45,43,52,63,56,45,63,80,80,
+80,69,91,92,56,40,30,30,37,59,90,66,41,62,73,73,90,115,107,109,130,107,121,162,191,198,200,212,201,169,156,157,158,158,205,245,255,255,255,255,255,255,255,254,219,177,170,154,
+90,30,22,24,31,48,61,61,44,59,130,147,135,140,43,8,12,21,35,31,30,45,55,47,38,48,71,135,193,227,238,254,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,249,197,155,167,186,204,170,133,155,164,190,187,153,130,108,106,98,121,160,157,156,176,172,165,170,192,210,220,220,253,255,255,255,255,255,255,255,255,254,248,234,219,238,245,
+243,254,252,231,201,162,105,66,52,47,43,41,40,35,30,28,23,24,22,22,21,21,28,34,37,40,42,47,43,42,43,40,61,91,57,66,73,99,125,128,134,147,126,88,31,19,24,52,
+88,121,168,220,239,252,255,255,255,255,255,255,255,255,231,191,151,128,108,84,75,82,95,123,135,172,253,255,241,172,155,120,98,90,75,72,70,70,66,66,77,104,143,148,116,128,139,148,
+182,199,134,115,73,43,34,35,36,51,61,48,40,57,71,62,52,61,78,68,34,20,24,26,29,50,82,73,49,58,58,56,78,84,82,104,105,98,123,171,198,206,207,211,193,175,163,161,
+155,156,206,232,248,255,255,255,255,255,254,255,255,234,192,127,73,31,23,24,35,50,52,49,47,49,90,140,120,84,21,9,12,17,22,22,28,38,48,50,50,56,106,143,163,169,199,255,
+252,214,212,255,255,255,255,255,255,255,255,255,255,255,254,255,255,255,231,217,247,227,176,168,186,193,160,161,163,140,172,197,172,147,118,109,111,136,192,203,186,179,203,227,236,249,250,232,
+205,235,255,255,255,255,255,255,255,255,255,253,245,242,245,233,222,232,233,207,178,129,82,58,49,44,40,40,37,36,34,29,24,24,20,17,14,16,24,33,40,44,48,52,48,44,48,34,
+59,63,52,54,59,115,139,141,149,153,137,100,36,16,13,44,80,99,147,231,218,236,255,255,255,255,255,255,255,255,246,165,140,121,102,91,82,88,126,169,187,228,255,255,219,118,98,94,
+88,82,69,65,65,72,73,72,85,111,146,157,119,115,109,105,148,183,158,130,101,61,43,36,36,55,57,41,40,55,63,61,64,65,57,34,21,17,19,20,42,62,72,83,68,52,51,56,
+62,61,91,134,129,150,190,197,176,177,197,203,204,192,172,140,116,129,212,221,221,255,255,255,255,254,252,255,255,255,176,122,78,45,35,31,41,56,51,37,35,27,21,44,29,15,19,16,
+10,12,17,28,45,48,51,64,84,97,139,151,151,130,144,180,201,176,208,255,255,255,255,255,255,255,255,255,255,255,255,254,224,201,167,136,200,236,198,173,180,190,196,171,144,161,197,210,
+198,162,126,118,163,189,203,211,205,211,232,238,249,255,254,238,210,242,218,226,250,255,255,255,255,255,255,255,249,248,238,213,200,211,218,213,183,151,101,61,43,36,37,35,36,35,33,28,
+24,22,20,10,8,14,23,35,44,49,48,50,50,51,55,54,64,58,56,50,48,65,104,136,160,142,65,21,14,13,17,41,77,78,114,193,217,228,255,255,255,255,255,255,255,255,207,121,
+104,101,88,88,94,153,217,248,242,250,255,255,232,119,91,84,80,78,68,62,61,71,85,85,95,116,146,151,120,101,97,101,144,172,198,162,123,83,52,48,49,47,40,37,43,43,44,51,
+63,55,36,22,17,13,10,13,31,44,47,62,49,36,51,64,76,86,92,108,170,189,167,151,99,109,150,172,176,150,116,100,79,85,161,207,210,252,255,254,255,255,255,255,255,234,142,113,
+95,75,57,45,45,52,51,35,20,19,7,3,13,14,23,20,12,15,35,51,54,52,65,93,122,155,153,137,149,137,133,133,184,189,226,255,255,255,255,255,255,255,255,255,255,255,255,252,
+211,180,173,148,143,167,172,183,186,187,199,179,171,199,219,222,220,196,162,151,185,184,182,194,205,218,217,219,228,246,254,249,232,192,144,183,233,250,255,255,255,255,255,255,254,250,226,192,
+204,219,221,206,187,186,118,52,45,38,36,36,37,35,27,26,24,21,19,14,9,16,26,37,47,51,54,52,52,55,59,69,64,64,66,66,61,54,95,130,143,75,13,7,17,19,27,40,
+62,66,92,150,204,227,247,248,252,255,255,255,255,255,232,118,79,91,97,109,132,207,255,255,255,255,253,252,235,173,112,84,78,76,70,65,64,73,90,94,102,127,128,125,108,92,94,106,
+140,179,205,140,101,83,65,57,58,47,41,45,36,38,35,33,37,37,24,13,7,5,5,5,14,27,28,33,29,35,57,75,98,120,107,84,83,77,66,73,52,52,80,106,113,98,76,66,
+56,62,115,173,201,227,231,233,255,255,255,255,255,254,170,79,83,91,72,52,50,57,57,42,33,19,13,24,26,23,24,20,21,54,76,73,59,64,72,123,183,178,167,151,153,150,140,144,
+173,196,189,235,249,255,255,255,255,255,255,255,255,252,252,255,234,190,165,160,170,161,163,189,208,208,210,221,180,197,206,191,197,176,163,158,167,149,140,156,172,179,185,191,196,212,221,233,
+215,186,191,229,242,248,255,255,255,255,255,255,255,248,221,213,229,229,219,186,170,191,157,79,52,50,45,43,38,29,26,23,21,20,17,16,15,26,35,43,51,61,65,57,56,61,65,69,
+77,87,92,100,116,137,129,116,90,44,33,35,30,28,31,34,49,73,109,125,170,211,234,254,255,255,255,255,255,255,222,134,84,88,126,173,226,246,255,255,255,254,254,242,169,179,157,95,
+83,80,75,69,70,72,84,85,93,116,104,97,85,88,95,115,148,187,191,144,93,72,78,68,50,47,43,38,35,35,40,30,35,30,19,9,3,1,0,0,3,10,19,26,30,41,52,84,
+87,106,133,102,61,41,37,54,56,51,59,66,79,80,52,48,59,87,105,136,178,192,222,232,252,255,255,255,255,254,192,125,107,93,64,54,49,45,42,41,47,47,65,71,36,30,27,22,
+43,94,109,106,85,99,107,149,190,193,201,208,200,179,158,167,182,196,179,198,245,255,255,255,255,255,255,255,252,240,242,235,206,203,210,206,198,186,192,206,211,194,206,224,199,167,151,118,
+129,106,105,121,133,108,95,116,134,141,150,157,161,183,203,219,201,211,242,249,254,255,255,255,255,255,255,255,255,254,248,241,239,240,227,192,169,203,187,130,98,76,64,43,33,30,28,24,
+21,19,21,20,29,37,47,52,58,66,75,69,62,64,71,73,95,102,123,171,206,210,165,141,118,71,61,57,44,41,36,37,58,102,120,136,175,192,243,255,255,255,255,255,255,243,184,139,
+109,100,128,171,231,243,248,255,255,255,246,228,162,171,179,102,91,90,79,73,75,70,78,82,87,114,109,82,76,97,108,115,139,204,222,176,122,92,80,79,65,55,52,59,55,41,38,35,
+31,26,15,7,5,0,0,0,0,0,12,17,22,33,55,76,90,106,122,95,82,47,26,30,36,37,40,59,70,55,36,57,102,111,112,141,153,178,205,215,226,233,233,249,254,231,194,173,
+140,105,80,54,36,33,33,35,59,144,146,92,65,63,50,42,62,104,141,135,108,125,142,157,190,210,220,231,225,213,199,192,218,234,238,228,253,255,255,255,255,255,255,254,248,239,233,226,
+210,232,236,224,197,184,201,200,193,173,206,229,192,134,112,84,80,68,63,69,82,66,63,72,88,100,105,112,134,161,184,198,192,221,243,247,250,255,255,255,255,255,255,255,255,255,254,254,
+250,245,233,219,204,208,217,204,151,99,83,44,37,33,24,22,22,23,26,29,43,56,54,59,69,72,77,76,77,73,75,86,100,100,118,178,184,177,153,147,186,168,146,102,65,56,49,50,
+59,76,102,146,205,231,249,255,255,255,247,242,239,215,185,137,113,116,128,127,151,186,215,238,245,222,208,220,147,134,132,109,99,97,90,80,77,76,75,73,85,109,132,106,101,114,147,167,
+160,211,245,214,151,128,91,86,72,72,93,144,99,42,37,33,24,22,13,6,6,3,3,3,1,1,7,12,19,44,70,69,76,76,69,63,59,42,20,22,31,41,58,68,61,43,37,54,
+78,98,123,148,157,161,168,180,186,191,207,228,220,221,207,176,164,121,73,43,29,31,35,44,73,147,167,118,111,106,77,116,156,179,213,177,139,167,173,192,210,233,241,233,233,242,245,247,
+254,255,253,233,241,255,255,255,255,255,255,253,245,239,238,234,239,243,225,204,187,186,189,179,160,161,200,208,162,105,73,70,68,52,43,37,45,43,43,47,58,65,50,45,68,87,135,183,
+196,221,236,246,248,254,254,255,254,252,254,255,255,255,255,255,254,247,238,227,218,191,187,180,136,88,82,56,47,34,26,23,22,26,30,43,57,65,64,63,76,83,82,79,78,85,82,85,
+100,95,94,108,119,150,183,171,165,225,247,200,111,100,80,76,55,42,57,123,193,229,249,255,255,233,217,211,206,194,164,127,112,115,115,135,156,204,205,180,192,186,205,214,168,128,119,133,
+118,102,99,85,78,78,66,65,83,101,122,126,114,119,167,219,211,215,234,208,196,177,132,142,120,134,170,208,156,43,40,43,24,21,20,10,8,3,3,6,7,5,8,13,23,48,62,61,
+59,55,52,54,47,34,29,36,42,51,51,50,47,47,47,45,51,78,109,121,132,135,137,143,158,179,207,212,196,196,198,191,170,126,77,50,40,44,54,69,136,179,192,187,190,178,183,214,
+205,205,220,217,193,191,177,219,245,252,252,246,249,254,255,255,255,255,255,247,248,222,225,249,255,255,255,253,246,236,238,241,246,235,203,180,185,205,205,183,177,171,187,191,141,88,66,65,
+50,37,31,29,41,37,29,37,43,41,26,19,24,30,52,141,192,198,218,225,233,250,254,250,249,248,248,253,253,254,254,254,254,253,245,235,215,147,137,147,148,133,112,70,40,35,33,28,
+28,31,35,47,61,68,84,86,85,86,92,97,94,88,99,108,120,99,91,104,133,179,194,200,225,228,233,255,208,201,121,66,45,37,36,71,115,164,185,196,219,190,163,169,179,193,179,147,
+134,122,107,134,169,190,207,186,165,167,196,198,179,140,137,185,168,99,98,88,84,93,70,61,78,127,158,154,140,119,156,211,226,215,233,197,232,238,224,222,201,220,233,220,211,100,47,80,
+56,22,12,10,8,3,6,12,12,7,10,19,30,45,56,63,58,62,62,52,40,23,26,29,29,34,34,38,43,72,83,58,54,64,71,73,85,98,98,111,136,144,190,211,212,217,222,187,
+143,100,83,69,63,66,69,113,218,242,241,254,246,246,255,233,201,192,208,229,221,226,220,245,255,255,255,254,255,255,255,255,255,255,255,253,219,161,178,228,246,253,253,253,250,242,240,245,
+246,219,178,191,210,217,203,191,200,175,172,200,148,108,83,54,42,38,27,27,36,33,30,31,27,29,27,22,13,14,22,100,153,118,127,123,120,180,245,247,249,250,246,245,247,248,252,254,
+254,253,245,240,226,171,157,153,142,149,99,54,35,35,34,34,35,35,36,43,55,56,70,93,102,100,102,118,121,98,114,162,164,107,118,157,167,222,203,224,255,254,204,213,227,228,111,55,
+43,40,36,36,57,78,93,107,123,123,139,162,163,191,182,164,147,144,114,112,142,161,170,185,150,130,151,197,198,141,148,250,215,97,91,87,88,97,78,72,75,98,150,200,196,148,160,161,
+178,197,190,200,238,247,255,250,240,248,248,240,211,115,70,100,105,48,16,13,8,5,8,12,14,13,16,27,41,54,63,68,78,91,57,30,17,13,12,13,15,17,21,40,75,119,116,73,
+66,64,54,52,63,65,65,70,78,101,171,225,233,233,214,173,137,112,99,80,87,90,92,175,249,249,255,255,255,254,252,248,245,239,235,236,240,240,231,249,255,255,255,255,255,255,255,254,
+254,253,252,240,210,196,227,238,245,254,253,252,252,250,248,249,239,206,197,219,222,215,190,180,204,196,168,171,155,120,77,48,37,31,26,27,30,31,29,33,33,36,31,23,13,13,21,45,
+69,73,112,134,122,140,214,247,248,250,243,235,228,232,245,249,252,252,246,236,232,208,149,118,95,83,48,40,42,35,34,34,38,38,41,47,62,68,68,73,86,98,98,122,127,101,93,189,
+192,164,183,235,204,177,173,210,250,255,198,189,193,233,133,63,49,45,40,33,41,55,70,87,91,109,147,168,151,153,144,147,133,121,101,97,116,143,151,160,139,113,115,165,184,163,176,246,
+226,105,91,97,100,101,92,98,97,95,119,151,157,143,146,158,168,190,180,158,187,231,247,253,254,253,253,254,222,130,143,161,154,88,37,29,20,9,8,9,13,14,17,28,41,57,70,71,
+66,59,30,12,2,0,2,7,9,13,20,35,61,85,78,61,57,61,54,51,52,59,61,62,114,135,154,229,231,197,163,163,137,121,107,98,127,154,163,245,255,254,255,255,255,254,255,250,
+238,236,241,252,250,242,242,254,255,255,255,255,255,255,254,252,253,250,249,220,218,241,248,253,252,254,254,254,253,254,254,253,250,238,224,221,231,222,197,182,213,210,185,160,132,99,55,34,
+34,33,34,41,42,31,33,43,49,45,22,16,13,14,15,20,42,59,78,116,135,112,148,222,246,243,236,220,213,225,240,247,246,247,243,224,179,120,73,64,58,54,49,42,41,38,36,37,
+37,40,44,52,69,78,70,62,76,91,90,112,119,94,80,128,182,207,228,250,239,173,182,205,231,248,255,253,200,165,109,65,54,45,38,35,36,44,54,65,80,100,115,116,104,100,108,120,
+108,95,85,82,93,116,140,130,118,118,114,125,153,185,194,241,252,151,127,144,134,126,122,126,140,135,126,125,120,106,128,156,169,163,170,177,155,208,252,255,255,255,255,255,248,221,210,182,
+157,115,69,61,36,21,19,16,10,8,14,22,37,50,61,63,47,22,7,0,0,0,0,0,7,19,24,28,37,54,56,43,42,47,56,54,52,70,112,163,212,211,222,247,242,173,142,148,
+135,116,100,141,221,247,249,255,254,255,255,255,255,255,255,249,222,233,248,255,255,254,254,255,254,248,235,234,241,242,229,238,248,250,240,212,228,243,243,243,250,249,255,253,253,254,254,255,
+253,250,246,239,233,226,220,212,218,222,211,168,125,88,49,38,38,37,35,48,58,36,34,48,54,47,33,20,10,17,17,19,36,48,62,85,101,116,119,171,226,235,215,182,199,218,238,247,
+243,243,240,222,169,88,69,65,62,59,51,42,40,37,37,40,41,45,50,59,59,66,59,56,75,87,86,91,91,88,93,127,134,136,172,201,227,156,165,189,162,210,254,225,122,87,68,63,
+56,47,38,35,33,33,35,43,56,73,80,75,68,75,86,95,93,86,78,75,82,104,133,126,118,132,121,133,130,137,183,242,250,193,206,232,215,180,164,155,165,161,137,115,90,82,104,171,
+234,232,221,214,215,242,255,255,255,255,255,249,242,217,207,161,116,98,94,84,56,36,31,23,14,9,10,15,28,41,44,43,29,8,0,0,0,0,0,0,3,15,24,24,29,41,58,56,
+54,51,50,61,56,75,151,210,218,232,246,254,245,207,199,221,236,206,175,214,255,255,255,254,254,255,255,255,255,255,255,253,240,247,255,255,255,255,255,255,250,245,232,221,207,186,164,172,
+179,210,236,225,232,238,243,243,249,252,252,250,250,253,254,254,254,255,254,250,238,231,228,224,203,197,185,147,100,76,48,45,44,36,34,41,45,31,27,40,54,51,44,29,20,21,26,23,
+30,43,56,85,135,148,161,198,213,220,212,201,214,215,221,232,239,239,233,233,197,114,82,73,69,59,52,48,44,43,42,42,47,57,61,70,57,54,55,57,65,75,80,84,76,76,97,127,
+100,108,118,132,162,125,140,170,125,148,215,215,127,80,62,59,54,44,36,33,30,29,28,31,41,47,54,55,55,59,68,73,84,79,73,70,77,108,137,118,113,128,118,163,142,123,171,225,
+212,219,253,255,247,194,179,187,189,169,132,88,75,87,114,204,255,248,252,253,255,255,255,255,255,255,255,211,162,158,187,149,121,95,79,92,83,64,45,34,22,9,6,9,19,38,36,41,
+29,8,0,1,0,0,0,0,2,13,21,24,36,50,63,65,69,70,54,56,59,66,104,172,231,239,239,253,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+253,250,255,255,255,255,255,253,252,249,253,233,193,153,120,125,108,112,198,232,211,221,219,226,247,252,247,246,245,245,250,250,254,254,255,254,252,242,234,220,165,158,157,139,104,73,47,42,
+40,35,36,37,36,27,24,33,49,49,36,31,30,36,35,31,31,45,63,104,173,162,153,173,180,187,207,214,220,219,201,192,217,200,164,197,183,112,91,79,66,56,56,54,54,54,51,52,
+52,55,62,66,64,56,56,58,56,61,70,76,72,71,75,84,86,104,105,122,134,116,123,112,93,112,137,156,120,71,58,54,48,41,34,33,30,29,27,29,36,41,42,43,47,49,56,64,
+76,77,73,65,77,118,148,150,134,109,104,127,122,114,149,182,160,177,231,255,242,229,222,196,186,165,134,79,63,82,116,198,255,255,255,255,255,255,255,255,255,255,253,190,116,102,144,192,
+163,123,101,91,93,99,79,42,33,19,15,15,22,35,31,31,21,9,1,0,0,0,0,0,10,17,24,42,48,45,50,56,59,66,59,63,64,70,84,137,217,232,240,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,249,252,250,247,233,196,143,113,99,102,82,84,162,197,122,97,76,85,149,235,241,236,235,226,234,242,
+248,253,255,255,253,242,239,229,180,165,150,122,94,62,44,37,36,37,38,36,38,31,26,31,43,44,37,31,30,37,33,31,31,51,75,94,135,151,118,106,118,141,192,204,190,212,198,183,
+187,161,123,128,125,83,57,49,49,49,52,56,58,59,58,57,56,58,64,66,66,61,57,56,55,56,63,71,76,70,66,70,72,80,100,112,129,126,109,82,76,79,84,83,73,62,54,49,
+43,37,33,33,33,29,28,31,34,36,36,35,38,44,47,51,66,84,83,78,95,119,148,179,162,112,91,91,91,88,99,114,130,171,182,219,225,212,207,190,187,157,113,75,58,78,116,178,
+238,255,255,255,255,255,255,255,255,255,255,218,120,93,93,143,171,123,106,109,92,120,95,55,54,58,43,24,30,37,44,38,21,5,0,0,0,0,0,3,19,24,28,43,48,41,43,48,
+48,55,66,73,66,79,84,125,200,225,247,254,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,254,248,240,242,233,226,201,167,139,116,115,113,
+111,108,97,93,58,43,42,38,52,133,218,211,215,206,208,199,212,242,250,253,250,243,234,232,211,158,128,104,79,56,47,41,36,35,37,37,45,41,27,30,34,38,37,33,26,24,24,30,
+33,49,78,102,101,101,100,91,115,147,171,193,191,208,192,197,192,142,118,100,86,65,42,33,38,47,51,56,58,61,62,59,58,57,59,62,62,58,55,54,51,56,62,69,76,66,63,65,
+64,69,86,108,113,100,76,64,68,72,71,68,63,58,52,45,42,35,35,34,33,31,30,30,34,34,33,31,33,36,43,48,61,85,92,92,115,121,130,167,170,125,90,84,80,80,90,98,
+114,133,136,172,222,192,207,198,191,144,91,75,69,78,93,135,219,255,255,255,255,255,255,255,255,255,255,240,115,77,72,95,140,132,114,120,102,119,95,70,66,85,62,27,35,41,50,47,
+27,6,0,0,0,0,0,16,20,20,21,30,37,43,52,54,51,56,65,71,78,88,98,148,224,248,250,252,248,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,254,254,247,239,236,231,222,214,200,171,171,167,153,123,118,99,51,37,31,26,23,27,38,70,170,204,200,201,176,144,167,222,241,241,245,239,219,179,134,105,97,93,77,63,55,50,
+40,35,35,36,42,38,35,34,34,35,33,28,21,20,22,26,34,52,90,115,94,72,75,100,136,167,183,193,200,206,199,211,200,143,109,94,77,58,47,35,37,43,51,55,58,62,61,59,
+56,55,56,56,57,55,50,48,48,51,54,56,56,56,57,61,59,63,69,84,84,75,70,65,64,66,64,62,58,57,52,47,45,40,36,35,35,35,35,31,31,31,31,29,29,34,40,45,
+58,72,80,86,93,118,143,154,176,149,105,87,85,84,88,94,113,122,129,190,236,189,194,206,183,132,84,93,98,93,104,102,179,254,255,255,255,255,255,255,255,255,255,212,108,78,69,78,
+119,116,98,107,134,140,109,71,79,87,71,35,34,38,38,26,6,0,0,0,0,0,6,13,10,12,15,26,38,51,63,59,52,61,70,82,92,92,100,137,225,254,245,248,254,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,235,220,226,197,189,204,201,193,193,186,158,115,80,55,34,24,19,14,14,15,26,42,87,172,199,163,85,76,
+121,201,236,238,239,234,217,168,104,101,100,93,82,72,64,54,43,38,31,33,34,35,29,29,34,34,28,23,19,17,21,24,34,54,88,109,88,68,68,75,94,119,167,198,205,204,204,215,
+203,144,102,97,76,57,43,36,37,42,50,54,55,59,58,57,54,54,52,50,52,48,44,43,45,47,47,43,44,45,50,58,54,58,62,69,73,69,65,62,61,58,59,58,54,54,52,50,
+49,40,35,34,35,34,31,30,27,24,27,27,26,27,31,44,52,58,66,76,86,137,183,175,169,127,121,116,94,79,86,90,121,156,144,193,219,173,197,194,178,155,132,127,143,130,148,133,
+161,227,252,255,255,255,255,255,255,255,255,187,108,97,92,91,97,98,87,77,116,121,80,57,68,75,64,40,31,34,28,10,0,0,0,0,0,0,0,1,3,12,22,33,50,72,70,63,
+62,77,99,100,87,104,135,182,239,247,227,194,240,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,228,211,196,154,133,134,154,183,187,153,118,91,
+56,34,23,20,17,13,12,13,20,33,47,98,149,119,57,52,70,121,196,229,231,227,228,197,127,111,112,106,93,83,66,52,43,40,34,30,33,31,24,24,27,27,22,19,19,19,20,27,
+40,43,52,70,71,63,64,65,79,112,155,199,194,197,200,203,187,150,125,105,77,56,48,44,43,43,47,49,52,55,55,56,55,52,51,50,47,43,38,38,42,42,40,40,42,42,48,54,
+52,55,57,61,68,65,58,55,54,54,57,54,50,50,49,55,55,41,31,30,29,26,26,22,22,21,22,21,23,26,28,40,49,52,62,76,101,175,208,189,184,182,163,154,125,95,84,83,
+120,151,132,163,192,165,192,208,208,197,220,186,182,160,164,169,208,228,247,255,255,255,255,255,255,255,255,219,153,123,115,111,87,76,69,65,71,58,34,40,42,42,44,36,30,35,23,12,
+0,0,0,0,1,0,0,1,14,27,34,54,90,114,108,78,87,113,135,114,104,128,157,199,233,236,190,156,215,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+252,255,255,255,243,199,171,157,125,78,91,121,148,132,98,78,49,27,23,26,17,13,12,14,20,28,35,43,55,50,48,48,51,70,133,185,163,143,191,184,127,118,116,106,93,87,66,56,
+48,38,37,36,34,30,26,26,26,24,21,15,14,17,19,24,35,38,43,52,58,62,70,82,106,142,185,182,144,187,189,189,170,164,146,108,92,77,68,59,48,43,45,48,54,57,56,54,
+51,49,48,45,43,42,35,34,37,38,40,40,38,38,44,49,49,50,49,54,58,57,50,44,44,48,48,47,51,49,48,68,75,41,27,26,22,19,21,20,21,19,17,19,17,20,24,31,
+40,47,61,94,141,172,163,139,177,236,222,186,149,127,94,72,97,107,114,142,155,156,175,201,214,227,239,226,217,192,203,233,252,255,255,255,255,255,255,255,255,255,255,255,226,140,99,93,
+73,59,52,61,48,23,19,23,17,15,21,24,24,26,24,19,0,0,1,14,13,10,15,20,34,34,34,68,125,137,128,107,121,136,168,146,148,177,215,211,198,199,160,179,218,254,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,254,254,255,254,253,246,212,167,147,109,80,86,91,116,114,80,72,49,33,22,23,22,17,16,20,31,35,31,31,29,34,40,42,
+48,65,106,100,82,82,112,130,102,88,78,77,79,79,70,61,50,44,41,42,38,30,28,28,27,26,21,15,15,16,17,21,28,33,37,45,56,68,73,86,102,111,128,114,94,136,153,161,
+175,184,173,150,143,114,80,65,54,49,49,48,52,56,57,56,50,47,47,43,40,37,33,35,35,34,35,35,35,34,38,44,42,44,42,42,44,41,38,35,30,30,36,42,41,44,56,78,
+82,43,30,24,19,16,19,17,16,14,12,12,9,10,16,21,27,34,45,82,128,153,141,120,133,207,211,167,116,107,79,57,79,94,80,122,176,175,187,210,226,235,228,232,245,240,233,255,
+255,255,255,255,255,255,255,255,255,255,255,254,242,144,71,54,50,47,35,41,47,27,20,15,14,12,14,19,20,24,30,23,6,0,31,51,49,51,57,63,48,24,24,72,135,142,148,128,
+135,158,198,205,190,222,245,235,234,191,182,175,226,252,255,255,255,255,255,254,255,255,255,255,255,255,255,255,254,249,252,255,255,252,249,246,236,213,169,154,125,111,111,104,123,111,78,58,
+42,30,22,20,23,21,24,30,38,35,28,28,24,27,29,31,36,61,115,105,80,71,87,98,93,82,66,71,76,73,66,58,48,42,37,40,37,34,31,30,29,28,22,19,16,14,16,19,
+23,29,31,40,49,56,70,65,63,69,70,64,66,75,105,135,165,184,178,165,151,113,78,64,56,52,51,50,55,57,57,51,45,42,42,38,34,31,34,35,34,33,34,34,34,31,33,36,
+34,35,35,33,34,41,34,26,22,21,22,21,24,44,68,82,80,43,35,30,22,20,21,14,9,8,6,3,1,2,8,14,17,21,26,44,79,98,122,141,100,149,170,167,129,70,56,45,
+94,121,73,123,206,197,197,215,229,239,231,236,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,245,134,57,36,28,20,19,24,43,33,23,30,28,12,15,21,20,21,27,57,
+47,17,44,63,70,69,80,83,45,19,20,71,129,156,175,178,191,180,170,175,184,201,210,215,217,199,194,176,235,249,254,255,255,255,246,250,255,255,255,255,255,255,253,252,250,245,249,238,
+234,239,236,239,219,200,165,127,118,149,155,153,158,133,116,79,49,28,21,22,19,21,24,33,34,27,23,21,19,20,22,22,31,49,99,98,77,66,78,84,86,80,71,71,68,64,58,51,
+44,40,37,36,36,34,33,34,31,27,22,19,14,13,16,19,20,23,24,26,27,34,51,51,45,47,57,61,62,69,83,92,119,141,139,111,88,80,72,63,56,55,54,56,52,54,54,44,
+40,36,35,31,30,30,31,31,33,30,31,33,29,28,30,31,30,30,31,34,36,62,36,14,13,10,10,10,17,35,58,65,61,44,36,35,33,29,17,10,8,7,5,2,0,0,5,8,
+14,16,19,21,36,51,86,128,100,85,88,134,155,76,51,59,99,148,143,177,221,192,177,213,248,253,243,248,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,253,238,154,79,
+31,14,9,19,23,30,47,43,24,9,14,17,21,20,40,88,111,98,104,127,94,95,127,125,62,24,19,70,137,173,168,186,170,141,139,130,139,132,154,210,227,183,179,189,241,255,255,250,
+247,242,219,225,255,255,255,255,255,255,249,234,220,227,212,193,179,208,222,220,217,204,176,133,130,165,175,164,164,129,95,66,43,31,24,22,17,21,27,29,21,14,15,15,16,16,19,22,
+28,43,72,71,56,57,59,66,76,66,58,55,57,54,50,45,42,38,36,33,34,35,36,35,33,27,22,17,15,15,16,17,17,21,21,16,15,20,26,24,22,29,40,48,56,69,80,108,
+136,144,118,92,76,70,63,58,55,54,54,55,48,43,36,30,26,26,22,21,23,24,27,30,34,34,34,34,33,28,28,31,29,27,28,27,22,22,17,7,3,1,6,7,10,20,33,40,
+42,31,22,28,31,31,19,12,12,8,6,3,0,0,2,7,12,14,15,14,20,33,43,66,78,62,54,72,122,78,45,72,92,129,190,245,234,183,184,199,248,255,242,227,248,255,254,255,
+255,255,255,255,255,255,255,255,255,255,255,254,254,255,246,208,111,38,35,28,16,29,55,35,17,14,15,20,28,36,62,93,128,165,190,204,141,112,139,129,65,27,27,84,129,157,170,170,
+133,90,83,88,101,105,162,218,211,167,172,185,207,229,236,234,231,210,176,176,233,253,255,255,255,255,254,222,183,185,164,158,167,196,232,219,214,194,169,171,187,176,185,172,136,109,77,44,
+27,24,21,19,15,16,24,16,9,7,12,20,20,17,17,21,27,40,44,47,44,43,44,50,56,55,47,47,49,47,42,40,37,35,34,33,33,34,33,30,29,30,27,23,19,16,15,15,
+19,24,21,12,9,6,2,0,5,10,22,31,44,69,111,137,140,144,104,77,70,59,54,51,50,48,47,43,37,33,28,21,19,16,12,9,9,15,22,28,34,36,36,34,33,30,30,30,
+29,27,23,20,15,12,10,8,3,3,3,8,14,21,36,50,47,34,21,19,19,19,17,17,20,15,10,5,1,0,6,12,10,14,15,14,17,20,22,33,57,62,52,49,106,115,64,64,
+79,105,175,252,253,240,233,221,227,255,255,232,239,253,252,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,247,239,162,126,139,28,5,15,23,22,20,19,17,24,31,43,68,104,
+132,150,170,191,155,98,114,109,48,23,41,93,126,158,160,162,120,88,71,66,72,92,137,163,156,165,162,165,180,196,210,212,197,157,151,158,158,194,254,255,255,254,252,226,199,187,193,197,
+189,200,228,225,220,185,164,186,203,203,198,163,123,113,69,43,24,17,19,20,17,19,22,13,6,15,22,28,24,17,16,20,27,34,34,36,45,55,58,57,54,44,41,36,38,38,37,31,
+29,28,29,31,33,29,30,35,42,40,36,33,20,14,10,13,17,28,27,13,6,0,0,0,0,0,9,28,50,80,76,58,50,55,45,42,41,37,37,38,38,36,37,36,34,30,24,21,
+15,12,5,0,1,10,20,27,31,35,36,35,34,30,31,33,33,28,22,17,12,12,14,14,13,13,15,24,28,37,54,57,51,43,19,9,14,17,22,29,33,28,21,9,6,8,13,13,
+14,15,15,14,14,13,16,22,45,70,61,51,78,97,73,71,86,104,169,235,252,255,254,233,197,221,245,255,247,243,250,247,231,249,255,255,255,255,255,255,255,255,255,255,255,255,255,235,
+176,150,137,54,3,6,15,12,14,19,48,63,57,68,85,127,144,130,143,175,130,86,108,91,37,31,54,92,125,148,173,165,105,91,72,59,61,75,100,112,116,154,162,154,164,172,187,194,
+168,120,129,134,121,211,255,255,255,255,248,241,240,241,238,224,213,218,226,229,219,165,162,178,197,208,193,158,139,115,79,59,30,22,26,29,26,27,26,15,20,28,26,28,28,24,22,28,
+42,35,29,36,59,79,79,78,62,38,31,23,23,26,28,27,24,23,27,29,30,33,35,50,56,40,42,41,22,8,5,8,23,51,44,8,1,0,0,0,0,6,26,50,84,100,41,24,
+24,22,21,21,19,21,22,23,26,28,30,31,33,31,27,21,16,8,2,0,0,7,14,24,33,35,37,38,38,34,34,35,33,29,23,17,14,12,10,10,13,14,19,24,30,42,49,61,
+73,52,24,13,19,20,27,40,56,49,33,19,13,15,16,20,19,16,15,14,12,8,12,19,29,49,58,71,78,90,86,99,140,144,169,193,199,228,255,217,186,198,196,232,240,232,214,200,
+191,239,255,255,255,255,255,255,255,255,255,255,255,255,255,253,167,87,72,63,26,16,20,17,31,59,99,113,102,78,83,132,156,136,121,128,100,84,101,61,24,34,57,90,120,149,160,119,
+88,91,91,76,54,47,85,104,135,197,168,142,127,125,164,177,146,120,143,126,130,229,255,252,253,248,250,248,242,241,253,235,215,214,215,228,197,176,184,187,186,171,146,134,130,115,100,70,
+42,36,51,56,47,48,44,36,30,27,22,29,35,33,33,43,64,45,33,40,62,71,79,78,61,43,29,22,19,19,19,26,31,28,34,38,37,41,42,52,45,33,38,43,33,13,6,12,
+57,95,51,10,1,1,0,0,0,12,24,45,68,76,50,28,22,19,16,14,10,13,15,17,19,22,24,28,31,31,29,21,14,6,0,0,0,6,12,21,31,36,37,40,40,38,37,34,
+34,29,26,22,17,13,9,6,6,7,10,17,34,50,55,87,97,52,40,23,24,26,28,43,71,77,55,33,26,23,22,24,24,21,17,10,7,5,7,13,23,37,45,58,75,99,107,120,
+179,199,193,178,156,196,254,233,221,229,198,207,221,226,178,151,177,222,246,247,254,255,255,255,255,255,255,255,254,254,254,236,162,79,41,21,28,27,15,30,66,94,115,116,104,73,91,136,
+150,127,118,115,92,83,99,55,28,37,59,91,123,146,121,98,123,135,127,94,63,50,86,115,149,197,146,113,101,84,105,113,86,93,121,127,134,184,221,242,228,240,255,241,225,224,246,250,
+232,219,221,236,193,187,186,176,186,183,139,132,144,130,120,104,68,52,84,86,83,82,72,54,34,23,24,27,26,28,29,35,41,37,40,45,56,71,68,64,56,48,35,29,22,20,23,29,
+35,33,35,43,43,41,38,38,35,34,38,37,31,24,16,56,109,78,31,16,9,14,13,7,9,8,8,16,36,54,50,29,24,19,14,12,9,10,13,14,14,15,17,23,28,29,28,21,
+12,6,1,0,0,5,13,22,31,37,40,41,42,40,38,35,33,27,24,23,19,10,6,2,1,2,6,14,23,29,50,69,59,36,49,38,33,33,34,42,63,72,57,40,33,30,30,33,
+33,29,20,9,5,2,2,10,22,34,36,45,59,83,129,163,201,217,213,183,158,198,255,255,254,249,239,218,227,231,162,156,186,193,220,239,254,255,255,255,255,255,255,255,254,250,249,236,
+144,70,42,15,19,22,20,35,62,86,106,107,95,104,132,143,132,99,98,118,87,72,70,63,48,49,69,86,83,72,63,84,118,120,123,99,70,82,114,111,153,139,91,91,88,61,59,63,
+72,75,128,197,179,177,205,233,238,255,243,201,197,225,248,254,254,254,254,247,211,206,196,186,196,190,144,137,137,121,141,178,132,90,97,102,92,87,100,80,44,28,23,24,22,24,27,31,
+29,30,40,69,100,99,108,98,52,36,36,31,27,23,27,31,31,27,30,44,45,33,28,31,40,51,48,38,42,52,58,102,118,82,55,44,36,44,31,12,5,0,1,3,14,30,34,26,
+15,8,9,13,10,10,9,7,6,6,10,21,27,33,29,24,16,8,7,6,5,9,17,23,31,38,43,41,43,41,40,37,34,28,23,21,19,14,5,0,2,6,6,5,0,2,21,23,
+13,21,51,54,49,44,43,50,57,54,49,41,36,34,36,40,40,35,24,14,6,2,1,10,24,33,36,42,45,65,119,189,226,206,221,217,180,190,248,254,255,255,255,248,249,226,173,137,
+165,205,221,232,253,255,254,255,255,255,254,253,255,253,249,255,160,42,30,15,19,29,15,26,44,66,102,111,123,121,128,147,146,128,125,111,97,86,69,107,102,79,82,85,76,75,58,57,
+72,78,86,98,86,88,90,87,118,78,58,92,86,59,62,68,91,108,147,180,184,191,199,247,255,255,214,192,218,229,245,252,252,255,255,249,229,217,203,178,191,185,157,164,163,175,186,196,
+197,189,193,187,122,133,151,127,65,34,24,22,17,20,33,30,22,24,49,88,133,129,143,136,78,35,35,41,36,19,22,28,30,34,36,50,52,29,27,48,64,63,47,44,62,86,123,140,
+106,76,62,61,58,61,47,35,21,7,16,9,5,16,19,12,17,28,28,21,13,10,6,0,0,0,3,14,24,33,34,29,21,13,12,10,10,15,17,27,31,38,41,42,42,41,41,37,
+35,31,24,20,17,15,8,3,2,6,1,0,0,0,2,0,5,28,55,66,75,59,49,56,57,40,34,35,36,37,40,43,49,41,30,19,10,5,2,9,24,35,36,49,65,88,120,184,
+224,219,222,218,212,190,234,252,255,255,255,252,221,196,175,123,129,190,238,231,234,252,254,255,255,255,254,240,239,243,241,220,205,100,33,22,22,16,13,37,59,79,100,115,135,113,132,147,
+139,112,114,92,93,114,135,175,164,147,143,119,83,56,42,40,44,54,63,73,63,58,62,64,63,51,61,95,85,73,70,80,93,102,151,190,160,165,176,229,235,203,157,165,203,243,241,250,
+248,249,232,225,213,194,167,151,198,199,184,177,199,211,194,186,200,212,218,205,150,113,137,115,48,27,24,23,23,22,23,30,37,45,65,97,115,116,137,127,78,43,45,62,51,34,31,42,
+68,78,70,82,56,34,71,101,101,72,52,45,66,144,165,156,125,80,64,58,55,56,100,126,87,66,56,26,16,52,45,50,79,75,55,47,26,12,0,0,0,0,0,7,20,29,34,31,
+21,16,14,17,17,17,20,27,35,37,40,42,42,41,40,37,33,30,22,17,14,12,9,6,5,3,0,0,0,0,0,0,0,33,62,84,98,90,76,68,51,30,22,28,33,36,40,45,
+52,47,34,22,16,13,12,14,23,31,40,62,111,158,170,180,194,200,219,203,190,178,214,243,255,255,254,228,187,173,163,141,90,143,232,226,218,253,255,255,255,255,235,183,149,208,235,178,
+193,144,69,77,44,24,50,72,80,95,113,122,134,137,158,160,146,120,119,123,147,161,175,178,167,165,160,132,85,55,41,35,34,40,55,65,56,55,50,44,42,51,64,69,88,123,121,115,
+142,123,146,167,133,137,154,169,162,196,210,198,220,253,248,239,228,213,205,180,153,147,137,149,189,211,182,156,201,218,204,190,186,178,190,193,141,107,128,98,43,24,21,21,38,31,21,33,
+62,80,85,91,116,140,129,85,59,43,36,54,41,56,108,136,143,116,84,90,91,116,156,147,129,83,77,73,91,154,162,172,178,149,90,69,62,43,90,137,112,116,104,54,64,114,122,125,
+97,68,54,42,23,3,0,0,0,0,0,5,17,26,30,29,22,20,20,20,21,20,23,30,35,38,41,42,41,38,38,37,31,26,20,15,15,14,16,13,12,5,0,0,0,0,0,0,
+0,17,56,102,118,113,101,73,47,30,20,23,28,34,41,48,55,52,42,35,29,23,23,20,26,34,43,63,129,172,206,197,164,136,168,178,161,144,157,212,250,254,253,196,193,198,180,162,
+100,106,197,239,247,255,255,255,255,252,217,200,157,199,228,164,187,169,112,133,102,101,116,85,49,88,140,126,128,144,149,150,140,157,153,171,192,192,189,162,149,164,164,128,88,68,50,37,
+35,41,57,65,57,50,49,45,51,61,65,85,129,149,200,177,175,132,137,139,113,132,156,144,168,226,255,255,255,253,241,224,206,164,170,151,113,129,149,162,168,162,132,129,190,212,217,219,
+199,168,163,171,119,107,121,84,45,31,24,30,49,33,23,41,65,94,83,98,120,130,114,91,69,33,37,61,44,78,175,214,168,120,94,86,108,148,160,156,143,93,87,108,125,146,147,165,
+198,172,135,108,61,57,108,154,150,136,136,90,82,98,80,68,56,37,24,9,0,0,0,0,0,0,0,0,12,22,28,28,26,24,24,21,21,22,27,36,38,38,42,43,42,41,40,35,
+37,33,26,19,17,17,21,17,13,8,0,0,0,0,0,0,0,23,73,101,112,105,70,57,44,31,26,26,31,37,47,52,57,63,68,61,52,43,34,29,30,41,61,69,115,170,210,192,
+149,130,155,175,142,125,128,161,207,252,249,186,189,215,218,198,98,76,150,228,255,255,255,253,252,247,235,226,179,205,219,176,203,204,141,141,155,158,144,73,51,69,133,142,135,130,132,127,
+157,187,193,203,187,191,189,140,122,162,171,130,101,85,63,41,36,37,38,44,43,41,51,59,77,82,87,109,165,179,225,191,161,142,125,121,113,130,168,177,167,233,255,224,192,178,154,148,
+151,157,157,116,115,151,157,178,167,127,142,141,171,220,228,226,198,163,150,135,115,114,119,76,55,47,44,63,66,45,52,90,120,112,95,126,136,139,128,95,58,38,50,62,65,77,129,190,
+171,146,125,90,125,167,186,207,182,114,133,141,154,156,151,164,171,172,189,143,111,121,165,178,164,143,126,91,43,19,27,34,34,19,9,0,0,0,0,0,0,0,0,0,8,20,28,30,
+29,26,27,22,21,26,33,44,43,37,40,44,43,43,43,40,43,37,30,26,20,20,22,15,9,6,0,0,0,0,6,3,9,30,64,88,94,85,57,47,40,28,24,26,35,43,45,55,
+69,90,106,93,80,59,37,30,31,48,75,91,116,129,170,214,177,169,176,142,107,111,107,120,192,242,235,208,187,212,204,154,71,59,127,220,252,255,253,247,246,245,239,226,215,220,208,199,
+200,171,141,129,158,169,133,107,100,112,130,133,136,129,128,143,170,203,206,197,198,196,201,190,182,190,167,139,113,95,68,42,30,26,26,33,38,45,54,61,69,76,91,123,212,245,241,218,
+212,228,205,176,130,150,184,208,226,249,249,183,146,146,143,154,153,125,88,58,76,100,158,207,186,147,147,165,201,233,232,206,143,108,134,137,111,113,123,107,66,59,70,97,77,72,104,156,
+170,135,122,163,190,172,146,92,78,72,63,45,44,100,168,182,196,194,171,170,207,207,197,198,204,163,168,137,142,139,133,140,148,172,201,192,187,200,191,179,167,137,99,61,22,6,7,9,
+12,7,0,0,0,0,0,0,0,0,0,2,13,22,30,31,29,29,28,26,29,36,44,51,43,36,40,42,43,43,44,45,45,41,40,42,40,29,26,26,16,9,3,3,7,10,13,17,
+27,36,61,93,97,78,50,41,34,23,24,27,35,41,50,71,100,119,132,129,107,71,41,30,37,56,72,106,143,125,99,204,200,199,163,94,105,102,85,114,189,217,182,148,143,185,184,161,
+126,84,126,186,210,211,228,235,233,236,233,242,233,205,200,190,186,163,143,147,162,168,150,135,142,150,142,123,122,132,141,157,170,193,196,199,240,242,248,249,238,205,163,137,109,85,58,38,
+27,21,26,34,41,48,58,68,72,73,85,139,231,255,255,217,158,175,177,142,123,99,94,163,245,248,218,156,141,147,170,171,184,137,82,55,65,63,125,190,186,140,132,175,211,229,221,191,
+136,116,149,164,134,111,106,114,87,63,77,107,91,106,111,155,187,177,164,201,179,135,111,109,118,91,58,37,56,180,240,233,248,245,235,255,238,194,183,176,194,175,194,189,137,87,88,147,
+141,171,200,200,211,208,193,128,135,126,57,17,0,1,8,6,1,0,0,0,0,0,0,0,0,0,0,2,15,27,33,33,31,31,31,30,35,48,58,56,43,37,40,41,43,44,45,44,
+44,42,48,50,56,45,35,49,34,14,16,24,26,16,15,29,43,64,95,122,101,70,47,35,31,23,27,30,37,44,57,86,135,156,151,148,129,86,50,35,49,79,101,128,158,162,150,194,
+206,192,121,84,101,100,93,126,176,201,189,169,151,142,147,156,161,126,114,160,172,182,220,229,219,232,233,235,228,194,215,217,198,199,177,173,169,163,130,118,149,167,160,146,147,157,157,162,
+178,193,187,219,255,255,255,255,254,221,168,134,102,73,51,40,31,28,31,40,47,57,69,83,84,79,82,123,205,252,229,175,121,102,112,102,91,68,62,135,183,158,130,104,132,182,194,186,
+177,121,51,44,63,78,136,173,194,196,193,185,197,206,197,191,177,179,197,182,150,139,151,172,153,128,137,118,85,77,84,133,204,217,212,193,137,107,105,116,101,77,55,41,114,238,246,254,
+255,255,250,249,246,236,233,217,197,186,196,172,130,128,169,169,143,186,190,180,190,194,162,72,87,93,33,8,2,3,9,2,0,0,0,0,0,0,0,0,0,0,0,5,16,28,35,36,
+37,35,37,40,40,47,51,47,40,37,41,41,45,45,47,47,42,41,42,44,55,59,42,50,57,36,43,62,62,42,28,47,68,85,112,120,86,57,42,33,28,29,31,35,41,48,59,88,
+144,185,194,190,157,104,63,47,59,91,121,143,182,207,182,191,226,218,149,127,106,94,109,111,147,189,182,169,170,148,132,137,137,120,129,163,179,187,227,232,225,227,229,236,227,204,206,220,
+198,198,194,154,140,146,121,134,167,168,161,161,154,156,158,161,168,172,170,226,255,255,255,255,255,233,179,139,109,79,59,55,45,40,38,45,57,71,80,88,88,88,100,149,193,219,175,167,
+121,101,134,126,85,88,119,144,123,88,73,83,134,186,176,171,125,57,30,41,65,90,167,183,206,215,191,170,191,204,201,184,165,161,172,158,161,169,191,194,186,192,201,184,118,109,137,127,
+210,233,205,197,169,139,113,98,80,94,128,115,213,255,253,255,255,255,252,250,248,214,193,189,205,196,170,163,179,176,178,113,123,173,189,148,155,169,139,94,66,35,13,6,6,5,3,0,
+0,0,0,0,0,0,0,0,0,0,0,6,19,30,38,42,42,41,41,43,41,45,49,47,43,42,42,42,43,45,47,45,41,37,37,38,50,70,66,61,71,68,76,114,111,129,101,76,
+86,90,98,97,77,56,43,35,33,35,38,41,47,54,76,105,150,199,231,229,196,128,77,61,79,105,133,164,179,218,206,212,233,235,187,132,136,123,139,132,132,161,170,158,172,167,175,150,
+104,99,149,163,164,157,199,225,225,235,219,215,218,222,197,200,206,198,178,164,136,146,167,163,171,165,161,162,134,127,153,120,85,118,144,208,255,255,255,255,255,240,196,149,118,91,77,71,
+62,54,48,51,59,73,85,108,162,211,225,250,250,213,157,126,102,93,101,101,84,77,95,98,92,73,66,97,122,146,160,143,82,38,21,36,52,98,177,193,191,198,196,193,210,225,212,175,
+156,162,167,185,191,193,196,189,185,197,204,205,199,221,226,222,250,250,240,239,219,185,130,92,104,193,240,238,253,254,255,255,255,254,253,254,252,162,137,168,199,228,221,217,205,176,125,76,
+123,142,149,91,84,141,143,106,50,23,12,3,2,2,8,9,0,0,0,0,0,0,0,0,0,1,5,9,20,34,45,50,49,49,50,52,54,55,56,52,48,45,43,44,45,48,47,45,
+41,36,36,36,43,69,94,94,82,86,104,137,148,153,107,97,93,91,100,82,63,51,44,42,45,44,47,44,49,63,95,127,182,239,248,219,173,134,98,90,123,177,173,163,173,225,226,225,
+242,245,224,147,108,114,154,183,189,179,182,170,170,189,199,178,111,100,125,118,125,135,197,213,198,221,211,176,213,229,200,187,212,179,168,194,199,193,192,179,170,161,155,135,88,92,86,47,
+43,79,116,172,249,252,255,255,254,252,225,184,137,106,104,115,95,66,58,62,77,88,95,125,180,250,247,242,242,225,182,111,91,77,72,69,66,62,52,64,77,68,66,79,85,115,135,102,
+49,35,21,27,55,128,175,185,183,196,224,207,207,213,197,165,178,184,185,210,206,210,197,158,163,205,231,238,249,249,253,255,255,255,253,246,242,248,225,179,190,253,255,255,254,254,255,255,
+255,255,255,254,248,193,184,226,219,239,234,234,219,147,115,136,163,107,116,109,84,111,104,61,41,28,13,8,6,8,13,17,6,0,0,0,0,0,0,0,1,9,12,14,23,34,43,50,
+50,52,58,64,64,62,61,54,49,45,43,44,44,48,48,48,41,37,33,30,43,76,91,90,85,95,123,165,192,161,78,75,77,93,111,82,69,51,47,50,56,56,55,55,66,80,98,148,
+185,222,243,229,184,144,125,123,163,212,206,172,186,232,241,232,240,245,228,142,75,66,146,204,189,173,180,173,157,201,197,171,160,137,104,78,77,140,213,208,203,221,219,184,211,232,222,197,
+201,180,173,187,199,217,206,193,172,120,119,94,59,41,12,13,27,55,118,164,185,190,219,254,253,248,228,208,179,149,140,178,143,79,71,94,150,175,122,109,130,141,172,193,184,175,151,99,
+86,77,72,75,93,86,64,62,58,75,77,79,94,116,106,80,45,29,23,29,66,136,187,207,222,239,220,197,203,184,150,167,207,222,215,213,200,205,199,165,183,241,252,249,254,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,243,215,229,239,232,232,227,217,197,197,211,191,135,139,111,102,102,77,42,36,23,14,10,10,14,15,19,
+9,0,0,0,0,0,0,0,2,14,23,21,24,33,41,43,47,55,59,61,64,64,58,55,51,48,48,48,48,50,50,47,42,36,30,30,40,57,76,79,72,90,120,172,204,168,90,69,
+70,97,102,73,62,56,54,58,63,69,80,88,109,128,134,179,208,211,241,239,211,182,151,191,205,192,219,197,205,212,242,241,219,218,235,164,77,66,111,170,170,143,141,133,129,183,191,179,
+172,151,107,85,92,162,212,211,206,220,229,211,214,217,226,227,200,198,201,198,196,220,228,218,183,116,86,61,41,16,21,26,30,57,120,154,129,160,208,242,254,234,200,184,179,190,200,222,
+167,107,108,167,176,169,127,120,133,134,160,186,141,129,121,93,77,76,72,91,127,113,83,91,93,127,105,93,99,79,55,44,33,24,30,49,95,150,213,222,228,231,201,200,211,161,177,191,
+173,218,215,214,227,224,228,232,247,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,247,245,234,231,220,227,220,213,214,
+207,170,142,113,108,104,88,59,47,31,17,10,10,9,8,12,7,0,0,0,0,0,0,0,2,17,28,28,28,31,36,40,45,52,57,61,63,61,56,55,54,50,51,50,50,49,50,47,
+37,34,27,30,35,37,49,62,57,59,88,134,176,170,119,88,95,101,86,69,61,65,66,64,69,76,93,119,147,164,167,189,220,213,228,228,222,207,210,255,243,201,200,218,229,219,235,235,
+226,232,240,199,106,88,111,143,169,156,134,125,113,140,148,163,160,156,113,97,126,187,206,199,189,189,187,204,224,228,235,228,196,194,229,212,189,217,233,232,210,160,98,42,20,19,30,33,
+49,70,99,118,148,196,203,229,242,229,200,176,156,168,190,231,238,217,231,235,165,160,142,162,176,196,182,150,129,146,127,95,80,80,88,125,151,125,141,164,134,119,90,87,79,58,35,28,
+26,29,38,76,118,155,184,185,176,185,199,225,233,184,187,163,162,207,219,235,253,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,253,248,232,215,214,221,213,220,222,211,194,169,128,115,125,134,86,47,29,21,22,10,9,10,6,0,0,0,0,0,0,0,0,0,15,30,30,31,34,36,41,
+49,55,55,57,54,50,49,50,51,51,54,51,51,47,45,44,31,28,27,29,35,40,37,42,36,36,62,104,148,128,97,100,129,112,72,75,76,75,76,76,75,78,101,135,153,190,189,191,
+236,226,221,204,205,207,233,255,255,238,215,255,255,254,250,247,238,234,241,214,151,133,180,206,211,173,140,140,113,121,109,135,168,160,126,128,161,197,208,196,155,137,156,168,224,241,243,236,
+220,212,222,196,196,219,227,224,218,171,61,19,15,22,42,45,48,72,101,109,150,177,185,217,226,203,199,186,168,126,128,228,255,255,255,252,242,227,219,213,196,193,160,113,126,162,129,93,
+84,87,113,154,190,173,175,146,88,64,64,82,65,48,36,31,30,30,44,69,101,137,142,162,155,169,190,177,196,191,154,148,180,217,217,247,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,249,232,217,218,221,228,228,232,214,204,197,173,155,148,147,97,34,10,19,28,9,16,19,7,
+2,1,0,0,0,0,0,0,0,14,36,40,37,38,42,43,47,51,54,55,52,49,45,49,50,52,52,51,49,45,44,37,29,27,29,29,33,35,40,41,30,31,49,87,132,94,75,87,
+102,108,78,73,82,76,76,79,79,86,114,153,164,200,197,206,214,218,205,189,199,213,227,247,255,255,255,255,255,255,255,254,255,243,227,217,206,201,218,238,235,213,156,149,128,141,150,136,
+151,146,118,118,136,167,197,178,128,127,155,168,210,241,240,243,235,224,217,187,206,221,226,217,199,136,29,14,22,50,59,51,42,71,105,149,171,177,199,163,155,154,183,198,179,132,144,232,
+250,255,255,248,245,241,198,201,192,146,105,97,107,107,100,88,91,108,121,163,225,215,178,105,71,66,75,70,54,41,36,36,31,27,37,54,73,112,126,128,154,176,165,125,119,187,158,149,
+168,200,200,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,227,185,207,214,218,226,227,
+224,217,212,197,170,141,115,79,36,6,17,36,24,26,24,9,3,0,0,0,0,0,0,0,0,15,44,49,43,38,41,42,43,43,48,56,55,51,48,47,49,50,49,50,47,45,38,31,
+28,27,27,28,31,38,42,43,37,40,52,90,106,87,77,76,84,98,99,82,76,73,78,82,88,94,119,150,170,192,191,199,179,189,167,178,201,218,233,229,253,255,255,255,255,255,255,254,
+255,253,224,212,215,233,239,236,229,225,196,186,161,179,153,122,137,129,84,78,100,127,167,161,127,127,137,150,178,233,240,245,242,219,199,183,219,231,232,221,194,118,23,23,35,50,55,48,
+47,82,107,162,213,175,172,135,113,136,161,178,153,128,158,182,172,218,242,254,249,254,211,178,162,125,105,99,108,114,105,105,119,149,129,182,238,211,160,102,79,77,82,62,47,38,36,36,
+31,26,31,48,62,85,99,101,144,154,122,99,108,158,165,133,134,169,180,232,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,253,253,255,255,255,205,146,198,203,197,192,193,214,218,206,167,146,125,87,55,35,19,19,30,51,38,26,19,7,0,0,0,0,0,0,0,0,10,40,47,41,38,38,42,
+42,41,43,51,54,52,52,49,50,50,52,49,44,41,36,30,26,21,26,28,31,34,42,48,49,50,72,95,71,71,83,68,83,85,97,113,91,75,77,84,92,99,114,134,140,157,176,185,
+173,200,163,171,203,226,240,249,255,255,255,255,255,255,255,255,255,248,235,212,210,242,238,232,234,227,219,220,206,218,161,107,113,93,62,72,82,99,134,134,121,132,140,162,206,236,234,246,
+247,224,198,211,233,243,245,229,200,125,34,56,71,59,48,52,77,111,150,189,191,151,140,123,115,111,126,132,122,106,112,119,136,165,226,255,255,255,240,184,162,144,133,109,100,101,125,149,
+157,172,169,186,182,143,115,115,94,73,62,43,35,30,29,28,24,19,22,31,43,56,66,80,102,98,85,86,104,128,134,104,109,137,177,214,243,238,249,255,255,255,255,255,255,255,255,255,
+255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,254,243,218,240,255,252,205,158,187,203,203,173,156,175,187,194,160,157,134,92,30,16,7,7,23,40,35,21,7,
+0,0,0,0,0,0,0,0,0,5,30,42,44,41,38,41,41,41,43,48,52,56,54,51,50,51,52,49,45,43,36,31,23,20,23,24,31,41,37,49,66,72,104,86,48,43,54,49,
+55,64,83,115,105,78,78,82,88,95,102,125,132,144,170,175,192,222,189,189,210,239,252,255,255,255,255,255,255,255,255,255,255,255,250,235,232,241,240,229,241,232,198,208,219,218,167,116,
+105,126,105,73,63,69,99,125,113,102,112,179,234,231,225,242,248,231,224,235,246,252,252,239,207,116,47,109,127,63,35,49,85,120,163,184,164,143,120,116,165,137,105,108,115,107,80,101,
+127,154,240,255,255,255,233,173,185,182,157,129,123,115,151,179,162,149,175,190,144,130,151,140,84,51,37,31,24,20,21,17,17,16,17,26,31,38,49,66,85,100,101,101,121,122,109,93,
+102,147,204,218,213,217,238,255,255,255,255,255,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,248,243,233,224,234,227,212,191,165,180,201,196,169,153,
+168,169,179,165,161,149,105,55,9,3,10,26,33,24,12,0,0,0,0,0,0,0,0,0,0,2,22,36,42,40,41,38,35,48,50,52,57,57,57,55,51,52,50,47,45,42,35,29,
+26,22,22,23,43,54,44,69,85,95,121,80,40,44,45,34,35,55,72,86,88,76,76,83,90,100,106,109,108,115,154,164,191,227,207,215,225,227,253,255,255,255,255,255,255,255,255,255,
+255,255,252,253,242,235,238,238,243,239,186,163,191,217,155,156,171,180,146,70,49,44,71,119,123,101,98,178,231,194,190,224,241,243,242,248,254,255,254,246,210,123,68,120,133,49,31,45,
+62,86,112,126,157,142,115,144,180,157,135,125,121,91,72,93,100,118,206,255,255,245,211,204,206,168,149,139,134,137,149,153,136,147,183,208,167,149,134,100,58,37,30,22,15,12,10,12,
+13,15,19,24,34,44,59,73,94,134,120,119,148,154,123,106,121,162,198,214,219,231,243,253,255,255,255,254,250,252,250,248,248,254,255,255,255,255,255,255,254,255,255,255,255,255,255,255,
+255,253,239,232,238,235,201,149,135,150,164,189,211,201,183,173,179,183,182,156,132,109,59,36,9,3,12,26,23,28,10,0,0,0,0,0,0,0,0,0,0,2,16,30,44,47,51,48,
+49,54,52,54,58,58,57,54,54,52,54,49,44,40,35,29,28,26,22,30,56,55,52,92,136,126,101,61,37,49,49,42,40,50,59,63,65,71,80,92,107,120,135,134,119,105,128,142,
+191,236,215,228,234,243,255,255,255,255,255,255,255,255,255,255,255,255,255,255,248,238,234,243,249,247,215,172,163,215,199,210,249,194,123,80,51,43,63,97,127,120,100,171,211,164,161,201,
+236,248,249,253,255,255,255,245,214,176,119,132,147,73,50,66,82,99,95,95,118,113,122,158,176,176,194,173,149,95,78,87,92,95,148,201,246,243,185,205,191,157,141,115,104,111,122,123,
+129,123,140,177,175,158,107,64,42,27,21,15,7,3,3,6,7,14,22,33,44,64,84,106,119,141,126,142,156,163,153,135,148,184,201,204,219,234,245,252,254,255,254,253,249,243,241,247,
+239,247,254,255,255,255,255,249,246,255,255,255,255,255,255,253,249,241,207,210,204,163,122,118,126,126,180,199,196,189,201,203,194,207,197,167,120,63,29,12,6,5,16,31,36,41,21,0,
+0,5,0,0,0,0,0,0,0,6,15,27,41,51,52,54,56,54,52,55,57,56,56,56,55,56,56,52,49,41,34,29,37,35,41,58,78,73,71,106,132,135,128,64,27,40,45,56,
+58,62,64,62,59,66,86,102,129,157,177,158,154,151,142,142,192,232,241,235,232,239,250,254,255,255,255,255,255,255,255,255,255,255,255,255,252,233,236,240,248,249,234,199,208,221,219,222,
+224,160,108,105,84,73,69,85,118,140,119,134,165,162,171,208,234,243,249,254,255,255,255,243,213,180,164,143,116,83,59,69,73,72,52,73,80,111,162,141,129,183,198,175,141,94,80,78,
+83,91,98,133,227,233,158,161,169,141,112,93,88,86,88,105,125,100,92,107,144,133,86,44,27,21,15,9,2,1,0,3,5,15,26,36,59,84,107,154,129,156,176,186,180,197,197,175,
+169,190,217,229,238,242,245,243,242,240,243,243,246,248,239,239,239,246,255,255,250,241,239,227,236,254,255,255,255,255,255,247,236,227,214,208,192,163,170,191,167,161,199,213,199,194,207,213,
+180,176,170,144,92,42,41,31,13,28,34,33,36,35,14,3,0,0,0,0,0,0,0,0,0,2,10,19,28,47,48,47,47,50,49,49,52,55,54,54,54,54,56,56,54,45,43,37,
+61,57,72,100,121,122,133,158,133,126,149,82,28,47,65,87,95,85,77,64,63,71,91,116,143,165,192,187,193,190,167,176,203,231,242,234,228,239,235,235,254,255,255,255,255,255,255,255,
+255,255,255,249,245,232,211,213,232,238,229,180,183,171,192,140,99,120,140,137,130,107,72,76,120,160,136,118,127,122,151,185,219,241,250,255,255,255,255,240,214,179,172,163,92,48,54,57,
+65,48,27,47,86,140,161,147,139,136,146,180,153,85,76,80,85,93,92,115,178,178,139,141,133,106,92,83,83,84,83,95,102,94,83,80,98,87,50,27,20,16,7,2,0,0,0,1,
+5,13,27,45,83,92,120,198,192,213,227,206,185,185,186,173,173,194,226,247,250,250,245,234,225,228,227,229,241,245,226,227,234,224,227,219,215,217,213,220,232,246,254,255,255,255,255,253,
+247,232,231,224,214,219,221,240,225,214,219,213,212,219,213,214,191,136,125,114,54,16,34,29,19,31,34,31,37,26,5,5,2,0,0,0,0,0,3,3,0,0,5,9,16,28,36,33,
+36,43,42,43,44,49,49,49,50,50,52,62,58,61,75,68,91,88,86,109,130,148,192,227,183,149,100,75,40,65,92,109,99,90,86,62,66,105,133,132,142,176,204,206,218,214,197,183,
+175,208,219,232,220,233,243,243,252,255,255,255,255,255,255,255,255,255,255,231,229,234,208,196,207,233,236,175,98,118,132,107,133,184,186,173,161,100,68,75,113,129,134,122,87,88,125,156,
+193,231,249,255,255,255,254,234,210,196,194,200,153,70,41,43,42,21,17,31,64,136,121,119,97,113,116,164,139,82,87,99,105,98,88,102,133,135,135,118,105,102,92,80,83,87,90,99,
+101,88,73,68,66,50,31,21,16,10,2,0,0,0,0,2,7,14,29,57,88,97,126,186,235,231,234,215,189,189,204,206,217,228,242,254,254,249,243,229,213,210,203,199,206,197,191,194,
+198,186,176,158,162,191,210,225,233,232,238,253,255,255,255,255,249,242,240,238,236,233,231,240,243,233,222,206,214,219,221,222,194,140,146,93,35,10,9,14,20,23,33,44,41,14,6,14,
+13,7,0,0,0,0,5,6,5,1,1,2,3,12,17,22,24,31,36,37,37,37,41,43,44,44,44,59,69,76,95,99,119,127,108,121,163,191,204,212,189,128,78,85,70,79,109,137,
+133,107,95,72,70,114,161,164,167,201,224,215,218,231,218,170,135,161,197,220,219,221,239,248,253,255,255,255,255,255,254,254,255,255,250,198,217,217,206,213,214,238,246,169,88,113,136,150,
+207,219,199,167,130,77,66,75,98,97,109,111,79,86,108,111,132,197,247,255,255,255,250,227,205,205,206,206,178,112,71,50,26,14,22,30,34,54,59,76,78,93,106,109,93,87,86,97,
+107,109,94,97,97,102,112,107,113,126,98,82,88,91,91,97,95,80,65,59,52,41,28,21,12,6,0,0,0,0,5,12,15,20,31,51,70,111,147,172,233,222,208,211,225,228,226,235,
+248,254,255,255,255,253,243,226,217,190,176,175,171,163,168,180,183,168,175,155,157,187,217,228,240,238,246,255,255,255,255,254,253,252,250,250,243,233,236,240,243,238,221,213,212,208,227,221,
+203,194,161,79,40,14,9,21,29,22,36,61,33,15,20,16,10,7,1,0,0,17,19,3,6,5,7,5,5,12,12,16,13,15,21,24,29,31,31,34,37,36,36,48,84,111,120,109,
+154,123,102,136,183,199,199,184,144,93,72,88,115,108,123,169,161,116,84,75,75,95,147,179,198,199,211,224,227,206,211,200,146,121,167,190,210,240,246,254,255,255,255,255,255,252,246,254,
+255,255,250,221,224,176,183,194,226,247,240,153,116,129,192,205,198,180,168,113,92,78,63,64,88,94,95,80,76,71,77,106,153,205,253,254,254,254,245,224,212,204,208,206,177,146,112,62,
+24,17,22,31,21,21,58,71,65,58,93,83,78,75,71,78,99,104,87,86,85,93,99,101,113,118,99,85,90,93,88,80,72,68,62,56,44,35,24,19,12,3,0,0,0,5,12,20,
+26,30,36,50,84,136,153,169,212,215,232,240,248,240,234,241,252,255,255,255,255,253,238,224,214,173,148,157,162,160,201,197,165,154,173,156,170,208,239,247,252,252,255,255,255,255,255,255,
+255,252,250,254,249,236,238,234,234,219,218,218,207,213,217,201,193,186,139,80,57,31,23,43,48,36,42,50,31,21,16,7,5,6,1,0,14,44,36,8,2,7,13,7,6,6,10,13,
+8,8,12,14,22,31,31,33,37,37,35,50,113,151,170,180,149,116,99,129,163,191,203,185,112,70,64,79,121,125,127,160,161,144,98,79,79,101,125,158,214,215,198,210,215,207,193,219,
+194,142,139,164,197,248,255,255,255,255,255,255,255,252,249,255,255,255,253,248,236,190,167,177,226,231,228,183,154,182,219,203,139,114,125,99,93,98,83,79,77,70,70,69,62,66,75,109,
+182,242,253,254,254,250,239,219,207,200,210,207,204,193,114,68,42,17,19,28,24,20,49,64,84,83,90,90,68,49,49,70,101,105,85,79,90,92,101,106,106,111,104,87,82,78,72,64,
+59,61,56,44,35,29,23,15,8,6,5,7,8,13,17,23,31,38,43,58,101,142,154,177,206,213,232,239,240,245,247,252,254,255,255,255,255,252,229,224,207,185,185,187,176,165,205,185,
+157,169,162,146,187,226,248,252,255,255,255,255,255,255,255,255,255,253,249,252,254,247,236,227,235,201,205,207,192,208,221,191,176,175,140,108,90,50,22,55,70,69,68,59,42,21,8,0,
+0,0,0,1,16,22,16,12,7,9,15,15,8,5,9,12,10,8,8,14,20,27,31,28,36,36,31,57,125,171,191,200,158,132,126,147,175,201,167,106,70,61,76,91,134,150,119,118,
+134,132,122,98,105,129,132,165,231,220,203,214,215,225,218,215,190,143,155,171,193,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,171,133,122,163,208,197,192,171,199,220,182,121,
+85,101,116,127,130,100,84,65,45,41,50,41,52,68,73,101,178,247,253,255,254,247,228,208,203,203,205,205,197,197,128,52,57,33,22,23,21,20,38,66,98,95,78,61,42,40,44,69,
+106,120,111,108,111,114,119,119,104,88,83,75,73,66,61,58,55,55,44,34,29,23,20,15,9,8,10,10,13,19,26,34,42,47,51,64,102,109,135,183,210,211,225,234,241,246,252,255,
+255,255,255,255,254,245,229,205,194,207,215,194,172,173,192,155,147,169,143,160,205,231,250,252,255,255,255,255,255,255,255,255,254,250,252,254,254,255,250,252,249,214,208,217,206,213,224,172,
+142,149,136,125,164,127,66,68,83,76,69,83,77,31,8,0,0,0,0,10,23,17,7,5,7,12,22,24,8,0,2,7,6,5,5,9,15,17,20,21,31,38,29,56,92,135,198,207,
+192,194,162,183,205,170,143,87,44,62,92,111,141,144,120,106,123,123,130,108,113,148,190,204,205,175,178,210,222,222,229,222,197,176,177,194,221,247,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,184,160,149,115,137,139,134,162,208,215,133,90,100,104,129,153,132,72,34,20,21,29,33,36,61,66,47,68,146,233,253,255,254,243,220,205,212,206,201,208,200,200,167,97,
+93,75,44,29,23,20,30,73,109,90,64,49,41,43,64,104,118,115,139,168,160,148,143,143,112,86,72,64,63,59,56,55,48,43,34,27,22,17,13,9,6,6,12,13,20,24,31,42,
+49,54,55,63,85,102,150,196,208,220,232,243,253,255,255,255,255,255,255,255,248,231,224,199,205,208,187,168,153,156,140,114,139,178,162,207,233,236,247,250,254,255,255,255,255,255,255,255,
+252,252,252,252,254,254,255,254,253,234,218,210,207,218,219,176,161,155,169,177,185,187,179,178,189,118,111,140,128,61,14,0,0,0,0,21,29,13,0,0,1,22,31,22,7,0,0,0,
+1,3,0,3,9,17,17,20,30,41,31,40,102,183,205,193,199,153,148,197,186,164,157,115,62,75,97,121,120,120,97,93,108,97,84,88,98,153,175,171,182,196,171,206,224,206,210,218,
+200,191,182,201,224,241,249,253,255,255,255,255,255,255,255,255,249,232,208,220,206,192,163,106,105,105,119,167,208,218,149,105,111,134,132,115,88,34,6,6,14,27,29,49,77,79,57,72,
+168,238,248,252,249,236,213,199,200,200,201,208,205,200,194,189,151,115,113,68,38,28,41,95,119,85,63,52,50,68,108,139,142,132,140,162,180,157,140,133,111,87,66,55,51,52,52,48,
+42,34,27,23,19,14,8,3,1,6,12,19,23,31,38,45,48,56,62,64,73,118,177,199,208,220,235,253,255,255,255,254,255,255,255,247,229,224,211,198,177,161,162,187,161,133,143,142,
+177,214,198,210,190,204,220,239,250,247,253,248,245,247,248,242,243,247,253,252,254,253,250,226,204,210,201,186,184,213,227,203,172,183,205,193,177,183,204,208,210,155,99,118,114,40,2,0,
+0,0,0,9,22,14,2,0,2,40,42,23,3,0,0,0,9,19,9,12,26,41,47,47,68,55,36,71,144,212,226,211,196,150,149,158,133,140,142,123,90,79,87,119,109,141,113,62,
+70,66,59,63,79,115,149,162,150,183,205,206,190,183,192,194,176,183,186,205,221,231,234,252,255,255,255,255,255,255,254,249,207,128,115,149,189,200,160,137,133,118,129,189,218,206,182,141,
+116,118,112,65,42,16,2,3,14,24,27,38,64,84,84,104,178,218,240,245,241,231,199,193,196,196,201,208,206,210,206,212,192,169,179,121,76,52,70,94,97,90,82,68,73,119,172,162,
+144,154,165,176,178,143,125,122,107,82,61,51,48,47,47,41,35,30,23,17,13,9,1,1,2,5,12,22,34,43,49,51,51,56,64,70,75,113,169,173,176,208,236,254,255,255,255,253,
+239,238,240,225,200,194,175,163,158,155,147,172,175,142,158,153,167,192,186,172,139,168,201,218,219,204,218,221,208,198,232,243,243,245,255,255,254,250,236,204,172,178,196,198,192,210,218,197,
+143,179,214,201,182,172,168,170,192,149,94,111,97,30,0,0,0,10,13,8,14,13,7,0,3,27,49,42,6,0,0,0,24,17,12,68,107,93,93,69,71,85,108,137,171,200,214,205,
+148,182,161,120,90,85,88,84,73,73,80,102,102,154,132,77,62,61,63,56,71,98,139,176,158,148,193,205,165,155,160,149,130,155,176,204,197,207,238,254,255,255,255,255,255,255,254,232,
+172,87,72,108,153,143,116,136,144,127,132,204,167,142,146,149,102,64,70,36,13,0,0,0,5,9,20,33,55,59,59,80,133,201,240,243,241,226,197,187,186,189,200,208,214,214,220,215,
+211,221,180,134,116,97,92,82,98,121,100,100,118,144,168,168,139,119,143,143,135,128,123,105,87,75,59,51,44,41,43,38,30,24,19,14,9,5,1,1,2,6,19,36,59,66,65,59,
+58,58,63,65,80,91,122,156,161,186,225,250,255,255,255,241,201,183,199,201,184,168,157,149,135,113,119,125,154,140,125,139,126,150,154,189,191,182,179,172,164,151,167,193,184,194,233,253,
+255,255,254,250,246,246,227,212,213,191,183,193,201,196,173,135,106,161,200,203,208,191,151,139,165,129,93,106,79,21,0,0,0,20,16,12,13,8,3,6,9,26,49,45,13,0,0,0,
+41,27,37,85,129,121,90,56,55,87,133,147,132,150,193,154,109,134,130,115,71,33,24,23,22,31,51,76,82,126,119,88,76,66,65,65,68,92,130,162,169,164,184,203,175,143,153,126,
+101,120,146,192,207,203,234,254,255,255,255,255,255,255,255,224,123,68,58,73,85,85,101,134,149,148,122,140,121,105,88,83,51,28,33,23,3,0,0,0,0,2,10,22,43,35,30,43,
+70,172,229,222,215,191,165,161,172,171,193,207,228,228,231,225,227,226,170,163,177,168,114,77,94,106,93,99,115,125,133,129,119,108,108,100,92,98,97,78,65,59,55,49,41,38,38,35,
+26,19,13,9,3,1,0,0,1,8,28,51,84,85,73,69,68,68,68,70,79,82,100,134,183,189,204,238,252,253,243,229,208,203,205,210,184,161,150,127,118,100,97,112,114,108,127,140,
+130,155,182,211,214,167,173,164,141,134,151,178,201,198,232,254,245,218,207,203,215,226,219,220,217,184,171,172,191,178,119,86,120,136,186,205,207,180,140,128,126,113,98,105,52,15,1,0,
+24,43,26,21,21,17,13,12,22,37,52,55,26,0,1,20,42,44,42,33,63,99,100,61,47,59,72,91,92,113,171,130,130,109,97,128,95,17,13,16,15,17,24,42,57,95,94,72,
+68,59,58,71,72,76,92,107,132,157,168,177,162,130,140,126,129,125,147,200,217,225,231,254,255,255,255,255,255,255,255,235,126,47,57,83,95,86,94,128,147,162,133,105,102,78,54,22,
+7,8,20,17,9,6,1,0,0,0,0,7,17,20,23,27,65,179,228,192,170,157,139,114,134,167,194,200,228,240,239,239,236,236,231,229,218,212,156,101,92,86,76,75,87,101,99,102,
+102,94,82,71,68,68,62,51,51,45,38,41,37,36,34,28,22,16,10,3,1,0,0,0,3,13,31,58,80,77,73,76,77,84,84,100,106,128,160,182,211,205,161,178,227,234,234,225,
+222,220,203,161,142,126,111,104,109,102,104,114,104,114,133,119,122,187,245,242,225,215,233,225,203,160,165,191,218,231,247,255,225,192,199,220,228,227,218,217,205,200,196,178,185,157,111,91,
+115,154,197,210,187,118,72,104,125,104,94,95,65,27,17,23,59,59,33,24,37,33,23,24,40,61,82,93,37,21,40,41,23,10,5,5,10,49,68,44,38,42,50,62,50,77,106,126,
+155,134,127,147,105,22,20,37,36,29,28,30,42,71,83,73,58,43,37,43,49,56,65,71,84,114,130,178,175,132,126,116,119,147,157,210,219,218,236,252,255,255,255,255,255,254,252,245,
+171,66,65,118,123,108,120,127,130,129,102,82,122,100,47,14,6,12,14,21,20,2,0,0,0,1,5,10,13,20,23,28,106,193,182,136,134,148,135,118,139,178,198,198,236,247,249,250,
+252,252,252,248,243,232,163,115,95,71,65,62,63,70,79,88,80,65,61,57,51,48,42,40,40,30,27,27,28,26,24,20,16,14,9,3,1,0,0,1,8,16,31,45,55,61,66,72,
+77,87,99,129,140,172,201,207,203,153,79,108,135,157,211,224,224,191,142,92,76,72,70,75,86,91,105,108,114,128,121,97,119,210,255,255,231,178,179,197,176,147,130,128,169,240,249,242,
+220,224,227,235,221,219,215,212,204,208,185,156,140,149,141,112,144,191,206,204,177,122,76,97,115,100,86,63,76,62,37,30,71,59,44,34,40,31,30,55,76,75,80,82,66,82,68,40,
+10,0,0,0,0,0,15,24,51,49,34,63,57,36,59,158,129,104,120,129,119,43,34,56,52,45,37,31,40,55,72,63,44,34,26,17,28,37,41,45,49,76,112,186,208,163,143,134,
+119,142,154,184,193,204,245,253,253,254,255,254,254,252,249,240,146,78,97,156,165,115,126,128,122,129,73,50,87,63,28,20,13,12,15,29,21,3,0,0,0,7,14,17,20,19,26,52,
+143,186,143,126,143,154,154,142,161,187,204,226,247,252,253,255,255,255,255,254,249,187,102,95,78,68,59,58,65,75,76,78,71,59,51,51,50,41,34,33,24,15,14,14,16,14,14,12,
+12,8,5,3,2,1,6,12,19,21,30,37,44,54,62,69,77,85,95,144,172,182,194,194,148,65,48,61,66,88,182,215,186,118,83,73,65,59,61,69,83,95,100,101,113,116,101,86,
+105,182,246,239,187,141,111,129,123,108,99,109,154,217,204,183,172,198,217,225,212,200,176,151,155,158,141,144,146,175,189,178,157,165,179,173,177,163,127,123,105,93,105,107,154,141,108,106,
+98,51,35,34,48,40,51,91,108,95,87,93,83,71,41,16,0,0,0,0,0,0,3,24,43,34,22,44,50,58,119,183,93,114,113,113,121,69,42,80,77,48,35,27,31,37,55,52,
+35,21,17,13,15,20,24,30,40,65,77,147,194,161,133,142,154,150,151,172,185,194,210,242,250,253,253,254,249,241,239,236,190,107,107,132,189,149,119,129,141,115,41,42,55,40,24,20,
+14,12,20,31,14,1,1,0,1,9,17,23,26,22,36,70,169,186,135,130,119,105,137,153,190,200,212,247,253,253,255,255,255,255,255,255,250,176,88,68,63,70,71,68,87,101,85,80,
+71,77,58,48,44,34,28,22,14,7,5,3,6,6,7,5,3,2,2,1,5,7,12,26,30,26,30,36,45,56,66,78,95,107,118,162,168,167,190,186,107,57,49,51,63,97,170,197,
+178,136,101,104,102,86,83,83,94,109,101,97,102,97,88,91,130,176,218,176,163,132,105,132,142,106,112,149,183,184,178,158,137,150,197,198,197,169,118,98,105,127,127,162,179,197,212,186,
+141,147,164,173,170,155,115,120,116,123,144,165,184,177,175,187,176,106,42,42,57,77,85,102,162,155,128,127,84,26,3,0,0,0,0,0,0,0,0,31,33,34,22,10,23,61,140,140,
+87,97,109,118,126,98,73,98,91,64,43,28,29,38,45,43,29,21,15,10,12,13,17,22,36,49,45,108,205,207,154,133,142,144,148,153,170,189,189,231,242,246,247,243,239,233,231,225,
+227,164,112,111,168,168,149,136,157,115,29,23,35,31,20,15,15,13,15,13,6,1,3,3,8,17,27,34,37,50,79,91,137,133,91,100,91,106,128,142,206,219,222,236,253,255,255,255,
+255,255,255,255,252,187,92,57,68,83,83,72,88,111,92,78,71,82,57,41,33,26,21,13,7,0,0,0,0,0,2,0,0,0,0,0,6,12,20,30,38,34,34,38,47,58,77,92,
+105,109,113,115,122,151,191,173,104,70,56,48,62,68,77,146,190,161,129,133,127,101,90,82,80,90,90,86,104,146,204,217,246,252,224,155,119,94,93,107,112,99,97,134,154,153,170,169,
+157,158,163,180,179,139,92,73,91,114,113,165,199,191,189,190,180,192,197,187,161,147,150,148,160,180,182,186,178,170,183,190,183,147,112,101,119,179,164,179,229,211,175,136,107,33,2,0,
+0,0,0,0,0,0,8,30,26,34,21,7,8,37,88,95,58,76,113,135,151,128,111,106,99,84,62,42,40,47,44,33,29,26,17,10,9,9,20,29,29,38,44,77,178,231,201,185,
+171,178,165,156,164,189,196,225,235,232,231,226,221,196,201,197,194,146,129,154,155,146,127,123,155,112,36,21,23,21,17,15,14,17,16,12,3,3,6,8,14,26,37,50,64,86,100,113,
+135,122,88,111,86,93,82,116,184,212,224,234,254,255,255,255,255,255,255,255,238,128,63,70,86,94,65,55,76,88,80,70,64,58,47,37,28,23,14,7,5,0,0,0,0,0,0,0,
+0,0,0,1,8,17,28,38,54,49,36,38,50,70,85,86,79,70,59,52,68,107,141,108,66,58,56,54,58,58,68,116,150,140,120,126,104,90,87,79,76,83,90,88,109,155,235,253,
+234,246,224,191,107,73,70,70,65,71,91,108,123,142,148,141,142,139,132,146,136,88,75,82,99,88,113,173,189,185,182,219,210,196,194,178,142,160,182,176,198,196,198,192,148,134,176,221,
+218,213,203,212,233,247,243,240,235,212,179,150,136,66,16,0,0,0,0,0,2,15,51,70,43,41,31,16,10,21,44,56,69,87,122,137,136,139,182,161,155,144,127,87,59,65,51,29,
+23,17,13,12,14,24,34,50,43,49,77,108,190,235,231,229,219,206,192,186,176,191,203,221,220,222,207,206,213,143,130,149,149,120,127,191,164,143,176,169,135,93,61,45,44,38,33,30,
+24,27,26,20,12,10,12,13,21,33,44,70,99,101,79,100,144,119,88,99,71,75,82,99,175,190,194,238,255,255,255,255,255,255,255,255,222,121,69,90,113,94,70,66,76,73,80,66,
+55,49,43,34,30,22,14,8,3,0,0,0,0,0,0,0,0,0,0,3,8,21,37,49,65,72,51,48,64,77,78,71,56,41,42,41,42,58,75,71,68,70,72,66,54,63,88,95,
+91,90,76,82,95,97,72,71,88,130,171,125,90,106,119,150,179,182,156,150,87,61,62,58,62,93,132,113,106,112,118,121,125,129,134,129,112,83,82,107,102,92,133,186,206,224,239,229,
+200,199,186,136,139,191,218,207,205,182,184,182,147,146,219,249,241,247,252,255,255,254,252,245,236,220,168,160,154,100,34,16,17,26,22,20,21,43,58,78,85,68,72,62,35,22,42,69,
+144,107,123,146,148,169,226,207,201,201,179,129,106,116,71,41,24,14,22,30,26,33,37,55,78,100,121,162,207,243,249,249,246,225,204,194,193,199,205,206,205,210,201,184,198,176,125,102,
+91,129,168,208,192,183,190,167,130,106,106,112,106,84,57,41,38,42,38,27,20,15,17,20,34,48,56,82,101,85,77,136,136,102,93,90,80,84,90,113,178,189,210,240,255,255,255,255,
+255,255,255,254,217,135,83,98,108,83,88,79,76,79,79,66,51,50,45,36,30,21,14,8,2,0,0,0,0,1,0,0,0,0,3,12,22,37,51,65,82,87,77,69,72,63,56,58,
+48,31,28,29,37,51,63,72,80,79,78,86,100,95,91,86,73,65,63,82,108,113,84,79,139,168,160,118,95,109,111,127,177,136,107,105,78,51,57,55,71,134,163,126,122,127,150,144,
+122,120,105,92,80,69,80,91,80,114,156,206,229,238,242,214,193,220,169,153,180,151,190,214,196,217,206,208,217,233,255,254,253,255,255,255,255,255,255,247,239,218,170,194,193,132,52,23,
+31,43,48,40,33,30,41,69,93,115,144,115,42,34,73,148,183,150,144,161,163,171,206,233,229,196,154,139,147,137,99,82,38,33,54,42,42,36,43,78,127,137,141,191,231,246,250,252,
+246,228,213,204,196,198,204,201,201,198,204,170,132,157,104,65,68,149,213,226,213,200,141,141,169,141,147,148,122,82,52,43,47,55,49,35,26,20,23,30,42,54,63,77,88,85,97,134,
+168,144,107,120,123,87,87,106,171,213,233,243,255,255,255,255,255,255,255,250,221,161,137,102,99,90,79,56,56,62,61,61,56,55,48,41,33,20,14,8,1,0,0,0,3,3,1,0,
+0,6,13,27,59,77,87,88,101,113,79,82,109,78,44,42,35,24,20,22,29,37,55,70,86,82,73,93,123,99,84,88,65,47,57,85,119,153,162,184,234,176,154,125,137,155,180,175,
+142,114,126,121,83,57,64,79,123,175,176,168,187,171,175,150,115,95,77,62,52,58,75,71,79,120,149,178,191,187,194,211,220,242,191,173,148,128,178,212,221,249,250,255,255,254,255,255,
+255,255,255,255,255,255,255,253,245,229,222,218,175,126,78,36,31,35,41,38,42,30,45,71,115,189,224,173,79,97,126,163,176,167,148,162,157,162,198,222,227,165,130,128,139,142,140,128,
+119,112,84,43,48,43,54,91,123,126,133,179,240,250,254,253,247,235,222,217,204,200,206,199,193,183,161,123,91,78,42,27,45,123,214,231,210,199,168,149,194,190,155,156,111,57,47,52,
+59,63,52,40,33,30,30,37,45,56,68,79,93,97,88,101,150,163,121,154,151,86,88,108,172,219,245,254,255,255,255,255,255,255,254,246,224,191,187,129,109,85,50,28,41,58,64,64,
+62,56,49,44,29,19,16,12,5,2,2,6,9,6,1,1,3,10,16,27,52,71,98,107,127,121,68,66,98,85,50,36,30,24,19,19,23,26,41,63,91,86,84,97,105,92,80,77,
+61,48,59,73,133,186,212,247,255,245,236,219,205,190,180,160,102,107,154,135,82,69,79,123,179,219,210,197,191,182,175,139,113,91,70,54,44,48,55,73,70,92,125,140,167,173,177,211,
+200,190,199,160,135,157,206,215,234,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,247,231,224,203,192,158,93,54,38,15,22,37,43,40,51,102,175,247,255,248,227,215,229,189,
+141,172,175,194,180,189,194,224,226,169,118,106,105,129,157,156,190,168,99,79,78,61,65,107,143,171,161,175,240,254,254,253,245,231,219,217,210,203,204,194,194,147,57,58,38,15,10,12,
+26,86,173,212,201,184,180,153,172,200,178,144,84,44,44,56,62,69,63,49,43,36,37,45,54,71,86,88,90,85,76,83,112,118,156,196,148,85,83,123,169,212,250,255,255,255,255,255,
+255,255,254,252,225,197,196,134,75,54,27,27,54,70,64,54,55,54,48,41,27,21,21,15,9,7,5,8,7,6,3,5,6,14,21,24,30,40,83,113,148,79,55,56,68,69,48,36,
+27,23,21,19,17,19,31,99,109,94,112,134,113,83,83,91,65,59,79,95,163,201,247,255,255,255,255,224,197,189,141,90,80,104,105,94,83,84,113,149,192,241,232,211,179,192,179,153,
+127,101,78,59,41,43,49,63,61,65,97,133,143,160,179,183,160,112,177,170,146,149,189,189,233,255,255,255,255,255,255,255,255,255,255,255,255,255,255,252,247,238,222,214,211,186,95,49,
+65,63,56,51,55,65,71,129,193,247,255,255,255,255,255,160,168,187,215,233,225,227,218,217,228,211,160,101,105,119,128,161,179,191,157,143,122,113,163,189,204,221,207,215,253,253,255,252,
+242,231,217,208,204,206,204,196,192,107,29,30,10,3,5,2,38,87,135,200,213,161,127,116,139,167,204,182,129,84,59,56,71,79,68,50,50,44,42,50,57,73,93,85,82,90,72,72,
+122,118,169,167,149,137,101,108,142,187,250,255,255,255,255,255,255,255,255,240,193,189,186,126,71,50,20,29,41,47,59,52,48,52,51,34,24,26,30,28,19,7,3,5,6,8,10,12,
+10,17,26,33,31,30,61,109,139,64,45,55,68,51,31,33,31,23,22,21,19,24,49,132,158,171,182,185,144,100,93,79,54,58,92,126,165,153,212,248,255,255,255,239,186,154,114,80,
+82,90,98,92,98,113,171,182,201,246,232,211,207,212,192,158,134,142,149,84,43,50,44,47,61,50,71,93,88,128,157,123,104,97,140,157,123,101,142,160,203,255,255,255,255,255,255,255,
+255,255,255,255,255,255,253,249,247,236,229,218,205,200,173,132,127,136,98,70,77,93,133,169,214,247,255,255,255,255,253,178,212,215,222,240,242,248,219,179,185,225,217,158,123,135,127,193,
+219,208,217,210,204,224,222,193,179,196,221,227,250,254,252,249,241,231,220,214,204,210,206,198,184,102,47,13,0,2,2,0,28,111,168,186,201,169,137,112,135,169,191,205,192,119,76,72,
+80,100,80,52,44,43,43,55,63,64,73,71,79,92,82,83,99,129,142,142,185,163,114,99,130,199,248,254,255,255,255,255,255,255,252,206,168,179,191,156,85,62,31,41,52,65,97,71,
+54,49,38,28,29,35,37,30,16,9,7,6,7,10,13,14,19,23,30,30,26,33,48,116,126,71,45,48,56,47,28,30,33,29,24,24,24,37,70,114,153,197,208,185,155,134,108,77,
+56,54,68,91,113,123,179,240,255,255,255,252,194,151,128,114,92,76,76,98,132,154,186,205,213,208,182,171,217,229,184,142,183,196,172,95,47,57,49,33,49,38,43,49,54,86,94,70,
+56,66,94,108,82,79,106,143,178,227,219,234,255,255,255,255,255,255,255,255,255,254,250,250,245,238,226,210,208,215,222,205,201,164,142,126,114,165,212,232,227,239,255,255,255,252,240,242,
+189,210,232,239,250,249,173,130,146,193,201,210,199,184,180,231,233,233,240,238,239,248,234,214,204,205,213,212,234,253,252,250,241,227,218,213,207,206,204,167,120,91,41,0,0,1,2,0,
+9,79,123,147,161,163,136,113,143,184,203,199,184,162,118,95,108,105,77,54,42,42,44,54,61,61,61,58,63,75,84,87,106,151,143,155,146,111,99,135,156,198,235,242,254,255,255,255,
+255,255,247,198,180,201,205,171,95,88,83,101,112,128,150,112,73,51,33,33,36,42,36,26,17,13,9,8,10,12,16,21,26,29,34,30,29,50,69,101,84,43,42,44,41,40,37,37,
+35,35,33,29,30,43,73,120,140,168,175,141,111,92,91,97,90,91,79,97,132,142,170,236,255,255,255,249,175,170,172,147,116,100,90,115,169,183,185,198,215,184,164,203,234,211,127,130,
+247,235,144,86,82,83,62,35,34,47,45,41,45,58,76,72,54,63,78,75,69,73,95,160,184,148,155,199,252,255,255,255,254,252,253,253,253,252,252,247,235,227,226,214,213,225,227,214,
+212,194,204,199,170,215,255,255,248,247,254,255,255,247,205,217,222,218,239,239,241,246,178,107,135,148,151,205,225,213,235,246,236,241,247,246,242,250,250,242,231,224,215,206,225,247,253,249,
+241,225,212,204,205,205,204,173,93,41,28,8,0,2,3,0,8,41,71,91,97,128,143,113,116,150,182,206,224,197,151,106,107,79,66,58,48,48,52,55,55,56,52,50,54,59,76,73,
+98,157,165,150,106,101,133,165,206,208,211,239,247,252,255,255,255,255,241,221,217,210,194,137,80,108,125,126,127,133,154,116,92,55,41,40,40,38,30,26,23,16,14,10,13,20,24,28,
+30,31,36,38,47,85,112,112,79,54,43,41,40,37,40,41,40,38,37,34,36,40,56,83,108,128,125,94,66,50,52,70,106,128,116,148,179,148,139,196,255,255,252,215,193,207,165,135,
+123,116,115,128,149,175,201,210,221,199,206,234,218,148,119,163,232,194,143,102,93,83,68,30,27,40,51,55,61,68,98,94,76,94,119,99,73,78,93,135,154,141,179,210,235,254,255,255,
+252,231,229,231,228,233,245,224,198,199,206,215,229,235,229,225,228,238,248,243,233,246,255,255,255,255,255,255,255,252,199,213,242,229,240,246,239,234,179,133,148,170,160,198,238,236,253,252,
+249,250,248,247,250,254,245,192,185,201,224,227,238,247,253,249,234,218,210,208,190,187,193,126,41,15,16,13,2,5,8,8,26,30,35,69,86,95,140,135,109,125,142,183,217,180,160,136,
+107,72,72,68,57,55,61,59,59,55,47,43,44,45,45,54,108,158,129,113,134,141,158,177,208,206,222,240,236,247,255,255,255,255,239,229,234,224,194,134,87,92,104,104,109,122,134,101,
+90,58,51,40,34,31,28,29,28,21,22,17,20,24,31,34,37,38,41,59,82,116,141,149,119,82,55,41,40,37,40,42,44,43,42,37,40,42,54,75,92,102,97,70,42,30,36,48,
+72,102,137,156,158,177,162,163,201,233,255,189,197,199,150,129,100,87,93,122,130,165,199,211,213,213,234,234,196,135,150,201,217,186,154,165,148,123,76,17,24,42,57,73,100,113,122,106,
+114,143,137,101,70,76,93,128,115,148,190,187,227,246,248,248,239,226,198,180,217,217,206,199,198,196,200,222,246,245,235,233,243,247,248,249,254,255,255,255,255,255,255,255,255,255,239,239,
+247,246,250,253,246,235,213,229,215,218,214,246,250,254,250,253,253,253,253,250,254,254,241,196,205,213,221,234,241,247,246,245,228,214,206,204,179,171,153,82,33,19,21,12,8,12,17,13,
+19,20,20,37,51,100,150,139,105,114,115,121,146,135,141,170,115,71,73,71,66,56,59,63,59,51,45,43,42,44,44,43,64,88,88,85,126,158,186,225,229,222,233,229,212,240,255,255,
+255,255,250,245,247,236,183,116,101,100,114,130,155,165,139,95,80,62,55,41,31,33,29,30,30,28,28,26,27,42,50,45,57,55,66,115,142,151,154,148,130,90,50,42,43,41,43,44,
+47,50,47,41,42,55,70,76,87,90,80,64,41,30,31,42,63,90,147,153,156,198,204,173,161,211,245,172,170,176,132,95,83,79,100,115,123,165,190,221,227,234,235,193,140,111,120,187,
+220,217,215,218,205,143,61,21,29,54,77,88,144,132,137,153,168,164,141,125,92,73,94,126,146,155,170,189,175,175,163,199,210,207,180,182,205,214,194,182,178,170,183,220,241,243,238,242,
+246,247,248,253,255,255,255,255,255,255,255,255,255,255,252,250,248,248,253,254,253,252,255,255,255,252,255,255,255,255,254,254,255,255,254,255,255,252,248,235,227,232,228,234,242,242,241,235,
+222,219,207,199,182,161,143,125,72,24,24,14,12,17,49,30,10,9,3,13,68,112,119,101,69,71,69,76,114,151,151,140,95,71,73,70,66,56,56,58,57,52,48,45,44,45,49,47,
+43,50,61,70,93,158,219,222,221,220,224,220,214,201,214,241,249,242,231,246,246,219,161,123,122,134,134,168,196,212,193,91,77,61,44,34,29,31,33,31,33,36,30,34,41,57,65,64,
+73,84,97,113,153,177,172,157,125,102,58,48,48,47,48,48,49,55,52,44,48,64,61,65,97,92,82,62,40,35,36,36,41,68,102,128,176,233,224,201,205,191,198,176,177,154,91,66,
+72,80,106,120,127,164,200,226,213,222,205,155,102,64,94,189,186,146,201,218,184,114,56,28,45,82,87,92,182,186,199,217,199,143,121,115,80,82,120,140,175,199,180,190,127,94,114,154,
+162,164,172,168,176,199,183,153,135,136,180,211,229,236,241,241,248,254,255,255,255,255,255,255,255,255,255,255,255,255,255,254,248,248,254,255,255,252,253,255,255,255,255,255,255,255,255,254,
+255,255,255,255,255,254,255,250,234,231,228,231,242,241,239,232,220,218,208,196,164,105,128,142,50,15,15,13,15,27,52,59,17,15,16,20,63,93,82,90,56,54,58,61,97,132,132,126,
+98,75,80,79,64,52,57,62,65,65,56,50,45,40,40,40,37,40,54,98,121,168,226,198,200,201,206,217,215,197,212,222,239,239,234,241,238,225,171,154,122,130,150,150,179,212,179,70,
+56,36,19,20,27,33,33,33,36,35,38,50,68,79,76,72,92,133,122,102,148,189,184,162,143,128,70,54,54,52,56,58,55,57,55,50,48,50,55,71,94,90,73,45,31,29,28,24,
+23,37,58,97,160,211,220,214,217,203,187,196,178,128,82,65,55,66,80,111,136,184,219,193,178,177,184,175,130,148,143,157,172,135,167,205,203,133,77,50,72,102,91,101,158,224,226,226,
+196,126,108,100,86,114,146,149,198,214,153,144,120,85,95,118,104,102,108,93,109,135,144,135,109,111,163,200,217,226,238,242,247,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,
+247,249,253,254,254,253,252,255,255,255,255,255,255,255,255,255,255,255,255,255,253,255,255,255,252,236,231,236,233,233,235,225,217,211,208,191,108,59,121,128,34,3,7,6,12,38,64,50,
+23,34,31,28,40,55,52,65,54,42,54,52,75,91,107,140,106,71,73,73,58,55,69,84,98,93,66,58,52,42,41,38,41,64,94,142,148,175,215,180,171,161,193,225,240,242,247,246,
+249,243,238,238,217,205,183,165,108,108,158,163,178,208,182,65,19,13,8,13,29,42,44,43,49,47,52,72,116,113,83,82,125,163,160,179,203,198,175,127,106,108,73,65,59,59,65,68,
+59,56,52,50,51,59,69,73,69,70,52,31,31,21,19,13,21,38,54,92,148,176,213,215,208,214,187,183,164,127,114,90,65,84,113,135,155,150,156,144,132,160,205,232,236,240,222,218,
+220,187,162,150,161,146,97,58,68,73,82,126,133,200,207,171,144,148,158,128,150,196,205,215,212,178,150,126,100,116,101,85,90,90,94,84,82,126,134,149,128,132,162,201,211,227,236,243,
+248,253,255,255,255,255,255,255,255,255,255,255,255,253,253,250,245,242,248,252,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,252,250,254,254,254,245,240,241,229,222,226,218,
+207,207,201,189,115,41,95,112,51,16,8,9,13,48,62,27,20,28,44,57,41,51,56,76,71,44,50,52,62,73,80,111,111,79,75,85,78,84,84,97,123,105,69,62,59,56,56,52,
+56,91,128,154,161,175,211,162,139,146,186,221,238,234,225,239,245,241,234,235,215,200,212,198,143,134,189,199,180,185,186,125,42,17,14,21,37,61,70,62,68,72,80,101,126,119,95,104,
+129,161,186,205,214,205,140,86,71,78,79,73,62,65,70,68,63,58,54,51,61,68,63,54,41,35,28,22,23,15,9,5,3,20,45,85,135,154,186,201,183,190,213,196,151,130,134,143,
+140,148,155,158,175,151,144,129,123,157,206,231,235,208,212,228,231,215,190,171,160,172,144,75,44,50,78,104,91,122,137,163,185,210,199,143,137,163,168,162,151,155,142,108,120,170,143,92,
+92,95,94,84,99,107,105,150,142,150,186,225,231,240,246,249,253,254,255,255,255,255,255,255,255,255,255,255,254,249,235,238,236,236,248,252,254,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,255,255,253,254,255,255,252,247,243,228,205,199,208,201,199,198,185,116,21,37,51,41,29,23,14,13,29,33,37,31,29,28,41,45,64,93,83,50,49,50,55,62,56,63,83,
+109,98,99,102,90,102,102,111,112,86,68,62,62,65,61,59,68,95,143,164,177,154,182,151,143,154,190,228,225,210,210,222,232,242,238,225,224,220,218,211,186,187,208,212,184,175,183,164,
+88,57,51,48,68,94,109,85,93,101,114,141,143,128,119,122,116,119,176,201,215,194,129,86,84,77,78,70,62,63,66,68,64,59,56,54,61,62,51,42,33,23,17,14,10,7,1,0,
+0,0,12,51,105,128,150,161,150,167,196,206,177,154,156,168,176,157,142,148,158,155,154,134,115,158,218,220,197,168,179,206,222,210,196,197,186,168,155,82,33,35,50,47,50,72,91,133,
+153,154,187,189,178,160,147,118,87,125,137,115,154,191,156,154,157,134,95,84,95,94,120,142,128,160,207,238,239,248,253,254,254,254,255,255,255,255,255,255,255,255,255,255,243,217,185,193,
+211,232,240,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,252,255,255,255,250,231,210,203,176,200,197,193,194,180,109,10,10,22,41,38,28,9,5,7,13,21,
+22,19,28,40,54,75,134,108,34,36,42,51,56,47,50,69,107,129,102,91,95,97,107,100,83,75,66,64,62,59,57,61,77,114,180,183,189,162,168,160,170,169,183,200,186,205,221,218,
+225,238,235,219,226,234,222,204,205,208,204,206,201,187,165,108,108,99,87,85,98,120,139,107,106,125,141,179,171,132,113,130,139,126,169,194,208,199,156,123,92,80,80,72,62,61,63,69,
+68,61,57,54,55,58,48,41,33,23,15,10,6,6,0,0,0,0,0,26,72,101,133,132,127,153,180,168,172,182,158,133,155,146,141,139,140,144,140,133,106,130,169,164,165,172,156,178,
+200,215,196,171,183,173,133,62,26,24,34,34,30,52,59,95,134,165,183,186,170,163,148,99,66,84,114,155,162,150,172,200,161,129,100,108,118,106,130,125,132,184,215,242,245,250,254,255,
+254,254,255,255,255,255,255,254,254,246,238,247,240,200,146,156,156,185,200,236,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,247,247,255,255,250,213,190,208,178,190,
+194,190,185,177,121,12,0,3,26,34,28,12,8,3,6,7,9,13,44,61,50,79,123,116,50,36,42,48,52,49,47,69,108,146,114,91,102,119,116,83,78,83,72,68,64,54,55,66,
+83,104,176,182,192,210,184,168,191,205,189,189,190,190,220,231,239,241,238,241,233,234,210,191,205,193,180,200,214,200,154,106,128,122,133,128,127,157,158,135,136,155,175,201,184,140,127,151,
+137,168,201,201,208,207,192,147,107,86,82,75,66,68,66,69,68,58,56,54,54,52,44,40,33,26,19,13,8,6,5,0,0,0,1,15,52,95,140,142,144,160,208,176,178,200,161,140,
+156,129,140,125,106,112,127,157,163,139,126,162,153,177,178,183,206,210,217,187,171,165,73,35,24,26,27,21,13,27,50,102,148,178,185,186,162,156,112,57,61,90,130,167,148,148,173,161,
+128,114,102,95,98,97,136,142,180,227,228,239,239,248,252,253,253,254,250,252,253,253,252,249,243,235,234,239,229,211,153,130,137,142,167,212,255,255,255,255,255,255,255,255,255,255,255,255,
+255,255,255,248,243,242,238,240,253,255,247,205,171,198,164,172,187,184,184,178,148,52,5,0,2,17,21,20,17,5,6,7,6,9,27,37,24,58,82,83,55,41,45,49,58,61,62,84,
+125,164,149,119,111,128,112,78,78,73,71,66,61,55,56,72,94,118,165,163,165,217,178,193,211,221,189,194,196,186,225,233,245,253,248,245,241,234,179,176,192,133,114,158,176,176,148,136,
+148,137,153,147,163,182,175,132,120,155,200,204,184,161,144,143,129,164,187,198,184,183,179,176,153,95,92,90,83,79,68,65,61,55,56,56,55,49,42,37,34,29,22,15,12,9,7,6,
+3,0,2,15,49,92,125,162,162,173,201,208,210,171,141,156,173,149,119,114,87,94,158,190,182,139,141,185,157,206,221,215,220,219,218,210,190,128,47,34,28,27,19,14,10,33,66,111,
+137,144,151,168,155,140,88,44,58,93,160,156,153,133,121,122,167,150,111,125,129,139,187,186,193,178,169,199,214,235,234,248,249,234,221,236,240,239,245,238,232,233,224,201,200,199,164,121,
+170,153,160,184,235,255,255,255,255,255,254,255,255,255,255,255,255,255,253,240,228,227,242,250,247,240,233,190,156,176,162,151,178,186,182,170,133,85,40,17,3,13,20,20,10,1,3,5,
+5,8,12,14,19,36,52,56,56,41,47,64,79,79,85,109,155,192,182,126,94,92,97,87,73,68,65,58,54,54,57,73,90,114,135,130,164,197,177,226,235,233,197,218,235,211,220,240,
+253,254,250,249,236,199,158,164,149,94,92,111,141,168,164,135,134,146,182,192,194,178,162,120,107,133,187,205,189,182,193,192,178,151,148,161,160,163,179,198,177,127,111,112,98,70,59,61,
+55,54,56,54,49,45,40,37,33,28,22,19,15,13,9,9,7,3,3,16,52,94,111,183,204,211,198,214,214,168,148,149,173,193,156,116,82,91,160,169,192,163,179,236,205,198,221,246,
+250,242,239,203,118,68,38,36,41,38,37,29,33,68,70,93,128,151,156,168,168,106,64,54,61,75,114,101,109,104,126,114,151,169,137,149,140,143,171,142,104,64,70,132,177,169,158,201,
+219,208,177,198,207,217,211,218,228,234,225,204,197,198,186,169,170,168,147,172,198,227,247,255,255,242,231,255,255,255,255,255,255,255,252,232,213,226,238,241,225,200,196,165,140,141,132,141,
+178,184,178,160,101,80,61,40,15,12,15,16,10,1,1,5,5,7,9,10,19,40,41,33,41,47,71,87,88,85,105,132,178,207,170,94,78,75,87,87,72,72,59,48,47,49,51,58,
+59,76,94,98,142,175,189,232,241,250,255,253,235,199,219,248,255,255,255,255,242,213,200,199,168,149,126,140,191,189,160,142,150,171,207,203,191,185,168,130,112,114,164,212,213,205,212,219,
+162,114,141,184,167,160,175,172,172,151,137,106,72,51,50,51,50,51,50,48,43,40,38,36,33,29,26,22,19,15,14,12,10,8,8,20,58,88,118,170,193,199,206,226,218,197,177,127,
+90,139,155,109,71,65,91,133,231,255,253,238,193,186,233,249,255,255,253,213,140,85,80,115,134,112,65,49,62,73,49,86,155,154,116,134,165,144,97,87,85,75,68,79,90,87,73,86,
+102,135,137,105,119,97,75,52,27,26,49,85,107,91,101,143,163,162,153,170,172,192,187,182,204,221,221,219,212,225,210,180,154,161,146,160,176,208,225,229,217,179,211,255,255,255,255,255,
+253,231,207,191,192,198,194,201,203,170,172,182,158,141,130,142,183,185,176,162,123,116,90,58,48,21,14,22,21,6,1,5,6,6,7,9,12,30,33,28,30,44,77,99,98,92,100,127,
+162,187,164,88,86,83,84,82,70,65,51,44,41,43,40,35,34,36,43,63,100,149,213,229,227,241,255,255,250,248,254,255,255,255,255,255,247,235,238,238,232,212,194,205,227,210,190,201,
+201,190,212,210,187,163,153,134,116,122,156,210,206,204,219,213,148,155,193,186,121,156,164,155,164,164,128,78,47,40,41,43,45,47,43,41,38,35,33,33,31,29,29,24,23,21,19,19,
+15,14,15,22,45,66,107,151,175,141,184,208,194,143,118,99,64,83,86,65,50,45,50,99,212,255,255,250,245,252,255,255,255,255,253,246,199,168,178,218,206,187,153,142,107,62,102,163,
+169,134,116,163,147,125,114,116,98,71,49,70,77,77,66,71,86,95,77,80,105,84,40,28,23,27,38,73,101,101,113,134,136,142,158,162,165,178,179,171,184,201,218,219,221,224,196,169,
+171,148,132,135,156,168,167,149,122,125,167,241,255,255,255,255,248,226,200,168,168,146,140,175,206,205,193,201,172,156,161,156,173,180,165,154,140,127,108,78,75,70,48,45,40,19,9,7,
+5,6,7,8,12,19,27,33,31,43,71,91,88,80,86,102,137,144,161,119,91,88,84,73,71,59,45,35,30,29,27,28,27,24,28,57,77,130,207,226,214,248,255,255,255,255,255,255,
+255,255,255,255,253,250,254,236,234,206,208,231,228,215,203,205,193,190,196,205,190,130,123,155,157,170,165,197,214,208,229,217,175,194,193,154,121,161,169,153,156,148,99,71,48,40,36,36,
+37,40,38,35,34,30,30,29,29,33,31,30,28,30,28,24,22,20,26,31,44,59,79,115,130,101,112,137,141,95,72,62,56,59,51,40,38,57,56,82,226,255,255,255,255,255,255,255,
+255,255,255,254,240,253,217,213,186,155,199,204,178,155,178,190,157,123,129,172,149,113,126,127,84,49,36,45,59,76,75,73,90,79,82,100,90,52,27,22,28,37,56,90,130,153,163,182,
+190,178,165,154,171,193,183,192,219,220,221,221,220,214,204,198,155,107,84,79,83,85,90,78,92,133,142,179,214,253,255,254,248,245,205,165,157,142,153,179,211,236,225,210,190,178,186,168,
+154,161,148,142,129,115,106,90,76,78,82,72,61,49,27,15,8,8,12,13,13,20,34,44,40,48,66,58,54,68,61,71,108,106,115,86,62,72,72,79,79,59,45,31,23,19,19,22,
+20,16,15,29,49,94,153,197,233,253,255,255,255,255,255,255,255,255,255,255,255,255,255,239,200,194,200,233,207,187,203,198,184,193,180,179,164,140,134,165,171,185,179,204,228,231,236,227,
+231,217,197,156,160,163,170,136,99,80,78,58,48,48,40,34,33,33,35,31,27,27,26,27,30,35,36,33,34,36,34,29,28,27,33,36,50,56,47,57,66,70,54,70,70,66,54,48,
+45,42,37,34,41,82,127,177,248,255,255,255,255,255,255,255,255,255,255,255,255,255,246,179,157,147,213,201,167,173,191,192,171,151,164,182,190,171,133,109,64,28,20,26,38,56,57,71,
+79,77,91,94,62,34,27,26,34,52,78,104,137,175,197,227,225,197,185,178,190,205,219,225,226,208,187,197,210,211,214,194,129,98,69,43,34,36,33,45,90,128,132,121,182,254,255,253,
+248,246,224,203,191,185,180,172,200,228,232,218,192,196,194,192,178,139,126,135,121,101,86,82,95,114,142,139,112,78,49,24,16,14,16,14,15,26,43,50,45,50,54,38,49,55,36,40,
+57,59,41,30,44,59,65,75,80,59,36,28,22,19,19,19,16,12,8,16,31,95,143,171,219,255,255,255,255,252,254,255,255,255,255,255,255,255,252,252,211,184,196,199,189,189,208,208,
+196,186,157,143,163,163,142,144,168,179,193,218,229,227,231,235,240,226,183,190,201,157,158,123,88,63,58,49,47,50,44,34,28,28,27,27,24,23,23,24,29,33,36,35,35,36,37,34,
+31,33,34,37,38,40,40,40,38,38,40,42,51,51,41,42,37,36,41,34,40,83,153,226,255,255,255,255,255,255,255,255,255,255,255,255,255,248,252,213,169,169,173,157,120,99,164,206,
+213,194,196,167,146,128,93,62,31,13,9,13,23,43,59,68,61,58,64,58,42,26,19,26,40,56,78,102,133,173,225,254,242,222,221,217,231,234,234,234,214,187,164,162,182,186,187,167,
+143,114,85,48,27,19,14,31,70,119,129,129,227,255,255,254,248,245,231,214,220,221,191,186,214,217,213,196,199,205,206,201,184,147,119,125,112,87,76,77,121,185,203,197,171,99,61,38,
+23,23,21,17,22,30,41,51,52,49,36,28,40,31,22,23,30,28,23,23,31,41,49,55,65,57,30,26,23,22,20,17,14,9,7,17,36,65,87,136,201,241,246,243,228,243,253,255,
+255,255,255,255,255,255,255,255,220,197,161,121,141,189,213,194,179,171,164,169,168,167,137,140,173,175,177,208,227,226,236,238,239,228,187,205,204,182,139,95,86,62,56,54,40,38,38,30,
+21,19,19,20,21,19,22,27,26,28,34,36,37,40,38,37,31,29,34,36,36,36,38,38,38,37,36,38,43,44,40,38,37,38,45,43,43,64,112,192,247,247,248,248,253,255,255,255,
+255,255,255,255,255,254,255,229,187,154,84,64,56,61,79,94,196,211,206,141,70,51,55,42,23,7,5,8,19,41,70,62,43,38,33,29,29,21,19,33,43,56,85,114,148,192,247,255,
+255,249,253,252,253,255,250,253,242,233,219,189,205,211,190,173,180,151,116,70,37,30,22,30,58,112,126,130,204,242,249,241,234,250,242,217,206,228,220,190,183,183,201,169,198,196,186,192,
+177,136,116,102,88,76,72,83,150,199,227,224,191,144,100,77,47,33,29,24,27,34,41,45,54,38,22,19,14,14,15,16,17,17,20,23,28,31,34,41,50,49,33,27,24,23,22,19,
+12,10,6,10,23,33,51,107,147,186,203,219,221,252,255,255,255,255,255,255,255,255,255,255,199,125,105,88,111,193,227,204,175,171,205,192,158,129,106,151,204,219,220,235,239,238,240,236,
+243,233,207,198,187,173,114,92,80,65,62,50,33,24,29,24,14,12,14,17,16,15,21,26,28,30,34,35,38,42,41,38,35,33,33,35,36,36,37,37,38,36,37,37,38,37,37,37,
+38,41,42,48,54,58,82,126,179,198,220,236,252,255,255,255,255,255,255,255,255,255,255,218,115,95,69,50,51,54,88,97,144,178,183,146,80,83,69,37,19,10,5,7,15,26,45,44,
+28,26,23,20,27,26,28,44,57,76,102,133,171,221,255,255,255,255,255,255,253,255,255,255,255,255,254,247,253,255,232,206,199,171,132,82,51,47,40,42,54,87,137,142,167,210,240,234,
+247,252,212,196,218,236,247,232,221,228,229,177,190,182,170,185,172,126,97,80,68,68,66,94,190,204,240,253,234,201,169,129,83,50,37,33,35,40,40,38,42,30,17,19,12,8,12,13,
+14,15,20,22,23,27,30,37,42,41,33,27,26,23,22,19,15,14,7,5,10,19,36,65,85,119,143,189,243,255,255,255,255,255,255,255,255,255,255,255,185,107,104,100,113,190,249,245,
+218,200,218,218,175,105,99,151,225,252,255,255,252,250,247,243,225,211,213,205,201,208,182,133,109,82,57,34,28,33,36,20,7,8,10,10,13,16,20,28,30,35,35,36,42,45,44,43,
+40,35,35,34,33,35,33,35,35,35,35,36,36,36,37,37,37,35,41,47,55,56,65,82,113,139,177,234,255,255,255,255,255,255,255,255,255,255,255,206,99,78,76,78,71,63,72,94,
+102,127,139,115,104,104,72,34,21,17,10,5,10,16,23,22,17,15,13,19,35,44,48,63,80,104,128,160,189,238,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,239,
+217,186,161,120,84,58,57,76,82,112,157,169,182,207,241,252,255,238,201,201,221,245,250,248,249,255,240,208,203,196,182,178,161,123,92,73,66,66,69,109,196,219,255,255,250,229,199,156,
+90,54,37,36,38,40,36,33,29,26,19,21,21,16,13,13,15,16,17,20,22,23,29,34,43,37,29,31,29,24,22,22,21,16,8,6,6,9,16,33,47,56,83,148,221,255,255,255,
+255,255,255,255,255,255,255,255,232,136,114,127,170,214,250,249,183,190,210,208,205,134,116,178,235,255,255,255,255,255,250,235,233,183,198,218,175,201,200,126,111,82,37,22,26,35,26,8,
+0,1,3,6,8,15,22,29,35,38,38,42,45,44,47,45,40,36,36,34,33,34,31,33,33,33,33,33,34,34,35,37,35,31,33,35,38,38,47,56,63,76,135,204,254,255,255,255,
+255,255,255,255,255,255,255,245,125,70,77,95,84,68,62,83,88,75,84,95,94,73,56,30,22,20,10,6,6,8,9,8,8,6,5,21,47,58,78,99,116,140,163,194,222,253,255,255,
+255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,206,173,169,143,98,45,68,80,80,105,133,144,169,187,245,255,239,190,190,218,236,239,248,246,245,228,227,217,204,186,165,167,
+148,120,101,84,73,64,62,87,106,136,238,255,255,245,207,150,69,40,31,33,33,34,31,29,26,24,22,20,20,17,13,14,16,16,16,20,26,26,31,35,54,63,49,35,34,28,26,20,
+20,16,12,8,6,8,10,20,26,40,58,98,158,200,250,255,255,255,255,255,255,255,255,250,219,198,176,175,212,246,252,246,192,191,191,176,163,128,144,218,239,242,255,255,255,255,254,224,
+198,156,201,231,173,192,163,90,87,50,19,15,20,21,7,1,0,0,0,1,6,15,23,30,35,38,40,44,45,45,45,45,40,38,35,36,31,31,30,30,29,31,31,31,31,29,27,29,
+28,27,21,21,30,33,40,45,50,68,97,154,197,242,255,255,255,255,255,255,255,255,252,182,175,156,123,104,77,72,66,79,97,108,104,88,78,58,41,23,16,15,12,7,3,2,1,0,
+1,2,7,21,41,57,108,147,169,192,212,235,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,247,179,119,116,115,107,72,70,58,52,73,119,112,126,153,200,197,
+180,171,169,198,247,241,241,234,219,171,146,157,168,155,150,167,150,120,95,87,76,65,59,59,59,82,135,172,242,243,161,97,50,36,30,30,31,31,33,28,26,23,22,17,15,13,13,14,
+15,19,23,26,29,36,48,50,64,78,57,35,37,34,24,24,23,22,16,12,10,14,14,24,31,38,48,77,111,151,218,249,255,255,255,255,255,255,255,253,241,206,206,234,234,248,250,253,
+224,184,177,170,150,125,178,241,229,221,253,255,255,255,255,245,201,175,220,236,192,204,140,55,37,22,19,17,17,14,7,1,0,0,0,2,7,15,21,28,35,40,41,43,44,44,43,41,
+36,37,34,34,30,29,29,28,27,28,28,30,30,27,23,23,23,22,20,19,27,37,45,55,52,66,95,130,156,208,247,255,255,255,255,255,255,255,254,218,173,169,158,109,73,78,65,54,
+75,118,102,72,75,56,22,15,15,12,8,6,1,0,2,1,2,5,12,21,31,47,91,162,224,238,254,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,248,
+217,142,114,118,118,118,68,49,66,77,100,100,114,140,153,164,215,245,240,247,255,252,235,212,153,112,83,92,120,133,148,160,149,112,91,91,79,68,59,57,57,61,84,108,176,186,106,64,
+44,31,28,30,28,29,29,28,27,26,22,14,10,8,10,13,17,16,24,34,36,41,55,64,71,71,48,35,40,44,35,31,26,22,16,12,9,12,14,23,28,29,40,68,102,156,215,236,
+250,255,255,255,255,255,255,255,255,238,205,234,241,248,250,253,249,231,208,184,130,154,211,240,233,245,254,255,255,255,255,255,246,252,249,247,239,205,99,48,31,26,26,22,21,13,8,3,
+0,0,0,2,8,15,20,28,35,41,42,42,43,44,41,37,36,37,34,31,29,29,29,29,27,26,27,27,26,26,23,17,16,19,16,14,23,36,54,55,43,61,86,125,160,210,236,249,
+255,255,255,255,255,254,255,255,233,190,120,76,59,78,62,50,72,93,82,66,59,47,22,26,24,22,14,8,2,2,8,8,6,10,20,28,35,49,78,144,169,198,255,252,218,220,255,255,
+255,255,255,255,255,255,255,255,255,254,255,255,255,231,214,245,231,180,125,106,85,95,59,47,51,57,78,86,97,129,144,164,220,255,249,229,220,196,176,155,101,86,76,66,92,122,144,137,
+107,88,86,88,82,69,61,55,55,58,68,86,109,93,84,63,42,30,26,24,22,23,21,24,26,23,15,9,7,6,6,10,19,19,27,49,55,48,52,71,71,57,43,36,42,50,54,43,
+23,16,12,7,5,6,9,17,21,16,33,63,83,137,228,215,235,255,255,255,255,255,255,255,255,242,189,245,249,240,241,245,235,247,232,179,151,177,210,225,238,254,255,255,255,255,255,254,
+253,254,252,249,254,168,73,58,40,36,30,24,22,17,9,3,0,0,0,3,12,16,22,31,37,42,43,42,43,44,42,40,36,35,34,33,30,29,28,28,27,23,22,23,22,20,17,14,
+14,13,9,13,19,36,59,54,31,49,79,104,141,217,226,228,255,255,255,255,254,252,255,255,255,155,87,44,68,97,63,69,107,99,64,61,73,50,34,41,28,27,21,14,9,17,16,13,
+15,22,28,41,49,59,98,132,116,133,173,194,183,220,255,255,255,255,255,255,255,255,255,255,255,254,254,226,206,170,130,189,133,136,119,108,82,62,54,42,28,30,50,75,97,128,158,165,
+210,243,192,163,153,114,114,91,70,71,52,64,82,99,144,126,84,80,80,84,82,70,61,54,51,54,59,70,75,70,65,51,37,28,19,16,17,17,16,19,24,20,13,7,3,3,1,7,
+21,41,52,72,97,93,64,71,59,48,42,36,43,64,77,56,30,21,15,12,9,6,7,12,13,13,27,62,63,104,191,217,229,255,255,255,255,255,255,255,255,218,198,253,250,239,225,213,
+211,226,233,178,168,190,203,231,243,255,255,255,255,255,255,255,255,253,252,252,236,168,111,73,47,43,33,24,22,17,9,1,1,0,2,7,16,21,28,33,40,43,43,42,43,42,41,40,
+37,37,33,29,28,26,24,26,24,21,20,20,16,12,9,8,9,7,7,6,13,36,52,47,33,49,83,92,115,179,218,221,253,255,254,255,255,255,255,255,232,109,55,47,83,123,134,148,
+165,133,90,73,66,35,33,43,33,28,29,24,35,42,31,24,26,36,47,54,57,59,88,120,113,108,115,182,205,234,255,255,255,255,255,255,255,255,255,255,255,255,253,213,183,178,140,115,
+139,130,139,115,83,48,37,26,20,30,47,65,80,87,128,173,185,184,153,137,132,135,139,123,101,85,58,70,71,97,134,120,95,86,94,97,88,73,61,54,52,52,58,66,64,56,44,35,
+29,22,16,15,17,17,16,19,20,17,13,7,3,3,5,13,23,43,64,68,95,112,77,59,45,41,38,38,54,82,84,62,49,52,41,33,23,14,8,8,12,15,24,48,52,84,151,208,
+231,248,249,252,255,255,255,255,255,235,212,253,208,189,211,184,212,228,231,194,169,186,233,250,252,255,255,255,255,255,255,255,255,253,254,254,246,182,106,82,63,58,38,29,27,20,13,6,
+2,5,7,9,20,27,33,37,40,43,41,38,41,43,42,36,34,33,29,26,24,21,22,22,22,20,15,13,8,5,5,3,3,3,1,1,9,26,40,42,41,54,78,91,112,157,203,220,
+236,238,236,255,255,255,255,255,254,155,42,54,68,95,140,169,169,147,127,107,68,45,31,38,34,31,36,45,73,66,47,37,37,50,80,78,62,62,88,116,122,108,126,169,198,205,241,252,
+255,255,255,255,255,255,255,255,253,253,255,236,192,169,156,157,177,172,169,141,97,57,40,16,14,26,45,55,34,30,70,114,118,109,100,114,129,142,140,151,127,77,61,70,75,114,134,164,
+144,122,114,102,85,72,64,57,52,55,57,56,55,48,37,28,22,19,17,17,16,17,17,15,15,16,14,10,8,7,8,17,30,40,52,65,73,86,75,50,42,42,44,55,73,88,95,108,
+125,115,82,56,42,31,22,14,15,21,24,40,65,109,140,183,219,238,254,255,255,255,255,255,255,246,245,255,203,164,189,205,243,247,238,232,224,204,241,255,255,255,255,255,255,255,255,255,
+254,255,255,255,250,183,129,116,101,55,35,38,35,22,17,14,8,7,10,14,23,31,40,42,44,44,41,38,37,38,38,34,31,26,22,20,16,17,21,21,19,13,10,6,0,0,0,0,
+0,0,0,0,7,19,27,37,47,59,79,106,143,165,193,219,221,234,239,253,255,255,255,255,254,186,93,69,68,76,100,132,126,101,83,82,87,84,79,70,69,92,84,85,87,61,54,51,
+50,69,97,95,97,99,119,143,144,125,161,194,200,194,215,248,255,255,255,255,255,255,255,255,246,247,242,217,207,211,208,198,180,191,175,155,118,79,52,28,20,22,33,20,16,26,47,55,
+42,38,44,84,115,118,128,120,88,54,56,70,95,160,172,190,180,149,115,101,84,73,65,57,52,55,55,52,49,41,35,29,23,20,16,16,17,16,15,15,13,12,13,13,10,7,7,13,
+27,30,40,62,71,66,62,55,51,48,57,75,83,106,163,201,206,161,127,105,65,51,43,33,26,30,33,57,105,136,161,186,199,246,255,255,255,255,255,255,255,255,255,254,213,167,228,252,
+253,246,248,253,250,239,250,255,255,255,255,255,255,255,255,255,254,254,254,253,236,186,175,170,79,37,38,42,34,24,21,17,14,14,16,20,28,37,43,47,50,47,44,41,35,36,36,33,
+29,23,20,16,10,12,14,16,14,10,7,3,0,0,0,0,0,0,0,2,9,23,35,45,56,70,99,147,171,184,207,221,218,218,226,236,241,241,252,254,235,192,161,115,70,51,62,83,
+80,61,45,48,63,94,125,112,128,162,126,97,90,76,69,75,76,76,82,120,150,149,150,171,172,169,198,233,238,238,234,253,255,255,255,255,255,255,255,253,246,241,235,219,233,235,224,199,
+184,183,168,134,95,69,65,49,17,13,10,0,7,16,16,22,14,12,30,62,86,95,105,82,54,37,45,65,102,183,194,197,191,155,136,128,105,84,71,62,55,52,52,51,48,41,35,31,
+27,21,19,20,20,16,15,14,12,10,9,8,6,0,1,10,19,19,26,44,62,61,52,47,61,59,58,75,73,94,164,171,168,146,142,184,165,137,91,55,47,49,57,70,95,130,165,211,
+234,250,255,255,255,246,242,246,254,250,231,222,197,221,255,252,224,239,254,253,254,255,255,255,255,255,255,255,255,255,255,255,255,253,253,247,242,173,128,136,62,42,43,41,30,26,23,20,
+17,19,19,23,31,42,48,51,52,51,47,44,42,37,36,34,31,26,20,16,9,9,9,12,13,13,8,1,0,0,0,0,0,0,5,13,27,41,49,57,68,79,111,149,171,196,222,217,
+200,193,207,215,213,219,240,242,247,208,155,142,80,31,38,57,58,43,37,44,57,76,105,132,155,143,162,157,133,106,95,87,90,97,119,151,205,214,194,186,212,236,246,255,255,253,239,248,
+255,255,255,255,255,255,255,252,250,248,246,245,242,222,204,187,203,198,173,153,102,69,72,56,23,15,7,0,0,0,1,16,12,5,22,38,57,77,77,52,38,26,33,54,121,185,196,183,
+176,171,158,167,158,127,106,82,66,63,58,59,56,45,38,35,28,22,21,21,21,20,19,16,15,14,9,8,5,2,1,10,16,19,27,41,51,58,55,45,54,78,93,77,66,66,83,100,
+139,178,167,163,224,247,198,108,100,88,94,91,106,120,153,203,236,253,255,255,235,219,222,234,248,236,192,182,182,243,255,236,232,250,255,255,255,255,255,255,255,255,255,255,255,255,254,254,
+253,253,255,240,190,109,64,56,57,48,40,40,33,30,24,23,24,24,27,30,37,47,55,56,54,50,49,49,47,43,37,36,33,27,21,15,12,9,8,10,12,10,2,0,0,0,0,0,
+0,6,16,26,38,42,52,68,83,107,139,171,190,201,204,191,180,180,186,175,186,196,212,226,238,172,121,129,79,30,40,57,64,58,52,51,64,84,108,151,170,153,187,205,185,163,143,106,
+105,130,196,229,245,246,236,234,250,254,255,255,255,255,253,254,239,238,252,255,255,255,255,254,253,253,249,248,234,200,180,184,214,197,179,183,113,64,71,48,21,14,10,2,0,0,2,15,
+16,20,29,36,55,70,64,41,33,26,27,61,134,182,198,194,194,193,176,201,218,192,153,120,90,76,72,78,66,52,45,37,31,24,22,24,23,22,21,19,15,15,14,9,6,5,5,6,
+12,21,37,62,77,77,63,55,54,79,147,99,70,61,79,116,171,189,194,222,227,233,255,210,204,142,111,126,151,116,139,171,213,226,206,220,191,179,199,192,213,236,210,177,186,224,240,233,
+241,252,255,255,255,255,255,255,255,255,255,255,255,255,255,254,253,253,219,134,80,56,43,43,48,55,55,44,38,36,33,31,29,29,30,38,44,51,58,57,56,49,50,50,48,45,42,37,
+33,29,23,17,14,12,12,13,10,6,0,0,0,0,0,0,0,8,16,16,26,37,54,70,100,147,191,183,171,196,194,164,153,154,154,125,151,189,199,225,241,191,135,104,64,51,63,82,
+88,73,68,68,84,98,121,153,157,173,228,234,206,218,199,176,177,185,242,255,254,255,254,255,255,255,255,255,255,255,254,238,201,203,234,248,255,255,254,254,254,253,249,248,219,179,194,210,
+213,183,167,189,155,84,57,44,28,17,13,8,3,17,37,37,37,47,48,49,59,58,52,36,24,24,33,77,147,212,232,228,221,220,214,229,232,210,165,151,130,107,106,106,76,58,50,42,
+36,28,27,28,27,24,24,22,19,17,14,12,7,3,3,7,10,19,30,50,75,82,52,47,43,42,172,144,76,87,139,154,218,197,221,255,254,205,215,231,234,163,142,151,156,126,177,199,
+187,158,135,135,125,155,186,163,199,226,201,187,176,185,203,205,222,255,255,245,254,255,255,255,255,255,255,255,255,255,255,254,255,241,139,78,64,58,47,41,45,65,58,50,44,42,45,47,
+42,37,40,50,54,56,61,59,55,45,43,45,45,43,42,41,36,33,26,22,20,17,19,17,10,0,0,0,0,0,0,0,0,5,8,10,20,29,43,68,102,141,170,140,139,167,172,135,
+139,155,155,129,169,212,207,217,234,227,172,115,88,85,85,100,94,77,73,79,97,113,135,151,149,173,219,232,227,233,232,228,227,221,248,254,255,255,255,254,255,255,254,254,254,254,245,231,
+229,238,245,249,255,255,254,254,254,254,253,245,212,203,225,224,221,192,170,204,186,130,94,64,42,17,13,19,23,31,62,72,56,63,64,65,58,34,33,28,26,29,57,115,162,210,215,214,
+200,194,211,227,215,187,162,173,184,163,153,127,90,73,62,50,43,36,31,31,31,31,29,26,23,22,15,12,9,7,5,8,13,16,20,30,62,76,49,41,34,23,92,175,139,164,231,196,
+167,167,206,250,255,200,194,201,240,199,183,165,142,158,219,219,184,151,150,126,119,160,182,164,183,192,171,162,163,183,204,189,179,210,186,179,253,255,255,255,255,255,255,255,255,255,255,255,
+255,243,157,91,80,77,55,41,44,55,45,51,50,51,47,45,65,61,62,66,58,64,68,61,54,44,41,41,44,45,42,40,35,31,28,24,22,21,20,16,8,0,0,0,0,0,0,0,
+0,0,6,13,19,26,36,59,105,143,140,130,177,157,136,147,157,164,173,180,207,222,214,204,208,210,178,133,116,97,85,91,80,99,107,98,123,143,162,161,162,194,213,227,238,240,250,248,
+239,241,250,253,253,254,253,252,253,254,248,250,250,249,234,242,255,255,255,255,255,255,255,255,255,255,254,254,241,228,227,232,226,218,204,207,208,186,132,76,61,38,34,51,55,37,69,88,
+73,73,70,66,58,42,34,24,30,38,69,118,153,172,190,183,189,189,192,206,194,172,165,189,193,186,164,127,108,98,78,59,48,42,37,37,38,38,33,30,26,24,21,16,15,13,12,14,
+14,15,20,23,44,56,35,30,29,36,88,157,189,220,249,236,163,175,203,232,247,255,254,211,191,182,191,190,165,193,239,220,189,156,134,115,114,143,149,144,160,170,155,153,167,184,194,196,
+146,132,128,164,214,245,250,254,255,255,255,255,255,255,255,255,250,211,147,109,101,88,64,54,56,54,45,42,50,58,58,55,92,94,93,73,54,69,76,59,44,47,42,38,41,42,38,37,
+35,34,30,23,20,19,17,13,5,0,0,0,0,0,0,0,0,0,3,13,22,29,36,55,113,158,154,162,169,128,160,186,186,171,187,210,211,208,214,200,193,150,120,106,92,80,80,85,
+119,150,147,142,134,163,186,205,208,219,218,226,241,248,254,255,254,250,253,252,248,241,233,240,241,239,243,246,246,240,229,247,255,255,253,255,255,255,255,255,255,255,255,255,253,247,240,233,
+231,226,218,191,185,168,120,69,66,62,66,77,69,59,94,92,71,70,64,63,59,49,41,28,27,40,55,85,129,144,167,194,206,208,213,210,199,193,200,214,207,201,170,127,114,101,75,62,
+55,45,43,43,44,44,42,38,35,35,30,27,26,22,19,20,17,20,20,19,24,28,17,12,19,44,84,93,97,148,190,222,146,160,186,163,212,254,229,148,126,127,183,214,198,184,160,146,
+141,113,82,83,94,132,155,125,167,198,146,160,179,196,185,196,137,146,150,175,173,192,219,245,255,255,255,255,255,255,255,255,198,146,147,148,143,119,88,80,70,88,88,59,61,65,66,70,
+84,123,114,62,72,84,70,57,43,43,40,37,37,36,38,40,36,35,30,22,19,16,13,8,3,1,0,0,0,0,0,0,0,0,3,13,23,31,34,48,87,144,182,199,164,165,187,198,
+183,168,198,206,185,192,212,211,183,123,101,83,61,70,84,100,126,129,144,139,127,155,207,231,238,234,226,227,239,250,255,255,255,254,252,249,246,233,219,212,185,179,196,194,219,239,238,250,
+254,254,252,254,254,255,255,254,255,255,255,255,255,254,250,238,242,233,215,153,149,153,132,92,65,54,63,83,87,77,87,80,52,51,50,57,50,38,35,31,35,40,51,66,105,130,154,217,
+214,193,191,189,199,212,215,220,218,190,139,135,127,92,75,64,55,50,48,49,51,51,52,51,48,45,41,38,36,33,26,24,23,22,20,16,13,9,6,7,14,20,33,57,69,84,107,149,
+113,134,169,129,157,220,222,155,123,115,147,182,169,171,135,119,102,77,64,71,78,109,134,122,185,215,142,142,142,143,140,113,123,142,135,158,149,167,233,254,255,255,255,255,255,255,255,255,
+184,130,160,185,172,147,111,95,91,135,142,106,73,73,77,72,95,134,143,93,87,72,58,55,44,40,35,40,40,34,36,41,35,33,27,20,16,13,9,5,3,0,0,0,0,0,0,0,
+0,0,2,13,21,28,30,36,57,76,130,224,227,196,187,197,175,151,196,168,120,143,180,180,163,118,101,76,58,62,91,126,132,153,182,180,191,208,241,250,252,246,235,231,240,252,253,254,
+254,250,249,248,240,241,228,193,148,137,151,151,161,213,236,236,242,241,246,252,254,253,254,253,252,254,254,254,254,255,254,253,242,236,225,173,161,155,130,101,61,65,99,99,72,79,66,62,
+31,30,40,44,41,34,28,26,28,28,40,55,86,107,127,175,184,144,123,135,162,201,206,192,211,189,149,161,142,105,86,68,58,54,54,54,56,56,57,58,57,54,48,43,41,36,30,28,
+24,21,16,10,6,1,0,5,10,15,21,44,65,73,100,122,108,121,115,104,127,156,179,156,123,123,137,147,154,171,147,102,83,75,68,73,80,99,102,101,168,227,151,149,135,100,102,77,
+93,100,104,122,132,201,255,255,255,255,255,255,255,255,255,255,224,155,171,184,169,162,120,101,120,141,153,116,73,73,78,79,113,147,163,126,75,71,61,57,51,44,43,42,38,34,38,37,
+34,27,23,20,17,17,10,5,2,0,0,0,0,0,0,0,0,0,6,14,21,28,29,33,48,90,136,194,201,187,200,198,161,150,169,114,85,99,129,156,161,122,106,105,104,109,135,168,
+182,194,201,212,235,253,255,255,255,253,246,246,243,247,252,255,246,235,243,243,228,210,162,153,132,101,106,119,158,207,226,173,189,179,192,228,249,252,252,252,248,248,252,250,253,255,255,252,
+243,231,229,212,171,143,120,114,116,120,120,94,31,62,91,76,38,24,35,36,36,29,22,13,9,12,23,37,62,95,121,122,121,120,106,134,163,179,198,194,210,185,165,165,121,107,85,71,
+65,62,57,57,56,57,59,61,61,55,49,42,40,35,29,26,23,17,14,7,1,0,0,3,8,12,19,30,47,73,92,118,119,108,85,87,95,109,127,128,121,136,137,144,171,155,111,88,
+85,75,71,79,87,105,132,133,167,211,158,172,140,91,77,73,76,66,83,123,160,222,255,255,255,255,255,255,255,255,255,255,245,168,170,185,175,169,126,111,128,118,135,101,75,72,83,79,
+106,130,133,118,78,72,62,62,52,45,43,40,41,37,41,34,30,28,24,22,29,29,10,3,0,0,0,0,0,0,0,0,1,3,12,21,28,33,34,36,56,105,148,177,191,215,224,201,
+187,193,148,80,70,95,168,189,167,146,136,153,158,169,184,199,203,218,232,240,250,255,255,255,255,254,246,221,204,222,243,252,242,229,224,210,193,184,156,120,109,88,87,141,197,193,171,146,
+192,170,199,225,240,249,249,249,247,245,229,221,243,250,252,250,239,219,191,149,120,121,136,141,150,164,106,47,35,58,87,77,57,44,40,35,33,28,20,8,5,8,19,34,61,104,132,115,
+105,104,122,158,183,192,199,205,211,198,193,179,127,102,90,78,73,72,61,56,56,59,62,62,59,54,45,38,34,28,27,22,17,14,12,6,3,0,0,0,2,9,16,27,41,63,90,101,
+91,75,72,82,92,101,111,111,105,109,127,156,178,144,105,93,97,95,94,102,120,130,169,187,228,222,213,190,118,80,64,63,62,61,87,130,185,245,255,255,255,255,255,255,255,254,245,253,
+222,175,171,192,194,183,128,114,109,100,125,101,62,69,78,86,94,87,104,132,109,72,65,55,42,35,43,57,61,48,41,31,27,31,29,27,31,27,9,2,0,0,0,0,0,0,0,3,
+7,13,23,28,34,37,41,41,64,108,125,141,193,236,205,173,208,210,165,94,80,115,190,208,197,190,178,180,186,194,213,225,234,246,252,254,255,255,255,255,255,249,222,175,190,232,242,236,
+232,227,198,177,155,161,189,165,119,85,79,147,172,189,182,169,235,217,200,220,242,254,253,250,248,213,173,177,224,242,242,246,234,221,184,111,107,153,164,125,120,154,146,92,79,83,90,62,
+49,31,31,33,31,26,17,7,1,7,19,38,71,115,146,136,126,113,121,141,157,182,204,211,210,206,206,190,136,95,97,85,77,71,62,57,57,61,63,61,57,51,45,36,31,27,24,21,
+14,9,9,8,6,1,0,0,1,8,19,28,38,49,68,72,68,69,72,79,91,100,99,95,92,95,125,148,137,116,105,102,142,134,120,162,198,165,180,240,255,241,208,190,129,75,64,59,
+57,64,98,126,200,255,254,255,255,255,255,255,255,254,249,246,212,189,200,213,197,158,125,101,93,91,82,73,71,80,73,83,101,119,128,136,108,50,59,57,40,31,45,65,59,40,30,27,
+22,28,31,23,19,15,8,2,0,0,0,0,1,6,8,13,17,26,33,35,42,44,48,48,65,94,115,143,187,227,196,184,199,192,162,123,139,150,175,186,190,191,196,197,200,208,225,238,
+248,254,255,255,255,255,255,255,254,246,203,173,206,227,235,228,233,233,206,179,133,72,111,155,114,73,57,83,120,207,255,254,246,212,186,227,247,255,255,255,242,182,139,158,224,245,245,241,
+242,240,203,151,175,190,167,133,162,148,114,104,116,98,64,33,17,15,22,26,27,19,13,6,2,7,23,51,77,106,144,135,142,144,153,143,151,175,205,201,204,203,200,182,143,121,111,94,
+85,73,65,63,62,63,64,64,57,51,45,35,31,28,26,22,14,9,8,9,8,3,0,0,0,8,20,26,36,48,58,65,63,64,70,78,84,97,94,86,85,91,112,136,112,97,111,105,
+155,137,122,167,227,226,220,247,255,246,178,143,119,79,65,66,72,77,94,118,201,255,247,247,245,255,255,254,246,249,253,252,225,218,215,210,157,125,107,98,102,82,62,76,77,72,80,104,
+123,143,165,114,62,49,62,61,52,55,54,54,45,28,26,21,14,13,14,12,10,12,7,1,0,0,1,2,9,17,23,26,29,31,38,48,58,58,56,54,62,85,113,155,198,218,183,190,
+193,167,126,129,139,144,146,148,176,208,224,217,212,224,238,249,255,255,255,255,255,254,252,248,245,242,229,224,236,239,224,224,232,212,154,106,92,47,58,78,63,47,42,47,83,187,255,255,
+253,247,250,255,255,255,255,253,252,217,185,191,229,247,249,246
+};
+
+
+unsigned char stringymap[TEXSIZE * TEXSIZE] = {
+79,86,98,116,137,155,173,189,207,226,243,251,247,231,201,157,106,64,37,19,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,7,27,49,70,112,175,212,224,233,236,231,225,215,207,209,215,221,232,242,248,251,251,252,251,251,248,246,246,246,246,246,246,246,246,246,246,246,246,246,246,247,248,248,249,240,
+229,227,227,235,249,250,235,225,228,235,238,243,247,248,246,240,225,198,164,135,109,81,54,39,37,39,45,54,64,70,72,73,80,86,93,103,112,117,118,118,118,118,119,116,106,91,78,69,
+57,43,30,17,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,4,15,32,49,57,59,59,59,59,58,56,59,67,76,85,93,102,118,145,174,200,222,238,245,246,239,220,186,143,103,62,31,13,5,1,0,0,0,0,3,34,83,117,121,105,
+85,71,63,53,46,41,41,41,41,41,45,54,64,69,70,71,114,133,157,179,200,217,231,240,243,242,230,201,159,121,98,87,86,87,84,76,62,46,32,18,8,2,0,0,0,0,0,0,
+0,0,0,0,0,4,11,18,23,27,34,39,40,39,38,39,47,64,97,140,183,209,219,227,215,184,164,139,113,94,79,68,65,78,99,121,146,170,189,198,202,207,208,207,202,204,211,213,
+212,212,212,212,212,212,212,212,212,212,212,213,213,212,213,200,182,169,153,142,138,137,140,159,188,200,202,187,158,173,203,218,227,238,242,234,228,223,205,162,119,94,82,80,78,76,76,75,
+71,66,63,57,52,50,49,48,47,46,46,48,53,62,69,77,83,85,82,74,60,45,32,20,11,7,4,3,2,2,3,3,3,3,1,2,3,6,13,19,24,27,32,37,39,39,40,41,
+42,42,40,38,31,18,7,1,0,0,0,0,0,1,3,8,15,26,43,60,77,87,88,85,84,84,84,85,87,98,115,122,120,118,118,119,120,124,130,142,158,178,196,214,233,247,250,245,
+232,205,167,131,96,59,29,13,4,0,0,0,10,25,40,54,67,74,80,84,85,85,85,85,85,85,85,83,81,83,91,102,205,223,237,244,244,239,228,211,190,159,113,64,28,14,14,22,
+34,48,62,76,86,91,91,85,75,63,51,42,35,35,40,42,42,38,30,30,40,55,69,78,82,84,86,84,83,91,110,137,177,212,238,243,229,204,184,152,108,74,61,54,51,54,59,70,
+84,104,124,131,118,94,77,68,63,61,61,59,61,72,89,93,90,90,90,90,90,90,90,90,90,90,90,94,100,105,108,111,117,118,105,74,42,18,6,6,21,35,41,28,7,17,36,46,
+54,74,95,93,93,111,156,204,206,179,122,74,45,38,46,51,52,53,52,50,47,46,45,41,34,25,15,7,4,9,19,34,54,70,83,97,109,118,122,124,123,117,111,104,99,100,103,104,
+105,101,96,97,103,111,122,126,123,117,109,102,98,95,92,90,90,87,85,86,84,76,65,53,47,46,46,47,51,56,63,75,90,109,129,135,120,89,60,42,33,30,28,28,31,46,66,71,
+67,66,65,65,64,63,63,63,65,71,81,99,127,163,198,224,241,249,250,242,227,199,161,128,99,77,60,49,44,44,45,45,41,40,48,56,63,69,70,70,71,74,77,84,102,132,162,185,
+251,245,233,218,201,183,164,146,130,111,86,63,48,41,40,41,43,47,53,62,75,90,109,134,149,148,142,131,121,119,123,125,125,115,96,87,88,87,79,68,60,55,52,68,105,159,210,233,
+236,210,167,124,101,102,119,129,126,117,111,111,116,117,114,110,110,115,120,121,110,91,74,59,42,27,13,3,0,0,2,4,4,4,4,4,4,4,4,4,4,4,4,6,8,12,18,30,
+51,79,107,120,113,91,65,41,21,6,0,0,0,0,0,0,0,0,0,0,0,0,18,54,78,125,182,193,177,139,102,105,110,112,114,114,114,114,113,111,105,96,83,82,82,84,106,133,
+156,166,171,178,193,207,220,233,240,242,240,238,236,236,237,237,237,236,233,232,233,234,233,231,224,213,194,177,166,157,145,126,103,84,71,68,76,94,116,129,129,120,113,112,115,117,112,109,
+108,113,119,119,108,90,73,58,42,27,13,4,0,0,2,5,6,7,11,17,24,29,32,33,40,58,79,90,102,127,164,196,216,233,244,249,252,253,249,242,232,220,207,199,195,195,194,186,
+166,152,152,153,154,160,164,165,167,172,182,198,220,240,249,252,174,152,127,111,100,93,89,91,99,108,116,119,118,115,114,114,114,114,114,114,115,119,126,136,140,135,126,117,113,109,105,104,
+104,95,75,58,44,30,16,16,37,67,110,175,220,229,198,150,102,55,37,42,60,87,114,129,126,108,95,92,92,88,75,60,47,37,35,40,51,64,75,84,87,83,73,57,37,20,7,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,34,66,96,114,120,115,102,81,58,42,29,19,13,11,11,11,14,22,33,43,53,65,77,94,121,151,181,166,111,100,
+94,89,88,88,88,88,88,93,100,110,144,202,222,223,236,248,252,253,253,253,253,253,252,250,246,243,242,241,241,240,239,239,239,238,235,234,232,230,229,230,234,239,243,244,241,239,235,223,
+204,183,167,156,150,150,154,156,146,125,111,110,109,105,94,81,69,61,58,62,72,83,93,100,103,100,91,78,63,52,48,56,74,86,99,122,142,154,159,162,171,194,214,219,222,228,235,239,
+239,241,245,248,251,253,255,255,255,255,255,254,254,253,253,253,248,243,243,244,244,246,247,249,250,252,253,253,248,234,215,195,34,23,16,14,13,13,13,17,24,34,50,67,80,87,88,88,
+88,87,87,87,87,86,81,71,58,47,37,33,31,30,26,24,23,18,7,0,4,27,66,123,182,216,229,213,162,102,50,29,34,51,73,86,89,89,89,95,97,92,86,85,84,82,78,71,
+61,47,31,19,14,15,21,34,50,69,86,97,99,91,74,51,32,20,15,13,13,13,13,15,22,32,38,41,41,40,35,28,18,8,3,8,21,43,67,89,108,120,120,115,106,95,86,83,
+82,85,90,100,110,116,120,120,116,107,93,78,63,46,31,23,18,15,14,14,14,14,14,17,23,36,123,239,255,252,240,223,207,197,196,194,187,176,165,149,133,122,116,114,112,112,110,109,
+109,106,100,97,95,94,95,99,109,129,154,171,181,193,208,226,239,247,249,249,245,237,226,215,203,190,185,185,184,183,182,178,173,167,161,158,157,160,164,170,180,190,197,199,199,199,199,204,
+217,224,229,238,243,244,244,244,246,244,238,232,230,222,204,188,180,175,172,172,175,182,191,201,213,222,229,232,233,231,229,225,213,206,207,210,211,211,209,207,204,199,187,169,143,106,71,50,
+0,0,0,0,0,0,0,0,0,0,0,3,8,12,13,13,13,15,17,17,18,22,27,32,38,42,42,42,41,40,39,38,37,40,53,75,121,182,220,230,208,168,128,84,52,46,56,74,
+87,92,86,77,76,81,90,94,85,77,74,74,74,74,75,78,85,88,85,76,63,49,42,43,49,61,78,97,116,133,141,134,114,91,77,73,72,72,73,75,81,86,87,88,88,88,87,84,
+78,66,50,35,22,20,23,27,38,56,76,90,101,111,115,116,116,116,113,107,96,86,74,60,45,33,20,11,4,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,197,160,114,78,
+57,49,50,49,45,41,42,43,46,47,48,47,46,46,46,46,45,40,30,21,17,17,17,18,21,29,42,58,74,92,115,143,166,184,195,204,217,233,243,248,250,249,249,250,250,249,250,250,
+251,252,252,250,249,246,244,244,246,247,249,251,253,254,255,253,247,240,233,221,208,200,196,194,191,177,158,148,144,134,121,110,102,93,80,67,57,56,58,62,71,88,108,123,134,141,145,143,
+136,131,129,123,113,103,92,80,68,57,43,28,15,4,0,0,0,0,0,0,0,0,0,0,3,4,4,4,8,10,11,13,19,31,38,40,45,55,67,78,84,87,86,84,83,82,88,105,
+129,170,212,233,243,230,194,150,108,84,77,79,87,95,100,98,92,86,82,84,89,89,77,52,28,17,15,15,15,15,15,20,29,43,61,75,85,88,87,87,87,85,85,87,92,101,112,119,
+113,94,78,74,74,75,75,73,66,55,47,44,44,46,50,60,70,81,87,87,81,78,72,53,34,27,28,33,40,49,55,57,56,52,43,30,20,12,8,3,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,3,4,11,41,57,38,20,15,18,29,37,39,43,53,66,76,82,85,86,86,86,86,86,86,86,85,82,75,72,71,71,70,71,72,75,80,87,93,99,99,
+98,99,105,115,129,143,151,155,165,172,174,174,174,173,175,175,178,182,188,194,198,201,201,200,199,196,192,193,193,190,188,182,165,146,128,113,101,96,94,91,82,66,53,47,46,46,49,58,
+67,78,85,84,78,76,70,52,32,26,28,32,40,48,54,55,55,51,42,30,20,12,7,2,0,0,0,0,0,0,0,0,1,4,8,11,12,13,24,41,53,57,58,61,67,71,72,74,
+79,86,87,88,88,87,80,67,52,43,43,56,74,98,146,202,230,236,215,181,149,112,86,81,84,89,88,83,82,88,93,95,96,93,87,75,59,39,19,4,0,0,0,0,0,0,0,0,
+0,0,7,15,26,40,49,53,53,48,42,40,42,44,47,48,47,41,33,30,28,24,20,15,8,3,1,0,0,0,2,5,11,22,37,53,66,74,78,67,54,50,49,48,47,46,46,45,
+44,31,7,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,8,11,12,13,24,41,53,57,57,58,64,69,71,73,79,85,87,87,87,86,80,68,55,47,44,43,44,44,44,44,
+45,51,63,72,75,76,77,82,89,91,90,84,81,88,93,94,95,91,85,74,58,41,28,22,26,33,34,34,34,34,34,35,35,36,41,47,57,67,75,77,78,72,66,64,65,66,64,60,
+55,45,36,31,27,23,19,14,7,2,0,0,0,0,2,5,11,22,37,53,65,74,78,67,54,49,48,47,46,45,45,45,44,31,7,0,0,0,0,0,0,0,0,0,0,0,0,0,
+34,40,45,48,48,52,68,86,88,86,85,83,80,76,76,74,68,56,46,42,37,29,18,16,31,57,102,156,192,214,230,209,157,105,53,26,17,13,22,47,65,69,67,63,59,59,59,60,
+57,47,32,16,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,29,42,45,45,43,44,46,48,49,49,48,48,47,47,44,39,30,16,3,0,0,0,0,0,0,0,
+0,0,0,3,8,13,16,17,18,25,31,35,37,41,42,42,42,27,4,0,0,0,0,0,0,0,0,0,0,1,9,19,34,40,45,48,48,52,68,86,88,86,85,83,79,76,76,74,
+68,56,47,43,41,33,21,10,3,0,0,0,0,0,0,0,0,2,7,12,15,15,24,48,65,69,67,63,59,59,59,60,57,47,31,16,6,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,7,28,41,44,43,41,42,45,46,47,48,47,47,47,46,43,38,30,16,3,0,0,0,0,0,0,0,0,0,0,3,8,13,16,17,18,25,31,35,37,41,42,42,
+42,27,4,0,0,0,0,0,0,0,0,0,0,1,9,18,51,44,38,34,33,35,41,42,35,29,28,24,18,14,13,12,8,2,5,18,36,53,76,124,179,212,228,219,192,160,115,55,
+13,0,0,0,0,0,5,28,38,34,33,30,23,14,9,6,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,33,44,43,42,42,42,38,35,33,33,
+33,33,33,35,39,44,50,51,39,18,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,5,6,6,6,3,0,0,0,0,0,0,0,0,0,0,8,28,44,52,
+51,44,38,34,34,35,41,42,35,29,28,25,20,16,15,15,11,5,1,1,3,4,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,5,28,38,34,33,30,23,14,9,6,
+4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,33,44,43,42,42,41,38,35,33,33,33,33,33,35,39,44,50,51,39,18,4,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,1,3,5,5,6,6,3,0,0,0,0,0,0,0,0,0,0,8,27,44,51,10,4,0,0,0,0,0,0,0,0,0,0,5,14,28,45,
+59,80,122,166,196,214,228,237,223,192,155,103,64,41,27,20,21,23,24,25,24,23,21,17,10,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,2,7,9,6,6,6,5,4,2,1,1,1,1,1,2,4,8,17,33,49,51,38,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,3,10,23,43,52,42,28,14,7,3,2,1,1,1,0,0,0,0,0,2,7,13,18,23,24,27,33,41,50,56,58,57,52,44,37,31,27,24,23,
+24,24,24,24,24,23,20,16,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,9,6,6,6,5,4,2,1,1,
+1,1,1,1,2,5,13,29,46,47,35,17,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,20,39,49,38,25,
+25,25,25,25,27,31,32,34,41,58,84,115,137,157,183,206,220,232,245,241,230,220,207,186,159,138,124,115,108,103,102,103,104,105,105,107,106,105,97,77,52,38,35,35,36,34,28,21,
+15,10,5,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,15,34,49,52,38,18,7,4,
+4,5,6,10,14,20,24,25,25,25,25,21,16,10,5,5,5,4,2,1,1,4,9,15,25,36,46,52,47,26,7,0,0,0,0,0,0,0,0,0,6,16,26,40,56,72,85,97,
+103,105,108,115,121,128,130,130,128,125,120,114,109,103,100,100,102,103,104,105,106,105,99,82,62,53,52,54,58,61,57,43,25,10,2,0,0,1,1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,22,27,40,57,70,71,58,41,33,32,32,33,33,36,39,44,46,47,47,47,47,45,40,35,31,30,
+30,30,28,28,28,30,33,39,46,56,66,72,68,50,33,25,182,181,181,181,184,190,193,197,205,220,233,244,247,247,244,236,229,219,201,177,163,154,149,144,142,143,143,144,145,145,147,148,
+150,151,152,153,154,155,154,149,137,128,125,125,125,124,115,105,95,82,68,58,56,57,56,47,40,39,39,38,37,37,38,38,37,33,25,13,3,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,1,12,33,52,58,59,64,68,70,70,73,78,83,83,83,84,84,83,81,75,61,45,41,41,39,34,32,34,39,46,50,51,47,37,25,11,1,0,0,
+0,0,0,2,9,18,29,45,67,90,109,125,139,146,151,153,153,151,149,148,146,143,140,138,137,136,137,137,137,139,140,142,145,147,149,153,159,168,182,194,200,201,204,208,210,213,211,203,
+185,153,125,95,72,61,54,45,39,38,38,38,37,37,38,38,37,33,25,13,3,0,0,0,0,0,0,0,0,0,0,0,5,21,40,68,115,155,177,182,181,183,188,194,199,197,194,195,
+196,197,197,200,202,205,206,206,206,206,206,205,202,197,194,192,192,191,189,189,190,192,195,197,200,199,198,193,187,182,182,181,201,204,208,214,220,224,227,230,231,227,218,206,197,189,178,164,
+154,146,137,128,119,111,103,100,101,107,112,117,122,127,130,131,134,136,137,140,144,151,155,156,156,156,155,155,155,157,157,158,157,154,149,144,142,143,142,137,130,126,126,126,126,128,130,131,
+130,126,115,91,59,43,41,41,41,41,43,46,40,26,13,7,5,5,5,5,5,5,5,5,4,4,5,19,49,86,113,125,125,117,102,90,82,71,63,61,61,61,62,66,70,61,47,43,
+43,46,47,49,48,44,38,31,22,11,3,0,0,0,0,0,7,18,32,50,73,95,113,130,145,154,157,158,158,155,151,146,141,136,132,125,116,106,98,93,94,98,103,108,113,118,122,125,
+128,131,134,137,143,153,163,173,181,186,186,183,180,179,179,187,201,217,224,225,219,204,177,152,136,126,122,121,121,124,127,128,127,123,113,88,56,40,38,38,41,42,51,70,67,54,63,93,
+129,169,201,219,230,220,206,201,201,200,200,203,212,222,229,232,232,229,224,220,217,214,212,211,211,211,212,213,214,212,210,209,209,209,211,211,211,210,206,204,202,201,199,199,199,198,199,198,
+97,118,138,153,162,166,168,169,169,163,152,138,123,107,91,78,68,62,58,51,41,32,25,23,24,29,34,40,47,53,56,57,58,60,61,63,69,87,104,103,92,85,83,83,84,88,96,106,
+117,129,139,143,144,146,149,145,135,130,129,130,134,143,151,156,159,160,160,153,130,116,114,114,114,114,117,120,111,89,73,63,58,58,58,58,58,58,58,58,58,58,60,71,84,93,90,81,
+70,54,37,26,17,11,7,6,6,6,6,9,12,11,7,6,6,8,11,12,12,8,3,0,0,0,0,0,0,7,16,34,65,94,117,134,148,155,158,159,159,155,147,137,123,107,92,78,
+68,62,56,49,39,31,24,22,22,26,31,37,43,49,53,54,57,58,60,62,68,86,103,102,90,83,82,81,83,87,95,104,117,131,145,160,175,197,222,228,222,209,196,187,172,164,168,172,
+173,173,173,167,146,132,136,155,185,187,205,231,226,214,224,236,238,227,207,185,148,113,95,90,90,90,92,101,111,116,113,103,94,81,67,58,52,48,44,44,44,44,44,46,48,47,45,43,
+43,45,47,48,48,45,42,40,39,38,37,37,39,45,56,68,139,149,154,156,156,152,146,135,117,93,72,54,38,25,16,10,6,4,4,3,3,3,3,4,4,4,5,6,8,9,9,9,
+10,10,11,12,14,22,34,39,38,36,36,35,35,37,42,47,53,65,75,80,81,85,88,79,65,56,52,49,52,61,73,87,99,104,102,97,91,88,88,88,87,87,89,89,82,74,77,82,
+85,85,85,85,85,85,85,85,85,85,84,78,62,42,23,11,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,14,35,65,89,115,
+141,154,158,159,158,154,147,137,118,94,73,55,38,25,17,11,7,5,4,3,1,0,0,0,0,0,0,1,3,4,4,4,5,4,5,5,7,13,21,20,14,10,10,10,10,12,16,22,
+30,41,53,58,59,65,83,95,105,135,154,167,185,196,200,205,210,212,211,210,207,219,237,247,248,232,243,235,218,207,193,168,143,120,101,90,84,81,80,81,81,81,80,74,59,39,20,8,
+3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,30,61,91,112,159,155,147,135,116,92,72,53,34,18,8,2,0,0,0,2,
+11,21,29,38,49,58,65,69,70,69,69,69,69,69,68,69,69,70,70,74,77,83,101,120,129,131,131,131,131,131,131,131,131,131,132,133,133,133,132,126,116,106,92,77,71,69,65,57,
+47,35,26,19,15,13,12,13,13,14,14,13,11,11,17,24,28,29,29,29,29,29,29,29,29,29,26,18,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,4,14,30,53,84,118,143,154,158,158,156,148,135,116,92,72,53,34,18,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,2,0,0,0,5,12,32,53,56,58,62,63,63,62,61,95,136,122,87,74,96,76,51,42,35,29,
+27,26,26,27,27,28,28,28,28,28,26,18,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,14,29,53,84,117,143,155,158,
+126,101,73,50,32,17,8,1,0,0,0,0,21,52,84,113,136,147,149,159,173,183,190,193,193,193,193,193,194,194,193,193,193,194,195,198,200,205,217,229,232,233,234,234,233,233,233,233,
+232,232,232,233,232,232,231,229,226,220,211,200,194,191,184,168,144,115,88,64,41,22,9,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,5,9,17,31,54,84,112,136,152,158,158,152,139,124,105,76,50,32,17,8,2,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,2,5,9,17,31,54,84,112,136,152,158,159,155,148,39,20,5,0,0,0,0,0,4,23,66,129,184,218,235,243,246,243,242,243,245,247,247,248,248,248,248,247,247,248,248,248,
+248,248,248,247,247,247,247,243,240,239,239,239,238,238,239,239,239,238,239,239,239,238,239,241,243,244,247,247,248,247,246,245,238,225,209,190,160,123,93,67,42,18,4,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,4,4,4,4,4,4,4,4,5,7,10,16,22,27,35,49,62,76,94,116,136,152,158,159,157,147,123,90,62,
+41,24,10,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,1,3,3,3,3,3,3,3,3,3,5,9,16,22,26,35,49,62,76,94,116,136,152,158,159,157,149,130,99,72,6,12,20,25,28,34,50,89,133,180,225,250,253,247,238,232,
+229,227,225,222,216,213,209,206,206,206,205,205,205,205,205,205,205,205,204,202,199,196,183,165,153,149,149,149,148,148,149,149,149,148,148,149,149,148,151,156,164,174,187,200,206,207,213,225,
+238,245,248,248,241,227,211,191,157,106,57,25,10,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,14,23,32,44,55,61,62,62,62,62,62,62,62,64,69,80,93,103,
+110,121,134,143,149,155,159,159,157,150,134,110,75,43,20,8,1,0,0,0,0,0,0,0,0,0,1,3,8,16,22,26,25,20,12,6,3,1,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,7,16,24,24,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,10,22,28,33,40,48,55,66,75,79,80,80,80,80,80,80,80,80,81,84,93,101,108,120,132,141,148,153,156,157,155,147,131,105,75,46,23,11,
+136,156,173,183,188,197,214,238,252,255,254,241,212,178,149,134,129,125,120,111,103,94,88,86,87,87,86,84,84,84,84,84,84,84,83,79,77,72,61,46,37,34,34,34,34,34,34,34,
+34,34,34,34,34,34,36,39,45,53,64,76,83,87,96,117,148,177,200,219,236,244,248,248,240,215,173,124,83,55,32,15,6,1,0,0,0,0,0,0,0,0,0,9,31,61,87,105,
+118,130,139,142,143,143,143,143,143,143,143,144,147,151,155,157,158,159,160,159,157,154,147,133,109,80,52,28,11,2,0,0,0,0,0,0,0,0,3,13,31,53,71,86,108,133,150,156,
+154,142,120,99,83,70,54,39,26,14,7,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,13,29,58,96,117,107,71,22,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,24,49,98,144,176,187,194,201,207,211,216,220,222,222,222,222,222,222,222,223,221,216,207,195,185,
+175,168,167,166,165,162,156,144,120,93,73,71,88,108,117,124,252,255,255,254,250,244,233,219,217,210,181,146,118,90,64,47,38,32,26,20,16,12,10,12,16,17,18,16,13,10,9,8,
+8,8,8,8,7,6,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,5,7,8,9,12,20,35,55,78,107,143,173,197,219,239,247,242,226,202,177,142,100,
+65,38,19,9,4,1,0,0,0,10,32,67,110,141,153,157,159,160,159,159,159,159,159,159,159,159,159,158,158,157,153,149,146,141,131,118,104,90,71,49,28,11,2,0,0,0,0,0,
+0,0,1,9,27,52,83,119,161,194,211,221,232,241,245,245,245,243,237,229,220,210,195,175,150,121,98,77,47,21,7,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,2,7,31,80,136,171,166,102,35,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,23,73,131,169,203,229,229,225,231,236,237,237,
+238,238,238,239,238,238,238,238,238,238,238,239,244,249,250,247,238,230,226,224,221,216,208,193,176,168,178,204,229,244,248,250,199,194,180,148,119,98,75,55,50,46,32,20,21,22,18,11,
+6,3,1,0,0,0,0,0,2,5,9,9,9,7,6,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,3,7,16,32,51,75,110,158,204,232,245,248,246,235,214,185,151,112,81,61,41,24,22,40,73,113,143,156,158,156,149,142,133,122,115,113,113,112,112,113,113,112,111,108,99,85,73,
+66,57,44,30,21,14,6,1,0,0,0,0,0,0,0,3,16,42,73,111,153,192,218,237,245,242,235,228,216,199,184,180,181,192,208,222,230,236,243,246,244,237,228,214,183,141,105,69,
+34,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,38,94,163,178,135,61,18,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,13,57,122,180,222,229,213,196,174,162,164,169,172,171,166,159,151,141,134,131,131,131,131,131,131,131,132,136,144,158,172,192,206,205,201,200,198,198,198,201,204,210,214,212,206,203,201,
+39,36,27,11,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,3,5,7,11,13,14,13,13,14,15,17,18,20,21,20,15,10,6,2,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,6,18,45,87,135,175,203,224,240,247,246,237,221,202,185,162,137,130,143,160,164,161,156,140,109,82,
+66,53,41,35,33,32,32,32,32,32,32,32,30,28,31,28,17,11,6,2,0,1,0,0,1,1,1,3,10,26,48,81,130,178,212,233,245,243,233,214,184,149,124,112,98,83,72,70,
+72,80,93,107,119,130,149,170,190,209,224,237,246,243,232,208,166,109,60,32,20,18,19,20,19,15,10,6,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,63,
+131,175,167,125,62,36,36,36,36,34,33,34,32,31,37,64,114,165,199,205,192,171,139,123,133,146,153,156,153,137,105,78,61,48,36,29,27,27,27,27,27,27,27,26,25,21,19,21,
+32,42,41,40,39,38,39,39,41,44,48,49,45,42,41,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,5,11,19,
+28,37,47,57,67,77,85,90,91,86,78,67,54,40,30,25,25,25,25,24,21,16,10,7,5,5,5,5,6,6,6,8,14,25,41,53,56,50,40,37,38,39,44,61,85,118,159,193,
+217,235,245,247,248,245,239,233,227,214,199,179,150,117,92,78,73,71,69,69,68,68,68,68,70,72,77,82,88,111,149,158,136,120,109,94,91,88,81,79,79,79,78,85,114,155,188,216,
+239,245,235,218,190,153,120,93,71,57,53,57,61,65,68,70,72,72,71,70,67,65,65,70,78,89,104,129,167,198,221,241,247,232,198,159,127,106,97,94,92,85,76,66,54,40,30,25,
+25,25,25,24,21,16,10,7,5,5,5,5,6,5,3,1,16,62,119,177,197,189,186,184,184,178,171,174,171,167,171,185,187,155,110,82,75,92,120,143,154,157,154,136,103,61,28,11,
+5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,2,2,4,9,18,30,44,61,78,95,110,122,132,139,143,144,141,136,124,114,109,108,108,108,106,102,92,80,70,64,64,64,67,72,75,78,85,
+98,117,133,142,143,139,134,129,127,114,91,70,58,62,80,105,138,176,209,227,239,248,253,255,253,249,238,219,203,194,192,192,192,192,193,193,194,193,193,195,198,203,210,216,221,234,247,249,
+245,241,237,229,227,225,219,217,218,218,217,221,234,245,244,232,204,164,122,91,66,49,44,48,56,67,78,89,98,107,116,120,122,121,118,112,104,95,85,74,63,54,47,45,55,71,98,143,
+196,234,249,247,236,217,198,183,170,160,151,143,135,124,114,108,108,108,108,106,102,92,80,70,64,64,64,67,72,75,78,85,96,111,127,142,162,169,165,163,161,150,132,120,122,122,115,100,
+80,67,73,96,124,147,156,158,153,132,95,56,25,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,6,12,21,31,38,51,68,77,79,79,80,83,88,97,107,118,129,139,148,157,162,165,163,161,159,159,158,157,156,
+157,157,157,157,156,155,151,147,144,144,144,146,149,151,152,155,157,159,159,159,159,160,160,160,159,158,154,144,134,128,128,131,141,156,174,186,198,213,225,229,232,238,244,245,245,245,244,245,
+245,245,245,246,246,246,247,248,249,251,252,253,253,252,251,251,251,248,245,237,236,235,229,227,228,228,228,229,222,189,147,111,72,43,29,28,34,44,57,71,87,101,117,132,146,155,157,156,
+155,156,159,160,154,143,127,112,97,82,67,53,41,33,33,46,82,133,182,218,241,251,251,245,235,222,204,189,178,168,161,157,156,157,157,157,156,154,151,147,144,144,144,146,149,151,152,155,
+157,158,159,158,156,156,156,156,154,153,149,140,130,125,123,124,129,138,148,155,159,158,150,128,90,50,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,27,45,52,61,75,92,104,122,147,166,175,191,210,217,218,218,218,218,220,
+222,223,224,225,226,227,227,226,225,218,206,198,193,185,174,163,154,147,144,144,147,152,156,157,159,159,159,159,158,158,157,155,152,148,139,126,118,114,117,131,145,151,156,158,160,159,159,159,
+159,159,158,156,150,136,120,111,117,142,174,196,209,218,227,236,243,246,248,248,248,249,250,250,248,243,235,228,225,222,223,215,182,149,130,113,109,107,99,97,96,97,96,97,86,55,28,17,
+14,18,25,36,49,63,80,99,117,137,154,157,133,98,70,53,47,51,65,92,129,159,164,150,131,112,93,76,60,48,41,37,40,51,68,94,130,170,201,226,242,249,248,241,230,215,195,175,
+160,152,148,147,148,151,154,156,158,158,159,158,158,158,157,155,152,148,139,126,118,114,117,131,145,151,156,158,159,159,159,159,160,159,158,153,144,121,85,46,18,3,0,0,0,0,0,0,
+0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,9,21,36,95,176,203,208,
+209,215,226,232,239,244,245,245,242,235,229,228,228,229,229,229,229,229,228,228,228,227,228,229,233,239,243,243,242,236,223,205,181,148,122,109,101,98,101,109,117,122,123,124,124,120,106,88,
+75,66,50,34,25,23,26,44,64,81,98,116,128,132,132,131,127,119,106,86,63,40,26,28,51,89,125,156,189,215,234,244,244,240,233,229,228,225,212,188,162,139,118,104,99,95,92,79,
+48,21,11,7,6,6,5,5,5,5,5,7,6,5,6,10,17,25,35,48,62,80,101,122,144,159,140,76,20,0,0,0,0,0,0,0,13,60,133,168,159,138,117,96,77,63,52,41,
+31,24,18,13,19,33,56,90,127,165,202,228,242,247,240,221,198,176,160,144,128,121,119,118,120,121,121,122,123,119,105,87,75,65,49,33,25,22,26,43,64,81,98,116,128,132,132,132,
+128,121,108,89,64,38,15,2,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,3,3,2,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,
+26,26,26,26,31,47,77,98,112,143,174,195,230,253,253,248,243,231,221,213,201,180,162,151,134,111,99,97,98,98,98,98,97,96,97,96,96,97,98,100,110,131,159,181,201,219,234,242,
+242,227,208,192,170,134,98,73,54,42,38,36,36,32,21,10,3,0,0,0,0,0,0,0,3,8,16,29,39,43,44,44,42,38,37,43,57,82,104,129,167,201,217,227,239,242,229,202,
+165,133,111,102,99,92,73,47,28,18,12,9,8,8,8,5,1,0,0,0,0,0,0,0,0,0,0,1,3,5,9,15,21,29,41,55,72,93,115,140,160,144,63,0,0,0,0,0,
+0,0,0,0,0,0,42,136,172,157,134,111,91,71,54,40,27,19,13,7,3,1,1,3,12,31,60,97,136,176,215,237,244,241,235,225,207,190,169,139,109,83,68,60,51,39,26,15,
+9,6,3,0,0,0,0,0,2,8,17,29,39,43,44,43,40,33,24,14,5,0,0,0,0,0,0,0,0,1,3,4,4,5,4,5,5,5,6,7,7,8,8,8,8,8,7,7,
+6,4,5,11,6,0,0,0,3,17,25,26,26,26,26,26,183,182,183,183,189,206,224,232,232,226,211,192,165,162,163,142,127,103,84,72,58,41,29,22,16,10,6,6,6,6,4,4,
+5,5,5,5,5,4,5,5,8,16,28,41,59,84,116,151,189,219,235,241,245,238,216,188,148,111,89,80,78,77,71,57,40,29,24,24,24,24,24,26,28,29,31,31,31,33,42,59,
+77,92,122,161,193,221,233,240,246,242,230,217,193,153,107,63,31,14,7,5,4,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,4,7,11,15,
+21,31,43,58,77,98,122,147,163,122,24,0,0,0,0,0,0,0,0,0,0,0,9,103,171,166,142,118,95,73,54,40,28,20,14,9,6,4,2,0,0,0,0,5,18,41,82,126,
+162,187,203,220,235,243,244,236,218,192,174,158,135,112,99,94,89,87,87,82,66,49,39,32,27,24,22,23,24,26,26,27,29,32,35,38,41,43,44,46,45,42,37,36,43,58,72,81,
+83,83,83,83,84,84,84,85,85,85,86,86,86,85,86,85,81,72,83,105,74,57,85,98,121,165,183,183,183,183,183,182,201,200,201,200,195,177,141,120,106,79,50,33,20,25,29,19,
+12,6,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,10,24,51,85,112,135,168,207,231,244,244,235,224,218,217,217,214,200,
+181,164,155,154,154,153,154,158,161,167,179,176,170,170,181,200,216,225,237,245,244,234,220,206,183,154,129,109,82,53,28,13,6,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,1,3,4,7,10,15,21,31,42,57,75,96,120,145,163,139,47,0,0,0,0,0,0,0,0,0,0,0,28,126,174,164,139,115,91,70,53,39,
+28,19,14,9,6,4,2,1,0,0,0,0,0,0,3,15,30,46,62,85,116,143,174,206,230,242,245,245,242,236,231,228,225,223,223,220,206,190,178,168,162,157,154,154,154,155,156,161,
+165,168,172,174,175,175,176,176,177,176,174,174,185,202,213,219,220,219,218,219,220,219,219,219,220,220,220,220,220,220,220,220,217,218,227,235,215,210,227,231,233,218,202,200,200,200,201,200,
+40,39,40,39,35,24,9,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,4,9,17,35,67,104,148,187,210,223,227,227,228,230,237,243,244,243,244,244,243,243,243,243,247,254,255,254,254,254,253,247,239,225,200,171,141,116,87,54,35,34,39,44,47,49,48,
+44,39,35,33,33,32,30,17,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,4,6,9,13,19,27,38,52,68,87,108,131,155,164,126,49,4,0,0,0,
+0,0,0,0,0,34,113,169,170,149,126,103,82,63,48,35,25,18,12,8,5,4,2,1,0,0,0,0,0,0,0,0,0,0,0,3,10,20,38,66,102,132,150,168,190,204,213,218,
+221,222,223,226,234,241,243,243,243,244,244,244,245,247,248,249,249,248,247,247,246,246,246,247,247,248,248,249,250,247,241,237,237,236,235,235,235,235,235,234,230,230,231,231,230,231,231,230,
+228,231,227,214,206,180,138,120,107,66,41,39,39,39,40,39,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,23,46,68,86,97,101,107,118,139,162,180,187,189,189,190,190,188,183,186,199,204,209,218,228,236,
+240,236,224,210,199,193,187,160,110,66,36,17,10,12,22,30,38,44,48,49,49,49,46,25,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,5,7,11,
+16,22,31,42,56,72,91,110,131,152,166,154,112,68,40,25,20,23,35,60,103,151,175,167,147,126,106,86,68,53,39,28,21,15,10,7,5,3,2,1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,6,13,22,35,56,75,89,100,107,111,116,124,141,160,173,180,185,189,190,190,190,189,184,180,177,175,175,177,180,187,190,185,178,178,179,178,168,148,133,128,
+131,136,138,139,140,140,138,128,116,116,116,116,116,116,114,113,109,97,81,65,55,35,15,8,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,3,4,5,10,19,29,38,45,50,53,58,
+65,73,81,86,90,99,109,114,110,104,100,90,81,81,95,118,150,180,198,207,213,218,218,223,228,219,192,152,97,49,22,7,1,4,9,11,12,13,12,5,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,1,3,4,6,8,12,17,22,31,42,54,69,85,102,119,136,153,166,167,160,152,149,151,161,170,173,165,149,132,115,98,81,65,52,40,29,21,
+15,11,8,6,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1,2,4,5,6,7,11,18,25,33,42,47,50,51,51,53,60,65,73,88,103,113,114,111,105,93,82,74,70,70,
+71,73,79,92,106,113,103,77,59,58,59,60,55,46,41,41,43,48,51,53,54,55,54,49,45,45,46,47,45,44,42,40,37,30,22,17,14,11,10,8,5,3,3,2,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+2,19,29,33,37,39,40,41,45,46,46,42,37,29,21,16,11,10,11,13,18,29,45,63,81,92,94,87,74,64,62,67,74,81,92,103,110,107,97,103,128,162,194,222,230,209,173,132,
+84,39,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,4,6,8,11,16,22,28,37,47,59,72,84,97,110,121,132,141,146,
+149,148,146,138,129,118,106,95,82,68,56,45,35,27,20,15,11,8,5,4,2,1,0,0,0,0,0,0,0,0,0,0,6,24,33,36,41,42,42,44,48,50,49,45,39,30,23,18,
+15,15,17,20,24,34,52,71,88,99,101,95,85,78,77,82,84,84,89,100,108,104,90,73,60,49,42,41,42,44,46,48,48,49,50,50,50,50,50,52,53,54,54,53,53,52,49,46,
+42,38,34,28,23,19,15,12,9,6,4,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,1,0,0,0,0,0,0,2,4,15,39,70,88,104,122,128,127,125,121,117,110,105,101,97,95,93,86,79,68,50,40,43,52,65,75,76,75,73,64,53,46,43,
+39,32,29,29,30,29,33,43,53,62,71,96,143,183,215,236,232,200,149,102,63,36,18,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,
+5,7,10,14,18,23,30,37,45,54,62,70,78,85,90,95,96,96,94,90,84,77,69,60,52,44,36,28,21,17,13,10,7,4,3,2,1,0,1,1,1,1,1,0,0,0,0,0,
+10,37,49,50,48,47,46,42,35,25,16,9,4,0,0,0,1,3,5,7,15,26,42,58,73,81,86,88,80,71,69,68,68,66,65,67,69,72,77,87,95,95,86,76,71,73,78,84,
+88,89,90,94,94,89,83,76,71,70,69,67,67,64,62,58,53,47,41,35,28,22,18,14,11,8,5,3,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,25,26,27,35,54,70,90,113,126,135,159,188,202,211,222,231,233,233,233,232,233,232,232,231,231,232,231,
+231,230,225,213,201,197,195,191,179,150,119,93,63,37,18,8,1,0,0,0,0,3,8,22,45,69,81,78,74,78,95,126,167,210,236,239,214,172,122,79,53,40,32,27,25,25,25,25,
+25,25,25,25,21,14,7,1,0,0,0,0,0,0,1,2,3,3,4,6,8,11,15,19,24,29,34,39,44,48,51,53,56,56,55,53,49,45,40,35,30,25,21,16,13,10,8,5,
+4,3,1,2,14,28,30,31,31,31,31,28,21,12,5,0,0,5,10,23,35,39,40,41,46,64,83,107,127,130,130,130,133,136,138,141,147,153,159,160,158,153,150,150,132,92,57,46,
+45,47,50,54,57,61,69,82,102,122,133,131,125,121,118,117,117,116,120,132,139,139,136,126,118,110,105,102,99,97,94,90,84,76,69,62,53,39,27,18,12,8,6,4,3,2,0,0,
+0,3,8,15,22,24,24,24,24,24,24,23,24,21,14,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,21,50,72,103,151,198,217,227,232,232,230,223,
+205,187,175,162,148,142,140,139,138,140,141,143,146,147,147,147,151,157,172,193,211,217,220,223,227,236,235,228,208,176,141,103,73,48,33,27,27,33,37,45,55,62,68,69,60,44,27,18,
+25,51,97,159,210,239,234,199,149,106,86,80,80,82,83,83,83,84,84,84,82,75,63,46,26,7,0,0,0,0,0,0,2,6,11,19,27,30,32,34,36,37,40,42,44,44,40,33,
+29,26,26,25,24,23,21,18,16,13,11,9,8,5,4,3,2,1,0,2,23,44,49,49,49,49,49,53,58,63,66,64,59,54,59,84,116,139,155,163,180,193,191,181,168,167,168,167,
+166,167,168,172,176,180,180,178,176,177,178,181,194,208,185,153,125,97,86,87,91,96,101,110,119,126,133,135,131,124,115,109,107,108,113,122,129,135,146,160,171,177,188,198,198,196,195,194,
+186,177,161,140,129,113,90,62,37,15,3,2,1,0,0,0,50,61,73,88,98,98,97,96,96,96,96,97,97,93,83,66,44,22,8,6,3,0,0,0,0,0,0,0,0,0,3,7,
+12,22,42,65,103,149,188,219,234,221,204,197,184,181,180,171,155,145,137,130,122,117,108,87,64,49,38,28,25,26,26,28,33,42,57,77,89,87,80,76,84,108,136,167,200,223,235,235,
+224,200,173,134,85,56,47,44,33,22,15,13,10,5,1,0,0,0,0,13,47,108,175,222,233,200,150,106,78,64,58,56,58,60,60,62,67,76,84,89,83,58,27,7,2,7,21,35,
+53,66,75,89,99,100,100,101,102,103,104,105,104,103,94,79,59,38,24,17,13,9,5,5,4,3,2,2,1,0,0,0,0,0,0,0,5,11,14,14,13,14,15,26,51,86,126,161,
+184,192,194,193,185,164,144,131,107,72,49,36,32,34,36,39,44,52,63,76,82,79,72,67,66,70,77,82,94,128,166,196,212,212,194,182,179,174,161,149,144,140,139,142,144,143,143,146,
+155,170,184,187,186,191,201,214,218,217,214,205,204,203,201,199,199,203,209,212,210,210,203,182,155,115,62,20,4,5,16,28,116,115,115,110,106,117,129,135,139,140,138,132,129,131,137,145,
+140,118,108,130,129,117,108,105,101,100,103,109,110,118,136,149,161,178,203,221,236,245,246,244,233,214,213,221,223,224,225,226,228,231,232,235,234,234,232,223,207,190,170,135,97,68,57,56,
+53,51,49,43,30,15,6,4,4,6,11,22,43,69,104,143,176,205,227,235,202,136,75,45,31,24,23,25,26,27,27,27,27,26,20,12,6,8,27,72,147,207,229,212,174,135,95,62,
+26,6,4,2,4,11,22,41,68,91,92,73,64,82,106,117,119,117,116,115,116,125,143,161,167,168,168,168,168,169,174,177,173,156,140,129,112,81,51,33,20,21,23,14,10,11,13,12,
+12,9,4,1,0,0,0,0,0,0,0,0,3,8,20,37,57,74,82,83,75,57,45,37,30,26,28,31,34,38,42,50,60,69,73,70,60,51,48,49,53,60,66,72,76,80,88,102,
+125,158,184,195,199,207,215,217,217,217,218,220,220,221,222,223,222,216,207,203,200,194,181,164,150,142,136,130,128,125,120,113,106,101,102,109,104,105,127,161,188,207,205,171,136,122,115,113,
+177,162,157,154,163,199,214,211,210,211,207,187,183,184,190,201,209,212,220,242,251,247,243,242,240,239,239,240,240,245,254,255,255,255,253,251,253,247,229,210,198,195,182,150,132,121,118,118,
+119,120,121,126,131,136,147,171,196,210,225,236,235,220,208,199,171,118,74,46,23,11,8,7,5,4,4,3,3,4,7,14,26,47,84,149,212,237,217,188,156,130,115,105,102,101,102,102,
+102,102,97,87,78,67,49,33,34,64,120,176,209,223,224,209,159,112,91,63,40,35,41,58,91,134,175,187,186,191,197,186,146,130,139,157,178,199,219,229,229,230,230,230,230,230,234,239,
+243,244,245,247,244,229,206,180,151,155,170,141,116,96,79,68,67,64,55,46,36,25,17,12,5,1,0,0,0,1,0,0,0,3,8,18,32,43,52,57,60,62,62,63,65,68,70,70,
+69,64,58,59,69,77,81,84,81,80,83,87,91,97,102,107,110,114,122,133,143,156,175,195,203,205,206,205,205,206,206,204,199,194,187,183,177,171,162,153,144,139,136,134,131,127,121,115,
+106,95,82,68,56,45,40,48,76,121,175,206,217,224,221,205,224,237,228,215,208,185,135,101,92,93,91,78,73,68,65,68,74,83,98,122,147,158,163,168,171,174,173,170,170,172,176,170,
+165,162,161,166,183,177,139,111,93,78,58,32,17,10,5,3,3,3,4,5,6,10,16,27,42,56,75,107,148,182,197,208,229,229,212,191,162,135,121,102,75,55,45,41,31,17,13,14,
+20,30,48,76,119,168,207,235,247,239,222,193,155,129,120,113,107,106,109,114,117,118,116,108,92,74,67,75,90,117,156,199,232,236,231,219,205,202,209,220,231,240,250,254,254,253,254,249,
+226,222,229,226,218,205,177,146,135,134,135,134,133,128,126,126,131,137,143,151,170,200,223,238,246,252,255,250,236,210,167,129,103,87,84,85,85,81,77,70,58,44,30,21,14,9,7,6,
+6,7,7,8,11,16,21,27,34,42,55,66,73,75,82,101,121,127,132,161,193,202,204,201,184,166,159,147,135,133,133,134,140,148,158,169,178,184,187,191,199,202,200,199,200,200,201,201,
+200,201,202,203,202,201,200,195,187,179,172,165,157,149,143,136,129,121,109,99,94,94,99,108,119,129,131,122,114,132,166,197,187,161,135,122,118,109,98,94,94,94,94,94,91,83,71,61,
+57,58,57,53,48,44,42,41,44,47,47,46,46,43,33,24,21,24,31,40,54,63,67,74,82,84,82,76,68,58,47,36,27,21,16,14,11,10,9,10,13,18,20,24,32,43,48,60,
+100,147,176,198,219,227,229,229,219,206,197,194,176,144,131,132,135,128,122,113,99,85,80,101,145,178,204,228,223,200,185,164,137,125,129,143,151,147,153,164,171,176,176,172,168,174,193,215,
+236,247,251,255,255,255,255,251,245,233,221,211,207,208,214,223,220,194,171,154,138,128,113,103,100,99,100,100,97,88,77,68,65,66,64,59,57,65,80,101,140,181,215,241,251,251,242,225,
+196,161,138,136,142,144,147,151,155,151,137,117,99,88,79,68,61,56,54,54,53,52,56,74,102,123,156,184,192,194,202,221,232,234,236,237,226,220,221,225,236,240,241,238,229,224,219,212,
+210,210,205,200,193,186,180,178,181,183,183,182,182,183,183,183,182,182,182,183,183,185,189,194,198,200,199,198,193,188,183,179,178,176,170,164,164,165,166,166,154,124,105,101,112,158,193,195,
+61,68,82,93,100,104,106,105,105,105,105,105,107,114,119,119,119,118,117,113,108,97,84,70,57,45,36,32,28,25,23,21,21,22,23,25,29,33,35,36,44,54,64,74,81,87,90,90,
+87,83,78,74,69,65,64,66,73,79,82,82,78,72,68,66,69,74,78,89,110,128,139,158,182,204,214,222,235,244,245,244,242,232,218,207,195,180,159,135,121,123,142,184,220,240,250,251,
+245,242,242,245,247,238,229,231,233,236,238,240,243,241,233,223,222,222,223,220,213,200,189,181,170,149,124,103,86,72,67,76,90,85,86,94,99,102,104,103,104,104,104,104,106,112,117,118,
+118,118,117,114,109,98,84,72,66,70,93,136,178,213,237,249,250,243,232,228,228,229,229,230,232,234,234,229,222,219,218,214,209,207,205,205,203,202,206,221,237,243,246,237,231,230,228,212,
+193,188,187,174,155,150,155,163,179,196,209,225,236,242,246,250,251,250,245,238,229,217,206,195,190,189,189,189,189,187,182,180,179,177,175,173,169,166,164,165,169,172,176,180,184,185,182,181,
+184,185,181,177,174,171,170,179,182,188,202,199,186,153,96,59,49,43,35,31,30,29,29,28,28,28,28,28,32,42,53,63,68,74,88,107,130,150,153,149,144,133,121,112,103,100,100,99,
+99,100,101,105,107,106,100,87,75,66,58,53,53,58,65,79,95,107,112,110,105,101,98,96,93,88,88,89,91,96,105,109,105,101,101,102,102,101,102,105,111,120,121,115,121,139,145,144,
+151,172,188,196,202,211,221,230,230,228,226,227,231,232,220,208,207,207,208,209,207,169,125,120,120,116,112,112,111,100,82,68,71,76,78,78,77,74,72,76,88,103,113,115,111,97,75,58,
+48,42,35,30,30,29,29,28,28,28,28,28,32,42,54,64,70,76,89,109,133,152,155,152,145,133,122,116,119,138,166,203,237,248,236,208,185,182,182,176,170,168,175,190,203,208,212,219,
+226,230,231,231,230,229,227,214,194,182,171,152,148,153,160,158,153,153,157,161,163,166,170,174,177,181,185,186,189,192,196,203,208,215,226,236,243,248,249,245,240,238,237,236,236,231,218,213,
+211,210,208,206,204,192,178,173,171,169,166,167,168,168,164,160,159,158,155,154,164,188,203,212,206,194,165,141,127,105,80,66,115,101,79,58,43,33,28,26,25,24,24,24,24,26,29,35,
+45,63,86,109,132,149,151,146,141,134,126,117,109,107,110,114,121,130,143,155,158,159,158,156,151,146,137,126,117,106,93,90,100,107,111,111,107,99,89,74,57,42,37,36,39,47,57,64,
+60,58,64,70,71,71,70,70,70,68,59,46,39,37,36,34,37,45,53,58,62,69,83,104,122,130,130,129,127,111,81,59,55,54,54,54,50,30,12,9,9,7,6,5,3,1,0,0,
+0,0,0,1,3,3,4,7,15,31,50,67,88,109,119,118,111,100,79,58,43,33,28,26,25,24,24,24,25,27,31,37,48,66,89,112,134,152,155,151,146,139,132,123,114,112,115,129,
+165,212,244,241,210,180,163,158,157,153,150,147,148,143,135,137,145,151,155,157,156,152,145,129,110,99,96,97,103,111,122,130,132,135,144,152,156,160,164,168,171,174,173,171,171,172,174,177,
+180,183,189,194,202,211,222,233,239,240,241,241,242,247,250,249,249,248,248,249,250,241,228,226,224,223,221,219,219,217,215,212,209,207,203,199,190,168,131,91,61,53,56,70,88,107,118,121,
+91,107,119,120,114,108,104,102,101,100,100,101,100,101,100,103,110,117,119,113,103,91,76,62,50,43,41,45,54,69,87,101,114,129,143,150,148,147,149,151,153,154,155,156,153,139,111,86,
+74,71,73,82,92,100,102,99,87,69,54,43,39,41,44,45,45,45,41,38,39,39,40,41,41,40,40,40,40,40,39,39,38,36,35,34,32,30,30,30,31,30,29,28,26,22,18,16,
+14,13,12,11,10,9,10,9,8,6,6,5,5,4,3,3,3,2,2,1,1,1,0,0,0,0,1,5,15,33,58,80,96,110,119,119,114,108,104,102,101,100,101,101,101,102,101,104,
+112,119,122,117,108,97,84,72,62,55,54,59,68,82,98,111,124,151,190,231,250,239,203,169,160,162,166,168,166,156,135,117,111,110,115,123,133,140,144,144,137,128,121,117,118,122,128,133,
+137,140,142,145,149,154,158,161,165,169,172,174,177,180,182,184,187,188,189,190,190,191,193,197,200,201,201,202,202,208,215,218,217,216,214,212,209,197,180,174,171,168,164,160,158,154,149,143,
+136,126,113,98,76,53,34,23,16,12,11,12,19,33,50,64,16,32,54,72,86,97,103,105,105,105,105,104,104,105,105,104,97,80,60,42,29,19,11,7,9,18,40,67,91,109,119,122,
+120,114,103,89,76,71,72,73,76,77,78,79,76,65,47,30,23,21,23,29,39,51,66,85,100,109,104,88,78,78,79,80,82,79,61,46,47,48,49,50,50,51,51,51,52,51,50,50,
+49,48,47,45,44,43,40,38,36,34,33,31,29,28,27,25,23,22,20,18,16,15,14,13,12,11,9,8,7,7,6,5,5,4,4,3,2,2,2,1,0,0,0,0,0,0,1,7,
+19,34,53,72,86,97,103,105,105,105,105,105,105,106,107,107,101,86,67,51,40,33,27,25,27,37,58,84,107,124,134,136,134,128,121,130,166,219,243,208,155,121,109,111,113,108,97,88,
+86,89,94,102,112,121,133,147,159,166,165,157,153,156,160,163,166,168,162,158,162,165,169,172,174,177,180,183,185,186,188,189,190,191,192,192,192,192,193,192,192,191,191,189,188,186,186,184,
+182,178,173,168,163,156,149,143,138,133,128,124,120,115,108,101,92,82,72,61,51,42,33,26,19,14,9,5,2,0,1,4,0,0,4,17,34,49,57,58,58,54,49,47,48,53,58,58,
+51,41,33,34,39,44,51,58,68,87,111,121,116,100,81,66,54,40,27,17,11,9,9,11,11,12,14,14,15,15,14,15,16,18,20,22,24,27,31,40,54,72,81,76,72,73,75,76,
+79,77,66,57,59,60,61,61,62,62,63,63,62,62,62,61,59,58,57,55,54,52,50,48,46,43,40,38,35,33,33,31,29,26,24,22,20,18,17,16,14,13,11,10,8,8,7,6,
+5,4,4,3,2,2,2,2,2,1,0,0,0,0,0,0,0,0,4,17,34,49,57,58,58,55,50,48,50,56,62,63,58,49,44,47,54,61,68,77,88,106,127,138,134,121,106,93,
+83,72,61,52,55,97,178,232,229,190,125,79,75,81,86,92,97,103,107,112,116,120,125,132,143,155,162,161,161,163,167,170,173,175,171,169,172,175,177,181,182,184,186,187,189,190,190,191,
+191,192,193,192,192,191,191,191,190,188,187,185,184,182,180,177,174,169,164,159,154,148,142,135,130,125,120,114,110,105,99,92,85,76,66,56,47,38,29,22,17,13,9,5,3,2,0,0,
+3,16,38,58,72,81,83,83,83,81,76,74,77,90,101,102,101,100,100,106,113,116,118,120,121,117,101,73,45,25,12,6,4,2,2,3,4,5,6,7,7,9,10,12,14,16,18,19,
+22,25,27,30,32,34,35,37,39,44,48,51,53,56,58,61,63,64,66,67,69,70,72,72,73,74,74,74,73,74,72,72,70,68,67,65,63,61,59,58,55,54,56,56,52,48,44,39,
+34,31,29,27,25,22,19,17,15,14,12,11,10,7,7,6,4,3,3,3,2,3,3,2,2,1,1,1,0,0,0,0,3,17,39,58,72,81,83,83,84,82,77,75,80,94,106,108,
+108,108,110,117,126,131,134,138,140,138,125,102,81,64,55,51,50,51,54,55,56,59,88,147,204,239,226,169,127,109,106,109,115,120,125,131,135,138,141,144,147,151,155,158,161,163,166,169,
+171,174,176,178,181,183,184,186,187,188,189,190,190,190,190,190,191,191,191,189,189,188,187,186,184,183,183,182,180,177,173,169,164,159,153,149,143,136,129,122,117,111,105,98,93,88,82,75,
+68,61,52,44,38,31,23,19,14,10,7,4,3,1,0,0,50,74,88,86,76,67,62,61,63,69,74,75,79,93,104,105,105,104,102,97,91,85,78,70,62,47,26,9,1,0,1,1,
+3,4,5,6,6,7,8,10,11,12,14,16,17,19,21,24,27,30,32,34,37,40,43,45,48,51,54,57,61,64,67,70,74,77,81,88,96,101,103,104,105,105,105,105,105,105,104,103,
+102,100,98,97,92,85,75,69,64,69,86,93,90,85,80,74,62,50,41,35,31,29,27,26,24,26,31,34,36,36,35,33,30,25,19,13,7,3,1,1,1,1,0,0,0,0,0,17,
+53,77,88,86,76,67,62,61,64,70,75,77,83,97,110,113,115,116,115,114,112,109,106,101,96,87,75,70,73,76,78,80,87,104,120,126,127,134,155,178,196,224,248,248,230,204,177,153,
+139,139,143,146,150,153,157,159,162,165,167,169,172,174,175,178,180,182,183,185,186,187,188,189,189,189,190,190,190,190,189,189,188,187,186,184,183,181,179,178,176,176,183,185,183,180,175,170,
+163,153,144,136,129,123,117,111,106,102,102,115,121,117,113,108,102,93,78,61,40,25,17,11,6,2,0,0,0,0,0,10,94,80,54,31,16,9,6,6,7,11,14,15,16,23,27,28,
+28,28,26,21,16,12,9,6,3,1,0,0,1,2,3,3,4,5,6,7,8,9,10,11,13,15,17,18,20,23,26,29,32,34,37,41,44,46,49,53,58,66,77,85,90,94,99,111,
+129,139,146,164,184,192,194,194,194,194,194,195,195,194,194,194,193,192,192,190,186,170,144,118,98,87,88,89,88,87,87,89,88,85,78,70,63,61,62,62,61,63,68,80,91,93,92,90,
+88,85,78,69,56,39,24,13,6,3,2,2,5,14,39,79,89,75,53,31,16,9,6,7,8,13,17,19,24,31,39,43,46,50,52,53,54,55,55,58,70,90,121,154,175,182,183,184,
+192,211,226,229,230,233,242,247,247,247,248,252,255,255,249,230,201,186,179,173,171,169,170,172,174,175,177,179,180,182,184,186,186,187,188,189,189,189,190,190,190,189,189,188,187,187,186,184,
+183,181,179,177,175,173,170,167,165,164,169,169,166,165,164,163,160,156,149,139,131,126,123,119,115,111,119,185,220,217,216,215,213,210,205,195,170,143,132,119,103,72,39,19,6,11,34,65,
+49,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,4,5,5,6,6,6,7,8,9,12,14,16,17,19,21,25,28,31,33,
+36,39,42,46,50,57,69,82,104,137,167,183,187,189,193,207,224,232,235,243,249,249,249,250,250,250,250,250,250,249,250,250,250,249,249,250,249,246,235,217,194,163,129,105,92,83,74,71,
+72,76,79,80,80,78,73,69,66,60,54,61,71,73,72,70,71,75,81,88,92,92,83,71,57,48,44,47,57,73,90,80,45,19,4,0,0,0,0,0,0,1,3,5,7,11,14,18,
+23,28,34,40,48,60,77,105,152,195,226,243,247,248,248,248,249,247,240,238,239,237,230,215,210,210,212,217,229,242,250,254,249,243,236,227,218,207,202,202,199,194,191,189,188,187,188,189,
+190,190,191,190,190,190,190,189,188,187,186,185,184,182,179,177,175,173,171,168,164,162,158,154,151,148,145,141,137,133,130,129,129,130,129,128,124,119,113,107,101,93,89,113,130,128,126,123,
+122,124,132,149,176,189,186,184,185,192,189,177,146,135,127,103,119,73,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,16,26,30,33,34,34,
+35,34,30,23,17,14,13,14,15,17,20,24,27,30,33,37,41,47,54,66,86,120,158,183,207,233,246,249,249,249,250,250,247,242,241,236,225,217,216,216,217,217,217,217,217,217,217,217,
+216,215,214,213,216,228,241,248,250,243,224,201,187,170,144,126,114,95,80,74,64,54,45,39,35,31,25,23,24,21,21,19,18,20,24,31,43,59,74,85,88,90,90,89,87,81,62,30,
+3,0,0,0,0,0,1,2,2,3,5,7,11,15,18,22,29,39,49,66,98,142,179,211,239,250,245,232,217,213,213,214,212,199,180,171,169,166,156,145,142,145,151,157,171,189,210,227,
+239,247,252,253,252,248,245,245,241,233,228,221,211,201,195,193,191,191,190,189,188,188,187,186,184,183,180,178,176,174,171,168,165,162,159,155,151,146,142,138,135,132,128,124,123,124,121,117,
+114,111,108,107,105,101,91,78,66,56,49,44,42,40,37,34,32,31,31,36,48,65,77,86,94,107,128,155,184,190,194,180,145,174,178,129,91,53,14,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,1,1,11,38,52,53,52,53,53,53,55,58,58,55,49,42,35,31,38,47,51,53,57,61,72,91,110,128,157,191,224,243,248,249,242,224,210,208,209,211,207,
+194,183,182,177,167,163,163,165,166,167,167,167,167,166,166,164,162,160,158,155,155,164,178,195,215,234,247,250,249,247,238,230,223,202,182,168,139,105,78,62,56,54,51,44,33,23,17,15,
+11,9,7,5,6,9,16,26,35,43,45,42,34,20,7,0,0,0,0,0,0,0,1,1,2,3,5,8,11,17,30,54,82,105,128,163,204,237,249,249,237,211,187,170,157,153,154,155,
+155,151,147,146,145,143,139,136,135,138,141,147,153,161,171,184,197,208,221,231,240,247,248,249,251,253,253,251,245,234,225,216,208,202,197,194,191,186,182,180,178,176,172,169,166,163,160,156,
+151,147,144,140,138,139,139,145,151,151,148,152,164,174,178,179,181,184,184,185,183,179,168,149,126,103,82,63,44,30,22,20,18,16,13,11,9,11,17,25,33,38,39,37,35,30,43,89,
+5,28,88,144,171,180,152,113,87,63,41,33,28,26,26,26,26,26,26,26,26,31,51,73,80,83,93,98,95,94,95,97,102,106,104,108,116,121,123,124,132,154,169,171,169,171,173,185,
+208,223,232,243,249,245,231,215,207,187,161,151,152,156,157,156,153,152,154,157,159,162,164,166,167,168,169,169,168,167,166,165,162,159,156,153,149,146,144,145,153,170,190,205,211,224,236,239,
+244,249,249,249,239,220,195,176,170,169,167,159,135,105,90,73,54,41,36,29,19,9,4,2,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,10,19,38,71,120,168,
+205,223,233,245,250,238,214,192,164,136,127,127,126,126,127,128,129,131,135,140,146,151,156,159,159,159,159,160,161,165,169,174,179,183,189,197,206,215,220,222,228,235,240,245,251,253,252,248,
+244,236,230,228,222,210,196,185,178,175,171,168,165,161,157,153,152,158,165,172,181,190,200,213,219,218,218,226,235,240,244,245,246,247,246,247,246,245,243,238,229,215,195,169,131,90,58,37,
+21,13,9,6,4,2,0,0,0,0,0,0,0,0,0,0,15,9,17,35,70,127,183,207,215,215,206,195,179,173,174,174,173,173,173,173,174,179,197,216,221,221,221,221,221,221,221,224,
+231,232,221,218,220,222,224,227,235,246,250,250,248,248,248,249,248,244,241,234,222,206,187,177,174,170,168,170,172,174,174,174,173,172,172,173,176,179,180,182,184,184,185,185,184,184,184,182,
+179,177,174,170,166,161,156,149,145,141,141,142,141,148,158,161,171,189,200,214,231,242,247,247,246,246,246,245,239,227,219,206,183,166,159,148,119,87,61,40,30,28,27,27,27,26,26,26,
+25,24,24,25,24,25,30,48,71,82,94,121,157,197,233,247,244,236,231,218,193,160,132,120,115,114,118,121,123,124,126,126,127,129,129,131,134,138,144,152,160,167,172,175,177,178,182,186,
+191,196,200,204,209,213,216,217,218,221,223,228,236,243,248,251,252,252,252,252,251,247,238,226,219,216,215,212,211,207,202,204,214,226,235,240,244,246,247,246,244,243,243,238,227,211,201,196,
+192,187,184,182,180,179,185,203,221,233,237,233,223,212,191,162,129,102,83,63,45,35,30,27,26,25,25,25,25,25,26,24,109,114,129,143,161,187,209,224,234,245,251,253,251,250,251,250,
+250,250,250,250,250,250,246,237,232,232,232,231,231,230,230,229,227,227,227,227,228,228,229,228,226,211,194,192,198,205,212,217,214,208,203,193,181,173,169,168,170,173,177,179,182,185,189,193,
+196,196,195,194,193,191,190,189,189,188,187,188,188,188,189,188,187,187,185,182,180,175,171,165,159,152,145,138,132,126,120,115,114,117,120,128,144,164,184,194,192,188,187,193,213,228,234,239,
+244,246,245,244,235,220,198,171,158,156,156,155,156,155,155,155,155,154,154,154,154,154,162,186,210,219,224,236,244,244,227,194,161,141,136,127,116,109,111,117,123,127,130,132,133,135,136,134,
+132,132,132,132,134,135,136,140,145,151,160,170,179,187,197,206,215,220,221,221,219,218,216,216,214,214,213,212,214,217,221,227,232,236,238,237,238,245,249,250,250,250,250,249,249,248,247,248,
+248,243,237,230,219,207,194,176,160,152,148,137,117,93,77,73,71,71,69,68,67,65,66,80,101,125,152,177,187,196,220,238,240,232,220,203,186,173,163,157,155,156,156,155,153,150,141,125,
+227,232,238,243,245,245,240,233,226,220,204,183,175,178,181,185,190,196,199,200,203,202,188,166,156,154,155,154,153,156,158,151,139,132,126,121,118,119,119,120,117,104,96,106,126,147,165,176,
+176,168,155,143,135,135,137,141,146,152,159,164,170,176,182,187,193,195,196,194,190,183,175,168,161,155,151,151,152,156,160,165,171,176,182,184,185,185,182,178,173,167,161,155,151,146,140,134,
+131,127,122,119,116,116,119,119,114,107,100,94,98,111,120,136,160,175,179,190,217,234,243,246,245,245,245,245,245,245,244,244,245,245,244,245,245,244,246,245,237,230,225,212,191,167,133,106,
+100,108,120,131,141,149,155,160,164,166,168,169,169,172,173,167,158,152,147,143,141,141,142,143,146,152,160,170,183,195,207,215,217,215,208,202,196,193,190,188,187,186,185,183,182,181,182,185,
+190,199,205,208,211,214,220,224,223,219,216,213,212,212,212,211,205,190,170,151,135,116,97,82,67,58,55,55,56,57,54,54,58,61,61,61,60,58,56,56,54,54,60,74,90,89,104,144,
+185,205,210,215,227,239,244,246,246,246,245,245,245,244,239,231,225,220,198,181,176,170,155,125,102,92,92,97,105,114,122,129,135,137,137,136,133,131,126,120,118,118,119,119,124,137,147,148,
+144,138,129,119,113,112,111,112,115,121,131,140,147,150,148,138,124,114,109,109,114,121,129,138,145,153,160,168,173,178,179,178,174,166,155,142,129,117,106,96,89,84,79,77,77,81,88,97,
+109,124,139,154,167,178,184,187,186,185,182,179,175,168,161,154,145,135,125,118,111,104,98,93,91,90,86,71,47,37,36,38,45,49,50,61,87,114,145,168,174,174,174,173,173,173,172,172,
+173,172,172,172,172,172,170,154,122,105,116,125,123,121,122,131,142,151,158,163,167,172,176,179,182,184,185,187,189,196,201,201,198,195,189,183,179,178,177,178,180,185,191,196,200,202,201,195,
+188,181,176,173,172,172,171,170,169,167,165,164,162,159,155,153,152,154,158,164,173,182,188,194,196,191,186,180,172,168,167,164,160,155,147,139,132,123,113,107,102,97,99,102,98,89,80,73,
+64,55,47,44,41,40,40,40,43,47,47,35,17,17,19,27,49,74,87,89,98,119,144,160,170,174,175,175,177,184,196,212,83,85,64,42,37,36,31,17,6,14,64,108,115,110,104,95,
+83,71,62,55,48,47,47,47,47,48,49,51,58,71,85,101,119,135,143,147,151,160,167,170,172,174,176,167,146,126,108,95,91,94,103,113,121,130,139,147,155,163,169,174,176,174,164,147,
+125,100,75,54,38,30,26,28,30,27,26,23,21,20,22,26,32,43,57,76,100,126,149,167,180,187,192,192,189,183,177,170,158,146,132,120,110,102,93,87,83,81,77,69,56,48,42,37,
+31,26,21,18,18,21,30,39,41,40,38,38,38,38,38,37,37,37,36,36,35,35,34,27,15,21,72,116,126,124,123,122,118,115,117,120,122,127,134,138,143,145,147,150,153,160,166,174,
+183,190,195,196,198,202,205,207,208,209,210,205,192,180,169,161,156,156,158,159,160,160,160,159,157,155,153,150,147,145,141,136,132,127,123,122,126,138,156,180,194,193,187,174,156,146,142,138,
+135,132,131,129,130,132,133,132,134,141,151,153,144,129,116,99,78,58,43,32,26,22,21,20,22,27,30,26,15,11,12,10,7,8,11,12,10,11,17,24,30,33,35,36,36,37,44,56,
+1,3,1,0,0,0,0,0,0,4,38,60,51,39,29,21,12,6,1,0,0,0,0,1,2,3,5,6,8,12,17,25,38,51,62,72,83,99,118,137,151,161,167,165,153,139,125,114,
+109,108,113,120,129,137,147,155,163,170,173,171,162,143,117,85,55,30,15,7,4,6,8,10,12,10,7,4,3,2,2,1,1,2,5,11,24,45,74,105,136,160,178,190,192,191,191,190,
+185,179,172,163,155,148,141,135,131,126,122,119,115,112,109,100,88,81,73,63,58,56,54,50,42,31,18,8,2,0,0,1,0,0,0,0,0,0,0,0,0,10,45,69,65,58,57,57,
+58,62,70,78,86,93,101,107,112,115,118,119,120,121,123,127,131,138,143,146,152,160,170,181,190,195,198,197,189,179,169,159,151,148,146,144,144,144,143,142,140,138,136,133,129,126,122,119,
+118,117,118,122,129,143,160,172,169,152,127,104,88,78,73,69,65,61,58,55,55,58,62,63,71,89,111,133,153,161,160,154,141,127,115,104,95,89,85,83,83,83,83,83,83,84,84,76,
+67,61,55,48,45,45,43,41,34,24,13,3,0,0,0,0,0,0,0,0,0,0,0,5,9,14,21,28,28,26,24,24,23,23,23,22,20,14,10,7,5,3,2,3,5,6,8,9,
+11,13,16,21,26,35,45,59,77,93,110,129,147,162,170,171,165,157,150,147,148,152,159,166,171,173,167,153,127,93,58,29,13,6,4,5,6,6,6,4,3,2,0,0,0,0,0,0,
+0,0,0,0,0,3,16,41,76,114,148,176,197,198,189,181,177,176,176,177,175,171,166,161,158,154,150,146,144,142,139,129,117,111,105,100,104,104,100,100,95,82,69,53,34,19,7,2,
+1,2,1,0,0,0,1,7,12,18,28,39,42,45,50,56,64,72,80,88,94,96,99,103,104,105,107,108,109,109,108,107,105,106,105,104,105,108,113,121,131,140,151,163,175,184,189,188,
+181,172,160,150,142,138,135,133,131,127,126,123,120,119,121,128,135,143,151,157,160,160,148,126,101,77,60,50,44,40,35,32,28,24,21,18,14,15,21,34,53,75,94,110,122,126,121,114,
+108,109,116,124,126,123,119,117,117,117,116,116,117,118,118,109,98,93,90,87,93,94,93,93,89,77,64,48,30,15,5,0,0,0,0,0,3,24,51,68,78,84,89,94,98,100,100,100,
+100,101,102,101,96,88,79,70,57,45,35,26,22,21,21,24,26,27,30,32,36,41,46,54,67,81,96,113,134,157,181,194,197,198,196,192,187,186,188,189,186,177,159,129,88,49,22,8,
+5,4,3,3,3,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,10,30,64,103,141,182,214,210,184,161,150,146,143,139,133,125,118,111,105,99,94,88,84,78,70,
+62,57,54,54,58,58,54,56,57,56,60,63,58,51,31,6,0,1,0,0,1,23,51,69,80,86,92,100,107,111,115,120,125,130,135,139,140,139,137,134,128,122,117,111,107,105,104,103,
+102,101,100,99,99,99,100,104,110,119,128,139,153,171,189,199,200,199,195,187,177,171,168,163,157,153,150,149,149,150,155,160,161,158,151,140,125,104,80,60,47,40,37,35,31,28,25,22,
+18,15,14,18,27,42,63,81,90,87,77,64,49,37,27,20,17,20,29,39,45,45,43,42,42,43,43,43,44,44,44,38,33,32,33,36,44,46,43,47,49,49,56,60,55,48,29,5,
+0,0,0,0,11,67,116,124,119,116,114,110,107,105,105,105,105,105,106,107,111,117,120,122,121,117,110,100,93,90,90,92,93,95,97,99,103,107,111,119,129,138,146,152,159,167,174,181,
+185,190,193,197,198,199,199,196,187,169,137,95,52,20,6,3,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,7,24,58,100,145,202,237,231,
+201,167,147,133,122,112,102,93,85,77,70,63,55,48,42,36,30,26,22,19,17,15,12,10,9,9,13,20,26,34,28,9,3,4,2,1,11,66,115,123,119,117,115,114,113,114,117,120,
+124,129,134,138,145,152,157,161,162,160,156,150,144,141,140,140,138,138,138,137,136,137,139,143,148,153,157,160,163,168,173,177,179,179,179,179,178,177,176,172,165,160,156,155,153,149,141,129,
+113,98,83,69,58,48,43,40,37,33,28,24,20,17,15,14,18,28,43,61,80,92,92,76,52,31,16,8,3,2,8,18,25,27,28,31,35,37,35,29,22,16,13,10,8,5,3,3,
+3,1,0,0,0,0,0,0,0,2,6,12,19,28,23,4,0,0,0,0,6,47,78,67,51,44,40,34,29,28,28,28,28,28,28,30,36,45,54,65,79,92,103,113,119,122,123,124,
+125,126,128,130,132,134,135,135,134,132,130,131,131,131,131,132,137,144,153,160,168,175,179,177,165,139,99,55,20,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
+1,1,1,1,1,0,1,0,0,7,30,69,118,176,230,251,246,228,208,188,169,158,150,144,139,133,126,122,118,111,98,83,68,57,49,44,41,39,37,35,33,34,50,74,82,83,82,82,
+80,80,80,79,84,116,138,130,120,116,113,110,109,109,112,116,119,123,127,132,138,146,153,160,168,175,181,185,187,187,186,187,186,185,185,185,184,184,184,182,180,177,174,172,169,164,160,163,
+170,175,176,174,171,167,164,162,160,161,161,160,156,149,138,131,128,125,124,127,131,136,146,156,162,158,149,140,133,129,130,137,149,161,170,173,174,172,162,143,128,124,127,134,139,141,150,164,
+171,174,175,173,174,177,176,171,163,152,144,136,124,111,99,90,75,52,33,25,20,12,6,0,0,0,0,0,0,0,0,0,26,13,8,7,5,9,13,8,2,0,0,0,0,0,0,0,
+0,0,0,0,0,0,3,6,11,19,28,39,49,54,57,58,60,61,64,67,69,72,73,73,72,72,74,78,83,89,95,103,113,122,132,142,152,161,165,163,147,115,72,31,7,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,2,17,50,99,155,212,246,252,251,250,246,239,235,233,232,231,230,229,228,227,224,216,204,
+189,175,166,163,161,161,160,159,158,161,184,213,219,218,218,218,218,217,218,218,217,218,218,216,216,216,216,216,217,217,218,219,219,220,221,222,222,223,224,224,226,228,230,232,233,234,234,234,
+234,233,233,233,233,233,232,231,229,228,227,226,226,223,221,223,229,234,237,239,239,235,232,231,231,231,231,231,231,228,226,227,229,229,229,227,225,223,222,220,215,201,182,170,169,175,181,184,
+180,171,160,147,127,105,101,116,135,145,163,192,218,231,237,241,244,246,247,247,247,245,242,240,238,238,240,241,240,233,224,210,191,173,155,134,109,84,65,62,74,91,105,110,105,91,67,43,
+154,138,129,123,117,105,95,85,69,48,31,25,22,16,8,2,1,1,0,0,0,7,13,11,8,5,4,4,7,9,12,14,16,18,22,25,28,32,35,41,47,57,68,78,87,95,104,112,
+121,130,140,150,157,165,169,165,146,112,67,27,6,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,13,43,86,136,199,241,
+249,249,247,243,239,240,240,239,238,238,236,236,235,235,239,244,246,247,246,246,246,246,246,245,245,246,247,240,231,229,229,229,228,228,229,228,228,228,228,227,228,228,228,229,229,229,230,230,
+230,231,231,231,231,233,234,233,233,232,232,231,231,232,232,232,232,231,231,230,230,230,230,229,229,230,231,232,233,234,236,238,237,238,238,234,227,218,206,190,174,160,151,146,145,151,156,153,
+145,136,129,122,117,115,113,111,106,100,94,94,92,86,74,58,38,20,10,4,0,0,0,0,1,4,12,32,58,80,97,110,120,130,134,132,153,184,202,208,206,197,193,197,209,225,235,238,
+239,238,237,232,221,207,197,199,211,225,234,235,234,226,207,180,245,242,238,236,235,233,226,213,196,177,162,153,142,126,104,89,83,74,55,32,22,36,49,49,46,38,30,22,16,13,13,15,
+17,19,22,28,36,44,51,62,78,95,111,122,129,135,141,147,154,161,167,173,178,182,183,178,160,126,80,37,11,3,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,
+0,0,0,0,0,0,0,0,0,1,14,45,89,131,187,233,243,240,227,198,175,168,163,157,153,148,142,138,134,132,139,151,163,175,180,180,179,179,177,176,177,176,167,135,106,99,99,100,
+98,98,98,97,96,97,97,96,98,99,98,100,101,101,102,106,107,108,111,111,116,134,144,145,143,141,135,130,125,121,119,118,117,116,117,117,118,122,125,129,137,146,153,157,159,160,164,166,
+166,162,157,146,131,121,111,102,97,93,91,89,88,89,89,88,86,83,81,81,82,85,88,88,86,82,73,62,45,27,14,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
+2,4,5,4,14,40,69,86,95,91,83,78,80,92,108,120,134,144,154,166,182,202,219,233,239,233,228,228,230,236,244,248,194,201,200,197,197,206,222,232,238,242,244,242,239,236,230,226,
+221,210,187,158,130,114,108,108,107,93,71,57,51,46,43,43,45,48,56,70,87,99,106,111,119,124,126,126,130,136,142,148,155,161,167,173,178,183,184,181,167,138,94,49,17,4,1,1,
+1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,4,22,59,102,145,197,226,219,201,177,149,129,119,110,101,92,84,76,68,61,56,53,53,
+54,57,58,55,51,50,49,46,45,43,37,23,12,9,9,8,7,7,6,5,4,5,5,5,6,6,6,8,9,10,12,14,17,19,21,23,27,45,58,61,66,72,74,74,71,65,60,57,
+56,55,60,70,83,92,95,97,102,102,98,94,92,92,92,92,92,90,87,86,85,85,85,85,86,86,85,84,83,83,82,81,80,80,78,77,74,67,58,50,42,32,21,14,7,3,2,1,
+2,2,4,7,9,9,10,10,10,9,9,8,6,3,1,0,0,0,0,0,0,0,1,4,6,7,6,5,5,5,6,7,12,20,28,31,35,48,71,101,131,141,134,128,127,134,152,176,
+53,73,85,87,81,80,92,111,130,147,163,179,191,200,206,214,225,236,242,243,237,226,218,217,214,195,154,116,93,75,64,60,60,63,75,93,104,107,104,98,92,85,81,81,86,95,103,111,
+120,129,138,148,156,164,170,172,165,144,108,64,27,6,0,0,0,0,0,0,0,0,0,1,1,2,2,3,3,3,3,3,3,3,3,4,4,4,3,3,4,17,46,89,134,182,214,207,
+184,164,148,135,123,113,104,95,87,78,70,62,55,49,43,38,32,29,24,21,17,15,13,11,9,7,5,4,4,3,2,2,1,0,0,0,0,0,0,0,0,0,0,0,1,3,3,5,
+7,10,11,13,14,16,18,20,23,29,36,46,54,58,61,62,61,62,70,85,92,93,87,75,62,49,37,30,27,26,26,26,27,28,28,27,27,26,25,25,25,24,23,22,22,21,20,19,
+18,18,18,17,17,17,22,33,42,47,53,57,59,59,60,60,60,61,66,75,81,83,83,83,83,83,83,80,75,67,59,51,38,24,12,3,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,3,11,23,29,28,25,24,25,35,0,3,6,7,7,9,11,16,22,27,31,36,46,60,71,79,94,121,150,178,202,218,223,224,228,238,237,219,195,164,129,100,
+78,56,44,44,49,50,49,48,50,52,58,65,76,89,99,107,116,125,134,143,152,161,167,171,170,159,136,99,57,23,5,0,0,0,0,0,1,2,3,5,6,8,9,10,12,12,12,13,
+12,12,12,11,11,11,10,11,22,49,89,132,174,205,206,195,188,181,171,156,139,120,104,93,84,76,69,62,55,48,43,38,33,30,26,22,18,16,15,12,10,8,6,6,6,4,4,3,
+2,1,0,0,0,3,7,10,9,6,4,2,1,0,1,3,6,7,9,10,11,12,12,13,13,13,13,15,17,20,25,25,24,24,28,33,33,29,24,17,11,6,5,6,11,16,19,19,
+20,20,20,19,19,18,14,9,5,3,3,3,3,2,4,7,10,12,17,25,40,62,91,116,129,134,136,139,140,140,140,140,140,140,143,145,146,146,146,146,146,146,146,146,145,142,140,136,
+126,109,87,63,38,16,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,14,28,44,60,71,77,75,66,56,44,32,21,15,12,
+19,42,79,115,143,164,173,175,183,209,234,245,248,245,235,221,203,171,122,67,35,29,31,37,44,55,72,91,111,126,135,142,147,153,159,166,171,176,180,182,182,179,167,144,109,69,36,15,
+5,3,3,4,6,7,9,11,12,13,13,13,14,14,15,15,15,15,14,12,10,10,14,28,55,92,130,165,190,195,189,188,189,192,192,188,177,158,134,113,94,79,67,58,52,46,40,36,
+32,28,24,20,17,15,12,11,9,7,6,5,4,2,1,0,2,6,16,31,46,61,73,80,79,71,60,50,38,26,15,6,2,3,5,7,8,8,9,9,9,10,10,9,8,13,25,22,
+11,5,3,3,2,3,2,2,3,9,21,39,57,71,76,76,76,75,75,75,76,74,69,58,48,43,43,43,42,45,57,72,81,87,91,101,119,138,154,159,151,133,119,113,112,112,112,112,
+111,110,107,99,91,89,89,89,89,89,89,92,98,105,112,122,134,145,148,143,124,92,61,36,18,6,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+45,64,87,104,113,115,114,113,116,120,125,123,122,126,129,134,149,170,198,216,222,224,225,227,227,231,235,239,243,247,253,255,255,254,242,201,135,92,65,55,65,86,108,127,134,134,135,140,
+146,151,157,163,169,174,181,187,190,191,189,179,161,132,98,64,36,18,9,6,6,8,9,11,10,6,5,5,5,5,5,5,4,4,3,3,7,18,40,70,106,137,162,178,181,176,170,166,
+164,164,168,175,183,186,180,165,145,123,101,81,64,50,42,36,32,29,25,21,20,18,18,18,16,13,10,9,8,10,21,31,44,63,89,106,116,120,119,118,118,120,120,118,112,102,86,64,
+39,18,6,3,3,4,5,5,5,5,5,5,5,15,42,51,42,28,19,15,13,13,13,18,29,48,69,86,89,83,77,76,75,75,76,75,75,77,81,85,87,87,87,87,86,90,102,114,
+119,115,104,97,96,95,94,92,71,44,30,25,24,24,24,23,23,22,20,15,11,10,10,11,10,11,11,12,15,20,24,33,48,68,92,116,138,146,139,122,97,71,50,30,15,6,2,1,
+1,1,1,1,2,2,5,7,7,4,4,3,3,4,9,19,113,117,115,107,102,103,115,138,164,186,203,208,216,235,245,247,245,233,208,173,145,127,118,117,117,118,118,120,124,133,148,166,
+190,221,248,255,241,216,176,136,114,101,96,96,91,87,91,97,105,113,121,130,138,147,156,166,176,182,186,186,182,172,154,129,99,68,43,25,12,6,2,2,0,0,0,0,0,0,0,1,
+3,8,16,29,51,76,107,135,157,172,180,179,174,167,160,151,143,136,131,131,138,151,163,173,176,173,163,145,124,104,92,86,82,80,78,76,75,77,85,91,87,78,70,67,66,78,97,106,
+111,120,117,104,86,69,57,49,50,58,68,80,93,107,117,121,111,87,59,37,20,10,3,0,0,0,0,0,0,2,15,31,44,50,49,47,47,48,49,52,59,61,57,52,38,24,18,16,
+17,18,17,16,17,17,23,32,41,44,45,45,44,45,49,51,49,42,31,23,18,15,13,13,8,1,0,1,3,5,6,5,5,5,5,4,3,1,0,0,0,0,0,0,0,0,0,0,
+1,7,16,32,59,90,116,135,144,143,133,116,95,76,66,65,66,67,66,65,65,68,76,83,80,70,64,60,59,64,77,93,126,129,138,153,173,198,220,238,248,244,231,223,204,176,156,146,
+144,144,134,117,96,74,51,32,18,11,7,6,7,10,16,25,47,88,150,205,231,245,246,228,192,141,110,92,73,66,72,80,89,97,105,113,122,132,140,148,157,166,173,179,183,185,182,175,
+161,142,120,98,77,60,48,40,35,32,33,37,42,47,53,60,71,85,101,120,140,157,171,180,184,183,180,174,168,160,151,143,135,126,117,108,102,101,104,114,127,141,153,163,168,165,160,158,
+157,156,155,154,155,156,159,161,155,140,130,124,122,120,112,105,95,74,47,26,12,4,0,0,0,2,6,12,20,32,49,73,101,121,128,122,107,89,69,51,40,34,29,27,26,25,23,26,
+34,45,60,81,97,103,103,103,98,92,85,81,77,76,77,77,76,77,77,76,77,77,76,77,79,78,79,80,79,79,79,79,77,77,77,76,77,79,82,87,92,96,101,106,112,115,117,117,
+116,116,117,115,111,105,97,90,85,81,79,79,79,78,79,79,78,77,77,77,81,90,104,121,140,156,170,179,183,181,180,185,190,191,188,180,169,161,160,162,158,147,141,140,143,143,139,134,
+205,219,232,242,247,250,248,231,188,129,89,71,46,22,10,11,25,48,73,96,112,120,117,104,86,71,56,41,27,19,14,12,12,18,36,70,110,164,216,240,245,232,217,197,153,107,83,80,
+86,93,101,109,117,125,134,142,149,157,164,172,179,185,189,192,191,187,182,174,165,155,149,144,140,137,137,139,142,147,153,161,169,178,187,194,200,203,203,201,196,189,181,171,160,151,143,135,
+126,117,109,100,92,84,77,75,78,87,104,128,156,171,171,170,167,163,159,153,142,133,127,118,101,83,74,70,67,62,50,38,21,9,2,0,1,8,17,29,48,67,76,76,77,77,79,86,
+104,142,180,198,203,204,200,192,184,177,171,165,160,157,155,154,154,155,167,193,211,216,216,216,215,215,215,216,216,216,217,217,216,217,217,216,216,216,216,217,216,216,216,217,216,217,217,217,
+217,217,217,219,220,222,226,231,233,234,235,237,238,238,239,239,238,238,238,238,238,237,234,231,228,224,220,219,217,216,217,217,217,217,217,217,215,215,214,215,217,221,225,232,240,243,244,247,
+249,249,247,242,229,213,203,200,198,199,204,212,217,214,205,202,253,250,241,231,222,202,155,91,36,6,0,0,0,0,0,0,0,1,9,22,40,63,86,106,118,121,121,116,103,92,81,75,
+73,71,64,59,64,86,126,172,214,234,243,249,241,211,173,146,132,126,129,135,141,147,152,157,162,166,170,175,182,187,192,196,198,201,203,204,204,204,205,205,203,201,199,198,197,197,198,201,
+202,204,204,204,203,203,202,201,199,196,190,183,173,164,157,149,140,131,124,119,114,110,106,105,110,119,131,142,151,154,146,129,107,91,82,69,53,42,36,29,20,14,13,18,25,30,36,52,
+67,76,78,79,86,111,140,162,188,210,216,217,217,217,217,216,219,230,241,244,246,249,251,253,255,255,254,254,252,251,249,249,249,248,248,246,238,235,233,234,234,233,233,234,234,234,236,237,
+238,238,238,237,238,238,238,238,238,238,237,238,239,240,240,240,240,240,240,241,242,241,243,243,242,240,238,237,235,234,234,234,234,234,234,234,235,238,240,242,245,246,245,243,241,238,238,237,
+235,234,234,234,234,235,235,235,237,239,241,242,244,243,242,239,234,229,228,229,230,231,237,240,242,243,245,246,248,249,250,251,185,144,113,97,83,51,15,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,5,14,31,47,63,79,96,111,118,122,124,125,125,126,124,122,123,127,139,159,177,193,221,246,255,250,236,212,183,168,165,168,171,174,177,179,179,176,176,177,179,183,187,
+191,195,197,198,200,201,202,203,203,203,202,200,200,199,198,198,196,194,191,188,185,182,179,177,177,177,178,180,181,179,175,172,168,164,161,158,158,159,160,166,170,172,169,155,130,104,76,51,
+31,22,17,14,11,11,17,34,60,77,87,111,138,152,166,192,210,216,217,218,222,234,243,245,244,235,229,228,228,228,228,228,226,212,187,174,171,172,175,178,182,187,192,198,205,209,210,212,
+212,213,210,196,178,170,170,170,170,169,170,170,170,170,171,171,171,171,171,170,171,171,171,170,169,166,157,149,145,141,140,140,139,139,138,132,127,121,119,117,114,110,105,103,101,100,100,100,
+99,100,100,100,101,104,108,116,127,138,149,161,168,169,170,170,170,169,169,170,172,176,180,186,191,194,192,182,165,145,128,113,102,96,97,98,98,105,128,158,173,174,171,170,168,175,191,202,
+31,7,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,5,11,21,35,48,60,68,72,76,84,92,98,100,100,101,104,108,114,134,169,207,236,250,
+249,225,192,169,153,140,139,142,145,146,147,147,149,153,158,163,167,171,175,177,180,183,185,187,188,189,189,189,189,188,187,186,183,181,177,173,169,163,158,154,150,148,147,148,151,151,150,148,
+148,146,142,137,134,134,135,143,151,151,143,132,117,98,76,54,35,26,31,50,72,90,121,162,199,216,222,233,243,245,246,243,234,230,228,228,226,214,190,171,145,114,99,97,97,97,97,97,
+93,75,50,37,35,35,35,35,37,39,43,51,61,71,80,86,89,91,95,94,91,90,90,89,88,89,89,89,89,88,81,73,70,70,70,69,69,69,69,69,65,58,48,36,28,22,20,21,
+21,21,18,14,10,8,7,6,6,5,5,5,5,5,5,4,4,4,4,4,3,2,3,5,11,20,33,50,66,76,80,85,92,94,93,92,92,96,103,116,129,133,127,116,102,85,64,43,
+24,11,4,3,4,5,12,24,34,36,35,35,35,42,61,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,4,8,15,23,31,35,
+36,39,43,48,52,54,50,45,41,40,42,46,59,85,125,179,227,246,241,227,202,165,141,124,115,113,116,120,126,132,139,144,149,153,157,160,164,167,169,171,172,173,174,174,174,172,171,169,
+167,164,160,158,157,156,155,154,153,151,149,147,144,141,138,134,131,126,118,110,101,91,82,77,76,75,71,72,81,92,99,102,107,125,152,182,208,221,234,245,246,235,228,217,194,176,166,141,
+112,99,97,96,92,74,50,33,20,9,5,5,5,5,5,5,4,1,0,0,0,0,0,0,0,0,0,3,9,18,25,28,29,30,33,37,39,39,34,25,18,15,13,12,12,12,8,4,
+3,3,4,6,8,11,12,12,10,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,17,25,34,41,48,54,58,62,65,66,68,
+70,68,63,57,51,43,37,36,42,45,44,49,61,76,84,85,76,59,37,16,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,5,4,4,4,4,2,0,0,0,0,0,
+0,0,0,0,0,0,0,0,4,24,36,42,46,49,50,51,52,53,54,55,57,59,59,56,50,44,42,41,42,45,56,85,137,192,228,245,251,241,226,202,172,151,138,131,126,124,126,129,
+133,137,142,145,148,151,154,155,156,158,159,159,159,158,157,156,156,156,159,165,173,178,180,180,178,175,172,167,160,153,145,139,135,131,127,123,119,112,101,87,75,64,56,58,77,101,119,151,
+195,231,248,251,243,231,214,185,150,113,95,78,53,37,29,18,7,3,4,7,8,6,3,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,23,34,38,41,44,47,48,
+48,49,49,49,49,50,49,42,32,23,17,13,11,11,11,13,17,20,23,27,33,38,39,39,36,31,26,20,13,6,0,0,0,0,0,0,1,1,1,1,1,3,4,4,4,5,6,8,
+12,20,34,56,81,100,111,117,119,119,117,113,106,98,92,88,86,86,86,85,84,79,70,58,45,32,16,6,8,18,34,52,71,84,87,75,51,25,10,2,0,0,0,0,0,0,0,0,
+21,28,40,50,56,56,56,55,55,53,46,35,30,25,14,7,6,14,24,26,26,25,25,25,38,61,70,67,64,60,57,58,61,66,69,70,66,59,56,58,62,64,65,68,71,74,76,79,
+89,111,140,174,212,236,248,252,243,229,213,197,177,156,139,134,133,136,141,146,149,150,150,151,154,159,164,165,166,165,166,169,173,179,186,193,195,194,190,185,180,174,168,163,157,148,137,125,
+115,106,102,98,98,104,113,123,138,153,166,178,198,214,219,231,244,239,216,191,170,152,129,95,62,36,24,20,21,24,26,26,21,24,35,47,55,57,57,57,57,56,48,36,30,26,23,27,
+47,78,93,95,95,95,95,94,104,121,122,101,80,63,43,31,30,34,38,40,36,33,37,44,50,51,49,48,48,48,48,49,50,51,50,47,45,40,39,40,47,60,68,71,69,65,61,54,
+42,29,30,36,38,35,32,32,34,45,56,58,58,59,63,72,84,100,121,138,149,150,145,140,133,126,121,117,110,101,89,78,68,61,57,58,61,70,78,84,86,82,67,43,22,9,2,4,
+13,31,55,77,88,83,70,54,37,24,17,17,21,25,28,28,83,84,84,83,82,84,90,97,100,102,103,104,112,121,125,138,145,161,178,182,181,180,179,179,181,185,187,186,188,190,191,193,
+196,199,201,202,196,183,161,129,96,78,68,60,58,60,62,62,60,60,63,74,99,129,167,209,233,245,250,248,240,222,198,183,173,161,153,149,146,146,145,144,147,154,162,165,164,165,166,170,
+173,175,176,170,160,152,143,137,132,129,125,124,124,127,129,129,129,132,138,141,140,152,172,193,218,237,248,252,251,244,237,226,199,155,108,83,87,103,118,127,123,109,97,90,93,100,103,104,
+99,92,89,89,86,85,85,85,84,84,83,90,108,135,167,189,208,226,230,231,230,230,229,229,230,230,229,221,212,199,166,127,99,92,86,73,63,53,47,46,46,45,42,39,39,38,36,32,
+26,21,23,29,35,46,73,97,127,166,187,192,195,200,205,206,187,143,105,83,63,51,48,49,52,67,82,85,85,85,90,99,107,114,119,111,98,85,74,68,66,64,63,67,74,83,88,90,
+87,80,71,64,58,57,57,61,69,83,97,99,89,73,54,38,30,30,37,51,74,99,117,127,123,110,97,91,93,101,104,103,70,61,61,81,117,141,165,185,192,196,198,204,214,228,241,253,
+255,252,249,247,247,247,246,246,246,242,230,221,219,220,221,221,221,219,218,218,222,231,241,244,225,203,179,136,91,68,62,58,57,57,56,52,54,61,79,108,137,169,199,223,241,250,248,240,
+228,207,182,163,158,157,153,146,144,142,137,132,127,123,123,124,123,121,118,112,104,98,93,88,85,81,79,83,92,108,128,151,180,206,226,234,236,242,248,251,249,241,227,213,202,189,179,162,
+136,113,97,87,88,99,114,127,134,130,116,102,94,92,92,92,90,79,62,43,30,28,27,25,26,40,85,156,207,237,250,241,227,201,176,167,165,165,164,162,163,162,168,187,204,220,238,244,
+235,225,205,168,135,116,101,87,80,74,66,55,47,44,39,33,41,71,115,154,177,198,220,230,231,219,208,209,211,214,214,216,229,235,216,185,132,68,22,9,11,19,27,28,29,27,29,33,
+33,33,32,23,15,10,7,5,5,5,5,8,13,22,34,46,60,71,79,83,85,86,84,82,81,85,97,112,125,132,129,116,104,99,93,85,86,97,112,125,133,129,115,100,93,90,89,88,
+99,123,162,205,228,229,219,203,195,198,198,199,203,217,241,250,250,250,246,241,239,239,241,241,243,243,228,191,147,109,82,68,63,60,57,58,65,81,111,158,201,221,238,243,216,171,131,111,
+103,100,93,83,79,81,83,86,92,103,118,136,160,195,227,239,245,248,241,232,230,230,227,220,219,213,196,180,160,145,142,141,140,138,137,136,134,132,130,127,128,134,137,153,175,195,213,226,
+239,245,241,232,228,221,205,191,170,141,120,107,104,104,104,96,88,86,79,66,61,59,57,52,50,47,38,27,20,18,17,16,14,8,2,0,0,0,0,27,80,142,204,229,208,180,139,114,
+130,141,123,92,72,67,71,73,74,74,75,77,75,78,99,138,168,184,212,228,224,212,190,158,135,121,118,120,116,108,115,141,184,225,243,233,218,205,177,152,132,101,84,81,76,68,59,55,
+78,133,178,211,234,207,127,55,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,6,13,21,28,35,42,51,57,62,66,71,80,90,100,102,95,
+87,85,77,63,57,56,54,50,47,44,35,23,16,17,35,66,228,232,222,188,134,96,69,45,37,39,39,39,41,53,90,114,126,150,168,169,153,134,123,119,122,151,203,228,220,186,132,71,
+27,3,0,0,0,2,7,20,43,63,101,162,215,238,226,200,172,130,85,62,58,60,63,65,67,67,65,62,65,84,117,140,168,200,225,236,236,237,245,254,255,255,251,247,239,232,230,229,
+229,229,229,228,228,228,228,226,230,238,240,244,251,253,254,253,251,245,226,198,173,145,107,75,50,32,24,22,25,26,24,20,17,15,12,8,6,6,4,2,0,0,0,0,0,0,0,0,
+0,0,0,7,24,56,111,178,226,230,193,114,50,22,5,7,36,75,100,93,63,33,16,11,10,10,10,6,1,0,0,5,17,36,82,135,189,236,252,248,240,229,224,226,224,212,219,237,
+234,201,147,98,73,62,49,40,38,35,29,22,14,8,4,3,4,12,28,59,121,198,235,213,166,103,44,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,1,4,7,10,13,18,22,24,23,19,15,15,12,7,5,4,3,0,0,0,0,8,50,102,162,208,134,104,70,32,8,0,0,0,0,0,0,0,0,0,6,12,
+21,44,79,117,126,96,56,26,10,14,48,98,150,200,230,222,181,123,68,27,6,1,2,3,3,4,8,25,65,127,187,215,232,222,163,99,65,58,65,69,70,70,67,66,66,66,61,56,
+66,89,116,132,134,138,163,204,223,218,202,208,225,234,235,236,235,235,235,235,234,234,234,233,237,244,243,236,226,218,212,208,206,210,221,228,226,217,199,174,146,115,79,53,44,39,37,34,
+29,28,28,25,17,8,3,2,1,0,0,0,0,1,9,20,38,62,92,138,178,212,232,211,151,87,37,3,0,0,6,9,18,39,75,114,125,96,59,41,33,27,24,25,31,50,82,101,
+111,142,174,192,218,230,210,201,208,216,221,225,225,206,178,139,89,41,16,8,9,16,27,32,33,34,31,29,28,26,24,22,18,14,10,6,12,50,120,179,223,233,199,131,66,32,9,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,5,8,10,10,8,8,7,7,6,4,0,0,0,0,0,0,0,0,0,0,0,0,0,2,25,71,137,206,233,224,182,
+6,0,0,0,0,0,0,0,0,0,3,17,40,64,77,82,89,98,110,135,155,153,133,104,73,49,30,23,29,53,100,156,208,231,217,174,117,60,17,2,2,4,5,4,5,15,38,66,
+110,181,229,226,204,194,198,201,202,202,202,201,201,195,169,124,86,56,46,49,51,55,66,87,104,99,88,94,112,125,128,129,128,127,126,126,123,123,121,120,122,131,130,121,111,107,103,101,
+104,113,132,154,173,190,208,225,234,237,227,211,203,195,193,189,184,182,182,178,163,138,120,117,110,107,106,102,97,109,144,173,198,219,229,229,207,172,117,54,11,0,0,13,38,62,76,83,
+95,108,126,157,187,199,197,199,197,192,186,185,192,208,224,228,228,221,203,188,166,112,53,39,43,50,54,59,59,43,25,11,4,6,11,18,26,46,69,77,80,81,81,81,80,75,69,60,
+50,40,31,25,17,10,13,32,72,134,201,232,219,189,140,82,38,11,1,0,0,0,0,0,0,0,0,8,21,33,39,44,53,64,72,75,75,75,77,76,75,70,60,44,26,12,4,0,
+0,0,0,0,0,12,51,88,118,173,222,230,187,123,74,29,0,0,0,0,0,0,1,9,20,36,61,90,113,122,119,116,114,108,103,97,94,99,111,122,124,119,111,101,88,71,53,48,
+73,118,172,217,233,211,147,75,29,14,12,19,27,33,39,44,51,78,129,173,201,211,211,210,209,210,212,212,214,220,236,239,218,168,111,71,53,41,39,41,42,41,41,44,47,50,50,49,
+48,48,47,46,47,49,49,49,53,62,77,94,107,114,114,113,110,106,98,91,89,88,92,103,117,141,175,196,203,206,207,209,211,209,206,207,215,224,227,227,227,227,226,227,227,228,223,205,
+181,152,121,82,43,17,3,6,20,44,76,105,129,148,165,183,202,217,225,232,240,242,240,236,231,232,232,230,222,204,168,134,116,84,50,32,18,3,0,0,0,0,1,8,16,25,35,45,
+53,60,67,71,76,89,105,113,119,126,131,135,136,133,128,120,108,92,75,58,43,31,19,11,5,13,50,110,162,202,229,225,194,148,116,90,65,50,44,42,45,55,72,93,111,122,124,127,
+133,149,163,166,165,170,180,186,186,179,167,157,141,119,95,69,49,44,49,69,98,145,204,228,229,216,163,95,35,2,0,0,11,11,12,15,22,32,50,75,96,112,122,119,100,72,52,45,
+40,32,25,19,14,15,25,43,63,83,98,108,114,119,117,105,90,82,87,107,150,202,235,223,183,143,105,91,98,106,114,118,119,117,118,123,129,127,114,96,83,78,77,77,80,92,127,169,
+213,240,233,208,177,118,78,72,72,74,76,83,87,88,88,88,88,86,84,85,90,96,100,108,121,132,140,141,134,122,112,105,95,84,73,66,61,57,53,50,47,45,49,55,62,74,82,91,
+100,104,104,103,113,130,138,136,135,134,127,126,130,131,112,85,65,50,42,43,47,64,102,136,160,190,216,226,226,229,234,234,224,207,193,174,139,108,93,85,90,105,118,125,129,128,121,108,
+94,81,68,51,41,39,41,41,46,56,72,87,99,108,117,124,130,137,144,151,153,155,157,161,168,174,178,179,180,180,178,172,163,151,138,124,110,93,78,67,60,52,50,59,75,99,140,180,
+215,236,238,234,225,216,210,208,208,212,218,222,222,218,215,214,217,230,235,234,234,234,234,233,229,228,230,235,243,243,234,215,196,195,208,225,238,238,206,160,132,95,46,16,8,9,10,11,
+82,82,84,91,100,109,118,121,112,99,78,49,24,7,1,0,0,0,0,0,0,0,0,0,4,11,19,26,36,56,82,104,121,130,131,127,127,142,176,211,234,244,226,184,146,117,100,91,
+90,93,94,99,110,120,124,120,113,108,99,92,92,95,100,112,137,174,216,241,254,235,185,145,133,132,134,134,134,133,133,134,133,131,134,142,151,162,180,202,220,222,216,209,201,195,192,191,
+188,186,185,184,184,183,183,184,181,174,157,124,103,104,111,117,126,135,144,150,154,158,161,161,159,157,154,151,155,176,192,196,198,198,202,209,214,225,242,248,246,238,218,202,189,168,136,100,
+70,45,32,21,7,0,0,0,1,9,19,27,39,57,79,99,110,117,122,120,116,114,114,115,117,121,122,119,115,113,111,111,119,131,146,165,183,192,192,182,163,143,129,123,126,140,160,178,
+189,188,182,177,174,165,153,142,136,130,127,125,121,118,118,124,140,159,173,191,207,217,221,224,224,220,215,208,204,200,198,199,191,161,128,117,117,117,114,110,107,110,128,147,177,222,244,247,
+249,252,255,255,251,229,169,119,102,98,96,89,83,82,82,82,117,117,117,115,110,101,85,60,38,22,10,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,28,62,98,134,162,
+189,202,207,212,213,208,199,190,190,215,242,243,218,175,117,60,27,16,17,25,37,53,76,101,126,141,134,126,125,125,127,131,134,133,138,151,187,231,242,209,171,135,118,112,108,104,103,102,
+106,129,172,208,222,231,236,229,212,204,201,201,201,201,201,201,201,201,202,202,202,201,202,201,203,208,219,231,229,228,228,228,229,230,231,232,233,234,235,239,240,242,243,246,245,240,231,227,
+227,227,226,222,219,210,179,145,120,89,53,37,30,19,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,11,23,35,46,62,78,86,88,88,88,85,75,63,52,44,43,48,57,
+75,98,127,154,176,180,156,110,60,29,15,12,14,25,50,94,144,181,195,192,182,165,145,129,117,108,98,85,75,70,67,66,65,64,66,69,69,68,69,69,66,58,50,43,40,39,39,39,
+33,16,3,1,1,2,2,1,2,2,8,17,26,66,126,143,136,129,133,159,190,223,231,203,167,127,103,105,112,114,116,116,45,45,45,40,32,23,12,2,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,9,28,68,129,186,219,228,226,218,205,197,196,197,199,204,213,223,226,229,235,242,250,252,239,200,143,74,24,4,0,5,11,25,45,61,60,56,55,57,58,63,
+69,65,57,50,53,84,139,201,229,207,189,191,194,191,189,188,196,220,233,211,186,163,127,89,58,50,49,48,48,47,47,46,46,45,45,44,43,44,43,43,44,48,65,100,118,119,119,118,
+118,116,117,116,116,116,116,118,120,122,125,125,119,97,79,73,74,74,73,66,59,47,25,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,3,10,14,15,15,15,13,10,8,9,13,21,34,53,76,107,138,164,170,141,80,22,0,0,0,0,0,0,0,12,64,133,180,190,174,144,113,85,63,45,32,20,12,9,5,5,
+5,4,4,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,15,10,3,3,12,31,80,156,209,232,212,145,80,46,41,42,43,
+5,3,4,4,2,1,1,2,3,3,3,3,3,3,3,2,2,2,1,1,7,32,87,143,182,218,231,208,166,124,93,71,52,43,44,44,45,50,64,90,113,121,121,127,144,175,212,244,
+252,226,182,111,41,20,14,12,12,9,7,5,4,5,5,6,8,8,8,7,7,13,44,124,211,247,254,254,246,217,203,202,198,176,123,64,37,25,14,8,6,5,5,4,4,3,2,2,
+2,1,1,1,0,0,0,0,0,0,0,1,2,4,10,16,13,6,4,4,4,4,3,2,1,0,1,0,1,1,2,2,2,2,2,2,0,0,0,0,2,2,3,3,3,3,3,3,
+4,4,4,4,5,5,4,6,6,6,6,7,7,7,8,7,8,9,9,8,8,8,9,9,9,11,14,17,24,32,46,65,90,120,150,172,165,118,46,0,0,0,0,0,0,0,0,0,
+29,103,165,186,174,144,110,79,54,34,21,12,7,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,7,
+5,2,0,0,0,1,19,53,111,193,231,193,118,79,45,16,113,86,67,60,60,59,59,59,59,59,59,59,59,59,60,62,62,64,73,98,138,190,231,239,225,191,143,99,71,59,54,53,
+53,54,54,46,38,36,37,38,41,42,42,44,49,60,92,155,225,254,255,244,199,166,150,143,132,108,83,68,57,49,45,44,45,57,76,89,103,133,175,214,229,219,201,168,121,67,48,48,
+43,30,14,6,5,6,6,7,7,7,7,6,6,5,5,4,4,4,4,3,3,3,3,2,2,2,1,0,0,0,10,31,44,41,39,41,45,49,51,48,42,39,38,39,43,52,59,60,
+60,60,60,60,60,60,61,61,61,61,61,61,61,61,62,62,62,62,63,63,64,64,65,71,70,64,61,61,62,62,63,63,63,65,65,58,51,49,50,50,50,51,53,55,60,66,84,106,
+128,152,175,191,186,149,80,18,0,0,0,0,0,0,0,4,50,122,174,187,170,139,105,76,51,32,19,12,7,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,1,6,16,22,23,24,28,34,38,40,37,41,77,149,220,236,229,204,158,244,227,196,173,173,158,137,131,133,134,135,137,143,154,169,179,
+183,189,208,236,249,238,205,168,138,104,84,81,82,83,84,85,85,86,81,63,46,42,42,42,41,41,41,41,41,43,56,84,123,171,207,217,234,245,247,249,249,243,233,223,216,210,205,204,
+205,216,228,234,235,235,223,188,135,86,56,30,11,3,2,2,2,4,6,6,6,6,6,6,6,6,5,4,5,4,4,3,3,3,3,2,3,2,2,2,2,1,0,0,0,0,9,38,
+65,75,77,83,91,99,105,108,110,110,111,112,115,119,119,118,119,119,119,120,120,121,121,121,121,121,122,122,122,122,123,123,123,123,122,122,122,122,124,127,118,100,90,90,90,92,92,93,
+94,95,91,75,59,56,57,57,57,57,59,61,65,71,91,119,141,160,183,200,206,194,155,96,42,13,3,1,2,9,27,68,124,170,191,186,168,142,114,87,62,42,25,14,6,1,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,12,24,34,41,50,63,74,84,91,95,96,109,144,176,199,229,247,
+172,211,237,245,249,238,216,205,206,210,213,218,225,234,238,238,237,236,226,197,148,104,77,65,53,35,28,28,28,29,29,29,29,28,25,15,7,6,6,6,6,6,6,6,6,7,14,25,
+29,38,58,76,99,117,130,141,154,175,198,211,220,223,227,232,234,224,206,193,185,169,146,122,102,88,74,65,55,38,21,10,6,3,4,5,5,5,5,5,5,5,4,4,3,3,2,3,
+2,3,2,2,1,1,1,1,0,0,0,0,0,0,7,30,52,52,45,46,51,55,59,67,76,84,88,93,97,98,93,91,92,95,100,106,114,120,122,122,122,123,123,124,124,124,126,125,
+122,118,112,104,99,96,97,96,87,72,66,65,62,57,51,48,48,48,46,38,30,30,31,31,31,30,30,33,35,40,51,68,85,104,129,155,175,186,187,173,147,119,99,92,97,114,139,167,
+187,194,189,179,169,160,148,133,119,102,84,70,56,35,16,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,
+16,21,23,27,34,41,48,57,68,76,79,80,82,83,96,128,19,49,93,156,217,244,252,249,236,213,195,182,169,150,123,103,96,87,65,34,9,1,1,2,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,6,9,14,23,36,49,61,68,74,84,95,90,77,71,77,86,96,109,123,137,146,145,141,126,101,75,
+52,28,11,3,1,3,3,4,3,3,3,3,3,3,2,2,2,1,1,2,1,0,0,0,0,0,0,0,0,0,6,16,18,11,5,4,6,9,16,26,37,54,78,101,119,136,142,144,
+148,154,162,172,184,191,193,194,194,194,194,195,195,195,196,196,193,186,177,162,149,145,145,145,144,143,143,141,133,116,93,75,61,53,48,44,41,38,36,36,37,36,34,35,35,36,38,41,
+49,59,75,94,115,135,153,166,175,179,178,179,181,184,184,180,173,161,146,133,125,123,123,127,134,145,151,148,141,124,99,72,49,25,6,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,5,5,3,2,3,3,3,6,9,12,13,13,12,8,4,7,0,0,0,14,57,106,161,213,233,216,167,94,38,12,4,2,
+0,0,0,0,1,2,3,1,0,0,1,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,1,1,0,0,0,3,16,27,34,
+40,45,51,59,68,78,89,104,121,139,153,154,150,151,149,140,128,105,70,37,15,4,1,1,1,1,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,2,6,14,21,
+25,27,29,33,46,68,93,114,132,157,188,208,221,231,235,235,236,239,241,243,245,246,246,246,246,245,245,246,246,246,246,246,246,245,244,241,236,234,235,235,236,236,236,236,232,223,206,186,
+167,151,137,123,108,91,78,69,63,57,54,52,50,50,49,49,49,53,57,66,77,89,101,114,125,134,139,142,141,138,132,123,112,101,91,85,83,84,88,99,112,130,144,149,151,154,151,140,
+127,104,69,35,13,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+3,3,4,9,14,23,43,89,149,202,231,214,161,119,123,137,133,125,124,127,127,127,126,117,101,84,72,63,60,59,59,60,60,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,
+61,61,61,61,61,60,59,59,62,70,81,98,133,170,187,193,194,197,203,208,210,210,209,210,210,209,207,195,157,114,91,89,102,123,129,118,95,68,42,16,2,0,0,0,0,0,0,0,
+0,0,0,2,3,5,8,12,20,27,32,39,51,70,91,113,128,136,140,147,165,191,213,225,232,240,247,247,243,238,235,234,233,230,227,223,217,213,212,212,214,216,217,218,219,219,219,221,
+223,229,235,242,246,246,246,246,247,246,246,247,248,251,251,249,245,240,235,227,216,200,184,169,152,136,123,114,108,104,103,101,98,97,97,98,99,102,105,107,110,110,111,108,103,100,101,101,
+99,103,109,114,113,106,97,91,84,76,70,69,72,76,79,86,102,122,127,111,83,54,28,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,62,70,83,94,99,98,98,108,132,173,220,243,243,250,255,255,254,249,247,248,247,248,246,240,226,209,187,162,145,133,125,
+121,117,115,116,117,117,118,119,119,119,119,119,119,119,119,118,117,116,116,116,116,121,132,143,167,202,225,239,247,243,237,238,235,234,229,222,214,209,204,201,200,197,200,216,225,199,161,126,
+109,121,148,171,180,174,156,124,88,61,46,35,26,23,22,24,27,29,31,36,49,67,79,94,117,135,145,155,171,192,210,224,232,234,235,238,242,246,247,243,238,231,218,199,180,167,163,165,
+168,164,161,161,159,158,158,158,162,166,169,170,172,173,174,177,181,188,194,203,210,212,213,213,214,214,215,216,222,231,239,245,249,251,254,254,254,253,249,245,235,223,207,190,175,164,157,152,
+149,146,144,142,140,138,137,135,134,131,130,127,126,126,135,141,136,136,130,109,85,66,48,33,21,12,7,4,4,5,6,10,21,46,79,109,123,122,103,68,32,8,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,10,19,28,38,48,121,120,121,118,112,106,104,103,98,90,88,105,131,147,164,179,
+192,196,164,146,147,146,149,160,180,203,222,235,236,227,210,194,178,146,111,90,83,80,74,67,64,64,64,64,64,64,66,68,76,87,95,105,128,171,209,227,238,232,207,183,153,126,120,120,
+106,94,79,61,51,51,56,61,69,81,104,146,201,234,243,239,228,220,222,229,235,240,243,241,230,212,190,163,137,122,119,121,126,131,130,135,158,186,201,212,226,234,238,240,244,247,247,245,
+241,238,236,233,226,211,190,171,162,156,145,135,130,129,131,133,133,131,129,125,118,114,114,114,113,111,110,114,117,120,123,126,129,130,128,132,137,140,142,143,144,145,146,148,153,163,174,188,
+200,209,217,226,235,243,247,250,250,249,243,231,212,190,170,148,129,114,104,98,93,90,87,85,83,81,82,87,95,97,105,106,90,75,59,34,15,7,1,0,0,0,0,0,0,0,0,0,
+0,0,9,32,58,87,114,124,106,73,41,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,5,18,37,57,76,94,105,112,118,
+70,67,61,49,37,31,34,43,48,48,45,44,44,43,40,36,36,34,16,7,8,8,9,12,20,38,63,101,145,177,201,216,223,227,210,187,176,169,148,115,100,99,99,100,99,104,110,124,
+153,182,196,207,223,227,204,178,143,86,43,25,16,13,15,14,6,4,9,21,43,75,104,124,139,162,188,210,226,235,242,247,250,251,250,249,247,247,249,254,255,255,252,246,238,231,227,228,
+229,230,229,231,239,246,247,247,244,238,234,231,225,211,192,173,156,146,143,140,132,120,109,107,117,126,127,122,113,103,93,83,71,67,62,52,42,39,45,57,67,71,75,80,85,88,89,88,
+89,90,89,92,95,100,102,103,106,113,124,132,136,145,161,180,187,192,196,204,215,225,233,240,245,248,250,249,244,235,221,198,167,131,96,68,50,38,30,26,22,19,18,19,22,24,25,23,
+15,9,4,2,2,2,2,4,8,11,12,12,12,12,12,12,12,12,9,6,6,16,41,78,111,123,115,92,65,43,23,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,2,7,16,28,43,60,84,105,114,116,111,102,92,83,5,3,1,1,9,25,47,67,78,82,82,82,81,78,72,60,45,30,17,7,1,0,0,1,11,25,38,52,70,86,102,115,
+127,152,180,198,204,208,221,229,229,228,228,229,228,229,229,229,220,202,188,174,151,99,46,23,9,0,0,0,0,0,0,3,22,57,103,141,175,205,226,236,242,247,251,252,248,245,242,238,
+231,224,217,208,197,186,186,196,213,228,235,241,246,248,248,245,241,238,236,232,223,210,200,190,171,151,138,128,115,95,78,68,69,75,83,92,103,111,116,117,111,93,72,53,37,25,17,11,
+5,5,5,8,18,38,61,84,99,108,113,119,124,128,129,127,123,119,116,114,113,116,124,139,164,191,213,222,226,231,239,245,245,244,242,241,242,242,244,246,248,249,251,252,253,253,252,249,
+242,224,191,147,104,67,41,25,16,11,8,6,4,3,2,3,9,18,30,40,44,46,51,66,84,91,95,94,92,87,79,74,72,71,68,60,45,28,15,17,38,69,98,117,121,114,97,71,
+46,30,22,18,13,8,4,2,1,1,1,1,1,3,6,12,21,32,42,55,72,87,99,105,103,88,69,53,37,25,17,11,0,4,16,35,60,80,87,81,70,63,62,63,65,70,80,93,
+102,106,101,83,65,54,50,57,73,85,88,86,81,74,72,74,80,89,94,89,74,63,76,103,116,117,116,117,117,114,106,95,69,42,29,20,10,0,0,0,0,0,0,0,4,18,46,85,
+135,184,222,240,248,252,253,251,251,248,242,231,220,212,202,184,159,138,126,121,117,111,103,96,101,111,121,139,158,180,193,196,192,187,181,172,158,136,118,104,89,77,69,66,63,65,73,89,
+107,120,125,122,111,94,79,65,45,23,8,0,0,0,0,0,1,8,21,42,70,92,102,103,98,99,105,114,123,133,146,159,169,174,173,167,163,171,198,228,245,251,247,242,240,239,231,220,
+219,221,221,218,213,208,204,203,207,216,226,233,236,239,243,248,251,253,250,236,206,164,117,75,47,27,14,8,6,12,27,46,63,78,87,90,90,92,103,125,141,147,147,148,149,146,131,110,
+93,82,80,85,88,85,68,46,28,21,28,50,74,97,114,119,113,101,93,90,82,67,53,45,41,39,36,35,36,41,50,63,78,90,97,99,93,82,70,59,41,21,7,0,0,0,0,0,
+52,63,76,85,85,72,55,39,31,30,37,45,51,56,68,89,112,133,141,128,114,107,100,90,79,61,45,33,23,17,15,17,28,46,69,84,83,67,45,28,14,6,3,2,1,0,0,0,
+0,0,1,1,1,0,0,0,0,5,18,44,81,124,164,201,230,246,250,246,236,218,195,179,172,161,142,123,114,120,126,119,100,75,53,44,47,64,83,94,91,79,67,64,72,88,104,114,
+116,114,112,117,117,108,100,95,93,91,90,91,97,109,123,133,139,143,144,133,113,89,69,52,42,36,30,26,24,24,27,35,50,64,80,94,97,87,74,67,69,79,95,111,123,135,149,166,
+182,199,210,213,218,232,247,245,229,211,195,187,184,183,179,175,179,186,194,200,200,195,188,180,175,174,175,177,178,180,188,199,215,233,246,250,248,238,215,181,144,104,67,48,50,67,84,92,
+89,80,66,53,48,48,56,68,75,77,77,78,86,101,110,106,90,68,50,41,47,63,80,88,81,63,47,45,52,64,82,97,105,108,111,120,123,113,106,104,104,102,98,95,97,99,102,107,
+113,118,122,115,101,83,72,66,61,57,52,44,34,28,31,38,156,149,135,120,104,95,96,101,102,99,96,91,87,85,86,86,85,82,74,60,54,54,50,36,19,7,1,0,0,0,0,0,
+0,2,14,36,60,81,89,84,71,57,48,41,39,39,39,40,46,53,56,57,55,52,50,53,64,90,128,168,202,225,237,246,248,239,215,176,136,97,64,46,38,31,22,13,12,23,42,65,
+84,92,85,65,41,27,30,47,66,80,83,84,91,99,105,108,104,94,81,74,73,73,75,78,80,81,85,99,132,175,200,204,205,207,210,211,211,207,193,167,148,129,112,109,108,102,99,103,
+106,105,100,91,81,75,78,90,105,120,134,144,153,161,169,179,195,218,237,245,248,245,223,196,181,175,173,173,174,174,177,178,179,181,185,192,200,205,207,205,200,194,187,181,176,170,167,165,
+171,188,208,223,236,246,248,244,235,217,189,161,136,116,95,74,54,37,22,13,10,10,12,14,15,15,15,15,18,31,51,73,91,97,91,72,50,40,48,68,88,101,103,106,113,123,134,147,
+158,166,170,173,173,168,167,174,183,186,183,181,182,181,179,178,179,181,186,188,189,189,188,188,190,190,189,178,154,145,152,157,238,231,222,218,215,214,215,212,202,187,161,124,89,65,47,31,
+21,13,6,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,22,42,63,77,85,87,88,88,87,87,86,87,86,90,95,104,121,143,164,183,209,232,243,248,248,244,233,
+204,159,105,59,30,13,4,0,0,0,0,0,0,10,26,46,69,94,116,124,113,85,51,32,40,67,103,140,172,195,201,204,209,208,203,192,185,183,184,185,186,190,197,212,232,236,224,219,
+219,219,220,221,223,227,237,245,243,233,221,219,219,205,178,152,132,123,117,114,115,120,125,131,136,139,144,149,159,176,200,218,235,250,255,248,230,201,183,179,180,182,183,185,185,186,187,188,
+189,189,188,189,191,195,200,204,206,207,205,203,198,193,186,178,169,163,161,168,182,207,231,244,250,252,250,239,211,177,153,134,120,105,88,78,74,73,73,73,72,72,73,72,74,80,91,105,
+122,139,156,163,157,146,139,139,144,150,156,171,196,216,228,238,245,249,249,246,242,239,236,237,238,240,245,247,248,248,248,248,248,248,249,249,250,251,251,251,252,252,252,251,244,241,244,243,
+235,241,245,245,244,244,246,246,245,241,229,204,167,125,80,44,26,18,12,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,16,27,36,41,43,46,52,59,
+66,80,104,127,154,186,213,230,240,247,252,251,241,219,186,146,94,45,16,3,0,0,0,0,0,1,10,28,49,68,80,86,88,91,102,127,151,157,152,158,180,202,220,229,219,203,198,198,
+202,207,218,226,229,226,222,221,221,222,223,217,181,132,102,95,97,97,97,98,102,110,129,153,172,202,219,218,222,236,243,227,212,210,209,209,207,207,207,207,207,207,209,214,223,235,247,253,
+254,247,232,209,190,184,187,188,190,190,191,192,192,192,192,193,193,194,194,193,192,193,192,192,193,194,193,191,186,179,169,160,149,142,138,138,159,199,230,244,249,253,254,254,251,245,242,235,
+227,219,206,198,195,195,195,195,195,195,196,200,204,209,213,215,215,217,222,228,236,239,240,240,238,234,232,239,246,248,245,242,239,240,243,241,233,223,212,196,180,181,192,194,192,190,190,191,
+191,191,192,192,193,196,198,199,199,199,200,211,228,236,233,230,107,128,152,171,178,179,182,192,209,226,239,246,241,226,197,160,137,121,101,78,57,38,27,20,13,9,6,5,5,5,5,6,
+6,6,5,5,5,5,4,4,3,4,5,11,26,53,85,115,144,174,201,218,230,240,243,243,241,233,215,188,164,145,122,93,61,36,23,15,13,14,18,24,32,46,67,84,88,80,64,50,
+47,66,105,163,209,225,237,245,241,222,191,153,116,86,77,76,80,91,111,137,148,136,114,100,92,82,71,57,31,15,12,11,11,12,12,12,14,19,24,28,33,48,59,60,64,93,147,190,
+200,201,201,202,203,205,207,210,217,228,243,251,253,253,250,241,221,201,190,187,188,191,192,193,193,193,194,195,194,195,195,195,195,195,195,194,194,194,192,191,189,185,182,177,170,165,167,176,
+189,208,219,223,232,231,215,207,207,211,220,234,245,251,252,249,246,247,247,246,245,247,247,248,248,249,251,252,253,253,251,250,249,248,248,248,250,249,249,248,250,249,245,240,233,223,212,200,
+193,190,184,176,170,153,126,99,83,73,62,54,48,46,45,47,46,46,47,47,48,52,56,57,57,58,58,68,89,105,104,98,49,59,75,92,109,117,117,121,135,155,184,216,236,246,247,240,
+235,228,216,200,179,153,134,117,99,85,75,71,70,70,70,70,70,70,70,70,70,70,70,70,70,71,75,91,128,171,205,228,242,247,251,250,247,239,220,193,164,134,96,59,41,48,65,79,
+88,95,99,97,92,85,81,84,87,89,81,61,39,27,33,56,103,171,218,228,203,179,158,125,106,97,87,82,81,83,83,84,83,82,80,76,64,45,24,11,4,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,8,22,45,70,82,89,97,104,112,123,136,156,193,225,244,242,235,226,214,199,185,183,186,189,192,193,194,195,195,195,195,195,195,195,195,195,
+194,195,195,193,193,193,191,190,187,183,180,182,190,208,229,242,243,232,214,201,174,125,87,71,66,68,81,108,141,168,181,188,199,214,226,228,228,226,224,224,225,224,222,217,212,209,207,206,
+207,206,206,205,198,187,172,166,173,179,180,177,172,166,156,145,134,122,104,86,70,50,28,14,9,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,16,29,39,44,
+129,133,136,137,138,141,143,143,143,146,155,176,200,223,239,244,245,246,248,248,245,239,233,225,216,206,198,194,193,193,193,193,194,194,193,193,193,194,193,193,193,194,197,210,229,243,248,247,
+246,241,233,237,243,243,231,204,154,84,33,9,0,0,3,17,39,68,101,128,143,134,111,96,89,74,58,58,82,126,175,208,228,213,160,98,45,24,12,1,1,9,19,30,44,64,84,101,
+104,98,91,81,73,64,51,38,31,21,12,8,1,0,0,0,0,0,0,2,8,15,29,51,69,78,87,99,112,124,131,134,137,144,158,174,191,210,224,236,250,246,230,213,208,207,206,204,
+203,204,201,199,197,195,194,193,194,194,194,194,194,193,192,192,192,192,190,190,189,187,185,183,182,189,207,228,242,247,233,205,174,140,111,93,72,52,38,29,22,18,16,22,32,42,51,62,
+84,115,147,170,182,177,162,152,147,138,126,115,105,96,90,88,87,87,85,82,75,64,50,42,42,48,55,63,74,88,96,97,92,83,71,59,48,38,22,7,3,4,8,6,2,0,0,0,
+0,0,1,3,8,11,19,28,36,42,55,71,89,107,120,126,126,121,115,112,111,111,111,111,115,122,128,134,144,163,187,205,213,218,226,233,240,242,241,242,245,246,246,247,248,248,247,247,
+248,248,248,248,248,248,247,248,248,248,248,248,246,234,209,178,157,134,107,107,124,141,172,209,232,210,167,130,87,48,33,30,19,12,25,52,83,105,114,120,121,123,153,199,232,241,226,190,
+141,80,30,6,0,1,2,6,11,18,30,55,88,124,165,200,209,208,208,208,210,210,207,202,195,172,147,127,92,66,61,61,63,67,78,94,123,150,179,210,228,234,237,240,240,238,232,228,
+225,225,234,241,243,235,227,225,209,189,186,190,198,206,214,220,224,225,223,221,216,209,202,196,193,190,190,189,190,188,187,187,186,185,184,181,181,182,188,196,210,233,248,243,221,191,158,131,
+112,97,83,70,58,47,38,30,24,19,15,12,10,10,9,9,13,23,42,67,96,113,116,116,115,105,96,91,85,77,64,53,42,33,26,20,16,13,11,11,14,21,33,50,69,84,92,93,
+92,91,94,99,106,112,104,85,73,76,82,77,56,40,37,37,41,46,55,66,78,89,102,115,125,130,138,145,147,144,136,130,38,33,28,25,25,25,25,25,28,35,47,61,77,95,116,143,
+162,174,183,193,204,210,209,207,207,205,205,204,204,205,204,205,205,205,205,205,205,206,206,205,205,206,206,199,179,140,94,56,35,21,9,2,3,7,21,54,118,183,212,231,229,207,196,194,
+166,119,93,101,120,151,189,211,217,227,240,228,188,149,120,100,84,73,67,62,58,58,59,63,69,81,115,173,215,233,238,226,216,219,223,226,230,233,236,237,243,251,252,248,235,220,216,216,
+216,220,225,234,246,250,247,238,239,241,239,237,235,238,245,249,252,253,252,244,231,193,148,124,113,115,133,153,171,186,199,212,221,225,228,228,229,227,222,214,206,196,188,183,181,179,178,177,
+176,174,175,182,199,217,232,242,247,239,212,178,151,134,121,111,99,88,75,63,52,41,33,26,21,16,13,10,8,8,7,7,7,6,7,10,21,41,60,74,79,73,69,70,77,85,90,91,
+89,82,75,68,63,62,62,65,72,80,87,91,87,75,61,57,66,86,108,127,143,155,158,155,152,152,154,152,141,127,124,123,126,130,135,141,143,144,143,138,132,126,117,102,86,68,51,43,
+0,0,0,0,0,0,0,0,4,20,47,73,87,92,95,99,104,110,119,128,140,153,162,170,172,165,149,128,108,94,84,82,82,82,82,81,81,82,82,81,81,82,81,73,55,30,13,4,
+3,2,4,7,9,9,8,7,16,39,66,107,148,181,207,213,220,232,227,226,226,224,214,196,190,176,132,72,33,23,32,44,58,70,77,83,84,84,85,94,117,156,214,239,216,190,161,135,
+132,140,146,149,153,156,159,159,160,175,192,206,223,229,229,228,228,226,219,208,185,158,135,111,105,106,99,88,79,85,104,123,145,178,197,201,215,231,220,195,175,152,151,164,175,182,188,195,
+200,205,209,212,216,219,221,223,221,214,204,194,184,177,177,181,186,191,205,227,243,246,238,224,206,181,158,147,141,134,126,118,109,98,84,71,59,48,40,34,30,26,24,22,20,18,14,12,
+11,9,8,8,7,8,11,16,19,17,15,17,22,32,43,54,65,77,83,88,90,90,90,87,82,75,65,50,37,31,38,58,91,124,143,151,151,144,136,129,120,118,127,133,133,131,131,131,
+129,126,118,109,97,89,82,74,66,59,49,34,19,8,1,0,12,12,12,12,12,13,20,38,65,87,93,84,65,50,41,35,29,27,28,31,39,51,66,87,117,145,155,144,124,93,63,47,
+39,32,29,29,29,29,29,29,29,30,33,38,39,41,48,56,60,63,68,77,82,82,82,82,80,79,78,80,87,97,104,104,116,144,149,147,136,110,72,41,30,21,4,0,0,0,0,0,
+3,8,13,21,34,61,108,166,211,231,222,173,132,127,132,137,140,139,137,136,136,136,132,123,110,100,99,102,112,119,123,123,119,114,104,91,75,67,71,74,73,72,69,60,48,39,34,27,
+26,44,59,66,90,143,197,226,244,244,236,229,222,207,192,181,176,179,181,183,188,194,197,205,217,227,233,232,227,223,228,236,240,244,249,252,246,236,225,216,211,207,206,207,206,203,202,201,
+198,191,180,165,148,131,115,103,95,92,89,88,87,84,74,68,65,58,53,57,53,38,22,11,7,6,7,7,6,7,8,10,14,19,24,30,34,35,35,33,30,29,31,37,51,76,106,133,
+147,141,122,101,83,66,48,36,28,30,41,53,62,73,84,87,86,82,74,67,61,62,69,75,76,75,72,64,52,42,34,23,71,71,73,77,85,93,103,116,122,103,63,27,9,2,0,0,
+0,0,0,0,0,0,11,34,67,107,144,157,158,154,141,127,117,109,104,103,103,103,103,102,102,105,111,118,122,128,137,143,135,123,117,115,113,112,112,112,113,114,115,115,114,114,115,115,
+115,118,124,132,129,112,84,55,34,22,14,7,3,1,0,0,6,20,35,63,119,182,224,232,216,191,165,151,155,158,150,136,118,101,92,90,98,111,124,131,133,128,122,117,114,112,106,100,
+96,92,89,86,86,87,84,77,74,74,76,81,86,88,88,82,73,73,77,83,95,113,140,166,192,208,216,225,232,241,241,233,225,224,225,226,227,230,231,236,244,251,255,255,255,255,255,255,
+255,255,254,253,252,252,251,252,253,253,253,254,254,255,255,255,255,255,253,248,239,227,212,191,170,154,144,137,133,130,128,124,122,122,128,137,135,120,94,65,46,35,25,18,14,12,11,11,
+10,10,10,10,9,12,22,37,55,76,97,116,132,145,146,134,110,82,58,46,38,32,28,29,35,49,63,77,90,99,104,105,105,104,103,102,100,97,91,81,71,68,71,78,85,87,87,82,
+98,104,115,128,141,139,126,103,69,32,5,0,0,0,0,0,0,0,0,2,12,33,56,75,85,92,97,100,104,115,126,132,141,148,149,148,148,147,150,157,169,180,184,184,183,185,188,186,
+171,149,132,123,120,117,105,88,70,55,47,42,42,46,55,61,66,78,97,112,122,137,143,136,124,111,96,84,79,79,84,103,139,177,201,220,238,231,205,181,171,174,179,181,173,147,110,68,
+35,17,9,9,14,29,63,108,147,167,166,153,133,109,90,80,76,72,68,66,62,52,36,22,19,20,27,40,57,69,79,91,100,107,119,135,150,153,143,129,110,98,101,114,132,163,193,216,
+226,226,226,226,227,230,233,234,236,241,244,242,238,243,246,240,235,234,234,233,234,233,233,233,233,232,229,228,226,225,224,222,214,208,214,225,237,245,247,242,230,214,200,190,182,171,161,144,
+125,119,128,136,141,149,152,143,130,116,101,86,76,69,66,66,66,65,66,66,66,75,94,118,137,151,160,167,174,167,148,132,132,138,146,152,154,157,162,168,177,185,189,190,188,184,180,180,
+180,180,181,181,177,166,152,140,122,93,70,62,65,70,77,90,156,164,171,174,168,153,132,106,71,43,30,26,26,26,34,56,79,96,109,121,136,150,154,149,138,127,118,112,112,122,141,163,
+183,192,189,186,187,193,202,217,231,240,240,236,233,233,233,232,229,225,221,218,216,216,212,198,175,147,116,80,53,40,35,37,40,49,61,72,86,115,152,175,185,191,194,201,212,222,230,242,
+251,246,235,222,199,176,162,156,156,161,170,174,160,116,56,11,0,0,0,0,0,0,15,64,122,154,155,136,113,98,94,94,91,87,84,80,74,62,48,41,41,46,57,72,86,93,98,105,
+117,131,141,140,125,97,74,59,50,50,59,69,79,90,103,120,132,140,150,161,171,177,175,166,157,154,160,159,150,157,162,152,146,147,146,146,146,144,142,141,139,136,130,123,117,113,110,102,
+88,77,82,95,119,146,175,205,227,238,241,243,244,241,236,225,206,188,179,173,167,166,170,172,169,167,165,161,157,154,152,152,152,153,152,152,153,159,167,170,171,175,185,202,220,227,226,227,
+235,241,245,246,248,250,251,252,251,249,246,245,243,244,246,248,248,249,249,248,248,245,243,245,245,239,225,207,187,167,156,152,238,238,239,239,236,232,229,223,214,202,192,185,183,185,196,216,
+231,238,243,245,245,242,238,234,231,230,228,226,225,223,220,213,206,203,202,203,206,208,209,211,212,204,173,136,120,119,118,118,117,118,133,162,173,167,167,182,200,211,220,220,213,204,195,193,
+194,197,201,208,213,222,231,237,239,240,240,240,232,219,209,191,165,141,127,121,116,114,106,94,91,102,123,141,139,102,41,2,0,0,0,0,0,1,5,35,89,129,143,139,133,131,124,108,
+93,85,81,80,83,87,89,88,87,88,86,85,88,92,96,104,121,135,142,131,103,74,56,49,49,54,63,71,82,94,105,117,131,149,166,176,175,164,146,133,122,112,104,95,87,83,81,76,
+74,74,72,70,70,68,66,64,62,59,56,52,47,42,38,33,28,24,21,21,23,30,45,71,101,127,148,161,170,184,201,221,236,242,244,243,241,237,233,227,218,212,209,207,208,209,207,206,
+206,206,207,208,211,218,221,220,219,223,228,238,243,243,242,239,228,216,208,203,202,199,191,184,179,176,178,187,196,202,203,199,195,194,194,195,199,207,215,223,227,227,228,233,239,242,239,237,
+151,160,163,164,165,168,175,182,190,198,209,218,223,229,229,218,208,204,203,202,197,190,186,185,185,183,178,170,159,148,131,105,80,66,61,58,56,55,54,54,55,51,32,15,12,16,24,33,
+42,48,52,65,76,76,72,79,99,114,134,162,189,219,237,239,236,234,232,228,223,227,236,239,243,243,240,233,209,165,119,82,53,42,42,47,57,66,66,66,75,89,106,125,130,110,66,21,
+1,0,0,0,0,0,16,60,113,150,164,162,149,122,87,56,37,28,22,21,24,33,41,44,44,40,32,23,20,21,24,30,43,54,69,85,94,97,97,96,95,98,103,109,119,138,153,165,
+174,183,187,186,178,168,159,156,153,148,139,125,110,99,90,81,71,64,59,55,51,47,45,44,43,42,39,36,35,37,40,46,52,56,55,53,50,48,47,48,52,57,62,61,54,55,69,96,
+125,149,164,174,185,199,211,223,234,239,241,242,243,243,243,243,243,243,244,243,239,225,208,204,204,209,209,199,184,165,145,129,114,103,94,85,79,70,62,62,69,81,98,111,110,96,75,56,
+49,48,48,48,56,70,85,94,92,86,89,100,118,127,127,135,10,16,20,25,33,44,59,73,83,87,91,95,102,114,120,112,102,98,97,95,93,92,91,93,95,104,114,122,124,122,120,113,
+101,91,83,73,63,55,51,50,49,49,50,54,61,78,95,108,116,120,120,119,118,118,117,116,116,116,117,117,107,114,138,142,130,123,120,112,102,106,127,142,156,179,200,211,226,233,222,201,
+164,128,98,82,87,96,95,100,110,120,129,138,144,138,119,89,58,36,27,26,35,57,94,134,162,170,161,137,103,68,42,25,16,10,5,2,0,0,0,0,0,0,0,0,0,0,0,0,
+0,2,8,20,36,51,66,81,90,95,98,101,108,123,134,136,133,132,131,130,128,126,125,125,126,131,139,144,145,141,138,131,122,112,104,95,85,77,72,70,67,67,65,64,70,84,100,111,
+119,122,122,121,120,119,119,117,116,115,114,106,85,66,61,64,71,78,83,87,91,97,110,130,153,169,179,188,191,193,197,199,201,202,202,198,187,166,150,148,145,142,134,123,109,89,69,63,
+66,68,70,75,77,78,81,84,85,89,83,64,40,18,3,0,0,0,0,0,0,0,2,3,0,0,1,2,4,3,3,5,0,0,0,0,0,0,2,8,12,13,12,12,13,19,23,21,
+17,16,17,18,20,21,23,24,26,34,47,64,81,94,103,112,122,128,130,131,130,129,128,127,127,127,128,128,131,133,130,122,112,106,103,102,102,101,100,100,99,98,100,102,95,88,87,88,
+85,83,83,84,84,84,86,87,87,91,101,107,125,156,189,218,241,242,219,179,144,121,98,83,81,94,110,123,135,143,146,143,136,125,119,121,130,147,164,171,163,141,111,79,54,38,26,19,
+12,8,5,3,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,4,8,14,21,27,33,38,41,45,53,57,58,55,55,56,56,56,56,54,53,53,58,67,80,94,103,110,118,
+126,131,133,134,133,130,128,128,126,126,125,126,128,129,124,115,104,96,94,92,92,92,92,91,90,91,96,98,93,89,87,88,87,87,86,88,89,90,91,94,96,98,102,105,107,108,110,111,
+106,103,103,102,101,93,83,79,78,79,81,83,88,90,94,104,110,111,117,128,140,146,144,123,98,78,48,18,3,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,5,7,10,11,13,14,16,18,20,24,30,35,40,49,60,69,77,87,96,103,108,109,110,110,111,110,106,93,76,63,
+54,49,46,45,44,43,42,40,38,36,37,37,39,41,42,40,39,38,36,38,43,46,46,41,34,29,27,26,27,29,39,61,102,149,200,230,228,215,196,153,90,58,52,58,72,88,104,117,
+124,128,131,134,138,143,148,149,143,126,104,81,53,28,14,9,6,5,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,9,15,14,10,12,17,19,22,24,
+25,26,27,27,27,26,25,25,24,23,24,26,28,32,34,42,51,59,66,76,85,92,96,97,97,97,96,95,90,73,54,38,27,22,19,18,18,18,17,17,16,17,20,24,26,30,32,33,
+33,32,33,36,42,47,47,43,36,33,33,33,33,33,34,32,27,23,21,21,22,18,15,14,15,18,21,24,31,40,52,63,66,63,66,75,86,99,107,110,100,78,58,41,26,12,1,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,5,7,10,13,14,14,14,14,14,13,10,6,5,4,5,6,8,10,13,15,17,21,24,27,29,31,31,32,34,35,
+36,38,40,43,47,51,53,54,56,57,57,58,56,52,48,47,47,46,46,45,44,42,41,38,35,34,31,28,26,24,22,20,17,15,13,11,10,10,8,7,4,3,2,1,0,0,0,0,
+0,10,44,93,135,167,198,226,218,182,144,103,74,68,62,59,62,66,70,73,74,75,77,82,93,104,113,117,109,79,46,23,11,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,4,13,22,33,51,68,84,95,95,75,61,51,46,45,46,47,46,46,46,45,45,45,40,32,23,16,12,9,8,8,8,9,10,11,13,17,20,20,22,21,21,21,20,17,11,5,3,
+2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,3,3,3,3,2,3,4,5,5,5,5,5,5,5,5,5,4,5,5,5,5,5,5,5,6,6,6,6,6,6,5,7,9,
+10,9,9,11,15,21,30,49,72,84,87,86,85,77,54,27,9,3,1,0,0,0,0,0,0,0,0,0,0,1,1,1,77,81,87,96,105,110,111,111,111,111,111,108,99,85,77,71,
+61,50,40,32,28,30,32,33,34,35,35,37,41,46,49,50,52,53,53,53,55,56,57,57,59,60,61,64,66,67,68,69,69,69,69,68,64,61,58,55,51,48,45,42,38,35,33,30,
+27,23,22,25,32,46,58,63,64,63,61,60,58,55,58,62,61,58,57,59,66,77,96,138,189,222,237,232,215,202,175,137,96,66,56,46,38,31,25,20,19,22,30,48,77,97,98,88,
+77,65,57,48,41,37,37,39,43,50,56,65,76,83,84,87,104,123,138,148,156,164,180,196,205,215,220,217,212,207,203,200,197,194,190,187,186,185,186,180,162,139,112,80,55,44,32,17,
+7,2,0,0,1,1,0,0,0,0,1,1,1,2,2,2,2,2,1,1,0,0,1,1,1,2,2,2,3,2,2,2,2,2,3,8,19,36,51,58,60,61,61,61,60,58,61,65,
+65,66,66,66,67,66,66,66,66,67,66,62,56,49,42,31,19,10,5,4,5,5,5,6,11,18,30,49,73,94,103,99,83,70,62,53,45,40,40,40,40,40,44,52,62,67,69,69,
+72,68,65,59,54,52,51,50,48,46,49,56,70,97,137,163,163,158,153,151,155,161,157,142,124,107,97,102,112,118,120,121,123,123,123,124,127,128,132,136,139,141,146,149,150,152,153,153,
+154,154,153,151,147,139,128,117,106,93,84,80,74,67,58,53,52,60,70,83,96,105,103,99,96,95,94,93,94,103,120,126,124,122,122,122,120,119,117,118,127,144,167,197,219,229,241,244,
+230,206,188,164,143,119,90,65,47,35,29,29,38,54,67,77,87,96,100,103,103,108,126,147,172,193,200,205,209,210,209,211,223,231,235,234,233,232,228,222,215,209,205,207,209,212,215,218,
+222,223,224,223,220,215,212,211,218,225,227,221,207,198,179,147,111,70,43,24,9,6,9,16,22,27,35,40,41,42,41,42,43,43,42,39,32,19,9,4,1,1,2,2,3,4,6,11,
+18,30,46,63,80,90,92,89,88,88,89,89,91,102,120,126,125,124,124,124,125,125,124,125,125,124,124,124,122,120,117,106,88,64,38,17,6,4,5,6,6,5,2,3,12,29,43,56,
+72,81,86,89,89,88,88,88,88,88,88,86,81,78,76,76,52,53,52,49,45,44,43,42,47,67,87,108,137,175,214,231,233,235,237,239,235,237,242,242,238,233,229,230,231,229,229,230,
+231,231,230,230,232,234,236,238,239,239,241,242,242,241,242,243,243,243,242,242,241,238,234,227,217,205,197,193,190,181,165,148,140,144,153,154,140,112,85,66,56,51,46,45,45,58,77,80,
+76,74,74,73,73,72,71,70,68,67,69,80,95,108,132,168,206,225,231,233,232,230,224,213,198,188,183,182,181,181,182,184,187,190,194,197,200,208,226,235,231,221,214,210,205,206,209,208,
+196,176,163,156,150,143,124,102,85,69,57,51,47,50,54,61,71,81,92,103,113,117,117,118,124,132,147,171,187,199,214,230,234,222,204,177,146,124,111,98,87,83,82,84,85,86,87,90,
+92,90,88,88,87,78,65,55,49,47,48,49,52,58,64,76,92,112,131,136,121,92,63,45,38,34,33,33,36,51,71,76,72,71,72,71,70,69,69,69,69,69,70,74,81,88,97,109,
+119,121,108,79,47,23,10,4,3,4,5,4,3,3,4,8,14,22,29,36,43,45,44,44,44,45,44,39,34,38,45,51,107,108,109,112,119,126,139,162,193,221,230,229,223,205,170,151,
+152,156,161,163,157,166,190,214,229,238,244,249,252,251,252,251,251,249,248,247,246,246,245,244,243,243,243,243,242,243,244,243,243,243,243,243,245,247,250,253,254,254,254,254,254,253,248,238,
+224,211,195,172,148,124,106,90,75,58,43,32,23,22,23,23,21,20,19,17,18,16,15,14,14,12,12,11,13,15,21,38,67,99,129,153,161,165,174,184,194,199,200,199,198,198,199,198,
+198,197,197,195,197,193,166,132,103,85,85,92,103,116,126,130,125,119,115,114,113,112,110,107,101,92,78,61,47,41,39,40,42,46,52,61,73,88,106,131,145,144,139,134,130,134,147,165,
+187,207,218,232,241,243,235,216,183,139,97,76,60,48,42,42,45,45,45,51,67,92,116,131,131,122,115,114,118,120,115,112,112,116,122,123,112,95,78,63,48,33,19,9,3,3,6,7,
+7,7,9,11,18,27,33,36,36,36,36,38,41,45,51,62,85,111,128,137,130,111,88,67,45,22,8,3,2,0,1,1,0,1,1,1,2,3,5,10,17,26,38,52,67,85,97,104,
+109,116,130,163,198,214,228,241,234,212,189,171,153,134,121,121,123,127,131,135,140,146,156,166,173,175,175,183,196,207,211,210,204,196,186,181,178,175,172,172,173,174,177,179,180,183,185,186,
+188,191,195,200,205,211,217,223,225,225,226,225,226,231,240,247,249,246,236,213,186,159,136,124,120,114,103,87,69,52,38,28,24,23,21,19,18,16,16,14,13,12,12,11,9,7,4,3,
+4,13,35,65,94,114,122,123,120,109,93,80,68,59,54,52,52,52,55,62,72,78,73,73,81,93,104,112,115,111,102,95,89,85,84,84,84,84,85,89,98,107,115,117,116,114,112,113,
+113,113,113,114,115,119,126,136,140,134,125,116,111,106,103,101,103,101,91,95,112,136,162,197,224,227,211,193,166,126,80,40,19,14,22,39,60,87,113,129,125,108,95,91,92,87,75,61,
+48,38,36,41,52,65,77,85,88,84,74,60,46,37,38,46,61,81,93,103,134,164,178,182,182,182,181,181,181,181,180,181,194,201,199,209,219,222,222,215,196,154,111,74,46,26,16,13,
+13,14,17,25,35,44,54,68,80,93,104,112,115,111,105,103,186,202,218,237,243,236,215,168,111,67,54,63,76,87,93,97,101,105,110,114,120,124,125,122,117,114,112,112,118,126,133,136,
+134,128,122,121,121,123,125,128,131,136,141,145,151,155,161,168,176,184,191,195,195,194,193,194,195,193,190,187,186,188,197,207,217,229,243,249,244,227,192,151,128,123,126,130,129,121,105,84,
+66,54,48,45,43,42,40,40,45,51,56,57,56,53,47,38,28,17,11,15,27,47,70,91,108,118,118,113,105,94,85,81,81,82,87,96,106,112,118,119,115,106,93,79,65,48,35,29,
+27,30,34,37,38,38,38,41,47,57,71,86,99,104,103,98,93,90,88,87,85,84,81,71,59,47,38,34,33,31,27,25,24,18,9,2,0,3,14,37,77,128,169,189,211,227,222,197,
+167,145,127,121,118,113,106,102,100,91,87,90,97,97,94,86,74,60,46,34,23,19,24,37,57,82,110,132,152,171,187,199,212,223,229,231,231,219,209,207,209,213,214,215,215,215,213,211,
+217,215,203,199,200,205,210,220,238,249,243,222,192,157,127,107,99,101,105,114,124,129,133,133,132,135,133,128,122,125,138,155,252,250,247,243,238,235,226,202,171,135,95,67,50,36,30,29,
+34,43,52,61,70,80,91,101,111,119,122,125,128,130,133,134,137,136,134,131,132,135,137,142,146,152,157,166,175,182,191,198,204,206,206,202,200,201,202,201,197,191,186,184,180,177,175,176,
+180,189,206,223,237,247,248,231,205,181,165,156,157,163,167,160,143,124,112,108,105,103,102,102,106,109,108,107,105,104,102,97,90,78,62,45,32,29,31,36,45,63,82,95,106,115,119,120,
+119,118,115,108,97,84,73,60,47,42,45,56,73,89,98,105,116,130,145,151,152,152,152,152,152,153,154,156,159,160,155,142,123,104,92,75,54,39,35,36,39,42,42,42,41,41,41,41,
+40,35,26,16,12,11,11,10,11,19,36,56,87,128,174,213,233,240,236,225,217,212,203,189,173,159,155,168,185,189,189,186,182,176,166,145,118,99,96,106,126,151,183,212,234,243,240,229,
+211,189,174,167,150,122,109,108,112,116,116,116,117,117,116,115,116,109,91,77,67,65,66,71,99,141,180,215,236,244,239,227,218,217,218,220,219,217,214,208,208,216,222,226,229,237,247,251,
+141,125,117,114,113,121,149,181,207,224,227,215,193,160,133,102,80,77,78,81,91,107,122,136,145,150,154,157,159,162,163,165,167,169,169,167,167,170,172,176,180,184,190,196,202,207,211,213,
+213,213,212,212,214,213,208,200,190,184,180,176,172,167,164,161,160,163,170,180,193,214,237,250,253,248,237,218,198,182,173,168,158,140,125,121,119,118,116,113,105,93,85,80,76,74,77,82,
+90,97,101,99,92,88,83,64,46,39,39,44,51,57,62,63,61,57,47,36,32,36,44,54,75,112,152,185,208,224,230,234,237,241,244,244,243,243,243,243,243,242,242,242,242,242,242,240,
+233,225,218,205,178,152,137,127,116,107,103,102,102,102,103,103,103,103,99,93,90,89,89,89,90,89,91,98,105,116,138,168,196,221,239,248,253,255,255,252,248,243,241,245,249,250,250,249,
+249,248,246,240,232,230,229,229,227,223,215,200,175,152,138,130,118,98,81,76,75,75,74,73,66,56,49,46,46,47,52,61,70,80,87,87,82,79,74,56,38,36,46,68,102,147,191,224,
+242,251,255,252,249,248,248,248,248,250,250,244,223,206,186,165,8,7,10,12,13,16,36,66,94,126,162,190,217,235,242,239,226,212,188,159,147,145,137,130,127,127,131,134,137,140,142,144,
+147,152,160,167,170,173,178,183,189,195,199,200,204,210,215,217,219,220,220,218,214,209,203,197,193,191,188,184,180,176,172,168,164,161,159,157,159,168,184,205,223,237,247,250,244,231,214,197,
+179,151,129,115,106,97,91,84,76,69,63,59,55,51,46,45,47,53,64,75,84,90,92,81,68,63,62,60,59,59,61,66,71,70,64,78,108,143,172,191,212,233,244,243,235,223,214,210,
+203,193,182,179,178,179,184,190,195,196,196,198,200,201,205,215,227,236,242,249,252,249,242,228,209,188,178,177,177,177,177,177,177,180,185,187,189,189,189,191,193,193,192,193,195,203,218,232,
+242,246,248,246,241,232,228,228,230,232,232,228,219,216,217,219,220,221,221,205,176,156,142,123,107,90,72,55,46,45,46,49,48,41,35,32,31,27,23,19,12,9,6,6,6,6,8,11,
+17,28,42,58,71,78,80,69,54,51,56,75,109,157,202,230,241,227,189,148,126,123,124,125,124,126,125,101,61,40,26,14,30,37,43,46,46,50,66,82,85,83,87,94,105,123,145,177,
+202,222,239,236,225,211,176,138,116,107,104,107,111,115,118,121,124,127,132,137,142,146,155,170,182,188,193,197,201,206,210,214,216,216,214,212,209,208,206,205,203,200,198,195,192,189,186,183,
+179,175,171,166,162,162,167,174,181,192,209,226,240,248,251,250,244,229,212,193,169,146,129,116,102,90,82,77,71,66,60,54,48,44,41,40,42,43,46,48,52,64,76,85,97,116,136,157,
+176,187,197,214,232,243,245,243,236,217,182,144,113,90,83,85,90,86,80,78,79,82,95,110,112,109,108,107,104,101,103,109,115,121,128,149,180,203,219,232,241,243,243,243,243,243,243,243,
+243,243,244,244,245,245,245,247,249,249,249,248,248,248,244,234,217,196,175,155,130,106,99,99,101,101,97,83,68,62,62,65,64,66,64,48,22,18,32,41,43,42,41,42,46,49,50,51,
+51,50,50,49,46,41,33,21,8,3,3,4,5,5,5,5,4,4,5,8,11,17,29,46,65,103,158,206,232,235,213,180,148,93,35,10,3,3,3,3,2,2,0,0,0,0,1,12,
+52,41,33,30,31,34,41,43,36,31,29,28,25,24,30,43,58,82,130,175,199,222,237,228,210,187,157,138,125,115,113,116,119,121,124,127,131,135,145,161,171,176,182,188,194,197,202,206,
+209,211,212,213,213,213,212,210,209,207,205,203,201,198,195,193,191,188,185,181,177,178,182,182,178,176,178,183,193,206,219,229,242,250,252,249,240,225,213,205,190,167,142,124,112,103,97,92,
+87,81,77,74,74,77,91,113,133,153,171,184,198,217,231,240,245,246,243,234,218,191,161,139,117,84,47,24,20,33,46,53,52,46,39,36,35,36,43,45,38,33,31,29,24,21,20,20,
+18,15,16,25,43,65,88,115,145,168,174,174,173,173,173,173,173,173,172,172,173,172,175,182,184,183,182,179,171,160,137,106,76,53,37,26,17,11,9,8,9,8,6,3,0,0,0,0,
+0,0,0,0,0,8,33,44,43,44,44,43,39,35,34,35,35,36,36,37,42,47,53,54,42,22,8,4,4,5,5,5,4,2,1,7,33,80,135,178,205,225,230,200,150,101,55,27,
+19,21,27,27,28,28,28,28,28,29,26,27,33,49,61,61,132,89,60,33,12,0,0,0,0,0,0,4,9,17,26,35,44,53,66,87,109,140,179,211,232,243,241,231,213,179,152,138,
+132,130,132,135,138,142,146,152,155,161,169,178,186,193,200,205,209,212,215,218,220,220,220,219,218,217,215,214,211,208,204,202,199,196,193,192,190,188,187,184,180,178,175,172,169,170,174,180,
+193,210,224,236,246,251,252,251,250,244,232,218,203,196,192,190,187,184,184,186,188,195,212,228,238,244,246,245,243,238,226,207,188,167,145,121,91,62,38,25,18,13,15,26,45,55,45,31,
+17,12,7,7,7,7,7,5,4,3,4,6,9,14,19,25,29,29,32,38,45,54,62,68,76,81,79,73,68,65,63,62,63,64,63,63,63,61,60,57,49,43,42,39,35,29,19,10,
+4,2,2,2,2,3,2,3,3,2,2,3,2,3,2,2,2,2,2,2,2,3,8,9,7,7,7,6,5,4,3,3,3,4,4,4,6,11,20,36,52,54,42,24,8,2,1,1,
+9,24,52,112,183,223,228,209,180,149,98,45,13,1,13,61,115,160,182,184,183,183,183,183,183,183,183,187,193,199,194,175,231,225,215,188,146,92,49,29,23,22,28,43,60,78,94,107,
+117,123,128,137,147,156,164,172,184,200,216,229,243,246,236,222,207,194,187,184,184,186,186,182,178,179,186,194,201,207,211,215,221,228,236,241,244,244,244,244,244,244,243,243,241,237,232,225,
+218,213,207,202,199,196,194,192,190,188,186,183,181,179,178,176,177,179,184,193,207,220,226,229,235,244,250,252,252,250,249,249,248,248,248,248,248,247,244,236,225,213,199,186,172,150,124,99,
+80,63,48,37,28,24,24,26,33,43,52,58,52,31,12,5,4,5,5,6,5,5,6,8,14,23,34,47,63,78,90,102,108,109,112,117,123,128,129,128,126,122,116,111,106,102,100,100,
+102,103,105,106,107,106,100,80,57,44,40,39,40,39,33,26,20,15,9,6,6,7,5,4,2,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,
+1,1,1,1,1,1,1,3,14,33,47,50,38,27,44,79,126,172,206,232,218,170,116,78,54,39,27,23,35,72,145,214,233,218,204,200,201,202,204,206,209,212,214,215,210,204,203,214,
+101,131,165,201,226,228,208,190,177,151,139,143,152,160,166,170,172,174,178,184,195,202,202,202,202,203,206,211,222,236,247,253,254,252,248,246,244,244,243,242,240,239,240,242,244,245,245,246,
+250,252,252,251,250,250,250,250,249,249,249,248,249,251,252,251,249,246,241,231,221,214,208,204,200,199,197,195,194,192,191,190,188,187,186,185,186,188,189,190,193,201,210,220,226,228,228,227,
+227,225,223,220,217,211,199,181,168,157,148,141,132,115,97,88,83,77,69,62,59,61,63,64,63,57,46,33,19,8,7,6,6,6,7,10,17,25,36,52,74,97,115,130,143,150,153,155,
+155,153,150,148,145,142,139,135,133,133,132,133,133,135,138,140,144,147,150,152,155,156,156,152,141,131,129,129,130,126,118,109,102,97,89,83,81,81,79,73,66,65,64,64,62,62,64,64,
+63,59,49,32,11,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,13,28,51,81,115,155,200,230,239,231,211,174,126,94,81,79,81,90,109,140,186,226,239,203,
+143,97,77,72,73,76,81,84,84,80,71,61,50,41,42,60,6,21,46,85,138,191,223,236,245,249,244,237,232,231,231,231,233,234,237,241,245,246,245,245,245,246,246,246,246,247,249,250,
+252,254,254,252,247,243,242,243,244,246,247,248,250,250,252,251,250,247,244,242,241,241,241,240,240,239,239,238,239,241,243,246,248,251,252,253,251,247,242,236,231,225,221,218,216,212,207,203,
+200,200,199,199,196,195,193,191,188,186,184,187,193,201,206,206,203,195,185,174,164,154,142,135,130,128,126,127,128,119,106,99,95,92,89,84,78,70,60,50,37,25,16,10,8,7,8,8,
+14,24,38,57,81,102,119,135,150,159,162,162,162,159,155,150,145,139,134,127,117,108,100,96,95,98,102,106,111,115,120,124,127,130,133,136,142,149,154,156,156,155,155,156,159,167,177,191,
+206,220,226,224,223,223,223,221,217,217,217,217,216,217,217,217,216,215,207,187,144,103,80,66,63,63,65,66,61,49,39,35,35,38,39,39,42,50,79,123,153,177,194,211,229,242,234,208,
+178,144,114,91,77,74,84,103,137,180,218,240,238,198,134,75,48,45,48,50,49,43,37,30,22,12,4,0,0,0,0,0,65,88,111,129,144,155,166,173,187,206,215,223,224,220,217,213,
+207,204,199,189,165,151,150,152,154,157,160,162,165,167,169,169,171,173,171,164,156,160,169,174,175,179,186,194,201,208,216,221,225,230,233,235,236,237,238,237,236,235,235,235,236,237,238,239,
+240,241,243,245,247,250,252,253,254,253,251,249,247,244,239,231,225,220,219,217,216,215,214,212,210,208,206,205,205,203,198,190,181,167,153,141,131,121,114,111,107,105,102,101,101,96,89,84,
+77,71,66,61,53,43,33,25,20,16,13,11,12,18,27,40,64,91,118,139,153,161,163,165,164,159,153,143,130,114,101,88,78,72,66,58,50,42,35,33,33,36,41,46,51,54,57,57,
+62,71,83,91,98,113,129,130,128,135,153,167,183,212,232,243,245,239,234,233,234,234,235,234,231,229,229,229,230,234,236,238,240,241,242,246,250,243,230,218,215,216,217,218,214,208,200,197,
+200,202,203,203,207,214,230,240,232,222,210,200,187,159,121,88,71,59,53,60,88,134,179,208,227,226,193,147,94,42,15,9,11,12,16,17,17,13,7,4,3,2,2,2,3,9,19,31,
+144,154,158,159,158,153,146,135,118,98,85,79,73,66,60,56,53,52,51,46,40,39,42,46,50,53,55,57,59,62,63,64,66,67,69,70,75,84,96,104,110,118,130,142,153,165,175,186,
+195,203,211,215,218,220,222,221,220,219,219,219,220,222,225,228,230,230,230,229,229,231,233,236,240,243,247,249,250,251,253,253,251,247,244,240,235,231,229,227,226,224,220,215,207,196,185,176,
+165,157,147,140,134,129,125,121,118,113,110,106,103,98,93,87,80,73,64,55,48,39,32,26,22,19,20,28,48,75,98,118,138,155,163,164,164,160,154,143,127,103,83,66,49,37,30,26,
+23,23,22,21,21,21,25,31,35,37,37,37,38,46,67,99,134,163,181,187,190,192,197,202,209,219,228,230,230,215,186,153,122,102,94,96,97,100,102,96,86,82,81,81,83,91,101,113,
+123,128,128,134,156,178,201,216,218,217,217,217,215,214,217,218,217,214,214,213,210,202,183,152,127,111,99,87,71,51,40,45,77,124,165,193,217,229,215,180,135,86,42,15,3,1,3,5,
+5,5,4,4,4,5,3,2,2,3,7,18,39,68,96,117,159,156,148,135,116,92,72,53,34,18,9,3,0,0,0,3,6,9,13,17,21,26,29,32,35,36,36,37,37,38,39,40,
+41,43,45,48,53,57,64,73,83,96,109,121,134,146,157,167,175,183,189,194,198,201,204,205,206,207,207,208,209,210,211,212,214,215,215,215,216,217,216,218,219,220,223,224,226,229,233,237,
+238,237,238,240,242,243,243,242,241,241,238,232,225,218,213,208,204,199,196,194,192,192,186,171,153,136,126,118,113,108,102,95,88,80,70,60,52,44,36,34,38,49,68,95,126,149,158,163,
+163,158,152,141,122,100,81,65,48,35,31,35,43,53,65,77,90,101,106,109,120,136,150,157,158,157,155,156,163,180,204,219,219,214,208,205,205,203,201,196,184,164,141,122,106,73,43,26,
+18,15,16,16,16,17,17,15,11,10,9,8,8,10,13,16,21,22,21,21,23,30,43,54,55,55,55,54,52,51,53,56,55,52,54,54,51,43,33,24,22,29,43,65,102,137,165,190,
+215,233,232,202,159,113,63,30,12,2,1,3,5,6,6,6,6,5,4,4,4,4,5,7,17,33,56,86,120,145,156,159,126,101,73,50,32,17,7,1,0,0,0,0,0,0,0,3,
+6,8,12,14,16,19,22,26,33,45,60,67,67,67,67,68,69,70,71,73,77,81,86,87,83,83,90,102,115,128,141,152,161,170,177,182,187,191,194,196,198,200,202,202,204,204,205,206,
+207,209,210,211,212,212,214,215,215,215,215,216,217,217,218,218,218,219,219,220,222,225,228,230,229,228,229,231,233,233,232,231,229,226,222,216,209,197,179,159,143,134,128,122,118,112,107,99,
+92,84,76,68,63,62,67,80,103,126,146,159,165,165,160,144,118,95,78,64,62,53,43,45,66,99,135,164,183,196,207,215,222,227,229,231,232,230,225,221,219,218,218,217,216,209,191,159,
+123,92,73,65,64,63,62,59,54,45,33,26,23,19,19,20,20,19,18,18,16,16,15,14,14,14,14,13,12,11,10,8,8,7,6,6,5,3,2,1,1,0,0,0,0,0,0,8,
+22,28,24,21,20,27,39,58,96,132,156,168,171,166,156,149,139,116,82,45,19,5,0,0,2,3,4,4,5,4,4,4,5,6,7,10,14,22,36,57,86,114,137,153,160,161,157,149,
+41,23,9,2,0,0,3,10,19,30,43,55,70,94,115,122,124,125,126,127,128,130,132,142,155,172,182,184,184,184,184,184,184,185,185,186,187,188,190,190,185,169,157,151,139,124,123,132,
+144,153,162,169,175,179,183,186,190,192,194,195,197,198,199,201,203,205,206,207,209,210,211,212,214,215,215,216,216,217,217,217,218,218,219,219,219,218,217,216,216,214,212,209,207,204,200,195,
+189,184,177,169,160,151,145,141,138,134,132,129,125,122,120,116,112,110,112,113,117,125,138,152,164,168,168,165,157,135,101,76,80,98,111,138,169,164,152,159,179,201,217,224,223,216,203,187,
+163,143,138,140,139,130,112,98,91,89,88,86,86,83,76,64,52,40,33,31,30,30,30,29,29,28,29,28,28,28,27,26,25,24,24,22,22,21,20,18,18,17,16,16,15,14,14,13,
+12,11,11,10,9,8,8,9,10,16,29,48,70,94,121,151,169,170,166,161,161,169,177,176,157,125,88,56,29,12,4,2,2,1,1,3,5,7,8,8,8,9,9,9,11,16,21,26,
+32,40,53,67,79,97,118,138,153,159,161,159,152,133,103,75,0,0,0,0,6,18,41,74,111,141,158,162,158,152,144,141,141,142,143,144,144,145,144,137,122,99,74,68,69,68,69,69,
+70,71,71,72,74,76,79,89,117,153,172,187,202,203,174,141,127,132,144,152,160,165,170,174,178,181,184,186,188,190,192,194,196,198,200,201,203,204,207,208,210,210,211,213,213,214,215,215,
+216,217,217,218,218,217,217,216,215,213,212,208,204,201,198,195,191,189,187,184,180,176,173,170,167,164,161,159,159,160,164,165,165,167,171,173,174,175,175,174,170,162,145,118,93,91,108,145,
+182,181,172,151,110,92,94,97,96,93,89,87,87,85,78,66,50,42,42,42,44,44,43,40,39,38,39,39,38,38,39,39,40,40,40,40,39,39,38,38,37,36,35,34,33,32,32,31,
+30,29,28,26,25,24,23,22,21,21,19,18,17,16,15,15,15,13,12,11,11,10,13,20,36,63,97,127,142,139,124,96,76,78,88,93,91,78,56,37,14,0,0,0,0,4,14,23,
+32,45,56,63,65,65,65,65,65,66,66,67,72,83,96,106,113,124,136,145,151,157,160,161,159,151,136,112,82,51,27,11,0,0,0,1,2,6,9,15,25,32,36,33,24,13,6,4,
+5,6,7,8,9,10,11,12,12,9,9,9,8,8,8,8,8,8,10,11,12,14,19,24,30,41,54,69,93,138,190,213,188,151,126,132,141,148,155,160,165,169,172,174,177,179,182,185,
+187,190,192,193,195,197,200,201,203,204,205,207,208,209,210,211,211,212,213,213,213,214,214,213,212,210,208,207,209,212,214,216,215,216,215,213,211,209,207,205,203,202,200,198,198,199,199,197,
+194,192,189,185,181,175,165,151,128,97,73,94,145,182,179,151,95,54,42,34,28,27,28,29,31,32,34,35,36,38,40,41,42,44,45,45,46,46,47,48,49,50,49,49,48,48,48,48,
+48,47,47,46,46,45,44,44,43,43,42,42,41,40,39,37,36,35,34,32,31,29,28,26,25,24,22,21,19,19,17,17,16,15,14,13,12,12,12,13,17,22,26,29,28,23,15,5,
+0,0,0,0,0,0,0,0,0,0,1,11,32,62,89,106,119,131,140,143,144,144,144,145,145,145,145,146,148,153,157,159,160,161,161,161,159,156,149,135,111,82,54,31,15,6,3,1,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,3,4,5,9,13,15,14,13,11,9,9,9,8,8,10,11,12,14,16,21,25,30,35,42,49,58,80,129,
+181,213,173,125,120,127,135,143,148,153,158,161,164,167,170,173,176,179,181,183,185,188,190,192,194,196,197,199,199,201,203,203,204,205,206,207,207,207,207,206,206,207,210,215,222,227,228,227,
+225,223,221,218,216,214,212,210,209,208,206,204,203,201,196,191,185,179,167,154,139,123,102,79,54,55,132,190,155,93,51,33,27,29,32,35,37,39,40,42,43,44,45,46,47,49,49,50,
+51,52,53,53,54,55,56,57,57,57,58,58,57,57,57,57,57,56,56,55,54,55,55,55,57,57,58,60,61,62,60,59,57,55,53,48,45,42,40,38,35,32,29,28,26,24,23,22,
+20,19,19,18,17,17,15,15,13,10,8,7,6,6,5,5,6,5,5,4,3,3,2,1,3,13,34,69,111,141,154,158,160,160,160,160,159,159,159,160,160,160,160,160,160,159,155,152,
+148,144,134,120,107,93,75,53,32,15,6,2,2,3,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,3,3,3,4,4,5,7,10,10,10,9,8,7,6,
+6,6,5,6,7,9,10,13,16,20,25,31,39,46,53,59,73,127,201,201,173,150,124,122,129,136,141,145,148,151,156,159,162,166,168,170,173,176,178,180,182,184,186,187,189,191,193,193,
+195,196,197,198,198,198,198,201,205,213,222,228,229,229,226,222,217,211,204,197,193,190,187,185,184,182,179,177,172,165,154,141,132,120,104,87,72,58,45,43,85,171,186,94,36,28,31,34,
+37,39,40,42,43,45,46,47,49,51,51,53,54,56,56,58,59,60,61,61,62,63,63,65,66,67,69,70,71,74,77,78,79,79,78,78,78,79,82,86,91,94,101,107,112,113,113,113,
+111,108,102,95,87,80,74,70,64,58,53,50,46,45,44,42,42,40,39,36,35,34,34,33,30,27,23,19,16,13,9,8,7,6,6,4,4,3,4,15,38,74,113,144,157,159,157,151,
+144,135,124,117,115,115,115,115,115,115,115,115,112,104,91,80,71,63,50,37,26,19,12,7,4,2,2,3,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+1,2,1,1,2,2,3,2,3,4,5,5,5,5,4,5,6,7,8,10,14,18,22,25,26,28,28,29,31,34,40,47,53,58,91,150,183,206,191,131,108,114,121,126,130,134,138,142,
+144,148,151,155,159,160,162,165,168,169,171,173,175,178,178,180,181,182,183,184,186,190,197,208,218,225,227,227,225,218,204,191,181,171,161,153,147,142,138,135,132,129,125,123,118,110,101,92,
+83,75,64,56,62,84,112,155,198,156,64,31,35,39,39,41,42,45,45,47,49,50,52,54,56,57,59,61,62,64,65,66,67,68,70,72,73,74,77,81,85,89,93,99,105,112,120,127,
+132,133,133,136,138,142,147,156,162,168,175,184,187,188,189,188,187,185,179,170,160,152,145,139,130,120,111,105,102,101,99,98,97,96,94,90,86,84,83,81,73,61,46,33,22,15,11,10,
+9,8,6,6,9,20,44,80,119,147,158,160,156,140,108,79,63,51,38,32,30,31,31,31,31,31,31,31,29,24,18,14,10,8,6,5,3,3,4,4,5,4,4,3,3,4,4,3,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,3,3,3,2,2,3,7,12,21,30,42,54,66,77,83,84,81,75,68,59,55,57,
+63,68,71,76,86,115,184,208,163,124,106,108,115,121,123,128,134,143,154,162,166,165,163,164,166,164,160,159,159,162,162,164,166,168,172,177,185,198,211,219,222,222,220,212,198,180,164,152,
+144,137,131,125,120,115,112,109,105,102,98,95,90,85,79,73,71,73,95,133,174,193,186,160,94,44,36,41,43,44,44,46,48,50,52,54,56,58,60,62,64,65,67,69,71,73,74,76,
+79,82,86,90,95,100,107,117,127,136,146,155,164,173,184,194,201,204,207,209,212,216,222,228,233,234,237,240,241,240,239,239,239,238,236,232,227,222,219,215,207,199,192,187,185,183,183,182,
+183,186,187,187,185,183,181,181,177,166,148,124,98,76,58,48,44,42,45,54,72,102,135,160,170,169,164,148,117,75,39,21,13,8,4,3,1,1,1,1,1,2,1,2,2,2,2,3,
+3,3,4,5,4,3,5,5,5,3,3,3,3,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,0,2,
+6,15,27,41,59,76,93,109,122,131,137,139,137,131,123,121,125,128,132,133,131,125,130,172,213,216,179,146,141,144,148,154,165,177,187,194,195,195,195,196,198,198,196,194,194,195,196,197,
+199,203,207,213,222,229,231,226,222,212,197,175,155,142,135,129,125,120,116,111,105,100,97,94,91,87,84,84,88,92,106,137,160,180,197,182,140,89,62,48,40,42,44,45,47,48,49,51,
+54,57,59,61,64,65,68,70,72,75,77,79,82,85,88,94,100,110,119,131,140,150,161,176,190,200,209,217,223,228,234,240,241,243,244,245,246,248,251,252,253,253,253,253,253,253,252,252,
+251,251,251,252,251,250,250,248,246,245,242,241,241,240,241,241,242,244,246,246,246,245,245,246,246,246,244,239,229,214,196,178,164,156,160,170,185,199,202,202,200,193,173,147,118,91,72,63,
+57,48,37,28,21,15,12,11,11,11,11,12,13,11,9,6,5,4,5,4,5,4,4,4,4,4,2,2,2,2,3,3,23,17,14,14,11,6,4,1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,4,8,17,29,42,57,72,87,101,116,129,140,149,155,159,161,163,165,167,169,171,172,172,169,166,175,202,229,231,220,216,217,219,
+221,222,223,224,226,229,233,237,242,247,251,250,249,249,249,249,250,251,252,252,253,253,253,251,244,236,229,218,202,191,186,184,180,175,173,171,162,141,117,108,107,113,135,163,185,193,201,189,
+165,140,101,64,48,46,46,46,48,48,48,50,52,54,56,59,61,64,66,69,72,74,77,80,84,89,94,99,104,110,119,131,145,160,176,190,200,208,218,229,237,242,244,246,248,248,249,251,
+251,251,252,252,252,252,253,253,253,253,253,252,252,251,251,251,251,251,251,252,253,253,253,252,252,252,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,254,254,254,254,252,
+247,243,243,243,243,241,239,236,232,226,220,214,206,194,182,173,165,151,132,116,98,80,70,66,66,66,66,68,71,68,53,38,31,29,30,31,31,30,30,30,31,29,23,22,29,30,27,27,
+121,110,99,94,91,81,69,55,36,22,17,15,12,7,2,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,5,7,11,17,21,24,29,35,42,49,60,74,90,106,123,136,145,150,
+152,153,155,158,161,167,172,173,174,174,181,199,218,228,234,237,240,246,252,255,255,254,251,248,246,243,239,230,225,224,225,225,225,225,226,224,219,210,202,203,210,215,221,223,214,200,189,182,
+174,167,161,161,176,194,199,196,197,198,190,168,140,122,102,74,58,52,48,49,51,51,50,51,51,52,54,57,58,60,63,66,69,72,75,79,83,87,92,100,108,119,131,140,148,159,172,187,
+201,216,228,236,241,243,245,249,250,250,250,250,250,250,249,248,247,246,247,247,246,245,244,241,239,238,236,233,232,233,234,235,235,235,238,241,243,244,246,247,248,250,250,250,250,250,250,250,
+250,249,249,247,246,246,246,247,249,250,252,253,254,253,253,253,253,254,253,254,254,253,251,248,246,246,247,247,248,246,243,240,237,233,224,214,202,186,176,172,173,172,173,176,183,183,166,145,
+136,134,134,135,136,136,135,135,135,132,120,118,140,143,129,126,221,216,207,199,199,201,198,190,178,167,164,158,145,122,98,81,69,57,43,27,13,11,17,18,10,2,0,0,1,3,4,5,
+5,5,4,3,2,2,3,4,6,10,18,26,39,54,65,70,73,75,77,80,89,102,114,124,133,143,158,178,208,231,240,242,243,243,231,204,180,165,153,145,144,145,150,160,167,170,172,172,
+170,166,158,146,132,116,104,101,105,110,113,110,102,92,86,81,77,73,70,70,77,90,101,104,102,94,74,59,53,51,52,52,52,52,52,53,52,52,53,54,55,57,60,62,65,67,71,74,
+78,84,89,97,104,114,125,139,155,171,187,199,206,214,224,233,241,246,249,250,251,251,250,250,248,246,245,243,240,237,234,227,223,219,219,217,216,213,208,202,196,191,185,180,177,178,180,179,
+179,180,182,188,193,199,205,211,217,221,224,225,225,223,219,214,210,208,204,199,197,196,195,198,201,204,209,220,227,231,233,230,225,219,214,212,212,214,214,216,217,221,224,225,226,228,236,242,
+244,245,246,246,245,242,238,238,237,238,238,240,242,244,242,236,234,234,234,234,234,234,233,234,234,232,226,226,238,237,227,223,248,248,246,244,244,245,246,248,249,249,247,243,233,216,201,190,
+181,168,149,121,100,103,125,131,115,95,77,63,48,30,14,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,8,8,10,12,16,20,29,44,72,113,162,206,231,234,212,185,165,
+150,136,105,73,59,55,52,54,57,63,71,82,90,95,97,96,94,90,84,77,72,68,68,68,68,67,67,66,65,65,63,61,59,58,56,55,53,49,47,47,47,47,48,49,50,51,51,51,
+52,52,53,53,53,55,56,58,60,63,66,69,72,76,82,88,96,108,122,136,150,163,178,195,210,224,234,240,243,245,248,250,251,251,250,249,247,246,244,240,233,226,221,216,211,204,199,191,
+185,181,179,177,176,172,168,161,155,150,144,138,134,130,129,126,124,123,123,124,127,129,133,137,143,147,149,150,148,144,137,131,127,124,121,118,116,114,109,105,104,102,105,113,123,134,142,142,
+131,116,104,97,94,95,100,108,118,127,133,135,140,151,170,184,192,203,215,227,235,241,244,245,245,245,245,245,246,248,250,248,243,239,237,236,236,235,236,237,239,242,246,248,248,248,247,248,
+247,251,252,251,252,251,250,247,245,242,241,241,237,231,229,228,227,226,219,211,211,222,238,244,243,238,231,221,206,183,152,125,105,92,83,81,87,94,96,96,96,96,96,96,95,95,96,96,
+96,97,98,99,101,109,143,189,222,228,204,165,116,69,46,38,34,32,31,31,34,36,37,38,40,40,41,42,44,44,45,47,51,54,57,60,65,68,69,70,71,67,62,58,54,52,50,48,
+47,46,45,45,44,43,42,43,44,45,46,46,47,48,49,50,51,52,53,55,56,58,60,63,66,70,75,80,87,95,105,118,135,156,176,193,206,217,228,238,244,248,250,251,251,251,251,250,
+248,246,241,235,228,225,219,211,203,195,191,186,181,175,171,167,163,161,159,158,156,153,151,147,144,140,136,132,129,125,122,119,116,113,111,108,105,103,100,98,97,96,95,93,90,86,82,80,
+77,73,72,68,66,63,58,54,49,46,44,43,44,49,53,53,48,42,41,39,40,40,43,48,54,56,52,48,50,59,70,78,88,103,122,144,167,189,199,203,205,205,206,209,214,217,209,190,
+167,150,145,144,146,148,153,160,165,174,185,194,198,210,227,240,154,178,201,213,210,201,192,188,189,191,193,196,199,199,194,187,181,177,181,189,194,192,188,187,188,188,183,178,180,196,214,224,
+228,226,223,223,226,229,230,230,229,230,230,230,230,230,230,229,230,230,230,230,231,231,227,203,155,103,57,29,17,15,16,19,20,21,23,24,24,25,26,27,27,28,28,28,29,31,39,51,
+61,69,73,78,79,80,81,82,82,82,80,74,69,64,56,49,45,40,39,37,37,36,38,38,39,40,42,44,45,46,48,49,51,53,55,58,59,62,65,69,75,83,93,106,122,137,152,170,
+191,211,227,237,243,245,248,250,251,251,250,249,247,246,244,240,233,225,217,208,200,196,191,186,181,178,176,173,171,168,167,165,164,163,162,160,158,156,154,152,149,147,143,141,137,135,131,128,
+125,122,118,114,110,107,102,99,95,92,87,84,80,76,73,69,66,61,58,54,52,49,45,42,39,37,33,31,30,31,35,45,52,57,60,61,60,61,60,60,61,59,56,49,45,40,34,30,
+28,31,38,49,66,83,89,92,94,97,103,108,109,102,86,66,49,41,38,37,39,41,46,51,54,60,69,79,84,93,112,132,22,34,51,60,58,53,52,54,56,56,56,55,54,52,47,43,
+40,39,41,44,45,43,40,39,38,33,26,24,29,47,71,94,110,121,130,133,127,120,117,118,117,118,117,118,118,118,118,117,119,118,119,118,120,115,88,50,21,8,6,8,10,12,13,14,
+15,17,18,18,18,19,19,19,20,22,24,30,39,51,62,69,67,62,57,54,51,50,57,57,51,52,60,67,70,73,74,73,70,64,61,59,59,60,60,49,38,39,41,42,44,47,48,51,
+52,55,58,61,64,69,75,84,96,113,134,157,178,195,209,222,234,243,248,250,251,251,251,249,248,246,240,234,230,226,222,214,206,199,193,187,184,182,181,180,179,178,178,177,177,176,175,175,
+174,173,172,171,168,167,165,163,160,158,155,152,149,146,142,139,135,131,128,124,120,115,112,107,102,98,94,90,85,81,77,72,69,66,62,58,54,51,47,44,42,41,40,43,50,58,67,70,
+66,59,52,46,41,40,44,43,34,35,42,48,52,55,55,52,48,43,40,40,43,44,44,31,17,17,20,21,21,16,12,7,5,5,5,5,5,5,5,6,6,8,10,12,15,16,19,21,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,3,4,2,2,1,1,1,2,1,1,2,2,2,1,
+2,1,2,2,2,3,2,1,2,4,7,10,16,22,29,34,38,42,47,49,49,52,53,54,54,54,55,58,60,59,52,39,28,22,21,21,29,43,55,40,22,21,24,27,32,38,46,53,
+60,66,69,71,72,74,71,54,37,37,39,42,45,47,49,52,55,59,63,69,78,88,102,118,139,165,192,214,229,239,243,247,249,251,251,249,247,245,243,237,231,224,215,207,202,199,196,193,
+189,187,185,184,184,185,186,187,187,187,187,187,187,187,186,186,185,184,183,182,180,178,176,174,172,169,167,164,160,157,153,149,146,142,138,133,129,125,120,116,111,106,103,99,97,97,98,97,
+96,94,94,92,89,87,86,84,80,78,77,77,77,74,64,50,37,29,24,22,27,40,50,34,12,9,11,14,19,24,30,37,43,48,52,52,53,52,48,27,5,2,2,2,2,2,3,3,
+3,4,3,4,5,4,3,3,3,4,4,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,7,9,12,17,25,32,40,48,54,56,56,56,57,64,68,73,82,95,100,97,91,82,68,53,42,36,34,
+34,36,44,58,75,84,71,38,15,14,16,17,17,18,19,21,24,29,33,36,38,40,40,37,35,37,40,43,45,48,53,58,64,72,82,95,111,130,152,175,197,219,236,245,249,251,251,251,
+250,248,243,236,228,223,217,211,204,197,192,189,187,187,187,188,189,190,191,192,193,195,196,197,197,198,198,198,198,198,197,196,196,194,194,192,190,188,186,184,182,180,177,174,170,168,164,160,
+155,152,148,145,140,136,132,129,127,127,127,127,127,126,124,120,116,113,113,114,114,119,126,128,124,116,106,92,77,64,56,52,49,49,54,65,79,87,72,38,14,10,9,8,8,7,6,8,
+9,12,16,17,17,17,16,8,3,3,3,3,3,3,4,4,4,4,4,4,5,5,4,4,4,5,4,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,24,33,37,41,44,45,46,50,52,52,48,44,36,29,24,
+21,19,22,24,28,38,54,71,87,99,100,93,81,71,69,73,74,73,77,89,95,89,73,54,37,24,15,12,13,15,16,17,19,20,22,23,24,26,28,32,36,39,43,46,51,57,64,76,
+90,108,127,146,168,191,211,227,238,245,249,251,251,249,246,244,239,230,218,207,199,193,190,188,186,185,185,186,189,191,193,195,197,198,200,202,204,205,205,206,207,207,207,208,207,207,206,206,
+205,204,203,202,200,198,196,194,191,189,186,183,180,177,174,169,168,170,169,167,165,162,158,155,152,149,145,139,132,123,113,106,99,93,90,87,86,90,98,110,119,126,125,117,105,94,90,91,
+91,87,89,97,103,96,77,57,40,24,13,9,8,7,7,7,6,6,5,4,3,2,1,2,2,3,3,3,3,3,3,4,4,4,4,4,5,5,4,4,4,5,4,3,3,3,3,4,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,
+10,37,49,50,49,49,49,46,40,32,23,15,9,4,2,2,3,4,5,6,12,23,37,54,67,74,78,78,70,58,51,47,44,39,36,36,38,37,43,53,61,60,48,34,28,28,34,41,
+46,48,52,58,61,57,51,45,45,47,52,59,68,81,98,120,145,170,190,209,224,236,244,248,250,251,250,246,241,233,224,218,210,199,189,183,180,180,181,183,185,188,191,193,196,198,201,204,
+206,208,209,210,212,213,214,214,215,215,216,216,216,215,215,214,213,213,211,210,209,207,206,203,201,198,196,192,189,186,182,178,179,183,184,180,176,172,168,162,155,147,138,129,120,112,105,100,
+94,90,85,82,81,84,90,100,108,110,111,108,99,86,77,71,65,59,54,51,50,48,50,58,65,62,49,33,24,23,28,33,36,37,38,41,41,35,24,13,7,4,2,2,1,1,2,2,
+2,2,2,2,3,3,3,3,4,4,4,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,1,14,27,30,31,31,31,30,28,22,14,8,4,3,9,15,29,42,44,44,43,40,37,34,30,25,26,26,26,30,34,37,41,49,58,65,65,57,46,38,35,30,23,15,9,
+5,3,3,3,4,7,13,28,52,77,91,89,80,72,67,67,67,68,77,97,109,114,113,107,103,103,108,116,131,148,168,191,212,229,239,245,248,250,250,249,248,244,238,226,212,200,191,185,
+181,177,176,175,178,181,184,188,192,195,199,202,205,207,210,212,214,215,217,218,219,220,221,222,222,222,222,222,222,222,222,222,221,220,219,218,218,219,218,216,214,212,210,207,203,198,193,189,
+185,183,181,180,180,177,172,167,162,156,150,143,136,131,126,121,118,116,113,111,112,115,116,113,104,92,82,76,68,59,50,41,34,29,27,23,22,21,24,36,57,81,93,88,77,68,61,58,
+56,55,61,78,88,88,82,70,57,46,37,30,28,28,28,29,29,29,29,29,25,18,11,5,3,3,5,3,3,3,3,3,0,3,8,15,22,24,24,24,24,24,24,24,24,21,15,6,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,23,43,48,48,49,49,49,50,51,50,45,38,28,17,12,28,46,50,50,50,50,51,51,52,52,54,54,53,
+51,52,55,60,67,72,72,66,59,54,53,52,51,49,45,39,33,29,29,31,35,39,43,51,62,70,79,83,79,70,58,53,53,55,66,89,110,127,145,158,167,177,187,199,210,221,232,241,
+247,251,252,252,251,250,248,241,232,219,205,191,178,171,168,168,171,174,179,184,189,194,198,202,205,208,211,214,216,217,219,219,220,220,221,222,223,223,223,224,224,224,224,224,224,225,225,225,
+225,224,224,223,224,226,226,224,223,222,219,217,215,213,209,204,199,192,187,187,189,186,181,177,173,169,164,160,156,152,148,142,137,133,129,128,128,128,124,117,108,100,95,91,87,83,76,68,
+59,52,49,49,49,50,52,57,64,71,77,77,69,55,37,27,22,20,25,39,51,60,73,84,89,90,89,87,86,86,86,87,87,87,87,86,85,78,66,49,30,11,3,1,2,1,1,1,
+51,61,74,89,99,101,101,101,101,101,101,101,101,98,88,70,48,26,10,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,11,13,13,14,14,14,16,23,31,39,46,
+51,50,46,43,38,31,25,21,19,18,18,21,25,28,30,31,34,42,55,68,74,70,62,54,49,48,52,54,56,59,63,67,71,72,72,72,73,72,72,68,61,55,56,62,69,76,82,88,
+93,100,111,128,149,168,184,195,205,216,228,237,243,246,249,250,251,250,249,246,242,236,229,222,212,198,180,167,162,164,171,181,191,197,202,209,214,216,218,220,222,224,225,227,227,228,227,226,
+224,222,220,219,218,218,216,216,215,215,215,215,215,216,217,218,219,220,221,222,223,224,224,223,222,221,220,218,216,215,213,212,209,206,202,198,193,186,180,173,168,162,157,152,149,145,140,135,
+130,129,130,131,130,121,110,98,90,85,84,82,80,79,79,81,81,79,77,75,71,68,65,59,46,33,26,22,19,13,9,6,5,4,3,4,6,9,16,26,37,46,55,62,63,63,63,64,
+64,64,64,65,70,79,87,92,86,61,30,11,5,9,21,33,119,120,120,115,107,105,105,105,105,105,105,105,105,108,117,129,125,103,77,63,56,44,30,22,16,12,11,11,11,13,14,13,
+12,10,5,1,0,0,0,0,0,0,0,0,0,1,4,10,19,30,41,49,51,48,42,35,31,27,26,29,34,39,45,55,67,78,87,93,92,87,84,83,81,82,83,83,84,85,86,92,
+97,100,101,99,98,98,100,104,107,113,123,136,149,162,173,180,184,188,195,206,219,229,234,236,238,242,246,248,249,249,249,247,242,235,224,213,201,189,181,179,184,191,190,184,182,190,202,211,
+214,215,217,218,219,221,223,223,225,226,226,226,226,226,224,224,220,215,208,203,199,194,189,185,182,180,180,180,182,184,187,191,195,199,203,208,211,213,216,219,220,221,220,220,218,217,214,211,
+209,208,207,205,202,197,191,184,178,172,166,160,155,150,146,144,144,142,138,130,115,101,89,81,75,69,65,61,57,54,53,53,55,55,52,48,43,40,41,43,41,36,35,35,36,34,34,33,
+32,30,25,19,14,10,5,3,2,3,6,8,9,9,9,10,10,9,9,9,13,19,30,49,75,96,95,76,63,75,96,109,85,70,56,42,31,28,28,28,28,28,28,28,28,31,46,76,
+100,111,117,118,117,113,105,97,88,83,80,80,82,85,81,72,70,66,56,46,37,26,18,11,5,0,0,0,0,0,0,0,0,0,6,15,27,38,46,51,55,60,67,77,88,100,109,116,
+122,127,133,145,156,164,169,171,170,171,171,171,171,170,171,171,171,171,172,174,177,182,189,198,206,211,218,225,231,237,240,242,242,243,244,246,249,249,250,249,248,247,247,245,242,239,233,222,
+208,191,175,162,154,147,146,152,166,189,208,214,215,218,220,217,209,206,208,209,210,212,214,216,217,217,215,212,207,202,195,191,185,177,168,160,152,145,138,132,128,125,124,125,129,133,138,142,
+149,157,164,173,181,187,196,203,208,213,216,218,219,219,219,217,214,209,206,203,202,200,198,195,191,186,182,178,173,168,163,156,149,138,126,114,103,96,90,85,80,74,69,64,59,54,50,45,
+41,37,36,40,47,58,74,94,109,111,109,109,110,110,109,108,107,105,100,91,82,72,57,40,25,14,7,4,1,0,0,0,0,0,0,1,1,2,7,23,53,98,139,150,147,151,144,122,
+56,36,25,22,23,25,25,24,24,24,24,24,21,16,13,18,29,44,60,69,73,85,97,103,109,112,113,114,115,113,96,78,75,79,84,86,86,83,77,70,58,42,29,18,10,5,1,0,
+0,0,0,0,0,4,11,22,38,61,87,113,137,157,170,177,184,192,203,215,225,230,231,231,231,231,231,231,231,231,232,232,233,234,235,238,239,241,242,243,245,247,249,249,250,251,251,251,
+251,251,252,252,251,250,248,247,245,242,236,228,218,207,194,181,167,155,147,145,148,157,167,180,192,202,208,209,209,213,215,212,206,205,207,209,212,213,214,212,209,204,197,186,173,158,143,129,
+115,102,91,82,73,68,63,60,58,57,57,59,61,64,67,70,77,88,100,113,127,141,155,168,180,191,200,207,213,217,221,224,224,221,214,208,202,197,194,190,187,182,178,173,167,161,154,145,
+135,127,119,113,108,101,95,89,83,78,72,66,61,57,53,53,56,64,76,90,100,107,108,113,126,128,121,115,114,113,113,112,111,111,115,119,123,124,122,113,99,82,67,55,41,30,28,28,
+29,30,30,33,41,54,71,91,110,125,133,128,119,126,124,104,89,85,87,94,99,103,103,101,101,101,101,100,97,89,77,67,63,62,62,55,47,42,39,40,43,46,46,47,46,42,29,18,
+16,21,29,39,49,61,69,78,85,88,84,77,68,58,45,34,24,17,13,11,10,13,24,43,75,117,156,186,206,220,228,231,235,238,242,244,245,246,246,246,246,246,245,246,247,247,247,248,
+249,250,250,250,249,249,248,248,248,248,248,247,246,244,241,240,240,239,238,236,229,222,217,216,217,216,211,206,197,189,181,178,178,180,181,185,192,200,207,212,211,202,192,186,187,193,203,211,
+215,217,218,219,219,217,213,205,194,181,165,145,125,104,84,65,52,39,30,23,18,14,11,10,10,9,10,10,10,10,11,12,16,20,29,39,54,70,87,108,128,148,166,183,195,206,215,224,
+231,235,232,225,221,213,203,196,190,185,180,175,168,161,153,145,139,133,126,119,113,106,100,93,87,82,80,80,82,84,87,96,107,115,115,108,95,80,63,53,56,55,48,43,42,40,40,39,
+37,38,42,50,57,69,85,102,115,121,123,122,115,107,104,106,113,119,121,124,132,142,151,156,149,116,80,51,34,42,65,84,56,72,87,98,103,106,106,105,105,105,105,105,108,114,119,119,
+119,118,117,115,110,100,86,72,59,46,38,33,29,27,25,23,23,23,24,26,30,34,34,34,42,51,61,71,79,84,87,85,83,79,76,76,78,88,108,136,173,207,230,241,246,248,249,249,
+249,249,248,246,243,240,239,239,240,240,241,242,243,243,244,243,243,241,239,237,236,236,236,236,236,235,231,225,219,209,199,193,190,188,185,177,163,148,138,135,138,143,147,152,158,163,164,168,
+180,190,194,199,204,207,210,212,212,206,199,195,195,195,199,204,210,215,217,216,211,204,192,176,155,132,108,84,63,46,32,23,16,11,8,7,5,5,4,3,2,2,1,1,1,0,1,0,
+2,2,3,6,10,17,27,41,60,81,107,132,156,177,194,209,225,237,244,243,242,242,233,221,213,207,203,198,193,186,179,173,168,162,153,145,139,133,128,122,117,115,120,126,128,128,126,123,
+116,99,80,61,46,35,29,25,22,20,17,15,14,13,12,10,9,9,8,8,9,11,17,27,42,57,69,84,98,106,107,112,128,141,144,148,152,154,153,153,146,121,93,69,49,34,30,36,
+51,43,35,31,30,29,29,28,28,28,28,28,32,42,53,63,68,74,88,108,131,151,154,151,145,134,123,113,105,100,100,100,100,101,102,104,106,105,99,85,73,63,55,49,49,53,61,75,
+93,108,120,130,144,164,188,210,230,242,249,250,249,248,246,245,243,239,235,230,221,213,210,208,208,208,207,203,200,197,194,191,188,185,184,184,184,184,184,184,183,178,170,159,147,133,122,114,
+111,110,107,102,92,83,77,75,77,80,84,91,99,107,113,120,132,143,149,157,166,173,178,185,194,204,210,214,215,214,213,212,210,209,205,197,186,169,147,122,95,69,46,28,15,9,5,3,
+2,2,2,3,3,3,3,3,3,3,3,3,2,2,3,4,4,4,5,5,6,7,9,13,19,31,49,72,99,126,153,177,199,220,239,248,250,252,251,244,230,221,213,205,199,195,194,192,
+186,179,176,173,168,163,158,154,150,146,140,130,118,108,95,82,68,54,44,38,35,32,30,28,25,22,20,18,16,15,14,13,12,11,9,8,8,7,5,4,4,6,10,15,23,29,32,34,
+45,55,57,62,69,74,75,80,93,108,119,121,117,105,87,71,115,101,79,58,43,33,28,26,25,24,24,24,24,26,29,35,45,63,86,109,132,149,151,147,142,135,127,118,110,108,111,115,
+121,131,143,154,157,157,157,154,150,144,135,123,113,102,91,93,108,127,149,172,192,213,231,240,244,247,246,240,229,216,204,196,186,176,166,155,141,129,123,120,119,118,112,104,100,98,96,95,
+95,95,96,97,97,98,99,98,97,94,86,78,70,64,58,56,55,56,57,57,56,56,57,60,64,69,73,78,84,89,96,103,110,117,124,131,138,146,154,161,170,182,193,202,210,217,220,220,
+217,211,198,181,159,132,103,73,47,26,12,5,1,1,0,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,2,3,3,4,4,4,6,6,7,11,19,32,54,80,108,139,
+166,189,215,238,250,253,253,252,243,229,220,206,190,181,177,174,166,159,155,153,147,141,136,129,125,117,105,90,79,70,63,56,52,47,44,41,38,34,31,29,26,23,21,19,17,16,15,13,
+12,11,10,10,9,8,7,6,6,6,5,3,2,3,2,2,3,4,4,4,7,8,8,11,19,34,53,70,89,108,119,122,91,107,119,120,114,108,104,102,101,100,100,101,100,101,100,103,
+110,117,119,113,103,91,76,62,51,43,41,45,54,69,87,100,113,129,142,149,147,146,147,149,151,151,152,154,151,140,120,112,126,153,185,214,232,243,248,250,249,246,235,211,177,147,124,110,
+99,88,71,57,46,38,34,32,32,32,31,31,32,32,33,32,33,34,35,35,35,38,38,38,39,37,35,33,33,33,33,35,36,39,41,45,48,50,55,59,64,69,75,81,87,93,100,106,
+113,119,127,133,140,147,155,161,168,175,182,189,196,202,208,209,207,199,185,162,131,98,65,38,19,8,3,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,
+1,1,1,2,1,2,2,2,3,3,5,10,21,39,64,94,125,154,180,207,235,251,254,253,253,248,239,232,217,196,183,175,166,156,145,136,129,122,115,108,102,95,88,82,76,71,66,60,
+57,52,47,43,40,35,32,30,27,24,22,20,18,16,15,14,12,11,11,10,9,9,8,7,7,7,6,6,5,5,5,4,3,3,3,2,3,3,2,1,0,1,3,8,17,33,50,65,
+16,32,54,72,86,97,102,104,104,104,104,104,104,104,105,104,97,80,60,42,29,19,11,7,9,18,40,67,91,109,119,121,120,113,102,86,74,68,69,70,71,73,77,82,89,97,108,131,
+165,198,224,238,245,248,247,244,239,230,206,166,124,98,82,75,71,63,37,16,11,10,9,9,8,9,9,10,10,11,11,11,12,13,13,14,15,16,17,18,19,20,21,22,24,26,27,31,
+33,37,40,43,47,51,56,61,66,71,77,83,90,96,103,109,115,122,130,137,145,151,158,165,172,178,184,190,194,197,198,193,186,172,151,123,91,59,32,14,5,2,1,1,1,1,1,1,
+1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,4,12,27,52,83,116,147,174,202,232,250,253,253,254,252,249,245,233,219,208,
+200,189,169,150,142,136,128,121,115,109,103,97,92,88,82,77,71,65,59,52,47,42,37,33,30,26,23,21,18,16,15,14,13,12,10,9,9,8,7,7,6,6,6,6,5,6,4,4,
+4,4,3,4,4,4,3,2,3,3,2,1,1,1,2,6,0,0,3,17,34,49,59,62,62,57,50,48,48,53,59,59,54,44,35,36,40,45,50,58,68,87,111,121,115,99,80,65,
+52,37,24,13,7,5,6,8,11,19,34,57,89,126,164,199,224,238,245,246,245,239,227,204,180,157,128,91,62,49,43,40,40,36,18,6,4,5,5,6,6,6,7,7,7,8,8,8,
+9,10,10,11,12,12,14,16,17,17,18,20,22,25,27,30,34,38,41,45,49,53,57,62,68,73,79,85,91,97,104,111,118,125,132,139,147,154,160,168,174,181,187,191,195,197,193,184,
+169,146,117,85,54,28,11,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,10,26,
+52,84,120,150,176,200,229,247,253,253,253,253,251,247,241,233,224,215,200,185,178,172,165,158,152,147,143,139,134,130,126,121,115,107,97,86,78,68,60,52,45,38,31,27,21,19,18,16,
+15,14,14,13,12,11,10,9,9,8,7,6,5,4,4,4,4,3,3,4,4,4,3,2,3,3,3,3,3,2,1,0,1,15,40,66,87,103,116,124,123,116,106,100,96,101,110,114,
+116,114,112,114,119,120,120,121,121,118,100,72,45,23,11,5,1,0,0,1,3,7,12,21,34,57,89,130,170,202,226,239,245,247,244,237,223,199,165,126,89,61,39,22,11,6,5,4,
+4,5,5,5,5,4,5,6,6,7,7,7,8,8,9,9,9,9,10,11,13,13,14,16,17,19,27,31,33,33,34,34,35,37,40,45,49,53,58,62,68,73,79,86,91,98,104,111,
+118,125,133,140,148,155,162,170,176,182,188,192,195,194,187,175,155,129,98,65,36,15,4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,12,31,60,95,129,159,183,207,230,248,252,252,252,252,250,248,244,240,234,228,225,224,221,215,210,205,203,201,199,197,195,193,190,
+186,178,167,154,143,131,118,107,94,81,72,62,52,44,41,37,34,32,32,30,30,29,29,27,25,22,19,15,12,9,8,7,5,4,4,6,6,6,5,5,6,6,6,6,5,2,0,0,
+68,97,126,154,173,186,200,210,211,206,202,199,187,175,178,183,185,180,166,148,130,115,100,86,73,56,34,16,9,7,7,8,10,12,16,21,29,40,56,77,104,137,174,206,229,240,245,246,
+244,237,221,194,158,118,81,51,29,17,9,6,4,2,2,2,2,3,5,5,5,4,4,6,6,6,7,8,9,8,8,10,10,10,11,12,13,14,15,16,16,27,53,65,67,66,66,64,
+58,51,48,48,50,55,61,66,73,81,91,101,108,115,122,127,133,137,141,145,150,156,163,170,177,183,189,192,193,190,181,168,149,121,86,50,23,7,2,0,1,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,6,18,43,76,111,145,173,197,220,238,250,252,252,252,251,250,249,
+248,247,247,248,248,247,246,243,242,241,241,240,239,239,238,237,236,233,227,220,213,205,196,186,174,162,155,144,130,122,117,112,104,98,93,89,88,87,87,86,83,78,75,71,65,60,55,50,
+46,42,37,33,29,25,23,23,25,26,26,23,16,11,15,28,194,202,213,229,237,242,245,247,247,246,245,245,242,233,233,235,236,233,219,190,154,127,103,80,62,50,45,44,44,45,45,46,
+49,56,65,78,93,113,139,165,188,211,230,241,246,246,243,235,219,191,155,114,75,45,25,13,6,4,2,3,4,4,3,3,3,3,4,5,5,5,4,5,7,7,7,8,8,9,8,10,
+11,10,11,12,13,14,15,16,17,24,43,53,57,63,68,75,80,82,78,77,76,81,87,94,100,108,118,132,144,151,156,161,165,168,169,171,172,171,172,174,179,184,189,192,193,191,185,172,
+146,109,68,34,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
+12,32,62,99,134,163,188,216,236,246,252,252,252,251,251,251,251,251,251,252,252,252,251,251,250,250,250,250,250,250,250,249,249,248,247,245,244,243,240,237,232,226,218,208,197,192,191,192,
+191,190,188,185,183,182,182,183,180,175,169,166,162,155,147,141,137,135,131,125,116,105,96,91,93,102,109,106,101,111,138,167,248,247,248,248,248,247,247,247,247,247,248,248,248,248,248,248,
+248,248,248,240,221,202,184,163,144,132,127,125,125,125,126,127,132,140,153,166,180,197,215,228,237,243,246,246,242,232,214,186,150,110,73,43,23,11,4,2,1,1,2,3,4,4,4,3,
+3,3,3,4,5,5,6,6,6,7,7,8,8,9,9,10,10,11,12,13,14,15,15,16,18,19,21,24,27,31,36,42,54,66,76,84,89,93,95,97,101,102,105,117,130,138,143,148,
+154,162,171,180,187,191,193,194,194,196,198,201,203,201,192,168,133,93,55,26,9,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,8,27,55,91,127,158,181,206,234,247,251,252,252,251,251,251,251,251,251,251,252,251,249,246,244,243,243,243,242,242,241,241,
+241,243,245,245,246,247,248,248,247,246,243,239,235,234,233,234,235,236,237,238,238,237,237,237,235,232,226,222,219,212,204,198,197,200,203,205,205,203,200,198,204,218,226,226,228,235,245,249,
+247,247,247,247,247,247,247,247,247,247,246,246,247,248,248,249,249,249,249,249,247,243,238,228,218,212,211,213,213,214,213,213,215,220,226,231,235,239,244,246,247,245,242,233,212,181,143,104,
+68,40,22,10,4,1,0,0,0,2,2,3,3,4,4,3,3,4,3,4,5,5,5,6,6,7,8,8,9,9,10,10,10,11,12,13,13,15,16,16,18,20,21,23,24,27,30,32,
+36,40,46,54,60,64,67,70,74,78,82,90,98,103,110,118,124,132,143,153,165,178,189,198,203,207,210,211,209,201,184,157,122,86,53,25,8,2,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,9,26,54,89,126,157,180,197,224,246,251,252,252,251,250,250,
+250,249,248,245,241,235,228,219,214,210,208,206,204,203,201,201,204,209,216,221,226,231,236,239,240,243,246,247,247,247,247,247,246,246,246,247,247,246,246,247,246,245,244,243,242,239,235,233,
+234,236,238,240,241,242,244,245,249,252,252,252,252,252,251,249,248,248,247,247,248,246,245,238,227,211,195,187,187,190,194,198,207,222,235,235,235,238,245,247,247,246,247,248,247,247,247,247,
+247,247,248,249,249,249,246,241,235,226,208,178,139,99,63,36,19,9,3,0,0,0,0,0,0,0,0,1,1,1,2,2,2,3,3,4,5,5,5,6,6,7,8,9,9,9,10,10,
+11,11,11,13,14,15,16,16,18,19,21,24,26,28,31,33,37,39,41,45,49,54,58,64,69,75,81,86,93,99,107,114,120,126,134,141,149,158,168,178,187,194,199,200,198,190,176,154,
+125,91,56,28,10,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
+10,28,58,94,129,160,182,199,222,245,253,252,251,250,248,244,242,238,232,217,201,191,180,171,162,155,151,147,143,139,136,134,135,141,148,156,165,174,184,193,201,212,224,232,236,236,236,237,
+236,236,236,236,236,236,236,236,237,240,242,245,245,246,246,246,247,247,247,247,247,247,248,248,249,249,250,250,250,249,248,248,216,209,204,202,200,188,172,150,124,97,76,68,67,67,68,73,
+84,110,142,147,142,145,165,193,206,208,213,221,227,233,237,241,242,243,242,239,235,227,214,202,190,174,145,106,66,36,18,8,3,0,0,3,8,13,19,23,24,25,25,25,26,24,20,14,
+8,2,2,2,3,5,5,5,6,7,7,9,9,9,10,11,11,12,12,12,14,15,16,17,18,20,21,24,26,28,30,33,37,40,42,46,50,55,59,64,70,75,80,87,93,100,106,113,
+120,127,134,141,148,155,162,169,176,182,188,191,192,188,178,160,134,101,66,36,14,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,14,36,68,104,139,168,190,211,232,250,253,252,249,247,239,231,222,213,195,171,156,148,139,131,122,116,109,104,98,94,89,84,
+83,84,85,88,92,98,106,114,125,140,157,171,181,184,185,186,186,185,184,184,183,184,184,185,190,198,208,217,223,229,234,237,242,247,247,248,248,248,248,248,247,245,238,231,227,226,225,222,
+113,96,86,81,74,63,50,36,23,13,8,7,7,7,8,12,20,35,57,63,55,47,57,77,94,111,130,148,159,162,163,170,180,184,181,172,157,140,129,122,113,104,90,74,56,41,34,35,
+41,48,56,67,77,88,97,100,101,101,101,102,102,100,94,83,66,42,23,11,4,2,3,4,5,6,7,7,9,9,9,10,12,12,12,12,13,15,16,17,18,20,22,23,25,28,30,33,
+35,38,40,45,49,53,57,62,68,73,79,86,92,98,105,111,118,125,132,140,147,154,160,168,175,181,187,190,192,190,183,169,146,116,81,49,23,8,1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,8,24,51,87,125,159,185,207,228,246,253,252,250,248,242,232,221,
+209,192,170,151,137,129,122,114,107,101,95,88,82,76,71,66,62,59,56,54,53,53,54,57,62,69,80,89,96,99,100,99,99,98,97,95,95,96,96,98,103,114,126,140,152,164,175,183,
+194,208,214,215,215,214,214,210,198,177,151,136,138,146,145,133,26,17,12,8,6,4,3,1,0,0,0,0,0,0,0,2,8,17,29,38,38,32,33,42,55,72,85,87,80,71,64,61,
+63,67,65,60,58,61,63,52,36,29,30,38,50,62,78,100,121,134,135,129,123,118,112,107,105,105,105,105,106,108,114,120,124,115,97,75,52,29,15,10,6,4,4,6,7,7,8,8,
+9,10,10,11,12,13,14,15,16,18,19,22,24,27,31,33,38,45,50,54,59,62,67,70,73,75,79,84,90,96,103,110,117,123,130,137,145,152,159,166,172,180,185,189,193,193,189,178,
+160,134,103,69,40,17,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,6,19,
+43,76,114,150,178,200,219,242,251,249,248,243,235,225,219,213,207,199,187,172,155,137,123,112,103,95,89,83,77,71,66,60,55,51,47,43,39,37,34,33,33,34,35,36,39,40,40,40,
+42,44,45,45,45,45,45,44,43,45,51,57,66,76,84,91,98,105,111,112,112,111,108,100,85,65,53,53,62,67,60,43,2,0,0,0,0,0,0,0,0,0,0,3,10,16,23,34,
+48,61,71,79,88,89,90,93,99,106,112,108,99,95,92,77,60,49,40,35,38,46,45,34,21,18,26,43,65,91,117,135,138,126,103,76,57,44,35,29,28,28,28,28,29,31,40,54,
+75,99,114,122,119,104,84,66,51,38,32,29,28,31,33,33,34,34,35,35,34,31,28,27,25,25,28,36,44,52,56,61,67,75,80,84,87,90,94,97,98,98,99,97,91,94,101,108,
+115,121,128,135,142,149,157,163,170,176,182,188,192,194,193,186,175,155,128,96,65,36,16,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,2,6,18,40,71,106,140,167,187,206,232,246,241,238,230,215,201,192,187,183,184,188,192,191,187,175,160,144,129,116,105,98,91,87,83,78,
+74,70,67,62,57,51,44,39,35,31,31,35,41,45,46,48,53,56,57,59,59,58,57,56,53,49,46,36,23,22,26,28,29,29,30,30,30,30,27,24,19,15,15,18,20,17,12,6,
+0,0,0,0,0,0,0,0,0,3,27,59,79,91,100,108,116,119,120,119,118,118,118,119,120,122,124,127,130,138,146,145,139,132,122,111,106,104,99,96,93,98,107,115,119,119,111,90,
+64,40,20,8,1,0,0,0,0,0,0,0,0,0,0,3,10,24,41,63,88,109,122,130,133,128,121,114,106,105,107,108,108,109,108,109,108,103,97,94,90,90,95,101,99,93,88,83,
+77,72,70,70,74,77,81,86,94,102,108,104,91,91,98,104,111,117,124,132,139,146,153,160,166,173,179,185,190,194,195,193,186,173,154,128,98,67,39,19,7,1,1,1,0,0,1,1,
+1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,8,21,43,71,103,135,161,181,196,221,240,233,226,219,202,189,181,174,168,161,
+156,155,156,162,169,176,179,181,179,172,164,155,147,142,140,137,134,132,129,127,123,116,108,102,96,93,96,99,95,85,76,69,60,51,45,42,42,40,40,41,45,50,51,38,13,4,4,4,
+4,4,6,6,6,6,5,3,2,3,4,4,2,1,0,0,0,0,0,0,0,0,0,0,0,11,64,111,119,113,106,97,85,72,64,56,49,46,46,46,47,47,48,50,57,68,80,95,
+114,129,136,139,142,150,156,158,158,158,157,143,112,79,48,20,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,7,24,52,89,133,160,163,158,142,121,112,110,111,
+112,112,113,113,117,123,126,127,131,139,151,155,148,134,124,112,94,79,70,64,62,64,67,71,78,86,93,96,95,97,103,108,112,117,124,129,136,142,149,156,162,168,175,181,187,192,195,196,
+194,187,176,158,134,105,76,48,27,12,6,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,2,6,14,30,52,80,109,
+138,163,182,196,214,232,230,219,211,199,189,183,177,170,164,156,148,141,134,131,132,142,158,181,195,194,188,174,156,146,141,139,136,134,131,130,131,133,134,134,135,141,151,154,145,129,116,100,
+79,60,46,34,29,25,24,23,27,31,34,29,20,15,14,11,8,8,6,4,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,39,60,52,39,30,21,
+13,6,2,0,0,0,0,0,0,0,0,0,1,3,7,13,25,38,48,54,62,76,94,111,126,134,140,134,116,92,66,42,24,11,3,0,0,0,0,0,0,0,0,0,0,0,0,0,
+5,11,21,34,53,81,111,132,134,114,85,62,45,37,36,36,38,39,39,40,43,50,57,63,72,92,116,139,159,167,168,163,153,142,134,127,122,120,119,120,124,127,131,135,138,143,147,146,
+145,147,149,150,154,159,164,169,172,174,176,179,183,188,192,196,197,196,190,181,166,145,120,92,66,43,26,14,5,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,1,0,1,2,6,14,27,47,72,100,128,153,173,189,200,212,223,221,212,206,198,190,184,177,172,165,158,152,147,143,141,141,146,156,170,179,176,160,136,114,98,87,81,77,
+73,70,66,64,64,66,69,71,77,94,116,137,156,163,162,157,145,130,119,108,100,93,89,87,86,87,87,86,86,87,87,78,69,65,59,50,48,48,46,44,37,26,15,5,0,0,0,0,
+0,0,0,0,0,0,1,5,9,14,21,28,28,26,24,24,23,23,23,22,18,12,8,4,1,0,0,0,0,0,0,0,0,0,0,2,17,32,47,70,113,141,160,173,182,186,187,180,
+169,157,142,106,68,38,21,14,10,8,9,11,12,17,28,43,60,79,95,109,120,122,110,84,54,28,13,7,7,7,7,8,8,9,10,10,10,13,23,38,58,81,102,118,132,137,134,130,
+125,127,136,144,148,148,146,146,149,151,153,156,160,163,166,164,160,162,164,167,174,178,182,187,188,188,188,187,187,188,190,194,197,199,198,196,189,177,162,140,118,93,69,47,30,17,9,4,
+2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,9,18,31,49,71,98,125,152,174,192,203,211,217,221,217,209,204,199,194,188,183,178,172,167,165,166,
+168,171,175,178,179,177,167,146,122,100,84,73,66,61,56,52,48,44,40,36,32,31,36,47,64,84,102,116,128,131,127,120,114,114,122,129,130,128,122,121,120,120,119,118,119,119,119,111,
+100,95,92,89,94,95,93,94,89,77,65,48,30,16,5,0,0,0,0,0,3,24,51,68,78,84,89,94,98,100,100,100,100,101,101,100,95,87,77,68,54,41,29,20,13,9,11,23,
+35,63,98,134,163,170,175,180,178,169,166,170,180,192,206,215,216,216,217,220,216,200,178,154,131,116,103,89,83,88,100,111,117,117,112,101,86,63,37,16,5,2,4,6,7,8,9,9,
+8,8,10,18,30,48,70,89,99,97,89,78,67,57,52,49,49,53,63,75,82,85,87,89,93,96,100,104,109,114,117,118,119,123,128,136,146,152,156,163,169,174,181,187,189,192,191,191,
+194,198,200,201,200,199,194,185,171,153,131,110,88,67,49,35,24,16,11,7,4,4,3,1,1,1,0,0,0,0,1,1,3,5,8,14,21,32,46,64,84,107,130,152,173,191,205,215,
+221,225,228,226,221,218,215,212,209,203,199,197,193,191,192,194,193,188,181,172,158,140,118,100,87,79,74,69,64,60,55,51,47,42,40,41,48,62,80,96,103,99,89,76,62,50,41,34,
+30,33,41,50,55,55,53,52,51,51,50,49,49,48,48,43,37,36,35,38,45,46,44,47,49,49,56,60,55,48,29,5,0,0,0,0,11,67,116,124,119,116,114,110,107,105,105,105,
+105,105,105,107,110,116,118,120,118,112,103,92,84,101,147,185,200,208,200,179,154,137,132,128,116,111,112,116,120,125,130,135,135,136,138,145,155,172,190,204,210,214,215,207,186,163,144,118,
+86,58,34,18,9,1,0,0,0,0,0,0,1,2,3,6,12,25,43,66,85,96,97,85,67,47,35,28,23,22,24,26,28,30,33,37,40,44,47,51,54,59,64,68,73,78,83,89,
+93,98,105,112,119,124,130,137,144,150,158,166,174,182,185,185,189,194,198,200,204,211,215,212,204,194,182,167,150,132,114,96,80,66,53,44,36,30,26,23,21,20,19,19,21,22,26,30,
+36,44,54,66,79,96,114,132,150,168,184,196,206,213,219,223,225,226,225,224,223,222,221,218,214,209,207,203,201,196,188,179,166,152,139,124,113,102,93,87,82,77,71,66,61,56,51,49,
+50,57,69,85,99,107,104,92,71,49,34,23,17,14,11,11,10,9,8,8,8,7,8,7,6,5,4,3,3,3,2,2,1,1,0,1,0,0,0,0,1,3,7,13,21,29,23,4,
+0,0,0,0,8,49,79,68,52,45,40,34,29,28,28,28,28,27,27,28,33,40,47,57,71,92,115,146,187,219,206,172,155,137,120,113,110,110,109,106,103,96,89,84,77,66,56,50,
+50,51,50,48,50,53,56,59,61,68,88,121,154,176,182,180,169,148,112,73,56,50,49,50,50,50,46,43,44,47,57,78,98,109,112,104,87,67,47,30,20,16,17,19,21,24,25,27,
+29,31,32,35,38,42,45,49,52,56,61,65,70,74,80,85,90,95,101,107,113,118,125,131,137,143,149,154,161,167,172,177,183,189,193,197,201,210,215,214,210,208,203,197,189,178,168,156,
+143,131,119,109,99,91,85,81,78,77,78,79,81,85,91,98,106,116,127,138,152,164,176,187,197,204,211,216,218,218,217,216,215,212,210,207,204,202,198,194,188,182,177,173,167,160,149,139,
+128,120,112,105,100,94,89,83,77,72,67,62,60,59,65,76,92,105,111,108,96,77,56,37,25,18,16,15,15,15,14,12,11,10,9,8,8,7,7,6,5,4,3,3,3,3,2,3,
+3,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,20,48,109,159,181,187,160,106,59,44,
+43,43,44,45,44,44,41,36,28,21,14,8,3,16,57,96,113,101,69,38,17,6,2,0,0,0,0,0,4,18,31,53,83,109,144,168,174,176,176,178,177,180,183,185,191,197,203,203,
+189,161,124,82,46,25,16,15,16,17,18,20,21,23,25,26,28,31,32,34,37,40,43,47,51,55,58,62,67,71,76,81,85,91,96,102,108,114,119,125,131,137,143,148,154,159,165,170,
+176,181,186,190,195,200,204,206,207,208,209,208,207,204,201,196,190,184,177,171,164,159,155,151,148,146,147,149,151,154,158,163,170,176,183,190,196,202,208,210,214,215,216,216,215,213,210,207,
+203,199,195,191,187,182,177,171,165,160,154,148,142,136,129,123,118,112,106,100,95,89,84,79,76,74,76,82,91,102,112,116,113,101,81,61,43,30,23,21,20,19,18,16,16,15,13,12,
+11,10,10,9,8,8,7,5,5,4,3,3,4,4,3,3,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,21,34,37,37,45,53,49,44,42,39,35,33,33,33,34,34,
+49,77,97,112,127,155,171,179,160,110,75,40,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,80,148,174,161,126,88,57,35,22,15,13,12,12,12,12,11,10,9,8,7,
+6,8,19,36,51,65,75,84,93,105,118,126,128,122,109,86,59,37,23,15,12,13,14,14,16,18,18,19,20,22,24,26,28,30,31,33,36,38,41,44,48,51,56,59,63,68,72,77,
+81,86,91,97,102,108,113,119,125,130,136,142,147,152,158,163,169,173,178,183,188,191,195,199,203,205,208,210,211,212,212,212,211,210,208,206,204,202,201,199,198,196,197,197,198,199,201,203,
+205,208,210,213,214,215,217,216,216,215,214,213,211,208,205,203,199,195,191,187,182,177,173,168,163,158,152,147,142,136,131,125,120,115,109,104,100,100,100,102,106,113,119,122,123,117,104,87,
+66,48,36,30,27,24,23,21,19,18,16,16,15,13,12,11,11,10,9,9,8,6,5,5,4,4,4,4,4,3,3,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,5,11,
+169,175,176,175,191,211,206,204,205,207,209,209,206,196,186,178,172,163,151,140,134,123,111,89,53,31,20,10,5,3,0,0,0,0,0,1,5,8,11,18,30,59,110,174,208,169,120,90,
+74,69,69,71,72,72,72,72,72,73,73,73,73,73,73,72,72,72,71,69,71,75,79,82,83,79,71,59,44,27,13,5,2,3,6,9,10,10,12,12,13,15,16,17,18,20,22,24,
+26,29,31,32,33,36,39,42,45,48,52,56,60,65,68,72,77,81,86,91,96,101,107,113,118,124,129,135,140,145,150,156,161,166,170,175,179,184,188,191,196,199,202,204,207,209,211,212,
+213,215,215,215,216,218,219,219,219,218,218,217,217,217,217,218,218,218,218,219,218,217,217,216,216,217,217,215,214,212,210,208,206,203,201,197,194,191,187,184,180,177,173,169,165,161,158,153,
+149,145,141,138,136,135,135,133,130,124,113,100,84,66,52,43,35,31,29,27,25,22,21,19,16,15,14,14,13,11,11,11,10,10,9,8,7,6,5,5,4,4,5,3,3,3,1,0,
+0,0,0,0,0,0,0,0,0,11,36,69,98,128,147,157,79,58,55,54,63,74,73,75,84,100,128,160,187,209,211,196,152,96,49,28,21,19,21,25,33,41,45,44,39,33,28,27,
+28,28,33,48,66,86,104,123,152,194,204,162,100,68,68,72,74,74,75,75,76,76,76,75,75,76,76,76,76,76,76,75,75,75,74,73,71,64,56,48,40,30,22,15,11,6,6,7,
+9,10,11,15,19,21,21,22,23,24,25,25,25,24,24,24,23,25,28,30,32,34,37,39,42,46,49,53,57,61,65,68,73,76,81,86,91,96,100,106,112,117,122,127,132,137,143,148,
+152,158,162,167,171,175,180,183,187,190,194,197,199,202,204,207,209,211,211,212,214,217,218,219,220,221,221,222,222,221,220,220,219,219,219,219,220,220,220,219,218,216,214,211,208,207,205,203,
+201,198,195,192,189,186,182,179,175,172,169,165,161,157,154,150,146,142,138,133,128,120,110,101,91,79,67,58,50,44,41,38,35,34,33,33,33,31,29,28,26,25,24,22,18,16,13,11,
+8,7,6,6,5,6,5,4,3,2,2,1,0,0,0,0,0,0,0,1,12,31,56,80,123,159,175,173,159,134,110,97,0,0,0,0,0,0,0,0,0,0,0,5,19,50,79,108,
+145,170,172,164,158,133,86,51,38,44,53,65,82,99,119,142,151,153,161,179,200,222,236,243,243,223,164,100,65,45,20,9,10,13,14,14,14,14,13,14,14,14,14,14,14,14,14,14,
+13,14,13,13,13,14,20,31,40,47,53,59,62,63,64,65,65,66,71,80,87,90,91,92,92,93,93,91,87,80,75,68,57,46,38,33,31,31,34,37,40,43,46,50,53,56,61,64,
+68,72,77,80,86,90,95,99,104,110,115,119,125,130,135,139,143,149,153,157,162,166,170,174,178,181,184,187,190,193,196,198,200,202,204,205,207,208,210,210,211,212,213,215,216,216,216,216,
+215,215,215,216,216,216,214,211,207,202,196,192,189,185,182,179,176,172,167,163,159,155,150,146,141,136,132,127,122,117,112,107,102,97,92,87,83,79,79,84,88,89,91,93,92,91,89,86,
+84,83,87,93,96,98,96,96,95,94,92,90,84,76,67,57,43,29,15,7,1,0,0,0,1,4,2,2,0,1,3,11,31,60,95,134,161,175,176,168,140,99,60,27,11,1,0,0,
+0,0,0,0,0,2,7,9,9,5,1,0,0,0,0,0,2,22,61,97,123,165,202,207,207,207,207,207,210,218,218,214,210,205,195,178,161,151,146,142,137,132,139,162,175,175,143,76,
+39,18,8,9,11,10,7,2,0,0,0,0,0,0,1,4,8,11,15,23,39,60,90,116,129,134,136,139,141,142,143,144,143,143,146,149,150,150,150,151,152,152,152,152,152,150,148,146,
+137,123,104,83,63,45,36,34,37,39,42,46,49,52,56,59,64,68,72,77,80,84,89,94,98,102,107,112,117,121,126,131,135,139,143,148,153,158,164,168,171,174,176,178,180,183,186,188,
+191,192,194,196,197,199,199,201,201,202,202,202,203,203,203,203,202,202,202,202,200,197,195,191,187,184,181,178,177,175,173,169,166,162,158,154,149,145,138,131,125,120,115,110,105,100,97,93,
+91,89,87,90,97,109,129,147,155,157,158,159,158,157,156,155,153,153,154,155,155,155,154,154,153,152,154,157,163,170,174,173,162,140,116,96,78,63,62,86,120,132,132,132,132,136,143,159,
+174,176,161,127,94,64,36,20,4,0,0,0,0,0,0,0,0,5,15,30,46,61,73,80,79,71,60,48,35,22,9,7,39,89,141,170,169,175,189,199,183,151,136,115,84,78,76,58,
+43,32,21,10,2,0,0,0,0,5,22,54,87,123,177,204,201,169,114,83,71,69,67,58,49,45,44,44,44,45,56,69,78,83,86,96,113,133,149,154,146,129,116,111,111,112,113,114,
+115,114,111,103,96,94,95,95,96,97,98,101,108,116,122,131,144,155,159,154,138,111,85,64,50,43,41,41,43,48,51,55,58,62,66,70,74,78,81,86,90,95,99,104,108,113,117,121,
+127,133,141,153,163,173,181,185,188,187,185,185,182,181,180,179,181,182,184,186,188,189,190,191,191,192,192,193,192,193,196,195,192,189,187,186,185,183,181,178,176,176,177,181,184,186,185,184,
+181,178,175,173,169,165,160,151,142,135,132,128,124,122,125,132,136,137,136,141,153,166,177,179,171,155,142,135,132,131,129,128,126,124,121,112,104,100,99,99,98,98,98,101,110,128,149,175,
+201,218,226,225,219,208,198,182,154,136,132,130,130,125,115,95,63,33,12,0,0,0,0,0,0,0,0,0,0,0,0,0,45,65,88,106,116,120,119,117,116,116,114,112,115,120,128,158,
+187,170,119,64,51,48,43,38,18,2,0,0,0,3,31,42,33,21,12,9,9,9,10,14,26,45,66,82,83,76,76,96,123,174,206,200,161,104,86,90,94,93,93,91,91,94,111,137,
+151,153,152,154,155,155,151,136,101,66,43,30,23,21,23,25,27,28,27,23,19,18,19,21,21,21,23,26,30,36,42,49,64,84,107,130,151,159,154,138,117,98,81,66,55,51,50,52,
+55,59,63,66,71,75,80,85,89,92,95,98,103,108,115,123,138,154,170,182,189,193,194,194,197,199,201,202,200,198,194,188,183,176,175,176,177,178,179,181,181,182,183,182,182,184,192,193,
+191,186,182,179,178,176,174,174,176,180,186,190,189,185,180,177,174,172,169,166,163,162,160,161,159,156,153,150,147,146,152,158,159,154,144,136,133,129,127,123,104,79,66,59,56,53,51,49,
+47,44,41,35,29,27,27,26,25,24,23,23,25,28,34,43,65,92,118,139,158,167,159,133,98,70,50,30,15,5,0,0,0,0,0,0,1,2,5,7,7,5,4,3,3,4,10,20,
+114,116,110,98,80,63,51,45,54,80,122,166,202,214,213,197,151,96,55,29,12,1,0,0,0,0,0,0,0,1,14,31,45,51,51,48,47,47,48,51,58,61,57,50,37,23,16,14,
+15,26,57,105,159,178,137,88,86,97,96,104,142,167,182,199,195,187,177,175,187,204,205,196,187,179,156,123,85,43,21,9,5,4,4,5,5,3,3,3,5,6,8,9,11,12,14,16,
+17,23,33,49,76,107,132,150,159,158,150,136,119,104,97,97,98,102,105,107,111,117,125,134,134,131,129,130,133,137,145,156,169,180,180,175,168,162,159,158,161,167,174,181,188,195,200,202,
+200,192,184,177,172,170,168,169,170,170,171,171,171,171,174,179,183,184,183,182,180,178,178,176,178,177,173,168,160,151,145,142,139,135,131,128,124,121,121,122,124,123,120,117,114,110,109,108,
+103,95,82,72,64,57,52,49,42,34,31,29,29,28,27,24,22,20,18,16,13,10,8,8,8,9,8,7,6,6,5,4,5,9,17,32,58,86,110,128,139,139,130,112,90,71,60,57,
+58,58,59,59,61,65,73,82,80,71,65,62,61,65,78,94,95,91,87,72,62,60,78,114,147,171,175,151,106,71,59,67,89,109,114,106,89,69,46,26,11,3,0,0,0,0,0,0,
+8,21,30,33,33,32,32,30,25,16,7,3,0,0,1,2,4,9,30,56,86,156,222,214,206,216,213,197,181,156,137,94,72,63,53,47,60,100,135,136,150,184,216,234,232,207,180,149,
+124,107,95,85,77,64,49,32,18,11,8,8,9,10,11,13,14,15,16,17,22,34,52,74,99,120,138,154,163,164,162,163,166,168,169,170,173,176,180,184,180,171,167,165,166,167,168,167,
+160,148,135,127,123,122,123,126,128,132,136,142,148,155,165,176,189,197,200,197,191,184,176,168,164,161,160,159,159,158,157,158,160,163,167,167,165,164,162,159,155,149,142,137,133,130,126,122,
+119,116,112,109,105,101,97,94,91,87,83,80,75,72,67,64,60,58,58,66,79,96,110,115,113,110,111,111,105,103,102,100,99,98,97,95,89,80,66,50,29,10,4,2,3,4,5,6,
+5,4,4,16,40,74,104,119,128,136,148,160,166,163,160,159,160,160,161,161,162,163,163,162,150,132,123,119,117,118,119,114,164,174,176,176,176,174,169,146,110,75,29,1,0,18,43,65,
+97,143,166,168,161,147,136,123,106,91,73,52,28,11,5,2,1,2,3,3,1,1,1,0,0,0,0,0,0,1,7,26,62,115,173,194,197,199,201,196,197,188,177,127,88,73,67,58,
+54,50,48,48,50,63,95,112,114,124,145,170,199,225,239,247,247,242,234,227,221,212,197,172,143,120,107,99,97,98,94,90,90,97,104,107,107,107,108,114,122,130,141,154,168,174,171,172,
+172,172,171,167,161,155,152,149,138,127,123,123,125,126,123,115,104,100,99,101,104,108,112,115,117,120,123,125,127,130,134,138,148,160,173,184,192,196,195,191,183,176,170,163,157,153,150,148,
+147,146,145,143,141,139,138,136,132,129,127,124,122,120,117,115,112,110,107,104,100,97,93,89,85,82,79,76,74,74,72,70,67,67,75,91,118,152,186,205,211,215,217,218,219,220,220,220,
+219,219,219,219,218,217,211,203,178,136,103,63,36,20,8,4,2,2,3,10,39,91,133,153,167,180,194,206,220,228,229,229,229,228,227,225,222,219,217,214,197,174,172,174,174,173,170,167,
+96,72,48,46,44,37,22,3,0,0,24,75,137,171,177,172,166,151,142,158,180,197,206,213,216,217,213,206,180,151,129,102,82,69,56,47,45,43,44,47,55,65,71,76,81,89,120,172,
+207,209,184,165,169,169,159,150,147,142,135,129,132,133,130,126,122,118,116,115,115,115,123,128,121,109,98,88,86,92,108,130,153,175,194,205,215,229,242,247,247,245,241,238,236,234,232,229,
+227,229,232,234,234,235,234,235,236,238,238,235,228,214,188,154,122,104,99,93,84,78,77,76,72,68,70,72,76,78,79,80,82,86,90,93,95,98,102,105,109,112,114,116,119,121,123,124,
+126,128,134,142,151,162,174,183,189,191,190,187,182,176,171,167,165,162,158,154,151,148,147,145,144,142,140,138,135,135,137,139,139,136,134,132,130,127,124,121,119,116,111,109,113,115,113,111,
+110,108,108,111,114,119,131,142,140,134,126,120,117,115,113,112,111,111,110,110,116,124,136,154,183,207,215,210,194,171,138,99,70,52,41,38,42,50,60,73,93,120,140,152,160,162,155,138,
+120,108,102,93,82,75,77,90,118,138,133,129,129,130,123,111,0,0,0,0,0,0,0,3,54,124,173,174,135,77,47,32,21,9,2,9,25,48,63,74,86,97,115,143,177,197,209,216,
+215,207,191,182,184,187,188,195,206,213,215,216,218,220,219,200,176,169,171,181,188,192,194,194,191,186,176,168,162,156,150,145,140,134,127,117,105,91,81,73,62,50,39,29,20,15,12,12,
+15,24,35,44,56,85,115,132,146,159,168,178,184,186,188,192,192,190,187,187,190,194,196,203,209,216,227,232,234,240,232,201,154,104,58,40,41,45,48,51,54,57,60,63,65,67,70,72,
+75,79,82,87,91,99,115,134,145,149,151,152,154,155,157,158,159,160,160,161,162,165,169,177,183,189,194,198,197,192,187,184,183,182,182,181,180,179,178,176,176,175,174,172,171,171,171,170,
+169,167,165,164,163,161,159,157,154,149,137,127,121,115,112,110,109,105,102,94,84,74,69,64,56,47,38,31,26,21,20,18,17,16,15,14,16,21,29,42,62,83,108,138,162,183,205,216,
+213,200,170,140,124,120,122,135,144,149,149,134,109,81,53,27,9,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,26,73,142,186,153,78,25,1,0,0,0,
+0,0,0,0,0,0,0,0,0,1,8,18,35,52,69,92,115,136,164,174,174,171,171,160,143,130,125,125,126,126,117,112,125,145,163,177,185,189,190,188,183,177,167,158,149,141,134,128,
+122,114,105,93,83,73,64,54,47,40,34,28,23,19,15,12,8,4,2,0,0,0,2,5,12,22,36,53,70,81,85,90,97,100,99,98,99,103,110,124,136,145,148,147,151,172,195,218,
+232,220,156,81,47,40,43,47,49,52,53,56,59,63,70,79,95,113,129,139,147,165,196,221,230,231,232,232,232,233,233,233,233,234,233,233,234,234,233,233,234,234,234,234,229,216,199,184,
+175,163,156,155,156,156,156,153,152,151,150,150,148,145,140,132,128,126,124,122,120,118,116,113,109,101,90,79,69,62,58,57,54,53,49,42,36,32,29,27,24,22,20,19,18,18,16,14,
+13,12,11,8,7,6,5,7,12,19,31,47,62,73,84,104,130,154,187,209,204,186,151,126,124,126,121,111,98,79,59,37,19,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,7,37,78,131,173,176,133,55,6,0,0,0,0,0,1,1,1,2,2,2,2,3,3,3,4,6,9,16,24,30,33,34,36,44,50,52,53,48,39,32,31,32,35,42,50,61,79,
+103,130,153,168,179,184,186,184,179,173,167,161,156,150,145,139,133,125,117,108,99,92,83,74,65,57,49,42,36,30,25,21,16,13,10,10,15,23,30,36,43,51,58,62,67,71,73,75,
+78,76,71,67,61,54,49,49,55,59,60,66,79,95,112,133,165,212,239,211,156,95,52,39,41,46,51,62,84,112,138,162,190,212,226,232,236,243,248,243,238,236,237,237,237,237,238,238,
+238,239,239,239,239,239,239,239,239,238,238,241,246,249,243,234,227,207,173,150,134,124,118,110,104,100,95,93,91,89,85,79,78,75,73,72,72,71,70,67,63,57,51,46,44,41,40,38,
+37,34,32,30,29,28,25,25,23,21,19,18,16,15,14,12,11,10,9,11,19,27,35,41,48,54,60,63,65,67,67,67,68,67,74,98,120,153,184,175,136,103,77,60,59,71,82,83,
+75,58,36,16,3,0,0,0,0,0,0,0,0,0,0,0,97,148,176,170,138,83,34,6,0,1,1,0,0,0,0,0,1,2,3,3,3,5,5,5,13,32,44,49,53,57,58,59,
+60,60,60,61,62,63,63,60,53,47,47,48,53,62,78,99,126,151,173,187,197,202,204,202,199,196,191,186,180,174,167,161,154,148,141,134,124,114,104,94,85,77,70,62,55,48,43,40,
+38,41,50,68,90,107,116,121,122,121,119,116,110,103,96,93,93,93,94,93,93,88,81,69,58,45,31,24,27,38,53,70,90,123,176,222,240,221,160,98,71,80,111,147,187,219,235,243,
+247,242,235,231,228,218,196,164,147,145,145,144,145,145,146,148,149,150,150,151,152,153,153,153,156,165,170,176,191,214,237,252,255,252,241,223,199,175,162,154,149,139,123,102,89,84,80,79,
+78,78,78,79,82,84,83,81,78,73,67,59,52,44,37,33,29,28,27,28,28,27,24,23,22,22,22,20,18,18,18,21,24,31,43,63,87,105,116,120,122,121,118,114,107,100,92,88,
+87,86,84,81,78,81,99,141,175,183,177,154,121,101,81,83,92,97,90,72,49,25,10,2,0,0,0,0,1,4,19,54,172,143,95,70,56,51,53,56,57,56,49,37,33,29,17,7,
+2,2,2,3,5,6,6,7,21,46,55,53,49,45,43,44,49,54,59,60,58,56,61,70,78,81,82,85,93,109,132,158,180,194,205,213,220,225,226,226,224,224,222,220,218,215,210,205,
+201,197,194,191,184,170,154,142,135,130,126,117,110,103,101,102,108,119,135,149,156,156,151,145,138,131,125,120,114,105,93,83,73,68,67,67,71,79,88,94,96,93,80,57,38,29,24,26,
+36,51,78,118,167,218,242,228,203,202,221,238,246,241,228,217,195,170,157,154,153,145,129,116,111,110,107,100,98,95,89,82,79,79,81,82,82,83,84,84,93,109,115,114,115,126,152,199,
+230,231,236,247,248,241,235,234,235,232,219,193,167,154,147,140,129,120,114,110,105,102,100,98,98,98,104,110,103,93,85,80,76,74,73,67,59,52,46,44,45,56,66,68,68,68,73,81,
+92,107,125,142,151,152,147,142,135,128,122,117,111,102,89,78,68,61,59,58,61,68,75,80,91,106,117,136,157,168,175,173,174,179,175,168,169,161,150,139,133,134,133,134,141,151,172,186,
+92,83,81,84,84,85,85,85,85,87,88,90,99,108,95,71,49,35,31,32,32,30,26,26,31,40,42,44,49,56,61,68,76,86,93,95,91,84,80,80,83,86,98,130,169,203,225,237,
+241,242,243,244,246,248,248,248,248,248,248,248,248,249,249,249,249,248,248,246,244,236,225,218,211,206,200,188,173,155,143,139,136,137,138,129,115,101,88,81,78,74,72,75,81,88,93,95,
+92,86,78,73,67,67,69,73,81,94,107,109,99,84,69,56,52,61,82,114,153,197,238,255,255,255,254,243,217,188,168,158,145,125,121,120,119,119,120,121,123,125,126,129,136,143,135,117,
+100,91,87,88,87,85,82,82,86,92,92,92,95,99,108,129,152,160,173,200,223,235,239,239,239,241,247,248,242,236,231,226,214,200,191,185,177,175,174,173,174,176,194,213,212,209,210,213,
+213,211,207,184,154,127,105,91,85,86,91,90,89,88,92,103,111,118,123,114,101,88,77,70,68,65,65,68,75,82,88,90,87,80,71,64,58,57,58,62,69,82,95,98,93,91,96,93,
+93,109,138,162,174,187,198,205,206,197,189,185,180,176,159,132,71,59,47,36,30,29,29,29,29,31,38,53,77,106,126,134,132,119,102,93,91,89,87,85,86,87,88,93,100,105,107,108,
+108,108,106,106,109,114,119,126,137,162,202,234,250,254,254,254,254,253,253,253,252,252,252,252,251,251,251,251,252,252,251,251,251,250,249,248,249,251,251,252,251,249,246,240,231,213,190,168,
+142,117,95,73,57,45,36,30,26,23,21,22,26,33,43,54,67,78,86,90,92,94,93,91,91,95,105,119,131,139,142,144,154,175,201,223,236,245,250,244,233,234,247,246,208,158,126,111,
+100,87,78,72,68,68,70,71,72,76,82,94,114,137,153,160,159,148,135,127,124,122,120,119,119,118,119,121,126,130,130,128,126,125,124,131,147,163,173,175,175,179,195,216,230,236,238,240,
+244,246,246,245,245,246,246,246,245,246,250,254,246,226,218,217,215,210,216,228,234,230,219,208,195,174,139,107,88,77,69,57,42,36,32,23,17,13,9,8,8,7,7,10,14,23,34,46,
+60,72,80,84,87,88,87,86,85,90,103,119,132,138,132,117,103,98,94,89,91,101,114,127,133,127,112,98,89,87,87,88,12,6,1,0,0,0,0,0,0,0,0,5,13,29,53,86,
+124,144,131,102,84,82,87,91,94,96,96,95,90,83,77,74,69,65,63,70,94,126,157,183,208,235,239,227,219,216,220,226,232,235,236,236,236,237,237,237,237,237,236,235,233,231,229,226,
+224,222,219,216,217,221,225,227,227,230,235,240,245,249,247,239,224,203,175,149,124,109,94,72,51,36,26,22,20,19,18,18,21,29,36,43,50,57,66,74,81,95,111,130,154,177,200,221,
+237,247,250,243,231,215,189,149,113,103,131,177,221,223,188,138,86,53,37,34,35,35,35,38,41,45,47,51,58,71,90,116,146,162,152,128,113,110,113,114,115,115,113,110,104,97,90,85,
+79,73,67,66,71,78,86,93,100,109,124,141,156,164,169,176,188,198,201,199,199,199,198,198,198,198,198,193,157,100,75,67,61,56,63,88,117,144,170,186,200,219,229,224,214,206,196,166,
+120,69,38,22,7,0,0,0,0,0,0,0,0,0,0,1,6,13,21,28,36,44,53,60,66,71,77,87,99,110,113,104,95,91,80,66,59,57,54,50,48,44,35,25,20,17,16,16,
+0,0,0,0,0,0,0,0,0,0,1,1,1,1,4,17,46,85,110,106,80,56,45,43,46,48,50,49,47,45,47,51,62,88,121,150,194,225,234,233,227,203,165,146,147,153,164,178,
+191,202,209,213,218,222,225,227,227,226,225,222,219,216,215,213,210,208,205,201,198,195,194,191,188,185,185,188,196,210,223,233,244,249,248,242,233,226,216,192,161,133,113,104,100,98,97,98,
+100,106,107,104,103,105,109,115,129,160,190,212,227,235,237,234,225,210,181,140,108,84,61,39,27,22,25,45,107,177,219,233,212,169,114,73,65,80,78,86,102,106,108,111,112,108,109,117,
+135,158,170,164,147,132,126,123,121,113,99,83,71,62,53,50,48,48,47,46,44,42,42,43,45,50,57,67,74,79,84,91,96,100,97,90,85,85,84,82,82,79,75,64,43,23,15,14,
+13,12,12,13,15,21,29,38,47,71,110,146,165,175,190,217,234,221,199,174,136,97,67,44,23,7,1,0,0,0,0,0,0,0,0,0,0,0,1,4,8,11,15,20,25,28,27,21,
+17,16,13,8,6,5,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,3,10,16,21,31,54,91,130,140,115,80,58,47,44,46,54,66,79,101,133,
+172,211,235,241,230,199,173,159,148,134,121,121,129,139,149,159,172,183,195,203,210,217,222,225,225,225,224,223,222,219,218,217,216,213,210,208,204,199,195,191,186,179,173,167,163,162,165,171,
+185,201,214,225,234,239,243,248,244,237,231,227,225,224,225,227,231,234,234,232,230,230,230,231,235,243,246,240,224,205,181,154,128,100,68,43,30,25,23,22,22,23,22,21,25,43,81,140,
+196,227,231,212,205,223,221,223,228,223,223,226,227,223,222,222,222,226,232,238,238,233,227,224,221,214,198,178,162,145,123,111,109,109,109,107,100,87,72,61,54,46,38,33,32,32,32,33,
+34,33,31,28,27,30,36,37,35,32,26,21,19,17,16,15,15,14,14,13,12,10,8,6,4,4,6,14,20,25,34,65,115,163,188,211,228,229,220,204,174,138,116,90,56,31,15,7,
+5,5,7,9,9,9,8,9,9,9,6,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,19,43,67,83,90,
+99,108,123,147,166,168,160,153,151,148,149,169,190,206,223,239,241,219,183,164,138,112,107,109,113,119,127,133,141,150,157,166,175,185,195,203,210,217,225,229,229,230,230,229,229,227,225,222,
+220,217,215,213,210,207,204,200,195,190,186,179,172,164,156,150,146,145,146,150,157,159,170,196,214,218,221,224,228,233,239,247,253,254,254,255,255,255,255,255,253,252,248,242,234,223,208,191,
+172,148,120,87,56,39,32,27,23,21,20,21,20,18,18,28,51,92,150,202,219,235,232,232,235,229,230,235,239,240,242,243,243,245,245,247,249,250,249,246,243,243,245,246,244,240,230,223,
+222,222,222,222,218,205,188,171,159,138,105,77,56,42,32,28,25,23,21,19,20,34,55,62,60,59,57,52,48,42,33,24,16,11,9,8,7,7,7,6,5,4,2,1,0,0,0,0,
+4,17,30,52,84,119,152,177,206,224,228,226,212,192,166,146,135,124,112,103,99,96,93,89,85,81,73,58,38,21,10,5,4,11,21,25,26,28,29,27,25,21,8,1,0,0,0,0,
+71,84,96,97,87,63,40,34,40,55,78,105,127,137,137,137,137,135,135,141,165,195,224,242,249,249,249,248,240,231,213,192,164,130,109,103,105,109,115,122,127,134,142,151,161,170,177,186,
+193,200,207,212,216,220,224,228,229,230,230,231,231,230,231,229,227,223,221,218,215,212,210,207,203,200,195,191,186,180,173,166,158,150,142,134,128,123,120,126,138,149,161,171,180,185,190,203,
+219,225,224,223,223,224,228,232,236,239,239,239,239,239,241,245,246,244,234,210,174,139,117,97,71,46,29,21,18,16,16,15,14,16,28,51,66,85,85,98,122,135,152,170,183,182,178,177,
+174,171,168,164,162,165,171,179,184,190,201,212,219,228,234,234,233,231,230,231,233,240,244,245,243,237,221,201,177,150,131,119,110,96,79,65,54,55,62,58,52,53,55,57,59,61,61,57,
+48,36,26,17,13,10,9,9,8,8,8,8,9,7,6,4,3,2,0,0,4,13,23,37,69,106,138,176,208,230,241,247,248,246,240,231,226,221,217,207,195,184,175,170,162,150,138,130,
+132,157,178,182,181,184,188,183,180,171,142,119,110,103,95,79,222,221,227,231,229,221,206,196,193,202,215,222,219,212,206,205,203,202,201,211,230,236,224,203,186,184,189,184,176,175,172,164,
+156,151,147,142,140,143,147,151,158,168,178,188,197,203,208,213,216,221,224,227,228,230,230,228,228,229,229,229,229,229,231,231,232,231,230,228,227,224,222,220,218,215,213,211,208,205,201,197,
+192,186,179,174,172,170,164,160,161,164,168,166,157,144,134,129,129,130,124,118,116,117,122,128,136,143,146,151,155,157,164,179,198,217,235,247,250,243,235,224,203,170,134,97,63,44,35,30,
+27,26,25,29,34,44,61,87,109,125,135,132,115,91,75,69,65,59,54,49,45,47,55,69,86,105,123,136,147,163,175,176,172,165,158,149,149,163,182,195,204,223,240,248,250,246,241,236,
+232,222,206,190,177,168,157,136,113,105,103,103,105,111,116,122,128,129,127,124,120,114,111,109,109,109,111,113,110,98,83,73,69,65,62,63,70,77,79,83,93,105,116,121,120,117,124,135,
+140,153,175,190,200,204,211,220,229,233,236,240,244,247,247,248,249,246,235,227,226,226,226,220,215,220,227,229,231,233,233,230,212,196,183,180,187,206,225,234,235,231,219,208,203,201,201,202,
+203,205,208,205,177,140,109,89,84,89,98,105,113,128,146,160,170,177,182,184,184,185,188,192,195,200,203,205,206,207,208,209,211,215,219,223,229,234,236,237,237,237,237,236,236,236,236,236,
+236,237,238,239,239,238,236,235,234,232,230,229,227,225,223,220,218,214,210,206,203,198,193,187,180,170,155,135,117,102,93,86,80,75,73,71,69,70,71,71,72,74,75,77,80,82,86,93,
+104,122,147,180,208,226,236,244,253,253,244,226,197,172,155,136,117,104,98,99,107,116,125,129,122,109,90,65,42,27,21,20,21,20,20,20,21,21,22,22,26,33,42,49,59,76,97,115,
+124,130,133,132,129,130,135,141,148,164,184,205,224,236,245,249,251,252,252,251,250,250,250,245,236,232,229,229,229,228,229,230,231,234,237,240,241,240,238,237,237,237,238,237,233,222,204,186,
+176,166,154,145,139,129,121,115,108,97,79,54,33,17,10,7,7,10,18,27,34,38,44,57,75,95,112,118,124,132,139,146,150,139,130,132,135,137,141,139,137,142,153,161,166,172,188,212,
+126,119,115,113,112,112,108,94,83,72,57,48,46,50,53,58,62,69,75,78,70,64,68,74,79,83,86,90,93,99,108,119,130,141,153,165,172,175,179,183,184,184,183,181,182,184,187,190,
+193,198,202,207,213,221,227,233,238,241,241,239,240,239,239,240,240,239,238,238,237,234,232,231,230,229,227,223,220,218,215,212,208,205,200,195,188,179,172,163,152,140,127,115,106,100,96,92,
+90,87,86,85,84,84,84,84,83,83,83,81,81,79,76,74,72,72,74,84,99,115,130,149,178,209,233,249,254,252,248,238,221,204,183,157,131,112,93,68,48,33,22,15,13,15,15,16,
+17,17,17,18,19,19,19,18,18,18,17,17,19,21,28,39,49,59,74,89,100,109,122,133,146,159,177,202,222,234,242,246,248,249,248,247,247,249,249,247,245,246,245,244,244,244,243,244,
+245,244,243,241,240,237,235,234,234,234,234,233,237,244,246,241,238,233,222,210,197,174,149,121,98,90,77,54,31,18,18,29,54,83,98,98,98,94,77,48,22,3,0,0,0,0,2,7,
+12,17,28,39,44,48,58,69,79,89,101,111,114,116,129,139,43,44,44,39,31,21,10,1,0,0,0,1,4,8,12,18,25,33,41,49,58,67,74,80,84,88,91,94,97,100,103,107,
+111,116,123,130,137,141,146,151,155,158,162,166,171,175,180,183,189,194,198,202,206,210,215,220,225,230,231,231,231,232,231,232,232,231,228,227,225,223,222,220,219,217,217,214,211,208,206,203,
+199,195,189,184,178,171,163,156,148,140,133,126,120,114,110,106,103,102,99,99,98,97,97,96,96,95,95,94,93,91,89,86,82,76,69,62,56,51,48,48,57,77,108,148,182,203,220,236,
+244,246,239,216,173,129,93,64,44,29,20,16,15,15,15,16,15,15,15,15,16,16,16,17,17,17,16,16,16,15,14,15,19,31,51,80,114,151,184,203,217,230,240,243,237,229,218,202,
+186,176,160,147,144,144,141,130,124,128,127,124,122,123,122,125,128,125,120,117,116,117,127,140,154,161,163,164,174,194,215,226,233,237,241,243,243,240,233,219,209,212,212,202,187,171,167,181,
+200,218,230,226,221,223,225,211,178,124,94,76,47,22,8,0,0,0,0,0,0,0,2,5,10,16,27,38,44,44,44,43,5,5,5,5,2,1,1,3,4,5,7,10,13,17,21,26,
+33,41,49,58,66,72,79,86,91,93,96,99,101,103,107,110,115,119,123,127,131,136,140,145,150,155,161,167,172,176,180,184,189,193,198,202,205,209,212,214,218,220,221,224,224,225,224,225,
+225,224,223,221,220,220,220,219,217,217,216,215,213,210,207,205,202,199,194,190,184,179,172,165,158,152,144,138,132,126,122,118,115,113,111,110,109,109,108,108,107,106,106,105,103,102,100,98,
+94,87,80,73,65,55,48,39,30,24,23,32,47,64,88,118,151,185,217,239,241,229,212,194,174,150,126,108,99,98,98,96,92,90,90,90,90,90,90,91,91,91,91,90,90,90,90,95,
+111,142,175,203,226,240,244,240,231,219,200,170,135,111,92,72,57,48,38,29,24,23,21,17,17,15,12,9,8,11,13,15,21,34,50,73,95,120,157,186,203,214,215,215,217,221,226,231,
+234,237,241,244,246,248,250,252,252,253,254,255,255,255,255,247,225,195,155,109,85,93,125,170,209,230,231,226,209,177,141,101,55,19,3,1,1,1,1,0,0,0,0,0,0,3,5,5,
+58,58,58,58,58,58,58,60,61,63,64,66,69,72,75,79,85,91,97,104,109,114,121,128,132,130,129,131,133,134,137,140,143,147,149,148,148,151,155,159,163,167,171,176,180,184,190,197,
+202,206,210,213,214,216,219,222,224,224,224,225,225,224,225,225,225,224,223,223,220,220,220,219,217,216,215,215,214,212,209,207,205,203,199,194,190,184,178,172,165,158,152,146,140,134,130,127,
+124,122,120,119,119,118,118,117,117,116,115,115,113,111,108,106,104,100,96,92,88,84,81,74,66,58,54,50,51,58,66,72,83,102,134,174,208,228,240,247,248,246,241,235,231,230,230,229,
+227,226,225,225,226,225,226,227,227,226,226,226,226,226,226,228,236,246,250,245,230,210,182,155,135,115,95,74,59,53,56,64,68,70,74,73,67,63,63,65,62,53,47,51,61,79,93,102,
+118,149,179,204,221,232,241,240,233,228,226,226,226,226,226,225,225,225,225,225,225,226,227,229,231,229,219,210,201,187,163,122,76,42,18,3,0,0,5,20,54,98,120,144,180,212,238,238,
+213,164,111,81,70,63,58,51,43,39,38,38,42,51,57,58,140,140,140,140,140,139,137,132,126,122,121,123,125,127,130,132,136,141,145,149,153,156,161,165,162,150,145,146,147,148,150,152,
+154,157,158,150,144,146,150,154,158,161,166,170,174,179,187,198,205,209,215,221,223,224,226,229,232,232,233,233,232,232,233,234,233,232,229,229,228,225,223,222,220,218,216,215,214,212,210,208,
+206,204,201,197,192,188,182,175,169,163,157,151,145,140,137,133,130,128,127,126,125,125,125,124,124,123,123,122,120,118,114,111,109,108,108,106,107,109,111,112,113,112,114,115,117,122,122,120,
+119,120,122,131,145,161,178,193,206,219,231,238,242,243,243,243,245,245,245,245,245,245,245,246,244,241,240,240,240,240,240,240,233,219,194,157,119,91,71,59,52,49,47,46,45,49,64,85,
+96,102,113,123,124,120,121,130,142,153,166,186,207,224,233,236,242,248,249,244,233,221,196,162,132,113,102,98,97,95,95,95,96,96,97,97,97,97,98,100,102,94,75,60,47,30,13,1,
+0,0,0,0,0,0,0,0,0,0,2,10,25,55,128,209,242,252,240,219,203,189,176,158,142,135,133,131,129,131,135,138,199,199,199,199,199,199,193,177,148,117,92,80,76,77,80,83,
+88,93,99,104,110,115,120,122,117,107,103,104,105,107,109,111,114,117,117,115,114,118,122,126,131,136,141,146,150,155,163,171,176,181,189,197,202,206,209,213,217,222,225,228,232,233,235,238,
+239,239,237,236,235,235,233,231,231,228,225,223,220,216,212,208,205,202,200,197,193,187,182,177,171,165,159,154,148,144,141,137,135,133,131,130,130,129,129,129,128,127,126,125,124,121,118,113,
+111,108,102,98,94,89,87,88,91,92,92,92,91,84,75,70,70,70,69,68,69,71,75,80,88,98,110,121,127,130,130,130,133,136,136,135,136,136,136,136,129,119,115,114,114,114,115,113,
+101,81,58,33,17,12,11,10,10,10,10,10,10,11,17,27,34,37,46,61,75,95,127,159,196,226,242,251,254,249,243,240,238,226,206,185,167,155,138,118,105,92,77,66,56,38,21,10,
+5,2,3,4,4,4,4,5,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,106,147,162,187,209,223,234,239,233,220,211,208,206,202,198,196,198,
+56,57,56,55,56,55,50,46,40,32,24,18,16,17,20,24,30,36,44,50,57,63,68,72,74,74,74,76,77,78,79,83,85,88,91,94,98,103,106,110,115,119,124,129,134,139,143,148,
+153,157,162,168,173,178,182,188,192,198,202,207,212,217,220,223,227,227,226,226,226,228,229,230,232,235,236,235,234,231,225,219,212,205,199,194,190,185,181,175,169,164,159,153,149,144,141,138,
+136,134,133,132,131,131,130,130,129,128,128,126,125,122,119,115,110,103,95,86,77,66,57,49,44,38,32,28,24,18,13,10,8,8,7,7,7,7,6,7,7,7,9,11,12,13,12,13,
+14,15,15,14,14,15,15,15,12,9,8,8,8,8,8,8,5,1,0,0,0,1,1,1,1,0,0,0,0,2,2,2,2,7,22,53,101,162,210,232,243,238,220,196,166,138,119,115,
+117,106,87,77,79,87,97,109,123,137,145,144,138,122,97,71,47,24,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,22,46,
+42,25,31,50,73,100,109,92,76,68,65,68,84,93,79,62,0,0,0,0,0,0,0,0,0,0,0,3,6,10,14,19,24,32,41,48,53,59,64,67,70,72,73,73,73,74,75,76,
+78,80,83,86,89,92,96,100,104,108,113,118,122,126,130,135,140,144,149,154,158,163,169,174,178,184,188,192,196,200,204,207,210,212,214,217,218,219,221,224,227,230,233,234,233,234,234,231,
+226,220,210,199,190,183,176,171,166,161,155,150,145,142,139,136,134,133,131,130,130,130,129,129,128,127,126,125,124,121,117,113,107,100,92,83,73,63,53,43,34,26,19,15,10,6,4,3,
+1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,2,3,3,3,4,7,9,9,9,9,9,10,10,11,11,10,13,21,29,32,35,39,47,62,77,83,
+86,100,140,185,221,241,235,216,185,136,89,55,28,13,9,10,15,19,23,34,46,57,70,87,106,126,142,148,151,154,151,139,127,104,69,35,13,2,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,2,9,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,6,12,18,22,24,25,31,39,45,47,49,52,56,60,
+65,75,86,92,95,99,102,104,107,109,110,110,111,110,110,111,112,112,114,116,117,120,122,126,128,131,134,137,141,144,147,151,153,157,161,164,169,173,177,181,186,190,193,196,198,201,206,211,
+214,218,221,223,224,223,221,218,217,215,214,212,212,212,212,213,216,221,221,214,204,193,178,167,159,153,149,145,140,137,134,131,130,128,127,127,126,126,125,125,124,124,123,121,120,116,112,108,
+103,96,88,80,70,60,51,42,33,25,19,13,8,5,4,3,5,5,6,12,18,23,26,32,48,72,100,115,117,117,117,117,118,121,116,97,82,80,81,81,81,81,91,112,122,120,118,119,
+119,118,119,118,117,115,125,150,169,175,177,184,194,207,220,224,225,231,244,249,239,211,165,127,100,77,62,51,42,42,50,58,64,76,91,100,101,96,90,85,81,74,70,69,72,76,79,86,
+102,122,127,111,83,54,28,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+59,62,70,83,94,100,101,103,108,115,118,120,121,123,124,125,126,127,129,129,128,129,130,132,136,141,145,148,149,150,150,150,151,150,151,151,152,153,155,157,159,160,162,164,166,168,170,171,
+173,174,177,179,182,185,188,192,195,200,204,207,209,213,219,224,224,225,223,219,213,208,203,199,195,192,190,189,188,186,185,185,187,192,200,207,211,208,198,182,163,148,140,135,131,128,126,124,
+123,122,121,120,120,119,119,118,117,116,116,114,112,109,105,100,95,90,82,74,65,55,47,38,29,22,20,22,27,34,41,50,60,63,68,80,97,123,151,175,203,226,242,246,246,245,246,246,
+246,247,246,236,222,220,220,219,220,220,227,240,244,240,239,239,239,239,239,238,238,236,240,250,254,255,255,255,255,252,248,245,245,242,229,205,178,149,128,119,118,118,118,118,116,118,132,140,
+135,134,127,105,81,61,44,30,20,11,7,4,4,5,6,10,21,46,79,109,123,122,103,68,32,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,3,10,20,29,39,48,121,120,121,118,112,106,106,106,103,98,97,100,103,107,110,113,115,114,113,114,117,119,119,119,118,117,117,116,113,111,107,105,
+104,103,102,102,103,104,106,107,109,112,114,115,118,122,127,133,139,146,153,158,162,165,169,173,173,168,170,178,186,192,198,201,199,198,195,189,186,184,182,180,178,177,175,173,172,172,170,169,
+166,164,166,170,178,186,194,196,186,167,149,134,123,116,114,113,112,111,110,111,110,110,110,109,108,107,107,105,102,100,96,91,87,80,73,65,57,49,43,38,43,54,68,84,98,107,114,118,
+118,117,125,154,194,230,246,242,227,206,179,161,159,158,158,158,157,154,164,197,211,210,210,210,210,210,220,237,240,235,233,232,233,233,234,234,233,227,223,217,199,190,187,180,171,157,141,134,
+132,126,108,87,73,67,66,66,67,67,70,78,85,91,100,101,85,70,52,28,11,4,0,0,0,0,0,0,0,0,0,0,0,0,9,32,58,87,114,124,106,73,41,19,5,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,7,20,41,61,80,97,107,114,119,70,67,61,49,37,32,37,47,56,59,63,69,77,84,90,98,
+108,120,130,139,146,148,147,142,135,124,113,104,95,87,79,70,60,50,44,42,43,44,44,46,49,51,53,57,62,72,89,113,143,170,189,200,203,204,205,208,208,199,193,197,199,197,190,183,
+173,165,163,163,165,167,168,167,168,168,166,164,163,162,160,159,156,152,148,145,140,141,149,164,177,182,175,162,145,130,117,106,101,98,96,96,95,95,95,96,96,95,94,93,91,88,85,80,
+77,71,66,63,63,67,73,82,98,114,120,120,114,104,93,80,83,128,183,227,231,196,146,115,91,72,57,49,49,45,39,30,22,16,15,32,43,44,44,43,43,45,63,98,115,113,112,111,
+107,102,99,98,97,90,82,71,51,42,39,34,28,21,14,12,11,10,7,4,3,4,4,4,4,4,5,9,12,15,18,16,9,3,0,0,0,0,0,3,8,11,12,12,12,12,12,12,
+12,12,9,6,6,16,41,78,111,123,115,93,66,43,23,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,12,23,38,54,72,95,114,121,121,114,104,93,84,
+5,3,1,2,9,28,51,73,88,96,103,112,119,127,135,142,151,158,158,154,150,151,157,164,168,164,153,144,137,131,124,113,97,77,56,38,30,28,28,29,31,34,36,38,40,44,48,55,
+65,78,89,99,104,108,111,116,126,152,175,183,185,191,203,213,215,205,191,178,170,166,168,174,181,184,183,183,181,178,173,170,172,177,179,176,170,168,168,171,179,189,199,204,203,197,188,177,
+166,155,144,133,118,107,98,91,85,83,82,82,81,79,78,80,84,87,89,96,103,112,116,118,113,97,77,58,40,25,20,59,147,220,226,180,107,63,54,65,75,79,80,80,80,78,73,61,
+46,31,17,6,0,0,0,0,10,25,40,55,68,73,75,73,64,47,28,11,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+4,13,26,35,39,41,48,63,81,91,93,93,91,87,79,74,72,71,68,60,45,28,15,17,38,69,98,118,123,115,99,73,49,32,24,20,15,11,5,3,3,3,3,3,4,7,13,25,
+41,56,68,82,99,113,120,121,114,95,73,54,38,25,17,11,0,5,16,37,63,84,93,91,84,85,95,110,126,142,158,165,154,121,83,58,47,47,57,81,118,154,172,172,162,149,136,126,
+121,117,105,82,56,36,24,21,21,24,26,27,29,29,31,33,35,35,38,40,43,48,53,58,63,70,79,87,96,108,131,160,187,209,225,231,227,217,212,210,208,208,209,211,215,221,217,213,
+219,224,227,230,235,240,243,241,238,237,237,240,243,245,247,248,248,246,243,237,225,213,199,176,155,137,117,101,97,98,104,113,123,129,131,127,117,103,88,75,56,33,15,4,4,25,94,191,
+231,181,105,64,61,76,86,81,70,63,62,63,65,70,80,93,102,106,101,83,64,54,50,56,73,85,88,86,81,76,74,77,82,87,80,59,32,12,1,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,7,22,42,60,75,84,87,87,89,100,122,139,144,145,146,148,145,130,111,93,82,80,85,89,85,69,46,28,21,29,50,75,98,116,123,
+118,108,103,102,97,83,69,63,61,61,61,62,66,76,93,113,133,143,145,138,123,103,84,67,47,24,8,0,0,0,0,0,49,61,76,88,89,77,59,49,49,62,83,107,129,149,162,147,
+92,34,8,5,5,6,8,10,29,81,141,168,160,136,111,91,81,82,95,105,101,85,62,43,28,21,19,19,20,20,22,23,27,31,34,36,38,39,42,47,51,58,67,82,101,122,139,147,
+150,149,149,159,177,195,205,218,225,224,224,223,220,214,214,214,199,178,162,159,165,173,183,191,190,183,177,174,175,179,185,189,190,194,201,216,230,236,243,249,247,239,219,185,164,152,137,129,
+129,130,129,120,102,82,66,57,50,44,46,76,125,178,228,224,155,88,73,83,86,72,52,36,28,29,37,46,51,57,68,89,112,133,141,128,114,107,100,90,79,61,45,33,23,17,15,18,
+29,47,72,88,87,72,49,29,13,5,2,0,0,0,0,0,1,3,4,5,4,2,0,0,0,1,7,19,37,60,81,89,87,78,63,50,45,45,52,66,73,74,74,75,84,100,109,106,
+90,68,50,42,48,64,81,89,82,64,48,46,53,67,85,100,106,108,111,123,131,125,120,119,120,119,119,121,126,132,135,141,144,146,144,129,103,77,60,51,44,38,33,28,25,25,27,34,
+106,104,97,86,72,63,62,72,87,103,120,136,151,163,163,124,51,5,2,6,6,7,7,6,6,38,109,157,158,134,106,80,58,43,42,54,73,90,97,92,81,67,58,53,52,52,53,55,
+61,69,73,74,75,71,69,70,75,88,107,120,127,127,119,108,99,92,89,86,88,93,98,109,122,123,119,114,106,100,110,124,134,138,131,113,94,82,82,94,108,119,122,121,119,120,123,127,
+124,115,104,101,108,114,128,151,171,196,228,241,238,230,202,167,149,138,126,119,118,119,119,122,133,153,181,223,244,235,198,144,108,101,98,86,70,59,54,59,68,76,82,86,87,87,87,87,
+85,83,74,60,54,54,50,36,19,7,1,0,0,0,0,0,0,2,14,36,61,81,89,85,73,59,49,43,41,41,41,42,47,54,57,58,56,50,44,42,44,55,73,85,90,86,70,49,
+30,17,7,2,1,1,1,4,5,5,5,5,9,21,42,65,85,93,86,65,41,27,30,47,67,84,88,87,87,88,92,95,93,81,64,55,55,55,60,65,67,69,73,80,88,88,81,75,
+76,83,93,99,102,101,98,96,97,97,96,95,94,95,99,105,116,108,98,92,90,91,93,94,95,98,102,110,126,143,151,129,70,17,0,0,2,2,1,2,12,58,123,158,151,126,99,74,
+53,37,24,17,19,31,49,67,81,90,92,93,93,94,94,94,94,94,94,95,96,100,108,122,129,141,154,143,113,83,62,55,57,61,64,67,68,69,68,66,64,62,59,58,60,67,78,91,
+109,127,143,151,141,117,87,67,60,65,72,73,73,73,76,88,103,112,105,81,59,51,51,54,65,87,125,164,186,211,233,239,238,233,222,212,213,218,221,227,236,244,245,228,187,157,135,124,
+120,115,106,96,88,88,87,85,79,71,62,52,46,44,39,31,22,14,7,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,7,22,42,63,77,85,87,88,88,88,88,88,
+88,86,85,85,85,86,94,107,112,122,134,120,83,42,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,27,46,69,94,116,126,115,87,53,30,23,31,41,44,44,44,48,61,
+80,91,84,57,31,20,21,23,30,44,59,71,81,82,79,78,78,80,86,94,102,108,108,107,109,110,116,121,124,127,131,130,77,75,71,64,56,49,44,39,37,40,49,64,86,110,132,143,
+127,88,48,26,17,16,24,43,80,126,152,149,131,105,81,60,43,29,20,14,8,5,6,10,20,31,40,46,48,48,48,48,42,37,35,35,38,45,61,83,90,97,112,120,110,86,62,49,
+44,44,46,48,50,50,50,50,49,51,57,70,86,101,110,113,115,119,129,143,156,154,137,116,91,64,44,36,32,30,29,35,50,73,101,119,118,106,96,89,91,95,94,91,90,100,122,147,
+162,177,200,213,216,214,212,205,191,169,146,121,99,96,95,92,87,81,76,68,55,46,37,29,19,12,6,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,7,18,28,37,42,44,44,44,44,38,32,29,28,28,35,51,78,95,109,125,128,113,85,59,44,38,36,31,22,13,1,0,0,0,0,10,28,49,68,81,86,
+89,94,107,125,141,139,120,97,69,40,19,10,6,3,3,9,26,54,86,106,105,92,81,75,79,87,87,83,77,74,74,74,74,74,74,75,78,84,89,89,90,90,92,94,95,95,91,84,
+18,18,17,14,10,9,9,10,14,20,30,43,60,79,101,121,137,142,135,123,114,115,123,136,148,149,137,119,97,77,58,43,30,20,14,9,6,4,2,0,0,0,1,2,2,3,3,3,
+2,1,2,3,4,5,9,15,19,23,34,57,85,103,103,91,75,62,54,49,48,48,52,57,62,74,92,105,109,102,89,77,69,66,68,74,84,91,100,115,128,116,91,76,69,62,57,56,
+60,73,96,128,142,130,105,89,80,67,51,39,31,27,26,28,30,35,46,55,58,58,57,52,42,33,28,26,27,27,25,21,19,18,18,15,9,6,3,1,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,105,132,136,156,171,177,182,190,200,206,204,199,
+191,185,179,172,162,134,94,65,47,47,63,78,84,79,67,55,47,45,47,55,67,76,86,104,118,104,77,62,54,46,42,41,45,58,85,120,136,123,97,80,71,57,39,26,18,15,15,15,
+15,15,15,15,17,22,27,27,27,27,27,27,27,26,23,19,44,50,55,59,59,60,62,63,62,60,58,61,69,76,82,88,97,110,121,128,132,134,133,129,119,106,92,77,62,48,36,25,
+17,12,8,5,3,1,0,0,0,0,0,0,0,0,0,0,0,1,1,2,3,3,3,3,5,7,9,13,27,52,76,93,103,110,114,112,108,102,99,101,103,104,97,80,59,40,27,22,
+19,17,17,18,19,20,26,42,71,88,90,91,93,95,97,99,99,97,95,89,78,58,39,27,21,15,10,8,8,10,8,7,5,4,2,0,0,0,0,0,0,0,1,6,13,24,34,38,
+43,48,55,58,59,59,59,58,55,48,41,39,38,36,30,20,11,5,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,22,113,135,125,102,79,58,53,54,62,80,100,115,125,132,140,149,159,181,199,203,197,183,157,111,64,33,6,0,0,0,0,2,4,6,12,31,61,79,82,83,85,88,90,91,
+91,89,87,82,69,50,28,16,9,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,6,13,24,34,39,131,134,138,140,140,140,141,142,140,137,134,132,131,128,119,106,
+94,88,86,85,82,79,76,72,66,59,51,42,33,26,19,14,10,7,5,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,3,4,4,6,6,7,11,19,33,
+53,81,111,137,151,143,122,109,101,88,68,49,33,21,13,11,9,8,7,6,7,7,6,6,10,18,27,37,51,69,86,95,94,87,77,67,56,46,30,16,11,12,15,14,10,6,6,5,
+5,5,6,7,11,14,21,30,38,44,55,72,90,108,120,125,128,133,137,140,140,140,140,140,138,134,128,126,126,124,117,102,85,69,53,35,19,6,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,17,38,65,96,124,138,133,121,124,143,160,178,187,175,156,105,48,
+17,0,0,0,0,0,0,0,2,11,20,30,45,64,81,90,88,81,71,61,51,39,23,8,3,5,8,7,2,0,0,0,0,0,1,3,7,12,19,29,36,43,55,71,89,108,121,127,
+124,120,115,112,112,112,112,112,117,124,130,132,133,134,137,138,131,122,114,105,93,77,60,46,35,27,22,19,16,13,9,7,5,3,2,1,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,1,1,2,2,2,4,4,5,6,6,10,18,36,62,92,110,112,112,110,99,90,86,80,70,58,45,33,22,16,12,10,10,9,10,13,20,32,49,67,83,93,94,
+94,95,98,103,110,116,108,89,77,80,87,81,61,44,41,41,44,48,57,68,79,90,103,116,125,130,138,145,147,144,136,132,129,125,117,112,112,112,112,112,116,123,128,130,131,135,143,151,
+152,146,138,124,102,73,43,21,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,9,26,53,84,103,104,102,100,91,92,111,132,149,180,191,174,137,86,47,27,14,2,2,7,15,28,46,65,81,90,92,91,92,95,100,107,113,106,86,74,76,84,78,58,43,41,42,
+44,49,58,69,80,91,103,116,124,129,136,142,144,141,133,127,44,33,26,23,24,25,25,25,29,36,48,63,78,91,107,126,139,142,141,140,139,132,118,98,74,48,26,12,6,3,3,2,
+1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,3,3,3,3,3,7,18,39,58,73,77,71,66,68,74,84,89,89,
+87,79,72,65,60,59,59,64,70,78,85,89,85,72,59,55,65,85,108,128,145,156,160,157,154,154,156,154,142,129,125,125,127,131,136,141,144,144,144,138,131,126,117,102,86,68,52,44,
+40,34,28,25,25,25,25,25,28,36,48,61,76,90,106,129,149,157,159,160,160,152,133,106,75,43,19,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,12,33,53,68,73,66,60,60,66,75,92,119,146,176,197,197,189,171,128,91,75,72,78,84,79,67,54,50,
+60,81,105,125,141,153,156,156,155,158,163,166,164,160,161,162,163,167,171,175,178,179,179,177,174,171,163,150,125,97,74,60,106,64,28,9,0,0,0,0,3,20,47,73,88,92,95,98,
+102,107,113,118,125,134,141,146,143,126,97,64,35,14,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,5,9,11,11,11,11,11,11,12,12,12,11,8,6,
+5,3,3,3,1,2,4,9,12,10,9,10,15,24,36,47,60,71,77,83,85,85,84,83,78,71,61,47,34,28,34,55,89,122,143,151,151,145,138,130,121,120,128,134,134,131,132,132,
+130,126,118,109,98,89,82,74,66,59,49,34,19,8,1,0,0,0,0,0,0,0,0,0,4,20,47,74,87,92,95,98,103,109,116,123,131,142,150,154,149,129,98,63,33,13,2,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,5,9,11,11,11,11,11,11,11,11,11,9,6,3,2,0,0,0,0,0,1,6,9,8,6,7,13,22,33,43,
+54,70,89,113,133,162,196,206,195,157,112,80,67,60,64,80,108,136,155,163,167,168,172,184,195,203,210,221,232,239,242,241,241,240,239,238,236,234,232,229,227,226,223,216,198,175,159,140,
+232,203,164,122,78,49,39,45,65,84,92,83,65,50,42,35,29,28,30,32,39,51,65,85,114,142,153,143,122,88,56,40,31,25,22,21,21,21,21,21,21,23,27,34,38,42,50,58,
+62,64,69,78,82,82,82,82,82,82,82,83,83,79,71,64,60,53,48,51,47,32,14,3,0,0,0,0,0,0,0,0,5,11,16,23,27,28,28,26,23,23,26,32,47,73,104,131,
+146,141,122,100,83,66,50,38,30,30,42,54,64,75,85,89,88,84,77,69,63,64,71,77,77,75,72,64,52,42,34,22,12,12,12,12,12,13,20,38,65,87,93,84,65,50,42,35,
+29,28,28,31,38,51,65,86,116,144,154,144,122,88,57,40,31,25,22,21,21,21,21,21,21,23,27,34,38,42,50,58,62,64,69,78,82,82,82,82,82,82,82,82,82,79,70,63,
+59,51,47,50,46,30,13,1,0,0,0,0,0,0,0,0,4,10,14,19,22,26,41,68,111,160,185,183,187,195,206,216,221,222,222,223,226,229,233,240,244,246,247,248,247,241,236,237,
+237,236,236,235,234,235,237,238,238,238,238,240,244,246,245,242,233,247,250,241,220,198,182,170,153,118,69,27,6,0,0,0,0,0,0,0,0,0,12,35,68,108,145,158,160,156,143,130,
+120,111,107,106,106,106,106,106,107,108,114,122,126,132,141,146,139,126,121,119,117,117,117,117,117,117,117,117,117,118,120,120,120,120,125,132,130,114,87,58,37,24,14,7,2,0,0,0,
+0,0,0,0,1,5,15,30,49,71,93,113,131,144,145,131,103,66,36,18,9,3,0,1,11,27,45,60,76,86,89,90,90,89,88,87,87,88,85,78,74,74,76,82,87,88,88,82,
+72,72,74,78,86,93,104,117,123,103,63,27,9,2,0,0,0,0,0,0,0,0,12,35,68,108,145,158,160,156,143,130,120,111,107,105,105,105,105,105,105,106,112,119,124,130,139,144,
+137,123,118,116,114,114,115,114,115,115,116,116,116,117,119,119,119,120,126,135,132,116,89,60,39,26,16,9,4,2,1,1,1,1,0,0,1,4,12,25,45,78,122,150,162,171,175,177,
+181,193,215,236,247,247,241,224,204,195,193,189,177,161,154,153,152,152,152,150,151,151,147,142,139,139,140,151,172,189,199,212,151,183,214,237,251,255,254,245,220,172,110,56,26,14,6,0,
+0,0,0,0,10,31,56,75,87,94,99,101,105,117,129,134,137,140,141,141,141,141,141,141,141,141,138,134,131,133,136,130,105,76,61,52,47,46,46,46,45,44,42,41,41,46,54,60,
+64,78,107,132,146,160,163,154,141,128,114,102,91,85,83,78,69,61,58,56,57,67,89,115,136,151,158,160,155,125,84,52,24,5,0,0,0,9,25,45,66,82,87,85,76,65,58,59,
+62,63,63,63,61,52,36,22,19,20,27,40,57,68,77,90,98,104,115,129,143,142,130,107,74,36,9,0,0,0,0,0,0,0,0,1,11,32,57,76,88,94,100,101,106,117,129,133,
+135,138,139,140,140,141,142,145,149,150,148,144,142,144,146,142,120,94,82,73,67,67,67,63,59,54,48,45,46,54,62,66,69,81,101,116,127,141,148,140,126,113,96,81,69,62,60,59,
+60,60,60,59,60,69,90,115,134,146,153,158,165,168,181,200,218,233,239,231,206,179,156,129,113,111,110,100,85,69,61,62,65,67,67,66,63,55,40,28,24,26,32,47,69,85,99,119,
+118,137,158,172,179,184,198,220,237,240,226,193,159,132,104,69,45,39,43,56,74,91,91,77,58,42,29,20,19,28,38,46,54,61,65,66,65,65,65,65,64,62,56,47,42,41,42,37,
+21,6,1,0,0,0,0,0,0,6,18,28,36,37,40,62,95,119,161,183,187,197,208,218,222,224,226,225,224,223,223,221,213,201,183,168,163,160,157,147,133,122,125,133,128,100,70,49,
+36,28,30,38,49,67,83,88,81,65,46,33,29,38,54,69,76,78,78,77,72,61,48,41,41,46,57,72,86,94,97,104,115,128,138,135,116,83,52,27,7,0,0,0,0,0,0,0,
+2,12,29,49,73,90,90,76,57,40,26,17,18,28,42,57,76,96,114,129,134,138,148,164,179,184,181,178,175,175,175,173,165,157,155,153,152,152,151,144,134,115,90,76,74,81,85,78,
+62,48,43,42,48,66,94,117,130,139,143,143,141,139,138,138,138,138,137,137,139,145,151,152,154,164,180,200,216,232,244,245,233,213,184,144,110,97,95,90,80,63,44,31,27,36,53,68,
+75,77,77,76,71,60,47,40,40,45,55,70,85,92,96,102,119,131,137,128,105,84,83,105,144,188,226,243,245,241,232,212,194,187,182,176,168,156,140,117,93,87,87,83,79,78,77,78,
+79,80,81,81,81,81,81,79,74,68,58,42,28,23,22,20,16,11,5,1,1,8,26,57,97,145,164,169,172,173,173,173,160,146,108,69,57,56,63,75,85,97,110,120,129,133,135,141,
+156,174,196,206,210,211,200,173,137,98,67,59,71,81,89,91,89,85,85,87,88,82,65,45,27,15,16,31,56,80,89,84,78,75,75,77,81,87,89,88,87,88,86,85,88,92,96,103,
+119,133,139,127,96,61,37,22,13,12,13,14,18,27,36,49,64,89,116,131,129,110,86,68,60,57,58,59,67,81,96,124,159,182,201,216,221,223,229,237,241,242,242,242,242,241,241,241,
+241,241,242,242,242,242,243,242,241,235,226,222,222,222,220,213,197,174,149,127,109,89,74,72,81,94,104,112,119,123,125,126,126,127,131,141,155,171,179,182,194,213,230,242,248,240,219,189,
+156,128,108,94,87,80,64,44,27,15,16,31,56,80,89,84,78,75,75,77,81,87,89,88,87,87,86,85,88,92,96,102,42,52,65,80,87,86,84,82,88,110,145,179,203,222,240,250,
+254,254,251,246,241,237,237,232,223,225,228,228,224,222,219,219,218,216,216,216,215,214,215,215,210,207,199,181,163,157,157,155,153,142,131,129,142,166,186,196,184,144,113,88,69,60,57,40,
+18,9,0,0,0,0,0,0,2,8,14,21,26,30,32,33,37,44,56,66,81,101,122,145,162,162,135,95,64,48,47,54,61,65,62,57,49,37,25,24,33,48,68,85,88,73,48,26,
+17,15,15,16,22,32,41,44,44,40,32,23,20,21,24,29,42,52,65,80,88,88,86,80,75,73,72,75,83,101,118,130,141,153,158,155,146,144,155,167,179,194,204,210,215,224,229,238,
+243,242,235,226,221,219,212,196,178,170,170,170,171,173,177,181,185,189,189,189,189,190,191,195,200,211,226,238,243,245,248,252,252,250,247,242,233,219,199,185,185,186,180,174,170,170,169,169,
+169,172,182,198,216,231,238,242,243,235,221,203,174,131,91,71,65,64,61,55,48,37,25,24,33,48,68,85,88,73,48,26,17,15,15,16,22,32,41,44,44,40,32,23,20,21,24,29,
+0,0,5,15,29,42,56,67,73,74,78,85,99,121,146,170,192,216,237,248,252,254,255,255,251,246,244,244,245,245,244,244,244,241,240,239,237,235,234,234,237,244,249,250,250,252,253,255,
+255,253,252,253,253,246,229,203,177,151,134,117,91,69,59,55,53,53,53,53,47,42,41,46,53,56,57,57,57,57,57,60,66,71,71,72,82,87,83,85,96,106,109,102,87,68,54,54,
+59,63,66,71,75,77,80,84,88,88,81,64,39,16,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,15,29,43,56,68,75,76,75,74,79,94,104,104,
+98,96,93,94,127,194,233,244,249,252,253,252,249,245,240,229,210,188,166,144,130,121,109,92,77,72,71,72,79,94,110,122,129,132,133,133,133,133,134,135,139,146,160,170,167,165,180,205,
+227,240,247,251,253,254,255,255,255,255,254,251,248,247,247,245,245,245,245,244,241,232,217,204,187,163,138,116,93,66,50,50,57,62,66,71,74,77,80,84,88,88,81,64,39,16,2,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,10,14,14,12,11,14,30,62,110,166,210,237,247,241,227,207,182,150,127,119,124,134,142,147,154,
+161,166,168,171,171,171,171,171,174,182,191,202,212,214,211,209,209,217,228,239,245,248,248,247,243,235,223,208,194,183,169,149,129,113,101,95,91,87,84,84,83,82,82,82,82,82,82,81,
+78,74,73,74,77,72,61,57,57,62,68,72,79,83,88,99,106,106,112,124,136,145,142,123,93,60,32,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,4,10,14,15,15,14,15,20,23,20,15,14,12,21,109,224,235,218,200,177,158,149,146,140,138,133,128,124,121,120,119,116,114,112,112,112,112,112,115,118,114,105,
+95,88,86,86,86,86,86,86,86,87,93,97,92,90,95,110,130,150,169,186,199,211,220,226,229,233,242,250,253,254,254,252,248,242,235,224,206,175,136,105,84,74,72,74,80,84,90,101,
+107,107,113,125,137,145,142,124,93,60,32,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,26,63,113,166,211,
+237,240,225,189,140,96,64,39,20,10,6,8,12,17,21,29,40,48,56,66,76,83,87,89,89,90,93,99,99,89,73,63,61,69,86,112,136,157,175,191,209,226,236,240,241,241,238,227,
+213,193,171,158,143,119,99,82,66,57,54,54,52,51,52,51,46,41,41,40,39,36,32,30,31,33,36,41,49,56,61,62,59,54,57,66,77,90,101,103,92,73,53,36,17,3,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,55,125,115,80,57,37,22,17,16,17,19,26,
+34,43,51,62,73,81,85,86,88,88,88,87,82,66,46,31,21,15,14,14,14,14,14,14,14,14,16,19,21,25,26,27,28,32,38,48,61,73,81,86,88,95,117,149,177,195,210,227,
+238,241,241,238,230,212,184,151,115,84,59,41,34,37,45,57,60,57,60,69,82,95,103,104,95,76,56,37,19,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,1,3,6,10,16,25,48,90,149,199,231,245,239,209,159,106,56,21,5,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,10,12,12,13,13,13,12,10,5,0,0,
+0,0,2,7,15,26,37,53,84,124,161,196,217,229,240,246,248,247,244,242,236,225,212,200,186,171,166,161,150,147,148,148,146,147,147,147,147,147,147,147,148,147,146,154,167,168,157,132,
+114,111,111,114,107,74,49,56,87,122,146,154,140,115,82,54,34,17,6,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,4,4,4,4,4,2,0,0,0,0,
+0,0,0,0,7,16,12,2,0,0,0,0,0,0,0,0,0,0,1,3,7,11,13,13,14,14,14,14,11,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,5,18,35,51,71,105,144,173,191,204,219,234,242,240,229,211,181,146,104,62,32,16,9,5,3,4,8,15,25,42,64,87,109,119,98,56,18,1,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+
+unsigned char linesmap[TEXSIZE * TEXSIZE] = {
+93,102,35,124,79,0,74,178,178,69,24,168,206,164,100,25,8,34,71,85,11,0,94,248,249,232,251,235,50,0,0,0,0,90,169,68,154,248,248,115,12,0,3,36,19,0,0,0,
+0,0,0,0,16,38,5,0,0,10,79,102,76,26,45,79,48,138,179,138,18,0,0,0,0,18,198,248,216,95,22,0,13,37,37,13,0,0,5,123,124,6,60,79,8,0,0,0,
+0,3,64,209,248,203,26,39,12,88,149,55,19,0,0,0,3,70,71,43,23,38,5,81,243,248,248,249,251,190,30,25,93,102,35,124,79,0,74,178,178,69,24,168,206,164,116,224,
+248,249,250,250,135,0,0,0,52,164,120,65,207,248,149,0,0,90,169,68,2,0,8,39,12,0,3,36,19,0,0,0,0,0,0,0,84,249,248,90,0,10,79,102,76,26,45,79,
+48,138,179,138,18,18,198,248,198,18,0,8,79,83,22,0,13,37,37,13,0,0,5,123,124,6,60,79,8,0,0,0,0,3,50,50,2,0,8,39,12,88,149,55,19,0,0,0,
+3,70,71,43,93,61,5,0,0,0,0,27,179,160,30,25,25,47,2,3,6,73,178,178,74,0,10,48,175,209,162,27,3,42,39,54,82,13,0,127,252,251,241,50,0,0,0,0,
+1,47,121,149,22,94,248,249,155,14,33,19,0,0,0,0,0,0,0,0,0,16,39,3,9,79,102,76,27,32,0,16,84,54,138,179,138,18,0,0,0,0,26,216,250,199,46,22,
+3,43,43,4,0,5,123,124,6,0,0,60,78,8,0,0,1,62,209,248,203,18,0,8,37,14,110,156,22,0,0,3,70,71,5,110,124,21,108,243,248,248,249,250,147,132,123,5,
+25,47,2,3,6,73,178,178,74,0,10,48,175,209,162,51,221,249,249,250,250,133,0,52,164,120,65,207,248,194,18,0,1,47,121,149,22,0,0,34,100,14,33,19,0,0,0,0,
+0,0,0,0,0,104,249,248,96,79,102,76,27,32,0,16,84,54,138,179,138,18,18,198,248,198,26,82,70,6,30,22,3,43,43,4,0,5,123,124,6,0,0,60,78,8,0,0,
+1,47,50,2,0,0,0,8,37,14,110,156,22,0,0,3,70,71,5,156,249,224,62,6,0,0,22,145,97,132,123,5,5,0,0,0,72,178,178,74,0,10,33,39,95,173,202,155,
+57,9,10,33,55,82,64,220,251,249,248,90,11,3,0,0,1,22,4,88,148,19,106,252,250,128,26,0,37,19,0,0,0,0,0,0,0,0,12,40,79,102,76,27,32,3,0,0,
+20,89,56,138,179,138,18,0,0,9,82,84,199,248,198,49,49,9,12,38,11,123,124,6,0,0,0,0,66,79,8,0,19,203,248,203,18,0,0,0,8,58,26,86,141,16,3,70,
+71,3,0,7,122,165,244,249,248,249,250,149,36,7,122,122,5,0,0,0,72,178,178,74,0,10,33,39,95,173,202,155,85,222,248,249,250,250,151,163,120,65,207,248,196,21,0,0,
+1,22,4,88,148,19,19,149,93,58,26,0,37,19,0,0,0,0,0,0,0,0,101,249,250,156,76,27,32,3,0,0,20,89,56,138,179,138,18,18,198,248,216,84,3,0,0,33,
+49,9,12,38,11,123,124,6,0,0,0,0,66,79,8,0,1,22,4,0,0,0,0,0,8,58,26,86,141,16,3,70,71,3,81,243,252,252,224,61,6,22,148,100,36,7,122,122,
+149,13,0,74,178,178,74,0,10,34,40,88,28,22,167,207,158,31,0,13,33,97,230,251,235,122,248,248,101,36,3,0,0,0,0,0,83,140,140,147,249,249,112,62,156,39,0,0,
+0,0,0,0,0,0,8,82,102,77,26,32,3,0,0,8,44,29,87,56,138,179,138,18,9,82,71,2,18,198,248,206,54,21,0,19,143,127,6,0,0,0,0,0,12,84,77,24,
+198,248,203,18,0,0,0,3,34,23,34,12,76,137,86,71,3,0,0,0,85,249,252,248,250,250,149,36,3,0,5,128,149,13,0,74,178,178,74,0,10,34,40,88,28,22,167,207,
+158,67,221,248,249,250,253,178,62,207,248,194,34,36,3,0,0,0,0,0,83,140,140,84,34,23,34,62,156,39,0,0,0,0,0,0,0,0,8,149,251,250,107,32,3,0,0,8,
+44,29,87,56,138,179,138,18,26,216,250,198,18,0,6,34,39,21,0,19,143,127,6,0,0,0,0,0,12,84,77,7,0,0,0,0,0,0,0,3,34,23,34,12,76,137,86,71,
+3,81,243,248,248,252,249,88,55,150,99,36,3,0,5,128,141,113,76,178,178,74,0,10,34,40,88,28,0,6,50,168,203,156,33,0,64,226,251,239,50,0,94,248,248,102,36,3,
+0,0,0,0,18,168,169,52,106,248,249,203,64,0,0,0,0,0,0,0,0,12,79,102,79,48,32,2,0,0,10,57,33,0,19,88,56,138,179,142,94,71,2,0,0,24,206,248,
+198,49,28,123,131,43,6,0,0,0,0,0,0,14,95,216,248,203,18,0,0,0,3,36,19,0,8,36,16,130,177,25,0,0,0,81,243,248,252,252,249,160,36,2,0,0,10,66,
+141,113,76,178,178,74,0,10,34,40,88,28,0,6,50,168,203,156,69,226,249,252,251,250,227,248,194,18,0,19,36,3,0,0,0,0,18,168,169,52,19,0,58,174,64,0,0,0,
+0,0,0,0,0,12,79,102,147,249,245,91,0,0,10,57,33,0,19,88,56,138,179,142,94,84,198,248,198,24,38,13,0,33,28,123,131,43,6,0,0,0,0,0,0,14,83,79,
+14,0,0,0,0,0,3,36,19,0,8,36,16,130,177,25,81,243,248,248,248,243,160,121,140,117,36,2,0,0,10,66,0,142,179,178,74,0,10,33,40,88,28,0,6,38,13,21,
+165,204,150,79,219,251,234,85,82,13,0,94,248,248,102,36,3,0,0,22,147,83,105,154,19,124,252,249,115,13,0,0,0,0,0,3,8,73,102,76,26,38,36,6,0,10,62,36,
+0,0,0,20,88,54,142,203,170,20,0,0,6,38,31,198,248,199,148,136,6,14,35,6,0,0,0,0,0,18,201,250,220,29,0,0,0,3,36,19,0,0,0,8,88,74,89,148,
+22,0,81,243,248,248,249,251,189,41,36,6,0,10,62,37,0,142,179,178,74,0,10,33,40,88,28,0,6,38,13,21,165,204,150,104,245,251,250,250,250,220,18,0,0,0,19,36,
+3,0,0,22,147,83,105,154,19,48,159,59,38,13,0,0,0,0,0,3,8,73,102,76,26,122,249,243,90,10,62,36,0,0,0,20,88,54,142,203,170,20,18,198,248,206,31,0,
+0,6,140,136,6,14,35,6,0,0,0,0,0,0,14,83,85,12,0,0,0,3,36,19,0,0,0,8,88,74,89,182,244,248,248,248,243,81,27,179,158,41,36,6,0,10,62,37,
+72,170,178,74,0,10,33,40,88,28,0,6,38,14,0,0,20,159,204,234,251,231,49,32,55,82,13,0,94,248,248,102,36,3,22,148,90,36,19,81,152,149,125,248,248,114,13,0,
+0,0,0,6,35,46,69,28,32,1,13,34,16,60,37,0,0,0,0,0,17,82,99,168,180,138,18,6,38,14,0,18,199,252,226,53,24,0,13,38,6,0,0,0,18,198,248,206,
+90,84,12,0,3,36,19,0,0,0,3,68,71,36,12,88,148,96,243,248,249,249,250,147,132,121,17,34,16,60,37,0,72,170,178,74,0,10,33,40,88,28,0,6,38,14,0,0,
+20,159,203,194,149,235,248,249,250,250,112,0,0,0,0,19,36,3,22,148,90,36,19,81,152,149,48,0,2,38,13,0,0,0,0,6,35,46,69,28,32,1,107,249,244,129,37,0,
+0,0,0,0,17,82,99,168,180,138,18,24,206,248,198,18,5,123,124,38,24,0,13,38,6,0,0,0,0,0,0,13,78,84,12,0,3,36,19,0,0,0,3,68,71,36,89,247,
+252,249,248,243,106,31,145,97,132,121,17,34,16,60,37,0,178,178,74,0,10,33,40,88,28,0,6,38,14,0,0,0,0,70,235,254,245,66,0,13,33,55,82,13,0,94,248,248,
+102,55,149,89,36,19,0,46,174,152,16,98,249,248,113,14,0,0,0,0,10,33,24,30,3,0,0,20,82,41,0,0,0,0,0,0,6,82,102,56,138,179,141,53,14,0,0,5,
+132,226,248,198,48,24,0,14,38,6,0,18,198,248,203,18,13,78,84,16,32,19,0,0,0,3,70,71,2,5,38,13,141,250,249,248,249,251,152,33,7,122,122,25,73,38,0,74,
+178,178,74,0,10,33,63,100,28,0,6,38,14,0,0,0,0,66,195,209,172,219,248,248,249,250,250,107,0,0,0,0,19,55,149,89,36,19,0,46,174,152,16,7,44,10,36,14,
+0,0,0,0,10,33,24,30,3,0,0,111,250,245,90,0,0,0,0,0,6,82,102,56,138,179,141,53,31,198,248,199,132,124,6,1,33,24,0,14,38,6,0,0,0,0,0,0,
+13,78,84,16,32,19,0,0,0,3,70,71,2,84,245,248,250,252,244,81,32,162,104,33,7,122,122,25,73,38,0,74,178,74,0,10,33,40,88,28,0,6,38,14,0,0,0,0,
+56,223,252,243,211,156,24,0,13,33,54,80,28,0,94,248,249,191,110,34,18,0,53,157,48,81,148,26,138,250,248,113,14,0,0,0,0,28,56,10,0,0,10,59,109,140,11,0,
+0,0,0,9,82,66,24,86,56,140,190,144,18,0,6,122,124,23,198,248,198,47,12,0,14,38,23,198,249,203,18,1,63,133,86,96,27,0,0,0,3,70,71,3,0,0,7,107,
+244,250,252,250,251,156,56,10,0,5,127,153,46,32,78,178,178,74,0,10,33,63,233,204,18,6,38,14,0,0,0,0,52,157,124,176,245,252,211,231,248,249,250,250,112,0,0,0,
+24,155,110,34,18,0,53,157,48,81,148,26,70,68,6,36,14,0,0,0,0,28,56,10,0,0,10,59,166,252,243,90,0,0,0,9,82,66,24,86,56,140,190,144,18,18,199,252,
+225,23,0,0,1,32,12,0,14,38,5,0,22,2,0,1,63,133,86,96,27,0,0,0,3,70,71,3,81,243,248,249,248,247,177,83,170,110,56,10,0,5,127,153,46,32,78,178,
+74,0,10,33,40,88,28,0,6,38,14,0,0,0,0,56,226,251,228,57,163,204,144,17,0,12,30,74,99,16,0,102,252,250,119,45,1,0,55,52,0,0,88,148,25,138,250,248,
+113,14,0,0,24,30,11,38,8,9,62,37,11,129,142,11,0,0,9,82,71,3,0,17,86,78,142,179,137,30,117,124,13,0,18,198,248,198,20,0,0,31,205,249,214,22,0,4,
+131,179,153,90,82,12,0,3,70,71,3,0,0,0,81,243,249,248,252,253,190,44,9,38,8,9,66,140,112,86,190,180,74,0,10,33,40,100,204,248,199,53,14,0,0,0,0,52,
+167,118,64,211,252,243,152,67,230,248,249,250,251,100,0,13,141,89,45,45,1,0,55,52,0,0,88,148,25,70,68,6,36,14,0,0,24,30,11,38,8,9,62,37,11,180,252,243,
+86,0,9,82,71,3,0,17,86,78,142,179,137,30,126,225,248,198,18,0,0,0,2,0,0,14,32,44,53,4,0,4,131,179,153,90,82,12,0,3,70,71,3,81,243,248,248,248,
+245,88,120,209,159,44,9,38,8,9,66,140,112,86,190,180,4,8,33,40,88,28,0,6,38,14,0,0,0,0,56,228,251,229,36,0,19,163,204,144,17,0,48,63,56,82,13,7,
+124,249,248,100,36,3,0,0,0,0,0,88,148,24,138,250,248,113,12,21,33,1,0,8,38,61,35,0,0,5,129,141,6,8,82,71,2,0,0,3,46,90,56,136,179,169,118,16,
+61,16,0,18,198,248,198,18,18,198,249,217,27,0,0,0,24,156,183,137,87,82,18,66,70,3,0,0,0,81,243,248,248,251,251,203,160,22,0,8,38,61,35,0,142,179,175,99,
+4,8,33,40,88,28,18,199,249,201,18,0,0,0,52,167,134,72,207,248,198,170,204,144,67,239,249,250,250,250,98,7,47,36,16,16,36,3,0,0,0,0,0,88,148,24,70,68,
+6,36,12,21,33,1,0,8,38,61,35,0,0,5,180,252,243,92,82,71,2,0,0,3,46,90,56,136,179,169,118,33,212,248,198,18,0,0,0,0,0,0,49,69,10,0,0,0,
+24,156,183,137,87,82,18,66,70,3,81,243,248,248,248,243,83,80,182,179,160,22,0,8,38,61,35,0,142,179,175,99,40,34,39,88,28,0,6,38,14,0,0,0,0,56,227,251,
+230,84,14,1,47,36,162,204,145,56,53,16,31,55,81,17,32,106,248,248,102,36,3,0,0,0,0,0,98,150,24,138,250,248,120,39,0,0,0,8,61,56,7,0,0,0,5,127,
+140,83,70,2,0,0,6,38,10,16,88,62,171,179,134,15,30,64,14,1,62,203,248,202,202,249,214,34,35,6,0,3,36,38,142,179,136,82,100,68,0,0,0,0,81,243,248,248,
+250,252,187,58,87,148,22,8,61,56,7,72,170,179,142,12,40,34,39,88,28,0,6,53,201,248,203,18,0,52,164,118,78,218,248,194,62,36,162,204,145,98,242,248,249,250,247,97,
+32,19,0,0,19,36,3,0,0,0,0,0,98,150,24,70,68,6,47,39,0,0,0,8,61,56,7,0,0,0,5,179,252,247,132,2,0,0,6,38,10,16,88,62,171,179,134,15,
+46,212,248,171,48,22,0,0,0,45,53,17,35,6,0,3,36,38,142,179,136,82,100,68,0,81,243,248,248,248,243,81,59,190,154,58,87,148,22,8,61,56,7,72,170,179,142,12,
+43,58,86,27,0,6,38,14,0,0,0,0,59,227,251,228,31,27,58,53,47,4,18,162,208,168,19,0,13,32,55,95,28,0,94,248,248,102,36,3,0,0,0,0,0,89,148,24,
+136,250,249,111,15,0,10,62,35,9,38,10,0,0,0,10,163,167,12,0,0,6,38,14,0,0,22,165,141,135,179,138,18,28,58,53,46,23,202,248,249,216,21,0,14,36,9,34,
+19,0,20,145,179,163,101,79,11,0,0,81,243,248,248,250,252,187,54,31,14,88,152,79,35,9,101,181,178,76,112,125,43,58,86,27,0,6,38,14,18,198,248,203,66,164,120,64,
+207,249,208,68,47,4,18,162,208,168,73,239,248,249,250,247,100,0,0,0,0,19,36,3,0,0,0,0,0,89,148,24,67,76,30,32,15,0,10,62,35,9,38,10,0,0,0,10,
+200,253,243,86,0,6,38,14,0,0,22,165,141,135,179,138,18,44,190,75,46,6,0,0,46,55,4,0,14,36,9,34,19,0,20,145,179,163,101,79,88,243,248,248,248,243,81,60,
+190,155,54,31,14,88,152,79,35,9,101,181,178,76,112,125,142,93,53,1,5,38,14,0,0,0,0,59,227,251,228,31,0,1,59,76,17,0,1,57,178,170,22,0,0,13,52,62,
+79,13,0,94,248,248,102,36,3,0,0,0,0,0,88,148,42,147,250,248,103,11,62,37,0,0,10,39,10,0,9,75,65,130,140,10,5,38,14,0,0,5,122,131,88,57,138,179,
+138,19,59,76,17,18,202,249,250,203,26,22,0,14,58,21,0,0,0,24,177,199,135,84,85,12,81,243,248,248,250,252,187,52,0,6,22,11,128,163,23,69,181,190,81,0,14,139,
+142,93,53,1,5,38,14,0,0,18,194,249,236,130,65,207,248,194,73,76,17,0,1,57,178,170,22,63,239,248,250,250,247,86,0,0,0,0,19,36,3,0,0,0,0,0,88,148,
+42,84,66,7,20,11,62,37,0,0,10,39,10,0,9,75,65,181,252,243,89,38,14,0,0,5,122,131,88,57,138,179,138,19,59,76,17,0,1,46,54,5,9,22,0,14,58,21,
+0,0,0,24,177,199,135,138,247,248,248,248,243,81,62,190,155,52,0,6,22,11,128,163,23,69,181,190,81,0,14,139,168,136,13,36,36,11,0,0,0,0,59,229,251,228,27,0,
+3,50,44,28,59,16,39,51,19,55,84,12,0,31,28,29,54,82,13,0,94,248,248,102,34,3,0,0,0,0,0,102,160,28,138,250,248,127,36,0,0,0,0,10,33,16,79,68,
+1,5,129,141,41,11,0,0,5,122,122,5,17,87,60,138,180,161,58,28,73,202,249,216,203,248,203,99,31,24,28,32,6,0,3,70,87,149,179,130,82,138,243,248,248,249,251,187,
+52,0,0,0,7,59,36,81,156,173,175,81,35,16,29,44,168,136,13,36,36,11,0,0,0,0,66,233,251,217,210,248,195,64,44,28,59,16,39,51,19,55,84,12,68,241,249,249,
+250,247,82,0,0,0,0,19,34,3,0,0,0,0,0,102,160,28,69,66,12,57,36,0,0,0,0,10,33,16,79,68,1,5,182,252,245,89,0,0,5,122,122,5,17,87,60,138,
+180,161,58,28,59,16,39,52,4,0,22,87,31,24,28,32,6,0,3,70,87,149,203,249,250,250,248,243,81,52,186,155,52,0,0,0,7,59,36,81,156,173,175,81,35,16,29,44,
+32,122,125,46,38,20,23,0,0,59,229,251,225,27,0,4,52,46,1,0,26,73,49,1,0,0,50,82,40,14,0,12,32,55,82,13,0,94,248,248,101,35,3,0,0,0,24,31,
+88,148,23,138,250,249,90,0,0,0,0,0,14,93,73,1,0,0,11,144,142,25,23,5,122,122,5,0,0,17,85,60,159,193,138,34,204,250,213,19,18,198,248,205,112,42,0,13,
+34,11,68,70,3,25,150,179,168,247,250,248,249,248,169,52,0,0,0,10,60,34,0,69,179,179,86,0,16,52,43,86,32,122,125,46,38,20,23,0,0,52,164,130,209,248,248,199,
+66,46,1,0,26,73,49,1,0,0,50,82,40,82,239,248,249,228,107,13,0,0,0,0,18,35,3,0,0,0,24,31,88,148,23,70,94,33,0,0,0,0,0,0,14,93,73,1,
+0,0,11,190,252,244,97,5,122,122,5,0,0,17,85,60,159,193,138,18,26,73,49,1,0,0,0,30,101,42,0,13,34,11,68,70,3,99,250,253,252,250,247,89,40,105,128,52,
+0,0,0,10,60,34,0,69,179,179,86,0,16,52,43,86,0,5,129,127,30,58,8,0,59,230,251,225,27,0,4,53,48,2,0,2,44,59,55,15,0,0,0,70,89,11,0,0,
+13,33,55,82,13,0,94,248,248,102,36,3,0,24,33,1,0,88,152,74,146,250,248,90,0,0,0,9,80,73,35,8,0,0,14,14,135,150,26,119,122,5,0,0,0,0,20,102,
+85,138,184,229,250,215,69,15,0,18,199,249,208,98,30,0,14,88,70,2,0,0,26,184,251,252,250,250,248,151,52,0,0,0,10,62,37,0,74,178,173,123,135,31,31,44,100,34,
+0,5,129,127,30,58,8,0,52,164,120,65,210,248,248,219,62,2,0,2,44,59,55,15,0,0,0,70,89,11,72,243,223,60,55,82,13,0,0,0,0,19,36,3,0,24,33,1,
+0,88,152,74,82,66,2,0,0,0,0,9,80,73,35,8,0,0,14,14,186,253,244,162,122,5,0,0,0,0,20,102,85,138,179,139,59,59,55,15,0,0,3,30,44,86,30,0,
+14,88,70,2,81,243,249,252,253,249,134,89,98,102,52,0,0,0,10,62,37,0,74,178,173,123,135,31,31,44,100,34,10,0,5,131,139,20,36,61,230,251,225,27,0,4,54,47,
+1,0,2,49,51,3,25,64,16,1,35,15,48,84,13,0,0,13,33,55,82,13,0,94,248,248,102,31,24,32,1,0,0,10,129,163,25,138,250,248,90,0,9,82,71,1,8,37,
+7,0,0,17,35,123,178,118,3,0,0,0,0,4,49,53,82,72,229,253,236,36,25,64,16,1,52,202,248,205,99,29,62,73,35,5,0,0,81,244,252,253,252,248,151,58,0,0,
+0,10,62,37,0,74,178,178,72,0,93,162,58,86,35,32,10,0,5,131,139,20,36,54,163,120,65,207,248,198,209,249,207,18,2,49,51,3,25,64,16,1,35,15,48,84,13,68,
+27,13,33,55,82,13,0,0,0,0,18,31,24,32,1,0,0,10,129,163,25,69,70,3,0,0,9,82,71,1,8,37,7,0,0,17,35,180,252,249,83,0,0,0,0,4,49,53,
+82,58,138,193,162,21,25,64,16,1,36,19,0,30,87,29,62,73,35,84,243,248,248,249,250,203,144,106,102,58,0,0,0,10,62,37,0,74,178,178,72,0,93,162,58,86,35,32,
+39,8,17,41,124,113,68,233,251,220,27,0,5,54,46,1,0,4,49,51,3,0,0,26,61,42,15,0,0,50,85,17,0,0,13,33,55,82,13,0,94,248,248,112,53,1,0,0,
+10,62,37,88,148,23,138,250,248,95,82,71,2,0,0,7,37,8,17,36,6,115,170,136,9,0,0,0,5,54,46,0,32,216,251,235,185,138,18,26,61,42,15,18,198,248,206,113,
+75,0,12,38,6,81,243,248,249,252,253,198,90,78,12,0,10,62,37,0,74,178,178,74,0,10,33,114,185,47,0,10,39,8,17,41,124,113,61,172,119,63,207,248,195,68,58,194,
+248,208,67,51,3,0,0,26,61,42,15,0,0,50,85,17,0,0,13,33,55,82,13,0,0,0,0,33,53,1,0,0,10,62,37,88,148,23,70,70,0,8,82,71,2,0,0,7,
+37,8,17,36,6,115,206,252,243,81,0,0,5,54,46,0,15,83,86,159,180,138,18,26,61,42,15,0,0,0,38,102,75,0,89,245,248,248,248,243,101,172,209,171,90,78,12,0,
+10,62,37,0,74,178,178,74,0,10,33,114,185,47,0,10,8,46,38,2,0,138,237,251,224,29,0,5,54,46,0,0,0,43,51,3,0,0,0,0,48,66,15,0,0,0,50,42,
+0,0,0,13,33,55,82,13,0,94,248,250,135,36,32,30,62,37,0,0,112,157,22,136,250,250,135,2,0,0,0,0,7,46,38,7,122,119,18,127,142,11,0,5,54,46,0,18,
+198,249,224,74,138,179,138,18,48,66,15,0,18,201,250,212,94,29,0,14,107,243,248,248,249,248,215,194,117,77,82,23,58,37,0,74,189,185,74,0,10,33,40,88,106,148,22,0,
+8,46,38,2,0,134,182,122,84,207,248,195,66,46,0,14,194,249,217,24,0,0,0,0,48,66,15,0,0,0,50,42,0,0,0,13,33,55,82,13,0,0,21,82,70,36,32,30,
+62,37,0,0,112,157,22,67,67,77,69,2,0,0,0,0,7,46,38,7,122,119,18,180,252,243,81,5,54,46,0,0,0,48,102,61,138,179,138,18,48,66,15,0,0,13,78,65,
+81,101,243,248,249,248,243,81,42,120,196,194,117,77,82,23,58,37,0,74,189,185,74,0,10,33,40,88,106,148,22,0,17,38,36,10,57,229,253,233,41,34,12,54,45,0,0,0,
+0,14,3,0,0,0,3,36,15,24,64,18,0,0,0,0,0,0,0,0,13,33,55,82,12,19,147,251,250,108,96,174,55,0,0,0,24,130,155,31,158,251,248,90,0,0,0,0,
+16,38,40,127,122,5,0,5,129,140,16,54,45,0,18,198,248,205,38,85,62,138,180,154,32,24,64,14,11,96,209,248,204,102,30,81,244,249,248,249,248,151,80,158,168,109,77,102,
+42,0,74,178,185,120,20,8,33,40,88,28,0,88,148,22,17,38,36,10,50,149,173,148,210,249,197,65,45,0,0,0,14,197,248,207,22,0,3,36,15,24,64,18,0,0,0,0,
+0,0,0,0,13,33,55,82,12,19,84,102,89,28,96,174,55,0,0,0,24,130,155,31,102,98,5,0,0,0,0,0,16,38,40,127,122,5,0,5,185,252,243,115,45,0,0,0,
+0,10,21,85,62,138,180,154,32,24,64,14,11,84,50,0,101,247,249,248,248,245,84,41,101,102,80,158,168,109,77,102,42,0,74,178,185,120,20,8,33,40,88,28,0,88,148,22,
+55,1,9,86,234,251,217,137,122,21,69,44,0,0,0,0,0,0,0,31,3,1,34,19,0,0,27,64,18,0,0,0,0,0,0,0,0,13,33,53,82,84,102,152,248,248,132,124,
+148,22,0,0,0,19,127,182,80,135,250,248,90,0,0,15,34,6,126,140,9,0,0,0,5,130,158,49,0,18,198,248,203,18,0,16,85,62,150,184,138,18,23,64,85,48,18,198,
+248,205,150,244,248,248,250,248,151,52,0,36,150,170,142,84,80,82,178,178,74,20,63,43,39,88,28,0,0,0,88,156,55,1,9,76,164,118,66,230,252,199,79,44,0,0,0,0,
+0,14,194,249,207,23,34,19,0,0,27,64,18,0,0,0,0,0,0,0,0,13,33,53,82,84,102,92,21,7,64,124,148,22,0,0,0,19,127,182,80,64,68,3,0,0,0,15,
+34,6,126,140,9,0,0,0,5,186,253,245,77,0,0,0,0,0,0,16,85,62,150,184,138,18,23,64,85,48,0,81,243,249,250,249,243,88,63,100,102,52,0,36,150,170,142,84,
+80,82,178,178,74,20,63,43,39,88,28,0,0,0,88,156,149,19,59,233,251,217,22,5,126,150,53,32,6,0,0,0,0,0,47,102,63,31,16,0,0,0,0,26,63,18,0,0,
+0,0,0,0,0,0,9,43,93,102,90,17,98,250,249,100,111,149,22,0,0,6,84,151,156,22,138,250,248,90,20,35,6,122,122,8,2,0,0,0,8,57,148,139,28,198,248,203,
+18,0,0,0,16,98,71,138,179,143,27,89,86,14,0,18,198,248,247,250,249,249,248,151,54,0,0,0,42,177,189,108,128,204,182,74,0,7,43,73,90,25,0,0,0,0,20,112,
+149,19,48,164,121,64,207,248,224,155,53,32,6,0,0,0,0,0,55,218,250,213,37,0,0,0,0,26,63,18,0,0,0,0,0,0,0,0,9,43,93,102,90,17,6,62,34,15,
+111,149,22,0,0,6,84,151,156,22,70,70,3,0,20,35,6,122,122,8,2,0,0,0,8,57,195,252,243,77,0,0,0,0,0,0,16,98,71,138,179,143,27,89,86,14,81,243,
+248,248,249,247,99,37,101,102,54,0,0,0,42,177,189,108,128,204,182,74,0,7,43,73,90,25,0,0,0,0,20,112,81,157,230,251,217,22,0,0,42,145,122,18,38,6,0,0,
+0,0,27,92,102,70,0,0,0,0,0,0,26,62,18,0,0,0,0,0,0,0,19,85,102,96,78,20,58,117,248,248,102,112,149,22,9,82,67,22,128,156,22,138,250,248,102,8,
+122,122,5,0,0,0,0,0,38,45,5,138,229,248,203,18,0,0,0,3,31,30,82,63,143,137,92,47,22,63,18,0,93,246,248,249,250,248,150,58,30,6,0,10,62,69,155,179,
+183,196,132,10,6,33,39,90,72,17,0,0,0,1,21,3,81,152,153,115,64,207,248,194,54,145,122,18,38,6,0,0,0,0,27,98,218,250,207,27,0,0,0,0,26,62,18,0,
+0,0,0,0,0,0,19,85,102,96,78,20,58,37,0,0,19,112,149,22,9,82,67,22,128,156,22,69,70,3,19,8,122,122,5,0,0,0,0,0,38,45,5,185,252,243,77,0,
+0,0,0,3,31,30,82,63,143,137,92,47,22,124,244,248,248,248,243,99,92,100,102,58,30,6,0,10,62,69,155,179,183,196,132,10,6,33,39,90,72,17,0,0,0,1,21,3,
+62,236,253,219,18,0,0,0,4,5,122,122,19,38,6,0,0,0,0,48,94,102,62,2,0,0,0,11,71,62,62,18,0,0,0,0,0,22,86,102,91,44,56,102,43,0,94,248,
+248,102,109,153,96,71,2,0,22,130,156,22,138,250,248,169,122,5,0,0,0,0,0,0,4,0,18,199,252,232,29,0,0,0,3,36,19,0,15,81,65,82,50,0,0,26,64,93,
+243,248,248,249,248,151,66,0,13,34,16,60,37,0,98,179,179,137,76,84,40,39,87,25,18,64,22,0,0,0,0,0,47,178,186,77,207,248,194,14,4,5,122,122,19,38,6,0,
+0,0,0,48,100,218,250,207,27,0,0,11,71,62,62,18,0,0,0,0,0,22,86,102,91,44,56,102,43,0,0,0,0,19,109,153,96,71,2,0,22,130,156,22,69,70,5,122,
+122,5,0,0,0,0,0,0,4,0,0,5,185,252,243,77,0,0,3,36,19,0,15,81,65,82,50,0,81,244,250,248,248,243,81,39,100,102,66,0,13,34,16,60,37,0,98,179,
+179,137,76,84,40,39,87,25,18,64,22,0,0,0,0,0,232,251,227,156,22,0,0,0,0,0,5,122,122,19,38,6,0,3,36,14,22,92,102,63,2,0,11,80,102,71,26,64,
+19,0,0,0,22,86,102,90,16,16,66,70,78,13,0,94,248,248,104,148,177,24,0,0,0,22,130,156,20,139,253,252,94,0,0,0,0,0,0,0,0,18,198,248,204,139,142,11,
+0,3,36,19,0,0,0,26,102,75,0,0,0,0,99,246,248,248,249,248,151,66,80,29,0,20,73,38,0,70,173,174,168,179,111,83,88,82,25,0,0,22,64,22,0,0,0,52,
+162,116,126,235,249,194,14,0,0,0,5,122,122,19,38,6,0,3,36,14,22,98,216,250,207,27,11,80,102,71,26,64,19,0,0,0,22,86,102,90,16,16,66,70,78,13,0,0,
+0,0,22,148,177,24,0,0,0,22,130,156,20,70,158,124,5,0,0,0,0,0,0,0,0,0,0,0,5,185,252,243,72,3,36,19,0,0,0,26,102,75,0,81,243,248,249,250,
+244,81,42,101,102,66,80,29,0,20,73,38,0,70,173,174,168,179,111,83,88,82,25,0,0,22,64,22,0,0,0,66,251,213,18,88,148,22,0,0,0,0,0,5,122,122,19,36,
+9,34,19,0,0,23,92,102,61,18,80,102,78,9,27,86,64,19,0,22,87,102,90,17,6,59,42,30,55,82,13,0,94,248,250,139,110,149,22,0,0,0,22,128,144,121,192,250,
+248,90,0,0,0,0,0,0,18,198,248,203,18,5,129,141,14,34,19,0,0,0,13,80,55,77,48,0,0,81,243,249,250,250,248,151,52,0,29,87,37,53,42,32,71,168,178,68,
+43,169,188,128,102,86,8,0,0,0,22,64,22,0,52,163,119,65,207,250,229,35,0,0,0,0,0,5,122,122,19,36,9,34,19,0,0,23,98,216,250,210,99,102,78,9,0,25,
+64,19,0,22,87,102,90,17,6,59,42,30,55,82,13,0,0,9,79,76,110,149,22,0,0,0,22,128,144,121,154,71,1,0,0,0,0,0,0,0,0,0,0,0,0,5,187,252,
+243,96,19,0,0,0,13,80,55,77,114,243,248,248,248,244,119,54,100,102,52,0,29,87,37,53,42,32,71,168,178,68,43,169,188,128,102,86,8,0,0,0,22,64,22,0,66,240,
+166,18,0,0,88,148,22,0,0,0,0,0,5,122,122,19,58,21,0,0,0,0,23,90,102,94,102,75,9,39,217,239,90,58,35,85,102,89,16,6,62,37,0,12,33,55,82,11,
+7,146,250,248,101,112,149,22,0,0,0,22,178,185,27,133,250,248,90,0,0,0,0,18,198,248,203,18,0,0,5,129,152,25,0,0,0,13,84,50,0,14,85,48,81,244,248,248,
+250,248,151,50,0,0,0,36,102,55,0,84,180,169,74,0,10,75,181,204,119,74,84,12,0,0,0,22,64,67,162,119,65,207,248,194,98,148,22,0,0,0,0,0,5,122,122,19,
+58,21,0,0,0,0,23,95,216,250,229,94,9,13,4,0,25,58,35,85,102,89,16,6,62,37,0,12,33,55,82,11,7,82,71,1,16,112,149,22,0,0,0,22,178,185,27,62,
+62,2,0,0,0,0,0,0,0,0,0,0,0,0,5,187,253,244,72,0,0,13,84,50,0,90,247,249,248,248,243,81,56,102,102,50,0,0,0,36,102,55,0,84,180,169,74,0,
+10,75,181,204,119,74,84,12,0,0,0,22,64,80,234,251,0,0,0,0,0,88,148,22,0,0,0,0,0,5,124,139,33,34,6,0,0,0,0,34,102,102,97,24,31,223,249,248,
+239,99,97,102,86,16,6,62,37,0,0,0,13,33,53,78,78,68,96,248,248,102,112,150,23,0,5,121,124,128,154,22,136,250,248,90,0,0,18,198,248,203,18,0,0,0,3,37,
+137,140,11,0,13,84,50,0,0,0,22,147,245,248,249,249,248,151,82,16,0,0,10,56,56,84,95,178,173,95,4,8,34,40,120,178,179,100,78,86,12,0,0,0,67,182,121,62,
+207,248,194,14,0,88,148,22,0,0,0,0,0,5,124,139,33,34,6,0,0,0,0,34,107,216,251,216,27,19,36,3,0,38,97,102,86,16,6,62,37,0,0,0,13,33,53,78,
+78,68,2,0,0,19,112,150,23,0,5,121,124,128,154,22,67,69,3,0,0,0,0,0,0,0,0,0,0,0,3,37,191,252,243,72,13,84,50,0,81,243,248,251,249,244,101,43,
+99,102,82,16,0,0,10,56,56,84,95,178,173,95,4,8,34,40,120,178,179,100,78,86,12,0,0,0,81,239,251,213,0,0,0,0,0,0,88,150,31,0,0,0,0,3,40,132,
+122,19,38,6,0,0,13,79,102,100,102,80,83,243,248,249,249,244,143,102,32,6,62,37,0,0,0,0,0,10,36,92,102,15,0,94,248,248,102,102,145,34,121,124,4,22,130,158,
+20,138,250,248,90,18,198,248,203,18,0,0,0,3,36,19,5,129,139,24,83,50,0,0,0,0,82,245,249,248,250,248,151,49,22,63,18,9,62,37,0,95,205,187,71,12,40,34,
+40,88,28,52,170,179,98,66,83,13,0,58,160,121,98,210,248,194,14,0,0,0,88,150,31,0,0,0,0,3,40,132,122,19,38,6,0,0,13,79,102,106,213,250,215,27,18,30,
+24,84,102,102,32,6,62,37,0,0,0,0,0,10,36,92,102,15,0,0,0,0,19,102,145,34,121,124,4,22,130,158,20,70,70,3,0,0,0,0,0,0,0,0,0,3,36,19,
+5,187,252,244,132,50,0,81,243,248,248,249,245,81,53,112,103,49,22,63,18,9,62,37,0,95,205,187,71,12,40,34,40,88,28,52,170,179,98,66,83,13,0,72,234,251,221,35,
+21,0,0,0,0,0,0,86,151,22,0,0,3,36,19,5,122,122,19,38,3,12,83,102,72,30,90,102,83,91,243,249,250,251,244,90,54,62,53,93,13,0,0,0,0,7,82,82,
+54,80,13,0,94,248,248,90,81,175,135,6,0,0,21,134,154,22,138,250,248,216,248,203,18,0,0,0,3,36,19,0,0,5,134,173,55,0,0,0,0,81,243,248,249,250,251,195,
+72,0,0,22,60,62,34,0,74,178,187,138,28,4,39,58,86,26,0,0,53,171,179,88,50,84,63,163,113,62,211,250,199,14,0,0,0,0,0,86,151,22,0,0,3,36,19,5,
+122,122,19,38,3,12,83,102,72,30,96,213,250,214,27,34,94,102,85,36,54,62,53,93,13,0,0,0,0,7,82,82,54,80,13,0,0,0,0,0,81,175,135,6,0,0,21,134,
+154,22,69,70,3,0,0,0,0,0,0,0,3,36,19,0,0,5,190,253,245,72,81,243,248,248,248,243,99,57,173,167,72,0,0,22,60,62,34,0,74,178,187,138,28,4,39,58,
+86,26,0,0,53,171,179,88,50,84,77,235,251,213,35,62,64,22,0,0,0,0,0,0,88,149,22,3,36,19,0,0,5,122,122,15,42,84,102,75,8,0,20,92,102,79,109,247,
+251,251,248,239,107,83,147,179,93,0,0,0,9,82,68,16,32,55,82,13,0,94,248,248,155,155,138,20,0,0,0,18,128,156,22,146,250,248,219,18,0,0,0,3,36,19,0,0,
+0,13,85,152,138,11,0,0,81,243,248,248,249,251,202,55,14,34,2,7,63,70,18,74,178,178,74,28,89,52,38,90,53,2,0,0,0,57,171,179,79,89,188,115,62,207,248,199,
+74,22,0,0,0,0,0,0,88,149,22,3,36,19,0,0,5,122,122,15,42,84,102,75,8,0,20,97,213,250,222,103,102,96,17,5,64,83,147,179,93,0,0,0,9,82,68,16,
+32,55,82,13,0,0,0,0,100,155,138,20,0,0,0,18,128,156,22,69,70,3,0,0,0,0,0,3,36,19,0,0,0,13,85,202,252,242,245,248,248,248,243,81,47,176,176,55,
+14,34,2,7,63,70,18,74,178,178,74,28,89,52,38,90,53,2,0,0,0,57,171,179,79,100,240,251,213,18,0,20,45,61,22,0,0,0,0,0,0,90,148,55,19,0,0,0,
+0,5,122,128,91,102,75,6,0,16,13,18,88,102,101,156,247,249,248,250,242,171,198,148,25,0,0,9,82,71,3,0,13,33,54,82,17,0,94,251,252,99,84,148,22,0,0,0,
+21,130,164,203,250,250,248,90,0,0,3,36,19,0,0,0,13,84,50,5,129,142,11,81,243,248,248,249,251,202,72,14,0,14,19,60,33,22,119,184,178,74,0,6,52,91,90,22,
+9,38,5,4,9,0,58,167,178,170,124,107,209,248,195,70,45,61,22,0,0,0,0,0,0,90,148,55,19,0,0,0,0,5,122,128,91,102,75,6,0,16,13,18,94,213,251,232,
+100,27,14,60,49,148,198,148,25,0,0,9,82,71,3,0,13,33,54,82,17,0,0,110,133,14,84,148,22,0,0,0,21,130,156,22,69,70,3,0,0,0,3,36,19,0,0,0,
+13,84,50,5,209,252,248,248,248,244,90,45,175,176,72,14,0,14,19,60,33,22,119,184,178,74,0,6,52,91,90,22,9,38,5,4,9,0,58,167,184,236,251,223,28,0,3,59,
+4,20,64,22,0,0,0,0,0,3,113,155,22,0,0,0,0,0,19,166,175,80,35,4,0,5,36,9,40,102,102,101,109,243,250,250,252,250,171,78,21,0,9,82,71,2,0,0,
+0,12,34,70,82,22,121,179,248,248,90,88,148,22,0,0,0,38,227,252,208,146,250,248,90,3,36,19,0,0,0,13,84,50,0,0,5,129,177,243,248,248,250,251,202,56,3,34,
+16,7,61,37,0,74,185,198,89,0,10,33,39,90,90,29,14,13,38,37,9,10,23,96,183,203,118,216,250,198,77,71,4,20,64,22,0,0,0,0,0,3,113,155,22,0,0,0,
+0,0,19,166,175,80,35,4,0,5,36,9,40,107,213,251,221,30,61,52,138,179,149,78,21,0,9,82,71,2,0,0,0,12,34,70,82,22,121,135,12,0,0,88,148,22,0,0,
+0,22,130,156,22,69,70,3,0,3,36,19,0,0,0,13,84,50,0,81,243,252,252,248,245,82,66,175,176,56,3,34,16,7,61,37,0,74,185,198,89,0,10,33,39,90,90,29,
+14,13,38,37,9,10,23,107,239,254,225,61,82,19,66,71,0,0,22,64,22,0,0,0,3,36,19,91,147,22,0,0,0,15,86,105,160,125,17,38,6,0,0,45,88,102,102,102,
+79,128,250,252,253,252,235,72,60,26,78,71,2,0,0,0,0,4,42,37,57,166,143,11,94,248,248,90,88,148,22,0,18,198,248,229,164,22,138,250,248,112,19,0,0,0,13,84,
+50,0,0,0,0,85,249,252,248,249,251,202,64,0,0,1,36,65,36,0,74,178,178,90,62,27,29,41,87,24,26,99,153,54,43,40,13,37,62,145,139,193,241,250,206,110,70,1,
+0,0,22,64,22,0,0,0,3,36,19,91,147,22,0,0,0,15,86,105,160,125,17,38,6,0,0,45,88,102,107,210,250,226,71,138,179,138,18,23,60,26,78,71,2,0,0,0,
+0,4,42,37,57,166,143,11,0,0,0,0,88,148,22,0,0,0,22,130,156,22,69,69,8,34,19,0,0,0,13,84,50,0,81,243,248,248,252,252,242,102,174,176,64,0,0,1,
+36,65,36,0,74,178,178,90,62,27,29,41,87,24,26,99,153,54,43,40,13,37,76,230,252,242,184,78,48,102,70,1,0,0,0,22,64,22,0,3,36,19,0,0,91,147,22,0,
+16,86,102,72,11,124,110,16,38,3,22,89,102,85,31,88,102,92,179,253,252,249,248,234,75,101,76,0,0,0,0,0,6,38,12,19,144,161,88,13,0,94,248,248,90,88,150,39,
+198,248,203,38,130,156,22,137,250,248,90,0,0,13,84,50,0,0,0,0,5,217,248,252,252,251,200,57,28,18,0,10,60,37,0,74,178,178,74,0,28,70,52,84,28,0,0,30,
+124,179,59,19,61,65,159,51,26,219,253,237,129,84,78,11,0,0,0,22,64,22,0,3,36,19,0,0,91,147,22,0,16,86,102,72,11,124,110,16,38,3,22,89,102,85,31,93,
+210,251,237,187,138,18,0,0,27,101,76,0,0,0,0,0,6,38,12,19,144,161,88,13,0,0,0,0,0,88,150,22,0,0,0,22,130,156,22,68,86,18,0,0,0,13,84,50,
+0,81,243,248,248,248,243,208,252,250,197,57,28,18,0,10,60,37,0,74,178,178,74,0,28,70,52,84,28,0,0,30,124,179,59,19,61,78,234,249,205,78,175,180,121,84,78,11,
+12,0,0,0,22,63,23,31,19,0,0,0,0,91,147,37,90,102,69,6,0,9,42,1,10,46,89,102,82,37,18,62,106,185,199,182,249,248,248,248,238,114,58,20,0,0,0,4,
+36,14,1,128,141,39,55,82,13,0,94,248,248,90,118,233,249,203,18,0,22,129,157,48,142,250,248,90,13,84,50,0,46,22,0,0,0,27,221,249,253,221,61,0,2,32,24,58,
+37,0,74,178,178,74,0,10,29,53,102,43,0,0,0,0,52,125,169,62,66,172,56,18,207,248,210,200,199,79,63,87,12,0,0,0,22,63,23,31,19,0,0,0,0,91,147,37,
+90,102,69,6,0,9,42,1,10,46,89,102,82,37,18,62,111,235,253,239,42,0,0,9,78,76,58,20,0,0,0,4,36,14,1,128,141,39,55,82,13,0,0,0,0,1,107,156,
+22,0,0,0,22,129,157,48,75,67,3,0,13,84,50,0,112,244,248,248,248,243,81,47,229,254,243,72,2,32,24,58,37,0,74,178,178,74,0,10,29,53,102,43,0,0,0,0,
+52,125,169,62,79,237,249,203,18,0,69,198,199,79,63,87,87,12,0,0,0,22,75,33,0,0,0,0,0,0,103,184,114,93,23,0,0,0,0,0,22,91,102,83,10,8,72,55,
+146,206,185,80,101,248,248,250,250,230,66,64,23,0,0,2,7,2,116,130,8,14,34,55,82,13,0,94,248,248,216,251,234,39,0,0,0,22,137,161,22,138,250,248,143,50,0,0,
+24,64,20,0,0,0,68,243,198,146,135,11,0,11,72,44,0,74,178,178,74,0,10,34,41,83,44,58,23,0,0,2,3,29,118,172,161,56,54,208,248,195,80,121,180,169,22,64,
+87,12,0,0,0,22,75,33,0,0,0,0,0,0,103,184,114,93,23,0,0,0,0,0,22,91,102,83,10,8,72,55,146,208,235,251,221,27,9,82,71,1,20,64,23,0,0,2,
+7,2,116,130,8,14,34,55,82,13,0,0,0,0,4,109,154,22,0,0,0,22,137,161,22,69,66,19,82,50,0,81,244,250,248,248,243,81,46,173,171,200,252,239,68,11,72,44,
+0,74,178,178,74,0,10,34,41,83,44,58,23,0,0,2,3,29,118,178,234,249,211,24,0,3,70,121,180,169,22,64,64,87,12,0,3,30,34,60,22,0,0,0,0,17,88,158,
+175,44,61,19,0,0,0,24,92,102,84,38,13,59,52,152,183,145,102,102,65,114,250,250,248,248,230,64,55,5,0,0,2,117,130,8,0,0,14,33,55,82,13,0,105,248,248,219,
+121,156,22,0,3,30,34,128,156,22,138,251,249,90,0,0,0,23,64,18,0,46,175,178,54,2,130,140,21,59,36,30,87,178,178,74,0,10,34,40,88,28,0,23,55,5,0,0,
+0,0,72,193,170,62,210,249,196,78,71,3,71,60,1,0,64,87,12,0,3,30,34,60,22,0,0,0,0,17,88,158,175,44,61,19,0,0,0,24,92,102,84,38,13,59,52,152,
+183,145,107,208,250,223,98,71,2,0,0,23,55,5,0,0,2,117,130,8,0,0,14,33,55,82,13,0,0,0,0,1,111,156,22,0,3,30,34,128,156,22,69,102,48,0,81,243,
+248,249,250,244,81,46,175,176,54,2,191,252,240,111,36,30,87,178,178,74,0,10,34,40,88,28,0,23,55,5,0,0,0,0,84,241,252,213,31,36,11,68,71,3,71,60,1,0,
+0,64,86,16,31,19,0,22,64,22,0,0,18,89,102,69,96,146,42,64,18,0,12,89,102,81,9,17,73,53,138,180,154,30,16,88,102,96,144,248,248,248,248,230,45,0,0,3,
+118,128,8,0,0,0,0,13,33,55,82,30,198,248,248,248,92,112,155,23,36,19,0,22,127,161,88,146,250,248,90,0,0,0,24,56,57,175,176,55,0,0,5,132,158,40,0,76,
+189,184,74,0,10,34,42,88,28,0,0,0,4,0,0,0,0,55,158,69,128,238,249,197,97,71,2,0,0,0,0,0,0,64,86,16,31,19,0,22,64,22,0,0,18,89,102,69,
+96,146,42,64,18,0,12,89,102,81,9,17,73,53,138,180,154,30,16,94,208,251,230,32,0,0,0,0,4,0,0,3,118,128,8,0,0,0,0,13,33,55,82,13,0,0,0,0,
+3,112,155,23,36,19,0,22,127,161,88,83,64,83,243,248,248,248,244,119,57,175,176,55,0,0,5,193,253,241,68,76,189,184,74,0,10,34,42,88,28,0,0,0,4,0,0,0,
+0,69,233,250,227,175,55,14,88,71,2,0,0,0,0,0,0,0,63,98,26,0,0,0,22,64,18,17,89,102,69,4,0,93,145,43,62,28,76,102,80,9,8,59,58,153,181,138,
+21,36,10,26,102,102,67,110,248,248,248,248,230,41,4,119,127,7,0,0,0,0,0,0,13,33,69,216,248,203,105,248,248,92,110,167,36,0,0,0,31,155,173,24,137,250,248,90,
+0,0,0,60,176,176,45,0,0,0,9,66,166,136,78,178,179,100,16,8,33,42,88,28,0,0,0,0,0,0,0,0,55,159,50,18,213,251,235,113,74,35,5,0,0,0,0,0,
+0,0,63,98,26,0,0,0,22,64,18,17,89,102,69,4,0,93,145,43,62,28,76,102,80,9,8,59,58,153,181,138,21,36,10,26,107,208,250,221,31,0,0,0,0,0,4,119,
+127,7,0,0,0,0,0,0,13,33,55,82,13,0,0,0,0,2,110,167,36,0,0,0,31,155,173,24,128,246,248,248,248,243,81,60,176,176,45,0,0,0,9,66,210,252,244,199,
+179,100,16,8,33,42,88,28,0,0,0,0,0,0,0,0,69,234,249,203,46,121,171,104,74,35,5,0,0,0,0,0,0,2,30,70,84,12,0,0,0,18,67,91,102,68,4,0,
+0,0,93,145,42,87,102,78,9,8,62,52,138,183,156,24,0,1,35,80,69,86,102,68,115,248,248,248,248,231,142,126,6,0,0,0,0,0,0,8,0,30,206,250,220,30,0,94,
+248,248,112,117,154,22,0,13,80,61,125,156,22,138,250,248,90,0,46,174,176,82,12,0,0,10,58,81,102,182,192,179,74,2,38,42,40,88,28,0,0,0,0,0,0,0,0,55,
+159,50,18,207,248,201,138,189,56,12,38,6,0,0,0,0,0,2,30,70,84,12,0,0,0,18,67,91,102,68,4,0,0,0,93,145,42,87,102,78,9,8,62,52,138,183,156,24,
+0,1,35,80,69,91,208,250,221,31,0,0,0,4,121,126,6,0,0,0,0,0,0,8,0,13,33,55,82,13,0,0,0,2,34,117,154,22,0,13,80,61,125,188,244,250,250,248,
+243,81,46,174,176,82,12,0,0,10,58,81,102,218,253,250,122,2,38,42,40,88,28,0,0,0,0,0,0,0,0,69,234,249,203,18,0,30,131,189,56,12,38,6,0,0,0,0,
+3,36,17,0,64,87,12,0,0,18,92,102,75,4,0,0,0,0,0,93,145,45,85,24,6,62,52,138,179,138,31,38,3,7,79,86,14,14,89,102,68,115,248,248,248,252,240,47,
+0,0,0,0,0,0,0,29,40,198,248,210,69,82,13,0,96,249,248,91,111,154,32,84,50,0,21,130,157,24,138,250,248,120,175,176,45,24,59,13,8,62,35,12,128,204,205,105,
+1,8,32,58,92,25,0,0,0,0,0,0,0,0,55,159,50,18,207,248,195,75,76,118,172,57,14,38,6,0,0,0,3,36,17,0,64,87,12,0,0,18,92,102,75,4,0,0,
+0,0,0,93,145,45,85,24,6,62,52,138,179,138,31,38,3,7,79,86,14,14,93,208,250,221,31,0,6,122,124,6,0,0,0,0,0,0,0,29,24,0,13,33,55,82,13,0,
+3,36,18,1,111,154,32,84,50,0,95,249,252,249,250,246,83,45,175,176,45,24,59,13,8,62,35,12,128,204,231,251,239,69,32,58,92,25,0,0,0,0,0,0,0,0,69,234,
+249,203,18,0,3,65,76,118,172,57,14,38,6,0,0,0,36,19,0,0,0,64,87,10,18,90,102,74,49,3,0,0,0,0,0,0,95,145,39,57,60,50,138,179,138,18,0,12,
+36,80,68,8,33,13,15,89,102,69,120,248,252,252,248,221,41,0,0,0,0,0,0,19,205,249,203,42,112,71,82,15,33,106,248,248,90,115,185,66,0,0,0,23,124,149,25,134,
+250,253,204,47,0,0,25,59,60,34,0,74,181,202,146,89,46,30,40,84,52,13,0,0,0,0,0,0,0,53,159,50,18,207,248,195,80,70,1,28,125,173,58,14,38,6,0,3,
+36,19,0,0,0,64,87,10,18,90,102,74,49,3,0,0,0,0,0,0,95,145,39,57,60,50,138,179,138,18,0,12,36,80,68,8,33,13,15,93,208,250,221,40,122,116,6,0,
+0,0,0,0,0,0,0,1,33,24,0,25,112,71,82,15,33,18,0,0,0,115,185,66,0,81,243,249,251,252,244,125,83,173,176,47,0,0,25,59,60,34,0,74,181,202,146,174,
+249,241,93,84,52,13,0,0,0,0,0,0,0,67,234,249,203,18,0,3,70,70,1,28,125,173,58,14,38,6,0,3,19,0,0,0,0,0,60,83,88,102,66,4,2,0,0,0,
+0,0,0,0,0,95,147,76,81,143,179,138,18,0,0,7,83,88,7,0,3,36,13,15,89,102,73,187,252,248,248,248,221,36,0,0,0,0,18,198,248,210,40,93,183,150,66,88,
+24,0,94,248,248,143,134,154,22,0,0,0,4,88,145,71,203,253,249,90,0,0,7,65,70,12,74,178,178,81,78,102,94,63,83,26,0,36,19,0,0,0,0,0,44,148,48,18,
+207,248,195,80,71,3,0,0,29,124,173,58,14,36,9,34,19,0,0,0,0,0,60,83,88,102,66,4,2,0,0,0,0,0,0,0,0,95,147,76,81,143,179,138,18,0,0,7,
+83,88,7,0,3,36,13,15,92,208,250,237,141,1,0,0,0,0,0,0,0,0,0,0,1,33,24,93,183,150,66,88,24,0,0,0,12,82,134,154,96,243,248,248,248,247,180,71,
+172,176,48,0,0,0,7,65,70,12,74,178,178,81,78,102,176,250,244,82,0,36,19,0,0,0,0,0,59,231,249,203,18,0,3,70,71,3,0,0,29,124,173,58,14,36,9,34,
+0,0,0,0,0,0,22,101,102,67,0,0,0,0,0,0,0,0,0,0,0,10,128,150,151,197,144,18,0,0,9,82,68,16,36,6,0,3,36,13,15,92,176,160,131,248,248,248,
+248,221,31,0,0,18,198,248,203,19,33,46,140,183,159,65,75,13,0,102,250,249,91,111,156,22,0,0,0,0,113,209,173,145,250,248,90,10,58,33,28,118,182,178,74,0,18,88,
+102,102,58,0,0,3,36,19,0,0,0,53,148,40,18,207,248,195,80,70,3,0,0,0,0,29,118,168,59,14,58,21,0,0,0,0,0,0,22,101,102,67,0,0,0,0,0,0,
+0,0,0,0,0,10,128,150,151,197,144,18,0,0,9,82,68,16,36,6,0,3,36,13,15,95,230,253,222,36,0,0,0,0,0,0,0,0,0,0,0,1,33,46,140,183,159,65,
+75,13,0,13,84,49,2,157,250,249,248,248,243,81,113,209,173,81,64,2,0,10,58,33,28,118,182,178,74,0,18,88,102,180,250,239,63,3,36,19,0,0,0,68,231,249,203,18,
+0,3,70,70,3,0,0,0,0,29,118,168,59,14,58,21,6,0,0,0,0,22,91,102,87,80,11,0,0,0,0,5,1,0,0,0,10,62,48,162,179,152,73,12,0,9,82,71,
+3,0,14,38,7,0,3,36,18,131,170,106,70,128,248,248,248,248,221,27,18,198,248,203,18,0,1,32,41,153,187,147,62,78,26,80,126,248,248,92,112,156,22,0,0,45,169,190,
+154,23,138,250,248,128,35,0,74,188,197,82,0,10,29,51,102,102,88,44,4,0,3,36,19,0,55,159,48,18,207,248,195,80,69,1,0,0,0,0,0,0,9,73,168,82,28,34,
+6,0,0,0,0,22,91,102,87,80,11,0,0,0,0,5,1,0,0,0,10,62,48,162,179,152,73,12,0,9,82,71,3,0,14,38,7,0,3,36,18,131,171,206,250,222,36,0,
+0,0,0,0,0,0,0,0,0,0,1,32,41,153,187,147,62,78,26,80,50,0,81,243,251,252,249,243,81,45,169,190,154,23,69,67,15,59,35,0,74,188,197,82,0,10,29,51,
+102,102,173,249,239,63,3,36,19,0,69,234,249,203,18,0,3,70,69,1,0,0,0,0,0,0,9,73,168,82,28,34,38,6,0,0,23,92,102,62,7,62,87,12,0,0,19,32,
+2,0,0,10,62,52,138,179,159,134,46,59,20,79,71,2,0,0,0,14,38,6,0,8,142,131,20,88,102,70,132,248,248,248,248,228,206,248,203,18,0,0,0,1,54,54,142,182,
+144,69,102,54,0,94,248,248,92,112,156,20,43,175,175,62,85,148,23,138,251,249,90,53,179,178,97,60,20,30,38,85,36,76,102,90,44,2,0,3,36,70,159,50,18,207,248,196,
+80,68,3,41,14,0,0,0,0,0,0,1,90,172,60,15,38,6,0,0,23,92,102,62,7,62,87,12,0,0,19,32,2,0,0,10,62,52,138,179,159,134,46,59,20,79,71,2,
+0,0,0,14,38,6,0,8,142,131,20,91,205,250,222,36,0,0,2,43,14,0,0,0,0,0,0,1,54,54,142,182,144,69,102,54,0,81,243,248,248,251,250,95,43,175,175,62,
+85,148,23,70,96,36,0,53,179,178,97,60,20,30,38,85,36,76,102,177,249,239,63,3,36,83,234,249,203,18,0,6,70,68,3,41,14,0,0,0,0,0,0,1,90,172,60,15,
+14,38,3,21,96,102,63,2,0,0,64,87,11,15,36,4,0,0,10,62,52,138,179,139,25,92,143,51,99,72,1,0,0,0,0,0,14,38,11,123,126,41,13,15,88,102,70,138,
+248,248,249,249,248,208,18,0,0,0,2,34,20,29,42,145,186,174,84,76,12,0,94,248,248,92,105,160,174,173,62,0,0,88,152,74,146,250,248,100,124,79,0,37,68,44,85,30,
+0,10,79,102,90,43,2,0,57,173,65,18,207,248,194,57,68,2,47,51,6,0,0,0,0,0,2,34,20,69,168,60,14,38,3,21,96,102,63,2,0,0,64,87,11,15,36,4,
+0,0,10,62,52,138,179,139,25,92,143,51,99,72,1,0,0,0,0,0,14,38,11,123,126,41,13,15,91,205,250,222,41,3,50,50,6,0,0,0,0,0,2,34,20,29,42,145,
+186,174,84,76,89,243,248,248,248,243,152,160,174,173,62,0,0,88,152,74,82,66,2,15,124,79,0,37,68,44,85,30,0,10,79,102,177,249,239,58,71,237,249,203,18,0,0,46,
+68,2,47,51,6,0,0,0,0,0,2,34,20,69,168,60,61,14,35,22,87,65,2,0,0,0,0,62,88,40,0,0,0,10,62,52,138,179,138,22,36,7,102,176,93,56,10,0,
+0,0,0,0,0,19,143,127,6,3,36,9,16,88,102,70,140,249,249,248,248,219,27,0,0,2,35,21,0,1,30,48,178,195,142,63,82,13,0,94,248,248,118,193,209,76,0,0,
+0,10,129,163,25,138,250,248,111,8,8,29,57,102,38,0,0,0,10,79,102,90,44,57,159,52,51,210,248,194,14,6,3,48,50,2,0,0,0,0,0,2,35,21,0,1,71,167,
+61,14,35,22,87,65,2,0,0,0,0,62,88,40,0,0,0,10,62,52,138,179,138,22,36,7,102,176,93,56,10,0,0,0,0,0,0,19,143,127,6,3,36,9,16,91,205,250,
+223,81,50,2,0,0,0,0,0,2,35,21,0,1,30,48,178,195,142,124,247,248,248,248,243,81,43,193,209,76,0,0,0,10,129,163,25,69,69,4,33,8,8,29,57,102,38,0,
+0,0,10,79,102,177,249,244,238,249,210,32,0,0,0,6,3,48,50,2,0,0,0,0,0,2,35,21,0,1,71,167,168,62,14,35,15,2,0,0,0,0,0,15,78,84,11,0,
+10,62,52,138,179,138,18,0,8,37,81,140,144,50,58,4,0,0,0,0,5,123,131,43,6,0,2,7,0,16,86,102,100,232,248,248,248,248,212,27,2,35,20,0,0,0,12,86,
+74,147,183,143,63,82,13,0,94,249,253,200,133,151,22,0,10,62,37,88,148,24,138,250,248,115,36,37,83,56,51,4,0,0,0,10,79,102,126,175,52,18,207,248,194,14,0,1,
+49,50,2,0,0,0,0,0,2,35,20,0,0,0,1,71,168,62,14,35,15,2,0,0,0,0,0,15,78,84,11,0,10,62,52,138,179,138,18,0,8,37,81,140,144,50,58,4,
+0,0,0,0,5,123,131,43,6,0,2,7,0,16,90,202,250,227,42,0,0,0,0,0,2,35,20,0,0,0,12,86,74,147,205,250,250,250,248,243,81,46,174,170,133,151,22,0,
+10,62,37,88,148,24,70,68,9,38,36,37,83,56,51,4,0,0,0,10,79,102,198,252,249,214,20,7,0,0,0,1,49,50,2,0,0,0,0,0,2,35,20,0,0,0,1,71,
+70,167,62,14,36,5,0,0,0,0,19,34,4,63,84,23,58,52,138,179,138,18,0,0,8,81,88,11,99,142,31,2,0,0,0,5,123,124,6,15,38,6,0,0,0,0,18,109,
+221,250,229,248,248,248,248,207,59,20,0,0,0,13,84,48,28,45,148,183,141,63,82,13,44,204,253,250,93,110,154,30,62,37,0,0,88,148,24,137,250,249,126,88,28,0,16,2,
+0,0,0,0,10,117,197,123,58,207,248,194,14,0,2,50,50,2,0,0,0,0,0,2,36,20,0,0,0,0,0,1,70,167,62,14,36,5,0,0,0,0,19,34,4,63,84,23,
+58,52,138,179,138,18,0,0,8,81,88,11,99,142,31,2,0,0,0,5,123,124,6,15,38,6,0,0,0,0,18,101,202,250,222,41,0,0,0,2,36,20,0,0,0,13,84,48,
+28,111,250,253,252,250,247,90,44,175,176,60,4,110,154,30,62,37,0,0,88,148,24,68,69,36,56,88,28,0,16,2,0,0,0,0,10,127,242,251,249,240,58,0,0,0,2,50,
+50,2,0,0,0,0,0,2,36,20,0,0,0,0,0,1,1,70,168,63,14,38,6,0,0,19,36,3,0,0,64,102,58,138,179,138,18,0,0,9,82,69,13,36,10,99,141,17,
+0,0,5,123,124,6,0,0,15,38,6,0,0,2,60,210,250,224,84,151,248,248,248,249,211,22,0,0,13,84,48,0,0,33,46,150,183,140,57,89,174,176,133,248,248,91,112,175,
+55,0,0,0,0,88,148,32,146,250,250,125,7,0,0,0,0,0,0,0,55,163,113,113,224,249,194,14,0,2,50,50,2,0,0,0,0,0,3,36,20,0,0,0,0,0,0,0,
+1,70,168,63,14,38,6,0,0,19,36,3,0,0,64,102,58,138,179,138,18,0,0,9,82,69,13,36,10,99,141,17,0,0,5,123,124,6,0,0,15,38,6,0,0,2,45,54,
+88,202,250,227,41,0,3,36,20,0,0,0,13,84,48,0,81,245,249,252,253,250,120,89,174,176,62,0,0,1,112,175,55,0,0,0,0,88,148,32,83,77,80,54,7,0,0,0,
+0,0,0,0,69,235,251,224,183,249,239,58,0,2,50,50,2,0,0,0,0,0,3,36,20,0,0,0,0,0,0,0,0,1,69,166,63,14,38,4,17,36,3,0,0,9,54,82,
+174,183,138,18,0,0,8,82,71,3,0,10,39,11,100,142,14,1,123,124,6,0,0,0,0,15,38,4,1,64,209,248,206,98,102,72,151,248,249,248,248,207,18,13,84,56,9,0,
+0,1,33,47,151,182,151,170,174,66,0,94,248,248,129,112,148,22,0,0,0,0,94,161,58,158,250,248,114,11,0,0,0,0,0,55,159,50,27,222,251,216,55,1,1,50,50,2,
+0,0,0,0,0,3,35,19,0,0,0,0,0,6,13,0,0,1,69,166,63,14,38,4,17,36,3,0,0,9,54,82,174,183,138,18,0,0,8,82,71,3,0,10,39,11,100,142,
+14,1,123,124,6,0,0,0,0,15,38,4,1,50,50,0,15,90,202,250,226,41,35,19,0,0,0,13,84,56,9,81,243,248,249,249,250,205,151,170,174,66,0,0,0,9,60,112,
+148,22,0,0,0,0,94,161,58,102,75,8,36,11,0,0,0,0,0,69,234,249,205,91,102,177,249,239,55,50,50,2,0,0,0,0,0,3,35,19,0,0,0,0,0,6,13,0,
+0,0,1,69,166,65,11,47,36,2,0,0,10,62,52,138,194,177,30,0,0,9,81,71,2,0,0,0,10,39,11,98,130,119,119,6,0,0,0,0,0,0,14,33,63,209,248,203,
+18,16,86,102,72,168,248,248,248,248,209,96,48,9,60,20,0,0,1,32,42,162,209,201,87,75,12,0,101,250,249,90,88,148,22,0,0,10,30,113,184,50,135,250,248,114,11,0,
+0,0,55,159,50,18,207,248,213,110,90,41,45,49,2,0,0,0,0,0,3,36,18,0,0,0,0,0,0,14,62,20,0,0,1,69,166,65,11,47,36,2,0,0,10,62,52,138,
+194,177,30,0,0,9,81,71,2,0,0,0,10,39,11,98,130,119,119,6,0,0,0,0,0,0,14,33,48,49,2,0,0,16,89,199,250,230,54,0,0,0,13,84,48,9,122,244,
+248,248,248,245,111,162,209,201,87,75,12,0,11,62,37,0,88,148,22,0,0,10,30,113,184,50,64,67,9,37,11,0,0,0,69,234,249,203,18,10,79,102,181,249,242,92,2,0,
+0,0,0,0,3,36,18,0,0,0,0,0,0,14,62,20,20,0,0,1,69,165,75,41,36,5,0,7,60,52,138,179,138,65,84,11,7,82,71,2,0,0,0,0,0,9,39,12,
+159,179,20,0,0,0,0,0,0,0,0,68,212,248,203,18,0,0,14,85,102,78,160,248,248,248,250,217,18,0,22,60,16,0,0,0,61,175,207,197,131,59,81,20,56,118,248,248,
+90,88,148,22,10,33,38,88,108,148,24,138,250,248,114,11,0,55,159,50,18,207,248,194,24,78,102,96,65,3,0,0,0,0,0,3,36,19,0,0,0,0,0,0,0,0,23,64,
+20,0,0,1,69,165,75,41,36,5,0,7,60,52,138,179,138,65,84,11,7,82,71,2,0,0,0,0,0,9,39,12,159,179,20,0,0,0,0,0,0,0,0,54,65,6,0,0,
+0,0,14,88,199,250,226,41,0,13,84,50,0,81,244,250,248,248,243,81,61,175,207,197,131,59,81,20,56,37,0,0,0,88,148,22,10,33,38,88,108,148,24,70,67,9,37,11,
+0,69,234,249,203,18,0,0,10,78,102,183,250,239,54,0,0,0,0,3,36,19,0,0,0,0,0,0,0,0,23,64,64,19,0,0,0,76,176,66,13,38,6,4,38,138,179,138,
+18,0,48,79,78,68,2,0,0,0,0,0,0,0,14,141,120,96,137,15,0,0,0,0,0,2,64,209,248,210,21,0,0,0,0,42,88,102,72,160,248,250,249,248,203,18,0,19,
+59,18,0,45,174,172,95,154,183,134,58,87,33,0,94,248,248,90,88,152,53,38,88,30,0,88,148,24,138,250,248,114,64,159,50,18,207,248,194,14,0,12,93,102,88,42,2,0,
+0,0,3,36,19,0,0,0,0,0,0,0,90,122,0,23,64,19,0,0,0,76,176,66,13,38,6,4,38,138,179,138,18,0,48,79,78,68,2,0,0,0,0,0,0,0,14,141,
+120,96,137,15,0,0,0,0,0,2,50,48,16,35,4,0,0,0,0,42,91,199,250,230,50,84,50,0,81,243,248,248,250,244,81,45,174,172,95,154,183,134,58,87,33,0,0,0,
+0,0,88,152,53,38,88,30,0,88,148,24,70,67,9,37,77,234,249,203,18,0,0,0,0,12,93,102,180,249,239,54,0,0,3,36,19,0,0,0,0,0,0,0,0,0,0,23,
+24,64,18,0,18,33,65,166,66,14,38,23,138,179,138,18,0,0,6,94,102,15,0,0,0,0,0,0,0,5,123,129,42,11,102,140,15,0,0,0,2,64,209,248,203,51,74,6,
+0,3,36,15,14,86,102,77,188,249,248,248,248,198,18,0,23,56,57,175,176,60,27,52,157,183,132,58,80,13,0,94,248,248,96,110,164,102,30,0,0,0,88,148,24,138,250,249,
+201,59,18,207,248,194,14,0,2,46,51,77,102,91,43,2,0,3,36,19,0,0,0,0,0,0,0,90,248,248,45,0,24,64,18,0,18,33,65,166,66,14,38,23,138,179,138,18,
+0,0,6,94,102,15,0,0,0,0,0,0,0,5,123,129,42,11,102,140,15,0,0,0,2,49,50,2,0,35,74,6,0,3,36,15,14,89,199,250,238,81,0,81,243,248,248,248,
+244,119,57,175,176,60,27,52,157,183,132,58,80,13,0,0,0,0,10,110,164,102,30,0,0,0,88,148,24,70,68,75,237,249,203,18,0,0,0,0,2,46,51,77,102,181,249,239,
+54,3,36,19,0,0,0,0,0,0,0,0,0,0,0,0,0,25,60,31,32,2,0,67,166,62,29,156,181,138,18,0,0,9,82,66,48,82,13,0,0,0,0,0,5,123,124,6,
+9,39,11,102,140,15,0,2,66,209,248,203,18,6,71,76,10,33,19,0,0,12,84,102,91,164,248,248,248,248,194,18,0,60,176,176,60,0,0,33,53,157,183,131,58,82,13,0,
+94,248,249,114,146,161,22,0,0,0,0,88,148,21,162,253,249,124,209,248,194,14,0,2,50,50,25,121,88,102,91,42,5,34,19,0,0,0,0,0,0,0,90,248,248,94,0,0,
+0,25,60,31,32,2,0,67,166,62,29,156,181,138,18,0,0,9,82,66,48,82,13,0,0,0,0,0,5,123,124,6,9,39,11,102,140,15,0,2,52,50,1,0,0,6,71,76,
+10,33,19,0,0,12,87,197,250,230,108,243,248,248,248,243,81,60,176,176,60,0,0,33,53,157,183,131,58,82,13,0,0,10,34,38,146,161,22,0,0,0,0,88,148,21,116,240,
+249,211,28,0,0,0,0,2,50,50,25,121,88,102,181,249,239,81,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,75,18,0,0,1,62,154,150,183,156,24,0,0,
+9,82,71,2,0,50,84,13,0,0,0,5,123,124,6,0,0,9,39,12,102,140,17,61,216,250,203,18,0,0,2,70,90,19,0,0,0,10,80,92,102,77,169,248,248,248,248,194,
+56,174,176,87,15,0,0,1,33,54,159,183,130,57,82,12,7,115,249,250,110,88,148,22,0,0,0,0,81,152,150,158,250,248,249,197,14,0,2,50,50,24,148,91,13,79,102,90,
+59,17,0,0,0,0,0,0,0,90,248,248,94,0,0,0,0,0,36,75,18,0,0,1,62,154,150,183,156,24,0,0,9,82,71,2,0,50,84,13,0,0,0,5,123,124,6,0,
+0,9,39,12,102,140,17,46,82,67,2,0,0,0,2,70,90,19,0,0,0,10,80,95,197,250,248,248,248,248,243,81,45,174,176,87,15,0,0,1,33,54,159,183,130,57,82,12,
+7,34,38,88,30,88,148,22,0,0,0,0,81,160,231,251,217,26,37,12,0,0,2,50,50,24,148,91,13,79,102,183,250,235,54,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,18,31,27,62,16,0,0,14,156,186,152,26,38,4,8,82,71,2,0,0,0,51,84,13,0,5,123,124,6,0,0,0,0,9,39,10,103,168,212,248,217,83,3,0,0,2,32,
+76,74,5,0,13,84,47,15,85,102,77,169,248,248,248,249,235,179,59,24,62,16,0,0,1,33,56,160,183,128,56,83,40,36,150,249,248,90,88,148,22,0,0,0,48,174,151,35,
+232,250,248,122,10,1,50,50,24,148,88,0,0,10,78,102,92,40,2,0,0,0,0,0,90,248,248,94,0,0,0,0,0,18,31,27,62,16,0,0,14,156,186,152,26,38,4,8,
+82,71,2,0,0,0,51,84,13,0,5,123,124,6,0,0,0,0,9,39,10,103,162,61,9,68,70,3,0,0,2,32,76,74,5,0,13,84,47,15,141,250,250,248,248,243,81,42,
+172,176,59,24,62,16,0,0,1,33,56,160,183,128,56,83,40,36,88,30,0,0,88,148,22,0,0,0,63,237,252,207,83,68,10,38,10,1,50,50,24,148,88,0,0,10,78,102,
+184,249,234,54,0,0,0,0,0,0,0,0,0,0,0,0,19,36,3,0,27,64,16,18,138,179,156,154,64,12,37,80,70,2,0,0,6,32,0,49,84,17,123,124,6,0,0,0,
+0,0,0,8,34,66,227,252,206,21,70,70,2,1,36,17,1,70,73,21,82,50,0,0,14,84,102,78,173,248,249,253,253,209,9,0,27,64,16,0,0,1,33,58,161,182,131,76,
+86,83,28,94,248,249,93,88,148,22,0,55,157,46,93,235,249,221,248,248,112,52,48,24,148,88,0,0,0,0,38,83,102,91,42,2,0,0,0,90,248,248,94,0,0,0,0,0,
+19,36,3,0,27,64,16,18,138,179,156,154,64,12,37,80,70,2,0,0,6,32,0,49,84,17,123,124,6,0,0,0,0,0,0,8,34,52,132,140,15,3,70,70,2,1,36,17,
+1,70,73,21,82,50,0,81,244,250,251,250,248,111,46,172,173,62,0,0,27,64,16,0,0,1,33,58,161,182,131,76,86,83,28,0,6,33,4,88,148,22,0,69,233,249,219,156,
+26,46,4,6,34,52,48,24,148,88,0,0,0,0,38,83,102,184,249,234,54,0,0,0,0,0,0,0,0,0,0,0,36,3,0,0,0,28,77,146,179,138,15,61,165,74,82,88,
+6,0,0,6,38,15,0,0,55,167,130,6,0,0,0,0,0,0,0,1,64,212,248,224,147,14,3,69,68,33,18,0,0,1,70,102,49,0,0,0,0,14,84,102,75,191,253,253,
+250,248,194,9,0,28,63,18,0,0,1,33,57,166,191,97,95,86,8,3,118,248,248,90,88,136,69,151,50,18,207,250,229,35,94,248,249,132,32,148,88,0,0,0,3,36,16,9,
+79,102,91,42,2,0,90,248,248,94,0,0,0,0,0,18,36,3,0,0,0,28,77,146,179,138,15,61,165,74,82,88,6,0,0,6,38,15,0,0,55,167,130,6,0,0,0,0,
+0,0,0,1,49,65,11,105,139,14,3,69,68,33,18,0,0,1,70,102,49,0,81,243,248,248,250,250,250,235,189,174,59,0,0,0,0,28,63,18,0,0,1,33,57,166,191,97,
+95,86,8,3,38,15,0,0,88,136,82,232,249,203,18,88,148,22,0,1,49,65,32,148,88,0,0,0,3,36,16,9,79,102,184,249,234,54,0,0,0,0,0,0,0,0,0,18,
+3,0,0,0,0,18,151,188,138,18,0,1,63,186,117,15,33,4,4,35,14,0,0,5,123,149,82,11,0,0,0,0,0,0,3,59,209,248,210,27,105,138,14,3,81,68,2,0,
+0,10,70,81,63,5,0,0,0,0,13,80,99,175,230,249,248,248,248,190,9,0,29,32,0,0,0,1,33,80,103,85,50,49,77,40,12,94,248,248,90,114,179,65,18,207,248,194,
+98,148,24,122,249,249,195,94,0,0,0,2,33,18,0,0,9,75,96,85,39,92,248,248,94,0,0,0,0,0,15,35,3,0,0,0,0,18,151,188,138,18,0,1,63,186,117,15,
+33,4,4,35,14,0,0,5,123,149,82,11,0,0,0,0,0,0,3,44,47,10,35,9,105,138,14,3,81,68,2,0,0,10,70,81,63,84,243,248,248,248,244,136,196,253,247,93,
+0,0,0,0,0,0,29,32,0,0,0,1,33,80,103,85,50,49,77,40,12,0,0,0,0,124,238,250,203,18,0,0,88,148,24,44,47,31,163,94,0,0,0,2,33,18,0,0,
+9,75,96,181,249,234,54,0,0,0,0,0,0,0,15,35,0,0,0,0,18,138,179,138,18,0,0,9,77,100,164,71,10,36,36,10,0,0,5,123,124,6,43,81,12,0,0,0,
+0,3,63,208,248,203,24,37,11,105,140,46,17,60,67,0,11,81,43,2,62,74,5,0,0,0,0,51,173,173,95,178,248,248,248,248,185,9,0,0,0,0,0,9,30,52,90,22,
+7,35,62,79,12,0,94,248,249,183,112,146,211,248,194,14,0,90,168,60,108,252,250,114,11,0,3,35,16,0,0,0,0,9,74,96,145,249,248,94,0,0,0,0,0,18,34,2,
+0,0,0,0,18,138,179,138,18,0,0,9,77,100,164,71,10,36,36,10,0,0,5,123,124,6,43,81,12,0,0,0,0,3,48,44,3,0,6,37,11,105,140,46,17,60,67,0,
+11,81,43,2,124,246,248,248,248,243,81,51,173,224,250,231,50,0,0,0,0,0,0,0,0,0,0,9,30,52,90,22,7,35,62,79,12,0,0,0,68,230,251,231,39,0,0,0,
+0,90,168,60,21,148,92,37,11,0,3,35,16,0,0,0,0,9,74,96,184,249,234,54,0,0,0,0,0,18,34,2,0,0,0,18,138,179,138,18,0,0,9,82,69,6,62,164,
+73,42,43,4,0,5,123,124,6,0,0,49,84,12,0,0,1,62,209,248,203,18,0,6,38,14,125,147,13,3,66,69,77,48,0,0,3,70,78,8,0,0,46,175,176,98,102,80,
+182,248,248,248,130,0,0,0,0,0,10,34,38,84,52,17,4,42,40,54,82,13,0,129,252,249,102,224,252,200,14,0,1,47,117,141,140,147,248,248,114,14,33,19,0,0,0,0,
+0,0,10,141,251,250,122,2,0,0,0,0,19,36,3,0,0,0,0,18,138,179,138,18,0,0,9,82,69,6,62,164,73,42,43,4,0,5,123,124,6,0,0,49,84,12,0,0,
+1,47,50,2,0,0,0,6,38,14,125,147,13,3,66,69,77,48,0,81,243,250,250,248,243,81,46,175,176,98,197,250,230,50,0,0,0,0,0,0,0,0,10,34,38,84,52,17,
+4,42,40,54,82,13,0,69,234,249,203,100,148,22,0,0,1,47,117,141,140,83,0,8,37,14,33,19,0,0,0,0,0,0,10,79,102,187,249,230,54,0,0,0,19,36,3,0,
+0,0,20,138,179,138,18,0,0,9,82,71,3,0,0,64,174,78,12,38,11,123,124,6,0,0,0,0,58,86,12,0,19,203,248,203,18,0,24,3,6,58,26,105,140,25,15,102,
+87,0,0,0,0,2,70,64,3,45,175,176,60,17,82,96,77,187,248,126,0,0,0,0,0,10,34,38,88,30,0,33,49,9,10,33,55,82,65,159,126,248,248,248,217,155,22,0,
+1,22,22,168,168,18,94,248,248,128,26,0,0,0,0,0,0,0,90,248,250,158,90,43,2,0,0,19,36,3,0,0,0,0,20,138,179,138,18,0,0,9,82,71,3,0,0,64,
+174,78,12,38,11,123,124,6,0,0,0,0,58,86,12,0,1,22,4,0,0,0,24,3,6,58,26,105,140,25,15,102,87,0,81,243,248,248,250,246,83,45,175,176,60,17,82,192,
+250,231,50,0,0,0,0,0,0,10,34,38,88,30,0,33,49,9,10,33,55,82,79,234,249,203,18,0,95,149,22,0,1,22,22,168,168,18,0,0,8,58,26,0,0,0,0,0,
+0,0,0,10,79,102,187,249,230,54,0,19,36,3,0,0,52,14,131,179,138,18,0,0,9,82,71,2,0,0,6,34,69,163,69,18,141,127,6,0,0,0,0,0,11,78,84,29,
+198,248,203,18,0,1,62,69,31,21,34,12,103,156,97,48,64,69,3,0,0,0,0,16,66,174,176,62,0,0,11,78,96,83,95,0,0,0,0,0,10,34,38,88,30,0,6,34,
+39,21,0,13,33,98,190,61,18,223,248,249,109,111,149,23,0,23,147,81,81,147,22,96,249,249,112,12,0,0,0,0,0,90,248,248,100,79,102,90,43,1,18,36,3,0,0,11,
+52,14,131,179,138,18,0,0,9,82,71,2,0,0,6,34,69,163,69,18,141,127,6,0,0,0,0,0,11,78,84,12,0,0,0,0,0,1,62,69,31,21,34,12,103,156,97,48,
+64,128,243,248,248,248,243,92,66,174,176,62,0,0,11,78,192,250,231,50,0,0,0,0,10,34,38,88,30,0,6,34,39,21,0,13,33,109,241,249,203,18,16,40,17,111,149,23,
+0,23,147,81,81,147,22,3,34,23,34,12,0,0,0,0,0,0,0,0,10,79,102,187,249,230,68,36,3,0,0,11,38,3,64,131,18,0,0,9,82,71,2,0,0,6,38,13,
+0,61,151,140,122,42,6,0,0,0,0,0,0,13,90,217,248,203,18,0,0,0,5,86,76,0,7,34,24,142,169,22,2,70,70,3,0,0,0,43,175,176,63,0,0,0,7,59,
+83,102,76,8,0,0,0,10,34,38,88,30,0,6,38,13,0,33,24,0,65,171,94,94,209,248,228,249,248,102,108,152,54,141,88,0,0,88,149,55,106,248,248,115,13,0,0,0,
+90,248,248,94,0,10,79,102,89,50,32,2,0,0,10,62,38,3,64,131,18,0,0,9,82,71,2,0,0,6,38,13,0,61,151,140,122,42,6,0,0,0,0,0,0,13,78,84,
+12,0,0,0,0,0,5,86,76,0,7,34,24,142,169,22,83,246,250,248,248,243,81,43,175,176,63,0,0,0,7,59,83,194,250,231,54,0,0,10,34,38,88,30,0,6,38,13,
+0,33,24,0,78,237,250,220,28,11,85,50,0,18,108,152,54,141,88,0,0,88,149,55,19,0,8,39,13,0,0,0,0,0,0,0,0,10,79,102,186,249,233,56,0,0,10,62,
+0,0,0,1,0,0,9,82,71,2,0,0,6,38,14,0,0,1,142,186,72,14,35,6,0,0,0,0,0,18,201,250,220,29,0,0,0,3,34,19,67,70,0,16,99,56,88,148,
+22,3,70,71,6,0,46,175,176,66,31,6,0,10,62,35,13,82,102,77,9,0,10,33,38,88,30,0,6,38,14,0,0,1,33,73,159,60,46,217,250,213,58,94,248,248,118,157,
+186,95,0,0,0,3,112,156,22,94,248,248,115,13,0,90,248,248,94,4,6,0,10,77,109,146,49,2,0,10,62,37,0,0,0,1,0,0,9,82,71,2,0,0,6,38,14,0,
+0,1,142,186,72,14,35,6,0,0,0,0,0,0,13,78,84,12,0,0,0,3,34,19,67,70,0,16,99,56,88,182,244,248,250,250,243,81,46,175,176,66,31,6,0,10,62,35,
+13,82,194,250,231,54,10,33,38,88,30,0,6,38,14,0,0,1,33,86,234,249,209,67,79,80,47,0,0,0,43,157,186,95,0,0,0,3,112,156,22,0,0,7,39,13,0,0,
+0,0,0,4,6,0,10,77,109,210,249,230,54,10,62,37,0,0,0,0,0,9,82,71,2,0,0,6,38,14,0,0,5,123,116,69,161,74,13,38,6,0,0,0,18,198,248,206,
+90,84,12,0,3,36,19,0,3,66,69,75,51,32,12,88,148,22,3,70,75,51,175,176,62,0,13,34,16,60,37,0,79,128,92,102,76,19,30,38,88,30,0,6,38,14,0,0,
+0,0,56,171,69,22,209,249,216,103,10,0,94,249,251,191,143,137,22,0,3,36,19,88,148,22,94,248,248,115,98,248,248,94,0,7,38,10,0,25,95,176,169,45,14,60,37,0,
+0,0,0,0,0,9,82,71,2,0,0,6,38,14,0,0,5,123,116,69,161,74,13,38,6,0,0,0,0,0,0,13,78,84,12,0,3,36,19,0,3,66,69,75,51,32,89,247,
+252,249,248,246,132,51,175,176,62,0,13,34,16,60,37,0,79,128,92,191,250,232,77,38,88,30,0,6,38,14,0,0,0,0,69,237,249,203,26,41,94,94,10,0,0,30,101,156,
+143,137,22,0,3,36,19,88,148,22,0,0,7,39,13,0,0,0,0,7,38,10,0,25,95,176,221,249,231,98,37,0,0,0,0,0,9,82,71,2,0,0,6,38,14,0,0,5,
+123,124,6,1,61,165,74,14,38,6,0,18,198,248,203,18,13,78,84,16,32,19,0,0,0,15,102,87,0,5,38,13,88,148,23,0,85,176,176,60,0,0,0,20,73,38,0,74,
+178,179,63,80,102,87,44,84,30,0,6,38,14,0,0,0,0,55,159,51,52,211,248,214,77,53,81,11,27,160,252,250,102,111,149,24,36,19,0,0,88,148,22,94,248,248,249,248,
+94,0,0,0,10,35,24,29,15,82,175,168,74,35,0,0,0,0,0,0,9,82,71,2,0,0,6,38,14,0,0,5,123,124,6,1,61,165,74,14,38,6,0,0,0,0,0,0,
+13,78,84,16,32,19,0,0,0,15,102,87,0,85,245,248,250,252,244,81,85,176,176,60,0,0,0,20,73,38,0,74,178,179,63,80,191,250,234,120,30,0,6,38,14,0,0,0,
+0,69,234,249,210,36,11,85,67,53,81,11,27,105,161,87,19,111,149,24,36,19,0,0,88,148,22,0,0,7,38,13,0,0,0,0,10,35,24,29,15,82,175,220,250,234,50,0,
+0,0,0,9,82,71,2,0,0,6,38,14,0,0,5,123,124,6,0,0,0,60,159,75,14,38,23,198,249,203,18,0,0,12,75,96,27,0,0,0,13,82,48,64,69,2,6,39,
+14,88,145,69,168,176,75,7,0,0,10,59,43,32,78,178,178,74,0,20,90,102,101,36,0,6,38,14,0,0,0,0,55,159,50,22,207,249,216,59,11,32,52,84,103,160,150,248,
+248,101,110,162,38,0,0,0,0,88,148,22,150,248,248,166,12,0,0,0,0,28,57,10,0,8,83,175,170,45,2,0,0,0,0,9,82,71,2,0,0,6,38,14,0,0,5,123,
+124,6,0,0,0,60,159,75,14,38,5,0,22,2,0,0,0,12,75,96,27,0,0,0,13,82,48,64,128,243,248,249,248,247,180,69,168,176,75,7,0,0,10,59,43,32,78,178,
+178,74,0,20,90,191,251,234,54,6,38,14,0,0,0,0,69,234,249,203,18,39,90,47,11,32,52,84,103,160,88,0,0,18,110,162,38,0,0,0,0,88,148,22,0,0,7,38,
+12,0,0,0,0,28,57,10,0,8,83,175,221,249,230,50,122,0,9,82,71,2,0,0,6,38,14,0,0,5,123,126,14,0,0,0,0,0,33,154,76,31,205,249,214,22,0,0,
+0,1,38,81,82,12,0,13,84,50,0,2,70,70,2,6,38,11,112,209,175,52,9,37,8,9,62,37,0,84,190,180,74,0,10,29,46,102,102,73,16,34,14,0,0,0,0,58,
+162,50,22,207,248,214,62,0,0,10,50,113,189,96,0,94,248,248,119,118,148,22,0,0,0,0,88,186,249,248,248,248,116,12,0,0,24,30,11,38,8,6,60,91,175,169,47,2,
+0,0,9,82,71,2,0,0,6,38,14,0,0,5,123,126,14,0,0,0,0,0,33,154,76,14,32,44,53,4,0,0,0,1,38,81,82,12,0,13,84,50,0,83,246,250,248,248,
+245,88,112,209,175,52,9,37,8,9,62,37,0,84,190,180,74,0,10,29,46,102,191,250,235,81,14,0,0,0,0,72,235,249,203,18,12,83,50,0,0,10,50,113,189,96,0,0,
+0,1,45,118,148,22,0,0,0,0,88,148,22,0,0,12,41,12,0,0,24,30,11,38,8,6,60,91,175,221,249,230,248,95,82,70,2,0,0,6,38,14,0,0,5,123,124,21,
+61,15,0,36,72,9,0,30,161,216,249,217,27,0,0,0,3,36,15,10,78,81,26,80,50,0,0,0,3,70,70,1,2,66,168,190,160,20,0,8,38,61,35,0,74,178,182,100,
+2,9,33,38,84,39,76,102,90,20,0,0,0,0,55,165,99,36,207,248,214,62,0,0,0,24,111,178,124,81,13,0,96,249,248,100,111,149,22,0,0,0,90,250,252,105,94,249,
+250,115,10,21,33,1,0,8,38,61,32,11,82,175,169,47,0,8,82,70,2,0,0,6,38,14,0,0,5,123,124,21,61,15,0,36,72,9,0,30,154,77,49,69,10,0,0,0,
+3,36,15,10,78,81,26,80,50,0,81,243,248,250,250,243,82,66,168,190,160,20,0,8,38,61,35,0,74,178,182,100,2,9,33,38,84,39,76,191,250,236,54,0,0,0,69,235,
+251,206,18,13,83,50,0,0,0,24,111,178,124,81,13,0,3,36,16,16,111,149,22,0,0,0,0,86,141,16,0,43,76,39,10,21,33,1,0,8,38,61,32,11,82,175,221,249,
+249,250,134,2,0,0,6,38,14,0,0,5,123,124,6,0,30,63,16,72,102,78,8,18,205,252,227,34,35,6,0,3,36,19,0,0,10,77,102,68,37,0,0,0,0,3,69,64,
+46,174,175,64,86,148,22,8,61,56,7,74,178,178,74,10,38,33,37,88,30,0,16,92,102,77,10,0,0,55,159,48,49,219,248,212,98,16,0,0,0,80,174,98,31,55,81,17,
+32,106,248,248,102,112,149,22,0,90,248,248,142,136,22,98,250,250,121,36,0,0,0,8,61,56,7,0,10,82,175,168,50,77,69,2,0,0,6,38,14,0,0,5,123,124,6,0,
+30,63,16,72,102,78,8,0,30,171,115,17,35,6,0,3,36,19,0,0,10,77,102,68,37,5,217,248,248,248,246,124,46,174,175,64,86,148,22,8,61,56,7,74,178,178,74,10,
+38,33,37,88,30,0,16,92,188,250,235,54,0,69,234,249,209,76,21,76,88,16,0,0,0,80,174,98,31,55,81,17,32,19,0,0,19,112,149,22,0,0,0,0,76,136,22,6,
+67,73,48,36,0,0,0,8,61,56,7,0,10,82,175,215,205,250,248,90,0,6,38,14,0,0,5,123,124,6,0,0,0,28,57,56,90,102,88,200,249,219,162,79,14,36,9,34,
+19,0,0,0,10,81,88,104,159,53,0,0,0,0,0,84,175,174,57,31,14,88,152,79,35,9,101,181,178,74,0,6,37,56,86,29,0,6,34,23,78,102,78,10,55,159,48,22,
+207,249,209,83,43,5,0,0,64,170,90,0,13,32,55,95,28,0,94,248,248,102,112,149,105,248,248,94,0,85,147,22,95,250,250,114,12,0,10,62,35,9,38,10,0,10,80,175,
+175,87,4,0,0,6,38,14,0,0,5,123,124,6,0,0,0,28,57,56,90,102,75,11,43,77,155,79,14,36,9,34,19,0,0,0,10,81,88,104,159,53,27,221,248,243,81,84,
+175,174,57,31,14,88,152,79,35,9,101,181,178,74,0,6,37,56,86,29,0,6,34,23,78,188,250,235,110,234,249,203,18,27,62,73,43,5,0,0,64,170,90,0,13,32,55,95,
+28,0,0,0,0,19,112,149,22,0,0,0,0,85,147,22,1,76,85,37,12,0,10,62,35,9,38,10,0,10,80,175,175,200,249,248,93,38,14,0,0,5,123,124,6,0,0,0,
+0,1,59,73,30,89,221,250,214,21,29,152,79,14,58,21,0,0,0,13,84,48,12,77,120,162,52,0,0,0,45,172,175,90,0,4,22,11,128,163,23,69,181,190,81,0,11,34,
+34,90,55,1,5,38,14,0,11,80,102,117,163,48,22,207,248,194,70,74,17,0,1,64,171,91,0,0,0,13,52,68,81,13,0,94,248,248,102,163,252,249,94,0,0,0,88,148,
+42,113,250,250,105,9,62,37,0,0,10,39,10,0,19,105,175,168,46,1,5,38,14,0,0,5,123,124,6,0,0,0,0,1,59,73,30,76,102,88,53,3,29,152,79,14,58,21,
+0,0,0,13,84,48,12,77,120,162,52,27,217,81,45,172,175,90,0,4,22,11,128,163,23,69,181,190,81,0,11,34,34,90,55,1,5,38,14,0,11,80,188,251,252,249,203,18,
+0,1,59,74,17,0,1,64,171,91,0,0,0,13,52,68,81,13,0,0,0,0,19,112,149,22,0,0,0,0,88,148,42,30,66,76,23,9,62,37,0,0,10,39,10,0,19,105,
+80,175,201,249,249,98,0,0,5,123,124,6,0,0,0,0,3,50,44,28,68,204,250,224,86,5,0,29,153,100,28,32,6,0,13,84,50,0,0,13,77,119,162,53,0,46,175,175,
+56,64,69,0,6,59,36,81,156,173,175,81,35,16,30,33,84,28,8,36,36,11,0,0,0,10,117,197,114,31,207,248,195,61,44,28,59,16,58,170,91,0,0,0,3,31,27,30,
+55,82,13,0,94,248,248,248,251,188,22,0,0,0,0,102,162,22,96,250,250,126,35,0,0,0,0,10,33,16,76,68,80,175,169,47,32,12,0,0,5,123,124,6,0,0,0,0,
+3,50,44,28,54,28,89,102,92,22,0,29,153,100,28,32,6,0,13,84,50,0,0,13,77,119,162,53,5,46,175,175,56,64,69,0,6,59,36,81,156,173,175,81,35,16,30,33,
+84,28,8,36,36,11,0,0,0,10,127,249,251,246,69,0,3,50,44,28,59,16,58,170,91,0,0,0,3,31,27,30,55,82,13,0,0,0,0,19,110,149,22,0,0,0,0,102,
+162,22,2,66,68,55,35,0,0,0,0,10,33,16,76,68,9,82,175,202,249,248,105,5,123,124,6,0,0,0,0,4,52,46,1,18,204,250,214,92,102,72,5,0,61,160,80,13,
+34,20,83,50,0,0,0,0,16,77,118,158,83,169,175,55,0,2,67,70,55,33,0,69,179,179,86,0,16,52,40,81,25,0,6,42,38,20,23,0,0,55,163,114,90,208,248,195,
+63,46,1,0,26,89,169,88,0,0,0,3,36,18,0,12,32,55,82,13,0,150,248,248,157,111,149,22,0,0,24,31,88,148,22,102,251,250,90,0,0,0,0,0,14,93,72,0,
+9,82,175,171,49,17,24,5,123,124,6,0,0,0,0,4,52,46,1,0,26,69,52,99,235,214,22,0,61,160,80,13,34,20,83,50,0,0,0,0,12,77,118,158,83,169,175,55,
+0,2,67,70,55,33,0,69,179,179,86,0,16,52,40,81,25,0,6,42,38,20,23,0,0,69,235,251,236,248,239,57,52,46,1,0,26,89,169,88,0,0,0,3,36,18,0,12,
+32,55,82,13,0,0,0,0,18,111,149,22,0,0,24,31,88,148,22,12,96,82,1,0,0,0,0,0,14,93,72,0,0,10,83,175,201,250,248,169,124,6,0,0,0,0,4,53,
+48,2,18,198,249,215,66,28,81,102,70,34,17,28,152,81,18,94,52,0,0,0,0,81,217,38,73,133,208,182,52,0,0,0,12,96,83,1,74,178,173,123,135,32,31,42,99,35,
+0,0,14,9,26,58,8,0,55,159,48,30,208,248,195,64,48,2,0,2,62,173,124,15,0,0,3,36,19,0,0,0,13,33,55,82,98,248,248,248,248,102,112,150,28,24,33,1,
+0,88,152,76,117,250,250,92,0,0,0,9,80,72,36,9,0,10,83,175,169,61,7,123,124,6,0,0,0,0,4,53,48,2,0,2,44,59,52,44,216,251,214,50,17,28,152,81,
+18,94,52,0,0,0,0,0,0,12,73,133,208,182,52,0,0,0,12,96,83,1,74,178,173,123,135,32,31,42,99,35,0,0,14,9,26,58,8,0,69,234,249,205,22,140,248,242,
+95,2,0,2,62,173,124,15,0,0,3,36,19,0,0,0,13,33,55,82,13,0,0,0,0,19,112,150,28,24,33,1,0,88,152,76,36,66,69,3,0,0,0,9,80,72,36,9,
+10,0,8,87,173,197,252,252,94,0,0,0,0,4,54,47,1,18,198,249,213,21,25,59,30,82,102,75,2,0,28,152,82,32,35,6,0,0,81,243,248,221,88,184,170,168,50,0,
+0,10,60,36,65,123,179,178,72,0,94,162,57,86,37,30,7,0,0,17,33,16,36,60,159,48,22,207,248,195,65,47,1,0,2,66,170,90,25,64,16,1,36,19,0,0,0,0,
+0,13,33,126,250,248,94,94,248,248,102,109,88,32,1,0,0,10,129,164,22,96,250,250,163,95,14,82,70,1,8,39,10,0,8,87,173,163,138,122,6,0,0,0,0,4,54,47,
+1,0,2,49,51,3,25,59,46,216,251,215,20,0,28,152,82,32,35,6,0,0,0,0,0,0,68,184,170,168,50,0,0,10,60,36,65,123,179,178,72,0,94,162,57,86,37,30,
+7,0,0,17,33,16,36,73,234,249,203,18,0,4,164,249,239,58,2,66,170,90,25,64,16,1,36,19,0,0,0,0,0,13,33,55,82,13,0,0,0,0,18,109,88,32,1,0,
+0,10,129,164,22,2,70,72,114,95,14,82,70,1,8,39,39,8,13,38,84,205,221,249,248,90,0,0,5,54,46,1,18,199,249,213,21,0,0,26,57,48,86,102,68,4,0,27,
+152,82,14,38,6,81,243,248,248,250,245,157,87,113,162,52,10,62,37,0,75,199,199,76,0,10,33,113,185,50,0,7,37,8,17,36,3,0,66,173,53,22,207,248,195,65,46,1,
+0,4,67,170,90,0,0,26,61,42,15,0,0,0,0,0,0,0,98,249,250,146,13,0,94,248,248,112,55,2,0,0,10,62,37,88,148,20,96,252,253,199,94,70,2,0,0,10,
+39,8,13,38,84,205,201,51,2,0,0,0,5,54,46,1,0,4,49,51,3,0,0,26,57,63,217,251,213,22,0,27,152,82,14,38,6,0,0,0,0,60,190,154,87,113,162,52,
+10,62,37,0,75,199,199,76,0,10,33,113,185,50,0,7,37,8,17,36,3,0,79,237,249,203,18,0,5,54,46,140,248,239,110,170,90,0,0,26,61,42,15,0,0,0,0,0,
+0,0,13,33,55,82,13,0,0,0,0,35,55,2,0,0,10,62,37,88,148,20,3,150,199,169,94,70,2,0,0,10,8,46,38,5,124,158,170,199,249,248,90,5,54,46,0,18,
+198,249,213,21,0,0,0,0,48,62,32,83,102,67,4,0,27,151,83,14,107,243,248,248,250,252,187,50,14,77,117,167,98,37,0,74,189,185,121,67,14,31,38,88,108,148,22,0,
+7,46,38,2,0,55,159,59,57,208,248,195,66,46,0,0,0,61,170,90,0,0,0,0,48,66,15,0,0,0,0,1,55,94,248,248,115,55,82,13,0,94,249,249,101,35,1,9,
+62,37,0,0,111,145,117,207,253,251,133,1,0,0,0,0,8,46,38,5,124,158,170,167,47,3,0,5,54,46,0,0,0,43,51,3,0,0,0,0,48,62,48,216,251,213,21,0,
+27,151,83,14,38,6,0,0,60,190,155,50,14,77,117,167,98,37,0,74,189,185,121,67,14,31,38,88,108,148,22,0,7,46,38,2,0,69,234,249,211,24,0,5,54,46,0,0,
+135,250,250,128,0,0,0,0,48,66,15,0,0,0,0,1,55,6,0,13,33,55,82,13,0,0,24,29,17,35,1,9,62,37,0,0,111,145,117,179,187,124,66,1,0,0,0,0,
+17,38,40,128,124,12,80,176,201,249,248,125,45,0,18,198,248,206,22,0,0,0,3,36,15,24,59,34,85,102,66,3,0,26,151,138,244,249,248,250,252,187,52,0,0,10,75,133,
+173,48,69,178,185,118,21,69,82,40,86,30,0,88,148,22,16,38,36,10,55,159,48,22,210,249,197,65,45,0,0,0,22,154,91,0,0,0,3,36,15,24,64,18,0,0,0,83,
+206,251,248,94,13,33,55,82,12,20,115,248,248,100,36,58,36,0,0,0,24,173,185,160,158,250,250,91,0,0,0,0,17,38,40,128,124,12,80,176,169,46,9,54,45,0,0,0,
+0,14,4,0,0,0,3,36,15,24,59,49,217,251,213,21,0,26,151,84,14,37,4,59,190,155,52,0,0,10,75,133,173,48,69,178,185,118,21,69,82,40,86,30,0,88,148,22,
+16,38,36,10,69,234,249,203,31,35,12,54,45,0,0,0,22,207,250,239,58,0,3,36,15,24,64,18,0,0,0,83,179,110,3,0,13,33,55,82,12,20,33,1,0,16,36,58,
+36,0,0,0,24,173,185,160,101,93,65,2,0,0,0,0,36,6,127,142,10,0,10,82,175,200,250,249,90,18,198,248,198,18,0,0,0,3,33,19,0,0,27,59,35,86,102,64,
+2,0,99,250,250,248,251,252,187,52,0,0,0,8,58,83,112,166,176,173,73,20,61,43,77,102,31,0,0,0,88,154,52,1,9,83,161,48,22,207,248,198,79,44,0,0,0,22,
+148,88,0,0,0,3,33,19,0,0,27,64,18,0,0,122,252,253,168,3,0,13,33,54,89,39,0,94,248,248,132,54,0,0,0,5,114,185,189,180,77,100,250,250,92,0,0,19,
+36,6,127,142,10,0,10,82,175,168,71,41,0,0,0,0,0,0,0,0,0,3,33,19,0,0,27,59,51,217,251,212,20,0,26,151,84,10,79,190,155,52,0,0,0,8,58,83,
+112,166,176,173,73,20,61,43,77,102,31,0,0,0,88,154,52,1,9,95,234,249,203,18,0,16,69,44,0,0,0,22,148,88,135,248,239,65,33,19,0,0,27,64,18,0,0,48,
+164,185,117,3,0,13,33,54,89,39,0,0,0,8,64,54,0,0,0,5,114,185,189,180,77,10,68,70,3,0,0,19,8,123,124,9,2,0,0,10,84,175,202,249,248,216,248,198,
+18,0,0,0,3,36,18,0,0,0,0,26,59,36,86,102,63,82,243,249,252,252,251,187,54,0,0,0,10,62,34,12,125,201,183,104,0,7,44,71,82,74,64,3,0,0,19,111,
+148,20,51,160,49,22,207,248,196,64,49,32,6,0,22,148,88,0,0,0,3,36,18,0,0,0,0,26,64,18,90,248,249,206,204,117,3,0,10,44,83,170,74,1,100,250,249,100,
+35,3,6,116,179,162,108,146,157,22,96,250,250,91,17,36,8,123,124,9,2,0,0,10,84,175,172,45,2,0,0,0,0,0,0,0,3,36,18,0,0,0,0,26,59,52,217,251,
+212,20,0,25,142,119,183,154,54,0,0,0,10,62,34,12,125,201,183,104,0,7,44,71,82,74,64,3,0,0,19,111,148,20,66,234,249,203,18,0,8,53,49,32,6,0,22,148,
+88,0,0,135,248,241,77,0,0,0,0,26,64,18,0,0,41,179,204,117,3,0,10,44,83,170,74,1,10,62,34,15,35,3,6,116,179,162,108,146,157,22,3,70,70,2,17,36,
+123,124,6,0,0,0,0,0,37,95,175,205,249,248,216,18,0,0,0,3,36,19,0,0,0,0,0,0,26,59,38,87,151,246,248,248,250,253,205,58,30,6,0,10,62,37,0,74,
+182,199,155,147,56,33,38,90,72,21,66,70,3,0,21,3,81,153,148,44,22,207,248,194,50,45,0,13,38,28,148,88,0,0,0,3,36,19,0,0,0,0,0,0,26,132,248,248,
+94,41,180,204,117,4,21,55,154,195,169,27,58,117,248,248,102,41,119,179,162,107,66,22,128,157,22,96,250,250,104,7,123,124,6,0,0,0,0,0,37,95,175,169,48,3,0,0,
+0,0,0,3,36,19,0,0,0,0,0,0,26,59,53,218,251,212,19,0,79,209,181,58,30,6,0,10,62,37,0,74,182,199,155,147,56,33,38,90,72,21,66,70,3,0,21,3,
+81,160,231,249,203,18,0,0,38,45,0,13,38,28,148,88,0,0,0,3,148,248,239,63,0,0,0,0,26,64,18,0,0,41,180,204,117,4,21,55,154,195,169,27,58,37,0,0,
+19,41,119,179,162,107,66,22,128,157,22,3,69,70,21,7,124,6,0,0,0,0,0,0,1,14,95,237,253,249,248,90,0,0,3,36,19,0,0,0,0,0,0,0,0,26,58,108,
+247,251,250,250,251,190,160,85,13,34,16,60,37,0,74,178,178,82,76,118,173,82,87,28,18,61,22,66,70,3,0,0,50,174,150,37,207,248,194,14,4,0,0,0,35,164,92,0,
+0,0,3,36,19,0,0,0,0,0,0,0,90,249,250,106,0,0,41,180,203,125,57,140,183,152,74,102,43,0,94,248,248,173,189,163,104,70,2,0,22,130,157,22,96,250,250,170,
+124,6,0,0,0,0,0,0,1,14,82,175,170,48,4,0,0,0,3,36,19,0,0,0,0,0,0,0,0,26,58,54,218,251,211,74,186,160,160,85,13,34,16,60,37,0,74,178,
+178,82,76,118,173,82,87,28,18,61,22,66,70,3,0,0,64,237,252,207,18,0,0,0,4,0,0,0,35,164,92,0,0,0,3,36,19,130,248,239,63,0,0,0,0,26,64,18,
+0,0,41,180,203,125,57,140,183,152,74,102,43,0,0,0,7,129,189,163,104,70,2,0,22,130,157,22,3,70,72,124,9,0,0,0,0,0,0,0,0,18,200,250,233,183,249,248,
+90,3,36,19,0,0,0,0,0,0,0,0,0,0,98,246,249,250,251,252,186,52,24,150,87,20,73,38,0,74,178,178,74,0,19,83,122,189,73,0,0,22,61,22,66,70,3,55,
+157,44,96,235,249,194,14,0,0,0,0,22,148,97,38,6,0,3,36,19,0,0,0,0,0,0,0,90,248,248,110,64,19,0,0,40,181,207,170,179,134,34,66,70,78,13,0,99,
+252,253,198,114,69,2,0,0,0,22,130,157,20,97,253,253,96,0,0,0,0,0,0,0,0,0,10,85,159,132,41,6,0,3,36,19,0,0,0,0,0,0,0,0,0,0,25,58,
+55,217,251,241,161,52,24,150,87,20,73,38,0,74,178,178,74,0,19,83,122,189,73,0,0,22,61,22,66,70,3,69,233,249,219,156,22,0,0,0,0,0,0,22,148,97,38,6,
+0,3,36,19,0,0,130,248,239,68,0,0,0,0,26,64,19,0,0,40,181,207,170,179,134,34,66,70,78,13,0,8,121,179,165,114,69,2,0,0,0,22,130,157,20,4,159,160,
+70,3,0,0,0,0,0,0,18,198,248,200,27,122,176,249,248,112,19,0,0,0,0,0,0,0,0,0,0,81,243,249,250,251,252,187,81,0,0,24,154,114,43,32,78,178,178,74,
+0,10,30,46,102,121,161,52,0,0,22,61,22,66,109,160,48,22,207,250,229,31,0,0,0,0,22,148,88,0,14,36,9,34,19,0,0,0,0,0,0,0,90,248,248,94,0,25,
+64,19,0,23,79,193,204,168,28,59,42,30,55,82,21,121,207,252,251,139,32,2,0,0,0,0,22,128,145,121,169,250,250,92,0,0,0,0,0,0,0,0,0,8,9,122,130,41,
+9,34,19,0,0,0,0,0,0,0,0,0,0,0,0,25,53,96,241,252,216,18,0,24,154,114,43,32,78,178,178,74,0,10,30,46,102,121,161,52,0,0,22,61,22,66,120,234,
+249,203,18,88,148,22,0,0,0,0,22,148,88,0,14,36,9,34,19,0,0,0,0,130,248,239,68,0,0,0,0,25,64,19,0,23,79,193,204,168,28,59,42,30,55,82,21,121,
+179,160,101,75,32,2,0,0,0,0,22,128,145,121,120,74,70,70,3,0,0,0,0,18,198,248,198,18,0,5,122,176,250,248,90,0,0,0,0,0,0,0,0,0,81,244,248,248,
+250,252,185,96,102,56,0,9,79,64,0,84,190,180,74,0,10,34,39,83,40,74,119,162,52,0,0,22,61,72,183,102,23,207,248,194,95,148,22,0,0,22,148,88,0,0,0,14,
+58,21,0,0,0,0,0,0,0,90,248,248,94,16,4,0,25,60,35,48,139,179,192,203,145,37,0,12,33,62,166,182,158,159,250,248,101,36,3,0,0,0,0,22,178,185,27,96,
+250,250,92,0,0,0,0,0,0,0,0,0,0,5,122,129,62,21,0,0,0,0,0,0,0,0,0,0,0,16,3,0,74,191,160,219,251,211,18,9,79,64,0,84,190,180,74,0,
+10,34,39,83,40,74,119,162,52,0,0,22,61,85,239,251,203,18,0,0,88,148,22,0,0,22,148,88,0,0,0,14,58,21,0,0,0,0,0,0,126,248,239,68,0,16,4,0,
+25,60,35,48,139,179,192,203,145,37,0,12,33,62,166,182,158,104,70,1,16,59,172,18,0,0,0,22,178,185,27,3,3,70,70,3,0,0,18,198,248,198,18,0,0,0,8,139,
+180,249,248,90,0,0,0,0,0,0,11,92,243,248,249,250,252,187,78,45,91,102,59,55,36,0,74,177,182,101,4,8,34,39,87,30,0,13,78,120,163,51,0,0,71,182,66,75,
+219,248,194,9,0,88,147,18,18,147,88,0,0,0,3,32,28,34,6,0,0,0,0,0,90,248,248,104,0,19,36,3,0,38,90,154,179,127,59,191,207,120,5,0,19,139,195,185,
+99,67,96,248,248,102,36,5,0,0,5,120,125,128,154,22,96,250,250,92,0,0,0,0,0,0,0,0,0,0,8,139,136,38,6,0,0,0,0,0,0,0,11,16,0,18,30,62,
+189,155,78,60,218,251,211,69,36,0,74,177,182,101,4,8,34,39,87,30,0,13,78,120,163,51,0,0,85,239,249,215,76,2,0,0,0,88,147,18,18,147,88,0,0,0,3,32,
+28,34,6,0,0,0,0,0,0,126,248,240,68,19,36,3,0,38,90,154,179,127,59,191,207,120,5,0,19,139,195,185,99,67,2,0,0,177,249,199,18,0,5,120,125,128,154,22,
+19,3,70,70,3,18,198,248,198,18,0,0,0,3,36,24,118,168,249,248,90,0,0,0,0,0,85,245,248,248,250,252,185,49,22,57,46,92,102,72,0,66,165,165,71,12,40,34,
+38,87,30,0,0,0,12,66,116,153,38,41,149,64,79,211,250,210,12,0,0,0,84,135,135,84,0,0,0,3,36,19,0,14,38,6,0,0,0,90,248,248,97,36,19,0,18,32,
+24,46,149,190,135,21,61,65,171,197,111,16,108,162,160,109,102,15,0,94,248,248,102,21,0,6,109,120,4,22,128,146,19,96,250,250,92,0,0,0,0,0,0,0,0,3,36,24,
+118,117,43,6,0,0,0,0,0,0,5,36,18,0,68,184,153,49,22,57,60,218,251,214,18,66,165,165,71,12,40,34,38,87,30,0,0,0,12,66,116,153,38,56,232,249,216,38,
+66,69,3,0,0,0,84,135,135,84,0,0,0,3,36,19,0,14,38,6,0,0,0,0,0,0,129,249,240,72,18,32,24,46,149,190,135,21,61,65,171,197,111,16,108,162,160,109,
+102,15,0,0,0,18,202,248,198,23,109,120,4,22,128,146,152,21,3,70,83,199,248,198,18,0,0,0,3,36,19,0,6,109,172,249,248,90,0,0,0,81,243,248,249,250,252,181,
+68,0,0,22,56,69,96,102,109,165,165,66,0,8,39,57,85,28,0,0,0,0,0,0,50,109,157,151,34,22,211,250,198,73,70,3,0,0,21,150,150,21,0,5,110,71,19,0,
+0,0,14,38,6,0,90,248,248,94,0,3,36,18,0,35,74,142,168,133,69,62,34,0,34,169,195,161,154,135,98,81,54,80,13,0,94,248,248,90,5,118,111,6,0,0,22,121,
+152,21,96,250,250,92,0,0,0,0,0,0,3,36,19,0,6,109,125,42,6,0,0,0,0,0,0,3,29,70,186,148,68,0,0,22,56,82,219,251,222,171,165,66,0,8,39,57,
+85,28,0,0,0,0,0,0,50,109,164,232,249,203,38,59,18,66,70,3,0,0,21,150,150,21,0,5,110,71,19,0,0,0,14,38,6,0,0,0,0,0,0,128,249,240,72,35,
+74,142,168,133,69,62,34,0,34,169,195,161,154,135,98,81,54,80,13,0,0,0,18,198,248,224,121,6,0,0,22,121,128,157,22,21,214,250,199,18,0,0,0,3,36,19,0,0,
+0,5,125,176,249,248,90,0,81,243,248,248,250,252,186,49,14,34,2,7,63,66,48,140,209,193,74,0,10,33,41,88,55,2,0,0,0,0,0,0,0,90,191,164,65,207,248,198,
+64,21,66,70,3,27,147,81,81,144,34,119,142,31,0,0,0,0,0,14,38,94,248,248,94,0,0,0,3,32,35,49,157,189,129,19,63,70,18,0,0,48,191,202,172,97,69,16,
+31,56,83,11,0,94,248,248,169,123,6,0,0,0,0,22,128,157,22,96,250,250,92,0,0,0,0,3,36,19,0,0,0,5,125,130,42,6,0,0,0,0,0,0,61,191,154,49,
+14,34,2,7,63,66,63,229,254,241,87,0,10,33,41,88,55,2,0,0,0,0,0,0,0,102,241,252,213,18,0,18,57,21,66,70,3,27,147,81,81,144,34,119,142,31,0,0,
+0,0,0,14,38,6,0,0,0,0,0,0,124,249,241,107,157,189,129,19,63,70,18,0,0,48,191,202,172,97,69,16,31,56,83,11,0,0,0,23,225,252,199,18,0,0,0,22,
+22,130,164,203,248,214,83,3,0,0,3,36,19,0,0,0,3,69,65,122,175,249,248,141,243,248,248,250,252,187,68,14,0,14,19,60,33,21,115,193,206,146,49,10,32,40,88,23,
+10,38,5,4,9,0,0,0,55,158,83,128,237,249,194,9,21,61,22,66,70,118,91,0,0,85,180,141,20,0,0,0,0,0,0,0,99,249,248,94,0,22,56,6,0,23,76,157,
+179,135,30,60,33,22,64,20,13,124,179,193,202,149,9,0,13,35,59,81,17,0,97,252,252,94,0,0,0,0,0,0,22,130,157,22,96,250,250,92,0,0,3,36,19,0,0,0,
+3,69,65,122,129,42,6,0,0,15,14,59,190,155,68,14,0,14,19,60,33,21,115,198,244,252,209,27,32,40,88,23,10,38,5,4,9,0,0,0,69,233,250,226,168,52,0,0,
+21,61,22,66,70,118,91,0,0,85,180,141,20,0,0,0,0,0,0,0,14,38,6,0,0,22,56,6,0,134,250,248,200,135,30,60,33,22,64,20,13,124,179,193,202,149,9,0,
+13,35,59,81,17,0,5,123,134,199,248,198,18,0,0,0,0,38,227,252,203,21,70,70,2,1,36,19,0,0,0,3,70,71,5,5,122,175,249,248,248,248,251,252,187,52,3,34,
+16,7,61,37,0,74,185,196,111,94,102,65,39,87,29,0,0,13,37,37,9,10,23,55,159,48,22,217,251,233,59,0,0,22,61,22,66,81,3,0,4,115,162,144,20,0,0,0,
+0,0,0,90,248,248,116,3,9,80,102,54,18,55,153,189,135,17,61,37,0,0,24,74,142,179,145,116,183,194,122,6,0,11,34,70,82,27,132,173,248,248,90,0,0,0,0,0,
+0,22,130,157,22,96,250,250,91,1,36,19,0,0,0,3,70,71,5,5,122,129,39,6,0,2,79,191,155,52,3,34,16,7,61,37,0,74,185,196,121,219,251,212,54,87,29,0,
+0,13,37,37,9,10,23,69,234,249,203,65,120,163,52,0,0,22,61,22,66,81,3,0,4,115,162,144,20,0,0,0,0,0,0,0,0,14,35,3,9,80,102,54,18,55,202,253,
+249,85,61,37,0,0,24,74,142,179,145,116,183,194,122,6,0,11,34,70,82,27,132,124,6,18,198,248,198,18,0,0,18,198,248,227,164,22,3,69,68,33,17,0,0,0,3,70,
+70,3,0,0,5,165,250,249,248,250,252,187,60,0,0,1,36,65,36,0,74,178,178,90,56,56,96,100,93,26,0,0,0,4,44,40,13,37,64,159,48,22,207,248,206,123,163,52,
+0,0,22,61,22,66,70,7,123,141,26,85,148,22,0,0,0,0,90,248,248,94,10,40,79,102,77,54,65,153,179,127,45,65,36,0,0,0,15,144,197,157,92,76,39,170,204,124,
+6,4,42,37,61,173,135,6,94,248,248,90,0,0,0,0,0,0,22,130,157,22,96,250,250,112,17,0,0,0,3,70,70,3,0,0,5,122,129,42,4,60,190,155,60,0,0,1,
+36,65,36,0,74,178,178,90,56,70,220,251,219,42,0,0,0,4,44,40,13,37,77,234,249,203,18,0,51,119,163,52,0,0,22,61,22,66,70,7,123,141,26,85,148,22,0,0,
+0,0,0,0,0,0,10,40,79,102,77,54,65,153,179,187,249,246,98,0,0,0,15,144,197,157,92,76,39,170,204,124,6,4,42,37,61,173,135,6,0,0,18,198,248,198,18,0,
+198,248,198,38,130,157,22,4,86,76,1,0,0,3,70,71,4,0,0,0,81,243,252,252,251,253,210,52,28,18,0,10,60,37,0,79,178,178,74,0,28,64,73,102,101,43,0,0,
+6,38,11,19,61,65,159,48,22,207,248,194,9,51,119,163,52,0,0,22,61,22,69,159,141,23,0,0,88,148,22,0,1,90,248,248,94,0,8,82,102,78,31,53,167,185,124,19,
+60,37,0,0,0,15,134,179,156,112,80,4,0,35,178,204,128,39,12,23,151,154,85,13,0,94,248,248,90,0,4,0,0,0,0,22,130,157,22,96,250,250,90,0,0,3,70,71,
+4,0,0,0,0,5,122,122,88,188,155,52,28,18,0,10,60,37,0,79,178,178,74,0,28,64,86,221,251,208,18,0,6,38,11,19,61,78,234,249,203,18,0,0,0,51,119,163,
+52,0,0,22,61,22,69,159,141,23,0,0,88,148,22,0,1,0,0,0,0,0,8,82,102,78,31,53,167,185,124,19,154,249,243,72,0,15,134,179,156,112,80,4,0,35,178,204,
+128,39,12,23,151,154,85,13,0,0,0,18,198,248,199,18,248,198,18,0,22,129,158,48,19,67,70,1,1,70,70,4,44,22,0,81,243,248,248,252,253,252,250,90,2,32,24,58,
+37,0,79,202,187,74,0,10,29,52,100,70,94,102,44,1,34,14,0,24,72,172,53,22,207,248,194,9,0,0,62,118,161,52,0,0,22,64,136,166,80,2,0,0,0,88,148,24,
+120,249,248,94,0,10,79,102,80,51,56,154,180,139,34,58,37,0,0,0,15,135,179,148,91,80,60,19,0,0,34,177,208,129,20,132,135,36,55,82,13,0,94,248,248,90,30,19,
+0,0,0,0,22,129,158,48,106,250,250,91,1,70,70,4,44,22,0,0,0,0,1,142,209,153,54,0,2,32,24,58,37,0,79,202,187,74,0,10,29,52,100,83,219,251,208,19,
+34,14,0,24,85,237,249,203,18,0,0,0,0,0,62,118,161,52,0,0,22,64,136,166,80,2,0,0,0,88,148,24,46,22,0,0,0,10,79,102,80,51,56,154,180,139,34,58,
+37,118,248,243,83,135,179,148,91,80,60,19,0,0,34,177,208,129,20,132,135,36,55,82,13,0,0,0,18,198,249,225,241,35,0,0,0,22,137,162,22,3,68,65,65,69,3,0,
+24,64,94,243,248,248,250,251,211,185,249,248,90,11,72,44,0,74,178,188,138,28,6,33,40,84,46,54,58,99,102,46,3,0,0,57,159,60,58,208,248,194,9,0,0,0,1,58,
+114,162,53,0,5,135,161,37,64,62,1,0,0,0,88,186,249,250,107,0,10,79,102,76,31,63,169,181,121,19,72,44,0,0,0,17,136,179,146,94,76,4,20,64,23,0,0,34,
+177,203,166,116,3,14,34,55,82,13,0,94,248,248,92,36,19,0,0,0,0,22,137,162,22,96,250,250,132,69,3,0,24,64,20,0,0,0,59,184,190,144,34,6,0,11,72,44,
+0,74,178,188,138,28,6,33,40,84,46,54,72,220,251,208,21,0,0,71,234,249,211,24,0,0,0,0,0,0,1,58,114,162,53,0,5,135,161,37,64,62,1,0,0,0,88,148,
+44,64,20,0,10,79,102,76,31,63,169,181,121,19,72,44,0,0,118,249,249,202,146,94,76,4,20,64,23,0,0,34,177,203,166,116,3,14,34,55,82,13,0,0,0,102,248,249,
+249,202,18,0,3,30,34,127,157,22,5,98,98,5,0,0,0,97,246,248,248,250,252,185,58,121,175,249,248,128,36,30,87,178,178,74,28,89,52,38,96,111,22,22,49,42,100,101,
+42,2,57,159,48,22,210,249,196,9,0,0,0,0,0,0,62,120,158,53,115,140,39,58,26,21,0,0,0,0,90,250,252,121,60,28,77,102,78,33,58,157,183,139,24,59,36,30,
+18,0,25,138,179,144,93,75,5,0,0,23,55,5,0,0,39,194,204,124,5,0,14,33,55,82,13,0,94,248,248,48,36,19,0,0,3,30,34,127,157,22,97,251,251,93,0,0,
+0,23,64,18,0,60,193,230,152,121,129,39,16,59,36,30,87,178,178,74,28,89,52,38,96,111,22,22,49,58,220,251,207,20,71,234,249,203,31,38,6,0,0,0,0,0,0,0,
+62,120,158,53,115,140,39,58,26,21,0,0,0,0,0,88,148,43,60,28,77,102,78,33,58,157,183,139,24,59,36,30,18,0,25,192,253,249,142,75,5,0,0,23,55,5,0,0,
+39,194,204,124,5,0,14,33,55,82,13,0,90,248,248,217,199,249,202,19,36,19,0,22,128,158,81,66,65,68,3,0,81,243,249,250,250,252,187,50,0,5,122,178,250,249,90,76,
+189,184,74,0,6,52,91,90,109,179,139,18,4,0,39,102,96,67,159,48,22,207,248,197,46,6,0,0,0,0,0,0,0,65,120,184,150,19,0,22,63,18,0,0,0,90,248,248,
+150,148,50,98,102,76,14,53,157,179,119,27,73,38,0,2,36,19,93,179,144,93,74,4,0,0,0,0,4,0,0,5,115,125,171,204,126,7,0,13,33,55,82,13,0,94,126,0,
+3,36,18,1,36,19,0,22,128,158,81,136,250,250,92,0,0,0,24,56,71,194,231,249,248,125,122,133,77,38,0,76,189,184,74,0,6,52,91,90,109,179,139,18,4,0,54,221,
+251,216,235,249,203,18,0,14,38,6,0,0,0,0,0,0,0,65,120,184,150,19,0,22,63,18,0,0,0,0,0,0,88,148,50,98,102,76,14,53,157,179,119,27,73,38,0,2,
+36,19,93,179,195,251,247,80,0,0,0,0,4,0,0,5,115,125,171,204,126,7,0,13,33,55,82,98,248,248,94,18,18,198,249,208,32,0,0,0,22,152,180,22,1,70,70,83,
+243,248,248,250,252,186,40,0,0,0,15,153,185,249,250,205,179,100,16,8,33,38,89,91,49,139,179,138,18,0,0,40,83,159,48,22,207,248,194,9,14,38,6,0,0,0,0,0,
+0,5,149,179,153,50,0,0,22,64,22,0,90,248,248,94,0,94,180,115,97,25,36,159,179,118,16,59,43,32,6,0,3,36,28,97,96,74,4,0,0,0,0,0,0,0,5,123,
+124,1,31,176,204,127,7,0,13,33,55,82,13,0,0,0,0,2,34,45,15,0,0,0,22,152,180,22,95,250,250,92,0,0,0,74,194,231,249,248,248,248,103,153,143,37,75,178,
+179,100,16,8,33,38,89,91,49,139,179,138,18,0,0,56,220,252,249,206,18,0,0,0,14,38,6,0,0,0,0,0,0,5,149,179,153,50,0,0,22,64,22,0,0,0,0,0,
+0,94,180,115,97,25,36,159,179,118,16,59,43,32,6,0,3,36,28,97,96,155,248,243,77,0,0,0,0,0,5,123,124,1,31,176,204,127,7,0,13,33,126,250,248,94,0,0,
+0,20,206,249,201,18,0,3,66,76,126,156,22,3,129,246,248,248,250,252,186,78,12,0,0,10,62,40,112,186,253,253,138,2,38,42,39,87,26,25,90,47,138,179,138,18,0,57,
+159,48,22,207,248,194,9,8,0,14,38,6,0,0,0,0,5,124,139,71,115,162,52,0,0,22,64,104,248,248,94,0,10,79,155,180,50,84,165,179,117,16,62,37,0,14,38,6,
+0,1,34,82,71,4,0,0,0,0,0,0,0,5,123,124,6,0,0,32,176,204,128,11,0,13,33,55,82,13,0,0,0,2,34,45,15,0,0,3,66,76,126,156,22,96,250,250,
+92,0,60,194,231,250,248,248,248,192,69,40,112,146,183,179,74,2,38,42,39,87,26,25,90,47,138,179,138,18,0,71,235,249,248,202,18,0,0,8,0,14,38,6,0,0,0,0,
+5,124,139,71,115,162,52,0,0,22,64,22,0,0,0,0,10,79,155,180,50,84,165,179,117,16,62,37,0,14,38,6,0,1,34,82,71,4,113,248,243,81,0,0,0,5,123,124,
+6,0,0,32,176,204,128,11,0,98,249,250,146,13,0,0,3,36,34,198,249,202,19,70,70,2,20,130,158,96,243,250,250,250,252,187,40,24,59,13,8,62,37,0,74,179,210,251,
+248,95,32,56,92,26,0,0,28,90,47,138,179,133,69,152,48,22,207,248,194,9,0,29,24,0,14,38,6,0,0,5,125,142,23,0,66,120,162,55,1,0,104,250,249,94,0,10,
+79,102,79,88,143,166,197,123,14,62,37,0,0,0,14,38,4,6,78,87,18,0,0,5,0,0,0,0,2,118,123,6,0,0,0,0,32,176,204,143,26,0,13,33,55,82,13,0,
+3,36,18,1,36,16,1,70,70,2,20,130,158,22,96,250,250,131,196,233,249,249,250,248,187,69,37,0,74,179,183,101,4,8,32,56,92,26,0,0,28,90,47,138,179,133,82,232,
+249,206,202,248,198,18,0,29,24,0,14,38,6,0,0,5,125,142,23,0,66,120,162,55,1,0,22,64,23,0,0,10,79,102,79,88,143,166,197,123,14,62,37,0,0,0,14,38,
+4,6,78,87,18,0,0,113,248,243,81,0,2,118,123,6,0,0,0,0,32,176,204,143,107,248,248,115,55,82,13,0,31,19,0,18,198,249,215,81,3,0,0,23,165,250,249,248,
+251,252,187,42,0,0,25,59,60,34,0,74,177,171,140,169,249,249,115,84,52,13,0,0,0,28,90,48,132,179,179,60,22,207,248,194,9,0,0,1,33,24,0,14,38,6,5,123,
+142,24,0,0,0,66,121,145,15,90,248,249,128,1,10,79,102,79,10,36,171,179,132,59,60,34,0,0,0,0,0,12,36,79,70,8,33,19,122,194,9,0,0,4,109,111,5,0,
+0,0,0,0,0,32,176,204,144,26,0,13,33,55,81,17,31,19,0,0,2,33,75,68,3,0,0,23,124,150,23,94,251,253,239,249,248,248,249,201,67,34,0,74,177,171,140,119,
+43,33,38,84,52,13,0,0,0,28,90,48,132,184,238,249,203,18,18,198,248,198,18,1,33,24,0,14,38,6,5,123,142,24,0,0,0,66,121,145,15,0,0,23,55,1,10,79,
+102,79,10,36,171,179,132,59,60,34,0,0,0,0,0,12,36,79,70,8,33,19,0,0,108,248,243,84,109,111,5,0,0,0,0,0,0,32,176,222,252,248,94,13,33,55,81,17,
+27,0,0,0,20,213,250,202,18,0,0,81,243,250,252,250,251,186,42,0,0,0,7,65,70,12,74,178,178,71,6,125,184,250,250,107,0,36,19,0,0,0,27,90,96,179,179,143,
+211,248,194,9,0,0,0,0,1,33,24,0,14,41,126,139,20,0,0,0,0,0,66,94,98,248,248,94,2,10,79,102,79,10,39,161,179,142,138,80,70,12,0,0,0,0,0,7,
+83,88,7,0,3,141,248,248,194,9,5,121,119,2,0,0,0,0,0,0,0,0,32,174,204,145,26,0,13,32,55,95,27,0,0,0,2,69,86,18,0,0,0,0,4,88,141,80,
+214,252,249,248,248,248,182,72,70,12,74,178,178,71,6,125,142,61,86,26,0,36,19,0,0,0,27,90,108,238,253,230,34,0,0,18,198,248,198,18,1,33,24,0,14,41,126,139,
+20,0,0,0,0,0,66,94,13,0,0,0,2,10,79,102,79,10,39,161,179,142,138,80,70,12,0,0,0,0,0,7,83,88,7,0,3,36,19,0,0,108,248,249,162,2,0,0,
+0,0,0,0,0,0,110,252,254,186,26,0,13,32,55,95,79,13,0,3,70,83,200,249,202,18,81,243,248,248,252,253,190,42,0,0,0,10,58,33,28,118,182,178,74,0,10,37,
+142,201,250,248,90,3,36,19,0,0,0,74,189,87,144,241,252,198,9,0,0,0,0,0,0,1,33,24,11,129,152,25,0,0,0,0,0,0,0,133,250,248,94,0,9,79,102,78,
+10,41,162,179,111,16,124,162,48,62,13,0,0,0,9,81,64,16,36,6,99,248,249,248,248,195,128,124,5,0,8,51,11,0,0,0,0,0,0,30,174,204,146,26,0,13,52,62,
+79,13,0,3,70,70,8,33,19,0,0,0,0,0,121,212,236,249,248,248,248,183,65,33,28,118,182,178,74,0,10,37,142,169,57,2,0,3,36,19,0,0,0,86,240,250,230,184,
+138,18,0,0,18,198,248,198,18,1,33,24,11,129,152,25,0,0,0,0,0,0,0,66,84,10,0,0,9,79,102,78,10,41,162,179,111,16,124,162,48,62,13,0,0,0,9,81,
+64,16,36,6,0,3,36,19,0,5,179,252,243,86,8,51,11,0,0,0,0,90,248,249,204,204,146,26,0,13,52,62,55,80,19,66,71,3,18,199,249,217,243,248,248,250,251,203,
+155,22,0,0,10,62,35,0,74,188,197,82,0,10,33,40,91,136,174,249,248,90,3,36,19,0,52,159,74,105,217,252,237,142,18,0,0,0,0,0,0,0,1,32,96,139,32,33,
+3,0,0,0,0,0,90,248,250,147,8,8,79,102,77,14,41,168,179,110,14,62,35,88,148,51,63,12,0,9,82,70,0,0,14,38,15,194,248,249,248,252,223,20,0,0,53,102,
+77,9,0,0,0,0,0,0,30,174,204,145,29,29,27,30,55,80,19,66,71,3,0,3,36,19,0,0,0,60,187,241,252,249,248,248,248,134,35,0,74,188,197,82,0,10,33,40,
+91,136,127,42,7,0,3,36,19,0,66,234,250,221,64,138,179,138,18,0,0,18,198,248,198,18,1,32,96,139,32,33,3,0,0,0,0,0,0,0,66,84,8,8,79,102,77,14,
+41,168,179,110,14,62,35,88,148,51,63,12,0,9,82,70,0,0,14,38,7,0,3,36,23,123,124,112,248,243,121,102,77,9,0,0,90,248,248,94,30,174,204,145,29,29,27,30,
+32,54,102,70,1,0,0,18,214,249,248,248,250,252,187,56,87,148,22,10,62,37,0,74,178,178,97,60,20,30,39,88,28,5,122,176,249,248,90,3,36,67,159,53,22,212,250,206,
+142,179,139,58,14,0,0,0,0,0,0,1,64,40,0,12,35,6,0,0,0,90,248,248,94,64,78,78,102,76,27,28,32,156,114,13,62,37,0,0,88,148,52,59,20,79,71,3,
+0,0,0,14,38,15,190,248,252,252,248,194,14,0,14,80,102,75,13,40,14,0,0,0,0,33,173,203,155,42,0,14,32,54,102,70,1,0,0,0,3,36,18,0,60,196,236,250,
+250,252,249,205,250,249,90,74,178,178,97,60,20,30,39,88,28,5,122,129,43,6,0,3,36,80,234,249,203,42,90,49,138,179,139,58,14,0,18,198,248,198,18,1,64,40,0,12,
+35,6,0,0,0,0,0,0,0,64,78,78,102,76,27,28,32,156,114,13,62,37,0,0,88,148,52,59,20,79,71,3,0,0,0,14,38,6,0,8,142,134,6,0,108,248,244,139,
+102,75,13,116,248,248,94,0,0,29,173,203,155,42,0,14,14,82,86,76,12,0,0,81,243,248,249,250,252,187,57,0,0,88,152,79,37,0,74,178,179,74,0,37,68,46,85,28,
+0,0,5,122,176,249,248,90,54,173,68,22,207,248,200,97,48,138,194,161,23,0,0,0,0,0,2,34,20,29,24,0,14,38,6,0,90,248,248,94,0,11,97,102,76,26,32,4,
+0,19,15,62,37,0,0,2,3,88,148,54,99,72,1,0,0,0,0,0,14,38,20,222,252,249,248,248,194,14,0,11,79,102,90,50,4,0,0,0,86,217,53,180,205,146,28,0,
+14,82,86,76,12,0,0,0,0,3,32,71,195,236,250,248,248,250,223,83,117,248,250,205,179,74,0,37,68,46,85,28,0,0,5,122,130,42,6,0,68,237,249,203,18,0,26,91,
+48,138,194,161,23,0,0,18,198,248,198,50,20,29,24,0,14,38,6,0,0,0,0,0,0,11,97,102,76,26,32,4,0,19,15,62,37,0,0,2,3,88,148,54,99,72,1,0,
+0,0,0,0,14,38,11,123,126,41,19,0,0,104,248,243,138,102,148,249,248,94,0,0,0,0,29,180,205,146,28,0,64,73,34,54,82,13,81,243,248,248,250,253,239,69,0,0,
+0,10,129,163,23,69,178,179,99,8,8,29,58,102,36,0,0,0,0,5,122,176,249,249,193,55,54,210,248,194,9,25,84,79,158,180,138,18,0,0,0,2,35,21,0,1,33,23,
+0,14,38,94,248,248,94,0,10,78,102,93,82,36,1,0,0,10,62,37,0,0,0,4,36,7,93,180,96,56,10,0,0,0,0,0,0,19,143,132,191,248,249,248,248,194,14,0,
+13,95,102,73,6,0,0,86,243,248,225,66,172,204,147,29,64,73,34,54,82,13,0,0,0,0,50,198,236,250,248,248,248,174,132,163,23,138,253,253,154,8,8,29,58,102,36,0,
+0,0,0,5,122,130,39,68,234,249,210,32,0,0,0,25,84,79,158,180,138,18,0,0,18,198,249,203,18,1,33,23,0,14,38,6,0,0,0,0,10,78,102,93,82,36,1,0,
+0,10,62,37,0,0,0,4,36,7,93,180,96,56,10,0,0,0,0,0,0,19,143,127,6,3,36,15,0,0,104,248,244,186,251,250,98,0,0,0,0,2,34,43,172,204,147,29,
+83,0,11,33,55,137,244,248,248,249,250,236,250,201,18,0,10,62,37,81,156,173,175,74,9,41,36,38,82,54,51,4,0,0,0,0,5,113,182,252,249,104,207,248,194,9,0,0,
+61,102,50,138,179,138,18,0,2,35,20,0,0,0,0,30,20,0,99,249,248,94,0,10,79,102,75,28,78,82,9,0,10,62,37,0,0,0,0,0,8,37,81,133,150,54,58,4,
+0,0,0,0,5,123,131,43,15,190,248,248,248,248,194,16,46,52,80,102,74,7,90,243,248,249,248,217,33,172,203,168,83,0,11,33,55,82,13,0,0,22,162,233,250,248,248,248,
+174,66,37,81,156,173,204,250,248,116,36,38,82,54,51,4,0,0,0,0,5,113,147,234,249,203,20,7,0,0,0,0,61,102,50,138,179,138,18,0,2,51,202,248,198,18,0,30,
+20,0,14,38,6,0,0,10,79,102,75,28,78,82,9,0,10,62,37,0,0,0,0,0,8,37,81,133,150,54,58,4,0,0,0,0,5,123,131,43,6,0,2,7,0,0,0,106,
+249,250,250,158,74,7,0,0,2,35,20,0,29,172,203,168,149,27,0,13,104,245,250,248,249,250,149,48,199,249,202,26,62,37,0,69,179,179,86,0,8,36,58,88,26,0,16,2,
+0,0,0,0,0,53,179,183,249,248,248,194,9,0,2,50,44,27,88,50,138,179,138,20,36,20,0,0,0,0,0,0,32,105,248,248,118,3,9,79,102,76,27,30,6,66,80,21,
+58,37,0,0,0,0,0,0,8,81,88,11,88,148,36,2,0,0,0,5,123,124,6,15,38,15,185,248,248,248,248,206,64,0,11,83,102,137,243,248,249,248,243,81,0,27,186,209,
+149,27,0,13,33,55,82,13,22,160,229,249,248,249,248,170,66,37,0,69,179,179,86,94,248,249,127,88,26,0,16,2,0,0,0,0,0,67,238,252,211,24,0,0,0,0,2,50,
+44,27,88,50,138,179,138,20,36,20,18,198,248,198,18,0,32,24,0,14,38,3,9,79,102,76,27,30,6,66,80,21,58,37,0,0,0,0,0,0,8,81,88,11,88,148,36,2,
+0,0,0,5,123,124,6,15,38,6,0,0,0,0,2,122,249,248,245,144,102,72,5,0,36,20,0,0,0,27,186,209,203,148,29,81,244,249,250,251,250,148,36,3,18,198,249,212,
+52,0,74,178,173,123,135,31,33,38,88,54,7,0,0,0,0,0,0,0,52,155,55,124,239,249,248,96,0,2,50,50,2,0,25,90,51,138,180,154,36,0,0,0,0,0,0,0,
+90,249,249,94,11,40,79,102,76,27,32,4,0,0,66,102,41,0,0,0,0,0,0,9,82,69,13,36,10,88,148,22,0,0,5,123,124,6,0,0,15,38,15,185,248,248,249,249,
+194,18,0,13,144,251,250,249,248,243,77,0,3,68,83,171,203,148,29,0,13,33,55,97,164,232,249,248,248,248,175,69,36,0,74,178,173,123,135,31,115,249,250,125,7,0,0,0,
+0,0,0,0,66,232,249,226,139,42,6,0,0,2,50,50,2,0,25,90,51,138,180,154,36,0,0,18,198,248,198,18,0,33,24,0,11,40,79,102,76,27,32,4,0,0,66,102,
+41,0,0,0,0,0,0,9,82,69,13,36,10,88,148,22,0,0,5,123,124,6,0,0,15,38,6,0,0,2,122,249,248,156,248,244,144,102,72,34,17,0,0,0,3,68,83,171,
+171,204,183,245,248,248,250,251,180,41,0,0,0,26,212,249,198,87,178,178,72,0,93,162,58,88,27,6,39,11,0,0,0,0,0,52,159,53,22,208,252,235,249,248,91,50,50,2,
+0,0,0,24,89,52,151,185,138,18,0,0,0,6,13,90,248,248,115,20,8,82,102,77,26,32,3,0,0,9,55,73,76,9,0,0,0,0,8,82,71,3,0,10,39,11,88,148,
+20,1,123,124,6,0,0,0,0,15,38,13,185,249,249,248,248,194,18,94,248,250,251,250,243,77,0,3,69,76,13,27,171,204,149,29,0,13,52,180,238,249,248,248,248,165,64,37,
+0,74,178,178,72,0,93,162,58,149,249,248,115,11,0,0,0,0,0,66,234,249,203,23,122,130,42,4,1,50,50,2,0,0,0,24,89,52,151,185,138,18,0,0,18,199,248,198,
+18,1,33,20,8,82,102,77,26,32,3,0,0,9,55,73,76,9,0,0,0,0,8,82,71,3,0,10,39,11,88,148,20,1,123,124,6,0,0,0,0,15,38,4,1,122,249,248,
+94,0,99,248,244,144,102,77,3,0,0,3,69,76,13,27,27,197,252,252,248,249,250,160,70,80,12,0,11,62,52,198,250,238,184,74,0,10,30,114,185,48,0,0,10,39,11,0,
+0,0,52,159,53,22,207,248,195,127,175,249,249,122,2,0,0,0,0,0,25,101,62,138,179,138,18,0,0,14,130,248,248,94,0,36,84,102,79,48,32,2,0,0,10,62,36,0,
+56,80,10,0,0,9,81,71,2,0,0,0,10,39,11,86,135,121,118,6,0,0,0,0,0,0,14,33,56,198,248,248,248,248,215,248,248,249,250,248,122,3,1,70,68,15,59,20,
+27,170,204,149,26,20,164,237,250,250,248,248,162,66,37,0,74,178,178,74,0,10,30,114,185,48,94,248,248,115,11,0,0,0,66,234,249,203,18,0,5,122,129,37,48,49,2,0,
+0,0,0,0,25,101,62,138,179,138,18,0,0,31,212,248,198,18,0,36,84,102,79,48,32,2,0,0,10,62,36,0,56,80,10,0,0,9,81,71,2,0,0,0,10,39,11,86,
+135,121,118,6,0,0,0,0,0,0,14,33,121,249,248,94,0,0,0,99,248,249,147,102,70,3,1,70,68,15,59,20,94,244,252,254,252,249,145,40,32,54,81,20,56,37,0,87,
+238,253,214,18,10,33,39,88,107,148,22,0,0,9,39,11,0,52,159,53,22,207,248,194,9,5,122,189,250,248,90,0,0,0,0,3,30,39,86,52,138,179,138,18,0,90,249,250,
+105,0,10,78,102,81,25,38,36,5,0,7,60,37,0,0,0,57,81,8,7,82,71,2,0,0,0,0,0,9,39,11,152,179,27,0,0,0,0,0,0,0,0,54,65,15,180,248,
+248,248,248,248,249,248,240,134,102,68,96,150,9,0,23,64,19,26,170,204,152,157,233,249,249,250,250,166,60,37,0,74,178,178,74,0,10,33,39,88,107,148,22,94,248,248,115,11,
+0,66,234,249,203,18,0,0,0,5,122,150,69,6,0,0,0,0,0,3,30,39,86,52,138,179,138,18,0,0,39,212,248,198,27,78,102,81,25,38,36,5,0,7,60,37,0,0,
+0,57,81,8,7,82,71,2,0,0,0,0,0,9,39,11,152,179,27,0,0,0,0,0,0,0,0,125,250,248,94,0,0,0,0,3,121,248,248,146,102,68,96,150,9,0,23,64,
+246,248,249,252,252,200,50,0,12,33,54,87,33,0,74,178,184,214,248,200,49,39,88,28,0,88,148,22,0,0,9,39,61,159,53,22,207,248,194,9,0,2,54,147,176,249,248,90,
+0,0,3,36,19,0,24,90,52,138,179,138,101,248,248,106,56,27,77,102,75,45,45,0,13,38,6,4,22,0,0,0,0,0,55,76,78,68,2,0,0,0,0,0,0,0,14,141,
+119,85,145,22,0,0,0,0,0,2,50,48,16,36,14,180,248,248,248,249,248,241,75,14,83,102,102,128,122,5,0,23,64,18,21,168,210,244,249,248,248,249,178,87,33,0,74,178,
+178,74,0,10,33,39,88,28,0,88,148,22,94,248,248,115,74,234,249,203,18,0,0,0,0,2,54,147,130,40,5,0,0,0,3,36,19,0,24,90,52,138,179,138,18,0,0,36,
+210,249,215,113,75,45,45,0,13,38,6,4,22,0,0,0,0,0,55,76,78,68,2,0,0,0,0,0,0,0,14,141,119,85,145,22,0,0,0,0,0,2,122,249,248,117,5,0,
+0,0,3,36,19,102,248,248,144,102,102,128,122,5,0,97,249,250,249,249,206,207,150,30,0,13,33,54,80,83,178,178,74,18,200,249,207,100,28,0,0,0,88,148,22,0,0,59,
+174,62,22,207,248,194,9,0,2,50,50,7,122,176,249,248,90,3,36,19,0,0,0,23,89,52,138,206,252,249,94,0,30,97,102,74,27,29,31,23,0,14,38,6,0,0,0,0,
+0,0,8,97,102,11,0,0,0,0,0,0,0,5,123,129,42,11,88,148,22,0,0,0,2,50,50,2,0,16,38,112,248,248,249,248,248,225,133,5,70,100,102,69,124,122,5,0,
+24,64,34,157,246,254,252,248,248,159,33,54,80,83,178,178,74,0,10,33,39,88,28,0,0,0,88,148,22,94,248,249,243,249,203,18,0,0,0,0,2,50,50,7,122,130,43,5,
+0,3,36,19,0,0,0,23,89,52,138,179,138,18,0,0,45,220,251,214,43,29,31,23,0,14,38,6,0,0,0,0,0,0,8,97,102,11,0,0,0,0,0,0,0,5,123,129,
+42,11,88,148,22,0,0,0,2,122,249,248,94,16,38,5,0,3,36,19,0,80,172,248,250,127,102,69,124,122,85,243,248,249,251,151,49,170,204,151,31,0,13,33,113,203,182,74,
+0,10,49,207,250,204,18,0,0,0,0,88,148,19,48,159,60,58,209,248,194,9,0,2,50,50,2,0,5,123,176,249,248,112,19,0,0,0,0,0,23,90,124,252,253,181,18,8,
+73,102,94,38,28,2,0,33,24,0,14,38,6,0,0,0,0,9,81,66,54,78,9,0,0,0,0,0,5,123,124,6,9,39,11,88,148,22,0,2,50,50,2,0,0,0,113,249,
+248,249,248,248,248,248,225,166,70,23,88,102,70,124,122,6,0,45,185,235,249,252,254,252,166,0,13,33,113,203,182,74,0,10,33,39,88,28,0,0,0,0,0,88,148,19,133,252,
+249,225,28,0,0,0,0,2,50,50,2,0,5,123,131,43,8,34,19,0,0,0,0,0,23,90,53,138,179,138,18,8,73,113,219,249,204,20,0,33,24,0,14,38,6,0,0,0,
+0,9,81,66,54,78,9,0,0,0,0,0,5,123,124,6,9,39,11,88,148,22,0,2,122,249,248,94,0,0,15,36,8,34,19,0,0,11,124,194,162,23,88,102,70,166,249,248,
+249,250,157,75,17,25,169,204,153,30,0,83,188,194,132,12,7,33,39,100,204,248,198,18,0,0,0,0,81,152,149,48,22,209,249,197,9,0,2,50,50,2,0,0,0,7,81,111,
+250,248,90,0,0,0,0,0,0,104,250,250,181,179,142,87,96,74,42,71,18,0,0,1,33,24,0,14,38,6,0,0,9,82,71,2,0,58,80,8,0,0,0,5,123,124,6,0,
+0,9,39,12,88,148,24,50,50,2,0,0,0,108,248,248,250,248,246,248,248,248,250,233,134,5,18,89,102,69,124,116,34,162,236,250,248,249,252,233,153,30,0,83,188,194,132,12,
+7,33,39,88,28,0,0,0,0,0,0,0,81,159,231,249,248,248,115,12,0,0,2,50,50,2,0,0,0,7,81,26,58,20,0,0,0,0,0,0,0,22,89,53,138,179,142,87,
+96,74,58,214,248,198,18,1,33,24,0,14,38,6,0,0,9,82,71,2,0,58,80,8,0,0,0,5,123,124,6,0,0,9,39,12,88,148,24,122,249,248,94,0,0,0,0,15,
+58,20,0,0,0,3,74,159,124,5,18,89,151,246,252,252,251,147,31,27,62,16,25,169,204,147,93,178,182,98,54,83,40,38,88,28,18,198,248,198,18,0,0,0,46,178,179,45,
+207,248,196,47,10,1,50,50,2,0,0,0,0,0,3,32,113,249,248,90,0,0,0,0,90,248,249,150,51,142,203,182,84,27,27,28,62,16,0,0,1,33,24,0,14,38,4,8,
+82,71,2,0,0,0,59,80,8,0,5,123,124,6,0,0,0,0,9,39,10,88,169,68,2,0,0,0,108,248,248,249,249,241,74,176,248,250,250,248,228,132,5,18,90,102,65,122,
+191,234,249,249,250,248,155,169,204,147,93,178,182,98,54,83,40,38,88,28,0,0,1,0,0,0,0,0,61,238,253,209,105,248,248,115,10,1,50,50,2,0,0,0,0,0,3,32,
+30,34,5,0,0,0,0,0,0,0,22,90,51,142,203,182,84,27,27,44,212,248,198,18,1,33,24,0,14,38,4,8,82,71,2,0,0,0,59,80,8,0,5,123,124,6,0,0,
+0,0,9,39,10,88,200,250,248,94,0,0,0,0,3,32,30,34,5,0,3,70,71,8,122,122,5,93,247,251,250,252,186,131,7,0,27,64,15,23,162,204,192,176,70,11,37,68,
+86,83,26,0,6,49,199,248,198,18,0,52,162,117,128,235,249,194,9,8,34,52,48,2,0,0,0,0,0,3,36,19,0,104,249,248,90,0,0,90,248,248,94,20,82,98,185,201,
+150,48,3,0,27,64,16,0,0,1,33,24,0,12,37,80,70,2,0,0,6,32,2,58,80,13,123,124,6,0,0,0,0,0,0,8,34,52,120,149,22,0,0,113,248,248,249,248,
+239,70,35,18,197,250,248,248,248,228,132,5,20,91,114,179,244,251,248,248,249,172,15,23,162,204,192,176,70,11,37,68,86,83,26,0,6,33,4,0,0,0,0,66,234,251,226,157,
+22,94,248,248,112,52,48,2,0,0,0,0,0,3,36,19,0,16,38,5,0,0,0,0,0,0,0,20,82,98,185,201,150,48,3,0,43,212,248,198,18,1,33,24,0,12,37,80,
+70,2,0,0,6,32,2,58,80,13,123,124,6,0,0,0,0,0,0,8,34,123,251,252,108,0,0,0,0,3,36,19,0,16,35,10,68,71,3,0,5,122,165,243,248,250,251,251,
+83,123,122,5,0,28,64,17,88,194,204,166,25,7,38,56,96,85,8,3,38,15,18,198,248,198,66,164,120,68,207,250,229,31,0,1,50,65,12,0,0,0,0,0,3,36,19,0,
+0,0,104,249,248,90,90,248,248,94,0,7,81,102,97,148,188,139,18,0,0,28,64,18,0,0,1,33,20,6,83,88,7,0,0,6,38,15,0,0,63,164,128,6,0,0,0,0,
+0,0,0,1,50,65,12,88,148,22,118,248,248,249,248,239,58,0,15,87,77,177,248,248,248,248,228,132,1,39,197,245,250,252,252,248,140,28,64,17,88,194,204,166,25,7,38,56,
+96,85,8,3,38,15,0,0,0,0,66,235,251,213,18,88,148,22,94,248,249,132,12,0,0,0,0,0,3,36,19,0,0,0,16,38,5,0,0,0,0,0,0,7,81,102,97,148,
+188,139,18,0,0,44,212,248,198,18,1,33,20,6,83,88,7,0,0,6,38,15,0,0,63,164,128,6,0,0,0,0,0,0,0,1,122,250,248,150,148,22,0,0,3,36,19,0,
+0,0,15,87,70,2,0,0,0,85,249,252,248,249,252,185,102,65,125,122,11,0,30,97,175,172,175,203,155,51,38,88,51,52,81,42,11,0,0,18,198,249,235,130,68,207,248,194,
+95,148,24,50,48,11,37,12,0,0,0,3,36,19,0,0,0,0,0,104,249,248,248,248,94,0,10,79,102,79,85,71,138,179,138,18,0,0,30,32,0,0,0,0,33,86,66,16,
+36,5,5,38,14,0,0,5,123,154,83,8,0,0,0,0,0,0,2,50,48,11,37,12,88,197,249,248,249,248,239,54,0,3,67,75,35,13,176,248,248,248,248,227,130,157,240,251,
+251,250,252,195,11,0,30,97,175,172,175,203,155,51,38,88,51,52,81,42,11,0,0,0,0,66,235,251,213,18,0,0,88,148,24,126,249,248,114,12,0,0,0,3,36,19,0,0,
+0,0,0,16,38,5,0,0,0,0,10,79,102,79,85,71,138,179,138,18,0,0,46,205,248,198,18,0,33,86,66,16,36,5,5,38,14,0,0,5,123,154,83,8,0,0,0,0,
+0,0,2,122,249,248,117,12,88,148,22,3,36,19,0,0,0,3,67,75,35,4,0,0,81,243,248,252,252,249,155,98,93,102,35,124,79,0,74,178,178,69,24,168,206,164,100,25,
+8,34,71,85,11,0,0,0,66,235,251,213,210,248,194,9,0,90,169,68,2,0,8,39,12,0,3,36,19,0,0,0,0,0,0,0,156,249,248,150,0,10,79,102,76,26,60,197,
+69,138,179,138,18,0,0,0,0,0,0,8,79,83,22,0,13,37,37,13,0,0,5,123,124,6,60,79,8,0,0,0,0,3,50,50,2,0,8,39,128,250,252,250,248,234,54,0,
+3,70,71,43,23,38,10,176,248,248,248,249,243,246,249,249,250,251,151,124,79,0,74,178,178,69,24,168,206,164,100,25,8,34,71,85,11,0,0,0,66,235,251,213,18,0,0,0,
+0,90,169,68,96,248,248,115,12,0,3,36,19,0,0,0,0,0,0,0,16,38,5,0,0,10,79,102,76,26,45,79,48,138,179,138,18,0,0,18,198,248,198,26,79,83,22,0,
+13,37,37,13,0,0,5,123,124,6,60,79,8,0,0,0,0,3,122,249,248,94,8,39,12,88,149,55,19,0,0,0,3,70,71,43,23,38,5,81,243,248,248,249,251,190,30,25,
+25,47,2,3,6,73,178,178,74,0,10,48,175,209,162,27,3,42,39,54,82,13,0,52,164,130,213,248,248,198,9,0,1,47,121,149,22,0,0,34,100,14,33,19,0,0,0,0,
+0,0,0,90,248,248,249,248,96,79,102,76,27,48,198,248,202,54,138,179,138,18,0,0,0,0,9,82,70,6,30,22,3,43,43,4,0,5,123,124,6,0,0,60,78,8,0,0,
+1,47,50,2,0,0,0,126,249,248,251,252,236,54,0,3,70,71,5,110,124,21,39,11,176,248,249,252,250,251,252,248,249,153,2,3,6,73,178,178,74,0,10,48,175,209,162,27,
+3,42,39,54,82,13,0,66,235,251,213,18,0,0,0,0,1,47,121,149,22,94,248,249,155,14,33,19,0,0,0,0,0,0,0,0,0,16,39,3,9,79,102,76,27,32,0,16,
+84,54,138,179,138,18,0,0,18,198,248,216,83,6,30,22,3,43,43,4,0,5,123,124,6,0,0,60,78,8,0,0,1,120,249,248,94,0,0,8,37,14,110,156,22,0,0,3,
+70,71,5,110,124,21,108,243,248,248,249,250,147,132,123,5,5,0,0,0,72,178,178,74,0,10,33,39,95,173,202,155,57,9,10,33,55,82,60,163,120,68,210,248,248,201,18,0,
+1,22,4,88,148,19,19,149,93,58,26,0,37,19,0,0,0,0,90,248,248,94,101,249,250,156,76,27,48,199,248,203,36,89,56,138,179,138,18,0,0,9,82,71,3,0,0,33,
+49,9,12,38,11,123,124,6,0,0,0,0,66,79,8,0,1,22,4,0,0,0,126,248,248,250,249,238,165,16,3,70,71,3,0,7,122,122,19,38,11,183,252,250,249,248,252,252,
+132,0,0,0,72,178,178,74,0,10,33,39,95,173,202,155,57,9,10,33,55,82,74,235,251,213,18,0,11,3,0,0,1,22,4,88,148,19,106,252,250,128,26,0,37,19,0,0,
+0,0,0,0,0,0,12,40,79,102,76,27,32,3,0,0,20,89,56,138,179,138,18,0,0,26,216,250,199,18,0,33,49,9,12,38,11,123,124,6,0,0,0,0,66,79,8,0,
+90,248,248,94,0,0,0,0,8,58,26,86,141,16,3,70,71,3,0,7,122,165,244,249,248,249,250,149,36,7,122,122,149,13,0,74,178,178,74,0,10,34,40,88,28,22,167,207,
+158,31,0,13,33,94,189,116,65,207,248,198,204,249,199,18,0,0,0,0,83,140,140,84,34,23,34,62,156,39,0,0,0,90,248,248,94,0,8,146,251,250,107,48,199,248,203,26,
+44,29,87,56,138,179,138,18,9,82,71,2,0,0,6,34,39,21,0,19,143,127,6,0,0,0,0,0,12,84,77,7,0,0,0,0,0,126,248,248,249,249,233,64,76,137,86,71,
+3,0,0,0,5,122,122,15,55,174,247,249,248,248,248,241,159,13,0,74,178,178,74,0,10,34,40,88,28,22,167,207,158,31,0,13,33,105,240,251,213,18,0,0,17,36,3,0,
+0,0,0,0,83,140,140,147,249,249,112,62,156,39,0,0,0,0,0,0,0,0,8,82,102,77,26,32,3,0,0,8,44,29,87,56,138,179,138,18,9,82,84,198,248,198,23,34,
+39,21,0,19,143,127,6,0,0,0,0,0,12,84,77,94,248,248,94,0,0,0,0,3,34,23,34,12,76,137,86,71,3,0,0,0,85,249,252,248,250,250,149,36,3,0,5,128,
+141,113,76,178,178,74,0,10,34,40,88,28,0,6,50,168,203,156,33,0,60,175,127,108,209,248,194,9,18,202,249,199,18,0,0,0,18,168,169,52,19,0,58,174,64,0,0,0,
+90,248,248,94,0,12,79,102,144,249,249,216,248,203,27,57,33,0,19,88,56,138,179,142,94,71,2,0,0,6,38,13,0,33,28,123,131,43,6,0,0,0,0,0,0,14,83,79,
+14,0,0,0,130,248,248,249,248,230,56,36,16,130,177,25,0,0,0,0,0,5,117,121,165,241,249,248,248,248,248,250,233,125,76,178,178,74,0,10,34,40,88,28,0,6,50,168,
+203,156,33,0,74,237,251,222,28,0,0,0,0,19,36,3,0,0,0,0,18,168,169,52,106,248,249,203,64,0,0,0,0,0,0,0,0,12,79,102,79,48,32,2,0,0,10,57,
+33,0,19,88,56,138,179,142,94,71,2,18,198,248,206,30,0,33,28,123,131,43,6,0,0,0,0,0,0,14,144,250,248,94,0,0,0,0,3,36,19,0,8,36,16,130,177,25,
+0,0,0,81,243,248,252,252,249,160,36,2,0,0,10,66,0,142,179,178,74,0,10,33,40,88,28,0,6,38,13,21,165,204,150,75,156,121,82,217,250,197,9,0,0,18,202,249,
+199,18,0,22,147,83,105,154,19,48,159,59,38,13,0,0,126,248,94,3,8,73,102,76,26,127,249,248,219,28,62,36,0,0,0,20,88,54,142,203,170,20,0,0,6,38,14,0,
+0,6,140,136,6,14,35,6,0,0,0,0,0,0,14,83,85,12,0,130,248,248,249,248,230,50,0,8,88,74,89,148,22,0,0,4,6,0,27,195,247,249,249,248,248,248,250,249,
+248,234,186,178,74,0,10,33,40,88,28,0,6,38,13,21,165,204,150,88,233,251,216,67,82,13,0,0,0,0,19,36,3,0,0,22,147,83,105,154,19,124,252,249,115,13,0,0,
+0,0,0,3,8,73,102,76,26,38,36,6,0,10,62,36,0,0,0,20,88,54,142,203,170,20,0,0,24,206,248,198,18,6,140,136,6,14,35,6,0,0,0,0,0,90,248,250,
+148,12,0,0,0,3,36,19,0,0,0,8,88,74,89,148,22,0,81,243,248,248,249,251,189,41,36,6,0,10,62,37,72,170,178,74,0,10,33,40,88,28,0,6,38,14,0,0,
+20,159,203,194,128,64,209,249,207,89,13,0,0,0,18,202,249,199,39,148,90,36,19,81,152,149,48,0,2,38,13,0,0,50,0,6,35,46,69,28,47,198,248,249,248,129,37,0,
+0,0,0,0,17,82,99,168,180,138,18,6,38,14,0,0,5,123,124,38,24,0,13,38,6,0,0,0,0,0,0,13,78,84,136,248,248,249,248,230,45,0,3,68,71,36,12,88,
+148,22,0,6,37,31,168,246,251,252,248,249,128,191,249,248,250,253,241,89,0,10,33,40,88,28,0,6,38,14,0,0,20,159,206,241,251,212,27,32,55,82,13,0,0,0,0,19,
+36,3,22,148,90,36,19,81,152,149,125,248,248,114,13,0,0,0,0,6,35,46,69,28,32,1,13,34,16,60,37,0,0,0,0,0,17,82,99,168,180,138,18,6,38,31,198,248,
+199,132,124,38,24,0,13,38,6,0,0,0,90,248,248,102,78,84,12,0,3,36,19,0,0,0,3,68,71,36,12,88,148,96,243,248,249,249,250,147,132,121,17,34,16,60,37,0,
+178,178,74,0,10,33,40,88,28,0,6,38,14,0,0,0,0,66,195,209,173,213,248,197,41,55,82,13,0,0,0,18,202,250,231,101,36,19,0,46,174,152,16,7,44,10,36,14,
+0,0,0,0,10,33,24,46,199,248,203,117,250,249,90,0,0,0,0,0,6,82,102,56,138,179,141,53,14,0,0,5,123,124,6,1,33,24,0,14,38,6,0,0,0,0,0,0,
+13,172,250,248,249,248,230,45,0,3,70,71,2,5,38,13,88,148,23,0,32,183,246,249,248,252,252,132,73,42,171,250,253,253,250,207,31,33,40,88,28,0,6,38,14,0,0,0,
+0,79,242,254,237,47,0,13,33,55,82,13,0,0,0,0,19,55,149,89,36,19,0,46,174,152,16,98,249,248,113,14,0,0,0,0,10,33,24,30,3,0,0,20,82,41,0,0,
+0,0,0,0,6,82,102,56,138,179,141,53,14,0,18,199,252,226,23,1,33,24,0,14,38,6,0,90,248,248,94,0,13,78,84,16,32,19,0,0,0,3,70,71,2,5,38,13,
+141,250,249,248,249,251,152,33,7,122,122,25,73,38,0,74,178,74,0,10,33,40,88,28,0,6,38,14,0,0,0,0,52,157,124,177,245,252,200,9,13,33,54,80,28,0,0,0,
+40,233,251,206,35,0,53,157,48,81,148,26,70,68,6,36,14,0,0,0,0,28,70,200,248,203,27,59,163,252,248,90,0,0,0,9,82,66,24,86,56,140,190,144,18,0,6,122,
+124,6,0,0,1,32,12,0,14,38,5,0,22,2,0,1,169,252,251,251,249,230,41,0,3,70,71,3,0,0,7,39,13,88,141,83,189,246,250,248,248,248,184,153,46,32,81,229,
+253,250,248,248,213,63,88,28,0,6,38,14,0,0,0,0,66,233,252,238,206,156,24,0,13,33,54,80,28,0,0,0,24,155,110,34,18,0,53,157,48,81,148,26,138,250,248,113,
+14,0,0,0,0,28,56,10,0,0,10,59,109,140,11,0,0,0,0,9,82,66,24,86,56,140,190,144,18,0,6,132,225,248,198,18,1,32,12,0,14,38,93,248,249,96,0,1,
+63,133,86,96,27,0,0,0,3,70,71,3,0,0,7,107,244,250,252,250,251,156,56,10,0,5,127,153,46,32,78,178,74,0,10,33,40,88,28,0,6,38,14,0,0,0,0,52,
+167,118,67,211,252,243,148,17,0,12,30,74,99,16,0,13,141,101,208,249,198,18,55,52,0,0,88,148,25,70,68,6,36,14,0,0,24,46,200,249,205,26,62,37,11,175,252,248,
+90,0,9,82,71,3,0,17,86,78,142,179,137,30,117,124,13,0,0,0,0,0,2,0,0,14,32,44,53,4,0,142,252,253,252,251,235,51,0,3,70,71,3,0,0,0,0,7,
+38,11,120,221,249,249,248,249,248,113,66,140,112,86,190,182,192,248,248,249,249,223,52,0,6,38,14,0,0,0,0,66,236,251,213,36,163,204,144,17,0,12,30,74,99,16,0,13,
+141,89,45,45,1,0,55,52,0,0,88,148,25,138,250,248,113,14,0,0,24,30,11,38,8,9,62,37,11,129,142,11,0,0,9,82,71,3,0,17,86,78,142,179,137,30,117,124,
+30,198,248,198,18,0,2,0,0,99,249,249,128,4,0,4,131,179,153,90,82,12,0,3,70,71,3,0,0,0,81,243,249,248,252,253,190,44,9,38,8,9,66,140,112,86,190,180,
+4,8,33,40,88,28,0,6,38,14,0,0,0,0,52,167,134,75,207,248,198,166,204,144,17,0,48,63,56,82,13,7,47,36,32,202,249,199,18,0,0,0,0,88,148,24,70,68,
+6,36,12,21,48,198,248,205,54,61,35,0,0,5,175,252,248,96,82,71,2,0,0,3,46,90,56,136,179,169,118,16,61,16,0,0,0,0,0,0,0,0,49,69,10,0,144,248,
+249,252,253,241,114,82,18,66,70,3,0,0,0,0,0,0,3,80,201,250,253,249,248,248,130,61,35,0,142,179,175,99,9,170,249,249,250,249,207,32,38,14,0,0,0,0,66,236,
+251,215,18,0,19,163,204,144,17,0,48,63,56,82,13,7,47,36,16,16,36,3,0,0,0,0,0,88,148,24,138,250,248,113,12,21,33,1,0,8,38,61,35,0,0,5,129,141,
+6,8,82,71,2,0,0,3,46,90,56,136,179,169,118,16,61,32,198,248,198,18,0,0,90,248,249,138,10,0,0,0,24,156,183,137,87,82,18,66,70,3,0,0,0,81,243,248,
+248,251,251,203,160,22,0,8,38,61,35,0,142,179,175,99,40,34,39,88,28,0,6,38,14,0,0,0,0,52,164,118,82,218,248,194,55,36,162,204,145,56,53,16,31,55,81,17,
+32,19,0,18,202,249,199,18,0,0,0,0,98,150,24,70,68,6,47,54,198,248,203,26,61,56,7,0,0,0,5,174,252,250,135,2,0,0,6,38,10,16,88,62,171,179,134,15,
+30,64,14,1,48,22,0,0,0,45,53,17,35,147,248,248,249,249,240,191,136,82,100,68,0,0,0,0,0,0,0,0,59,207,249,250,250,252,249,109,61,56,7,72,170,179,142,12,
+40,38,181,250,249,248,248,214,39,0,0,0,0,66,235,251,216,70,14,1,47,36,162,204,145,56,53,16,31,55,81,17,32,19,0,0,19,36,3,0,0,0,0,0,98,150,24,138,
+250,248,120,39,0,0,0,8,61,56,7,0,0,0,5,127,140,83,70,2,0,0,6,38,10,16,88,62,171,179,134,15,30,64,31,198,249,203,18,90,248,249,127,17,35,6,0,3,
+36,38,142,179,136,82,100,68,0,0,0,0,81,243,248,248,250,252,187,58,87,148,22,8,61,56,7,72,170,179,142,12,43,58,86,27,0,6,38,14,0,0,0,0,52,164,120,68,
+207,249,208,60,47,4,18,162,208,168,19,0,13,32,55,95,28,0,0,0,18,202,249,199,18,0,0,0,0,89,148,24,67,76,46,205,248,203,27,62,35,9,38,10,0,0,0,10,
+197,253,248,90,0,6,38,14,0,0,22,165,141,135,179,138,18,28,58,53,46,6,0,0,46,55,4,0,155,249,248,249,248,221,58,145,179,163,101,79,11,0,0,0,0,0,0,60,
+208,249,250,249,248,250,194,79,35,9,101,181,178,76,112,125,43,58,89,172,248,248,249,248,212,27,0,0,66,235,251,213,18,27,58,53,47,4,18,162,208,168,19,0,13,32,55,95,
+28,0,0,0,0,19,36,3,0,0,0,0,0,89,148,24,136,250,249,111,15,0,10,62,35,9,38,10,0,0,0,10,163,167,12,0,0,6,38,14,0,0,22,165,141,135,179,138,
+18,28,58,68,208,248,216,248,249,128,4,0,14,36,9,34,19,0,20,145,179,163,101,79,11,0,0,81,243,248,248,250,252,187,54,31,14,88,152,79,35,9,101,181,178,76,112,125,
+142,93,53,1,5,38,14,0,0,0,0,52,164,120,68,207,248,194,66,76,17,0,1,57,178,170,22,0,0,13,52,62,79,13,0,0,0,18,202,249,199,18,0,0,0,0,88,148,
+42,96,213,248,207,28,62,37,0,0,10,39,10,0,9,75,65,176,252,248,93,38,14,0,0,5,122,131,88,57,138,179,138,19,59,76,17,0,1,46,54,5,9,158,248,248,250,248,
+221,36,0,24,177,199,135,84,85,12,0,0,0,0,62,208,249,250,248,248,248,106,128,163,23,69,181,190,81,0,14,139,142,93,53,6,164,249,248,248,248,212,27,66,235,251,213,18,
+0,1,59,76,17,0,1,57,178,170,22,0,0,13,52,62,79,13,0,0,0,0,19,36,3,0,0,0,0,0,88,148,42,147,250,248,103,11,62,37,0,0,10,39,10,0,9,75,
+65,130,140,10,5,38,14,0,0,5,122,131,88,57,138,179,138,19,59,76,34,216,248,249,137,5,9,22,0,14,58,21,0,0,0,24,177,199,135,84,85,12,81,243,248,248,250,252,
+187,52,0,6,22,11,128,163,23,69,181,190,81,0,14,139,168,136,13,36,36,11,0,0,0,0,52,164,120,72,207,248,195,57,44,28,59,16,39,51,19,55,84,12,0,31,28,29,
+54,82,13,0,0,0,18,202,249,199,18,0,0,0,0,102,168,204,250,217,29,57,36,0,0,0,0,10,33,16,79,68,1,5,175,252,249,97,0,0,5,122,122,5,17,87,60,138,
+180,161,58,28,59,16,39,52,4,0,162,250,249,249,249,225,41,0,3,70,87,149,179,130,82,84,12,0,0,52,205,249,250,248,248,248,103,59,36,81,156,173,175,81,35,16,29,44,
+168,136,13,36,41,166,248,248,248,248,223,236,251,213,18,0,3,50,44,28,59,16,39,51,19,55,84,12,0,31,28,29,54,82,13,0,0,0,0,19,34,3,0,0,0,0,0,102,
+160,28,138,250,248,127,36,0,0,0,0,10,33,16,79,68,1,5,129,141,41,11,0,0,5,122,122,5,17,87,60,138,180,161,58,28,128,248,249,250,199,18,22,87,31,24,28,32,
+6,0,3,70,87,149,179,130,82,138,243,248,248,249,251,187,52,0,0,0,7,59,36,81,156,173,175,81,35,16,29,44,32,122,125,46,38,20,23,0,0,52,164,120,72,207,248,195,
+59,46,1,0,26,73,49,1,0,0,50,82,40,14,0,12,32,55,82,13,0,0,0,18,202,249,199,18,0,0,24,47,218,252,208,83,94,33,0,0,0,0,0,0,14,93,73,1,
+0,0,11,185,252,248,105,5,122,122,5,0,0,17,85,60,159,193,138,18,26,73,49,1,0,154,248,249,251,249,221,42,34,11,68,70,3,25,150,179,127,82,84,12,40,151,249,250,
+248,248,248,100,60,34,0,69,179,179,86,0,16,52,43,86,32,122,125,46,38,25,170,248,248,249,252,251,217,18,0,4,52,46,1,0,26,73,49,1,0,0,50,82,40,14,0,12,
+32,55,82,13,0,0,0,0,18,35,3,0,0,0,24,31,88,148,23,138,250,249,90,0,0,0,0,0,14,93,73,1,0,0,11,144,142,25,23,5,122,122,5,0,0,17,85,60,
+159,193,138,101,249,250,134,198,248,198,18,30,101,42,0,13,34,11,68,70,3,25,150,179,168,247,250,248,249,248,169,52,0,0,0,10,60,34,0,69,179,179,86,0,16,52,43,86,
+0,5,129,127,30,58,8,0,52,164,120,72,207,248,195,60,48,2,0,2,44,59,55,15,0,0,0,70,89,11,0,0,13,33,55,82,13,0,0,0,18,202,249,199,18,24,48,198,
+248,221,160,74,82,66,2,0,0,0,0,9,80,73,35,8,0,0,14,14,179,253,249,167,122,5,0,0,0,0,20,102,85,138,179,139,59,59,55,15,158,248,248,249,249,233,57,0,
+14,88,70,2,0,0,26,152,179,126,78,89,145,248,250,248,248,248,96,62,37,0,74,178,173,123,135,31,31,44,100,34,0,5,129,127,30,58,13,162,249,252,251,249,219,27,4,53,
+48,2,0,2,44,59,55,15,0,0,0,70,89,11,0,0,13,33,55,82,13,0,0,0,0,19,36,3,0,24,33,1,0,88,152,74,146,250,248,90,0,0,0,9,80,73,35,8,
+0,0,14,14,135,150,26,119,122,5,0,0,0,0,20,102,85,138,206,252,250,131,55,32,198,248,199,46,44,86,30,0,14,88,70,2,0,0,26,184,251,252,250,250,248,151,52,0,
+0,0,10,62,37,0,74,178,181,163,135,31,31,44,100,34,10,0,5,131,139,20,36,54,163,120,72,207,248,195,61,47,1,0,2,49,51,3,25,64,16,1,35,15,48,84,13,0,
+0,13,33,55,82,13,0,0,0,18,202,249,203,62,198,248,203,27,129,163,25,69,70,3,0,0,9,82,71,1,8,37,7,0,0,17,35,172,252,252,92,0,0,0,0,4,49,53,
+82,58,138,193,162,21,29,182,248,248,249,248,221,53,87,29,62,73,35,5,0,0,0,27,153,179,144,153,248,250,248,248,243,96,62,37,0,74,178,178,72,0,93,162,58,86,35,32,
+10,0,5,131,139,20,36,72,245,251,249,248,248,218,75,47,1,0,2,49,51,3,25,64,16,1,35,15,48,84,13,0,0,13,33,55,82,13,0,0,0,0,18,31,24,32,1,0,
+0,10,129,163,25,138,250,248,90,0,9,82,71,1,8,37,7,0,0,17,35,123,178,118,3,0,0,0,0,4,49,53,82,127,252,253,196,21,25,64,33,198,249,202,18,30,87,29,
+62,73,35,5,0,0,81,244,252,253,252,248,151,58,0,0,0,10,62,37,0,74,178,186,231,243,145,162,58,86,35,32,39,8,17,41,124,113,61,172,119,71,207,248,195,61,46,1,
+0,4,49,51,3,0,0,26,61,42,15,0,0,50,85,17,0,0,13,33,55,82,13,0,0,0,18,206,250,238,248,203,27,62,37,88,148,23,70,70,0,8,82,71,2,0,0,7,
+37,8,17,36,6,115,201,252,248,90,0,0,5,54,46,0,15,83,86,159,180,140,165,249,250,249,248,217,27,0,38,102,75,0,12,38,6,0,0,0,30,172,223,251,250,250,248,243,
+97,62,37,0,74,178,178,74,0,10,33,114,185,47,0,10,39,8,17,41,124,113,76,236,251,236,248,248,248,250,224,28,0,4,49,51,3,0,0,26,61,42,15,0,0,50,85,17,
+0,0,13,33,55,82,13,0,0,0,0,33,53,1,0,0,10,62,37,88,148,23,138,250,248,95,82,71,2,0,0,7,37,8,17,36,6,115,170,136,9,0,0,0,5,54,46,0,
+100,250,251,194,180,138,18,26,61,57,201,248,198,18,38,102,75,0,12,38,6,81,243,248,249,252,253,198,90,78,12,0,10,62,37,0,74,178,186,231,248,248,245,159,185,47,0,10,
+8,46,38,2,0,134,182,122,91,207,248,195,61,46,0,0,0,43,51,3,0,0,0,0,48,66,15,0,0,0,50,42,0,0,0,13,33,55,82,13,0,0,21,105,243,249,241,62,
+62,37,0,0,112,157,22,67,67,77,69,2,0,0,0,0,7,46,38,7,122,119,18,174,252,248,90,5,54,46,0,0,0,48,102,61,140,227,252,249,249,250,219,27,0,13,78,65,
+81,29,0,14,38,6,0,0,42,120,202,247,251,250,247,101,58,37,0,74,189,185,74,0,10,33,40,88,106,148,22,0,8,46,38,2,0,143,239,251,217,25,158,248,250,249,248,217,
+27,43,51,3,0,0,0,0,48,66,15,0,0,0,50,42,0,0,0,13,33,55,82,13,0,0,21,82,70,36,32,30,62,37,0,0,112,157,22,136,250,250,135,2,0,0,0,0,
+7,46,38,7,122,119,18,127,142,11,0,5,54,46,0,90,248,249,158,61,138,179,138,18,48,66,32,198,248,201,90,65,81,29,0,14,107,243,248,248,249,248,215,194,117,77,82,23,
+58,37,0,74,189,185,128,243,248,249,249,247,153,148,22,0,17,38,36,10,50,149,173,152,210,249,197,61,45,0,0,0,0,14,3,0,0,0,3,36,15,24,64,18,0,0,0,0,
+0,0,0,0,13,33,55,82,12,19,96,221,250,241,251,237,69,0,0,0,24,130,155,31,102,98,5,0,0,0,0,0,16,38,40,127,122,5,0,5,176,252,248,125,45,0,0,0,
+0,10,21,88,184,252,253,252,249,216,84,14,11,84,50,0,29,90,30,0,14,37,4,41,101,102,80,168,243,248,137,102,42,0,74,178,185,120,20,8,33,40,88,28,0,88,148,22,
+17,38,36,10,64,231,253,232,33,34,16,178,249,248,248,248,217,39,3,0,0,0,3,36,15,24,64,18,0,0,0,0,0,0,0,0,13,33,55,82,12,19,84,102,89,28,96,174,
+55,0,0,0,24,130,155,31,158,251,248,90,0,0,0,0,16,38,40,127,122,5,0,5,129,140,16,54,45,0,90,248,248,100,21,85,62,138,180,154,32,24,64,31,200,250,209,18,
+29,90,30,81,244,249,248,249,248,151,80,158,168,109,77,102,42,0,74,178,185,120,20,87,245,249,250,249,243,141,148,22,55,1,9,76,164,118,73,230,252,199,75,44,0,0,0,0,
+0,0,0,31,3,1,34,19,0,0,27,64,18,0,0,0,0,0,0,0,0,13,33,53,82,96,221,250,207,41,212,251,231,39,0,0,0,19,127,182,80,64,68,3,0,0,0,15,
+34,6,126,140,9,0,0,0,5,177,253,249,90,0,0,0,0,0,5,172,250,250,252,253,235,43,23,64,85,48,0,0,0,30,90,30,0,10,63,100,102,52,0,36,161,196,142,84,
+80,82,178,178,74,20,63,43,39,88,28,0,0,0,88,156,55,1,9,89,235,251,213,132,122,21,69,44,158,248,248,248,248,221,27,31,3,1,34,19,0,0,27,64,18,0,0,0,
+0,0,0,0,0,13,33,53,82,84,102,92,21,7,64,124,148,22,0,0,0,19,127,182,80,135,250,248,90,0,0,15,34,6,126,140,9,0,0,0,5,130,158,49,0,90,248,248,
+94,0,0,16,85,62,150,184,138,18,23,64,97,209,248,198,18,30,143,244,248,248,250,248,151,52,0,36,150,170,142,84,80,82,178,178,74,20,63,43,107,247,249,248,248,243,141,156,
+149,19,48,164,121,72,207,248,224,154,53,32,6,0,0,0,0,0,47,102,63,31,16,0,0,0,0,26,63,18,0,0,0,0,0,0,0,0,9,43,104,221,250,207,24,62,50,201,
+251,231,39,0,0,6,84,151,156,22,70,70,3,0,20,35,6,122,122,8,2,0,0,0,8,57,187,252,248,90,0,0,0,5,167,248,248,251,250,233,187,143,27,89,86,14,0,0,
+0,0,30,89,27,37,101,102,54,0,0,0,42,177,189,108,128,204,182,74,0,7,43,73,90,25,0,0,0,0,20,112,149,19,62,234,251,213,18,5,126,150,53,32,6,158,248,248,
+248,248,227,118,63,31,16,0,0,0,0,26,63,18,0,0,0,0,0,0,0,0,9,43,93,102,90,17,6,62,34,15,111,149,22,0,0,6,84,151,156,22,138,250,248,90,20,35,
+6,122,122,8,2,0,0,0,8,57,148,139,98,248,248,94,0,0,0,0,16,98,71,138,179,143,27,89,86,31,198,248,198,93,244,250,249,249,248,151,54,0,0,0,42,177,189,108,
+128,204,182,74,0,7,43,73,90,98,243,248,248,248,244,157,136,152,153,115,72,207,248,194,50,145,122,18,38,6,0,0,0,0,27,92,102,70,0,0,0,0,0,0,26,62,18,0,
+0,0,0,0,0,0,19,97,221,251,219,36,58,37,0,18,202,251,231,39,9,82,67,22,128,156,22,69,70,3,19,8,122,122,5,0,0,0,0,0,38,45,5,175,252,248,90,0,
+5,171,248,248,249,249,223,82,143,137,92,47,22,63,18,0,0,0,0,26,92,100,102,58,30,6,0,10,62,69,155,179,183,196,132,10,6,33,39,90,72,17,0,0,0,1,21,3,
+81,159,232,251,213,18,0,0,42,145,122,18,38,6,158,248,248,248,249,233,118,70,0,0,0,0,0,0,26,62,18,0,0,0,0,0,0,0,19,85,102,96,78,20,58,37,0,0,
+19,112,149,22,9,82,67,22,128,156,22,138,250,248,102,8,122,122,5,0,0,0,0,0,38,45,5,173,252,248,94,0,0,0,0,3,31,30,82,63,143,137,92,47,22,63,35,198,
+248,247,248,249,250,248,150,58,30,6,0,10,62,69,155,179,183,196,132,10,6,33,39,90,72,17,81,243,248,248,248,243,245,203,186,84,207,248,194,9,4,5,122,122,19,38,6,0,
+0,0,0,48,94,102,62,2,0,0,0,11,71,62,62,18,0,0,0,0,0,22,98,221,250,212,70,102,43,0,0,0,18,202,251,232,107,71,2,0,22,130,156,22,69,70,5,122,
+122,5,0,0,0,0,0,0,4,0,0,5,176,252,248,93,171,248,248,249,248,207,36,81,65,82,50,0,0,26,64,18,0,0,0,39,100,102,66,0,13,34,16,60,37,0,98,179,
+179,137,76,84,40,39,87,25,18,64,22,0,0,0,0,0,62,238,253,217,18,0,0,0,4,5,122,122,19,38,6,154,248,248,248,249,233,121,62,2,0,0,0,11,71,62,62,18,
+0,0,0,0,0,22,86,102,91,44,56,102,43,0,0,0,0,19,109,153,96,71,2,0,22,130,156,22,138,250,248,169,122,5,0,0,0,0,0,0,4,0,90,248,252,183,11,0,
+0,0,3,36,19,0,15,81,65,82,50,0,0,26,64,105,247,248,248,249,248,151,66,0,13,34,16,60,37,0,98,179,179,137,76,84,40,39,87,25,18,64,22,81,243,248,248,248,
+252,248,170,235,249,194,9,0,0,0,5,122,122,19,38,6,0,3,36,14,22,92,102,63,2,0,11,80,102,71,26,64,19,0,0,0,22,98,221,250,206,32,66,70,78,13,0,0,
+0,18,203,252,237,40,0,0,0,22,130,156,20,70,158,124,5,0,0,0,0,0,0,0,0,0,0,0,5,176,252,248,248,248,249,248,207,22,0,26,102,75,0,0,0,0,26,64,
+18,0,42,101,102,66,80,29,0,20,73,38,0,70,173,174,168,179,111,83,88,82,25,0,0,22,64,22,0,0,0,66,234,251,227,156,22,0,0,0,0,0,5,122,122,19,38,6,
+154,248,249,248,249,233,121,63,2,0,11,80,102,71,26,64,19,0,0,0,22,86,102,90,16,16,66,70,78,13,0,0,0,0,22,148,177,24,0,0,0,22,130,156,20,139,253,252,
+94,0,0,0,0,0,0,0,0,90,248,248,97,129,142,11,0,3,36,19,0,0,0,26,102,75,0,0,0,0,99,246,248,248,249,250,158,66,80,29,0,20,73,38,0,70,173,174,
+168,179,111,83,88,82,25,0,0,22,64,22,81,243,248,249,251,249,247,250,229,31,0,0,0,0,0,5,122,122,19,36,9,34,19,0,0,23,92,102,61,18,80,102,78,9,0,25,
+64,19,0,22,99,221,250,207,24,59,42,30,55,82,13,0,0,9,91,215,251,231,39,0,0,0,22,128,144,121,154,71,1,0,0,0,0,0,0,0,0,0,0,0,0,14,230,252,
+248,249,248,207,18,0,13,80,55,77,48,0,0,0,0,25,56,54,100,102,52,0,29,87,37,53,42,32,71,168,178,68,43,169,188,128,102,86,8,0,0,0,22,64,22,0,66,234,
+251,213,18,88,148,22,0,0,0,0,0,5,122,122,19,36,9,168,248,248,248,249,233,121,61,18,80,102,78,9,0,25,64,19,0,22,87,102,90,17,6,59,42,30,55,82,13,0,
+0,9,79,76,110,149,22,0,0,0,22,128,144,121,192,250,248,90,0,0,0,0,0,0,90,248,248,94,0,5,129,141,14,34,19,0,0,0,13,80,55,77,48,0,0,81,243,249,
+250,250,250,251,210,18,29,87,37,53,42,32,71,168,178,68,43,169,188,128,102,86,8,0,0,0,22,64,22,81,245,252,249,248,248,247,145,148,22,0,0,0,0,0,5,122,122,19,
+58,21,0,0,0,0,23,90,102,94,102,75,9,13,4,0,25,58,35,97,221,250,206,24,62,37,0,12,33,55,82,11,7,82,71,19,202,236,161,22,0,0,0,22,178,185,27,62,
+62,2,0,0,0,0,0,0,0,0,0,0,9,176,248,252,253,248,219,18,0,13,84,50,0,14,85,48,0,15,3,0,56,102,102,50,0,0,0,36,102,55,0,84,180,169,74,0,
+10,75,181,204,119,74,84,12,0,0,0,22,64,80,234,251,213,18,0,0,88,148,22,0,0,0,0,0,5,122,122,19,58,21,154,248,248,248,249,233,121,94,102,75,9,13,4,0,
+25,58,35,85,102,89,16,6,62,37,0,12,33,55,82,11,7,82,71,1,16,112,149,22,0,0,0,22,178,185,27,133,250,248,90,0,0,0,0,90,248,248,94,0,0,0,5,129,
+152,25,0,0,0,13,84,50,0,14,85,48,81,244,248,248,250,248,158,209,248,198,18,36,102,55,0,84,180,169,74,0,10,75,181,204,119,74,84,12,0,0,0,22,64,67,192,248,
+247,248,248,248,243,141,148,22,0,0,0,0,0,5,124,139,33,34,6,0,0,0,0,34,102,102,97,24,0,19,36,3,0,38,108,221,250,202,24,62,37,0,0,0,13,33,53,78,
+78,68,2,0,18,44,112,150,23,0,5,121,124,128,154,22,67,69,3,0,0,0,0,0,0,0,0,9,180,248,248,249,252,252,248,90,13,84,50,0,0,0,22,96,36,15,29,43,
+99,102,82,16,0,0,10,56,56,84,95,178,173,95,4,8,34,40,120,178,179,100,78,86,12,0,0,0,81,239,251,213,18,0,0,0,0,88,148,22,0,0,0,0,0,5,124,139,
+33,34,6,154,248,248,248,249,235,124,97,24,0,19,36,3,0,38,97,102,86,16,6,62,37,0,0,0,13,33,53,78,78,68,2,0,0,19,112,150,23,0,5,121,124,128,154,22,
+136,250,248,90,0,0,90,248,248,94,0,0,0,0,3,37,137,140,11,0,13,84,50,0,0,0,22,147,245,248,249,249,248,151,82,33,198,248,200,70,56,84,95,178,173,95,4,8,
+34,40,120,178,179,100,78,86,12,0,0,0,67,182,121,137,248,247,248,248,248,243,141,150,31,0,0,0,0,3,40,132,122,19,38,6,0,0,13,79,102,100,102,80,16,0,18,30,
+24,96,221,251,205,23,62,37,0,0,0,0,0,10,36,92,102,15,0,0,0,0,19,102,145,34,121,124,4,22,130,158,20,70,70,3,0,0,0,0,0,0,9,180,248,248,249,248,
+199,181,252,248,144,50,0,0,0,0,1,44,35,0,53,112,103,49,22,63,18,9,62,37,0,95,205,187,71,12,40,34,40,88,28,52,170,179,98,66,83,13,0,72,234,251,221,35,
+0,0,0,0,0,0,88,150,31,0,0,0,0,3,40,132,122,19,38,6,149,248,248,250,251,234,124,80,16,0,18,30,24,84,102,102,32,6,62,37,0,0,0,0,0,10,36,92,
+102,15,0,0,0,0,19,102,145,34,121,124,4,22,130,158,20,138,250,248,90,90,248,248,94,0,0,0,0,3,36,19,5,129,139,24,83,50,0,0,0,0,82,245,249,248,250,248,
+151,49,22,63,34,200,250,206,18,95,205,187,71,12,40,34,40,88,28,52,170,179,98,66,83,13,0,58,160,121,106,241,199,87,243,248,248,248,243,139,151,22,0,0,3,36,19,5,
+122,122,19,38,3,12,83,102,72,30,90,102,83,15,0,34,105,221,250,206,68,62,53,93,13,0,0,0,0,7,82,82,54,80,13,0,0,0,0,0,81,175,135,6,0,0,21,134,
+154,22,69,70,3,0,0,0,0,9,185,248,248,249,248,198,18,5,179,253,250,90,0,0,0,0,0,1,27,57,173,167,72,0,0,22,60,62,34,0,74,178,187,138,28,4,39,58,
+86,26,0,0,53,171,179,88,50,84,77,235,251,213,35,62,21,0,0,0,0,0,0,86,151,22,0,0,3,36,19,5,122,122,19,38,3,154,250,251,250,249,233,124,83,15,0,34,
+94,102,85,36,54,62,53,93,13,0,0,0,0,7,82,82,54,80,13,0,0,0,0,0,81,175,135,6,0,0,21,134,154,22,138,250,248,248,248,94,0,0,0,0,3,36,19,0,
+0,5,134,173,55,0,0,0,0,81,243,248,249,250,251,195,72,0,0,22,60,75,206,248,214,184,187,138,28,4,39,58,86,26,0,0,53,171,179,88,50,84,63,163,113,62,202,250,
+67,22,81,243,248,248,248,243,141,149,22,3,36,19,0,0,5,122,122,15,42,84,102,75,8,0,20,92,102,79,35,96,221,251,202,22,64,83,147,179,93,0,0,0,9,82,68,16,
+32,55,82,13,0,0,0,0,100,155,138,20,0,0,0,18,128,156,22,69,70,3,0,0,9,185,248,248,249,248,194,18,0,13,85,190,252,248,90,0,0,0,0,0,47,176,176,55,
+14,34,2,7,63,70,18,74,178,178,74,28,89,52,38,90,53,2,0,0,0,57,171,179,79,100,240,251,213,18,0,20,64,22,0,0,0,0,0,0,88,149,22,3,36,19,0,0,
+5,122,122,15,42,84,191,250,248,248,248,233,124,79,35,84,102,96,17,5,64,83,147,179,93,0,0,0,9,82,68,16,32,55,82,13,0,0,0,0,100,155,138,20,0,0,0,18,
+128,156,22,178,250,248,150,0,0,0,0,3,36,19,0,0,0,13,85,152,138,11,0,0,81,243,248,248,249,251,202,55,14,34,2,7,63,70,34,214,253,238,87,28,89,52,38,90,
+53,2,0,0,0,57,171,179,79,89,188,115,62,198,248,207,45,61,22,81,243,248,248,248,243,142,148,55,19,0,0,0,0,5,122,128,91,102,75,6,0,16,13,18,88,102,112,221,
+250,204,31,60,49,148,198,148,25,0,0,9,82,71,3,0,13,33,54,82,17,0,0,110,133,14,84,148,22,0,0,0,21,130,156,22,69,70,3,9,190,248,248,249,248,194,18,0,
+13,84,50,5,175,252,248,90,0,15,14,45,175,176,72,14,0,14,19,60,33,22,119,184,178,74,0,6,52,91,90,22,9,38,5,4,9,0,58,167,184,236,251,223,28,0,3,59,
+45,61,22,0,0,0,0,0,0,90,148,55,19,0,0,0,0,5,122,128,91,102,75,151,248,248,248,248,233,124,101,102,82,27,14,60,49,148,198,148,25,0,0,9,82,71,3,0,
+13,33,54,82,17,0,0,110,133,14,84,148,22,0,0,0,21,130,191,249,250,250,248,90,0,0,3,36,19,0,0,0,13,84,50,5,129,142,11,81,243,248,248,249,251,202,72,14,
+0,14,19,60,33,22,119,190,238,250,198,24,52,91,90,22,9,38,5,4,9,0,58,167,178,170,124,107,200,248,204,73,4,20,64,22,81,243,248,248,248,243,158,155,22,0,0,0,
+0,0,19,166,175,80,35,4,0,5,36,9,40,102,118,235,204,21,61,52,138,179,149,78,21,0,9,82,71,2,0,0,0,12,34,70,82,22,121,135,12,0,0,88,148,22,0,0,
+0,22,130,156,22,69,73,191,248,248,249,248,194,14,0,13,84,50,0,0,5,175,252,248,90,2,66,175,176,56,3,34,16,7,61,37,0,74,185,198,89,0,10,33,39,90,90,29,
+14,13,38,37,9,10,23,107,239,254,225,61,82,19,66,71,4,20,64,22,0,0,0,0,0,3,113,155,22,0,0,0,0,0,19,166,175,80,35,4,144,248,249,248,249,235,127,101,
+29,4,61,52,138,179,149,78,21,0,9,82,71,2,0,0,0,12,34,70,82,22,121,135,12,0,0,88,148,22,0,0,0,104,251,252,108,138,250,248,90,3,36,19,0,0,0,13,
+84,50,0,0,5,129,177,243,248,248,250,251,202,56,3,34,16,7,61,37,0,74,185,198,101,198,248,206,54,90,90,29,14,13,38,37,9,10,23,96,183,203,118,208,250,207,80,71,
+0,0,22,64,22,81,243,248,248,249,244,143,147,22,0,0,0,15,86,105,160,125,17,38,6,0,0,45,88,102,102,118,91,59,50,138,179,138,18,23,60,26,78,71,2,0,0,0,
+0,4,42,37,57,166,143,11,0,0,0,0,88,148,22,0,0,0,22,130,156,22,69,161,248,249,248,194,14,0,13,84,50,0,0,0,0,5,175,252,248,117,174,176,64,0,0,1,
+36,65,36,0,74,178,178,90,62,27,29,41,87,24,26,99,153,54,43,40,13,37,76,230,252,242,184,78,48,102,70,1,0,0,22,64,22,0,0,0,3,36,19,91,147,22,0,0,
+0,15,86,105,160,125,17,38,6,144,248,249,250,251,235,127,79,59,50,138,179,138,18,23,60,26,78,71,2,0,0,0,0,4,42,37,57,166,143,11,0,0,0,0,88,148,22,0,
+90,248,248,176,156,22,138,250,248,112,19,0,0,0,13,84,50,0,0,0,0,85,249,252,248,249,251,202,64,0,0,1,36,65,36,0,74,178,178,90,62,43,204,249,218,41,26,99,
+153,54,43,40,13,37,62,145,139,193,238,250,213,113,70,1,0,0,0,22,64,22,81,243,249,248,248,243,143,147,22,0,16,86,102,72,11,124,110,16,38,3,22,89,102,85,31,88,
+102,92,138,179,138,18,0,0,27,101,76,0,0,0,0,0,6,38,12,19,144,161,88,13,0,0,0,0,0,88,150,22,0,0,0,22,130,156,22,68,170,248,194,9,0,13,84,50,
+0,0,0,0,0,0,5,172,252,253,203,57,28,18,0,10,60,37,0,74,178,178,74,0,28,70,52,84,28,0,0,30,124,179,59,19,61,78,234,249,205,78,175,180,121,84,78,11,
+0,0,0,22,64,22,0,3,36,19,0,0,91,147,22,0,16,86,102,72,11,124,110,16,38,3,154,250,251,250,249,233,127,92,138,179,138,18,0,0,27,101,76,0,0,0,0,0,
+6,38,12,19,144,161,88,13,0,0,0,0,0,88,150,105,248,248,94,22,130,156,22,137,250,248,90,0,0,13,84,50,0,0,0,0,81,243,248,252,252,251,200,57,28,18,0,10,
+60,37,0,74,178,178,74,0,28,70,66,217,249,198,18,30,124,179,59,19,61,65,159,51,26,213,253,240,130,84,78,11,12,0,0,0,22,63,23,102,244,248,248,248,243,143,147,37,
+90,102,69,6,0,9,42,1,10,46,89,102,82,37,18,62,106,185,199,140,18,0,0,9,78,76,58,20,0,0,0,4,36,14,1,128,141,39,55,82,13,0,0,0,0,1,107,156,
+22,0,0,0,22,129,157,48,75,140,12,0,13,84,50,0,46,22,0,0,0,0,0,47,223,254,250,90,2,32,24,58,37,0,74,178,178,74,0,10,29,53,102,43,0,0,0,0,
+52,125,169,62,79,237,249,203,18,0,69,198,199,79,63,87,12,0,0,0,22,63,23,31,19,0,0,0,0,91,147,37,90,102,69,6,0,9,42,1,10,46,89,188,250,249,248,250,
+235,196,199,140,18,0,0,9,78,76,58,20,0,0,0,4,36,14,1,128,141,39,55,82,13,0,0,0,0,1,160,252,249,94,0,0,22,129,157,48,142,250,248,90,13,84,50,0,
+46,22,0,81,243,248,248,249,253,221,61,0,2,32,24,58,37,0,74,178,178,74,0,10,29,53,102,58,198,248,198,18,52,125,169,62,66,172,56,18,198,248,217,202,199,79,63,87,
+87,12,0,0,0,22,75,33,81,243,248,248,248,243,150,184,114,93,23,0,0,0,0,0,22,91,102,83,10,8,72,55,146,206,185,80,4,0,9,82,71,1,20,64,23,0,0,2,
+7,2,116,130,8,14,34,55,82,13,0,0,0,0,4,109,154,22,0,0,0,22,137,161,22,69,66,19,82,50,0,0,24,64,20,0,0,0,46,173,171,186,252,248,90,11,72,44,
+0,74,178,178,74,0,10,34,41,83,44,58,23,0,0,2,3,29,118,178,234,249,211,24,0,3,70,121,180,169,22,64,87,12,0,0,0,22,75,33,0,0,0,0,0,0,103,184,
+114,93,23,0,0,0,0,0,22,91,102,83,144,248,250,250,252,249,196,80,4,0,9,82,71,1,20,64,23,0,0,2,7,2,116,130,8,14,34,55,82,13,0,0,0,90,248,251,
+191,22,0,0,0,22,137,161,22,138,250,248,143,50,0,0,24,64,94,243,248,248,249,251,198,146,135,11,0,11,72,44,0,74,178,178,74,0,10,34,41,83,44,58,39,198,248,198,
+21,29,118,172,161,56,54,200,248,203,83,121,180,169,22,64,64,87,12,0,3,30,34,60,22,81,243,248,248,248,247,188,175,44,61,19,0,0,0,24,92,102,84,38,13,59,52,152,
+183,145,102,102,65,17,80,71,2,0,0,23,55,5,0,0,2,117,130,8,0,0,14,33,55,82,13,0,0,0,0,1,111,156,22,0,3,30,34,128,156,22,69,102,48,0,0,0,
+0,23,64,18,0,46,175,176,54,2,175,252,248,128,36,30,87,178,178,74,0,10,34,40,88,28,0,23,55,5,0,0,0,0,84,241,252,213,31,36,11,68,71,3,71,60,1,0,
+64,87,12,0,3,30,34,60,22,0,0,0,0,17,88,158,175,44,61,19,0,0,0,24,92,102,84,38,13,167,250,252,253,252,238,127,65,17,80,71,2,0,0,23,55,5,0,0,
+2,117,130,8,0,0,14,33,55,82,13,0,90,248,248,94,111,156,22,0,3,30,34,128,156,22,138,251,249,90,0,0,0,97,246,248,248,249,251,202,54,2,130,140,21,59,36,30,
+87,178,178,74,0,10,34,40,88,28,0,23,55,22,198,248,198,18,72,193,170,62,201,249,205,81,71,3,71,60,1,0,0,64,86,16,31,19,0,22,64,22,81,243,248,250,251,246,
+146,146,42,64,18,0,12,89,102,81,9,17,73,53,138,180,154,30,16,88,102,96,67,1,0,0,0,0,4,0,0,3,118,128,8,0,0,0,0,13,33,55,82,13,0,0,0,0,
+3,112,155,23,36,19,0,22,127,161,88,83,64,2,0,0,0,0,24,56,57,175,176,55,0,0,5,177,253,249,90,76,189,184,74,0,10,34,42,88,28,0,0,0,4,0,0,0,
+0,69,233,250,227,175,55,14,88,71,2,0,0,0,0,0,0,64,86,16,31,19,0,22,64,22,0,0,18,89,102,69,96,146,42,64,18,0,12,89,102,81,9,17,73,53,202,253,
+252,249,248,236,127,96,67,1,0,0,0,0,4,0,0,3,118,128,8,0,0,0,0,13,33,55,82,98,248,248,94,0,3,112,155,23,36,19,0,22,127,161,88,146,250,248,90,0,
+81,243,249,250,250,251,202,55,0,0,5,132,158,40,0,76,189,184,74,0,10,34,42,88,28,0,0,0,4,0,18,198,248,210,165,69,128,235,249,206,100,71,2,0,0,0,0,0,
+0,0,63,98,26,0,0,0,22,64,18,93,247,251,250,248,243,145,145,43,62,28,76,102,80,9,8,59,58,153,181,138,21,36,10,26,102,102,67,3,0,0,0,0,0,0,4,119,
+127,7,0,0,0,0,0,0,13,33,55,82,13,0,0,0,0,2,110,167,36,0,0,0,31,155,173,24,68,70,3,0,0,0,0,60,176,176,45,0,0,0,9,66,199,252,250,205,
+179,100,16,8,33,42,88,28,0,0,0,0,0,0,0,0,69,234,249,203,46,121,171,104,74,35,5,0,0,0,0,0,0,0,63,98,26,0,0,0,22,64,18,17,89,102,69,4,
+0,93,145,43,62,28,76,102,80,9,8,59,58,153,181,202,249,249,248,249,238,127,67,3,0,0,0,0,0,0,4,119,127,7,0,0,0,0,0,0,13,33,126,250,248,94,0,0,
+0,2,110,167,36,0,0,0,31,155,173,24,137,250,248,141,243,248,248,250,251,201,45,0,0,0,9,66,166,136,78,178,179,100,16,8,33,42,88,28,0,0,0,0,0,0,0,18,
+210,252,209,35,205,251,237,114,74,35,5,0,0,0,0,0,0,2,30,70,84,12,0,0,0,18,67,91,151,246,248,248,248,243,145,145,42,87,102,78,9,8,62,52,138,183,156,24,
+0,1,35,80,69,86,102,68,4,0,0,0,0,4,121,126,6,0,0,0,0,0,0,8,0,13,33,55,82,13,0,0,0,2,34,117,154,22,0,13,80,61,125,156,22,69,70,3,
+0,0,46,174,176,82,12,0,0,10,58,81,102,209,253,253,138,2,38,42,40,88,28,0,0,0,0,0,0,0,0,69,234,249,203,18,0,30,131,189,56,12,38,6,0,0,0,0,
+0,2,30,70,84,12,0,0,0,18,67,91,102,68,4,0,0,0,93,145,42,87,102,78,9,8,62,52,138,183,156,24,140,248,249,250,250,238,127,68,4,0,0,0,0,4,121,126,
+6,0,0,0,0,0,0,8,0,98,249,250,146,13,0,0,0,2,34,117,154,22,0,13,80,61,125,156,22,138,250,248,248,248,249,251,201,82,12,0,0,10,58,81,102,182,192,179,
+74,2,38,42,40,88,28,0,0,0,0,0,0,0,0,55,165,209,248,238,248,209,140,189,56,12,38,6,0,0,0,0,3,36,17,0,64,87,12,0,0,18,92,102,75,84,243,248,
+248,248,243,145,145,45,85,24,6,62,52,138,179,138,31,38,3,7,79,86,14,14,89,102,68,4,0,0,6,122,124,6,0,0,0,0,0,0,0,29,24,0,13,33,55,82,13,0,
+3,36,18,1,111,154,32,84,50,0,21,130,157,24,70,69,4,45,175,176,45,24,59,13,8,62,35,12,128,204,223,251,248,95,32,58,92,25,0,0,0,0,0,0,0,0,69,234,
+249,203,18,0,3,65,76,118,172,57,14,38,6,0,0,0,3,36,17,0,64,87,12,0,0,18,92,102,75,4,0,0,0,0,0,93,145,45,85,24,6,62,52,138,179,138,31,38,
+3,138,250,250,248,248,239,127,68,4,0,0,6,122,124,6,0,0,0,0,0,0,0,29,106,248,248,115,55,82,13,0,3,36,18,1,111,154,32,84,50,0,21,130,157,98,248,250,
+248,249,251,202,45,24,59,13,8,62,35,12,128,204,205,105,1,8,32,58,92,25,0,0,0,0,0,0,0,0,55,159,50,35,238,248,239,91,76,118,172,57,14,38,6,0,0,0,
+36,19,0,0,0,64,87,10,18,90,102,74,49,3,81,243,248,248,248,243,146,145,39,57,60,50,138,179,138,18,0,12,36,80,68,8,33,13,15,89,102,69,4,5,122,116,6,0,
+0,0,0,0,0,0,0,1,33,24,0,25,112,71,82,15,33,18,0,0,0,115,185,66,0,0,0,23,124,149,25,64,83,173,176,47,0,0,25,59,60,34,0,74,181,202,146,150,
+249,249,116,84,52,13,0,0,0,0,0,0,0,67,234,249,203,18,0,3,70,70,1,28,125,173,58,14,38,6,0,3,36,19,0,0,0,64,87,10,18,90,102,74,49,3,0,0,
+0,0,0,0,95,145,39,57,60,50,138,179,138,18,0,12,36,80,167,248,249,248,248,239,127,69,4,5,122,116,6,0,0,0,0,0,0,0,0,91,249,249,94,25,112,71,82,15,
+33,18,0,0,0,115,185,66,0,0,0,23,165,250,249,250,250,253,219,47,0,0,25,59,60,34,0,74,181,202,146,89,46,30,40,84,52,13,0,0,0,0,0,0,0,53,159,50,
+18,198,248,239,250,214,19,28,125,173,58,14,38,6,0,3,19,0,0,0,0,0,60,83,88,102,66,4,2,0,0,81,243,248,248,248,243,146,147,76,81,143,179,138,18,0,0,7,
+83,88,7,0,3,36,13,15,89,102,73,125,122,1,0,0,0,0,0,0,0,0,0,0,1,33,24,93,183,150,66,88,24,0,0,0,12,82,134,154,22,0,0,0,4,88,145,71,
+172,176,48,0,0,0,7,65,70,12,74,178,178,81,78,102,153,250,250,106,0,36,19,0,0,0,0,0,59,231,249,203,18,0,3,70,71,3,0,0,29,124,173,58,14,36,9,34,
+19,0,0,0,0,0,60,83,88,102,66,4,2,0,0,0,0,0,0,0,0,95,147,76,81,143,179,138,18,0,0,7,83,88,7,135,248,249,248,248,239,127,73,125,122,1,0,0,
+0,0,0,0,0,0,90,248,248,115,24,93,183,150,66,88,24,0,0,0,12,82,134,154,22,0,0,81,243,250,252,250,252,253,249,90,0,0,7,65,70,12,74,178,178,81,78,102,
+94,63,83,26,0,36,19,0,0,0,0,0,44,148,48,18,198,248,203,95,214,248,198,18,29,124,173,58,14,36,9,34,0,0,0,0,0,0,22,101,102,67,0,0,0,0,0,0,
+81,243,248,248,248,243,169,150,151,197,144,18,0,0,9,82,68,16,36,6,0,3,36,13,15,92,176,160,10,0,0,0,0,0,0,0,0,0,0,0,0,1,33,46,140,183,159,65,
+75,13,0,13,84,49,2,111,156,22,0,0,0,0,113,209,173,81,64,2,0,10,58,33,28,118,182,178,74,0,18,88,102,158,250,248,90,3,36,19,0,0,0,68,231,249,203,18,
+0,3,70,70,3,0,0,0,0,29,118,168,59,14,58,21,0,0,0,0,0,0,22,101,102,67,0,0,0,0,0,0,0,0,0,0,0,10,128,150,151,197,144,18,0,0,9,82,
+68,16,36,6,130,248,249,248,248,239,190,160,10,0,0,0,0,0,0,0,0,90,248,248,94,1,33,46,140,183,159,65,75,13,0,13,84,49,2,111,156,22,81,243,248,248,251,253,
+199,145,250,248,90,10,58,33,28,118,182,178,74,0,18,88,102,102,58,0,0,3,36,19,0,0,0,53,148,40,18,198,248,203,83,70,21,198,248,198,18,29,118,168,59,14,58,21,
+6,0,0,0,0,22,91,102,87,80,11,0,0,0,0,5,1,81,243,248,248,250,246,192,179,152,73,12,0,9,82,71,3,0,14,38,7,0,3,36,18,131,170,106,70,5,0,0,
+0,0,0,0,0,0,0,0,0,0,1,32,41,153,187,147,62,78,26,80,50,0,0,3,112,156,22,0,0,45,169,190,154,23,69,67,15,59,35,0,74,188,197,82,0,10,29,51,
+102,102,149,249,248,90,3,36,19,0,69,234,249,203,18,0,3,70,69,1,0,0,0,0,0,0,9,73,168,82,28,34,6,0,0,0,0,22,91,102,87,80,11,0,0,0,0,5,
+1,0,0,0,10,62,48,162,179,152,73,12,0,9,82,71,3,0,14,38,7,130,248,249,248,252,246,132,70,5,0,0,0,0,0,0,90,248,248,94,0,0,1,32,41,153,187,147,
+62,78,26,80,50,0,0,3,112,187,244,248,248,249,251,211,154,23,138,250,248,128,35,0,74,188,197,82,0,10,29,51,102,102,88,44,4,0,3,36,19,0,55,159,48,18,198,248,
+203,83,69,1,0,18,198,248,198,18,9,73,168,82,28,34,38,6,0,0,23,92,102,62,7,62,87,12,0,0,19,32,2,0,81,243,250,250,252,251,190,134,46,59,20,79,71,2,
+0,0,0,14,38,6,0,8,142,131,20,88,102,70,5,0,0,0,2,43,14,0,0,0,0,0,0,1,54,54,142,182,144,69,102,54,0,0,0,0,3,112,156,20,43,175,175,62,
+85,148,23,70,96,36,0,53,179,178,97,60,20,30,38,85,36,76,102,151,249,248,90,3,36,83,234,249,203,18,0,6,70,68,3,41,14,0,0,0,0,0,0,1,90,172,60,15,
+38,6,0,0,23,92,102,62,7,62,87,12,0,0,19,32,2,0,0,10,62,52,138,179,159,134,46,59,20,79,71,2,0,0,0,14,38,6,130,248,252,252,248,239,129,70,5,0,
+0,0,2,118,248,248,94,0,0,0,0,1,54,54,142,182,144,69,102,54,0,0,0,0,83,248,252,249,249,251,201,62,85,148,23,138,251,249,90,53,179,178,97,60,20,30,38,85,
+36,76,102,90,44,2,0,3,36,70,159,50,18,198,248,204,83,68,3,41,14,0,18,198,248,198,18,1,90,172,60,15,14,38,3,21,96,102,63,2,0,0,64,87,11,15,36,4,
+0,0,10,123,246,252,253,252,244,143,143,51,99,72,1,0,0,0,0,0,14,38,11,123,126,41,13,15,88,102,70,6,0,3,50,50,6,0,0,0,0,0,2,34,20,29,42,145,
+186,174,84,76,12,0,0,0,0,3,105,160,174,173,62,0,0,88,152,74,82,66,2,15,124,79,0,37,68,44,85,30,0,10,79,102,151,249,248,90,71,237,249,203,18,0,0,46,
+68,2,47,51,6,0,0,0,0,0,2,34,20,69,168,60,14,38,3,21,96,102,63,2,0,0,64,87,11,15,36,4,0,0,10,62,52,138,179,139,25,92,143,51,99,72,1,0,
+0,0,0,0,14,38,11,190,252,249,248,248,238,129,70,6,0,3,122,249,248,94,0,0,0,0,2,34,20,29,42,145,186,174,84,76,12,0,0,81,243,248,250,253,251,199,62,0,
+0,88,152,74,146,250,248,100,124,79,0,37,68,44,85,30,0,10,79,102,90,43,2,0,57,173,65,18,198,248,203,60,68,2,47,51,6,0,0,18,198,248,198,50,20,69,168,60,
+61,14,35,22,87,65,2,0,0,0,0,62,88,40,0,0,0,10,62,52,175,251,252,249,249,243,151,176,93,56,10,0,0,0,0,0,0,19,143,127,6,3,36,9,16,88,102,70,
+11,47,50,2,0,0,0,0,0,2,35,21,0,1,30,48,178,195,142,63,82,13,0,0,0,0,43,193,209,76,0,0,0,10,129,163,25,69,69,4,33,8,8,29,57,102,38,0,
+0,0,10,79,102,151,249,249,241,249,210,32,0,0,0,6,3,48,50,2,0,0,0,0,0,2,35,21,0,1,71,167,61,14,35,22,87,65,2,0,0,0,0,62,88,40,0,0,
+0,10,62,52,138,179,138,22,36,7,102,176,93,56,10,0,0,0,0,0,0,19,143,127,129,248,249,248,248,238,132,70,11,120,249,248,94,0,0,0,0,2,35,21,0,1,30,48,
+178,195,142,63,82,13,81,243,248,248,249,252,224,76,0,0,0,10,129,163,25,138,250,248,111,8,8,29,57,102,38,0,0,0,10,79,102,90,44,57,159,52,51,201,248,203,18,6,
+3,48,50,2,0,0,0,0,18,198,249,203,18,1,71,167,168,62,14,35,15,2,0,0,0,0,0,15,78,84,11,0,10,62,52,138,179,175,244,248,248,249,247,177,144,50,58,4,
+0,0,0,0,5,123,131,43,6,0,2,7,0,16,86,102,88,48,1,0,0,0,0,0,2,35,20,0,0,0,12,86,74,147,183,143,63,82,13,0,0,46,174,170,133,151,22,0,
+10,62,37,88,148,24,70,68,9,38,36,37,83,56,51,4,0,0,0,10,79,102,179,252,249,219,20,7,0,0,0,1,49,50,2,0,0,0,0,0,2,35,20,0,0,0,1,71,
+168,62,14,35,15,2,0,0,0,0,0,15,78,84,11,0,10,62,52,138,179,138,18,0,8,37,81,152,218,64,58,4,0,0,0,0,5,123,131,43,6,126,248,248,248,248,238,132,
+147,249,248,94,0,0,0,0,2,35,20,0,0,0,12,86,74,147,183,143,63,137,244,248,248,249,251,197,133,151,22,0,10,62,37,88,148,24,138,250,248,115,36,37,83,56,51,4,
+0,0,0,10,79,102,126,175,52,18,198,248,203,18,0,1,49,50,2,0,0,0,0,0,2,51,202,248,198,18,1,71,70,167,62,14,36,5,0,0,0,0,19,34,4,63,84,23,
+58,52,138,179,138,18,81,243,248,250,250,243,148,142,31,2,0,0,0,5,123,124,6,15,38,6,0,0,0,0,18,98,102,70,5,0,0,0,0,2,36,20,0,0,0,13,84,48,
+28,45,148,183,141,63,82,13,44,175,176,60,4,110,154,30,62,37,0,0,88,148,24,68,69,36,56,88,28,0,16,2,0,0,0,0,10,127,242,251,249,248,90,0,0,0,2,50,
+50,2,0,0,0,0,0,2,36,20,0,0,0,0,0,1,70,167,62,14,36,5,0,0,0,0,19,34,4,63,84,23,58,52,138,179,138,18,0,0,8,81,88,175,251,230,47,2,
+0,0,0,5,123,124,6,15,38,6,126,248,248,248,248,243,251,250,97,0,0,0,0,2,36,20,0,0,0,13,84,48,28,45,148,183,178,246,250,248,249,251,202,60,4,110,154,30,
+62,37,0,0,88,148,24,137,250,249,126,88,28,0,16,2,0,0,0,0,10,117,197,123,58,198,248,203,18,0,2,50,50,2,0,0,0,0,0,2,36,20,18,198,248,198,18,1,
+1,70,168,63,14,38,6,0,0,19,36,3,0,0,64,102,58,138,179,138,18,0,0,87,247,250,248,249,243,148,141,17,0,0,5,123,124,6,0,0,15,38,6,0,0,2,45,54,
+85,102,72,6,0,0,3,36,20,0,0,0,13,84,48,0,0,33,46,150,183,140,57,89,174,176,62,0,0,1,112,175,55,0,0,0,0,88,148,32,83,77,80,54,7,0,0,0,
+0,0,0,0,69,235,251,224,158,249,248,90,0,2,50,50,2,0,0,0,0,0,3,36,20,0,0,0,0,0,0,0,1,70,168,63,14,38,6,0,0,19,36,3,0,0,64,102,
+58,138,179,138,18,0,0,9,82,69,13,52,200,251,230,33,0,0,5,123,124,6,0,0,15,38,6,126,248,248,249,250,250,177,72,6,0,0,3,36,20,0,0,0,13,84,48,0,
+0,33,46,183,251,252,250,250,251,202,62,0,0,1,112,175,55,0,0,0,0,88,148,32,146,250,250,125,7,0,0,0,0,0,0,0,55,163,113,113,218,249,203,18,0,2,50,50,
+2,0,0,0,0,0,3,36,20,0,0,18,198,248,198,18,18,1,69,166,63,14,38,4,17,36,3,0,0,9,54,82,174,183,138,18,0,0,8,82,129,243,248,248,249,243,149,142,
+14,1,123,124,6,0,0,0,0,15,38,4,1,50,50,0,15,86,102,72,5,0,35,19,0,0,0,13,84,56,9,0,0,1,33,47,151,182,151,170,174,66,0,0,0,9,60,112,
+148,22,0,0,0,0,94,161,58,102,75,8,36,11,0,0,0,0,0,69,234,249,205,91,102,151,249,248,91,50,50,2,0,0,0,0,0,3,35,19,0,0,0,0,0,6,13,0,
+0,1,69,166,63,14,38,4,17,36,3,0,0,9,54,82,174,190,146,18,0,0,8,82,71,3,0,10,54,200,251,230,31,1,123,124,6,0,0,0,0,15,38,4,127,249,249,248,
+248,238,132,72,5,0,35,19,0,0,0,13,84,56,9,0,0,1,103,245,252,253,253,251,200,66,0,0,0,9,60,112,148,22,0,0,0,0,94,161,58,158,250,248,114,11,0,0,
+0,0,0,55,159,50,27,216,251,221,58,1,1,50,50,2,0,0,0,0,0,3,35,19,0,0,0,0,18,199,248,198,198,18,1,69,166,65,11,47,36,2,0,0,10,62,52,138,
+194,177,30,0,0,9,81,71,2,81,243,248,248,249,243,148,130,119,119,6,0,0,0,0,0,0,14,33,48,49,2,0,0,16,86,102,72,35,16,0,0,0,13,84,48,9,60,20,
+0,0,1,32,42,162,209,201,87,75,12,0,11,62,37,0,88,148,22,0,0,10,30,113,184,50,64,67,9,37,11,0,0,0,69,234,249,203,18,10,79,102,151,249,249,122,2,0,
+0,0,0,0,3,36,18,0,0,0,0,0,0,14,62,20,0,0,1,69,166,65,11,47,36,2,0,0,10,62,52,138,200,244,205,18,0,9,81,71,2,0,0,0,10,54,200,251,
+227,128,119,6,0,0,0,0,0,0,14,33,121,249,248,248,248,248,238,134,72,35,16,0,0,0,13,84,48,9,60,20,0,81,243,249,249,252,253,218,87,75,12,0,11,62,37,0,
+88,148,22,0,0,10,30,113,184,50,135,250,248,114,11,0,0,0,55,159,50,18,198,248,219,113,90,41,45,49,2,0,0,0,0,0,3,36,18,0,0,0,0,0,0,31,212,248,
+248,198,18,1,69,165,75,41,36,5,0,7,60,52,138,179,138,65,84,11,7,82,71,2,0,0,81,243,248,248,249,243,190,179,20,0,0,0,0,0,0,0,0,54,65,6,0,0,
+0,0,14,85,102,78,4,0,0,13,84,50,0,0,22,60,16,0,0,0,61,175,207,197,131,59,81,20,56,37,0,0,0,88,148,22,10,33,38,88,108,148,24,70,67,9,37,11,
+0,69,234,249,203,18,0,0,10,78,102,155,250,248,90,0,0,0,0,3,36,19,0,0,0,0,0,0,0,0,23,64,20,0,0,1,69,165,75,41,36,5,0,7,60,52,138,179,
+146,212,250,200,24,82,71,2,0,0,0,0,0,9,54,200,252,238,36,0,0,0,0,0,0,0,0,125,250,248,169,248,248,248,248,238,134,78,4,0,0,13,84,50,0,0,22,60,
+92,243,248,248,250,251,222,197,131,59,81,20,56,37,0,0,0,88,148,22,10,33,38,88,108,148,24,138,250,248,114,11,0,55,159,50,18,198,248,203,27,78,102,96,65,3,0,0,
+0,0,0,3,36,19,0,0,0,0,0,0,0,0,39,212,212,248,198,18,0,76,176,66,13,38,6,4,38,138,179,138,18,0,48,79,78,68,2,0,0,0,0,81,243,248,248,252,
+249,146,137,15,0,0,0,0,0,2,50,48,16,35,4,0,0,0,0,42,88,102,72,4,11,84,50,0,0,0,0,19,59,18,0,45,174,172,95,154,183,134,58,87,33,0,0,0,
+0,0,88,152,53,38,88,30,0,88,148,24,70,67,9,37,77,234,249,203,18,0,0,0,0,12,93,102,150,249,248,90,0,0,3,36,19,0,0,0,0,0,0,0,0,0,0,23,
+64,19,0,0,0,76,176,66,13,38,6,4,38,138,179,138,18,18,209,250,216,81,2,0,0,0,0,0,0,0,14,149,225,251,229,32,0,0,0,0,0,2,122,249,248,116,4,122,
+248,248,248,249,238,134,72,4,11,84,50,0,0,0,0,94,246,248,248,249,251,198,95,154,183,134,58,87,33,0,0,0,0,0,88,152,53,38,88,30,0,88,148,24,138,250,248,114,
+64,159,50,18,198,248,203,18,0,12,93,102,88,42,2,0,0,0,3,36,19,0,0,0,0,0,0,0,0,0,0,40,40,212,248,198,35,33,65,166,66,14,38,23,138,179,138,18,
+0,0,6,94,102,15,0,0,0,0,0,0,81,243,252,252,249,243,150,140,15,0,0,0,2,49,50,2,0,35,74,6,0,3,36,15,14,86,102,74,78,48,0,0,0,0,0,0,
+23,56,57,175,176,60,27,52,157,183,132,58,80,13,0,0,0,0,10,110,164,102,30,0,0,0,88,148,24,70,68,75,237,249,203,18,0,0,0,0,2,46,51,77,102,151,249,248,
+90,3,36,19,0,0,0,0,0,0,0,0,0,0,0,0,24,64,18,0,18,33,65,166,66,14,38,23,138,179,138,18,0,0,24,219,251,201,18,0,0,0,0,0,0,5,123,129,
+58,200,251,230,32,0,0,0,2,122,249,248,94,35,74,6,122,248,249,248,248,238,134,74,78,48,0,0,0,0,81,243,249,250,250,251,202,60,27,52,157,183,132,58,80,13,0,0,
+0,0,10,110,164,102,30,0,0,0,88,148,24,138,250,249,201,59,18,198,248,203,18,0,2,46,51,77,102,91,43,2,0,3,36,19,0,0,0,0,0,0,0,0,0,0,0,0,
+0,41,212,225,55,2,0,67,166,62,29,156,181,138,18,0,0,9,82,66,48,82,13,0,0,0,0,0,5,165,249,248,248,249,243,150,140,15,0,2,52,50,1,0,0,6,71,76,
+10,33,19,0,0,12,84,102,87,4,0,0,0,0,0,0,0,60,176,176,60,0,0,33,53,157,183,131,58,82,13,0,0,10,34,38,146,161,22,0,0,0,0,88,148,21,116,240,
+249,211,28,0,0,0,0,2,50,50,25,121,88,102,151,249,248,112,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,60,31,32,2,0,67,166,62,29,156,181,138,18,0,
+0,9,82,79,209,250,201,18,0,0,0,0,5,123,124,6,9,54,200,251,229,32,0,2,124,249,248,94,0,6,71,76,10,136,248,248,248,248,241,134,87,4,0,0,0,81,243,248,
+248,250,251,202,60,0,0,33,53,157,183,131,58,82,13,0,0,10,34,38,146,161,22,0,0,0,0,88,148,21,162,253,249,124,200,248,203,18,0,2,50,50,25,121,88,102,91,42,
+5,34,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,94,18,0,0,1,62,154,150,183,156,24,0,0,9,82,71,2,0,50,84,13,0,0,0,5,123,124,85,243,
+248,248,249,243,151,140,17,46,82,67,2,0,0,0,2,70,90,19,0,0,0,10,80,92,102,73,7,0,0,0,0,0,45,174,176,87,15,0,0,1,33,54,159,183,130,57,82,12,
+7,34,38,88,30,88,148,22,0,0,0,0,81,160,231,251,217,26,37,12,0,0,2,50,50,24,148,91,13,79,102,150,250,248,90,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,36,75,18,0,0,1,62,154,150,183,156,24,0,0,9,82,71,2,18,209,250,201,18,0,0,5,123,124,6,0,0,9,54,200,251,229,34,120,250,250,95,0,0,0,2,70,
+90,19,118,248,248,248,250,242,134,73,7,0,81,243,248,248,249,251,202,87,15,0,0,1,33,54,159,183,130,57,82,12,7,34,38,88,30,88,148,22,0,0,0,0,81,152,150,158,
+250,248,249,205,18,0,2,50,50,24,148,91,13,79,102,90,59,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,31,27,62,16,0,0,14,156,186,152,26,38,4,8,
+82,71,2,0,0,0,51,84,13,0,5,123,124,6,0,81,243,248,248,249,243,151,162,61,9,68,70,3,0,0,2,32,76,74,5,0,13,84,47,15,85,102,74,7,0,0,0,42,
+172,176,59,24,62,16,0,0,1,33,56,160,183,128,56,83,40,36,88,30,0,0,88,148,22,0,0,0,63,237,252,207,83,68,10,38,10,1,50,50,24,148,88,0,0,10,78,102,
+152,249,248,90,0,0,0,0,0,0,0,0,0,0,0,0,0,18,31,27,62,16,0,0,14,156,186,152,26,38,4,8,82,71,2,0,0,18,209,250,201,18,5,123,124,6,0,0,
+0,0,9,54,200,251,241,250,248,137,70,3,0,0,2,32,76,74,5,118,248,250,249,248,241,134,74,86,243,248,248,249,251,202,59,24,62,16,0,0,1,33,56,160,183,128,56,83,
+40,36,88,30,0,0,88,148,22,0,0,0,48,174,151,35,227,250,248,125,10,1,50,50,24,148,88,0,0,10,78,102,92,40,2,0,0,0,0,0,0,0,0,0,0,0,0,0,
+19,36,3,0,27,64,16,18,138,179,156,154,64,12,37,80,70,2,0,0,6,32,0,49,84,17,123,124,6,0,0,0,81,243,248,248,249,245,171,140,15,3,70,70,2,1,36,17,
+1,70,73,21,82,50,0,0,14,84,102,74,7,0,46,172,173,62,0,0,27,64,16,0,0,1,33,58,161,182,131,76,86,83,28,0,6,33,4,88,148,22,0,69,233,249,219,156,
+26,46,4,6,34,52,48,24,148,88,0,0,0,0,38,83,102,152,249,248,90,0,0,0,0,0,0,0,0,0,0,0,19,36,3,0,27,64,16,18,138,179,156,154,64,12,37,80,
+70,2,0,0,6,32,18,209,250,202,132,124,6,0,0,0,0,0,0,8,50,224,252,252,113,3,70,70,2,1,36,17,1,70,73,21,162,249,248,248,248,241,173,247,248,248,249,251,
+200,62,0,0,27,64,16,0,0,1,33,58,161,182,131,76,86,83,28,0,6,33,4,88,148,22,0,55,157,46,93,231,249,226,248,248,112,52,48,24,148,88,0,0,0,0,38,83,
+102,91,42,2,0,0,0,0,0,0,0,0,0,0,0,0,36,3,0,0,0,28,77,146,179,138,15,61,165,74,82,88,6,0,0,6,38,15,0,0,55,167,130,6,0,0,0,0,
+0,81,243,248,249,250,243,153,139,14,3,69,68,33,18,0,0,1,70,102,49,0,0,0,0,14,84,102,71,50,175,174,59,0,0,0,0,28,63,18,0,0,1,33,57,166,191,97,
+95,86,8,3,38,15,0,0,88,136,82,232,249,203,18,88,148,22,0,1,49,65,32,148,88,0,0,0,3,36,16,9,79,102,152,249,248,90,0,0,0,0,0,0,0,0,0,18,
+36,3,0,0,0,28,77,146,179,138,15,61,165,74,82,88,6,0,0,6,38,15,0,18,210,253,228,23,0,0,0,0,0,0,0,1,122,250,248,251,229,31,3,69,68,33,18,0,
+0,1,70,102,49,113,248,248,248,248,250,251,250,249,251,200,59,0,0,0,0,28,63,18,0,0,1,33,57,166,191,97,95,86,8,3,38,15,0,0,88,136,69,151,50,18,198,250,
+233,39,94,248,249,132,32,148,88,0,0,0,3,36,16,9,79,102,91,42,2,0,0,0,0,0,0,0,0,0,0,18,3,0,0,0,0,18,151,188,138,18,0,1,63,186,117,15,
+33,4,4,35,14,0,0,5,123,149,82,11,0,0,0,0,0,0,83,245,249,248,249,243,153,138,14,3,81,68,2,0,0,10,70,81,63,5,0,0,0,0,13,80,99,173,173,58,
+0,0,0,0,0,0,29,32,0,0,0,1,33,80,103,85,50,49,77,40,12,0,0,0,0,124,238,250,203,18,0,0,88,148,24,44,47,31,163,94,0,0,0,2,33,18,0,0,
+9,75,96,148,249,248,90,0,0,0,0,0,0,0,15,35,3,0,0,0,0,18,151,188,138,18,0,1,63,186,117,15,33,4,4,35,14,0,0,5,132,232,250,200,18,0,0,0,
+0,0,3,119,249,248,126,200,251,229,31,3,81,68,2,0,0,10,70,81,63,5,113,248,248,248,248,250,251,251,200,58,0,0,0,0,0,0,29,32,0,0,0,1,33,80,103,85,
+50,49,77,40,12,0,0,0,0,114,179,65,18,198,248,203,100,148,24,122,249,249,195,94,0,0,0,2,33,18,0,0,9,75,96,85,39,2,0,0,0,0,0,0,0,0,15,35,
+0,0,0,0,18,138,179,138,18,0,0,9,77,100,164,71,10,36,36,10,0,0,5,123,124,6,43,81,12,0,0,0,0,3,48,111,243,248,248,249,243,153,140,46,17,60,67,0,
+11,81,43,2,62,74,5,0,0,0,0,51,173,173,89,8,0,0,0,0,0,0,0,0,0,0,0,9,30,52,90,22,7,35,62,79,12,0,0,0,68,230,251,231,39,0,0,0,
+0,90,168,60,21,148,92,37,11,0,3,35,16,0,0,0,0,9,74,96,147,249,248,90,0,0,0,0,0,18,34,2,0,0,0,0,18,138,179,138,18,0,0,9,77,100,164,71,
+10,36,36,10,0,0,5,123,124,23,208,250,201,18,0,0,0,3,121,249,248,94,6,52,201,251,229,61,17,60,67,0,11,81,43,2,62,74,5,157,248,248,248,249,253,211,89,8,
+0,0,0,0,0,0,0,0,0,0,0,9,30,52,90,22,7,35,62,79,12,0,0,0,53,143,112,146,203,248,203,18,0,90,168,60,108,252,250,114,11,0,3,35,16,0,0,0,
+0,9,74,96,85,41,1,0,0,0,0,0,0,18,34,2,0,0,0,18,138,179,138,18,0,0,9,82,69,6,62,164,73,42,43,4,0,5,123,124,6,0,0,49,84,12,0,0,
+1,47,50,2,81,243,248,248,249,244,166,147,13,3,66,69,77,48,0,0,3,70,78,8,0,0,46,175,176,98,102,74,6,0,0,0,0,0,0,0,0,0,10,34,38,84,52,17,
+4,42,40,54,82,13,0,69,234,249,203,100,148,22,0,0,1,47,117,141,140,83,0,8,37,14,33,19,0,0,0,0,0,0,10,79,102,151,249,248,90,0,0,0,19,36,3,0,
+0,0,0,18,138,179,138,18,0,0,9,82,69,6,62,164,73,42,43,4,0,5,123,124,6,0,18,209,250,201,18,0,1,120,249,248,94,0,0,6,53,201,251,231,30,3,66,69,
+77,48,0,0,3,70,134,243,248,248,249,253,253,246,134,74,6,0,0,0,0,0,0,0,0,0,10,34,38,84,52,17,4,42,40,54,82,13,0,55,159,49,18,218,252,208,18,0,
+1,47,117,141,140,147,248,248,114,14,33,19,0,0,0,0,0,0,10,79,102,90,44,2,0,0,0,0,19,36,3,0,0,0,20,138,179,138,18,0,0,9,82,71,3,0,0,64,
+174,78,12,38,11,123,124,6,0,0,0,0,58,86,12,0,1,22,4,0,0,81,244,248,248,250,244,153,140,25,15,102,87,0,0,0,0,2,70,64,3,45,175,176,60,17,82,96,
+70,8,0,0,0,0,0,0,0,10,34,38,88,30,0,33,49,9,10,33,55,82,79,234,249,203,18,0,95,149,22,0,1,22,22,168,168,18,0,0,8,58,26,0,0,0,0,0,
+0,0,0,10,79,102,151,249,248,90,0,19,36,3,0,0,0,0,20,138,179,138,18,0,0,9,82,71,3,0,0,64,174,78,12,38,11,123,124,6,0,0,0,18,211,250,201,18,
+90,248,248,94,0,0,24,3,6,72,204,251,230,41,15,102,87,0,0,0,0,83,246,250,248,249,253,253,250,248,244,132,70,8,0,0,0,0,0,0,0,10,34,38,88,30,0,33,
+49,9,10,33,55,82,65,159,50,18,198,248,223,157,22,0,1,22,22,168,168,18,94,248,248,128,26,0,0,0,0,0,0,0,0,10,79,102,90,43,2,0,0,19,36,3,0,0,
+52,14,131,179,138,18,0,0,9,82,71,2,0,0,6,34,69,163,69,18,141,127,6,0,0,0,0,0,11,78,84,12,0,0,0,0,0,1,123,246,249,248,249,243,151,156,97,48,
+64,69,3,0,0,0,0,16,66,174,176,62,0,0,11,78,96,76,8,0,0,0,0,0,10,34,38,88,30,0,6,34,39,21,0,13,33,109,241,249,203,18,16,40,17,111,149,23,
+0,23,147,81,81,147,22,3,34,23,34,12,0,0,0,0,0,0,0,0,10,79,102,151,249,248,101,36,3,0,0,11,52,14,131,179,138,18,0,0,9,82,71,2,0,0,6,34,
+69,163,69,18,141,127,6,0,0,0,0,0,28,216,250,218,248,248,94,0,0,1,62,69,31,21,50,201,251,233,109,48,64,69,3,0,81,243,248,248,250,251,224,250,248,248,248,244,
+132,76,8,0,0,0,0,0,10,34,38,88,30,0,6,34,39,21,0,13,33,98,190,61,18,198,248,211,34,111,149,23,0,23,147,81,81,147,22,96,249,249,112,12,0,0,0,0,
+0,0,0,0,10,79,102,90,43,1,18,36,3,0,0,11,38,3,64,131,18,0,0,9,82,71,2,0,0,6,38,13,0,61,151,140,122,42,6,0,0,0,0,0,0,13,78,84,
+12,0,0,0,0,0,5,140,247,248,248,249,244,177,169,22,2,70,70,3,0,0,0,43,175,176,63,0,0,0,7,59,83,102,76,8,0,0,0,10,34,38,88,30,0,6,38,13,
+0,33,24,0,78,237,250,220,28,11,85,50,0,18,108,152,54,141,88,0,0,88,149,55,19,0,8,39,13,0,0,0,0,0,0,0,0,10,79,102,150,249,249,92,0,0,10,62,
+38,3,64,131,18,0,0,9,82,71,2,0,0,6,38,13,0,61,151,140,122,42,6,0,0,0,0,0,0,30,228,250,248,105,0,0,0,0,5,86,76,0,7,50,204,252,236,39,
+2,70,70,83,243,248,248,249,251,202,63,108,248,248,248,250,244,137,76,8,0,0,0,10,34,38,88,30,0,6,38,13,0,33,24,0,65,171,94,94,200,248,220,65,0,18,108,152,
+54,141,88,0,0,88,149,55,106,248,248,115,13,0,0,0,0,0,0,0,0,10,79,102,89,50,32,2,0,0,10,62,0,0,0,1,0,0,9,82,71,2,0,0,6,38,14,0,
+0,1,142,186,72,14,35,6,0,0,0,0,0,0,13,78,84,12,0,0,0,3,34,19,127,246,248,248,251,246,141,148,22,3,70,71,6,0,46,175,176,66,31,6,0,10,62,35,
+13,82,102,77,9,0,10,33,38,88,30,0,6,38,14,0,0,1,33,86,234,249,209,67,79,80,47,0,0,0,43,157,186,95,0,0,0,3,112,156,22,0,0,7,39,13,0,0,
+0,0,0,4,6,0,10,77,109,186,249,248,90,10,62,37,0,0,0,1,0,0,9,82,71,2,0,0,32,183,31,0,0,1,142,186,72,14,35,6,0,0,0,0,0,90,248,250,
+250,201,18,0,0,3,34,19,67,70,0,16,110,210,233,160,22,3,129,246,248,248,249,251,202,66,31,6,108,248,250,249,248,244,137,77,9,0,10,33,38,88,30,0,6,38,14,0,
+0,1,33,73,159,60,46,210,250,219,62,0,0,0,43,157,186,95,0,0,0,3,112,156,22,94,248,248,115,13,0,0,0,0,0,4,6,0,10,77,109,146,49,2,0,10,62,37,
+0,0,0,0,0,9,82,71,2,0,0,6,38,14,0,0,5,123,116,69,161,74,13,38,6,0,0,0,0,0,0,13,78,84,12,0,3,36,19,0,3,126,246,250,249,249,243,141,
+148,22,3,70,75,51,175,176,62,0,13,34,16,60,37,0,79,128,92,102,76,19,30,38,88,30,0,6,38,14,0,0,0,0,69,237,249,203,26,41,94,94,10,0,0,30,101,156,
+143,137,22,0,3,36,19,88,148,22,0,0,7,39,13,0,0,0,0,7,38,10,0,25,95,176,201,249,248,129,37,0,0,0,0,0,0,9,82,71,2,0,0,6,183,248,198,18,
+5,123,116,69,161,74,13,38,6,0,0,0,90,248,248,113,216,250,201,18,3,36,19,0,3,66,69,75,51,48,38,88,148,96,243,250,250,249,251,202,62,0,13,34,16,140,249,248,
+250,252,245,140,76,19,30,38,88,30,0,6,38,14,0,0,0,0,56,171,69,18,200,249,222,106,10,0,0,30,101,156,143,137,22,0,3,36,19,88,148,22,94,248,248,115,13,0,
+0,0,0,7,38,10,45,25,95,176,169,45,14,60,37,0,0,0,0,0,9,82,71,2,0,0,6,38,14,0,0,5,123,124,6,1,61,165,74,14,38,6,0,0,0,0,0,0,
+13,78,84,16,32,19,0,0,0,15,151,247,248,248,249,244,141,148,23,0,85,176,176,60,0,0,0,20,73,38,0,74,178,179,63,80,102,87,44,84,30,0,6,38,14,0,0,0,
+0,69,234,249,210,36,11,85,67,53,81,11,27,105,161,87,19,111,149,24,36,19,0,0,88,148,22,0,0,7,38,13,0,0,0,0,10,35,24,29,15,82,175,200,250,249,90,0,
+0,0,0,0,9,82,71,2,0,0,6,38,31,198,248,199,132,124,6,1,61,165,74,14,38,6,0,90,248,248,94,0,30,216,250,202,47,19,0,0,0,15,102,87,0,5,38,13,
+141,250,249,248,250,251,202,60,0,0,0,20,73,38,104,250,253,253,249,244,140,87,44,84,30,0,6,38,14,0,0,0,0,55,159,51,48,202,248,220,80,53,81,11,27,105,161,87,
+19,111,149,24,36,19,0,0,88,148,22,94,248,248,115,13,0,0,0,0,10,112,249,137,15,82,175,168,74,35,0,0,0,0,0,9,82,71,2,0,0,6,38,14,0,0,5,123,
+124,6,0,0,0,60,159,75,14,38,5,0,22,2,0,0,0,12,75,96,27,0,0,0,13,82,48,124,246,248,248,249,244,141,145,69,168,176,75,7,0,0,10,59,43,32,78,178,
+178,74,0,20,90,102,101,36,0,6,38,14,0,0,0,0,69,234,249,203,18,39,90,47,11,32,52,84,103,160,88,0,0,18,110,162,38,0,0,0,0,88,148,22,0,0,7,38,
+12,0,0,0,0,28,57,10,0,8,83,175,201,249,248,90,0,0,0,9,82,71,2,0,0,6,38,14,0,18,199,252,226,23,0,0,0,60,159,75,14,38,93,248,249,96,0,0,
+0,29,215,251,204,18,0,0,13,82,48,64,69,2,6,107,244,250,252,250,251,201,75,7,0,0,10,59,43,32,78,209,253,250,248,248,245,140,101,36,0,6,38,14,0,0,0,0,
+55,159,50,18,198,249,221,62,11,32,52,84,103,160,88,0,0,18,110,162,38,0,0,0,0,88,148,22,94,248,248,114,12,0,0,0,90,249,250,100,0,8,83,175,170,45,2,0,
+27,0,9,82,71,2,0,0,6,38,14,0,0,5,123,126,14,0,0,0,0,0,33,154,76,14,32,44,53,4,0,0,0,1,38,81,82,12,0,13,84,50,0,2,129,246,248,248,
+249,243,157,209,175,52,9,37,8,9,62,37,0,84,190,180,74,0,10,29,46,102,102,73,16,34,14,0,0,0,0,72,235,249,203,18,12,83,50,0,0,10,50,113,189,96,0,0,
+0,1,45,118,148,22,0,0,0,0,88,148,22,0,0,12,41,12,0,0,24,30,11,38,8,6,60,91,175,201,249,248,90,0,9,82,71,2,0,0,6,38,14,0,0,5,132,226,
+248,198,18,0,0,0,33,154,76,99,249,249,128,4,0,0,0,1,53,216,250,201,18,13,84,50,0,2,70,70,82,243,249,248,251,253,200,52,9,37,8,9,62,37,0,84,190,180,
+148,248,248,249,249,245,140,73,16,34,14,0,0,0,0,58,162,50,18,198,248,220,65,0,0,10,50,113,189,96,0,0,0,1,45,118,148,22,0,0,0,0,88,148,22,94,248,248,
+116,12,0,90,249,249,101,38,8,6,60,91,175,169,62,172,176,8,82,70,2,0,0,6,38,14,0,0,5,123,124,21,61,15,0,36,72,9,0,30,154,77,49,69,10,0,0,0,
+3,36,15,10,78,81,26,80,50,0,0,0,3,129,246,248,248,250,251,211,160,20,0,8,38,61,35,0,74,178,182,100,2,9,33,38,84,39,76,102,90,20,0,0,0,0,69,235,
+251,206,18,13,83,50,0,0,0,24,111,178,124,81,13,0,3,36,16,16,111,149,22,0,0,0,0,86,141,16,0,43,76,39,10,21,33,1,0,8,38,61,32,11,82,175,201,249,
+248,95,82,70,2,0,0,6,38,14,0,0,5,123,124,37,212,248,198,51,72,9,0,30,190,250,249,138,10,0,0,0,3,36,15,28,216,250,204,93,50,0,0,0,3,129,246,248,
+248,250,251,211,160,20,0,8,38,61,35,0,74,178,182,100,2,110,249,249,250,249,244,143,90,20,0,0,0,0,55,165,99,32,198,248,220,65,0,0,0,24,111,178,124,81,13,0,
+3,36,16,16,111,149,22,0,0,0,0,86,141,16,94,249,250,115,96,248,249,94,0,8,38,61,32,11,82,181,235,249,65,77,69,2,0,0,6,38,14,0,0,5,123,124,6,0,
+30,63,16,72,102,78,8,0,30,171,115,17,35,6,0,3,36,19,0,0,10,77,102,68,37,0,0,0,0,3,128,246,249,253,253,246,139,148,22,8,61,56,7,74,178,178,74,10,
+38,33,37,88,30,0,16,92,102,77,10,0,0,69,234,249,209,76,21,76,88,16,0,0,0,80,174,98,31,55,81,17,32,19,0,0,19,112,149,22,0,0,0,0,76,136,22,6,
+67,73,48,36,0,0,0,8,61,56,7,0,10,82,175,200,249,250,134,2,0,0,6,38,14,0,0,5,123,124,6,0,46,212,248,214,113,78,8,90,249,252,166,17,35,6,0,3,
+36,19,0,0,27,215,251,213,52,0,0,0,81,243,250,250,249,251,200,64,86,148,22,8,61,56,7,74,178,178,74,10,38,33,122,250,249,248,248,245,143,77,10,0,0,55,159,48,
+46,212,248,219,100,16,0,0,0,80,174,98,31,55,81,17,32,19,0,0,19,112,149,22,0,0,0,0,76,136,22,98,250,250,249,249,94,0,0,8,61,56,7,0,27,216,253,238,
+175,87,4,0,0,6,38,14,0,0,5,123,124,6,0,0,0,28,57,56,90,102,75,11,43,77,155,79,14,36,9,34,19,0,0,0,10,81,88,104,159,53,0,0,0,0,0,139,
+251,253,250,249,244,141,152,79,35,9,101,181,178,74,0,6,37,56,86,29,0,6,34,23,78,102,78,10,69,234,249,203,18,27,62,73,43,5,0,0,64,170,90,0,13,32,55,95,
+28,0,0,0,0,19,112,149,22,0,0,0,0,85,147,22,1,76,85,37,12,0,10,62,35,9,38,10,0,10,80,175,205,250,248,90,0,6,38,14,0,0,5,123,124,6,0,0,
+0,44,211,250,218,113,138,248,249,143,155,79,14,36,9,34,19,0,0,0,10,94,218,251,233,67,0,81,243,248,248,250,251,200,57,31,14,88,152,79,35,9,101,181,178,74,0,6,
+37,56,86,117,248,248,249,249,244,143,78,10,55,159,48,18,198,249,216,86,43,5,0,0,64,170,90,0,13,32,55,95,28,0,0,0,0,19,112,149,22,0,0,0,0,85,147,22,
+150,250,250,165,12,0,10,62,35,9,38,27,198,248,219,181,175,168,46,1,5,38,14,0,0,5,123,124,6,0,0,0,0,1,59,73,30,76,102,88,53,3,29,152,79,14,58,21,
+0,0,0,13,84,48,12,77,120,162,52,0,0,0,45,172,201,247,248,248,249,243,169,163,23,69,181,190,81,0,11,34,34,90,55,1,5,38,14,0,11,80,102,126,235,249,203,18,
+0,1,59,74,17,0,1,64,171,91,0,0,0,13,52,68,81,13,0,0,0,0,19,112,149,22,0,0,0,0,88,148,42,30,66,76,23,9,62,37,0,0,10,39,10,0,19,105,
+175,200,249,248,93,38,14,0,0,5,123,124,6,0,0,0,0,1,73,214,249,228,251,250,127,3,29,152,79,14,58,21,0,0,0,13,84,48,30,215,251,234,126,243,248,248,249,251,
+201,90,0,4,22,11,128,163,23,69,181,190,81,0,11,34,34,90,55,1,102,249,248,248,248,244,143,117,163,48,18,198,248,203,73,74,17,0,1,64,171,91,0,0,0,13,52,68,
+81,13,0,0,0,0,19,112,149,22,0,0,0,0,88,186,249,249,250,250,105,9,62,37,0,0,27,207,248,203,36,105,80,175,169,47,32,12,0,0,5,123,124,6,0,0,0,0,
+3,50,44,28,54,28,89,102,73,5,0,29,153,100,28,32,6,0,13,84,50,0,0,13,77,119,162,53,0,46,175,175,56,125,246,248,248,250,245,136,156,173,175,81,35,16,30,33,
+84,28,8,36,36,11,0,0,0,10,127,242,251,205,18,0,3,50,44,28,59,16,58,170,91,0,0,0,3,31,27,30,55,82,13,0,0,0,0,19,110,149,22,0,0,0,0,102,
+162,22,2,66,68,55,35,0,0,0,0,10,33,16,76,68,80,175,201,249,249,98,0,0,5,123,124,6,0,0,0,0,3,50,44,44,224,249,250,165,73,5,0,29,153,100,28,32,
+6,0,13,84,50,0,0,30,215,251,252,249,248,249,251,201,56,64,69,0,6,59,36,81,156,173,175,81,35,16,30,33,84,28,8,36,36,106,248,248,248,248,247,213,114,27,198,248,
+204,64,44,28,59,16,58,170,91,0,0,0,3,31,27,30,55,82,13,0,0,0,0,19,110,149,22,0,0,0,90,250,252,108,96,250,250,126,35,0,0,18,198,248,210,33,76,68,
+9,82,175,171,49,17,24,5,123,124,6,0,0,0,0,4,52,46,1,0,26,69,52,80,102,72,5,0,61,160,80,13,34,20,83,50,0,0,0,0,12,77,118,158,83,169,175,55,
+0,2,127,246,250,249,248,247,203,179,86,0,16,52,40,81,25,0,6,42,38,20,23,0,0,69,235,251,218,24,0,4,52,46,1,0,26,89,169,88,0,0,0,3,36,18,0,12,
+32,55,82,13,0,0,0,0,18,111,149,22,0,0,24,31,88,148,22,12,96,82,1,0,0,0,0,0,14,93,72,0,9,82,175,202,249,248,105,5,123,124,6,0,0,0,0,4,
+52,46,1,90,249,250,250,216,113,72,5,0,61,160,80,13,34,20,83,50,0,0,0,0,100,249,251,252,250,251,201,55,0,2,67,70,55,33,0,69,179,179,86,0,16,52,40,81,
+25,0,6,42,38,20,109,248,248,249,252,246,135,200,248,204,66,46,1,0,26,89,169,88,0,0,0,3,36,18,0,12,32,55,82,13,0,0,0,0,18,111,149,22,0,90,249,249,
+150,148,22,102,251,250,90,0,18,198,248,203,31,93,72,0,0,10,83,175,169,61,7,123,124,6,0,0,0,0,4,53,48,2,0,2,44,59,52,28,81,102,70,34,17,28,152,81,
+18,94,52,0,0,0,0,0,0,12,73,133,208,182,52,0,0,0,12,147,247,248,250,253,251,165,135,32,31,42,99,35,0,0,14,9,26,58,8,0,69,234,249,205,22,0,4,53,
+48,2,0,2,62,173,124,15,0,0,3,36,19,0,0,0,13,33,55,82,13,0,0,0,0,19,112,150,28,24,33,1,0,88,152,76,36,66,69,3,0,0,0,9,80,72,36,9,
+0,10,83,175,201,250,248,169,124,6,0,0,0,0,4,53,48,2,90,248,249,140,210,249,216,113,70,34,17,28,152,81,18,94,52,0,0,0,0,81,243,248,250,252,253,205,52,0,
+0,0,12,96,83,1,74,178,173,123,135,32,31,42,99,35,0,0,14,9,26,58,8,94,249,252,249,248,246,248,204,67,48,2,0,2,62,173,124,15,0,0,3,36,19,0,0,0,
+13,33,55,82,13,0,0,0,0,19,112,150,108,249,249,94,0,88,152,76,117,250,250,104,198,248,203,26,80,72,36,9,10,0,8,87,173,163,138,122,6,0,0,0,0,4,54,47,
+1,0,2,49,51,3,25,59,30,82,102,75,2,0,28,152,82,32,35,6,0,0,0,0,0,0,68,184,170,168,50,0,0,10,60,36,125,249,253,253,250,243,146,162,57,86,37,30,
+7,0,0,17,33,16,36,73,234,249,203,18,0,4,54,47,1,0,2,66,170,90,25,64,16,1,36,19,0,0,0,0,0,13,33,55,82,13,0,0,0,0,18,109,88,32,1,0,
+0,10,129,164,22,2,70,72,114,95,14,82,70,1,8,39,10,0,8,87,173,197,252,252,94,0,0,0,0,4,54,47,1,90,248,249,126,3,42,211,249,216,113,75,2,0,28,152,
+82,32,35,6,0,0,81,243,248,248,250,252,197,168,50,0,0,10,60,36,65,123,179,178,72,0,94,162,57,86,37,30,7,0,0,17,33,16,36,60,194,249,248,248,248,246,121,47,
+1,0,2,66,170,90,25,64,16,1,36,19,0,0,0,0,0,13,33,55,82,13,0,0,0,0,18,161,250,249,94,0,0,10,129,164,22,96,250,250,251,223,31,82,70,1,8,39,
+39,8,13,38,84,205,201,51,2,0,0,0,5,54,46,1,0,4,49,51,3,0,0,26,57,48,86,102,68,4,0,27,152,82,14,38,6,0,0,0,0,60,190,154,87,113,162,52,
+10,62,37,0,75,216,252,250,248,248,245,158,185,50,0,7,37,8,17,36,3,0,79,237,249,203,18,0,5,54,46,1,0,4,67,170,90,0,0,26,61,42,15,0,0,0,0,0,
+0,0,13,33,55,82,13,0,0,0,0,35,55,2,0,0,10,62,37,88,148,20,3,150,199,169,94,70,2,0,0,10,39,8,13,38,84,205,221,249,248,90,0,0,5,54,46,1,
+90,248,249,126,3,0,0,42,211,249,217,113,68,4,0,27,152,82,14,38,6,81,243,248,248,250,252,187,87,113,162,52,10,62,37,0,75,199,199,76,0,10,33,113,185,50,0,7,
+37,8,17,36,3,0,66,173,53,105,248,248,248,250,242,72,0,4,67,170,90,0,0,26,61,42,15,0,0,0,0,0,0,0,13,33,55,82,13,0,0,0,90,249,250,95,0,0,
+10,62,37,88,148,37,217,252,253,204,94,70,2,0,0,10,8,46,38,5,124,158,170,167,47,3,0,5,54,46,0,0,0,43,51,3,0,0,0,0,48,62,32,83,102,67,4,27,
+43,151,83,14,38,6,0,0,60,190,155,50,14,77,117,167,98,37,0,74,189,185,164,246,248,249,249,247,155,148,22,0,7,46,38,2,0,69,234,249,211,24,0,5,54,46,0,0,
+0,61,170,90,0,0,0,0,48,66,15,0,0,0,0,1,55,6,0,13,33,55,82,13,0,0,24,29,17,35,1,9,62,37,0,0,111,145,117,179,187,124,66,1,0,0,0,0,
+8,46,38,5,124,158,170,199,249,248,90,5,54,46,0,90,248,249,126,3,0,0,0,0,63,212,249,216,113,67,4,0,27,151,83,14,107,243,248,248,250,252,187,50,14,77,117,167,
+98,37,0,74,189,185,121,67,14,31,38,88,108,148,22,0,7,46,38,2,0,55,159,59,53,200,248,248,250,249,248,243,72,61,170,90,0,0,0,0,48,66,15,0,0,0,0,1,
+55,6,0,13,33,55,82,13,0,90,249,249,105,35,1,9,62,37,0,0,120,230,252,245,253,251,133,1,0,0,0,0,17,38,40,128,124,12,80,176,169,46,9,54,45,0,0,0,
+0,14,4,0,0,0,3,36,15,24,59,34,85,102,86,221,198,42,151,84,14,37,4,59,190,155,52,0,0,10,75,133,173,48,69,178,185,118,21,128,247,249,250,249,243,141,148,22,
+16,38,36,10,69,234,249,203,31,35,12,54,45,0,0,0,22,154,91,0,0,0,3,36,15,24,64,18,0,0,0,83,179,110,3,0,13,33,55,100,209,86,33,1,0,16,36,58,
+36,0,0,0,24,173,185,160,101,93,65,2,0,0,0,0,17,38,40,128,124,12,80,176,201,249,248,125,45,0,90,248,248,103,4,0,0,0,3,36,15,41,211,249,217,113,66,3,
+0,26,151,138,244,249,248,250,252,187,52,0,0,10,75,133,173,48,69,178,185,118,21,69,82,40,86,30,0,88,148,22,16,38,36,10,55,159,48,18,201,249,205,134,249,248,248,248,
+244,182,91,0,0,0,3,36,15,24,64,18,0,0,0,83,179,110,3,0,13,33,55,82,98,248,249,94,0,16,36,58,36,0,0,18,203,253,241,166,158,250,250,91,0,0,0,0,
+36,6,127,142,10,0,10,82,175,168,71,41,0,0,0,0,0,0,0,0,0,3,33,19,0,0,27,59,35,86,113,212,248,198,42,151,84,10,79,190,155,52,0,0,0,8,58,83,
+112,166,176,173,73,20,61,43,133,248,249,248,248,243,141,154,52,1,9,95,234,249,198,18,0,16,69,44,0,0,0,22,148,88,0,0,0,3,33,19,0,0,27,64,18,0,0,48,
+164,185,117,3,0,13,56,225,250,241,72,0,0,8,64,54,0,0,0,5,114,185,189,180,77,10,68,70,3,0,0,19,36,6,127,142,10,0,10,82,175,200,250,249,90,90,248,248,
+94,0,0,0,0,3,33,19,0,0,43,211,249,217,113,64,2,0,99,250,250,248,251,252,187,52,0,0,0,8,58,83,112,166,176,173,73,20,61,43,77,102,31,0,0,0,88,154,
+52,1,9,83,161,48,18,198,248,206,82,44,90,248,248,249,252,247,72,0,0,3,33,19,0,0,27,64,18,0,0,48,164,185,117,3,0,13,33,125,250,249,94,0,0,8,64,54,
+0,0,18,199,251,239,193,180,77,100,250,250,92,0,0,19,8,123,124,9,2,0,0,10,84,175,172,45,2,0,0,0,0,0,0,0,3,36,18,0,0,0,0,26,59,36,86,113,
+212,248,198,41,142,119,183,154,54,0,0,0,10,62,34,12,125,201,183,104,0,7,44,71,82,131,246,248,248,248,244,156,148,20,66,234,249,198,18,0,8,53,49,32,6,0,22,148,
+88,0,0,0,3,36,18,0,0,0,0,26,64,18,0,0,41,179,204,117,3,5,219,249,251,253,244,69,10,62,34,15,35,3,6,116,179,162,108,146,157,22,3,70,70,2,17,36,
+8,123,124,9,2,0,0,10,84,175,202,249,248,248,248,94,0,0,0,0,3,36,18,0,0,0,0,42,211,249,217,113,63,82,243,249,252,252,251,187,54,0,0,0,10,62,34,12,
+125,201,183,104,0,7,44,71,82,74,64,3,0,0,19,111,148,20,51,160,49,18,198,248,205,68,49,32,6,90,249,252,250,248,243,77,3,36,18,0,0,0,0,26,64,18,0,0,
+41,179,204,117,3,0,97,249,251,202,74,1,10,62,34,15,35,3,33,236,238,169,108,146,157,22,96,250,250,91,17,36,123,124,6,0,0,0,0,0,37,95,175,169,48,3,0,0,
+0,0,0,3,36,19,0,0,0,0,0,0,26,59,38,87,113,212,248,198,91,209,181,58,30,6,0,10,62,37,0,74,182,199,155,147,56,33,38,90,72,21,126,246,248,248,248,243,
+136,160,231,249,198,18,0,0,38,45,0,13,38,28,148,88,0,0,0,3,36,19,0,0,0,0,0,0,26,64,18,0,0,41,180,204,117,4,95,246,252,253,253,241,103,37,0,0,
+19,41,119,179,162,107,66,22,128,157,22,3,69,70,21,7,123,124,6,0,0,0,0,0,37,95,175,220,249,248,150,0,0,0,0,3,36,19,0,0,0,0,0,0,42,211,249,218,
+158,246,248,248,250,253,205,58,30,6,0,10,62,37,0,74,182,199,155,147,56,33,38,90,72,21,66,70,3,0,21,3,81,153,148,44,18,198,248,203,53,45,0,13,38,28,186,247,
+248,248,248,243,102,19,0,0,0,0,0,0,26,64,18,0,0,41,180,204,117,49,248,250,191,195,169,27,58,37,0,0,19,41,119,187,168,107,66,22,128,157,22,96,250,250,104,7,
+124,6,0,0,0,0,0,0,1,14,82,175,170,48,4,0,0,0,3,36,19,0,0,0,0,0,0,0,0,26,58,39,88,113,211,250,240,167,160,85,13,34,16,60,37,0,74,178,
+178,82,76,118,173,82,87,28,18,61,22,126,246,248,248,248,245,242,252,202,18,0,0,0,4,0,0,0,35,164,92,0,0,0,3,36,19,0,0,0,0,0,0,0,0,26,64,18,
+0,0,41,180,203,125,57,179,251,252,250,251,242,54,0,0,7,129,189,163,104,70,2,0,22,130,157,22,3,70,72,124,124,6,0,0,0,0,0,0,1,14,144,253,253,249,248,90,
+0,0,3,36,19,0,0,0,0,0,0,0,0,42,211,249,250,251,250,250,251,190,160,85,13,34,16,60,37,0,74,178,178,82,76,118,173,82,87,28,18,61,22,66,70,3,0,0,
+50,174,150,33,198,248,203,18,4,0,0,0,35,164,92,90,243,248,248,249,244,77,0,0,0,0,0,0,0,26,64,18,0,0,41,180,203,125,155,182,183,152,74,102,43,0,0,0,
+7,129,189,163,104,70,2,0,22,130,157,22,96,250,250,170,96,0,0,0,0,0,0,0,0,0,10,85,159,132,41,6,0,3,36,19,0,0,0,0,0,0,0,0,0,0,25,58,
+40,86,125,241,252,210,40,150,87,20,73,38,0,74,178,178,74,0,19,83,122,189,73,0,0,22,61,22,126,246,248,249,252,249,227,156,22,0,0,0,0,0,0,22,148,97,38,6,
+0,3,36,19,0,0,0,0,0,0,0,0,0,0,26,64,19,0,0,40,181,207,170,179,177,245,250,250,250,240,54,8,121,179,165,114,69,2,0,0,0,22,130,157,20,4,159,160,
+9,0,0,0,0,0,0,0,0,90,248,250,195,177,249,248,90,3,36,19,0,0,0,0,0,0,0,0,0,0,109,249,249,250,251,252,186,52,24,150,87,20,73,38,0,74,178,178,
+74,0,19,83,122,189,73,0,0,22,61,22,66,70,3,55,157,44,93,231,249,203,18,0,0,0,0,22,148,97,38,6,90,243,249,248,248,243,77,0,0,0,0,0,0,0,26,64,
+19,0,0,40,181,207,170,179,134,34,66,70,78,13,0,8,121,179,165,114,69,2,0,0,0,22,130,157,20,97,253,253,250,92,0,0,0,0,0,0,0,0,0,8,9,122,130,41,
+9,34,19,0,0,0,0,0,0,0,0,0,0,0,0,25,53,84,191,162,216,248,198,40,154,114,43,32,78,178,178,74,0,10,30,46,102,121,161,52,0,0,22,61,22,126,248,252,
+249,248,243,141,148,22,0,0,0,0,22,148,88,0,14,36,9,34,19,0,0,0,0,0,0,0,0,0,0,0,0,25,64,19,0,23,79,193,204,168,28,128,249,249,250,250,236,149,
+179,160,101,75,32,2,0,0,0,0,22,128,145,121,120,74,70,3,0,0,0,0,0,0,90,248,248,99,9,122,176,249,248,112,19,0,0,0,0,0,0,0,0,0,0,81,243,249,
+250,251,253,191,81,0,0,24,154,114,43,32,78,178,178,74,0,10,30,46,102,121,161,52,0,0,22,61,22,66,109,160,48,18,198,250,233,39,0,0,0,0,22,148,88,0,14,36,
+9,112,244,248,248,248,243,77,0,0,0,0,0,0,0,25,64,19,0,23,79,193,204,168,28,59,42,30,55,82,21,121,179,160,101,75,32,2,0,0,0,0,22,128,145,121,177,250,
+250,250,92,0,0,0,0,0,0,0,0,0,0,5,122,129,62,21,0,0,0,0,0,0,0,0,0,0,0,16,3,0,74,191,153,96,113,211,248,200,92,64,0,84,190,180,74,0,
+10,34,39,83,40,74,119,162,52,0,0,22,61,85,243,251,248,248,248,243,141,148,22,0,0,22,148,88,0,0,0,14,58,21,0,0,0,0,0,0,0,0,0,0,0,16,4,0,
+25,60,35,48,139,179,192,203,145,37,90,248,249,250,253,248,178,104,70,1,16,36,3,0,0,0,0,22,178,185,27,3,70,70,3,0,0,0,0,90,248,248,94,0,0,5,122,176,
+250,248,90,0,0,0,0,0,0,0,0,0,81,244,248,248,250,253,252,219,113,56,0,9,79,64,0,84,190,180,74,0,10,34,39,83,40,74,119,162,52,0,0,22,61,72,183,102,
+19,198,248,203,100,148,22,0,0,22,148,88,0,0,0,14,58,21,86,243,248,248,248,243,81,0,0,0,0,16,4,0,25,60,35,48,139,179,192,203,145,37,0,12,33,62,166,182,
+158,104,70,1,16,36,3,0,0,0,0,22,178,185,27,154,96,250,250,92,0,0,0,0,0,0,0,0,0,0,8,139,136,38,6,0,0,0,0,0,0,0,11,16,0,18,30,62,
+189,155,78,45,91,113,211,250,206,18,74,177,182,101,4,8,34,39,87,30,0,13,78,120,163,51,0,0,85,239,249,223,246,248,248,248,243,141,147,18,18,147,88,0,0,0,3,32,
+28,34,6,0,0,0,0,0,0,0,11,16,0,19,36,3,0,38,90,154,179,127,59,191,207,120,5,94,248,251,253,253,240,104,2,0,0,19,36,5,0,0,5,120,125,128,154,22,
+3,70,70,3,0,0,90,248,248,94,0,0,0,0,8,139,180,249,248,90,0,0,0,0,0,0,11,92,243,248,249,250,252,191,216,249,218,113,59,55,36,0,74,177,182,101,4,8,
+34,39,87,30,0,13,78,120,163,51,0,0,71,182,66,72,212,248,203,18,0,88,147,18,18,147,88,0,0,0,3,32,28,34,6,86,243,248,248,248,243,81,11,16,0,19,36,3,
+0,38,90,154,179,127,59,191,207,120,5,0,19,139,195,185,99,67,2,0,0,19,36,5,0,0,5,120,125,128,154,22,19,96,250,250,92,0,0,0,0,0,0,0,0,3,36,24,
+118,117,43,6,0,0,0,0,0,0,5,36,18,0,68,184,153,49,22,57,46,92,113,214,248,212,172,165,71,12,40,34,38,87,30,0,0,0,12,66,116,153,38,56,232,249,212,38,
+126,246,248,248,248,243,138,135,135,84,0,0,0,3,36,19,0,14,38,6,0,0,0,0,0,0,5,36,19,0,18,32,24,46,149,190,135,21,61,65,171,197,111,16,165,252,252,251,
+251,232,45,0,0,0,19,21,0,6,109,120,4,22,128,146,19,3,70,70,3,90,248,248,94,0,0,0,0,3,36,24,118,168,249,248,90,0,0,0,0,0,85,245,248,248,250,252,
+185,49,38,211,249,218,113,72,0,66,165,165,71,12,40,34,38,87,30,0,0,0,12,66,116,153,38,41,149,64,76,203,250,217,21,0,0,0,84,135,135,84,0,0,0,3,36,19,
+0,14,38,6,86,243,248,248,248,243,81,36,19,0,18,32,24,46,149,190,135,21,61,65,171,197,111,16,108,162,160,109,102,15,0,0,0,0,19,21,0,6,109,120,4,22,128,146,
+152,21,96,250,250,92,0,0,0,0,0,0,3,36,19,0,6,109,125,42,6,0,0,0,0,0,0,3,29,70,186,148,68,0,0,22,56,69,96,113,222,253,235,79,0,8,39,57,
+85,28,0,0,0,0,0,0,50,109,164,232,249,198,38,59,18,126,246,248,248,248,244,184,150,21,0,5,110,71,19,0,0,0,14,38,6,0,0,0,0,0,0,3,36,18,0,35,
+74,142,168,133,69,62,34,0,34,169,195,161,154,183,251,250,250,250,231,41,0,0,0,0,5,118,111,6,0,0,22,121,152,21,3,70,135,248,248,94,0,0,0,0,3,36,19,0,
+6,109,172,249,248,90,0,0,0,81,243,248,249,250,252,181,68,0,0,38,210,250,219,113,109,165,165,66,0,8,39,57,85,28,0,0,0,0,0,0,50,109,157,151,34,18,203,250,
+207,80,70,3,0,0,21,150,150,21,0,5,110,71,19,0,0,0,14,38,6,86,243,248,248,221,27,3,36,18,0,35,74,142,168,133,69,62,34,0,34,169,195,161,154,135,98,81,
+54,80,13,0,0,0,0,0,5,118,111,6,0,0,22,121,128,157,22,96,250,250,92,0,0,0,0,3,36,19,0,0,0,5,125,130,42,6,0,0,0,0,0,0,61,191,154,49,
+14,34,2,7,63,66,48,140,212,241,250,198,27,33,41,88,55,2,0,0,0,0,0,0,0,102,241,252,209,18,0,18,57,21,126,246,248,249,252,247,136,144,34,119,142,31,0,0,
+0,0,0,14,38,6,0,0,0,0,0,0,3,32,35,49,157,189,129,19,63,70,18,0,0,48,191,202,172,97,151,248,249,250,250,231,41,0,0,5,123,123,6,0,0,0,0,22,
+128,157,22,92,250,250,96,0,0,0,0,3,36,19,0,0,0,5,125,176,249,248,90,0,81,243,248,248,250,252,186,49,14,34,2,7,76,213,249,229,212,193,74,0,10,33,41,88,
+55,2,0,0,0,0,0,0,0,90,191,164,62,198,248,207,71,21,66,70,3,27,147,81,81,144,34,119,142,31,0,0,0,0,0,14,38,6,81,243,221,27,0,0,3,32,35,49,
+157,189,129,19,63,70,18,0,0,48,191,202,172,97,69,16,31,56,83,11,0,0,0,5,123,123,6,0,0,0,0,22,22,130,157,22,96,250,250,92,0,0,3,36,19,0,0,0,
+3,69,65,122,129,42,6,0,0,15,14,59,190,155,68,14,0,14,19,60,33,21,115,193,206,154,209,248,205,55,88,23,10,38,5,4,9,0,0,0,69,233,250,225,168,52,0,0,
+21,61,22,126,246,252,251,248,243,139,180,141,20,0,0,0,0,0,0,0,14,38,6,0,0,22,56,6,0,23,76,157,179,135,30,60,33,22,64,20,13,124,179,193,202,149,9,113,
+248,249,250,250,223,41,5,123,124,6,0,0,0,0,0,0,22,130,192,249,248,138,70,3,0,0,3,36,19,0,0,0,3,69,65,122,175,249,248,141,243,248,248,250,252,187,68,14,
+0,14,19,60,33,38,223,253,244,154,49,10,32,40,88,23,10,38,5,4,9,0,0,0,55,158,83,127,234,249,203,18,21,61,22,66,70,118,91,0,0,85,180,141,20,0,0,0,
+0,0,0,0,14,38,6,77,27,22,56,6,0,23,76,157,179,135,30,60,33,22,64,20,13,124,179,193,202,149,9,0,13,35,59,81,17,0,5,123,124,6,0,0,0,0,0,0,
+0,22,130,157,22,96,250,250,91,1,36,19,0,0,0,3,70,71,5,5,122,129,39,6,0,2,79,191,155,52,3,34,16,7,61,37,0,74,185,196,111,94,113,212,249,218,45,0,
+0,13,37,37,9,10,23,69,234,249,198,65,120,163,52,0,0,22,61,22,126,247,248,248,248,249,191,144,20,0,0,0,0,0,0,0,0,14,35,3,9,80,102,54,18,55,153,189,
+135,17,61,37,0,0,24,74,142,179,145,116,183,194,122,6,118,248,249,250,250,225,149,124,6,0,0,0,0,0,0,0,0,63,251,252,108,3,70,70,2,1,36,19,0,0,0,3,
+70,71,5,5,122,175,249,248,248,248,251,252,187,52,3,34,16,7,61,37,0,74,190,242,251,219,113,65,39,87,29,0,0,13,37,37,9,10,23,55,159,48,18,209,251,236,66,0,
+0,22,61,22,66,81,3,0,4,115,162,144,20,0,0,0,0,0,0,0,0,14,35,3,9,80,102,54,18,55,153,189,135,17,61,37,0,0,24,74,142,179,145,116,183,194,122,6,
+0,11,34,70,82,27,132,124,6,0,0,0,0,0,0,0,0,0,22,130,157,22,96,250,250,112,17,0,0,0,3,70,70,3,0,0,5,122,129,42,4,60,190,155,60,0,0,1,
+36,65,36,0,74,178,178,90,56,56,96,111,219,249,198,18,0,4,44,40,13,37,77,234,249,198,18,0,51,119,163,52,0,0,22,61,22,126,246,248,252,252,245,139,148,22,0,0,
+0,0,0,0,0,0,10,40,79,102,77,54,65,153,179,127,45,65,36,0,0,0,15,144,197,157,92,76,39,170,204,124,6,124,249,249,250,253,240,36,0,0,0,0,0,0,0,0,
+0,0,137,176,157,22,3,69,68,33,17,0,0,0,3,70,70,3,0,0,5,165,250,249,248,250,252,187,60,0,0,1,36,65,36,0,74,178,178,102,211,250,220,111,93,26,0,0,
+0,4,44,40,13,37,64,159,48,18,198,248,213,128,163,52,0,0,22,61,22,66,70,7,123,141,26,85,148,22,0,0,0,0,0,0,0,0,10,40,79,102,77,54,65,153,179,127,
+45,65,36,0,0,0,15,144,197,157,92,76,39,170,204,124,6,4,42,37,61,173,135,6,0,0,0,0,0,0,0,0,0,0,0,22,130,157,22,96,250,250,90,0,0,3,70,71,
+4,0,0,0,0,5,122,122,88,188,155,52,28,18,0,10,60,37,0,79,178,178,74,0,28,64,73,102,112,208,248,198,24,38,11,19,61,78,234,249,198,18,0,0,0,51,119,163,
+52,0,0,22,61,22,128,251,252,248,248,243,141,148,22,0,1,0,0,0,0,0,8,82,102,78,31,53,167,185,124,19,60,37,0,0,0,15,134,179,156,112,80,4,0,35,178,204,
+128,39,132,248,253,253,250,223,27,0,0,0,0,0,4,0,0,0,0,22,130,157,22,4,86,76,1,0,0,3,70,71,4,0,0,0,81,243,252,252,251,253,210,52,28,18,0,10,
+60,37,0,79,178,178,74,0,44,212,250,221,112,43,0,0,6,38,11,19,61,65,159,48,18,198,248,203,18,51,119,163,52,0,0,22,61,22,69,159,141,23,0,0,88,148,22,0,
+1,0,0,0,0,0,8,82,102,78,31,53,167,185,124,19,60,37,0,0,0,15,134,179,156,112,80,4,0,35,178,204,128,39,12,23,151,154,85,13,0,0,0,0,0,0,4,0,
+0,0,0,0,22,129,158,48,106,250,250,91,1,70,70,4,44,22,0,0,0,0,1,142,209,153,54,0,2,32,24,58,37,0,79,202,187,74,0,10,29,52,100,70,94,113,208,248,
+206,31,0,24,85,237,249,198,18,0,0,0,0,0,62,118,161,52,0,0,22,64,136,194,247,248,248,248,243,141,148,24,46,22,0,0,0,10,79,102,80,51,56,154,180,139,34,58,
+37,0,0,0,15,135,179,148,91,80,60,19,0,0,34,177,208,129,20,194,252,249,250,250,223,27,0,0,0,1,30,19,0,0,0,0,22,129,158,48,19,67,70,1,1,70,70,4,
+44,22,0,81,243,248,248,252,253,252,250,90,2,32,24,58,37,0,79,202,187,74,0,10,29,66,220,250,219,113,44,1,34,14,0,24,72,172,53,18,198,248,203,18,0,0,62,118,
+161,52,0,0,22,64,136,166,80,2,0,0,0,88,148,24,46,22,0,0,0,10,79,102,80,51,56,154,180,139,34,58,37,0,0,0,15,135,179,148,91,80,60,19,0,0,34,177,
+208,129,20,132,135,36,55,82,13,0,0,0,0,1,30,19,19,0,0,0,0,22,137,162,22,96,250,250,132,69,3,0,24,64,20,0,0,0,59,183,190,144,34,6,0,11,72,44,
+0,74,178,188,138,28,6,33,40,84,46,54,58,99,113,208,248,198,18,71,234,249,207,24,0,0,0,0,0,0,1,58,114,162,53,0,5,135,161,37,125,246,248,248,248,243,141,148,
+44,64,20,0,10,79,102,76,31,63,169,181,121,19,72,44,0,0,0,17,136,179,146,94,76,4,20,64,23,0,0,34,177,203,166,116,136,248,249,250,250,219,27,0,0,0,4,36,
+19,0,0,0,0,22,137,162,22,3,68,65,65,69,3,0,24,64,94,243,248,248,250,251,211,185,249,248,90,11,72,44,0,74,178,188,138,28,6,33,40,84,60,210,250,220,113,46,
+3,0,0,57,159,60,54,199,248,203,18,0,0,0,1,58,114,162,53,0,5,135,161,37,64,62,1,0,0,0,88,148,44,64,20,0,10,79,102,76,31,63,169,181,121,19,72,44,
+0,0,0,17,136,179,146,94,76,4,20,64,23,0,0,34,177,203,166,116,3,14,34,55,82,13,0,0,0,0,4,36,36,19,0,0,3,30,34,127,157,22,97,251,251,93,0,0,
+0,23,64,18,0,60,191,154,58,121,129,39,16,59,36,30,87,178,178,74,28,89,52,38,96,111,22,22,49,42,100,112,207,248,214,235,249,198,31,38,6,0,0,0,0,0,0,0,
+62,120,158,53,115,140,39,58,26,95,243,248,248,248,243,141,148,43,60,28,77,102,78,33,58,157,183,139,24,59,36,30,18,0,25,138,179,144,93,75,5,0,0,23,55,5,0,0,
+39,194,204,124,5,135,248,249,250,250,214,27,0,0,0,3,36,19,0,0,3,30,34,127,157,22,5,98,98,5,0,0,0,97,246,248,248,250,252,185,58,121,175,249,248,128,36,30,
+87,178,178,74,28,89,52,38,96,111,22,39,209,249,220,112,42,2,57,159,48,18,201,249,204,18,0,0,0,0,0,0,62,120,158,53,115,140,39,58,26,21,0,0,0,0,0,88,
+148,43,60,28,77,102,78,33,58,157,183,139,24,59,36,30,18,0,25,138,179,144,93,75,5,0,0,23,55,5,0,0,39,194,204,124,5,0,14,33,55,82,13,0,0,0,0,3,
+3,36,18,1,36,19,0,22,128,158,81,136,250,250,92,0,0,0,24,56,71,190,155,50,0,5,122,133,77,38,0,76,189,184,74,0,6,52,91,90,109,179,139,18,4,0,39,102,
+108,216,252,249,202,18,0,14,38,6,0,0,0,0,0,0,0,65,120,184,150,19,0,22,63,18,81,243,248,248,248,243,141,148,50,98,102,76,14,53,157,179,119,27,73,38,0,2,
+36,19,93,179,144,93,74,4,0,0,0,0,4,0,0,5,115,125,171,204,126,7,140,248,249,250,250,209,27,0,0,0,3,36,18,1,36,19,0,22,128,158,81,66,65,68,3,0,
+81,243,249,250,250,252,187,50,0,5,122,178,250,249,90,76,189,184,74,0,6,52,91,90,109,179,139,18,21,198,249,221,108,67,159,48,18,198,248,206,53,6,0,0,0,0,0,0,
+0,65,120,184,150,19,0,22,63,18,0,0,0,0,0,0,88,148,50,98,102,76,14,53,157,179,119,27,73,38,0,2,36,19,93,179,144,93,74,4,0,0,0,0,4,0,0,5,
+115,125,171,204,126,7,0,13,33,55,82,13,0,0,0,0,0,2,34,45,15,0,0,0,22,152,180,22,95,250,250,92,0,0,0,74,191,154,40,0,0,0,15,153,143,37,75,178,
+179,100,16,8,33,38,89,91,49,139,179,138,18,0,0,40,95,235,249,248,202,18,0,0,14,38,6,0,0,0,0,0,0,5,149,179,153,50,0,0,22,64,22,81,243,248,248,248,
+243,145,180,115,97,25,36,159,179,118,16,59,43,32,6,0,3,36,28,97,96,74,4,0,0,0,0,0,0,0,5,123,124,1,31,176,204,127,7,149,248,249,250,250,209,18,0,0,
+0,2,34,45,15,0,0,0,22,152,180,22,1,70,70,83,243,248,248,250,252,186,40,0,0,0,15,153,185,249,250,205,179,100,16,8,33,38,89,91,49,139,179,138,18,18,198,249,
+217,165,48,18,198,248,203,18,14,38,6,0,0,0,0,0,0,5,149,179,153,50,0,0,22,64,22,0,0,0,0,0,0,94,180,115,97,25,36,159,179,118,16,59,43,32,6,0,
+3,36,28,97,96,74,4,0,0,0,0,0,0,0,5,123,124,1,31,176,204,127,7,0,13,33,55,82,13,0,0,0,0,2,34,45,15,0,0,3,66,76,126,156,22,96,250,250,
+92,0,60,190,154,78,12,0,0,10,62,40,112,146,183,179,74,2,38,42,39,87,26,25,90,47,138,179,138,18,0,71,234,249,202,202,248,198,18,8,0,14,38,6,0,0,0,0,
+5,124,139,71,115,162,52,0,0,22,64,22,81,243,248,248,248,247,187,180,50,84,165,179,117,16,62,37,0,14,38,6,0,1,34,82,71,4,0,0,0,0,0,0,0,5,123,124,
+6,0,0,32,176,204,128,11,154,248,249,250,250,209,18,0,0,2,34,45,15,0,0,3,66,76,126,156,22,3,129,246,248,248,250,252,186,78,12,0,0,10,62,40,112,186,253,253,
+138,2,38,42,39,87,26,25,90,47,138,179,138,18,18,211,252,209,35,198,248,203,18,8,0,14,38,6,0,0,0,0,5,124,139,71,115,162,52,0,0,22,64,22,0,0,0,0,
+10,79,155,180,50,84,165,179,117,16,62,37,0,14,38,6,0,1,34,82,71,4,0,0,0,0,0,0,0,5,123,124,6,0,0,32,176,204,128,11,0,13,33,55,82,13,0,0,
+3,36,18,1,36,16,1,70,70,2,20,130,158,22,96,250,250,131,191,154,40,24,59,13,8,62,37,0,74,179,183,101,4,8,32,56,92,26,0,0,28,90,47,138,179,133,82,232,
+249,198,18,18,198,248,198,45,24,0,14,38,6,0,0,5,125,142,23,0,66,120,162,55,1,0,22,64,23,81,243,248,250,251,247,141,143,166,197,123,14,62,37,0,0,0,14,38,
+4,6,78,87,18,0,0,0,0,0,0,0,2,118,123,6,0,0,0,0,32,176,204,143,26,158,248,249,250,250,206,18,3,36,18,1,36,16,1,70,70,2,20,130,158,96,243,250,
+250,250,252,187,40,24,59,13,8,62,37,0,74,179,210,251,248,95,32,56,92,26,0,0,28,90,47,138,179,133,69,160,209,248,238,248,203,18,0,29,24,0,14,38,6,0,0,5,
+125,142,23,0,66,120,162,55,1,0,22,64,23,0,0,10,79,102,79,88,143,166,197,123,14,62,37,0,0,0,14,38,4,6,78,87,18,0,0,0,0,0,0,0,2,118,123,6,
+0,0,0,0,32,176,204,143,26,0,13,33,55,82,13,0,31,19,0,122,91,33,75,68,3,0,0,23,124,150,23,94,251,253,191,42,0,0,25,59,60,34,0,74,177,171,140,119,
+43,33,38,84,52,13,0,0,0,28,90,48,132,184,238,249,198,18,0,0,18,198,248,198,48,24,0,14,38,6,5,123,142,24,0,0,0,66,121,145,15,0,0,23,55,1,87,247,
+251,250,248,244,198,179,132,59,60,34,0,0,0,0,0,12,36,79,70,8,33,19,0,0,0,0,0,4,109,111,5,0,0,0,0,0,0,32,176,204,144,26,158,248,249,250,250,202,
+47,19,0,0,2,33,75,68,3,0,0,23,165,250,249,248,251,252,187,42,0,0,25,59,60,34,0,74,177,171,140,169,249,249,115,84,52,13,0,0,0,28,90,48,132,179,179,60,
+35,238,248,239,35,0,0,1,33,24,0,14,38,6,5,123,142,24,0,0,0,66,121,145,15,0,0,23,55,1,10,79,102,79,10,36,171,179,132,59,60,34,0,0,0,0,0,12,
+36,79,70,8,33,19,0,0,0,0,0,4,109,111,5,0,0,0,0,0,0,32,176,204,144,26,0,13,33,55,81,17,27,0,45,248,248,134,86,18,0,0,0,0,4,88,141,80,
+210,252,249,90,0,0,7,65,70,12,74,178,178,71,6,125,142,61,86,26,0,36,19,0,0,0,27,90,108,238,253,227,34,0,0,0,0,18,198,248,198,48,24,0,14,41,126,139,
+20,0,0,0,0,0,66,94,13,0,0,0,2,10,79,151,247,248,249,252,251,178,138,80,70,12,0,0,0,0,0,7,83,88,7,0,3,36,19,0,0,0,5,121,119,2,0,0,
+0,0,0,0,0,0,32,174,204,145,31,158,248,249,250,251,200,18,0,0,2,69,86,18,0,0,0,81,243,250,252,250,251,186,42,0,0,0,7,65,70,12,74,178,178,71,6,125,
+184,250,250,107,0,36,19,0,0,0,27,90,96,179,179,141,202,248,239,248,198,18,0,0,1,33,24,0,14,41,126,139,20,0,0,0,0,0,66,94,13,0,0,0,2,10,79,102,
+79,10,39,161,179,142,138,80,70,12,0,0,0,0,0,7,83,88,7,0,3,36,19,0,0,0,5,121,119,2,0,0,0,0,0,0,0,0,32,174,204,145,26,0,13,32,55,95,
+79,13,0,96,250,250,95,33,19,0,0,0,0,0,121,209,159,120,248,248,90,10,58,33,28,118,182,178,74,0,10,37,142,169,57,2,0,3,36,19,0,0,0,86,240,250,227,184,
+138,18,0,0,0,0,18,198,248,198,48,24,11,129,152,25,0,0,0,0,0,0,0,66,84,10,0,0,9,79,102,78,88,245,252,253,251,243,165,162,48,62,13,0,0,0,9,81,
+64,16,36,6,0,3,36,19,0,5,123,124,5,0,8,51,11,0,0,0,0,0,0,30,174,204,146,31,162,248,250,250,250,197,14,3,70,70,8,33,19,0,81,243,248,248,252,253,
+190,42,0,0,0,10,58,33,28,118,182,178,74,0,10,37,142,201,250,248,90,3,36,19,0,0,0,74,189,87,142,238,252,207,35,198,248,198,18,0,0,1,33,24,11,129,152,25,
+0,0,0,0,0,0,0,66,84,10,0,0,9,79,102,78,10,41,162,179,111,16,124,162,48,62,13,0,0,0,9,81,64,16,36,6,0,3,36,19,0,5,123,124,5,0,8,51,
+11,0,0,0,0,0,0,30,174,204,146,26,0,13,52,62,55,80,19,66,139,248,248,92,36,19,0,0,0,60,183,179,155,22,94,248,248,130,35,0,74,188,197,82,0,10,33,40,
+91,136,127,42,7,0,3,36,19,0,66,234,250,218,64,138,179,138,18,0,0,0,0,18,198,248,198,48,96,139,32,33,3,0,0,0,0,0,0,0,66,84,8,8,79,102,77,14,
+41,195,251,251,248,250,245,141,148,51,63,12,0,9,82,70,0,0,14,38,7,0,3,36,23,123,124,6,0,0,53,102,77,9,0,0,0,0,0,0,30,174,204,145,34,177,249,249,
+250,250,198,73,71,3,0,3,36,94,243,248,248,250,251,203,155,22,0,0,10,62,35,0,74,188,197,82,0,10,33,40,91,136,174,249,248,90,3,36,19,0,52,159,74,102,209,252,
+238,146,18,18,198,248,198,18,0,0,1,32,96,139,32,33,3,0,0,0,0,0,0,0,66,84,8,8,79,102,77,14,41,168,179,110,14,62,35,88,148,51,63,12,0,9,82,70,
+0,0,14,38,7,0,3,36,23,123,124,6,0,0,53,102,77,9,0,0,0,0,0,0,30,174,204,145,29,29,27,30,32,54,102,70,1,94,248,248,92,36,18,0,60,190,154,56,
+87,148,22,100,250,249,90,74,178,178,97,60,20,30,39,88,28,5,122,129,43,6,0,3,36,80,234,249,198,42,90,49,138,179,139,58,14,0,0,0,18,198,248,198,77,40,0,12,
+35,6,0,0,0,0,0,0,0,64,78,78,102,76,27,28,32,156,159,243,250,249,248,243,141,148,52,59,20,79,71,3,0,0,0,14,38,6,0,8,142,134,6,0,0,0,14,80,
+102,75,13,40,14,0,0,0,0,29,173,203,155,46,171,248,249,250,251,211,10,0,0,0,83,245,248,248,250,252,187,56,87,148,22,10,62,37,0,74,178,178,97,60,20,30,39,88,
+28,5,122,176,249,248,90,3,36,67,159,53,18,204,250,209,146,179,139,58,31,198,248,198,18,0,0,1,64,40,0,12,35,6,0,0,0,0,0,0,0,64,78,78,102,76,27,28,
+32,156,114,13,62,37,0,0,88,148,52,59,20,79,71,3,0,0,0,14,38,6,0,8,142,134,6,0,0,0,14,80,102,75,13,40,14,0,0,0,0,29,173,203,155,42,0,14,
+14,82,86,76,12,0,94,248,248,92,32,71,190,155,57,0,0,88,152,79,117,248,250,205,179,74,0,37,68,46,85,28,0,0,5,122,130,42,6,0,68,237,249,198,18,0,26,91,
+48,138,194,161,23,0,0,0,0,18,198,249,202,45,24,0,14,38,6,0,0,0,0,0,0,11,97,102,76,26,32,4,0,19,15,123,245,248,248,248,243,141,148,54,99,72,1,0,
+0,0,0,0,14,38,11,123,126,41,19,0,0,0,0,11,79,102,90,50,4,0,0,0,0,0,29,180,205,146,33,176,248,250,250,250,193,9,0,81,243,248,249,250,252,187,57,0,
+0,88,152,79,37,0,74,178,179,74,0,37,68,46,85,28,0,0,5,122,176,249,248,90,54,173,68,18,198,248,204,102,48,138,194,161,23,18,198,248,198,18,2,34,20,29,24,0,
+14,38,6,0,0,0,0,0,0,11,97,102,76,26,32,4,0,19,15,62,37,0,0,2,3,88,148,54,99,72,1,0,0,0,0,0,14,38,11,123,126,41,19,0,0,0,0,11,
+79,102,90,50,4,0,0,0,0,0,29,180,205,146,28,0,64,73,34,54,82,13,0,94,248,248,123,191,155,55,0,0,0,10,129,163,23,138,253,253,154,8,8,29,58,102,36,0,
+0,0,0,5,122,130,39,68,234,249,206,32,0,0,0,25,84,79,158,180,138,18,0,0,0,2,51,203,248,198,48,23,0,14,38,6,0,0,0,0,10,78,102,93,82,36,1,0,
+0,10,62,37,81,243,248,248,249,243,142,180,96,56,10,0,0,0,0,0,0,19,143,127,6,3,36,15,0,0,0,0,13,95,102,73,6,0,0,0,0,2,34,43,172,204,147,37,
+196,250,249,250,250,184,87,243,248,248,250,252,187,55,0,0,0,10,129,163,23,69,178,179,99,8,8,29,58,102,36,0,0,0,0,5,122,176,249,249,193,55,51,201,248,198,18,25,
+84,79,158,180,138,18,18,198,248,198,51,21,0,1,33,23,0,14,38,6,0,0,0,0,10,78,102,93,82,36,1,0,0,10,62,37,0,0,0,4,36,7,93,180,96,56,10,0,
+0,0,0,0,0,19,143,127,6,3,36,15,0,0,0,0,13,95,102,73,6,0,0,0,0,2,34,43,172,204,147,29,83,0,11,33,55,82,13,0,94,249,252,179,75,15,0,0,
+10,62,37,81,156,173,204,250,248,116,36,38,82,54,51,4,0,0,0,0,5,113,147,234,249,198,20,7,0,0,0,0,61,102,50,138,179,138,18,0,2,35,20,18,198,248,198,45,
+20,0,14,38,6,0,0,10,79,102,75,28,78,82,9,0,10,62,37,0,0,81,243,248,248,226,99,133,150,54,58,4,0,0,0,0,5,123,131,43,6,0,2,7,0,0,0,2,
+46,52,80,102,74,7,0,0,2,35,20,0,29,172,203,168,89,180,248,249,250,250,247,248,248,249,250,174,75,15,0,0,10,62,37,81,156,173,175,74,9,41,36,38,82,54,51,4,
+0,0,0,0,5,113,182,252,249,102,198,248,198,18,0,0,61,102,50,138,179,138,18,18,198,249,202,18,0,0,0,30,20,0,14,38,6,0,0,10,79,102,75,28,78,82,9,0,
+10,62,37,0,0,0,0,0,8,37,81,133,150,54,58,4,0,0,0,0,5,123,131,43,6,0,2,7,0,0,0,2,46,52,80,102,74,7,0,0,2,35,20,0,29,172,203,168,
+149,27,0,13,33,55,82,13,22,187,250,249,94,34,16,9,62,37,0,69,179,179,86,94,248,249,127,88,26,0,16,2,0,0,0,0,0,67,238,252,206,24,0,0,0,0,2,50,
+44,27,88,50,138,179,138,20,36,20,0,0,18,198,248,198,48,24,0,14,38,3,9,79,102,76,27,30,6,66,80,21,58,37,0,0,0,0,81,243,222,100,88,11,88,148,36,2,
+0,0,0,5,123,124,6,15,38,6,0,0,0,0,2,50,50,0,11,83,102,72,5,0,36,20,0,0,0,27,186,209,149,35,185,248,249,250,250,248,249,250,149,33,6,34,16,9,
+62,37,0,69,179,179,86,0,8,36,58,88,26,0,16,2,0,0,0,0,0,53,179,183,249,248,248,198,18,0,2,50,44,27,88,50,138,179,138,20,51,202,248,198,18,0,0,0,
+32,24,0,14,38,3,9,79,102,76,27,30,6,66,80,21,58,37,0,0,0,0,0,0,8,81,88,11,88,148,36,2,0,0,0,5,123,124,6,15,38,6,0,0,0,0,2,50,
+50,0,11,83,102,72,5,0,36,20,0,0,0,27,186,209,203,148,29,0,13,33,55,97,153,98,117,248,248,91,36,65,36,0,74,178,173,123,135,31,115,249,250,125,7,0,0,0,
+0,0,0,0,66,232,249,223,139,42,6,0,0,2,50,50,2,0,25,90,51,138,180,154,36,0,0,0,0,18,198,248,198,49,24,0,11,40,79,102,76,27,32,4,0,0,66,102,
+41,0,0,0,0,0,0,83,101,69,13,36,10,88,148,22,0,0,5,123,124,6,0,0,15,38,6,0,0,2,50,50,2,0,0,13,84,102,72,34,17,0,0,0,3,68,83,171,
+203,148,37,209,248,249,250,251,252,150,36,3,0,1,36,65,36,0,74,178,173,123,135,31,33,38,88,54,7,0,0,0,0,0,0,0,52,155,55,123,236,249,248,102,0,2,50,50,
+2,0,25,90,51,138,180,154,36,18,198,248,198,18,0,0,0,33,24,0,11,40,79,102,76,27,32,4,0,0,66,102,41,0,0,0,0,0,0,9,82,69,13,36,10,88,148,22,
+0,0,5,123,124,6,0,0,15,38,6,0,0,2,50,50,2,0,0,13,84,102,72,34,17,0,0,0,3,68,83,171,171,204,149,29,0,13,52,171,145,41,0,94,248,248,129,37,
+0,74,178,178,72,0,93,162,58,149,249,248,115,11,0,0,0,0,0,66,234,249,198,23,122,130,42,4,1,50,50,2,0,0,0,24,89,52,151,185,138,18,0,0,0,6,30,198,
+248,198,48,20,8,82,102,77,26,32,3,0,0,9,55,73,76,9,0,0,0,0,8,82,71,3,0,10,39,11,88,148,20,1,123,124,6,0,0,0,0,15,38,4,1,50,50,2,
+0,0,0,0,13,83,102,77,3,0,0,3,69,76,13,27,171,204,183,245,248,248,250,253,252,185,5,0,0,9,60,37,0,74,178,178,72,0,93,162,58,88,27,6,39,11,0,0,
+0,0,0,52,159,53,18,199,252,236,249,248,91,50,50,2,0,0,0,24,89,52,151,185,138,18,18,198,248,199,30,0,0,1,33,20,8,82,102,77,26,32,3,0,0,9,55,73,
+76,9,0,0,0,0,8,82,71,3,0,10,39,11,88,148,20,1,123,124,6,0,0,0,0,15,38,4,1,50,50,2,0,0,0,0,13,83,102,77,3,0,0,3,69,76,13,27,
+27,170,204,149,26,20,152,116,70,80,12,0,101,250,249,90,74,178,178,74,0,10,30,114,185,48,94,248,248,115,11,0,0,0,66,234,249,198,18,0,5,122,129,37,48,49,2,0,
+0,0,0,0,25,101,62,138,179,138,18,0,0,14,62,36,198,248,198,52,84,102,79,48,32,2,0,0,10,62,36,0,56,80,10,0,0,9,81,71,2,0,0,0,10,39,11,86,
+135,121,118,6,0,0,0,0,0,0,14,33,48,49,2,0,0,0,0,0,0,42,88,102,70,3,1,70,68,15,59,20,27,197,252,252,248,249,252,251,250,250,171,5,11,62,37,0,
+74,178,178,74,0,10,30,114,185,48,0,0,10,39,11,0,0,0,52,159,53,18,198,248,199,132,175,249,249,122,2,0,0,0,0,0,25,101,62,138,179,138,18,18,198,248,212,36,
+0,0,0,36,84,102,79,48,32,2,0,0,10,62,36,0,56,80,10,0,0,9,81,71,2,0,0,0,10,39,11,86,135,121,118,6,0,0,0,0,0,0,14,33,48,49,2,0,
+0,0,0,0,0,42,88,102,70,3,1,70,68,15,59,20,19,26,170,204,152,144,92,40,32,54,81,20,56,118,248,250,205,178,74,0,10,33,39,88,107,148,22,94,248,248,115,11,
+0,66,234,249,198,18,0,0,0,5,122,150,69,6,0,0,0,0,0,3,30,39,86,52,138,179,138,18,0,0,22,60,33,198,248,215,113,81,25,38,36,5,0,7,60,37,0,0,
+0,57,81,8,7,82,71,2,0,0,0,0,0,9,39,11,152,179,27,0,0,0,0,0,0,0,0,54,65,6,0,0,0,0,0,3,36,15,14,86,102,68,96,150,9,0,23,64,
+94,244,252,254,252,249,228,249,249,250,250,169,60,37,0,74,178,178,74,0,10,33,39,88,107,148,22,0,0,9,39,11,0,52,159,53,18,198,248,198,18,5,122,189,250,248,90,0,
+0,0,0,3,30,39,86,52,138,179,138,18,18,198,249,212,33,0,10,78,102,81,25,38,36,5,0,7,60,37,0,0,0,57,81,8,7,82,71,2,0,0,0,0,0,9,39,11,
+152,179,27,0,0,0,0,0,0,0,0,54,65,6,0,0,0,0,0,3,36,15,14,86,102,68,96,150,9,0,23,64,64,18,21,168,203,173,50,0,12,33,54,87,33,0,140,253,
+253,138,0,10,33,39,88,28,0,88,148,22,94,248,248,115,74,234,249,198,18,0,0,0,0,2,54,147,130,40,5,0,0,0,3,36,19,0,24,90,52,138,179,138,18,0,0,19,
+56,43,215,251,215,60,45,0,13,38,6,4,22,0,0,0,0,0,55,76,78,68,2,0,0,0,0,0,0,0,14,141,119,85,145,22,0,0,0,0,0,2,50,48,16,36,5,0,
+0,0,3,36,19,12,4,14,83,102,102,128,122,5,0,97,246,248,249,252,252,200,64,194,248,249,250,250,171,5,74,178,178,74,0,10,33,39,88,28,0,88,148,22,0,0,9,39,
+61,159,53,18,198,248,198,18,0,2,54,147,176,249,248,90,0,0,3,36,19,0,24,90,52,138,179,138,18,18,198,248,210,43,77,102,75,45,45,0,13,38,6,4,22,0,0,0,
+0,0,55,76,78,68,2,0,0,0,0,0,0,0,14,141,119,85,145,22,0,0,0,0,0,2,50,48,16,36,5,0,0,0,3,36,19,12,4,14,83,102,102,128,122,5,0,23,
+24,64,34,140,184,207,150,30,0,13,33,54,80,83,178,206,250,248,96,33,39,88,28,0,0,0,88,148,22,94,248,249,243,249,198,18,0,0,0,0,2,50,50,7,122,130,43,5,
+0,3,36,19,0,0,0,23,89,52,138,179,138,18,0,0,30,97,113,214,249,204,47,23,0,14,38,6,0,0,0,0,0,0,8,97,102,11,0,0,0,0,0,0,0,5,123,129,
+42,11,88,148,22,0,0,0,2,50,50,2,0,16,38,5,0,3,36,19,0,80,124,5,70,100,102,69,124,122,85,243,249,250,249,249,206,207,150,45,203,248,249,250,250,190,178,178,
+74,0,10,33,39,88,28,0,0,0,88,148,22,0,0,59,174,62,18,198,248,198,18,0,2,50,50,7,122,176,249,248,90,3,36,19,0,0,0,23,89,52,138,179,138,18,18,198,
+249,220,113,74,27,29,31,23,0,14,38,6,0,0,0,0,0,0,8,97,102,11,0,0,0,0,0,0,0,5,123,129,42,11,88,148,22,0,0,0,2,50,50,2,0,16,38,5,
+0,3,36,19,0,80,124,5,70,100,102,69,124,122,5,0,0,45,173,102,49,170,204,151,31,0,13,33,113,203,182,74,94,248,249,115,88,28,0,0,0,0,0,88,148,19,133,252,
+249,222,28,0,0,0,0,2,50,50,2,0,5,123,131,43,8,34,19,0,0,0,0,0,23,90,53,138,179,138,18,8,73,102,94,53,204,248,198,49,24,0,14,38,6,0,0,0,
+0,9,81,66,54,78,9,0,0,0,0,0,5,123,124,6,9,39,11,88,148,22,0,2,50,50,2,0,0,0,15,36,8,34,19,0,0,11,124,158,70,23,88,102,70,166,249,248,
+248,249,251,151,49,170,204,151,47,207,248,249,251,254,227,74,0,10,33,39,88,28,0,0,0,0,0,88,148,19,48,159,60,54,200,248,198,18,0,2,50,50,2,0,5,123,176,249,
+248,112,19,0,0,0,0,0,23,90,53,138,179,138,18,26,214,251,219,53,28,2,0,33,24,0,14,38,6,0,0,0,0,9,81,66,54,78,9,0,0,0,0,0,5,123,124,6,
+9,39,11,88,148,22,0,2,50,50,2,0,0,0,15,36,8,34,19,0,0,11,124,158,70,23,88,102,70,124,122,6,34,145,111,75,17,25,169,204,153,30,0,83,188,194,132,12,
+7,115,249,250,108,0,0,0,0,0,0,0,81,159,231,249,248,248,115,12,0,0,2,50,50,2,0,0,0,7,81,26,58,20,0,0,0,0,0,0,0,22,89,53,138,179,142,87,
+96,74,42,71,35,198,248,198,48,24,0,14,38,6,0,0,9,82,71,2,0,58,80,8,0,0,0,5,123,124,6,0,0,9,39,12,88,148,24,50,50,2,0,0,0,0,0,15,
+58,20,0,0,0,3,74,159,124,5,18,89,151,246,252,252,249,250,157,75,17,25,169,204,153,46,207,250,253,253,252,154,7,33,39,88,28,0,0,0,0,0,0,0,81,152,149,48,
+18,200,249,200,18,0,2,50,50,2,0,0,0,7,81,111,250,248,90,0,0,0,0,0,0,22,89,53,138,179,142,87,107,215,249,214,35,0,0,1,33,24,0,14,38,6,0,0,
+9,82,71,2,0,58,80,8,0,0,0,5,123,124,6,0,0,9,39,12,88,148,24,50,50,2,0,0,0,0,0,15,58,20,0,0,0,3,74,159,124,5,18,89,102,69,124,116,
+179,97,31,27,62,16,25,169,204,147,93,178,182,98,54,83,40,38,149,249,248,90,1,0,0,0,0,0,61,238,253,204,105,248,248,115,10,1,50,50,2,0,0,0,0,0,3,32,
+30,34,5,0,0,0,0,0,0,0,22,90,51,142,203,182,84,27,27,28,62,33,198,248,198,48,24,0,14,38,4,8,82,71,2,0,0,0,59,80,8,0,5,123,124,6,0,0,
+0,0,9,39,10,88,169,68,2,0,0,0,0,0,3,32,30,34,5,0,3,70,71,8,122,122,5,93,247,251,250,252,251,147,31,27,62,16,25,169,204,147,107,241,253,251,250,250,
+162,38,88,28,0,0,1,0,0,0,0,0,46,178,179,41,198,248,200,54,10,1,50,50,2,0,0,0,0,0,3,32,113,249,248,90,0,0,0,0,0,0,22,90,51,142,203,182,
+84,43,204,249,212,33,0,0,1,33,24,0,14,38,4,8,82,71,2,0,0,0,59,80,8,0,5,123,124,6,0,0,0,0,9,39,10,88,169,68,2,0,0,0,0,0,3,32,
+30,34,5,0,3,70,71,8,122,122,5,18,90,102,65,122,154,131,7,0,27,64,15,23,162,204,192,176,70,11,37,68,86,83,26,94,248,249,93,0,0,0,0,66,234,251,224,157,
+22,94,248,248,112,52,48,2,0,0,0,0,0,3,36,19,0,16,38,5,0,0,0,0,0,0,0,20,82,98,185,201,150,48,3,0,27,64,32,198,248,198,48,24,0,12,37,80,
+70,2,0,0,6,32,2,58,80,13,123,124,6,0,0,0,0,0,0,8,34,52,120,149,22,0,0,0,0,3,36,19,0,16,35,10,68,71,3,0,5,122,165,243,248,250,251,251,
+186,131,7,0,27,64,15,23,162,204,192,185,220,248,249,250,250,178,26,0,6,33,4,0,0,0,0,52,162,117,126,231,249,198,18,8,34,52,48,2,0,0,0,0,0,3,36,19,
+0,104,249,248,90,0,0,0,0,0,0,20,82,98,185,201,150,48,21,198,249,212,32,0,0,1,33,24,0,12,37,80,70,2,0,0,6,32,2,58,80,13,123,124,6,0,0,0,
+0,0,0,8,34,52,120,149,22,0,0,0,0,3,36,19,0,16,35,10,68,71,3,0,5,122,122,5,20,91,114,164,83,123,122,5,0,28,64,17,88,194,204,166,25,7,38,56,
+96,85,8,3,118,248,248,90,0,0,66,236,251,209,18,88,148,22,94,248,249,132,12,0,0,0,0,0,3,36,19,0,0,0,16,38,5,0,0,0,0,0,0,7,81,102,97,148,
+188,139,18,0,0,28,64,34,198,248,198,48,20,6,83,88,7,0,0,6,38,15,0,0,63,164,128,6,0,0,0,0,0,0,0,1,50,65,12,88,148,22,0,0,3,36,19,0,
+0,0,15,87,70,2,0,0,0,85,249,252,248,249,252,185,83,123,122,5,0,28,64,17,88,194,204,166,49,213,249,250,251,250,139,3,38,15,0,0,0,0,52,164,120,65,198,250,
+231,39,0,1,50,65,12,0,0,0,0,0,3,36,19,0,0,0,104,249,248,90,0,0,0,0,0,7,81,102,97,148,188,139,18,18,198,249,212,34,0,0,1,33,20,6,83,88,
+7,0,0,6,38,15,0,0,63,164,128,6,0,0,0,0,0,0,0,1,50,65,12,88,148,22,0,0,3,36,19,0,0,0,15,87,70,2,0,0,0,5,122,122,1,39,186,154,
+102,65,125,122,11,0,30,97,175,172,175,203,155,51,38,88,51,52,81,42,11,94,248,248,90,66,245,251,213,18,0,0,88,148,24,126,249,248,98,12,0,0,0,3,36,19,0,0,
+0,0,0,16,38,5,0,0,0,0,10,79,102,79,85,71,138,179,138,18,0,0,30,32,18,198,248,198,49,86,66,16,36,5,5,38,14,0,0,5,123,154,83,8,0,0,0,0,
+0,0,2,50,48,11,37,12,88,148,22,3,36,19,0,0,0,3,67,75,35,4,0,0,81,243,248,252,252,249,155,98,102,65,125,122,11,0,30,97,175,172,175,203,155,73,223,250,
+250,250,250,155,11,0,0,0,0,52,164,120,79,229,248,198,100,148,24,50,48,11,37,12,0,0,0,3,36,19,0,0,0,0,0,104,249,248,148,0,0,0,10,79,102,79,85,71,
+138,179,138,18,18,198,249,205,18,0,0,0,33,86,66,16,36,5,5,38,14,0,0,5,123,154,83,8,0,0,0,0,0,0,2,50,48,11,37,12,88,148,22,3,36,19,0,0,
+0,3,67,75,35,4,0,0,0,0,5,117,121,135,110,98
+};
+
+
+#endif
diff --git a/tdescreensaver/kdesavers/Flux.cpp b/tdescreensaver/kdesavers/Flux.cpp
new file mode 100644
index 00000000..0ee9c0d3
--- /dev/null
+++ b/tdescreensaver/kdesavers/Flux.cpp
@@ -0,0 +1,967 @@
+//============================================================================
+//
+// Terence Welsh Screensaver - Flux
+// http://www.reallyslick.com/
+//
+// Ported to KDE by Karl Robillard
+//
+/*
+ * Copyright (C) 2002 Terence M. Welsh
+ *
+ * Flux is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Flux is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+//============================================================================
+
+
+/*
+ TODO
+
+ [ ] Regular and others are messed up after Sparkler.
+ Insane seems to reset them.
+*/
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <time.h>
+#include <tqtimer.h>
+#include "Flux.h"
+#include "Flux.moc"
+
+
+#define NUMCONSTS 8
+#define PIx2 6.28318530718f
+#define DEG2RAD 0.0174532925f
+
+
+void hsl2rgb(float h, float s, float l, float &r, float &g, float &b)
+{
+ // hue influence
+ if(h < 0.166667){ // full red, some green
+ r = 1.0;
+ g = h * 6.0f;
+ b = 0.0;
+ }
+ else {
+ if(h < 0.5){ // full green
+ g = 1.0;
+ if(h < 0.333333){ // some red
+ r = 1.0f - ((h - 0.166667f) * 6.0f);
+ b = 0.0;
+ }
+ else{ // some blue
+ b = (h - 0.333333f) * 6.0f;
+ r = 0.0;
+ }
+ }
+ else{
+ if(h < 0.833333){ // full blue
+ b = 1.0;
+ if(h < 0.666667){ // some green
+ g = 1.0f - ((h - 0.5f) * 6.0f);
+ r = 0.0;
+ }
+ else{ // some red
+ r = (h - 0.666667f) * 6.0f;
+ g = 0.0;
+ }
+ }
+ else{ // full red, some blue
+ r = 1.0;
+ b = 1.0f - ((h - 0.833333f) * 6.0f);
+ g = 0.0;
+ }
+ }
+ }
+
+ // saturation influence
+ r = 1.0f - (s * (1.0f - r));
+ g = 1.0f - (s * (1.0f - g));
+ b = 1.0f - (s * (1.0f - b));
+
+ // luminosity influence
+ r *= l;
+ g *= l;
+ b *= l;
+}
+
+
+// Useful random number macros
+// Don't forget to initialize with srand()
+inline int myRandi(int x){
+ return((rand() * x) / RAND_MAX);
+}
+inline float myRandf(float x){
+ return(float(rand() * x) / float(RAND_MAX));
+}
+
+
+//----------------------------------------------------------------------------
+
+
+// Flux context to allow many instances.
+static FluxWidget* _fc = 0;
+
+static int whichparticle;
+
+
+// This class is poorly named. It's actually a whole trail of particles.
+class particle
+{
+public:
+
+ particle();
+ ~particle();
+ float update(float *c);
+
+private:
+
+ float** vertices;
+ short trails;
+ short counter;
+ float offset[3];
+};
+
+
+particle::particle()
+{
+ // Offsets are somewhat like default positions for the head of each
+ // particle trail. Offsets spread out the particle trails and keep
+ // them from all overlapping.
+ offset[0] = cos(PIx2 * float(whichparticle) / float(_fc->dParticles));
+ offset[1] = float(whichparticle) / float(_fc->dParticles) - 0.5f;
+ offset[2] = sin(PIx2 * float(whichparticle) / float(_fc->dParticles));
+ whichparticle++;
+
+ // Initialize memory and set initial positions out of view of the camera
+ trails = _fc->dTrail;
+ vertices = new float*[ trails ];
+
+ int i;
+ for(i=0; i<trails; i++)
+ {
+ vertices[i] = new float[5]; // 0,1,2 = position, 3 = hue, 4 = saturation
+ vertices[i][0] = 0.0f;
+ vertices[i][1] = 3.0f;
+ vertices[i][2] = 0.0f;
+ vertices[i][3] = 0.0f;
+ vertices[i][4] = 0.0f;
+ }
+
+ counter = 0;
+}
+
+
+particle::~particle()
+{
+ for(int i=0; i<trails; i++)
+ delete[] vertices[i];
+ delete[] vertices;
+}
+
+
+float particle::update(float *c)
+{
+ int i, p, growth;
+ float rgb[3];
+ float cx, cy, cz; // Containment variables
+ float luminosity;
+ static float expander = 1.0f + 0.0005f * float(_fc->dExpansion);
+ static float blower = 0.001f * float(_fc->dWind);
+ //static float otherxyz[3];
+ float depth = 0;
+
+ // Record old position
+ int oldc = counter;
+ float oldpos[3];
+ oldpos[0] = vertices[oldc][0];
+ oldpos[1] = vertices[oldc][1];
+ oldpos[2] = vertices[oldc][2];
+
+ counter ++;
+ if(counter >= _fc->dTrail)
+ counter = 0;
+
+ // Here's the iterative math for calculating new vertex positions
+ // first calculate limiting terms which keep vertices from constantly
+ // flying off to infinity
+ cx = vertices[oldc][0] * (1.0f - 1.0f / (vertices[oldc][0] * vertices[oldc][0] + 1.0f));
+ cy = vertices[oldc][1] * (1.0f - 1.0f / (vertices[oldc][1] * vertices[oldc][1] + 1.0f));
+ cz = vertices[oldc][2] * (1.0f - 1.0f / (vertices[oldc][2] * vertices[oldc][2] + 1.0f));
+ // then calculate new positions
+ vertices[counter][0] = vertices[oldc][0] + c[6] * offset[0] - cx
+ + c[2] * vertices[oldc][1]
+ + c[5] * vertices[oldc][2];
+ vertices[counter][1] = vertices[oldc][1] + c[6] * offset[1] - cy
+ + c[1] * vertices[oldc][2]
+ + c[4] * vertices[oldc][0];
+ vertices[counter][2] = vertices[oldc][2] + c[6] * offset[2] - cz
+ + c[0] * vertices[oldc][0]
+ + c[3] * vertices[oldc][1];
+
+ // Pick a hue
+ vertices[counter][3] = cx * cx + cy * cy + cz * cz;
+ if(vertices[counter][3] > 1.0f)
+ vertices[counter][3] = 1.0f;
+ vertices[counter][3] += c[7];
+ // Limit the hue (0 - 1)
+ if(vertices[counter][3] > 1.0f)
+ vertices[counter][3] -= 1.0f;
+ if(vertices[counter][3] < 0.0f)
+ vertices[counter][3] += 1.0f;
+ // Pick a saturation
+ vertices[counter][4] = c[0] + vertices[counter][3];
+ // Limit the saturation (0 - 1)
+ if(vertices[counter][4] < 0.0f)
+ vertices[counter][4] = -vertices[counter][4];
+ vertices[counter][4] -= float(int(vertices[counter][4]));
+ vertices[counter][4] = 1.0f - (vertices[counter][4] * vertices[counter][4]);
+
+ // Bring particles back if they escape
+ if(!counter){
+ if((vertices[0][0] > 1000000000.0f) || (vertices[0][0] < -1000000000.0f)
+ || (vertices[0][1] > 1000000000.0f) || (vertices[0][1] < -1000000000.0f)
+ || (vertices[2][2] > 1000000000.0f) || (vertices[0][2] < -1000000000.0f)){
+ vertices[0][0] = myRandf(2.0f) - 1.0f;
+ vertices[0][1] = myRandf(2.0f) - 1.0f;
+ vertices[0][2] = myRandf(2.0f) - 1.0f;
+ }
+ }
+
+ // Draw every vertex in particle trail
+ p = counter;
+ growth = 0;
+ luminosity = _fc->lumdiff;
+ for(i=0; i<_fc->dTrail; i++){
+ p ++;
+ if(p >= _fc->dTrail)
+ p = 0;
+ growth++;
+
+ // assign color to particle
+ hsl2rgb(vertices[p][3], vertices[p][4], luminosity, rgb[0], rgb[1], rgb[2]);
+ glColor3fv(rgb);
+
+ glPushMatrix();
+ if(_fc->dGeometry == 1) // Spheres
+ glTranslatef(vertices[p][0], vertices[p][1], vertices[p][2]);
+ else{ // Points or lights
+ depth = _fc->cosCameraAngle * vertices[p][2] - _fc->sinCameraAngle * vertices[p][0];
+ glTranslatef(_fc->cosCameraAngle * vertices[p][0] + _fc->sinCameraAngle
+ * vertices[p][2], vertices[p][1], depth);
+ }
+ if(_fc->dGeometry){ // Spheres or lights
+ switch(_fc->dTrail - growth){
+ case 0:
+ glScalef(0.259f, 0.259f, 0.259f);
+ break;
+ case 1:
+ glScalef(0.5f, 0.5f, 0.5f);
+ break;
+ case 2:
+ glScalef(0.707f, 0.707f, 0.707f);
+ break;
+ case 3:
+ glScalef(0.866f, 0.866f, 0.866f);
+ break;
+ case 4:
+ glScalef(0.966f, 0.966f, 0.966f);
+ }
+ }
+ switch(_fc->dGeometry){
+ case 0: // Points
+ switch(_fc->dTrail - growth){
+ case 0:
+ glPointSize(float(_fc->dSize * (depth + 200.0f) * 0.001036f));
+ break;
+ case 1:
+ glPointSize(float(_fc->dSize * (depth + 200.0f) * 0.002f));
+ break;
+ case 2:
+ glPointSize(float(_fc->dSize * (depth + 200.0f) * 0.002828f));
+ break;
+ case 3:
+ glPointSize(float(_fc->dSize * (depth + 200.0f) * 0.003464f));
+ break;
+ case 4:
+ glPointSize(float(_fc->dSize * (depth + 200.0f) * 0.003864f));
+ break;
+ default:
+ glPointSize(float(_fc->dSize * (depth + 200.0f) * 0.004f));
+ }
+ glBegin(GL_POINTS);
+ glVertex3f(0.0f,0.0f,0.0f);
+ glEnd();
+ break;
+ case 1: // Spheres
+ case 2: // Lights
+ glCallList(1);
+ }
+ glPopMatrix();
+ vertices[p][0] *= expander;
+ vertices[p][1] *= expander;
+ vertices[p][2] *= expander;
+ vertices[p][2] += blower;
+ luminosity += _fc->lumdiff;
+ }
+
+ // Find distance between new position and old position and return it
+ oldpos[0] -= vertices[counter][0];
+ oldpos[1] -= vertices[counter][1];
+ oldpos[2] -= vertices[counter][2];
+ return(float(sqrt(oldpos[0] * oldpos[0] + oldpos[1] * oldpos[1] + oldpos[2] * oldpos[2])));
+}
+
+
+// This class is a set of particle trails and constants that enter
+// into their equations of motion.
+class flux
+{
+public:
+
+ flux();
+ ~flux();
+ void update();
+
+ particle *particles;
+ int randomize;
+ float c[NUMCONSTS]; // constants
+ float cv[NUMCONSTS]; // constants' change velocities
+ int currentSmartConstant;
+ float oldDistance;
+};
+
+
+flux::flux()
+{
+ whichparticle = 0;
+
+ particles = new particle[_fc->dParticles];
+ randomize = 1;
+
+ float instability = _fc->dInstability;
+ int i;
+ for(i=0; i<NUMCONSTS; i++)
+ {
+ c[i] = myRandf(2.0f) - 1.0f;
+ cv[i] = myRandf(0.000005f * instability * instability)
+ + 0.000001f * instability * instability;
+ }
+
+ currentSmartConstant = 0;
+ oldDistance = 0.0f;
+}
+
+
+flux::~flux()
+{
+ delete[] particles;
+}
+
+
+void flux::update()
+{
+ int i;
+
+ // randomize constants
+ if(_fc->dRandomize){
+ randomize --;
+ if(randomize <= 0){
+ for(i=0; i<NUMCONSTS; i++)
+ c[i] = myRandf(2.0f) - 1.0f;
+ int temp = 101 - _fc->dRandomize;
+ temp = temp * temp;
+ randomize = temp + myRandi(temp);
+ }
+ }
+
+ // update constants
+ for(i=0; i<NUMCONSTS; i++){
+ c[i] += cv[i];
+ if(c[i] >= 1.0f){
+ c[i] = 1.0f;
+ cv[i] = -cv[i];
+ }
+ if(c[i] <= -1.0f){
+ c[i] = -1.0f;
+ cv[i] = -cv[i];
+ }
+ }
+
+ // update all particles in this flux field
+ float dist;
+ for(i=0; i<_fc->dParticles; i++)
+ dist = particles[i].update(c);
+
+ // use dist from last particle to activate smart constants
+ _fc->dSmart = 0;
+ if(_fc->dSmart){
+ const float upper = 0.4f;
+ const float lower = 0.2f;
+ int beSmart = 0;
+ if(dist > upper && dist > oldDistance)
+ beSmart = 1;
+ if(dist < lower && dist < oldDistance)
+ beSmart = 1;
+ if(beSmart){
+ cv[currentSmartConstant] = -cv[currentSmartConstant];
+ currentSmartConstant ++;
+ if(currentSmartConstant >= _fc->dSmart)
+ currentSmartConstant = 0;
+ }
+ oldDistance = dist;
+ }
+}
+
+
+//----------------------------------------------------------------------------
+
+
+FluxWidget::FluxWidget( TQWidget* parent, const char* name )
+ : TQGLWidget(parent, name), _fluxes(0)
+{
+ setDefaults( Regular );
+
+ _frameTime = 1000 / 60;
+ _timer = new TQTimer( this );
+ connect( _timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(nextFrame()) );
+}
+
+
+FluxWidget::~FluxWidget()
+{
+ // Free memory
+ delete[] _fluxes;
+}
+
+
+void FluxWidget::paintGL()
+{
+ // clear the screen
+ glLoadIdentity();
+
+ if(dBlur) // partially
+ {
+ int viewport[4];
+ glGetIntegerv(GL_VIEWPORT, viewport);
+ float viewRatio = float(viewport[2]) / float(viewport[3]);
+
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+ glDisable(GL_DEPTH_TEST);
+ glColor4f(0.0f, 0.0f, 0.0f, 0.5f - (float(sqrt(sqrt(double(dBlur)))) * 0.15495f));
+ glBegin(GL_TRIANGLE_STRIP);
+ glVertex3f(-3.0f * viewRatio, -3.0f, 0.0f);
+ glVertex3f(3.0f * viewRatio, -3.0f, 0.0f);
+ glVertex3f(-3.0f * viewRatio, 3.0f, 0.0f);
+ glVertex3f(3.0f * viewRatio, 3.0f, 0.0f);
+ glEnd();
+ }
+ else // completely
+ {
+ glClear(GL_COLOR_BUFFER_BIT);
+ }
+
+ cameraAngle += 0.01f * float(dRotation);
+ if(cameraAngle >= 360.0f)
+ cameraAngle -= 360.0f;
+ if(dGeometry == 1) // Only rotate for spheres
+ glRotatef(cameraAngle, 0.0f, 1.0f, 0.0f);
+ else
+ {
+ cosCameraAngle = cos(cameraAngle * DEG2RAD);
+ sinCameraAngle = sin(cameraAngle * DEG2RAD);
+ }
+
+ // set up blend modes for rendering particles
+ switch(dGeometry)
+ {
+ case 0: // Blending for points
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE);
+ glEnable(GL_BLEND);
+ glEnable(GL_POINT_SMOOTH);
+ glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
+ break;
+
+ case 1: // No blending for spheres, but we need z-buffering
+ glDisable(GL_BLEND);
+ glEnable(GL_DEPTH_TEST);
+ glClear(GL_DEPTH_BUFFER_BIT);
+ break;
+
+ case 2: // Blending for lights
+ glBlendFunc(GL_ONE, GL_ONE);
+ glEnable(GL_BLEND);
+ }
+
+ // Update particles
+ if( _fluxes )
+ {
+ _fc = this;
+ int i;
+ for(i=0; i<dFluxes; i++)
+ _fluxes[i].update();
+ }
+
+ glFlush();
+}
+
+
+void FluxWidget::resizeGL( int w, int h )
+{
+ glViewport(0, 0, w, h );
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(100.0, (float) w / (float) h, 0.01, 200);
+ glTranslatef(0.0, 0.0, -2.5);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+}
+
+
+// Window initialization
+void FluxWidget::initializeGL()
+{
+ //resizeGL( width(), height() );
+
+ updateParameters();
+
+ _timer->start( _frameTime, true );
+}
+
+
+#ifdef UNIT_TEST
+void FluxWidget::keyPressEvent( TQKeyEvent* e )
+{
+ if( e->key() == TQt::Key_0 ) { setDefaults( 0 ); updateParameters(); }
+ if( e->key() == TQt::Key_1 ) { setDefaults( 1 ); updateParameters(); }
+ if( e->key() == TQt::Key_2 ) { setDefaults( 2 ); updateParameters(); }
+ if( e->key() == TQt::Key_3 ) { setDefaults( 3 ); updateParameters(); }
+ if( e->key() == TQt::Key_4 ) { setDefaults( 4 ); updateParameters(); }
+ if( e->key() == TQt::Key_5 ) { setDefaults( 5 ); updateParameters(); }
+}
+#endif
+
+
+void FluxWidget::nextFrame()
+{
+ updateGL();
+ _timer->start( _frameTime, true );
+}
+
+
+/**
+ May be called at any time - makes no OpenGL calls.
+*/
+void FluxWidget::setDefaults( int which )
+{
+ switch(which)
+ {
+ case Hypnotic:
+ dFluxes = 2;
+ dParticles = 10;
+ dTrail = 40;
+ dGeometry = 2;
+ dSize = 15;
+ dRandomize = 80;
+ dExpansion = 20;
+ dRotation = 0;
+ dWind = 40;
+ dInstability = 10;
+ dBlur = 30;
+ break;
+
+ case Insane:
+ dFluxes = 4;
+ dParticles = 30;
+ dTrail = 8;
+ dGeometry = 2;
+ dSize = 25;
+ dRandomize = 0;
+ dExpansion = 80;
+ dRotation = 60;
+ dWind = 40;
+ dInstability = 100;
+ dBlur = 10;
+ break;
+
+ case Sparklers:
+ dFluxes = 3;
+ dParticles = 20;
+ dTrail = 6;
+ dGeometry = 1;
+ dSize = 20;
+ dComplexity = 3;
+ dRandomize = 85;
+ dExpansion = 60;
+ dRotation = 30;
+ dWind = 20;
+ dInstability = 30;
+ dBlur = 0;
+ break;
+
+ case Paradigm:
+ dFluxes = 1;
+ dParticles = 40;
+ dTrail = 40;
+ dGeometry = 2;
+ dSize = 5;
+ dRandomize = 90;
+ dExpansion = 30;
+ dRotation = 20;
+ dWind = 10;
+ dInstability = 5;
+ dBlur = 10;
+ break;
+
+ case Galactic:
+ dFluxes = 1;
+ dParticles = 2;
+ dTrail = 1500;
+ dGeometry = 2;
+ dSize = 10;
+ dRandomize = 0;
+ dExpansion = 5;
+ dRotation = 25;
+ dWind = 0;
+ dInstability = 5;
+ dBlur = 0;
+ break;
+
+ case Regular:
+ default:
+ dFluxes = 1;
+ dParticles = 20;
+ dTrail = 40;
+ dGeometry = 2;
+ dSize = 15;
+ dRandomize = 0;
+ dExpansion = 40;
+ dRotation = 30;
+ dWind = 20;
+ dInstability = 20;
+ dBlur = 0;
+ break;
+ }
+}
+
+
+/**
+ Called after dGeometry, dTrail, or dFluxes is changed
+ (such as with setDefaults).
+*/
+void FluxWidget::updateParameters()
+{
+ int i, j;
+ float x, y, temp;
+
+ srand((unsigned)time(NULL));
+ rand(); rand(); rand(); rand(); rand();
+
+ cameraAngle = 0.0f;
+
+ glFrontFace(GL_CCW);
+ glEnable(GL_CULL_FACE);
+ glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ if(dGeometry == 0)
+ {
+ glDisable(GL_LIGHTING);
+ glDisable(GL_COLOR_MATERIAL);
+ glDisable(GL_TEXTURE_2D);
+
+ glEnable(GL_POINT_SMOOTH);
+ //glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
+ }
+ else if(dGeometry == 1) // Spheres and their lighting
+ {
+ glNewList(1, GL_COMPILE);
+ GLUquadricObj* qobj = gluNewQuadric();
+ gluSphere(qobj, 0.005f * dSize, dComplexity + 2, dComplexity + 1);
+ gluDeleteQuadric(qobj);
+ glEndList();
+
+ glDisable(GL_TEXTURE_2D);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ float ambient[4] = {0.0f, 0.0f, 0.0f, 0.0f};
+ float diffuse[4] = {1.0f, 1.0f, 1.0f, 0.0f};
+ float specular[4] = {1.0f, 1.0f, 1.0f, 0.0f};
+ float position[4] = {500.0f, 500.0f, 500.0f, 0.0f};
+
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
+ glLightfv(GL_LIGHT0, GL_SPECULAR, specular);
+ glLightfv(GL_LIGHT0, GL_POSITION, position);
+ glEnable(GL_COLOR_MATERIAL);
+ glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
+ }
+ else if(dGeometry == 2) // Init lights
+ {
+ for(i=0; i<LIGHTSIZE; i++)
+ {
+ for(j=0; j<LIGHTSIZE; j++)
+ {
+ x = float(i - LIGHTSIZE / 2) / float(LIGHTSIZE / 2);
+ y = float(j - LIGHTSIZE / 2) / float(LIGHTSIZE / 2);
+ temp = 1.0f - float(sqrt((x * x) + (y * y)));
+ if(temp > 1.0f)
+ temp = 1.0f;
+ if(temp < 0.0f)
+ temp = 0.0f;
+ lightTexture[i][j] = (unsigned char) (255.0f * temp * temp);
+ }
+ }
+
+ glDisable(GL_LIGHTING);
+ glDisable(GL_COLOR_MATERIAL);
+
+ glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, 1);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexImage2D(GL_TEXTURE_2D, 0, 1, LIGHTSIZE, LIGHTSIZE, 0,
+ GL_LUMINANCE, GL_UNSIGNED_BYTE, lightTexture);
+
+ temp = float(dSize) * 0.005f;
+ glNewList(1, GL_COMPILE);
+ glBindTexture(GL_TEXTURE_2D, 1);
+ glBegin(GL_TRIANGLES);
+ glTexCoord2f(0.0f, 0.0f);
+ glVertex3f(-temp, -temp, 0.0f);
+ glTexCoord2f(1.0f, 0.0f);
+ glVertex3f(temp, -temp, 0.0f);
+ glTexCoord2f(1.0f, 1.0f);
+ glVertex3f(temp, temp, 0.0f);
+ glTexCoord2f(0.0f, 0.0f);
+ glVertex3f(-temp, -temp, 0.0f);
+ glTexCoord2f(1.0f, 1.0f);
+ glVertex3f(temp, temp, 0.0f);
+ glTexCoord2f(0.0f, 1.0f);
+ glVertex3f(-temp, temp, 0.0f);
+ glEnd();
+ glEndList();
+ }
+
+ // Initialize luminosity difference
+ lumdiff = 1.0f / float(dTrail);
+
+ _fc = this;
+ delete[] _fluxes;
+ _fluxes = new flux[dFluxes];
+}
+
+
+//----------------------------------------------------------------------------
+
+
+#ifndef UNIT_TEST
+#include <klocale.h>
+#include <kglobal.h>
+#include <kconfig.h>
+
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char* kss_applicationName = "kflux.kss";
+ KDE_EXPORT const char* kss_description = I18N_NOOP( "Flux" );
+ KDE_EXPORT const char* kss_version = "1.0";
+
+ KDE_EXPORT KScreenSaver* kss_create( WId id )
+ {
+ return new KFluxScreenSaver( id );
+ }
+
+ KDE_EXPORT TQDialog* kss_setup()
+ {
+ return new KFluxSetup;
+ }
+}
+
+
+//----------------------------------------------------------------------------
+
+
+KFluxScreenSaver::KFluxScreenSaver( WId id ) : KScreenSaver( id )
+{
+ _flux = new FluxWidget;
+
+ readSettings();
+
+ embed( _flux );
+ _flux->show();
+}
+
+
+KFluxScreenSaver::~KFluxScreenSaver()
+{
+}
+
+
+static int filterRandom( int n )
+{
+ if( (n < 0) || (n >= FluxWidget::DefaultModes) )
+ {
+ srand((unsigned)time(NULL));
+ n = rand() % FluxWidget::DefaultModes;
+ }
+ return n;
+}
+
+
+void KFluxScreenSaver::readSettings()
+{
+ TDEConfig* config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ _mode = config->readNumEntry( "Mode", FluxWidget::Regular );
+ _flux->setDefaults( filterRandom(_mode) );
+}
+
+
+/**
+ Any invalid mode will select one at random.
+*/
+void KFluxScreenSaver::setMode( int id )
+{
+ _mode = id;
+ _flux->setDefaults( filterRandom(id) );
+ _flux->updateParameters();
+}
+
+
+//----------------------------------------------------------------------------
+
+
+#include <tqlayout.h>
+#include <tqpushbutton.h>
+#include <tqlabel.h>
+#include <tqcombobox.h>
+#include <kbuttonbox.h>
+#include <kmessagebox.h>
+
+
+static const char* defaultText[] =
+{
+ I18N_NOOP( "Regular" ),
+ I18N_NOOP( "Hypnotic" ),
+ I18N_NOOP( "Insane" ),
+ I18N_NOOP( "Sparklers" ),
+ I18N_NOOP( "Paradigm" ),
+ I18N_NOOP( "Galactic" ),
+ I18N_NOOP( "(Random)" ),
+ 0
+};
+
+
+KFluxSetup::KFluxSetup( TQWidget* parent, const char* name )
+ : KDialogBase( parent, name, true, i18n( "Setup Flux Screen Saver" ),
+ Ok|Cancel|Help, Ok, true )
+{
+ setButtonText( Help, i18n( "A&bout" ) );
+ TQWidget *main = makeMainWidget();
+
+ TQHBoxLayout* top = new TQHBoxLayout( main, 0, spacingHint() );
+ TQVBoxLayout* leftCol = new TQVBoxLayout;
+ top->addLayout( leftCol );
+
+ // Parameters
+ TQLabel* label = new TQLabel( i18n("Mode:"), main );
+ leftCol->addWidget( label );
+
+ modeW = new TQComboBox( main );
+ int i = 0;
+ while (defaultText[i])
+ modeW->insertItem( i18n(defaultText[i++]) );
+ leftCol->addWidget( modeW );
+
+ leftCol->addStretch();
+
+ // Preview
+ TQWidget* preview;
+ preview = new TQWidget( main );
+ preview->setFixedSize( 220, 165 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ _saver = new KFluxScreenSaver( preview->winId() );
+ top->addWidget(preview);
+
+ // Now that we have _saver...
+ modeW->setCurrentItem( _saver->mode() ); // set before we connect
+ connect( modeW, TQT_SIGNAL(activated(int)), _saver, TQT_SLOT(setMode(int)) );
+}
+
+
+KFluxSetup::~KFluxSetup()
+{
+ delete _saver;
+}
+
+
+void KFluxSetup::slotHelp()
+{
+ KMessageBox::about(this,
+ i18n("<h3>Flux 1.0</h3>\n<p>Copyright (c) 2002 Terence M. Welsh<br>\n<a href=\"http://www.reallyslick.com/\">http://www.reallyslick.com/</a></p>\n\n<p>Ported to KDE by Karl Robillard</p>"),
+ TQString(), KMessageBox::AllowLink);
+}
+
+
+/**
+ Ok pressed - save settings and exit
+*/
+void KFluxSetup::slotOk()
+{
+ TDEConfig* config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ TQString val;
+ val.setNum( modeW->currentItem() );
+ config->writeEntry("Mode", val );
+
+ config->sync();
+ accept();
+}
+#endif
+
+
+//----------------------------------------------------------------------------
+
+
+#ifdef UNIT_TEST
+// moc Flux.h -o Flux.moc
+// g++ -g -DUNIT_TEST Flux.cpp -I/usr/lib/qt3/include -lqt -L/usr/lib/qt3/lib -lGLU -lGL
+
+#include <tqapplication.h>
+
+int main( int argc, char** argv )
+{
+ TQApplication app( argc, argv );
+
+ FluxWidget w;
+ w.setDefaults( FluxWidget::Sparklers );
+ app.setMainWidget( &w );
+ w.show();
+
+ return app.exec();
+}
+#endif
+
+
+//EOF
diff --git a/tdescreensaver/kdesavers/Flux.h b/tdescreensaver/kdesavers/Flux.h
new file mode 100644
index 00000000..f1a98780
--- /dev/null
+++ b/tdescreensaver/kdesavers/Flux.h
@@ -0,0 +1,150 @@
+#ifndef __FLUXSS_H__
+#define __FLUXSS_H__
+//============================================================================
+//
+// Terence Welsh Screensaver - Flux
+// http://www.reallyslick.com/
+//
+// Ported to KDE by Karl Robillard
+//
+//============================================================================
+
+
+#include <tqgl.h>
+
+
+#define LIGHTSIZE 64
+
+
+class flux;
+class particle;
+class TQTimer;
+
+class FluxWidget : public TQGLWidget
+{
+ Q_OBJECT
+
+
+public:
+
+ enum eDefault
+ {
+ Regular,
+ Hypnotic,
+ Insane,
+ Sparklers,
+ Paradigm,
+ Galactic,
+ DefaultModes
+ };
+
+ FluxWidget( TQWidget* parent=0, const char* name=0 );
+ ~FluxWidget();
+
+ void setDefaults( int which );
+ void updateParameters();
+
+protected:
+
+ void paintGL();
+ void resizeGL( int w, int h );
+ void initializeGL();
+#ifdef UNIT_TEST
+ void keyPressEvent( TQKeyEvent* );
+#endif
+
+private slots:
+
+ void nextFrame();
+
+private:
+
+ float lumdiff;
+ float cameraAngle;
+ float cosCameraAngle, sinCameraAngle;
+ unsigned char lightTexture[LIGHTSIZE][LIGHTSIZE];
+
+ int dFluxes;
+ int dParticles;
+ int dTrail;
+ int dGeometry;
+ float dSize;
+ int dComplexity;
+ int dRandomize;
+ int dExpansion;
+ int dRotation;
+ int dWind;
+ float dInstability;
+ int dBlur;
+ int dSmart;
+ int dPriority;
+
+ flux* _fluxes;
+
+ // Using TQTimer rather than timerEvent() to avoid getting locked out of
+ // the TQEvent loop on lower-end systems. Ian Geiser <geiseri@kde.org>
+ // says this is the way to go.
+ TQTimer* _timer;
+ int _frameTime;
+
+ friend class flux;
+ friend class particle;
+};
+
+
+#ifndef UNIT_TEST
+#include <kdialogbase.h>
+#include <tdescreensaver.h>
+
+
+class KFluxScreenSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+
+public:
+
+ KFluxScreenSaver( WId id );
+ virtual ~KFluxScreenSaver();
+
+ int mode() const { return _mode; }
+
+public slots:
+
+ void setMode( int );
+
+private:
+
+ void readSettings();
+
+ FluxWidget* _flux;
+ int _mode;
+};
+
+
+class TQComboBox;
+
+class KFluxSetup : public KDialogBase
+{
+ Q_OBJECT
+
+
+public:
+
+ KFluxSetup( TQWidget* parent = 0, const char* name = 0 );
+ ~KFluxSetup();
+
+private slots:
+
+ void slotHelp();
+ void slotOk();
+
+private:
+
+ TQComboBox* modeW;
+ KFluxScreenSaver* _saver;
+};
+#endif
+
+
+#endif //__FLUXSS_H__
diff --git a/tdescreensaver/kdesavers/KBanner.desktop b/tdescreensaver/kdesavers/KBanner.desktop
new file mode 100644
index 00000000..afcc1d26
--- /dev/null
+++ b/tdescreensaver/kdesavers/KBanner.desktop
@@ -0,0 +1,243 @@
+[Desktop Entry]
+Exec=kbanner.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Banners & Pictures
+Name=Banner
+Name[af]=Bannier
+Name[bg]=Банер
+Name[br]=Lugan
+Name[ca]=Rètol
+Name[cs]=Běžící text
+Name[cy]=Baner
+Name[de]=Lauftext
+Name[el]=Τίτλος
+Name[eo]=Standardo
+Name[es]=Pancarta
+Name[et]=Tekstiriba
+Name[eu]=Titularra
+Name[fa]=بنر
+Name[fi]=Viesti
+Name[fr]=Bannière
+Name[fy]=Ljochtkrante
+Name[ga]=Meirge
+Name[gl]=Pancarta
+Name[he]=כתובית
+Name[hi]=बैनर
+Name[hu]=Felirat
+Name[is]=Borði
+Name[it]=Testo scorrevole
+Name[ja]=ãƒãƒŠãƒ¼
+Name[ka]=áƒáƒ‘რáƒ
+Name[lt]=Plakatas
+Name[lv]=Banners
+Name[mk]=ТранÑпарент
+Name[ms]=Kain Rentang
+Name[nds]=Looptext
+Name[ne]=बà¥à¤¯à¤¾à¤¨à¤°
+Name[nl]=Lichtkrant
+Name[nn]=Fane
+Name[pa]=ਬੈਨਰ
+Name[pt]=Cartaz
+Name[ru]=Ð‘ÐµÐ³ÑƒÑ‰Ð°Ñ Ñтрока
+Name[sl]=Napis
+Name[sr]=ЗаÑтава
+Name[sr@Latn]=Zastava
+Name[sv]=Rubrik
+Name[ta]=பேனரà¯
+Name[tg]=Давида иÑтодаи рах
+Name[th]=à¹à¸šà¸™à¹€à¸™à¸­à¸£à¹Œ
+Name[tr]=AfiÅŸ
+Name[uk]=ТранÑпарант
+Name[ven]=Muvhala
+Name[vi]=Biểu ngữ
+Name[xh]=Isiqwentshu selaphu
+Name[zh_CN]=横幅
+Name[zh_TW]=標誌
+Name[zu]=Ibhodi elinomyalezo
+
+[Desktop Action Setup]
+Exec=kbanner.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kbanner.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kbanner.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KBlob.desktop b/tdescreensaver/kdesavers/KBlob.desktop
new file mode 100644
index 00000000..e1343fef
--- /dev/null
+++ b/tdescreensaver/kdesavers/KBlob.desktop
@@ -0,0 +1,227 @@
+[Desktop Entry]
+Exec=kblob.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Visit to Flatland
+Name=Blob
+Name[bg]=Петно
+Name[br]=Pokard
+Name[cs]=Kaňka
+Name[cy]=Smotyn
+Name[da]=Dråbe
+Name[de]=Blob 
+Name[eo]=Gutoj
+Name[et]=Piisk
+Name[eu]=Tanta
+Name[fi]=Kuplat
+Name[he]=כתמי×
+Name[hi]=बà¥à¤²à¥‰à¤¬
+Name[ja]=斑点
+Name[ka]=წვეთები
+Name[lt]=Rutuliukas
+Name[mk]=Дамка
+Name[nb]=Fargeflekk
+Name[ne]=बà¥à¤²à¤¬
+Name[nn]=Klattar
+Name[pl]=BÄ…bel
+Name[ro]=Bule
+Name[ru]=ГеометричеÑкие поÑтроениÑ
+Name[sl]=Kepica
+Name[sr]=Блоб
+Name[sv]=Färgfläck
+Name[ta]=தொழிறà¯à®ªà¯Šà®°à¯à®³à¯
+Name[tg]=ÐÑÐ¾Ñ Ð³ÑƒÐ·Ð¾Ñ€Ð¸Ð¸ геометрӣ
+Name[th]=รอยเปื้อน
+Name[tr]=Damlacık
+Name[uk]=Геометричні візерунки
+Name[ven]=Tshileme
+Name[vi]=Giá»t nÆ°á»›c
+Name[xh]=Ichaphaza elincinane
+Name[zh_CN]=光线
+Name[zh_TW]=斑點
+
+[Desktop Action Setup]
+Exec=kblob.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kblob.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kblob.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KClock.desktop b/tdescreensaver/kdesavers/KClock.desktop
new file mode 100644
index 00000000..c22d68c9
--- /dev/null
+++ b/tdescreensaver/kdesavers/KClock.desktop
@@ -0,0 +1,252 @@
+[Desktop Entry]
+Exec=kclock.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Miscellaneous
+Name=Clock
+Name[bg]=ЧаÑовник
+Name[br]=Eurier
+Name[bs]=Sat
+Name[ca]=Rellotge
+Name[cs]=Hodiny
+Name[cy]=Cloc
+Name[da]=Ur
+Name[de]=Uhr
+Name[el]=Ρολόι
+Name[eo]=HorloÄo
+Name[es]=Reloj
+Name[et]=Kell
+Name[eu]=Erlojua
+Name[fa]=ساعت
+Name[fi]=Kello
+Name[fr]=Horloge
+Name[fy]=Klok
+Name[ga]=Clog
+Name[gl]=Reloxio
+Name[he]=שעון
+Name[hi]=घड़ी
+Name[hu]=Óra
+Name[is]=Klukka
+Name[it]=Orologio
+Name[ja]=時計
+Name[ka]=სáƒáƒáƒ—ი
+Name[lt]=Laikrodis
+Name[lv]=Pulkstenis
+Name[mk]=ЧаÑовник
+Name[ms]=Jam
+Name[nb]=Klokke
+Name[nds]=Klock
+Name[ne]=घडी
+Name[nl]=Klok
+Name[nn]=Klokke
+Name[pa]=ਘੜੀ
+Name[pl]=Zegar
+Name[pt]=Relógio
+Name[pt_BR]=Relógio
+Name[ro]=Ceas
+Name[ru]=ЧаÑÑ‹
+Name[rw]=Isaha
+Name[sk]=Hodiny
+Name[sl]=Ura
+Name[sr]=ЧаÑовник
+Name[sr@Latn]=ÄŒasovnik
+Name[sv]=Klocka
+Name[ta]=கடிகாரமà¯
+Name[tg]=Соат
+Name[th]=นาฬิà¸à¸²
+Name[tr]=Saat
+Name[uk]=Годинник
+Name[uz]=Soat
+Name[uz@cyrillic]=Соат
+Name[ven]=Tshifhinga
+Name[vi]=Äồng hồ
+Name[xh]=Ikloko
+Name[zh_CN]=时钟
+Name[zh_TW]=時é˜
+Name[zu]=Iwashi
+
+[Desktop Action Setup]
+Exec=kclock.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kclock.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kclock.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KEuphoria.desktop b/tdescreensaver/kdesavers/KEuphoria.desktop
new file mode 100644
index 00000000..4be782b1
--- /dev/null
+++ b/tdescreensaver/kdesavers/KEuphoria.desktop
@@ -0,0 +1,233 @@
+[Desktop Entry]
+Exec=keuphoria.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Euphoria (GL)
+Name[bg]=ЕуфориÑ
+Name[ca]=Eufòria (GL)
+Name[cy]=Iwfforia (GL)
+Name[da]=Eufori (GL)
+Name[de]=Euphorie
+Name[el]=ΕυφοÏία (GL)
+Name[es]=Euforia (GL)
+Name[et]=Eufooria (GL)
+Name[eu]=Euforia (GL)
+Name[fa]=شادی (GL)
+Name[fr]=Euphorie (GL)
+Name[he]=×ופוריה (GL)
+Name[hi]=परम आनंद (जीà¤à¤²)
+Name[hu]=Euphoria (OpenGL)
+Name[it]=Euforia (GL)
+Name[ja]=å¹¸ç¦ (GL)
+Name[ka]=ეიფáƒáƒ áƒ˜áƒ (GL)
+Name[mk]=Еуфорија (GL)
+Name[mt]=Ewforija (GL)
+Name[nb]=Eufori (GL)
+Name[nds]=Euphorie (GL)
+Name[ne]=यूफोरिया (GL)
+Name[nn]=Rom (GL)
+Name[pl]=Euforia (GL)
+Name[pt]=Euforia (GL)
+Name[pt_BR]=Euforia (GL)
+Name[ro]=Euforia (GL)
+Name[ru]=Ð­Ð¹Ñ„Ð¾Ñ€Ð¸Ñ (GL)
+Name[sl]=Evforija (GL)
+Name[sr]=Еуфорија (GL)
+Name[sr@Latn]=Euforija (GL)
+Name[sv]=Eufori (GL)
+Name[ta]=மகிழà¯à®šà¯à®šà®¿(GL)
+Name[tg]=Кайфчоқӣ (GL)
+Name[th]=ยูโฟเรีย (GL)
+Name[uk]=Ð•Ð¹Ñ„Ð¾Ñ€Ñ–Ñ (GL)
+Name[uz]=Eyforiya (GL)
+Name[uz@cyrillic]=Ð­Ð¹Ñ„Ð¾Ñ€Ð¸Ñ (GL)
+Name[vi]=Trạng thái phởn phơ (GL)
+Name[zh_CN]=陶醉(GL)
+
+[Desktop Action Setup]
+Exec=keuphoria.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=keuphoria.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=keuphoria.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KFiresaver.desktop b/tdescreensaver/kdesavers/KFiresaver.desktop
new file mode 100644
index 00000000..f640ec4f
--- /dev/null
+++ b/tdescreensaver/kdesavers/KFiresaver.desktop
@@ -0,0 +1,233 @@
+[Desktop Entry]
+Exec=kfiresaver.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Fireworks 3D (GL)
+Name[bg]=Фойерверки
+Name[ca]=Focs d'artifici 3D (GL)
+Name[cs]=Ohňostroj (GL)
+Name[de]=Feuerwerk
+Name[el]=Βεγγαλικά (GL)
+Name[es]=Fuegos artificiales 3D (GL)
+Name[et]=Tulevärk 3D (GL)
+Name[eu]=Su artifizialak 3D (GL)
+Name[fa]=آتش‌بازیهای سه بعدی (GL)
+Name[fi]=Ilotulitus 3D (GL)
+Name[fr]=Feux d'artifices 3D (GL)
+Name[fy]=Fjoerwurk 3D (GL)
+Name[ga]=Fireworks 3T (GL)
+Name[gl]=Fogos de artifício 3D (GL)
+Name[he]=זיקוקי דינור (GL)
+Name[hi]=आतिशबाज़ी 3डी (जीà¤à¤²)
+Name[hu]=Tűzijáték 3D (OpenGL)
+Name[is]=Flugeldar 3D (GL)
+Name[it]=Fuochi d'artificio 3D (GL)
+Name[ja]=èŠ±ç« 3D (GL)
+Name[ka]=ფეიერვერკი (GL)
+Name[mk]=Огномет 3Д (GL)
+Name[nb]=Fyrverkeri 3D (GL)
+Name[nds]=Füerwark (GL)
+Name[ne]=तà¥à¤°à¤¿-आयामिक फाà¤à¤°à¤µà¤°à¥à¤•à¥à¤¸ (GL)
+Name[nn]=Fyrverkeri 3D (GL)
+Name[pl]=Sztuczne ognie 3D (GL)
+Name[pt]=Fogo de Artifício 3D (GL)
+Name[ro]=Focuri de artificii 3D (GL)
+Name[ru]=Фейерверк (GL)
+Name[sl]=Ognjemet 3D (GL)
+Name[sr]=Ватромети 3Д (GL)
+Name[sr@Latn]=Vatrometi 3D (GL)
+Name[sv]=Fyrverkeri 3D (GL)
+Name[tg]=Оташи тарф (GL)
+Name[tr]=3B Havai FiÅŸekler (GL)
+Name[uk]=Феєрверк 3D (GL)
+Name[vi]=Pháo hoa 3 chiá»u (GL)
+Name[zh_CN]=三维烟花(GL)
+Name[zh_TW]=3D ç…™ç«ç§€ (GL)
+
+[Desktop Action Setup]
+Exec=kfiresaver.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kfiresaver.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kfiresaver.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KFlux.desktop b/tdescreensaver/kdesavers/KFlux.desktop
new file mode 100644
index 00000000..9ba427d7
--- /dev/null
+++ b/tdescreensaver/kdesavers/KFlux.desktop
@@ -0,0 +1,224 @@
+[Desktop Entry]
+Exec=kflux.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Flux (GL)
+Name[bg]=Прилив
+Name[cy]=Dylif (GL)
+Name[de]=Flux
+Name[el]=Ροή (GL)
+Name[es]=Flujo (GL)
+Name[fa]=شار (GL)
+Name[fy]=Fluks (GL)
+Name[gl]=Fluxo (GL)
+Name[he]=שטף (GL)
+Name[hi]=लहर-लहर (जीà¤à¤²)
+Name[hu]=Flux (OpenGL)
+Name[it]=Flusso (GL)
+Name[ja]=æµã‚Œ (GL)
+Name[ka]=ფლუქტუáƒáƒªáƒ˜áƒ (GL)
+Name[mk]=Ð¤Ð»ÑƒÐºÑ (GL)
+Name[nb]=Fluks (GL)
+Name[ne]=फà¥à¤²à¤•à¥à¤¸ (GL)
+Name[nn]=Pulsar (GL)
+Name[pt]=Fluxo (GL)
+Name[pt_BR]=Fluxo (GL)
+Name[ru]=Флуктуации (GL)
+Name[sl]=Pretok (GL)
+Name[sr]=Ð¤Ð»ÑƒÐºÑ (GL)
+Name[sr@Latn]=Fluks (GL)
+Name[ta]=மாறà¯à®±à®®à¯(GL)
+Name[tg]=ФлуктуатÑиÑи (GL)
+Name[uk]=ФлюкÑÑ–Ñ (GL)
+Name[uz]=Oqim (GL)
+Name[uz@cyrillic]=Оқим (GL)
+Name[vi]=Dòng chảy (GL)
+Name[zh_CN]=æµåŠ¨(GL)
+
+[Desktop Action Setup]
+Exec=kflux.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kflux.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kflux.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KFountain.desktop b/tdescreensaver/kdesavers/KFountain.desktop
new file mode 100644
index 00000000..81d89a00
--- /dev/null
+++ b/tdescreensaver/kdesavers/KFountain.desktop
@@ -0,0 +1,249 @@
+[Desktop Entry]
+Exec=kfountain.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Particle Fountain (GL)
+Name[af]=Deeltjie Fontein (Gl)
+Name[bg]=Източник на чаÑтици
+Name[ca]=Font de partícules (GL)
+Name[cs]=Částicová fontána (GL)
+Name[cy]=Ffynnon Gronyn (GL)
+Name[da]=Partikelbrønd (GL)
+Name[de]=Partikelfontäne
+Name[el]=ΣιντÏιβάνι σωματιδίων (GL)
+Name[eo]=Erofontano
+Name[es]=Fuente de partículas (GL)
+Name[et]=Osakeste Fontään (GL)
+Name[eu]=Partikula iturria (GL)
+Name[fa]=منشأ ذره (GL)
+Name[fi]=Hiukkaslähde (GL)
+Name[fr]=Fontaine de particules (GL)
+Name[fy]=Dieltsjesfontein (GL)
+Name[gl]=Fonte de partículas (GL)
+Name[he]=מזרקת ×—×œ×§×™×§×™× (GL)
+Name[hi]=अणॠनिरà¥à¤à¤° (जीà¤à¤²)
+Name[hu]=Szökőkút (OpenGL)
+Name[is]=Eindagosbrunnur (GL)
+Name[it]=Fontana di particelle (GL)
+Name[ja]=ç²’å­ã®æ³‰ (GL)
+Name[ka]=შáƒáƒ“რევáƒáƒœáƒ˜ (GL)
+Name[lt]=Dalelių fontanas (GL)
+Name[lv]=Kripatiņu Strūklaka (GL)
+Name[mk]=Фонтана од чеÑтички (GL)
+Name[mt]=Funtana ta' partiċelli (GL)
+Name[nb]=Partikkelfontene (GL)
+Name[nds]=Deeltjeblaser (GL)
+Name[ne]=पारà¥à¤Ÿà¤¿à¤•à¤² फाउनà¥à¤Ÿà¥‡à¤¨ (GL)
+Name[nl]=Deeltjes-fontijn (GL)
+Name[nn]=Partikkelfontene (GL)
+Name[pl]=Fontanna czÄ…stek (GL)
+Name[pt]=Fonte de Partículas (GL)
+Name[pt_BR]=Fonte de Partículas (GL)
+Name[ro]=Fîntînă de particule (GL)
+Name[ru]=Фонтан чаÑтиц (GL)
+Name[sk]=Fontána Äastíc (GL)
+Name[sl]=Vodnjak delcev (GL)
+Name[sr]=Фонтана чеÑтица (GL)
+Name[sr@Latn]=Fontana Äestica (GL)
+Name[sv]=Partikelfontän (GL)
+Name[ta]=பொரà¯à®³à¯ ஊறà¯à®±à¯ (GL)
+Name[tg]=ҚиÑми фаввораи (GL)
+Name[th]=ละอองน้ำ (GL)
+Name[tr]=Parçacık Şelalesi (GL)
+Name[uk]=Фонтан чаÑтинок (GL)
+Name[uz]=Zarrachalar favvorasi (GL)
+Name[uz@cyrillic]=Заррачалар фаввораÑи (GL)
+Name[ven]=Tshisima tsha Zwithu nyana (GL)
+Name[vi]=Äài phun Hạt (GL)
+Name[xh]=Umthombo Womhlaba (GL)
+Name[zh_CN]=ç²’å­å–·æ³‰(GL)
+Name[zh_TW]=ç²’å­å™´æ³‰ (GL)
+Name[zu]=Ingxenye encane yomfudlana (GL)
+
+[Desktop Action Setup]
+Exec=kfountain.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kfountain.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kfountain.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KGravity.desktop b/tdescreensaver/kdesavers/KGravity.desktop
new file mode 100644
index 00000000..312797d7
--- /dev/null
+++ b/tdescreensaver/kdesavers/KGravity.desktop
@@ -0,0 +1,253 @@
+[Desktop Entry]
+Exec=kgravity.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Gravity (GL)
+Name[af]=Gravitasie (Gl)
+Name[bg]=ГравитациÑ
+Name[br]=Dedennerezh (GL)
+Name[ca]=Gravetat (GL)
+Name[cs]=Gravitace (GL)
+Name[cy]=Disgyrchiant (GL)
+Name[da]=Tyngdekraft (GL)
+Name[de]=Schwerkraft
+Name[el]=ΒαÏÏτητα (GL)
+Name[eo]=Gravito
+Name[es]=Gravedad (GL)
+Name[et]=Raskusjõud (GL)
+Name[eu]=Grabitatea (GL)
+Name[fa]=جاذبه (GL)
+Name[fi]=Gravitaatio (GL)
+Name[fo]=Tyngd (GL)
+Name[fr]=Gravité (GL)
+Name[fy]=Swiertekrêft (GL)
+Name[gl]=Gravidade (GL)
+Name[he]=×—×œ×§×™×§×™× (GL)
+Name[hi]=गà¥à¤°à¥‚तà¥à¤µ (जीà¤à¤²)
+Name[hu]=Gravitáció (OpenGL)
+Name[is]=Þyngdarafl (GL)
+Name[it]=Gravità (GL)
+Name[ja]=é‡åŠ› (GL)
+Name[ka]=მიზიდულáƒáƒ‘რ(GL)
+Name[lt]=Trauka (GL)
+Name[lv]=GravitÄcija (GL)
+Name[mk]=Гравитација (GL)
+Name[ms]=Graviti (GL)
+Name[mt]=Gravità (GL)
+Name[nb]=Gravitasjon (GL)
+Name[nds]=Swoorkraft (GL)
+Name[ne]=गà¥à¤°à¥à¤¤à¥à¤µ (GL)
+Name[nl]=Zwaartekracht (GL)
+Name[nn]=Tyngdekraft (GL)
+Name[pl]=Grawitacja (GL)
+Name[pt]=Gravidade (GL)
+Name[pt_BR]=Gravidade (GL)
+Name[ro]=Gravitaţie (GL)
+Name[ru]=Ð“Ñ€Ð°Ð²Ð¸Ñ‚Ð°Ñ†Ð¸Ñ (GL)
+Name[sk]=Gravitácia (GL)
+Name[sl]=Gravitacija (GL)
+Name[sr]=Гравитација (GL)
+Name[sr@Latn]=Gravitacija (GL)
+Name[sv]=Gravitation (GL)
+Name[ta]=பà¯à®µà®¿à®¯à®¿à®°à¯à®ªà¯à®ªà¯(GL)
+Name[tg]=Ҷозибаи (GL)
+Name[th]=à¹à¸£à¸‡à¸”ึงดูด (GL)
+Name[tr]=Yerçekimi (GL)
+Name[uk]=Ð“Ñ€Ð°Ð²Ñ–Ñ‚Ð°Ñ†Ñ–Ñ (GL)
+Name[uz]=Gravitatsiya (GL)
+Name[uz@cyrillic]=Ð“Ñ€Ð°Ð²Ð¸Ñ‚Ð°Ñ†Ð¸Ñ (GL)
+Name[ven]=Fhasi Mavuni (GL)
+Name[vi]=Trá»ng trÆ°á»ng (GL)
+Name[xh]=Umoya otsala izinto kumbindi womhlaba (GL)
+Name[zh_CN]=é‡åŠ›(GL)
+Name[zh_TW]=é‡åŠ› (GL)
+Name[zu]=Amandla adonsela emhlabeni (GL)
+
+
+[Desktop Action Setup]
+Exec=kgravity.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kgravity.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kgravity.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KLines-saver.desktop b/tdescreensaver/kdesavers/KLines-saver.desktop
new file mode 100644
index 00000000..581c23a6
--- /dev/null
+++ b/tdescreensaver/kdesavers/KLines-saver.desktop
@@ -0,0 +1,255 @@
+[Desktop Entry]
+Exec=klines.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Flying Things
+Name=Lines
+Name[af]=Lyne
+Name[bg]=Линии
+Name[br]=Linennoù
+Name[ca]=Línies
+Name[cs]=Linie
+Name[cy]=Llinellau
+Name[da]=Linjer
+Name[de]=Linien
+Name[el]=ΓÏαμμές
+Name[eo]=Linioj
+Name[es]=Líneas
+Name[et]=Jooned
+Name[eu]=Lerroak
+Name[fa]=خطوط
+Name[fi]=Viivat
+Name[fo]=Reglur
+Name[fr]=Lignes
+Name[fy]=Linen
+Name[ga]=Línte
+Name[gl]=Liñas
+Name[he]=קווי×
+Name[hi]= लकीरें
+Name[hu]=Vonalak
+Name[is]=Línur
+Name[it]=Linee
+Name[ja]=ç·š
+Name[ka]=წრფეები
+Name[lt]=Linijos
+Name[lv]=LÄ«nijas
+Name[mk]=Прави
+Name[ms]=Baris
+Name[mt]=Linji
+Name[nb]=Linjer
+Name[nds]=Lienen
+Name[ne]=पङà¥à¤•à¥à¤¤à¤¿
+Name[nl]=Lijnen
+Name[nn]=Linjer
+Name[nso]=Methalo
+Name[pa]=ਰੇਖਾਵਾਂ
+Name[pl]=Linie
+Name[pt]=Linhas
+Name[pt_BR]=Linhas
+Name[ro]=Linii
+Name[ru]=Линии
+Name[sk]=ÄŒiary
+Name[sl]=ÄŒrte
+Name[sr]=Линије
+Name[sr@Latn]=Linije
+Name[sv]=Linjer
+Name[ta]=கமà¯à®ªà®¿à®•à®³à¯
+Name[tg]=Рахҳо
+Name[th]=เส้น
+Name[tr]=Çizgiler
+Name[uk]=Лінії
+Name[uz]=Chiziqlar
+Name[uz@cyrillic]=Чизиқлар
+Name[ven]=Mitalo
+Name[vi]=Dòng kẻ
+Name[xh]=Iilayini
+Name[zh_CN]=线æ¡
+Name[zh_TW]=ç·šæ¢
+Name[zu]=Olayini
+
+[Desktop Action Setup]
+Exec=klines.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=klines.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=klines.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+X-DCOP-ServiceType=Multi
diff --git a/tdescreensaver/kdesavers/KLorenz.desktop b/tdescreensaver/kdesavers/KLorenz.desktop
new file mode 100644
index 00000000..109b8d98
--- /dev/null
+++ b/tdescreensaver/kdesavers/KLorenz.desktop
@@ -0,0 +1,244 @@
+[Desktop Entry]
+Exec=klorenz.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Gadgets & Simulations
+Name=Lorenz Attractor
+Name[af]=Lorenz Aantrekker
+Name[bg]=Лоренцо
+Name[br]=Dedenner Lorenz
+Name[cs]=Lorenzův atraktor
+Name[cy]=Attynydd Lorenz
+Name[da]=Lorenz-attraktor
+Name[de]=Lorenz-Attraktor
+Name[el]=Ελκυστής Lorenz
+Name[eo]=Lorenza atraktoro
+Name[es]=Atractor de Lorenz
+Name[et]=Lorenzi atraktor
+Name[eu]=Lorenz erakarlea
+Name[fa]=ربایندۀ Lorenz
+Name[fi]=Lorentz attraktori
+Name[fo]=Lorenz attractor
+Name[fr]=Attracteur de Lorentz
+Name[fy]=Lorenz Oanlûker
+Name[gl]=Atractor Caótico de Lorenz
+Name[he]=מושך לורנץ
+Name[hi]=आठ à¤à¤•à¤® आठ
+Name[hu]=Lorenz-féle képernyővédő
+Name[is]=Lorenz aðdráttur
+Name[it]=Attrattore di Lorenz
+Name[ja]=ローレンツアトラクタ
+Name[ka]=ლáƒáƒ áƒ”ნცის მიზიდულáƒáƒ‘áƒ
+Name[lv]=Lorensa Attraktors
+Name[mk]=Лоренцов атрактор
+Name[mt]=Attrattur Lorenz
+Name[nb]=Lorenz-attraktor
+Name[nds]=Lorenz-Antrecker
+Name[ne]=लरेनà¥à¤œ आकरà¥à¤·à¤•
+Name[nn]=Lorenz-tiltrekking
+Name[pl]=Atraktor Lorenza
+Name[pt]=Força de Lorenz
+Name[pt_BR]=Atração Lorenz
+Name[ro]=Atracţie Lorenz
+Name[ru]=Странный аттрактор Лоренца
+Name[sl]=Lorenzov atraktor
+Name[sr]=Лоренцов атрактор
+Name[sr@Latn]=Lorencov atraktor
+Name[sv]=Lorenz attraktor
+Name[ta]=லோரனà¯à®¸à¯ கவரà¯à®ªà®µà®°à¯
+Name[tg]=Ðттракти аҷоиби ЛоренÑ
+Name[th]=สิ่งที่น่าดึงดูดของลอเรนซ์
+Name[tr]=Cazibe
+Name[uk]=ПритÑÐ³Ð½ÐµÐ½Ð½Ñ Ð›Ð¾Ñ€ÐµÐ½Ñ†Ð°
+Name[ven]=Tshikokodzi tsha Lorenz
+Name[vi]=Äiểm hút Lorenz
+Name[xh]=Umtsali we Lorenz
+Name[zh_CN]=洛仑兹å¸å¼•å­
+Name[zh_TW]=Lorenz å¸å¼•è€…
+Name[zu]=Umhehi we-Lorenz
+
+[Desktop Action Setup]
+Exec=klorenz.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=klorenz.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=klorenz.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KPendulum.desktop b/tdescreensaver/kdesavers/KPendulum.desktop
new file mode 100644
index 00000000..c53fd21b
--- /dev/null
+++ b/tdescreensaver/kdesavers/KPendulum.desktop
@@ -0,0 +1,221 @@
+[Desktop Entry]
+Exec=kpendulum.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=KPendulum (GL)
+Name[bg]=Махало
+Name[cs]=Kyvadlo
+Name[de]=KPendulum
+Name[el]=ΕκκÏεμές (GL)
+Name[fr]=Pendule (GL)
+Name[hi]=के-पेंडà¥à¤²à¤® (जीà¤à¤²)
+Name[hu]=KPendulum (OpenGL)
+Name[is]=Pendúlar (GL)
+Name[it]=KPendolo (GL)
+Name[ja]=æŒ¯ã‚Šå­ (GL)
+Name[ka]=ქáƒáƒœáƒ¥áƒáƒ áƒ (GL)
+Name[mk]=КÐишало (GL)
+Name[nb]=KPendel (GL)
+Name[nds]=Pennel (GL)
+Name[ne]=केडीई पेनà¥à¤¡à¥à¤²à¤® (GL)
+Name[nn]=KPendel (GL)
+Name[pt]=KPêndulo (GL)
+Name[ro]=Pendul (GL)
+Name[ru]=МаÑтник (GL)
+Name[sl]=KNihalo (GL)
+Name[sr]=К-клатно (GL)
+Name[sr@Latn]=K-klatno (GL)
+Name[sv]=Pendel (GL)
+Name[ta]=KPendulum(GL)
+Name[tg]=РаққоÑак (GL)
+Name[tr]=Sarkaç (GL)
+Name[uk]=МаÑтник (GL)
+Name[vi]=Con lắc (GL)
+
+[Desktop Action Setup]
+Exec=kpendulum.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kpendulum.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kpendulum.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KPolygon.desktop b/tdescreensaver/kdesavers/KPolygon.desktop
new file mode 100644
index 00000000..0c95f749
--- /dev/null
+++ b/tdescreensaver/kdesavers/KPolygon.desktop
@@ -0,0 +1,251 @@
+[Desktop Entry]
+Exec=kpolygon.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Rapid Motion
+Name=Polygons
+Name[af]=Poligone
+Name[bg]=Полигон
+Name[br]=Lieskognegoù
+Name[ca]=Polígons
+Name[cs]=Polygony
+Name[cy]=Polygonau
+Name[da]=Polygoner
+Name[de]=Polygon
+Name[el]=ΠολÏγωνα
+Name[eo]=Poligonoj
+Name[es]=Polígonos
+Name[et]=Polügoonid
+Name[eu]=Poligonoak
+Name[fa]=چند ضلعیها
+Name[fi]=Polygonit
+Name[fo]=Fleirhyrntir
+Name[fr]=Polygones
+Name[fy]=Polygoanen
+Name[ga]=Polagáin
+Name[gl]=Polígonos
+Name[he]=מצולעי×
+Name[hi]=बहà¥à¤­à¥à¤œ
+Name[hu]=Poligonok
+Name[is]=Marghyrningar
+Name[it]=Poligoni
+Name[ja]=ãƒãƒªã‚´ãƒ³
+Name[ka]=მრáƒáƒ•áƒáƒšáƒ™áƒ£áƒ—ხედები
+Name[lt]=Daugiakampiai
+Name[lv]=Poligoni
+Name[mk]=Полигони
+Name[ms]=Poligon
+Name[mt]=Poligoni
+Name[nb]=Polygoner
+Name[nds]=Veelecks
+Name[ne]=बहà¥à¤­à¥à¤œ
+Name[nl]=Polygonen
+Name[nn]=Polygon
+Name[pa]=ਬਹà©à¨­à©à¨œ
+Name[pl]=WielokÄ…ty
+Name[pt]=Polígonos
+Name[pt_BR]=Polígonos
+Name[ro]=Poligoane
+Name[ru]=Многоугольники
+Name[sk]=Polygóny
+Name[sl]=Mnogokotniki
+Name[sr]=Полигони
+Name[sr@Latn]=Poligoni
+Name[sv]=Polygoner
+Name[ta]=பலகோணவடிவஙà¯à®•à®³à¯
+Name[tg]=БиÑёркунҷа
+Name[th]=รูปหลายเหลี่ยม
+Name[tr]=Poligonlar
+Name[uk]=Багатокутники
+Name[uz]=Koʻpburchaklar
+Name[uz@cyrillic]=Кўпбурчаклар
+Name[vi]=Äa giác
+Name[xh]=Iziqu ezinekona namacala amaninzi
+Name[zh_CN]=多边形
+Name[zh_TW]=多邊形
+
+[Desktop Action Setup]
+Exec=kpolygon.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kpolygon.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kpolygon.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KRotation.desktop b/tdescreensaver/kdesavers/KRotation.desktop
new file mode 100644
index 00000000..d4fa0d40
--- /dev/null
+++ b/tdescreensaver/kdesavers/KRotation.desktop
@@ -0,0 +1,221 @@
+[Desktop Entry]
+Exec=krotation.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=KRotation (GL)
+Name[bg]=РотациÑ
+Name[cs]=Rotace
+Name[de]=KRotation
+Name[el]=Ατλαντίδα (GL)
+Name[fr]=Rotation (GL)
+Name[fy]=KRotaasje (GL)
+Name[he]= KRotation(GL)
+Name[hi]=के-रोटेशन (जीà¤à¤²)
+Name[hu]=KRotation (OpenGL)
+Name[is]=Ksnúningur (GL)
+Name[it]=KRotazione (GL)
+Name[ja]=回転 (GL)
+Name[ka]=დáƒáƒ¢áƒ áƒ˜áƒáƒšáƒ”ბრ(GL)
+Name[mk]=КРотација (GL)
+Name[nb]=KRotasjon (GL)
+Name[ne]=केडीई परिकà¥à¤°à¤®à¤£ (GL)
+Name[nn]=KRotasjon (GL)
+Name[pt]=KRotação (GL)
+Name[ro]=Rotire (GL)
+Name[ru]=Вращение (GL)
+Name[sl]=KRotacija (GL)
+Name[sr]=К-ротација (GL)
+Name[sr@Latn]=K-rotacija (GL)
+Name[sv]=Rotation (GL)
+Name[tg]=Тобхурӣ (GL)
+Name[tr]=Döndürme (GL)
+Name[uk]=ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ (GL)
+Name[vi]=Xoay (GL)
+
+[Desktop Action Setup]
+Exec=krotation.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=krotation.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=krotation.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KScience.desktop b/tdescreensaver/kdesavers/KScience.desktop
new file mode 100644
index 00000000..7f25ee25
--- /dev/null
+++ b/tdescreensaver/kdesavers/KScience.desktop
@@ -0,0 +1,254 @@
+[Desktop Entry]
+Exec=kscience.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=Science
+Name[af]=Wetenskap
+Name[bg]=Ðаука
+Name[br]=Skiantoù
+Name[ca]=Ciència
+Name[cs]=Věda
+Name[cy]=Gwyddoniaeth
+Name[da]=Videnskab
+Name[de]=Wissenschaft
+Name[el]=Επιστήμη
+Name[eo]=Scienco
+Name[es]=Ciencia
+Name[et]=Teadus
+Name[eu]=Zientzia
+Name[fa]=علم
+Name[fi]=Linssi
+Name[fo]=Náttúruvísind
+Name[fy]=Wittenskiplik
+Name[ga]=Eolaíocht
+Name[gl]=Ciéncia
+Name[he]=מדע
+Name[hi]=विजà¥à¤žà¤¾à¤¨
+Name[hu]=Tudomány
+Name[is]=Vísindi
+Name[it]=Scienza
+Name[ja]=サイエンス
+Name[ka]=მეცნიერებáƒ
+Name[lt]=Mokslas
+Name[lv]=ZinÄtne
+Name[mk]=Ðаука
+Name[ms]=Sains
+Name[mt]=Xjenza
+Name[nb]=Vitenskap
+Name[nds]=Wetenschap
+Name[ne]=बिजà¥à¤žà¤¾à¤¨
+Name[nl]=Wetenschappelijk
+Name[nn]=Vitskap
+Name[nso]=Mahlale
+Name[pa]=ਵਿਗਿਆਨ
+Name[pl]=Nauka
+Name[pt]=Ciência
+Name[pt_BR]=Ciência
+Name[ro]=Ştiinţă
+Name[ru]=Ðаука
+Name[sk]=Vedecký
+Name[sl]=Znanost
+Name[sr]=Ðаука
+Name[sr@Latn]=Nauka
+Name[sv]=Vetenskap
+Name[ta]=அறிவியலà¯
+Name[tg]=Илм
+Name[th]=วิทยาศาสตร์
+Name[tr]=Bilim
+Name[uk]=Ðаука
+Name[uz]=Fan
+Name[uz@cyrillic]=Фан
+Name[ven]=Vhutsila
+Name[vi]=Khoa há»c
+Name[xh]=Inzulu lwazi
+Name[zh_CN]=科学
+Name[zh_TW]=科學
+Name[zu]=Ubuchwepheshe bezesayensi
+
+[Desktop Action Setup]
+Exec=kscience.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kscience.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kscience.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KSlideshow.desktop b/tdescreensaver/kdesavers/KSlideshow.desktop
new file mode 100644
index 00000000..64e5c55e
--- /dev/null
+++ b/tdescreensaver/kdesavers/KSlideshow.desktop
@@ -0,0 +1,251 @@
+[Desktop Entry]
+Exec=kslideshow.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Banners & Pictures
+Name=Slide Show
+Name[af]=Skuif Vertoon
+Name[bg]=Слайдшоу
+Name[br]=Diskouezadur skeudennoù
+Name[ca]=Diapositives
+Name[cs]=Promítání
+Name[cy]=Sioe Tryloywder
+Name[da]=Diasshow
+Name[de]=Dia-Schau
+Name[el]=ΠÏοβολή σλάιντς
+Name[eo]=Lumbildoj
+Name[es]=Presentación
+Name[et]=Slaidishow
+Name[eu]=Diapositiba erakusketa
+Name[fa]=نمایش اسلاید
+Name[fi]=Diaesitys
+Name[fo]=Framløga
+Name[fr]=Diaporama
+Name[fy]=Diafoarstelling
+Name[ga]=Taispeántas Sleamhnán
+Name[gl]=Apresentación
+Name[he]=מצגת שקופיות
+Name[hi]=à¤à¤²à¤• तमाशा
+Name[hu]=Diavetítés
+Name[is]=Skyggnusýning
+Name[it]=Immagini in sequenza
+Name[ja]=スライドショー
+Name[ka]=სლáƒáƒ˜áƒ“ების ჩვენებáƒ
+Name[lt]=Skaidrių šou
+Name[lv]=SlÄ«drÄde
+Name[mk]=Слајд-шоу
+Name[ms]=Tayangan Slaid
+Name[nb]=Lysbildeshow
+Name[nds]=Diaschau
+Name[ne]=सà¥à¤²à¤¾à¤‡à¤¡ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Diavoorstelling
+Name[nn]=Framvising
+Name[pl]=Sekwencja slajdów
+Name[pt]=Slides
+Name[pt_BR]=Show de slides
+Name[ro]=Succesiune de imagini
+Name[ru]=Слайд-шоу
+Name[sl]=Diapozitivi
+Name[sr]=Слајд шоу
+Name[sr@Latn]=Slajd Å¡ou
+Name[sv]=Bildspel
+Name[ta]=ஸà¯à®²à¯ˆà®Ÿà¯ காடà¯à®šà®¿
+Name[tg]=Ðамоиши Ñлайд
+Name[th]=à¹à¸ªà¸”งภาพนิ่ง
+Name[tr]=Saydam Gösterisi
+Name[uk]=Слайди
+Name[uz]=Slayd shou
+Name[uz@cyrillic]=Слайд шоу
+Name[ven]=Musumbedzo wo peamaho
+Name[vi]=Trình bày
+Name[xh]=Isiboniso esihamba thambileyo
+Name[zh_CN]=å¹»ç¯æ’­æ”¾
+Name[zh_TW]=幻燈片放映
+Name[zu]=Isiboniso esihamba ngokuthambile
+
+[Desktop Action Setup]
+Exec=kslideshow.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kslideshow.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kslideshow.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kdesavers/KSolarWinds.desktop b/tdescreensaver/kdesavers/KSolarWinds.desktop
new file mode 100644
index 00000000..bf4484c0
--- /dev/null
+++ b/tdescreensaver/kdesavers/KSolarWinds.desktop
@@ -0,0 +1,243 @@
+[Desktop Entry]
+Exec=ksolarwinds.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Solar Winds (GL)
+Name[bg]=Слънчев вÑÑ‚ÑŠÑ€
+Name[br]=Avelioù an Heol (GL)
+Name[ca]=Vent solar (GL)
+Name[cy]=Gwyntoedd o'r Haul (GL)
+Name[da]=Solvinde (GL)
+Name[de]=Sonnenwind
+Name[el]=ΑστÏικοί Άνεμοι (GL)
+Name[es]=Viento solar (GL)
+Name[et]=Päikesetuul (GL)
+Name[eu]=Eguzki-haizeak (GL)
+Name[fa]=پیچشهای خورشیدی (GL)
+Name[fi]=Aurinkotuuli (GL)
+Name[fo]=Sólvind (GL)
+Name[fr]=Vents solaires (GL)
+Name[fy]=Sinnewyn (GL)
+Name[gl]=Vento solar (GL)
+Name[he]=רוחות סול×ריות (GL)
+Name[hi]=सौर तूफ़ान (जीà¤à¤²)
+Name[hu]=Napszél (OpenGL)
+Name[is]=Sólvindar (GL)
+Name[it]=Venti Solari (GL)
+Name[ja]=太陽風 (GL)
+Name[ka]=მზის ქáƒáƒ áƒ˜ (GL)
+Name[mk]=Соларни ветрови (GL)
+Name[mt]=Irjieħ solari (GL)
+Name[nb]=Solvind (GL)
+Name[nds]=Sünnwind
+Name[ne]=सौरà¥à¤¯ हावा (GL)
+Name[nl]=Zonnewind (GL)
+Name[nn]=Solvind (GL)
+Name[pl]=Wiatry słoneczne (GL)
+Name[pt]=Ventos Solares (GL)
+Name[pt_BR]=Ventos Solares (GL)
+Name[ro]=Vînturi solare (GL)
+Name[ru]=Солнечный ветер (GL)
+Name[sl]=Solarni vetrovi (GL)
+Name[sr]=Соларни ветрови (GL)
+Name[sr@Latn]=Solarni vetrovi (GL)
+Name[sv]=Solvindar (GL)
+Name[ta]=சூரிய காறà¯à®±à¯à®•à¯à®•à®³à¯(GL)
+Name[tg]=Шамоли офтобӣ (GL)
+Name[th]=สายลมสุริยะ (GL)
+Name[tr]=Güneş Rüzgarı (GL)
+Name[uk]=СонÑчні вітри (GL)
+Name[uz]=Quyosh shamollari (GL)
+Name[uz@cyrillic]=Қуёш шамоллари (GL)
+Name[ven]=Mimuya yau solar (GL)
+Name[vi]=Gió Mặt Trá»i (GL)
+Name[zh_CN]=太阳风(GL)
+Name[zu]=Imimoya Yelanga (GL)
+
+[Desktop Action Setup]
+Exec=ksolarwinds.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=ksolarwinds.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=ksolarwinds.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KVm.desktop b/tdescreensaver/kdesavers/KVm.desktop
new file mode 100644
index 00000000..c359d28a
--- /dev/null
+++ b/tdescreensaver/kdesavers/KVm.desktop
@@ -0,0 +1,253 @@
+[Desktop Entry]
+Exec=kvm.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Gadgets & Simulations
+Name=Virtual Machine
+Name[af]=Virtuele Masjien
+Name[bg]=Виртуална машина
+Name[br]=Ardivink galloudel
+Name[ca]=Màquina virtual
+Name[cs]=Virtuální stroj
+Name[cy]=Peiriant Rhith
+Name[da]=Virtuel maskine
+Name[de]=Virtuelle Maschine
+Name[el]=Εικονική μηχανή
+Name[eo]=Virtuala MaÅino
+Name[es]=Máquina virtual
+Name[et]=Virtuaalne Masin
+Name[eu]=Makina birtuala
+Name[fa]=ماشین مجازی
+Name[fi]=Virtuaalikone
+Name[fo]=Tyknismaskina
+Name[fr]=Machine virtuelle
+Name[fy]=Firtuele masine
+Name[ga]=Meaisín Fíorúil
+Name[gl]=Máquina virtual
+Name[he]=מכונה וירטו×לית
+Name[hi]=आभासी यंतà¥à¤°
+Name[hu]=Virtuális gép
+Name[is]=Sýndarvél
+Name[it]=Macchina virtuale
+Name[ja]=仮想マシン
+Name[ka]=ვირტუáƒáƒšáƒ£áƒ áƒ˜ მáƒáƒœáƒ¥áƒáƒœáƒ
+Name[lt]=Virtuali Mašina
+Name[lv]=VirtuÄlÄ maÅ¡Ä«na
+Name[mk]=Виртуелна машина
+Name[ms]=Mesin Maya
+Name[mt]=Magna Virtwali
+Name[nb]=Virtuell maskin
+Name[nds]=Virtuell Maschien
+Name[ne]=अवासà¥à¤¤à¤µà¤¿à¤• मेशिन
+Name[nl]=Virtuele machine
+Name[nn]=Virtuell maskin
+Name[nso]=Motshene o Maatla
+Name[pl]=Maszyna wirtualna
+Name[pt]=Máquina Virtual
+Name[pt_BR]=Máquina virtual
+Name[ro]=Maşină virtuală
+Name[ru]=Ð’Ð¸Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð°Ñ Ð¼Ð°ÑˆÐ¸Ð½Ð°
+Name[sk]=Virtuálny stroj
+Name[sl]=Navidezni stroj
+Name[sr]=Виртуелна машина
+Name[sr@Latn]=Virtuelna mašina
+Name[sv]=Virtuell maskin
+Name[ta]=கறà¯à®ªà®©à¯ˆ வாகனமà¯
+Name[tg]=Мошини уфуқӣ
+Name[th]=เครื่องจำลอง
+Name[tr]=Sanal Makine
+Name[uk]=Віртуальна машина
+Name[uz]=Virtual kompyuter
+Name[uz@cyrillic]=Виртуал компьютер
+Name[ven]=Mutshini usa vhonali
+Name[vi]=Máy Ảo
+Name[xh]=Umatshini onesiqhamo
+Name[zh_CN]=虚拟机
+Name[zh_TW]=虛擬機器
+Name[zu]=Ushini Obonakalayo
+
+[Desktop Action Setup]
+Exec=kvm.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kvm.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kvm.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/KWave.desktop b/tdescreensaver/kdesavers/KWave.desktop
new file mode 100644
index 00000000..85c5ec05
--- /dev/null
+++ b/tdescreensaver/kdesavers/KWave.desktop
@@ -0,0 +1,251 @@
+[Desktop Entry]
+Exec=kwave.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Bitmap Flag (GL)
+Name[af]=Biskaart Vlag (Gl)
+Name[bg]=РазвÑващ Ñе флаг
+Name[ca]=Bandera de mapa de bits (GL)
+Name[cs]=Vlajka (GL)
+Name[cy]=Baner Didfap (GL)
+Name[da]=Bitmapflag (GL)
+Name[de]=Bildflagge
+Name[el]=Σημαία bitmap (GL)
+Name[eo]=Bildflago
+Name[es]=Bandera de mapa de bits (GL)
+Name[et]=Pildilipp (GL)
+Name[eu]=Bitmap Bandera (GL)
+Name[fa]=پرچم نگاشت بیت(GL)
+Name[fi]=Bittikarttalippu (GL)
+Name[fo]=Flagg (GL)
+Name[fr]=Drapeau (GL)
+Name[fy]=Bitmap flagge (GL)
+Name[gl]=Bandeira de mapa de bits (GL)
+Name[he]=דגל (GL)
+Name[hi]=à¤à¤‚डियाठ(जीà¤à¤²)
+Name[hu]=Zászló (OpenGL)
+Name[is]=Myndafáni (GL)
+Name[it]=Bandiera bitmap (GL)
+Name[ja]=ビットマップフラッグ (GL)
+Name[ka]=რáƒáƒ¡áƒ¢áƒ áƒ£áƒšáƒ˜ áƒáƒšáƒáƒ›áƒ˜ (GL)
+Name[lt]=Taškinės grafikos (bitmap) vėliava (GL)
+Name[lv]=Bitmapa Karogs (GL)
+Name[mk]=Битмапирано знаме (GL)
+Name[mt]=Bandiera bi stampa (GL)
+Name[nb]=Bittmap-flagg (GL)
+Name[nds]=Weihen Flagg (GL)
+Name[ne]=बिटमà¥à¤¯à¤¾à¤ª à¤à¤£à¥à¤¡à¤¾(GL)
+Name[nl]=Bitmap vlag (GL)
+Name[nn]=Flagg (GL)
+Name[pl]=Bitmapowa flaga (GL)
+Name[pt]=Imagem Ondulante (GL)
+Name[pt_BR]=Bitmap (GL)
+Name[ro]=Steag imagine (GL)
+Name[ru]=РаÑтровый флаг (GL)
+Name[sk]=alajka (GL)
+Name[sl]=Bitna zastava (GL)
+Name[sr]=Битмапирана заÑтава (GL)
+Name[sr@Latn]=Bitmapirana zastava (GL)
+Name[sv]=Bitmappsflagga (GL)
+Name[ta]=பிடà¯à®µà®°à¯ˆà®ªà¯à®ªà®Ÿ கà¯à®±à®¿
+Name[tg]=Байрақи раÑÑ‚Ñ€Ó£ (GL)
+Name[th]=ธงภาพบิตà¹à¸¡à¸ž (GL)
+Name[tr]=Bayrak (GL)
+Name[uk]=РаÑтровий прапор (GL)
+Name[uz]=Bayroq (GL)
+Name[uz@cyrillic]=Байроқ (GL)
+Name[ven]=Fulaga ya Bitmap (GL)
+Name[vi]=CỠMảng ảnh (GL)
+Name[xh]=Indwe ye Bitmap (GL)
+Name[zh_CN]=ä½å›¾æ——帜(GL)
+Name[zh_TW]=點陣圖旗幟 (GL)
+Name[zu]=Bitmap Flap (GL)
+
+
+[Desktop Action Setup]
+Exec=kwave.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kwave.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kwave.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kdesavers/Makefile.am b/tdescreensaver/kdesavers/Makefile.am
new file mode 100644
index 00000000..80f52098
--- /dev/null
+++ b/tdescreensaver/kdesavers/Makefile.am
@@ -0,0 +1,109 @@
+# $Id$
+# Makefile.am for tdescreensaver.
+#
+
+SUBDIRS = . data
+
+AM_CPPFLAGS = -UQT_NO_ASCII_CAST
+
+INCLUDES = $(all_includes) $(GLINC) $(LIBART_CFLAGS)
+AM_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_KIO) -ltdetexteditor
+AM_LDADD = $(LIB_TDEUI) -ltdescreensaver
+
+if COMPILE_X11_KSAVERS
+X11_KSAVERS = kscience.kss
+X11_DESKTOP_FILES = KScience.desktop
+endif
+
+if COMPILE_LIBART_KSAVERS
+LIBART_KSAVERS = kclock.kss
+LIBART_DESKTOP_FILES = KClock.desktop
+endif
+LIBART_KSAVERS_LDADD = $(AM_LDADD) $(LIBART_LIBS)
+
+if COMPILE_ARTS_GL_KSAVERS
+ARTS_GL_KSAVERS = kfiresaver.kss
+ARTS_GL_DESKTOP_FILES = KFiresaver.desktop
+endif
+
+if COMPILE_GL_KSAVERS
+GL_KSAVERS=kfountain.kss kwave.kss kgravity.kss kflux.kss keuphoria.kss ksolarwinds.kss krotation.kss kpendulum.kss
+GL_DESKTOP_FILES=KGravity.desktop KWave.desktop KFountain.desktop KFlux.desktop KEuphoria.desktop KSolarWinds.desktop KRotation.desktop KPendulum.desktop
+endif
+GL_KSAVERS_LDADD = $(AM_LDADD) $(GLLIB)
+
+bin_PROGRAMS = kbanner.kss kpolygon.kss kslideshow.kss \
+ klines.kss klorenz.kss kblob.kss kvm.kss \
+ $(X11_KSAVERS) $(LIBART_KSAVERS) $(ARTS_GL_KSAVERS) $(GL_KSAVERS)
+
+# The "normal" screensavers
+kbanner_kss_SOURCES = banner.cpp
+kbanner_kss_LDADD = $(AM_LDADD)
+kpolygon_kss_SOURCES = polygon.cpp
+kpolygon_kss_LDADD = $(AM_LDADD)
+kslideshow_kss_SOURCES = slideshow.cpp slideshowcfg.ui
+kslideshow_kss_LDADD = $(LIB_KFILE) $(AM_LDADD) $(LIB_KSYCOCA) -lm
+klines_kss_SOURCES = lines.cpp
+klines_kss_LDADD = $(AM_LDADD)
+klorenz_kss_SOURCES = lorenz.cpp
+klorenz_kss_LDADD = $(AM_LDADD) -lm
+kblob_kss_SOURCES = blob.cpp
+kblob_kss_LDADD = $(AM_LDADD) -lm
+kvm_kss_SOURCES = kvm.cpp vm.c vm_random.c
+kvm_kss_LDADD = $(AM_LDADD)
+kscience_kss_SOURCES = science.cpp
+kscience_kss_LDADD = $(AM_LDADD) -lm
+
+# The GL screensavers
+kfountain_kss_SOURCES = fountain.cpp fountaincfg.ui
+kfountain_kss_LDADD = $(GL_KSAVERS_LDADD) -lm
+kwave_kss_SOURCES = wave.cpp wavecfg.ui
+kwave_kss_LDADD = $(GL_KSAVERS_LDADD) -lm
+kgravity_kss_SOURCES = gravity.cpp gravitycfg.ui
+kgravity_kss_LDADD = $(GL_KSAVERS_LDADD) -lm
+kflux_kss_SOURCES = Flux.cpp
+kflux_kss_LDADD = $(GL_KSAVERS_LDADD) -lm
+keuphoria_kss_SOURCES = Euphoria.cpp
+keuphoria_kss_LDADD = $(GL_KSAVERS_LDADD) -lm
+ksolarwinds_kss_SOURCES = SolarWinds.cpp
+ksolarwinds_kss_LDADD = $(GL_KSAVERS_LDADD) -lm
+krotation_kss_SOURCES = rotation.cpp rotationcfg.ui sspreviewarea.cpp rkodesolver.cpp vec3.cpp
+krotation_kss_LDADD = $(GL_KSAVERS_LDADD) -lm
+kpendulum_kss_SOURCES = pendulum.cpp pendulumcfg.ui sspreviewarea.cpp rkodesolver.cpp
+kpendulum_kss_LDADD = $(GL_KSAVERS_LDADD) -lm
+kfiresaver_kss_SOURCES = firesaversetup.ui firesaverparticle.cpp firesaverwriter.cpp firesaver.cpp
+kfiresaver_kss_LDADD = $(GL_KSAVERS_LDADD) -lartskde -lm
+
+# The LIBART screensavers
+kclock_kss_SOURCES = kclock.cpp
+kclock_kss_LDADD = $(LIBART_KSAVERS_LDADD)
+
+METASOURCES = AUTO
+
+noinst_HEADERS = banner.h polygon.h slideshow.h lines.h\
+ lorenz.h blob.h kvm.h vm.h vm_random.h science.h \
+ fountain.h wave.h gravity.h kclock.h\
+ rotation.h pendulum.h sspreviewarea.h rkodesolver.h vec3.h\
+ firesaver.h firesaverparticle.h firesaversetup.ui.h\
+ firesaverwriter.h
+
+########## Meta objects ##########
+
+pics_DATA = kscience.png particle.png image.png
+picsdir = $(kde_datadir)/tdescreensaver
+
+if COMPILE_LIBART_KSAVERS
+desktop_DATA = KBanner.desktop KPolygon.desktop \
+ KSlideshow.desktop KLines-saver.desktop KLorenz.desktop \
+ KBlob.desktop KVm.desktop \
+ $(X11_DESKTOP_FILES) $(GL_DESKTOP_FILES) $(LIBART_DESKTOP_FILES) $(ARTS_GL_DESKTOP_FILES)
+else
+desktop_DATA = KBanner.desktop KPolygon.desktop \
+ KSlideshow.desktop KLines-saver.desktop KLorenz.desktop \
+ KBlob.desktop KVm.desktop \
+ KClock.desktop $(X11_DESKTOP_FILES) $(GL_DESKTOP_FILES) $(LIBART_DESKTOP_FILES) $(ARTS_GL_DESKTOP_FILES)
+endif
+
+desktopdir = $(kde_appsdir)/System/ScreenSavers
+
+EXTRA_DIST = $(desktop_DATA) vm.xpm vm.xbm kscience.png particle.png image.png
diff --git a/tdescreensaver/kdesavers/README b/tdescreensaver/kdesavers/README
new file mode 100644
index 00000000..f735323a
--- /dev/null
+++ b/tdescreensaver/kdesavers/README
@@ -0,0 +1,3 @@
+These are native KDE screensavers using the libtdescreensaver library.
+If you are writing a screensaver for KDE use these as references rather
+than the ported savers.
diff --git a/tdescreensaver/kdesavers/SolarWinds.cpp b/tdescreensaver/kdesavers/SolarWinds.cpp
new file mode 100644
index 00000000..c55fe531
--- /dev/null
+++ b/tdescreensaver/kdesavers/SolarWinds.cpp
@@ -0,0 +1,778 @@
+//============================================================================
+//
+// Terence Welsh Screensaver - Solar Winds
+// http://www.reallyslick.com/
+//
+// Ported to KDE by Karl Robillard
+//
+/*
+ * Copyright (C) 2002 Terence M. Welsh
+ *
+ * Solar Winds is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Solar Winds is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+//============================================================================
+
+
+#include <stdio.h>
+#include <math.h>
+#include <stdlib.h>
+#include <time.h>
+#include <tqtimer.h>
+#include "SolarWinds.h"
+#include "SolarWinds.moc"
+
+
+#define NUMCONSTS 9
+#define PIx2 6.28318530718f
+#define DEG2RAD 0.0174532925f
+
+
+// Useful random number macro
+// Don't forget to initialize with srand()
+
+// This is the original myRandf() which does not work on Linux.
+// I grabed the inline version from Flux.cpp.
+//#define myRandf(x) (float(rand()) * (x * 0.0000305185095f))
+
+inline float myRandf(float x){
+ return(float(rand() * x) / float(RAND_MAX));
+}
+
+
+// Context pointer to allow many instances.
+static SWindsWidget* _ec = 0;
+
+
+struct Emitter
+{
+ float x, y, z;
+};
+
+
+struct Particle
+{
+ float x, y, z;
+ float r, g, b;
+};
+
+
+class wind
+{
+public:
+
+ wind();
+ ~wind();
+ void update();
+
+ Emitter* emitters;
+ Particle* particles;
+ int** linelist;
+ int* lastparticle;
+ int whichparticle;
+ int partCount;
+ int emitCount;
+ bool useLines;
+ float c[NUMCONSTS];
+ float ct[NUMCONSTS];
+ float cv[NUMCONSTS];
+};
+
+
+wind::wind()
+{
+ int i;
+
+ partCount = _ec->dParticles;
+ emitCount = _ec->dEmitters;
+ useLines = (_ec->dGeometry == 2);
+
+ emitters = new Emitter[emitCount];
+ for(i=0; i<emitCount; i++)
+ {
+ emitters[i].x = myRandf(60.0f) - 30.0f;
+ emitters[i].y = myRandf(60.0f) - 30.0f;
+ emitters[i].z = myRandf(30.0f) - 15.0f;
+ }
+
+ particles = new Particle[partCount];
+ for(i=0; i<partCount; i++)
+ {
+ particles[i].x = 0.0f;
+ particles[i].y = 0.0f;
+ particles[i].z = 100.0f; // start particles behind viewer
+ }
+
+ whichparticle = 0;
+
+ if( useLines )
+ {
+ linelist = new int*[partCount];
+ for(i=0; i<partCount; i++)
+ {
+ linelist[i] = new int[2];
+ linelist[i][0] = -1;
+ linelist[i][1] = -1;
+ }
+ lastparticle = new int[emitCount];
+ for(i=0; i<emitCount; i++)
+ lastparticle[i] = i;
+ }
+
+ float windspeed = (float) (_ec->dWindspeed);
+ for(i=0; i<NUMCONSTS; i++)
+ {
+ ct[i] = myRandf(PIx2);
+ cv[i] = myRandf(0.00005f * windspeed * windspeed)
+ + 0.00001f * windspeed * windspeed;
+ //printf( "KR ct %g cv %g\n", ct[i], cv[i] );
+ }
+}
+
+
+wind::~wind()
+{
+ delete[] emitters;
+ delete[] particles;
+
+ if( useLines )
+ {
+ int i;
+ for(i=0; i<partCount; i++)
+ delete[] linelist[i];
+ delete[] linelist;
+ delete[] lastparticle;
+ }
+}
+
+
+void wind::update()
+{
+ int i;
+ float x, y, z;
+ float temp;
+ float particleSpeed = (float) _ec->dParticlespeed;
+
+ float evel = float(_ec->dEmitterspeed) * 0.01f;
+ float pvel = particleSpeed * 0.01f;
+ float pointsize = 0.04f * _ec->dSize;
+ float linesize = 0.005f * _ec->dSize;
+
+ // update constants
+ for(i=0; i<NUMCONSTS; i++)
+ {
+ ct[i] += cv[i];
+ if(ct[i] > PIx2)
+ ct[i] -= PIx2;
+ c[i] = cos(ct[i]);
+ }
+
+ // calculate emissions
+ for(i=0; i<emitCount; i++)
+ {
+ emitters[i].z += evel; // emitter moves toward viewer
+ if(emitters[i].z > 15.0f)
+ {
+ // reset emitter
+ emitters[i].x = myRandf(60.0f) - 30.0f;
+ emitters[i].y = myRandf(60.0f) - 30.0f;
+ emitters[i].z = -15.0f;
+ }
+
+ particles[whichparticle].x = emitters[i].x;
+ particles[whichparticle].y = emitters[i].y;
+ particles[whichparticle].z = emitters[i].z;
+
+ if( useLines )
+ {
+ // link particles to form lines
+ if(linelist[whichparticle][0] >= 0)
+ linelist[linelist[whichparticle][0]][1] = -1;
+ linelist[whichparticle][0] = -1;
+ if(emitters[i].z == -15.0f)
+ linelist[whichparticle][1] = -1;
+ else
+ linelist[whichparticle][1] = lastparticle[i];
+ linelist[lastparticle[i]][0] = whichparticle;
+ lastparticle[i] = whichparticle;
+ }
+
+ whichparticle++;
+ if(whichparticle >= partCount)
+ whichparticle = 0;
+ }
+
+ // calculate particle positions and colors
+ // first modify constants that affect colors
+ c[6] *= 9.0f / particleSpeed;
+ c[7] *= 9.0f / particleSpeed;
+ c[8] *= 9.0f / particleSpeed;
+ // then update each particle
+ for(i=0; i<partCount; i++)
+ {
+ Particle* part = particles + i;
+
+ // store old positions
+ x = part->x;
+ y = part->y;
+ z = part->z;
+
+ // make new positins
+ part->x = x + (c[0] * y + c[1] * z) * pvel;
+ part->y = y + (c[2] * z + c[3] * x) * pvel;
+ part->z = z + (c[4] * x + c[5] * y) * pvel;
+
+ // calculate colors
+ part->r = fabs((part->x - x) * c[6]);
+ part->g = fabs((part->y - y) * c[7]);
+ part->b = fabs((part->z - z) * c[8]);
+
+ // clamp colors
+ if( part->r > 1.0f )
+ part->r = 1.0f;
+ if( part->g > 1.0f )
+ part->g = 1.0f;
+ if( part->b > 1.0f )
+ part->b = 1.0f;
+ }
+
+ // draw particles
+ switch(_ec->dGeometry)
+ {
+ case 0: // lights
+ for(i=0; i<partCount; i++)
+ {
+ glColor3fv(&particles[i].r);
+ glPushMatrix();
+ glTranslatef(particles[i].x, particles[i].y, particles[i].z);
+ glCallList(1);
+ glPopMatrix();
+#if 0
+ if( i == 0 )
+ printf( "KR %d %g %g %g\n", i,
+ particles[i].x, particles[i].y, particles[i].z);
+#endif
+ }
+ break;
+
+ case 1: // points
+ for(i=0; i<partCount; i++)
+ {
+ temp = particles[i].z + 40.0f;
+ if(temp < 0.01f)
+ temp = 0.01f;
+ glPointSize(pointsize * temp);
+
+ glBegin(GL_POINTS);
+ glColor3fv(&particles[i].r);
+ glVertex3fv(&particles[i].x);
+ glEnd();
+ }
+ break;
+
+ case 2: // lines
+ for(i=0; i<partCount; i++)
+ {
+ temp = particles[i].z + 40.0f;
+ if(temp < 0.01f)
+ temp = 0.01f;
+ glLineWidth(linesize * temp);
+
+ glBegin(GL_LINES);
+ if(linelist[i][1] >= 0)
+ {
+ glColor3fv(&particles[i].r);
+ if(linelist[i][0] == -1)
+ glColor3f(0.0f, 0.0f, 0.0f);
+ glVertex3fv(&particles[i].x);
+
+ glColor3fv(&particles[linelist[i][1]].r);
+ if(linelist[linelist[i][1]][1] == -1)
+ glColor3f(0.0f, 0.0f, 0.0f);
+ glVertex3fv(&particles[linelist[i][1]].x);
+ }
+ glEnd();
+ }
+ }
+}
+
+
+//----------------------------------------------------------------------------
+
+
+SWindsWidget::SWindsWidget( TQWidget* parent, const char* name )
+ : TQGLWidget(parent, name), _winds(0)
+{
+ setDefaults( Regular );
+
+ _frameTime = 1000 / 60;
+ _timer = new TQTimer( this );
+ connect( _timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(nextFrame()) );
+}
+
+
+SWindsWidget::~SWindsWidget()
+{
+ // Free memory
+ delete[] _winds;
+}
+
+
+void SWindsWidget::paintGL()
+{
+ glLoadIdentity();
+
+ if( ! dBlur )
+ {
+ glClear(GL_COLOR_BUFFER_BIT);
+ }
+ else
+ {
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glColor4f(0.0f, 0.0f, 0.0f, 0.5f - (float(dBlur) * 0.0049f));
+
+ glBegin(GL_QUADS);
+ glVertex3f(-40.0f, -17.0f, 0.0f);
+ glVertex3f(40.0f, -17.0f, 0.0f);
+ glVertex3f(40.0f, 17.0f, 0.0f);
+ glVertex3f(-40.0f, 17.0f, 0.0f);
+ glEnd();
+
+ if(!dGeometry)
+ glBlendFunc(GL_ONE, GL_ONE);
+ else
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE); // Necessary for point and line smoothing (I don't know why)
+ // Maybe it's just my video card...
+ }
+
+ // You should need to draw twice if using blur, once to each buffer.
+ // But wglSwapLayerBuffers appears to copy the back to the
+ // front instead of just switching the pointers to them. It turns
+ // out that both NVidia and 3dfx prefer to use PFD_SWAP_COPY instead
+ // of PFD_SWAP_EXCHANGE in the PIXELFORMATDESCRIPTOR. I don't know why...
+ // So this may not work right on other platforms or all video cards.
+
+ // Update surfaces
+ if( _winds )
+ {
+ _ec = this;
+ int i;
+ for(i=0; i<dWinds; i++)
+ _winds[i].update();
+ }
+
+ glFlush();
+}
+
+
+void SWindsWidget::resizeGL( int w, int h )
+{
+ glViewport(0, 0, w, h );
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(90.0, (float) w / (float) h, 1.0, 10000);
+ glTranslatef(0.0, 0.0, -15.0);
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+}
+
+
+// Window initialization
+void SWindsWidget::initializeGL()
+{
+ updateParameters();
+ _timer->start( _frameTime, true );
+}
+
+
+#ifdef UNIT_TEST
+void SWindsWidget::keyPressEvent( TQKeyEvent* e )
+{
+ if( e->key() == TQt::Key_0 ) { setDefaults( 0 ); updateParameters(); }
+ if( e->key() == TQt::Key_1 ) { setDefaults( 1 ); updateParameters(); }
+ if( e->key() == TQt::Key_2 ) { setDefaults( 2 ); updateParameters(); }
+ if( e->key() == TQt::Key_3 ) { setDefaults( 3 ); updateParameters(); }
+ if( e->key() == TQt::Key_4 ) { setDefaults( 4 ); updateParameters(); }
+ if( e->key() == TQt::Key_5 ) { setDefaults( 5 ); updateParameters(); }
+}
+#endif
+
+
+void SWindsWidget::nextFrame()
+{
+ updateGL();
+ _timer->start( _frameTime, true );
+}
+
+
+void SWindsWidget::updateParameters()
+{
+ int i, j;
+ float x, y, temp;
+
+ srand((unsigned)time(NULL));
+ rand(); rand(); rand(); rand(); rand();
+
+ glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ if(!dGeometry)
+ glBlendFunc(GL_ONE, GL_ONE);
+ else
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE); // Necessary for point and line smoothing (I don't know why)
+ glEnable(GL_BLEND);
+
+ if( ! dGeometry )
+ {
+ // Init lights
+ for(i=0; i<LIGHTSIZE; i++)
+ {
+ for(j=0; j<LIGHTSIZE; j++)
+ {
+ x = float(i - LIGHTSIZE / 2) / float(LIGHTSIZE / 2);
+ y = float(j - LIGHTSIZE / 2) / float(LIGHTSIZE / 2);
+ temp = 1.0f - float(sqrt((x * x) + (y * y)));
+ if(temp > 1.0f)
+ temp = 1.0f;
+ if(temp < 0.0f)
+ temp = 0.0f;
+ lightTexture[i][j] = (unsigned char) (255.0f * temp);
+ }
+ }
+
+ glEnable(GL_TEXTURE_2D);
+ glBindTexture(GL_TEXTURE_2D, 1);
+ glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexImage2D(GL_TEXTURE_2D, 0, 1, LIGHTSIZE, LIGHTSIZE, 0,
+ GL_LUMINANCE, GL_UNSIGNED_BYTE, lightTexture);
+
+ temp = 0.02f * dSize;
+ glNewList(1, GL_COMPILE);
+ glBindTexture(GL_TEXTURE_2D, 1);
+ glBegin(GL_TRIANGLE_STRIP);
+ glTexCoord2f(0.0f, 0.0f);
+ glVertex3f(-temp, -temp, 0.0f);
+ glTexCoord2f(1.0f, 0.0f);
+ glVertex3f(temp, -temp, 0.0f);
+ glTexCoord2f(0.0f, 1.0f);
+ glVertex3f(-temp, temp, 0.0f);
+ glTexCoord2f(1.0f, 1.0f);
+ glVertex3f(temp, temp, 0.0f);
+ glEnd();
+ glEndList();
+ }
+ else if(dGeometry == 1)
+ {
+ // init point smoothing
+ glEnable(GL_POINT_SMOOTH);
+ glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
+
+ glDisable(GL_TEXTURE_2D);
+ }
+ else if(dGeometry == 2)
+ {
+ // init line smoothing
+ glEnable(GL_LINE_SMOOTH);
+ glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
+
+ glDisable(GL_TEXTURE_2D);
+ }
+
+
+ // Initialize surfaces
+ _ec = this;
+ delete[] _winds;
+ _winds = new wind[dWinds];
+}
+
+
+/**
+ May be called at any time - makes no OpenGL calls.
+*/
+void SWindsWidget::setDefaults(int which)
+{
+ switch(which)
+ {
+ case CosmicStrings:
+ dWinds = 1;
+ dEmitters = 50;
+ dParticles = 3000;
+ dGeometry = 2;
+ dSize = 20;
+ dWindspeed = 10;
+ dEmitterspeed = 10;
+ dParticlespeed = 10;
+ dBlur = 10;
+ break;
+
+ case ColdPricklies:
+ dWinds = 1;
+ dEmitters = 300;
+ dParticles = 3000;
+ dGeometry = 2;
+ dSize = 5;
+ dWindspeed = 20;
+ dEmitterspeed = 100;
+ dParticlespeed = 15;
+ dBlur = 70;
+ break;
+
+ case SpaceFur:
+ dWinds = 2;
+ dEmitters = 400;
+ dParticles = 1600;
+ dGeometry = 2;
+ dSize = 15;
+ dWindspeed = 20;
+ dEmitterspeed = 15;
+ dParticlespeed = 10;
+ dBlur = 0;
+ break;
+
+ case Jiggly:
+ dWinds = 1;
+ dEmitters = 40;
+ dParticles = 1200;
+ dGeometry = 1;
+ dSize = 20;
+ dWindspeed = 100;
+ dEmitterspeed = 20;
+ dParticlespeed = 4;
+ dBlur = 50;
+ break;
+
+ case Undertow:
+ dWinds = 1;
+ dEmitters = 400;
+ dParticles = 1200;
+ dGeometry = 0;
+ dSize = 40;
+ dWindspeed = 20;
+ dEmitterspeed = 1;
+ dParticlespeed = 100;
+ dBlur = 50;
+ break;
+
+ case Regular:
+ default:
+ dWinds = 1;
+ dEmitters = 30;
+ dParticles = 2000;
+ dGeometry = 0;
+ dSize = 50;
+ dWindspeed = 20;
+ dEmitterspeed = 15;
+ dParticlespeed = 10;
+ dBlur = 40;
+ break;
+ }
+}
+
+
+//----------------------------------------------------------------------------
+
+
+#ifndef UNIT_TEST
+#include <klocale.h>
+#include <kglobal.h>
+#include <kconfig.h>
+
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char* kss_applicationName = "ksolarwinds.kss";
+ KDE_EXPORT const char* kss_description = I18N_NOOP( "Solar Winds" );
+ KDE_EXPORT const char* kss_version = "1.0";
+
+ KDE_EXPORT KScreenSaver* kss_create( WId id )
+ {
+ return new KSWindsScreenSaver( id );
+ }
+
+ KDE_EXPORT TQDialog* kss_setup()
+ {
+ return new KSWindsSetup;
+ }
+}
+
+
+//----------------------------------------------------------------------------
+
+
+KSWindsScreenSaver::KSWindsScreenSaver( WId id ) : KScreenSaver( id )
+{
+ _flux = new SWindsWidget;
+
+ readSettings();
+
+ embed( _flux );
+ _flux->show();
+}
+
+
+KSWindsScreenSaver::~KSWindsScreenSaver()
+{
+}
+
+
+static int filterRandom( int n )
+{
+ if( (n < 0) || (n >= SWindsWidget::DefaultModes) )
+ {
+ srand((unsigned)time(NULL));
+ n = rand() % SWindsWidget::DefaultModes;
+ }
+ return n;
+}
+
+
+void KSWindsScreenSaver::readSettings()
+{
+ TDEConfig* config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ _mode = config->readNumEntry( "Mode", SWindsWidget::Regular );
+ _flux->setDefaults( filterRandom(_mode) );
+}
+
+
+/**
+ Any invalid mode will select one at random.
+*/
+void KSWindsScreenSaver::setMode( int id )
+{
+ _mode = id;
+ _flux->setDefaults( filterRandom(id) );
+ _flux->updateParameters();
+}
+
+
+//----------------------------------------------------------------------------
+
+
+#include <tqlayout.h>
+#include <tqlabel.h>
+#include <tqcombobox.h>
+#include <kmessagebox.h>
+
+
+static const char* defaultText[] =
+{
+ I18N_NOOP( "Regular" ),
+ I18N_NOOP( "Cosmic Strings" ),
+ I18N_NOOP( "Cold Pricklies" ),
+ I18N_NOOP( "Space Fur" ),
+ I18N_NOOP( "Jiggly" ),
+ I18N_NOOP( "Undertow" ),
+ I18N_NOOP( "(Random)" ),
+ 0
+};
+
+
+KSWindsSetup::KSWindsSetup( TQWidget* parent, const char* name )
+ : KDialogBase( parent, name, true, i18n( "Setup Solar Wind" ),
+ Ok|Cancel|Help, Ok, true )
+{
+ setButtonText( Help, i18n( "A&bout" ) );
+ TQWidget *main = makeMainWidget();
+
+ TQHBoxLayout* top = new TQHBoxLayout( main, 0, spacingHint() );
+
+ TQVBoxLayout* leftCol = new TQVBoxLayout;
+ top->addLayout( leftCol );
+
+ TQLabel* label = new TQLabel( i18n("Mode:"), main );
+ leftCol->addWidget( label );
+
+ modeW = new TQComboBox( main );
+ int i = 0;
+ while (defaultText[i])
+ modeW->insertItem( i18n(defaultText[i++]) );
+ leftCol->addWidget( modeW );
+
+ leftCol->addStretch();
+
+ // Preview
+ TQWidget* preview;
+ preview = new TQWidget( main );
+ preview->setFixedSize( 220, 165 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ _saver = new KSWindsScreenSaver( preview->winId() );
+ top->addWidget(preview);
+
+ // Now that we have _saver...
+ modeW->setCurrentItem( _saver->mode() ); // set before we connect
+ connect( modeW, TQT_SIGNAL(activated(int)), _saver, TQT_SLOT(setMode(int)) );
+}
+
+
+KSWindsSetup::~KSWindsSetup()
+{
+ delete _saver;
+}
+
+
+void KSWindsSetup::slotHelp()
+{
+ KMessageBox::about(this,
+ i18n("<h3>Solar Winds 1.0</h3>\n<p>Copyright (c) 2002 Terence M. Welsh<br>\n<a href=\"http://www.reallyslick.com/\">http://www.reallyslick.com/</a></p>\n\n<p>Ported to KDE by Karl Robillard</p>"),
+ TQString(), KMessageBox::AllowLink);
+}
+
+
+/**
+ Ok pressed - save settings and exit
+*/
+void KSWindsSetup::slotOk()
+{
+ TDEConfig* config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ TQString val;
+ val.setNum( modeW->currentItem() );
+ config->writeEntry("Mode", val );
+
+ config->sync();
+ accept();
+}
+#endif
+
+
+//----------------------------------------------------------------------------
+
+
+#ifdef UNIT_TEST
+// moc SolarWinds.h -o SolarWinds.moc
+// g++ -g -DUNIT_TEST SolarWinds.cpp -I/usr/lib/qt3/include -lqt -L/usr/lib/qt3/lib -lGLU -lGL
+
+#include <tqapplication.h>
+
+int main( int argc, char** argv )
+{
+ TQApplication app( argc, argv );
+
+ SWindsWidget w;
+ app.setMainWidget( &w );
+ w.show();
+
+ return app.exec();
+}
+#endif
+
+
+//EOF
diff --git a/tdescreensaver/kdesavers/SolarWinds.h b/tdescreensaver/kdesavers/SolarWinds.h
new file mode 100644
index 00000000..c8a7688a
--- /dev/null
+++ b/tdescreensaver/kdesavers/SolarWinds.h
@@ -0,0 +1,141 @@
+#ifndef __SOLARWINDS_H__
+#define __SOLARWINDS_H__
+//============================================================================
+//
+// Terence Welsh Screensaver - Solar Winds
+// http://www.reallyslick.com/
+//
+// Ported to KDE by Karl Robillard
+//
+//============================================================================
+
+
+#include <tqgl.h>
+
+
+#define LIGHTSIZE 64
+
+
+class wind;
+class TQTimer;
+
+class SWindsWidget : public TQGLWidget
+{
+ Q_OBJECT
+
+
+public:
+
+ enum eDefault
+ {
+ Regular,
+ CosmicStrings,
+ ColdPricklies,
+ SpaceFur,
+ Jiggly,
+ Undertow,
+
+ DefaultModes
+ };
+
+ SWindsWidget( TQWidget* parent=0, const char* name=0 );
+ ~SWindsWidget();
+
+ void updateParameters();
+ void setDefaults( int which );
+
+protected:
+
+ void paintGL();
+ void resizeGL( int w, int h );
+ void initializeGL();
+#ifdef UNIT_TEST
+ void keyPressEvent( TQKeyEvent* );
+#endif
+
+private slots:
+
+ void nextFrame();
+
+private:
+
+ wind* _winds;
+ unsigned char lightTexture[LIGHTSIZE][LIGHTSIZE];
+
+ int dWinds;
+ int dEmitters;
+ int dParticles;
+ int dGeometry;
+ float dSize;
+ int dParticlespeed;
+ int dEmitterspeed;
+ int dWindspeed;
+ int dBlur;
+
+
+ // Using TQTimer rather than timerEvent() to avoid getting locked out of
+ // the TQEvent loop on lower-end systems. Ian Geiser <geiseri@kde.org>
+ // says this is the way to go.
+ TQTimer* _timer;
+ int _frameTime;
+
+ friend class wind;
+};
+
+
+#ifndef UNIT_TEST
+#include <kdialogbase.h>
+#include <tdescreensaver.h>
+
+
+class KSWindsScreenSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+
+public:
+
+ KSWindsScreenSaver( WId id );
+ virtual ~KSWindsScreenSaver();
+
+ int mode() const { return _mode; }
+
+public slots:
+
+ void setMode( int );
+
+private:
+
+ void readSettings();
+
+ SWindsWidget* _flux;
+ int _mode;
+};
+
+
+class TQComboBox;
+
+class KSWindsSetup : public KDialogBase
+{
+ Q_OBJECT
+
+
+public:
+
+ KSWindsSetup( TQWidget* parent = 0, const char* name = 0 );
+ ~KSWindsSetup();
+
+private slots:
+
+ void slotHelp();
+ void slotOk();
+
+private:
+
+ TQComboBox* modeW;
+ KSWindsScreenSaver* _saver;
+};
+#endif
+
+
+#endif //__SOLARWINDS_H__
diff --git a/tdescreensaver/kdesavers/banner.cpp b/tdescreensaver/kdesavers/banner.cpp
new file mode 100644
index 00000000..5e907c25
--- /dev/null
+++ b/tdescreensaver/kdesavers/banner.cpp
@@ -0,0 +1,509 @@
+//-----------------------------------------------------------------------------
+//
+// kbanner - Basic screen saver for KDE
+//
+// Copyright (c) Martin R. Jones 1996
+//
+// layout management added 1998/04/19 by Mario Weilguni <mweilguni@kde.org>
+// clock function and color cycling added 2000/01/09 by Alexander Neundorf <alexander.neundorf@rz.tu-ilmenau.de>
+// 2001/03/04 Converted to use libtdescreensaver by Martin R. Jones
+// 2002/04/07 Added random vertical position of text,
+// changed horizontal step size to reduce jerkyness,
+// text will return to right margin immediately (and not be drawn half a screen width off-screen)
+// Harald H.-J. Bongartz <harald@bongartz.org>
+// 2003/09/06 Converted to use KDialogBase - Nadeem Hasan <nhasan@kde.org>
+#include <stdlib.h>
+
+#include <tqlabel.h>
+#include <tqlineedit.h>
+#include <tqcombobox.h>
+#include <tqcheckbox.h>
+#include <tqgroupbox.h>
+#include <tqslider.h>
+#include <tqlayout.h>
+#include <tqdatetime.h>
+#include <tqfontdatabase.h>
+#include <tqpainter.h>
+
+#include <kapplication.h>
+#include <krandomsequence.h>
+#include <kglobal.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kmessagebox.h>
+#include <kcolorbutton.h>
+#include <kfontcombo.h>
+
+#include "banner.h"
+#include "banner.moc"
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kbanner.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "KBanner" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new KBannerSaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new KBannerSetup();
+ }
+}
+
+//-----------------------------------------------------------------------------
+
+KBannerSetup::KBannerSetup( TQWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n( "Setup Banner Screen Saver" ),
+ Ok|Cancel|Help, Ok, true ), saver( 0 ), ed(0), speed( 50 )
+{
+ setButtonText( Help, i18n( "A&bout" ) );
+ readSettings();
+
+ TQWidget *main = makeMainWidget();
+
+ TQLabel *label;
+
+ TQVBoxLayout *tl = new TQVBoxLayout(main, 0, spacingHint());
+ TQHBoxLayout *tl1 = new TQHBoxLayout( 0, 0, spacingHint() );
+ tl->addLayout(tl1);
+ TQVBoxLayout *tl11 = new TQVBoxLayout( 0, 0, spacingHint() );
+ tl1->addLayout(tl11);
+
+ TQGroupBox *group = new TQGroupBox( 0,Qt::Vertical, i18n("Font"), main );
+ TQGridLayout *gl = new TQGridLayout(group->layout(), 6, 2, spacingHint() );
+
+ label = new TQLabel( i18n("Family:"), group );
+ gl->addWidget(label, 1, 0);
+
+ KFontCombo* comboFonts = new KFontCombo( TQFontDatabase().families(), group );
+ comboFonts->setCurrentFont( fontFamily );
+ gl->addWidget(comboFonts, 1, 1);
+ connect( comboFonts, TQT_SIGNAL( activated( const TQString& ) ),
+ TQT_SLOT( slotFamily( const TQString& ) ) );
+
+ label = new TQLabel( i18n("Size:"), group );
+ gl->addWidget(label, 2, 0);
+
+ comboSizes = new TQComboBox( TRUE, group );
+ fillFontSizes();
+ gl->addWidget(comboSizes, 2, 1);
+ connect( comboSizes, TQT_SIGNAL( activated( int ) ), TQT_SLOT( slotSize( int ) ) );
+ connect( comboSizes, TQT_SIGNAL( textChanged( const TQString & ) ),
+ TQT_SLOT( slotSizeEdit( const TQString & ) ) );
+
+ TQCheckBox *cb = new TQCheckBox( i18n("Bold"),
+ group );
+ cb->setChecked( bold );
+ connect( cb, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( slotBold( bool ) ) );
+ gl->addWidget(cb, 3, 0);
+
+ cb = new TQCheckBox( i18n("Italic"), group );
+ cb->setChecked( italic );
+ gl->addWidget(cb, 3, 1);
+ connect( cb, TQT_SIGNAL( toggled( bool ) ), TQT_SLOT( slotItalic( bool ) ) );
+
+ label = new TQLabel( i18n("Color:"), group );
+ gl->addWidget(label, 4, 0);
+
+ colorPush = new KColorButton( fontColor, group );
+ gl->addWidget(colorPush, 4, 1);
+ connect( colorPush, TQT_SIGNAL( changed(const TQColor &) ),
+ TQT_SLOT( slotColor(const TQColor &) ) );
+
+ TQCheckBox *cyclingColorCb=new TQCheckBox(i18n("Cycling color"),group);
+ cyclingColorCb->setMinimumSize(cyclingColorCb->sizeHint());
+ gl->addMultiCellWidget(cyclingColorCb,5,5,0,1);
+ connect(cyclingColorCb,TQT_SIGNAL(toggled(bool)),this,TQT_SLOT(slotCyclingColor(bool)));
+ cyclingColorCb->setChecked(cyclingColor);
+
+ preview = new TQWidget( main );
+ preview->setFixedSize( 220, 170 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ saver = new KBannerSaver( preview->winId() );
+ tl1->addWidget(preview);
+
+ tl11->addWidget(group);
+
+ label = new TQLabel( i18n("Speed:"), main );
+ tl11->addStretch(1);
+ tl11->addWidget(label);
+
+ TQSlider *sb = new TQSlider(0, 100, 10, speed, Qt::Horizontal, main );
+ sb->setMinimumWidth( 180);
+ sb->setFixedHeight(20);
+ sb->setTickmarks(TQSlider::Below);
+ sb->setTickInterval(10);
+ tl11->addWidget(sb);
+ connect( sb, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotSpeed( int ) ) );
+
+ TQHBoxLayout *tl2 = new TQHBoxLayout;
+ tl->addLayout(tl2);
+
+ label = new TQLabel( i18n("Message:"), main );
+ tl2->addWidget(label);
+
+ ed = new TQLineEdit( main );
+ tl2->addWidget(ed);
+ ed->setText( message );
+ connect( ed, TQT_SIGNAL( textChanged( const TQString & ) ),
+ TQT_SLOT( slotMessage( const TQString & ) ) );
+
+ TQCheckBox *timeCb=new TQCheckBox( i18n("Show current time"), main);
+ timeCb->setFixedSize(timeCb->sizeHint());
+ tl->addWidget(timeCb,0,TQt::AlignLeft);
+ connect(timeCb,TQT_SIGNAL(toggled(bool)),this,TQT_SLOT(slotTimeToggled(bool)));
+ timeCb->setChecked(showTime);
+
+ tl->addStretch();
+}
+
+// read settings from config file
+void KBannerSetup::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ speed=config->readNumEntry("Speed",50);
+/* if ( speed > 100 )
+ speed = 100;
+ else if ( speed < 50 )
+ speed = 50;*/
+
+ message=config->readEntry("Message","KDE");
+ showTime=config->readBoolEntry("ShowTime",FALSE);
+ fontFamily=config->readEntry("FontFamily",(TQApplication::font()).family());
+ fontSize=config->readNumEntry("FontSize",48);
+ fontColor.setNamedColor(config->readEntry("FontColor","red"));
+ cyclingColor=config->readBoolEntry("CyclingColor",FALSE);
+ bold=config->readBoolEntry("FontBold",FALSE);
+ italic=config->readBoolEntry("FontItalic",FALSE);
+}
+
+void KBannerSetup::fillFontSizes()
+{
+ bool block = comboSizes->signalsBlocked();
+ comboSizes->blockSignals( true );
+ comboSizes->clear();
+ int i = 0;
+ sizes = TQFontDatabase().pointSizes( fontFamily );
+ sizes << 96 << 128 << 156 << 0;
+ int current = 0;
+ while ( sizes[i] )
+ {
+ TQString num;
+ num.setNum( sizes[i] );
+ comboSizes->insertItem( num, i );
+ if ( fontSize == sizes[i] ) // fontsize equals one of the defined ones
+ {
+ current = i;
+ comboSizes->setCurrentItem( current );
+ slotSize( current );
+ }
+ i++;
+ }
+ if ( current == 0 ) // fontsize seems to be entered by hand
+ {
+ TQString fsize;
+ fsize.setNum( fontSize );
+ comboSizes->setEditText(fsize);
+ slotSizeEdit( fsize );
+ }
+ comboSizes->blockSignals( block );
+}
+
+void KBannerSetup::slotFamily( const TQString& fam )
+{
+ fontFamily = fam;
+ fillFontSizes(); // different font, different sizes
+ if ( saver )
+ saver->setFont( fontFamily, fontSize, fontColor, bold, italic );
+}
+
+void KBannerSetup::slotSize( int indx )
+{
+ fontSize = sizes[indx];
+ if ( saver )
+ saver->setFont( fontFamily, fontSize, fontColor, bold, italic );
+}
+
+void KBannerSetup::slotSizeEdit( const TQString& fs )
+{
+ bool ok;
+ fontSize = fs.toInt( &ok, 10 );
+ if ( ok )
+ if ( saver )
+ saver->setFont( fontFamily, fontSize, fontColor, bold, italic );
+}
+
+void KBannerSetup::slotColor( const TQColor &col )
+{
+ fontColor = col;
+ if ( saver )
+ saver->setColor(fontColor);
+}
+
+void KBannerSetup::slotCyclingColor(bool on)
+{
+ colorPush->setEnabled(!on);
+ cyclingColor=on;
+
+ if ( saver )
+ {
+ saver->setCyclingColor( on );
+ if ( !on )
+ saver->setColor( fontColor );
+ }
+}
+
+void KBannerSetup::slotBold( bool state )
+{
+ bold = state;
+ if ( saver )
+ saver->setFont( fontFamily, fontSize, fontColor, bold, italic );
+}
+
+void KBannerSetup::slotItalic( bool state )
+{
+ italic = state;
+ if ( saver )
+ saver->setFont( fontFamily, fontSize, fontColor, bold, italic );
+}
+
+void KBannerSetup::slotSpeed( int num )
+{
+ speed = num;
+ if ( saver )
+ saver->setSpeed( speed );
+}
+
+void KBannerSetup::slotMessage( const TQString &msg )
+{
+ message = msg;
+ if ( saver )
+ saver->setMessage( message );
+}
+
+void KBannerSetup::slotTimeToggled( bool on )
+{
+ ed->setEnabled(!on);
+ showTime=on;
+ if (saver)
+ {
+ if (showTime)
+ saver->setTimeDisplay();
+ else
+ {
+ message=ed->text();
+ saver->setMessage(message);
+ };
+ };
+}
+
+// Ok pressed - save settings and exit
+void KBannerSetup::slotOk()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ config->writeEntry( "Speed", speed );
+ config->writeEntry( "Message", message );
+ config->writeEntry( "ShowTime", showTime );
+ config->writeEntry( "FontFamily", fontFamily );
+
+ TQString fsize;
+ if (fontSize == 0) // an non-number was entered in the font size combo
+ {
+ fontSize = 48;
+ }
+ fsize.setNum( fontSize );
+ config->writeEntry( "FontSize", fsize );
+
+ TQString colName;
+ colName.sprintf( "#%02x%02x%02x", fontColor.red(), fontColor.green(),
+ fontColor.blue() );
+ config->writeEntry( "FontColor", colName );
+ config->writeEntry( "CyclingColor", cyclingColor );
+ config->writeEntry( "FontBold", bold );
+ config->writeEntry( "FontItalic", italic );
+
+ config->sync();
+
+ accept();
+}
+
+void KBannerSetup::slotHelp()
+{
+ KMessageBox::about(this,
+ i18n("Banner Version 2.2.1\n\nWritten by Martin R. Jones 1996\nmjones@kde.org\nExtended by Alexander Neundorf 2000\nalexander.neundorf@rz.tu-ilmenau.de\n"));
+}
+
+//-----------------------------------------------------------------------------
+
+KBannerSaver::KBannerSaver( WId id ) : KScreenSaver( id )
+{
+ krnd = new KRandomSequence();
+ readSettings();
+ initialize();
+ colorContext = TQColor::enterAllocContext();
+ needBlank = TRUE;
+ timer.start( speed );
+ connect( &timer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotTimeout() ) );
+}
+
+KBannerSaver::~KBannerSaver()
+{
+ timer.stop();
+ TQColor::leaveAllocContext();
+ TQColor::destroyAllocContext( colorContext );
+ delete krnd;
+}
+
+void KBannerSaver::setSpeed( int spd )
+{
+ timer.stop();
+ int inv = 100 - spd;
+ speed = 1 + ((inv * inv) / 100);
+ timer.start( speed );
+}
+
+void KBannerSaver::setFont( const TQString& family, int size, const TQColor &color,
+ bool b, bool i )
+{
+ fontFamily = family;
+ fontSize = size;
+ fontColor = color;
+ bold = b;
+ italic = i;
+
+ initialize();
+}
+
+void KBannerSaver::setColor(TQColor &color)
+{
+ fontColor = color;
+ cyclingColor = FALSE;
+ needUpdate = TRUE;
+}
+
+void KBannerSaver::setCyclingColor( bool on )
+{
+ cyclingColor = on;
+ needUpdate = TRUE;
+}
+
+void KBannerSaver::setMessage( const TQString &msg )
+{
+ showTime = FALSE;
+ message = msg;
+ pixmapSize = TQSize();
+ needBlank = TRUE;
+}
+
+void KBannerSaver::setTimeDisplay()
+{
+ showTime = TRUE;
+ pixmapSize = TQSize();
+ needBlank = TRUE;
+}
+
+// read settings from config file
+void KBannerSaver::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ setSpeed( config->readNumEntry("Speed",50) );
+
+ message=config->readEntry("Message","KDE");
+
+ showTime=config->readBoolEntry("ShowTime",FALSE);
+
+ fontFamily=config->readEntry("FontFamily",(TQApplication::font()).family());
+
+ fontSize=config->readNumEntry("FontSize",48);
+
+ fontColor.setNamedColor(config->readEntry("FontColor","red"));
+
+ cyclingColor=config->readBoolEntry("CyclingColor",FALSE);
+
+ bold=config->readBoolEntry("FontBold",FALSE);
+ italic=config->readBoolEntry("FontItalic",FALSE);
+
+ if ( cyclingColor )
+ {
+ currentHue=0;
+ fontColor.setHsv(0,SATURATION,VALUE);
+ }
+}
+
+// initialize font
+void KBannerSaver::initialize()
+{
+ fsize = fontSize * height() / TQApplication::desktop()->height();
+
+ font = TQFont( fontFamily, fsize, bold ? TQFont::Bold : TQFont::Normal, italic );
+
+ pixmapSize = TQSize();
+ needBlank = TRUE;
+
+ xpos = width();
+ ypos = fsize + (int) ((double)(height()-fsize)*krnd->getDouble());
+ step = 2 * width() / TQApplication::desktop()->width(); // 6 -> 2 -hhjb-
+ if ( step == 0 )
+ step = 1;
+}
+
+// erase old text and draw in new position
+void KBannerSaver::slotTimeout()
+{
+ if (cyclingColor)
+ {
+ int hueStep = speed/10;
+ currentHue=(currentHue+hueStep)%360;
+ fontColor.setHsv(currentHue,SATURATION,VALUE);
+ }
+ if (showTime)
+ {
+ TQString new_message = TDEGlobal::locale()->formatTime(TQTime::currentTime(), true);
+ if( new_message != message )
+ needUpdate = TRUE;
+ message = new_message;
+ }
+ if ( !pixmapSize.isValid() || cyclingColor || needUpdate || needBlank )
+ {
+ TQRect rect = TQFontMetrics( font ).boundingRect( message );
+ rect.setWidth( rect.width() + step );
+ if ( rect.width() > pixmapSize.width() )
+ pixmapSize.setWidth( rect.width() );
+ if ( rect.height() > pixmapSize.height() )
+ pixmapSize.setHeight( rect.height() );
+ pixmap = TQPixmap( pixmapSize );
+ pixmap.fill( black );
+ TQPainter p( &pixmap );
+ p.setFont( font );
+ p.setPen( fontColor );
+ p.drawText( -rect.x(), -rect.y(), message );
+ needUpdate = FALSE;
+ }
+ xpos -= step;
+ if ( xpos < -pixmapSize.width() ) {
+ TQPainter p( this );
+ p.fillRect( xpos + step, ypos, pixmapSize.width(), pixmapSize.height(), black );
+ xpos = width();
+ ypos = fsize + (int) ((double)(height()-2.0*fsize)*krnd->getDouble());
+ }
+
+ if ( needBlank )
+ {
+ setBackgroundColor( black );
+ erase();
+ needBlank = FALSE;
+ }
+ bitBlt( this, xpos, ypos, &pixmap, 0, 0, pixmapSize.width(), pixmapSize.height());
+}
diff --git a/tdescreensaver/kdesavers/banner.h b/tdescreensaver/kdesavers/banner.h
new file mode 100644
index 00000000..6b953e58
--- /dev/null
+++ b/tdescreensaver/kdesavers/banner.h
@@ -0,0 +1,114 @@
+//-----------------------------------------------------------------------------
+//
+// kbanner - Basic screen saver for KDE
+//
+// Copyright (c) Martin R. Jones 1996
+//
+
+#ifndef __BANNER_H__
+#define __BANNER_H__
+
+#include <tqtimer.h>
+
+#include <tdescreensaver.h>
+#include <kdialogbase.h>
+
+#define SATURATION 150
+#define VALUE 255
+
+class TQLineEdit;
+class KColorButton;
+class KRandomSequence;
+
+class KBannerSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+public:
+ KBannerSaver( WId id );
+ virtual ~KBannerSaver();
+
+ void setSpeed( int spd );
+ void setFont( const TQString &family, int size, const TQColor &color,
+ bool b, bool i );
+ void setMessage( const TQString &msg );
+ void setTimeDisplay();
+ void setCyclingColor(bool on);
+ void setColor( TQColor &color);
+
+private:
+ void readSettings();
+ void initialize();
+
+protected slots:
+ void slotTimeout();
+
+protected:
+ TQFont font;
+ TQTimer timer;
+ TQString fontFamily;
+ int fontSize;
+ bool bold;
+ bool italic;
+ TQColor fontColor;
+ bool cyclingColor;
+ int currentHue;
+ bool needUpdate;
+ bool needBlank;
+ TQString message;
+ bool showTime;
+ int xpos, ypos, step, fsize;
+ KRandomSequence *krnd;
+ int speed;
+ int colorContext;
+ TQPixmap pixmap;
+ TQSize pixmapSize;
+};
+
+
+class KBannerSetup : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ KBannerSetup( TQWidget *parent = NULL, const char *name = NULL );
+
+protected:
+ void readSettings();
+ void fillFontSizes();
+
+private slots:
+ void slotFamily( const TQString & );
+ void slotSize( int );
+ void slotSizeEdit(const TQString &);
+ void slotColor(const TQColor &);
+ void slotCyclingColor(bool on);
+ void slotBold( bool );
+ void slotItalic( bool );
+ void slotSpeed( int );
+ void slotMessage( const TQString & );
+ void slotOk();
+ void slotHelp();
+ void slotTimeToggled(bool on);
+
+private:
+ TQWidget *preview;
+ KColorButton *colorPush;
+ KBannerSaver *saver;
+ TQLineEdit *ed;
+ TQComboBox* comboSizes;
+
+ TQString message;
+ bool showTime;
+ TQString fontFamily;
+ int fontSize;
+ TQColor fontColor;
+ bool cyclingColor;
+ bool bold;
+ bool italic;
+ int speed;
+ TQValueList<int> sizes;
+};
+
+#endif
+
diff --git a/tdescreensaver/kdesavers/blob.cpp b/tdescreensaver/kdesavers/blob.cpp
new file mode 100644
index 00000000..763cf10c
--- /dev/null
+++ b/tdescreensaver/kdesavers/blob.cpp
@@ -0,0 +1,527 @@
+//-----------------------------------------------------------------------------
+//
+// kblob - Basic screen saver for KDE
+//
+// Copyright (c) Tiaan Wessels, 1997
+//
+// To add new alg :
+// - add blob_alg enum in blob.h before ALG_LAST
+// - choose 2 letter prefix for alg and add vars needed to private vars
+// in KBlobSaver in blob.h
+// - add xxSetup and xxNextFrame method definitions in blob.h
+// - implement methods in this file. xxSetup to init vars mentioned
+// in step 2. xxNextFrame to advance blob painter ( calc tx,ty and
+// use box() method to position painter
+// - add descriptive string in alg_str array in this file before "Random"
+// - add to Algs array in KBlobSaver constructor in this file
+// - test by setup saver and choosing alg from list
+
+#include <config.h>
+#include <stdlib.h>
+#include <time.h>
+#include <limits.h>
+#include <math.h>
+
+#include <tqcolor.h>
+#include <tqlabel.h>
+#include <tqlistbox.h>
+#include <tqlayout.h>
+#include <tqpainter.h>
+#include <tqpixmap.h>
+#include <tqimage.h>
+
+#include <kapplication.h>
+#include <kconfig.h>
+#include <kmessagebox.h>
+#include <knuminput.h>
+#include <klocale.h>
+#include <kglobal.h>
+#include <krandomsequence.h>
+
+#include "blob.moc"
+#include "blob.h"
+
+#define SMALLRAND(a) (int)(rnd->getLong(a)+1)
+
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kblob.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "KBlob" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new KBlobSaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new KBlobSetup();
+ }
+}
+
+static KRandomSequence *rnd = 0;
+
+TQString alg_str[5];
+void initAlg()
+{
+ alg_str[0] = i18n("Random Linear");
+ alg_str[1] = i18n("Horizontal Sine");
+ alg_str[2] = i18n("Circular Bounce");
+ alg_str[3] = i18n("Polar Coordinates");
+ alg_str[4] = i18n("Random");
+}
+
+//-----------------------------------------------------------------------------
+// the blob screensaver's code
+
+KBlobSaver::KBlobSaver ( WId id)
+ : KScreenSaver( id )
+{
+ rnd = new KRandomSequence();
+ initAlg();
+ TQColor color;
+ float ramp = (256.0-64.0)/(float)RAMP;
+ TQString msg =
+ i18n("This screen saver requires a color display.");
+
+ blank();
+
+ // needs colors to work this one
+ if (TQPixmap::defaultDepth() < 8)
+ {
+ TQPainter p(this);
+ p.setPen( white );
+ p.drawText( width()/2, height()/2, msg );
+ return;
+ }
+
+ colorContext = TQColor::enterAllocContext();
+
+ // if 8-bit, create lookup table for color ramping further down
+ if (TQPixmap::defaultDepth() == 8)
+ {
+ memset(lookup, 0, 256*sizeof(uint));
+ int i;
+ for (i = 0; i < RAMP; i++)
+ {
+ color.setRgb(64+(int)(ramp*(float)i), 0, 0);
+ colors[i] = color.alloc();
+ }
+ memset(lookup, black.pixel(), sizeof(uint)*256);
+ for (i = 0; i < RAMP-1; i++)
+ lookup[colors[i]] = colors[i+1];
+ lookup[black.pixel()] = lookup[colors[RAMP-1]] = colors[0];
+ }
+ else
+ {
+ // make special provision for preview mode
+ if (height() < 400)
+ {
+ if (TQPixmap::defaultDepth() > 8 )
+ setColorInc(7);
+ else
+ setColorInc(4);
+ }
+ else
+ {
+ if (TQPixmap::defaultDepth() > 8 )
+ setColorInc(3);
+ else
+ setColorInc(2);
+ }
+ }
+
+ // the dimensions of the blob painter
+ dim = height()/70+1;
+
+ // record starting time to know when to change frames
+ start = time(NULL);
+
+ // init some parameters used by all algorithms
+ xhalf = width()/2;
+ yhalf = height()/2;
+
+ // means a new algorithm should be set at entrance of timer
+ newalg = newalgp = 1;
+
+ // init algorithm space
+ Algs[0].Name = alg_str[0];
+ Algs[0].Init = &KBlobSaver::lnSetup;
+ Algs[0].NextFrame = &KBlobSaver::lnNextFrame;
+
+ Algs[1].Name = alg_str[1];
+ Algs[1].Init = &KBlobSaver::hsSetup;
+ Algs[1].NextFrame = &KBlobSaver::hsNextFrame;
+
+ Algs[2].Name = alg_str[2];
+ Algs[2].Init = &KBlobSaver::cbSetup;
+ Algs[2].NextFrame = &KBlobSaver::cbNextFrame;
+
+ Algs[3].Name = alg_str[3];
+ Algs[3].Init = &KBlobSaver::pcSetup;
+ Algs[3].NextFrame = &KBlobSaver::pcNextFrame;
+
+ // get setup from kde registry
+ readSettings();
+
+ // start timer which will update blob painter
+ timer.start(SPEED);
+ connect(&timer, TQT_SIGNAL(timeout()), TQT_SLOT(slotTimeout()));
+}
+
+KBlobSaver::~KBlobSaver()
+{
+ timer.stop();
+
+ TQColor::leaveAllocContext();
+ TQColor::destroyAllocContext(colorContext);
+ delete rnd; rnd = 0;
+}
+
+void KBlobSaver::setAlgorithm(int a)
+{
+ newalg = newalgp = ((a == ALG_RANDOM) ? 1 : 2);
+ alg = a;
+}
+
+void KBlobSaver::lnSetup()
+{
+ // initialize the blob movement dictators with random vals
+ // incrementals on axis
+ ln_xinc = SMALLRAND(3);
+ ln_yinc = SMALLRAND(2);
+
+ // start position
+ tx = SMALLRAND(width()-dim-ln_xinc*2);
+ ty = SMALLRAND(height()-dim-ln_yinc*2);
+}
+
+void KBlobSaver::hsSetup()
+{
+ hs_per = SMALLRAND(7);
+ hs_radians = 0.0;
+ hs_rinc = (hs_per*M_PI)/(hs_per*90*4);
+ hs_flip = 1.0;
+}
+
+void KBlobSaver::cbSetup()
+{
+ cb_radians = 0.0;
+ cb_rinc = (2.0*M_PI)/360.0;
+ cb_sradians = 0.0;
+ cb_deviate = SMALLRAND(height()/20)+(height()/15);
+ cb_radius = height()/2-cb_deviate*2-2*dim;
+ cb_devradinc = (rnd->getDouble()*10.0*2.0*M_PI)/360.0;
+}
+
+void KBlobSaver::pcSetup()
+{
+ pc_angle = 0.0;
+ pc_radius = 0.0;
+ pc_inc = (2.0*M_PI)/720.0;
+ pc_crot = 0.0;
+ pc_div = SMALLRAND(4)-1;
+}
+
+// render next frame ( or change algorithms )
+void KBlobSaver::slotTimeout()
+{
+ time_t now = time(NULL);
+
+ // should algorithm be changed
+ if (now-start > showlen)
+ newalg = newalgp;
+
+ // set new algorithm
+ if (newalg)
+ {
+ blank();
+ if (newalg == 1)
+ alg = SMALLRAND(ALG_LAST)-1;
+ (this->*Algs[alg].Init)();
+ newalg = 0;
+ start = time(NULL);
+ }
+
+ // gen next fram for current algorithm
+ (this->*Algs[alg].NextFrame)();
+}
+
+void KBlobSaver::lnNextFrame()
+{
+ int dir;
+
+ // depending on the algorithm to use, move the blob painter to
+ // a new location
+ // check for wall hit to change direction
+ if (tx+dim+ln_xinc > (int)width()-1 || tx+ln_xinc < 0)
+ {
+ if (ln_xinc > 0)
+ dir = -1;
+ else
+ dir = 1;
+ ln_xinc = SMALLRAND(3)*dir;
+ }
+ if (ty+dim+ln_yinc > (int)height()-1 || ty+ln_yinc < 0)
+ {
+ if (ln_yinc > 0)
+ dir = -1;
+ else
+ dir = 1;
+ ln_yinc = SMALLRAND(2)*dir;
+ }
+
+ // move box to new position
+ tx += ln_xinc;
+ ty += ln_yinc;
+
+ // draw new box
+ box(tx, ty);
+}
+
+void KBlobSaver::hsNextFrame()
+{
+ static int xlen = width()-(4*dim);
+ static int ylen = height()-(4*dim);
+
+ // calc x as offset on angle line and y as vertical offset
+ // on interval -1..1 sine of angle
+ tx = (int)((hs_radians/(hs_per*M_PI))*(float)xlen);
+ ty = (int)((float)(ylen/4)*(hs_flip*sin(hs_radians)))+yhalf;
+
+ // draw new box
+ box(tx, ty);
+
+ // set new radians
+ hs_radians += hs_rinc;
+ if (hs_radians > hs_per*M_PI)
+ {
+ hs_rinc *= -1.0;
+ hs_radians += hs_rinc;
+ hs_flip *= -1.0;
+ }
+ else if (hs_radians < 0.0)
+ hsSetup();
+}
+
+void KBlobSaver::cbNextFrame()
+{
+ int deviate;
+
+ // calculate deviation of circle main radius
+ deviate = (int)(sin(cb_sradians)*cb_deviate);
+
+ // calculate topleft of box as a circle with a sine perturbed radius
+ tx = (int)(cos(cb_radians)*(cb_radius+deviate))+xhalf;
+ ty = (int)(sin(cb_radians)*(cb_radius+deviate))+yhalf;
+
+ // draw the box
+ box(tx, ty);
+
+ // increase greater circle render angle
+ cb_radians += cb_rinc;
+ if (cb_radians > 2.0*M_PI)
+ cb_radians -= 2.0*M_PI;
+
+ // increase radius deviation offset on sine wave
+ cb_sradians += cb_devradinc;
+}
+
+void KBlobSaver::pcNextFrame()
+{
+ static float scale = (float)height()/3.0 - 4.0*dim;
+
+ // simple polar coordinate equation
+ if (pc_div < 1.0)
+ pc_radius = cos(2.0*pc_angle);
+ else
+ pc_radius = 1.0/pc_div + cos(2.0*pc_angle);
+
+ tx = (int)(scale*pc_radius*cos(pc_angle+pc_crot))+xhalf;
+ ty = (int)(scale*pc_radius*sin(pc_angle+pc_crot))+yhalf;
+
+ // advance blob painter
+ box(tx, ty);
+
+ // new movement parameters
+ pc_angle += pc_inc;
+ if (pc_angle > 2.0*M_PI)
+ {
+ pc_angle -= 2.0*M_PI;
+ pc_crot += M_PI/45.0;
+ }
+}
+
+void KBlobSaver::box ( int x, int y )
+{
+ // for bad behaving algorithms that wants to cause an X trap
+ // confine to the valid region before using potentially fatal XGetImage
+ if ((x+dim) >= width())
+ x = width()-dim-1;
+ else if (x < 0)
+ x = 0;
+ if ((y+dim) > height())
+ y = height()-dim-1;
+ else if (y < 0)
+ y = 0;
+
+ // get the box region from the display to upgrade
+ TQImage img = TQPixmap(TQPixmap::grabWindow(winId(), x, y, dim, dim)).convertToImage();
+
+ // depending on the depth of the display, use either lookup table for
+ // next rgb val ( 8-bit ) or ramp the color directly for other displays
+ if ( img.depth() == 8)
+ {
+ // manipulate image by upgrading each pixel with 1 using a lookup
+ // table as the color allocation could have resulted in a spread out
+ // configuration of the color ramp
+ for (int j = 0; j < img.height(); j++)
+ {
+ for (int i = 0; i < img.width(); i++)
+ {
+ img.scanLine(j)[i] = lookup[img.scanLine(j)[i]];
+ }
+ }
+ }
+ else
+ {
+ for (int j = 0; j < img.height(); j++)
+ {
+ for (int i = 0; i < img.width(); i++)
+ {
+ TQRgb p = img.pixel( i, j );
+ p += (colorInc<<18);
+ img.setPixel( i, j, p );
+ }
+ }
+ }
+
+ // put the image back onto the screen
+ TQPainter p(this);
+ p.drawImage( x, y, img );
+}
+
+void KBlobSaver::blank()
+{
+ setBackgroundColor( black );
+ erase();
+}
+
+void KBlobSaver::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ // number of seconds to spend on a frame
+ showlen = config->readNumEntry("Showtime", 3*60);
+
+ // algorithm to use. if not set then use random
+ alg = config->readNumEntry("Algorithm", ALG_RANDOM);
+ if (alg == ALG_RANDOM)
+ newalg = 1;
+ else
+ newalg = 2;
+ newalgp = newalg;
+}
+
+//-----------------------------------------------------------------------------
+// dialog to setup screen saver parameters
+//
+KBlobSetup::KBlobSetup
+(
+ TQWidget *parent,
+ const char *name
+)
+: KDialogBase( parent, name, true, i18n( "Setup Blob Screen Saver" ),
+ Ok|Cancel|Help, Ok, true )
+{
+
+ initAlg();
+
+ // get saver configuration from kde registry
+ readSettings();
+
+ setButtonText( Help, i18n( "A&bout" ) );
+ TQWidget *main = makeMainWidget();
+
+ TQHBoxLayout *tl = new TQHBoxLayout( main, 0, spacingHint() );
+
+ TQVBoxLayout *vbox = new TQVBoxLayout;
+ tl->addLayout(vbox);
+
+ // seconds to generate on a frame
+ TQLabel *label = new TQLabel(i18n("Frame duration:"), main);
+ stime = new KIntNumInput( showtime, main );
+ stime->setSuffix( i18n( " sec" ) );
+ vbox->addWidget(label);
+ vbox->addWidget(stime);
+
+ // available algorithms
+ label = new TQLabel(i18n("Algorithm:"), main);
+ algs = new TQListBox(main);
+ algs->setMinimumSize(150, 105);
+ for (int i = 0; i <= ALG_RANDOM; i++)
+ algs->insertItem(alg_str[i]);
+ algs->setCurrentItem(alg);
+ vbox->addWidget(label);
+ vbox->addWidget(algs);
+
+ // preview window
+ TQWidget *preview = new TQWidget( main );
+ preview->setFixedSize(220, 170);
+ preview->setBackgroundColor(black);
+ preview->show();
+ tl->addWidget(preview);
+ saver = new KBlobSaver(preview->winId());
+ saver->setDimension(3);
+ if (TQPixmap::defaultDepth() > 8)
+ saver->setColorInc(7);
+ else
+ saver->setColorInc(4);
+
+ tl->addStretch();
+
+ // so selecting an algorithm will start previewing that alg
+ connect(algs, TQT_SIGNAL(highlighted(int)), saver,
+ TQT_SLOT(setAlgorithm(int)));
+}
+
+void KBlobSetup::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ // number of seconds to spend on a frame
+ showtime = config->readNumEntry("Showtime", 3*60);
+
+ // algorithm to use. if not set then use random
+ alg = config->readNumEntry("Algorithm", ALG_LAST);
+}
+
+// Ok pressed - save settings and exit
+void KBlobSetup::slotOk()
+{
+ TDEConfig *config = TDEGlobal::config();
+
+ config->setGroup("Settings");
+
+ config->writeEntry("Showtime", stime->value());
+ config->writeEntry("Algorithm", algs->currentItem());
+
+ config->sync();
+
+ accept();
+}
+
+void KBlobSetup::slotHelp()
+{
+ KMessageBox::about(this,
+ i18n("Blobsaver Version 0.1\n\nWritten by Tiaan Wessels 1997\ntiaan@netsys.co.za"));
+ if (saver)
+ saver->setAlgorithm(algs->currentItem());
+}
+
+
diff --git a/tdescreensaver/kdesavers/blob.h b/tdescreensaver/kdesavers/blob.h
new file mode 100644
index 00000000..e8b8f839
--- /dev/null
+++ b/tdescreensaver/kdesavers/blob.h
@@ -0,0 +1,119 @@
+//-----------------------------------------------------------------------------
+//
+// kblob - Basic screen saver for KDE
+//
+// Copyright (c) Tiaan Wessels, 1997
+//
+
+#ifndef __BLOB_H__
+#define __BLOB_H__
+
+#include <tqtimer.h>
+#include <tqptrlist.h>
+
+#include <kdialogbase.h>
+#include <tdescreensaver.h>
+
+#define RAMP 64
+#define SPEED 10
+
+enum blob_alg {
+ ALG_LINEAR,
+ ALG_HSINE,
+ ALG_CIRB,
+ ALG_POLARC,
+ ALG_LAST,
+ ALG_RANDOM = ALG_LAST };
+
+class KBlobSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+
+public:
+ KBlobSaver( WId id );
+ virtual ~KBlobSaver();
+
+ void setDimension(int d)
+ { dim = d; }
+ void setShowlen(time_t s)
+ { showlen = s; }
+ void setColorInc(int c)
+ { colorInc = c; }
+
+public slots:
+ void setAlgorithm(int);
+
+public:
+ typedef void (KBlobSaver::*AlgFunc)();
+ struct KBSAlg
+ {
+ TQString Name;
+ AlgFunc Init;
+ AlgFunc NextFrame;
+ };
+private:
+
+ TQTimer timer;
+ uint colors[RAMP];
+ uint lookup[256];
+ int colorContext, colorInc;
+ int tx, ty;
+ int dim;
+ int xhalf, yhalf;
+ int alg, newalg, newalgp;
+ time_t showlen, start;
+ KBSAlg Algs[ALG_LAST];
+ int ln_xinc, ln_yinc;
+ float hs_radians, hs_rinc, hs_flip, hs_per;
+ float cb_radians, cb_rinc, cb_sradians, cb_radius, cb_devradinc;
+ float cb_deviate;
+ float pc_angle, pc_radius, pc_inc, pc_crot, pc_div;
+
+ void lnSetup();
+ void hsSetup();
+ void cbSetup();
+ void pcSetup();
+
+ void lnNextFrame();
+ void hsNextFrame();
+ void cbNextFrame();
+ void pcNextFrame();
+
+ void blank();
+ void box(int, int);
+ void readSettings();
+
+protected slots:
+ void slotTimeout();
+};
+
+class TQListBox;
+class KIntNumInput;
+
+class KBlobSetup : public KDialogBase
+{
+ Q_OBJECT
+
+
+ int showtime;
+ int alg;
+ TQListBox *algs;
+ KIntNumInput *stime;
+
+public:
+ KBlobSetup( TQWidget *parent = NULL, const char *name = NULL );
+
+protected:
+ void readSettings();
+
+private slots:
+ void slotOk();
+ void slotHelp();
+
+private:
+ KBlobSaver *saver;
+};
+
+#endif
+
diff --git a/tdescreensaver/kdesavers/data/CMakeLists.txt b/tdescreensaver/kdesavers/data/CMakeLists.txt
new file mode 100644
index 00000000..c9718d9a
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/CMakeLists.txt
@@ -0,0 +1,17 @@
+#################################################
+#
+# (C) 2011 Golubev Alexander
+# fatzer2 (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+install( FILES
+ kfs_particle.png kfs_particle_flare.png
+ kfs_particle_diastar.png kfs_kde.png
+ kfs_tux.png kfs_letters1.png kfs_letters2.png
+ kfs_letters.desc kfs_explode.ogg kfs_debris.ogg
+ DESTINATION ${DATA_INSTALL_DIR}/kfiresaver )
diff --git a/tdescreensaver/kdesavers/data/Makefile.am b/tdescreensaver/kdesavers/data/Makefile.am
new file mode 100644
index 00000000..2882f34c
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/Makefile.am
@@ -0,0 +1,11 @@
+# Makefile.am for screensavers data
+
+METASOURCES = AUTO
+
+if COMPILE_GL_KSAVERS
+kfiresaver_DATA = kfs_particle.png kfs_particle_flare.png kfs_particle_diastar.png\
+ kfs_kde.png kfs_tux.png\
+ kfs_letters1.png kfs_letters2.png kfs_letters.desc\
+ kfs_explode.ogg kfs_debris.ogg
+kfiresaverdir = $(kde_datadir)/kfiresaver
+endif
diff --git a/tdescreensaver/kdesavers/data/kfs_debris.ogg b/tdescreensaver/kdesavers/data/kfs_debris.ogg
new file mode 100644
index 00000000..f1265ec2
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/kfs_debris.ogg
Binary files differ
diff --git a/tdescreensaver/kdesavers/data/kfs_explode.ogg b/tdescreensaver/kdesavers/data/kfs_explode.ogg
new file mode 100644
index 00000000..3eda0ef0
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/kfs_explode.ogg
Binary files differ
diff --git a/tdescreensaver/kdesavers/data/kfs_kde.png b/tdescreensaver/kdesavers/data/kfs_kde.png
new file mode 100644
index 00000000..33f53b33
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/kfs_kde.png
Binary files differ
diff --git a/tdescreensaver/kdesavers/data/kfs_letters.desc b/tdescreensaver/kdesavers/data/kfs_letters.desc
new file mode 100644
index 00000000..186a1b8d
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/kfs_letters.desc
@@ -0,0 +1,84 @@
+#first map and its coordinates
+#note that capitals are used for lowercase also
+
+"kfs_letters1.png"
+
+A 0 0 48 63
+a 0 0 48 63
+B 48 0 87 63
+b 48 0 87 63
+C 87 0 132 63
+c 87 0 132 63
+D 132 0 178 63
+d 132 0 178 63
+E 179 0 222 63
+e 179 0 222 63
+
+F 0 64 40 127
+f 0 64 40 127
+G 41 64 89 127
+g 41 64 89 127
+H 89 64 142 127
+h 89 64 142 127
+I 142 64 180 127
+i 142 64 180 127
+J 180 64 227 127
+j 180 64 227 127
+
+K 0 128 40 191
+k 0 128 40 191
+L 41 128 80 191
+l 41 128 80 191
+M 80 128 142 191
+m 80 128 142 191
+N 142 128 196 191
+n 142 128 196 191
+O 196 128 252 191
+o 196 128 252 191
+
+P 0 192 36 255
+p 0 192 36 255
+Q 36 192 97 255
+q 36 192 97 255
+R 97 192 142 255
+r 97 192 142 255
+S 142 192 189 255
+s 142 192 189 255
+T 189 192 244 255
+t 189 192 244 255
+
+
+"kfs_letters2.png"
+
+U 0 0 50 63
+u 0 0 50 63
+V 50 0 97 63
+v 50 0 97 63
+W 97 0 169 63
+w 97 0 169 63
+X 169 0 220 63
+x 169 0 220 63
+, 220 0 239 63
+. 239 0 254 63
+
+Y 0 64 48 127
+y 0 64 48 127
+Z 48 64 99 127
+z 48 64 99 127
+! 99 64 119 127
+? 119 64 157 127
+- 157 64 188 127
+: 188 64 205 127
+; 205 64 226 127
+
+0 0 128 45 191
+1 45 128 75 191
+2 75 128 118 191
+3 118 128 158 191
+4 158 128 203 191
+5 203 128 245 191
+
+6 0 192 41 255
+7 41 192 86 255
+8 86 192 127 255
+9 127 192 169 255
diff --git a/tdescreensaver/kdesavers/data/kfs_letters1.png b/tdescreensaver/kdesavers/data/kfs_letters1.png
new file mode 100644
index 00000000..2f6678ba
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/kfs_letters1.png
Binary files differ
diff --git a/tdescreensaver/kdesavers/data/kfs_letters2.png b/tdescreensaver/kdesavers/data/kfs_letters2.png
new file mode 100644
index 00000000..8d0442ac
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/kfs_letters2.png
Binary files differ
diff --git a/tdescreensaver/kdesavers/data/kfs_particle.png b/tdescreensaver/kdesavers/data/kfs_particle.png
new file mode 100644
index 00000000..d6294dc3
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/kfs_particle.png
Binary files differ
diff --git a/tdescreensaver/kdesavers/data/kfs_particle_diastar.png b/tdescreensaver/kdesavers/data/kfs_particle_diastar.png
new file mode 100644
index 00000000..6f645ddb
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/kfs_particle_diastar.png
Binary files differ
diff --git a/tdescreensaver/kdesavers/data/kfs_particle_flare.png b/tdescreensaver/kdesavers/data/kfs_particle_flare.png
new file mode 100644
index 00000000..4a4fdcb5
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/kfs_particle_flare.png
Binary files differ
diff --git a/tdescreensaver/kdesavers/data/kfs_tux.png b/tdescreensaver/kdesavers/data/kfs_tux.png
new file mode 100644
index 00000000..99f3465e
--- /dev/null
+++ b/tdescreensaver/kdesavers/data/kfs_tux.png
Binary files differ
diff --git a/tdescreensaver/kdesavers/firesaver.ChangeLog b/tdescreensaver/kdesavers/firesaver.ChangeLog
new file mode 100644
index 00000000..80461e62
--- /dev/null
+++ b/tdescreensaver/kdesavers/firesaver.ChangeLog
@@ -0,0 +1,106 @@
+2004-06-29 Enrico Ros <eros.kde@email.it>
+
+ * general : added support for 'per particle' texture with
+ smart binding. added 2 textures (explosion light / toxxic)
+
+ * firesaverparticle : finished TurningParticle class. moved
+ some code from the header to the cpp.
+
+ * firesaver : added 'Toxic spirals' fireworks, disabled
+ supernova in .ui since after 3.3. fixed monochrome<->monotype
+ bug.
+
+ * firesaverwriter : bugfix on word's color (blinking on start).
+
+2004-05-30 Enrico Ros <eros.kde@email.it>
+
+ * this file : renamed Changelog to firesaver.ChangeLog
+
+ * general : moved / renamed files and chaged stuff to get ready
+ to be imported into tdeartwork.
+
+ * general : all images are .png, all sounds are .ogg.
+
+2004-02-07 Enrico Ros <eros.kde@email.it>
+
+ * firesaver.cpp : implemented trail and alpha on explosions.
+
+ * firesaver : damn dirty bug! reordered projection lines. Looks
+ way cooler now. trimmed defaults.
+
+ * firesaversetup : config dialog redone from scratch. Now it is
+ more usable and ready for translation into different languages.
+ Also added many new features.
+
+ * firesaver : adapted to setup dialog changes (also embeds the
+ setup widget into a KDialogBase). Implemented some new features
+ added in the setup dialog.
+
+2004-02-06 Enrico Ros <eros.kde@email.it>
+
+ * all : optimized logic and math.. tdecachegrind rules.
+
+ * firesaverparticle : inheritance test on particle class.
+ Implemented a "funny phisics" on the TurningParticle class. This
+ will lead to strange fireworks (spirals, fountains... )
+
+2004-01-31 Enrico Ros <eros.kde@email.it>
+
+ * all : leak checked and fixed uninitialized values. optimized
+ the code for less cpu consumption (reduced 7% over the 19% of
+ internal code cpu consumption (the remaining 81% of cpu time is
+ spent into GL libraries!!..) seems there's a limit to the code
+ optimization!).
+
+ * firesaver : added KDE icons as exploding elements and checked
+ the explode logo routine.
+
+ * fw_letters* : added support for overlay writings. cleaned api.
+
+ * firesaver.cpp/.h : implemented texture loader. some fixes and
+ a major speedup. again more changes to the graphical pipeline.
+
+2004-01-30 Enrico Ros <eros.kde@email.it>
+
+ * firesaverparticle.cpp/.h: cleaned a lot; changed the interface.
+ It's not completely decoupled from the 'firework' entity yet.
+
+ * fw_debris.ogg: added a second sound (used only on logo explosion
+ for now).
+
+ * firesaver.cpp: reworked the generation of image logos (new
+ default: 64x64 pixel for hi-res).
+
+2004-01-29 Enrico Ros <eros.kde@email.it>
+
+ * firesaver.cpp: fix: screen blink. add: particle size not
+ dependant from screen size.
+
+ * firesaver.cpp: optimized the rendering core for particles.
+ Computation takes now less than half of the time than before.
+ Set a capacity of 20000 simultaneous particles; more will be
+ dropped (but a progressive 'resize' is done..)
+
+ * fw_explode.ogg: converted sound file to ogg format.
+
+ * firesaver.cpp/.h: redone the audio engine (limited by default
+ to 4 mixer channels).
+
+ * firesaver.cpp: use the .mp3 sound that is "auto-mixed" by the
+ sound system. The old Wav was played sequentially (a boom is heard
+ after the previous one terminates). The Ogg format has the same
+ problem as the wave one (plus it goes on playing many booms after
+ the program is exited).
+
+2004-01-28 Enrico Ros <eros.kde@email.it>
+
+ * firesaverparticle.cpp: keep a particle independent from the
+ 'shape' of the firework it belongs to. Added depth (level) of
+ explosion (normal particles reach level 1, splitters reach 2).
+
+ * name syntax: converted filenames to match the style of the ones
+ in tdeartwork/tdescreensaver/kdesavers.
+
+ * merging: merged some file's content to lower the number of files
+ before initial import.
+
diff --git a/tdescreensaver/kdesavers/firesaver.cpp b/tdescreensaver/kdesavers/firesaver.cpp
new file mode 100644
index 00000000..71954242
--- /dev/null
+++ b/tdescreensaver/kdesavers/firesaver.cpp
@@ -0,0 +1,1151 @@
+// This file is part of KFireSaver3D.
+
+// KFireSaver3D is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+
+// KFireSaver3D is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with KFireSaver3D; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+// Author: Enrico Ros, based on the great work of David Sansome (kfiresaver)
+// Email: asy@libero.it
+
+#include <math.h>
+#include <sys/time.h>
+#include <stdlib.h>
+#include <kconfig.h>
+#include <kdebug.h>
+#include <kstandarddirs.h>
+#include <klocale.h>
+#include <kurl.h>
+#include <kiconloader.h>
+#include <kmessagebox.h>
+#include <arts/kmedia2.h>
+#include <arts/kplayobject.h>
+#include <arts/kplayobjectfactory.h>
+
+#include "firesaversetup.h"
+#include "firesaverparticle.h"
+#include "firesaverwriter.h"
+#include "firesaver.h"
+
+
+/* Factory code for KScreensaver begins *here* *\
+\* */
+
+#include <tdescreensaver.h>
+#include <kdialogbase.h>
+
+class KFireSaverKSS : public KScreenSaver
+{
+ public:
+ KFireSaverKSS( WId id )
+ : KScreenSaver( id )
+ {
+ setBackgroundColor( black );
+ erase();
+ saver = new KFireSaver;
+ embed(saver);
+ saver->show();
+ }
+
+ ~KFireSaverKSS()
+ {
+ delete saver;
+ }
+
+ private:
+ KFireSaver* saver;
+};
+
+class KFireSaverSetupKDB : public KDialogBase
+{
+ public:
+ KFireSaverSetupKDB( TQWidget* parent = 0, const char* name = 0 )
+ : KDialogBase( parent, name, true, i18n("Setup Screen Saver"),
+ Ok | Cancel | Help, Ok, true )
+ {
+ setup = new KFireSaverSetup( this );
+ setMainWidget( setup );
+ setButtonText( KDialogBase::Help, i18n( "A&bout" ) );
+ }
+
+ private slots:
+ void slotHelp()
+ {
+ KMessageBox::about(this, i18n("<h3>KFireSaver 3D 1.0</h3>\n<p>TEST Koral - Enrico Ros::2004</p>") );
+ }
+ void slotOk()
+ {
+ setup->writeConfig();
+ accept();
+ }
+
+ private:
+ KFireSaverSetup * setup;
+};
+
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kfiresaver.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "Fireworks 3D (GL)" );
+ KDE_EXPORT const char *kss_version = "0.7";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new KFireSaverKSS( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new KFireSaverSetupKDB;
+ }
+}
+
+/* *\
+\* Factory code for KScreensaver ends *here* */
+
+
+KFireSaver :: KFireSaver( TQWidget *parent, const char *name )
+ : TQGLWidget( parent, name )
+{
+ // set random seed to initialize drand48() calls
+ timeval tv;
+ gettimeofday(&tv,NULL);
+ srand48( (long)tv.tv_usec );
+
+ readConfig();
+
+ particleList.setAutoDelete(true);
+ starList.setAutoDelete(true);
+ imageList.setAutoDelete(true);
+ playObjectList.setAutoDelete(true);
+
+ //initialize openGL context before managing GL calls
+ makeCurrent();
+ loadTexture( locate("data","kfiresaver/kfs_particle.png"), particleTexture );
+ loadTexture( locate("data","kfiresaver/kfs_particle_flare.png"), flareTexture );
+ loadTexture( locate("data","kfiresaver/kfs_particle_diastar.png"), diastarTexture );
+ starTexture = particleTexture;
+
+ //generate stars
+ if (parameters.enableStars) {
+ int number = parameters.starsNumber + 1;
+ number *= 10 * number;
+ for (int i=0 ; i<number ; i++)
+ {
+ Particle * star = new Particle( Particle::StarParticle );
+ star->initializeValues();
+ star->texture = starTexture;
+ if (parameters.enableStarGradient)
+ {
+ GLfloat red = star->colour[0],
+ green = star->colour[1],
+ blue = star->colour[2],
+ tint = 0.5 + star->ypos / FIELDWIDTH,
+ merge = 0.3 + DRAND*0.7,
+ mergen = 1 - merge;
+ star->colour[0] = red * merge + (1.0-tint) * mergen;
+ star->colour[1] = green * merge + tint * mergen;
+ star->colour[2] = blue * merge + tint * mergen;
+ }
+ starList.append( star );
+ }
+ }
+
+ //generate bottom fire
+ if (parameters.enableBottomFire) {
+ float cRed = (float)parameters.bottomFireColor.red() / 255.0,
+ cGreen = (float)parameters.bottomFireColor.green() / 255.0,
+ cBlue = (float)parameters.bottomFireColor.blue() / 255.0;
+ for (int i=0 ; i<NUMBER_OF_FIREPARTICLES ; i++)
+ {
+ Particle* particle = new Particle( Particle::FireParticle );
+ particle->initializeValues();
+ particle->texture = particleTexture;
+ particle->zspeed *= 4.0;
+ particle->colour[0] = cRed * (0.6 + 0.4*DRAND);
+ particle->colour[1] = cGreen * (0.6 + 0.4*DRAND);
+ particle->colour[2] = cBlue * (0.6 + 0.4*DRAND);
+ particleList.append(particle);
+ }
+ }
+
+ //get sound files
+ if (parameters.enableSound) {
+ sound_explosion = locate("data","kfiresaver/kfs_explode.ogg");
+ sound_debris = locate("data","kfiresaver/kfs_debris.ogg");
+ }
+
+ //create the writer class that manages flying writings.
+ if ( parameters.enableWritings )
+ writer = new Writer("kfs_letters.desc");
+
+ showp.forceBicolour =
+ showp.forceColour =
+ showp.forcePower =
+ showp.forceType = false;
+ showp.timeStamp = 0.0;
+ startTimer(MSECPERIOD);
+
+ //force initialization of "show" variables for the first time
+ timerEvent(NULL);
+}
+
+
+KFireSaver :: ~KFireSaver()
+{
+ freeTexture( particleTexture );
+ freeTexture( starTexture );
+ particleList.clear();
+ starList.clear();
+ imageList.clear();
+ playObjectList.clear();
+ if ( parameters.enableWritings )
+ delete writer;
+}
+
+
+void KFireSaver :: initializeGL()
+{
+ glDisable(GL_DEPTH_TEST);
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+ glShadeModel( GL_SMOOTH );
+
+ resizeGL( 640, 480 );
+}
+
+
+void KFireSaver :: resizeGL( int width, int height )
+{
+ glViewport( 0, 0, width, height );
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ glOrtho( -FIELDW_2, FIELDW_2, -FIELDW_2, FIELDW_2, 5.0, 60.0 );
+
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ float ratio = (float)width / (float)height,
+ numH = 750 - 90 * parameters.particleSize,
+ numW = 1000 - 120 * parameters.particleSize;
+ if ( ratio >= (4.0/3.0) ) {
+ unitX = FIELDWIDTH / (numH * ratio);
+ unitY = FIELDWIDTH / numH;
+ } else {
+ unitX = FIELDWIDTH / numW;
+ unitY = FIELDWIDTH / (numW / ratio);
+ }
+
+ timeval tv;
+ gettimeofday(&tv,NULL);
+ timeStampFrame = (double)tv.tv_sec + (double)tv.tv_usec/1000000.0;
+
+ firstGLFrame = true;
+}
+
+
+void KFireSaver :: paintGL ()
+/* Main procedure. It does the following:
+ - calculate time diff between current and previous frame
+ - clear the color buffer
+ - simple render of stars
+ - advanced render of particles
+ - render
+ - update physics based on time difference
+ - check die/change conditions
+ - call to explode_firework if a leader dies
+ - if random -> start a new firework
+ - if random -> explode a penquin or kde logo
+*/
+{
+ /* calculate TIME ELAPSED between current and previous frame */
+
+ timeval tv;
+ gettimeofday(&tv,NULL);
+ double timeCurrent = (double)tv.tv_sec + (double)tv.tv_usec/1000000.0;
+ double timeDiff = (MSECPERIOD / 1000.0);
+ if (parameters.enableRealtime)
+ {
+ timeDiff = timeCurrent - timeStampFrame;
+ timeStampFrame = timeCurrent;
+ timeDiff = (timeDiff > 0.5) ? 0.5 : (timeDiff < 0.005) ? 0.005 : timeDiff;
+ }
+
+ /* CLEAR SCREEN: to do it there are 2 ways */
+
+ glLoadIdentity();
+ glTranslatef( 0, 0, -50.0 );
+ glDisable( GL_TEXTURE_2D );
+
+ if ( !parameters.enableFade || firstGLFrame )
+ { // quick - clear the OpenGL color buffer
+ glClearColor( 0.0, 0.0, 0.0, 1.0 );
+ glClear( GL_COLOR_BUFFER_BIT );
+ firstGLFrame = false;
+ }
+ else
+ { // good looking
+ /* superpose a semi-transparent black rectangle so we
+ can see a sort of 'tail' for each particle drawn. */
+ const GLfloat conv_tab[10] = {
+ 0.50, 0.33, 0.22, 0.15, 0.10,
+ 0.07, 0.05, 0.03, 0.02, 0.01 };
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+ glColor4f(0.0,0.0,0.0, conv_tab[parameters.fadeAmount]);
+ glBegin( GL_TRIANGLE_STRIP );
+ glVertex2f( FIELDW_2, FIELDW_2 );
+ glVertex2f( -FIELDW_2, FIELDW_2 );
+ glVertex2f( FIELDW_2, -FIELDW_2 );
+ glVertex2f( -FIELDW_2, -FIELDW_2 );
+ glEnd();
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE);
+ }
+
+ /* render STARS */
+
+ if (parameters.enableStars) {
+ if ( starTexture ) {
+ glEnable( GL_TEXTURE_2D );
+ glBindTexture( GL_TEXTURE_2D, currentTexture = starTexture );
+ } else
+ glDisable( GL_TEXTURE_2D );
+
+ glBegin( GL_QUADS );
+ bool flickers = parameters.enableStarFlickering;
+ float alpha = flickers ? 0.5 : 1.0;
+ Particle * star = starList.first();
+ for (; star; star = starList.next())
+ {
+ if (flickers && DRAND<0.6)
+ continue;
+
+ GLfloat sizeX = star->pixelSize * unitX,
+ sizeY = star->pixelSize * unitY,
+ pLeft = star->xpos - sizeX,
+ pRight = star->xpos + sizeX,
+ pTop = star->ypos + sizeY,
+ pBottom = star->ypos - sizeY;
+ glColor4f(star->colour[0], star->colour[1], star->colour[2], alpha);
+ glTexCoord2f( 0, 0 ); // Bottom Left
+ glVertex2f( pLeft, pBottom );
+ glTexCoord2f( 0, 1 ); // Top Left
+ glVertex2f( pLeft, pTop );
+ glTexCoord2f( 1, 1 ); // Top Right
+ glVertex2f( pRight, pTop );
+ glTexCoord2f( 1, 0 ); // Bottom Right
+ glVertex2f( pRight, pBottom );
+ }
+ glEnd();
+ }
+
+ /* render FIREWORKS */
+
+ glBegin( GL_QUADS );
+ bool playedExplodeSound = false;
+ bool flashedScreen = false;
+ Particle * particle = particleList.first();
+ for (; particle; particle = particleList.next())
+ {
+ //bind the texture for current particle (if not already bound)
+ if ( !particle->texture ) {
+ glEnd();
+ glDisable( GL_TEXTURE_2D );
+ glBegin( GL_QUADS );
+ currentTexture = 0;
+ } else if ( particle->texture != currentTexture ) {
+ glEnd();
+ glEnable( GL_TEXTURE_2D );
+ glBindTexture( GL_TEXTURE_2D, currentTexture = particle->texture );
+ glBegin( GL_QUADS );
+ }
+
+ //perspective projection (done by hand to make it funnier than opengl's :-)
+ float mfactor = PERSP_MAG_FACTOR * particle->ypos;
+ if ( mfactor < -246.0 ) {
+ particleList.remove();
+ particleList.prev();
+ continue;
+ }
+ float sfactor = 256.0 / (256.0 + mfactor),
+ posx = sfactor * particle->xpos,
+ posy = sfactor * particle->zpos - 4.0;
+ //size computation (magnify if enableMegaFlares is set)
+ if ( parameters.enableMegaFlares ) {
+ mfactor = parameters.megaFlares*particle->ypos;
+ if ( mfactor < -255.0 || mfactor > 512.0 ) {
+ particleList.remove();
+ particleList.prev();
+ continue;
+ }
+ sfactor = 256.0 / (256.0 + mfactor);
+ if ( sfactor > 64 )
+ sfactor = 76.8 - sfactor / 5.0;
+ }
+ float size = sfactor * particle->pixelSize,
+ sizeX = size * unitX,
+ sizeY = size * unitY;
+
+ //determine brightness (alpha component) for the particle
+ if ( particle->useLife ) {
+ float life = particle->life,
+ startLife = particle->startLife;
+ //bright changes with the following curve: "2*k - k^2" (or "k(2-k)")
+ if ( life > startLife )
+ particle->colour[3] = startLife + 1 - life;
+ else
+ particle->colour[3] = life / startLife;
+ //apply flickering if enabled
+ if (particle->flicker < 0) {
+ particle->colour[3] = 0.2;
+ if (++particle->flicker >= 0)
+ particle->flicker = FLICKER_FRAMES_DELAY;
+ } else if (particle->flicker > 0) {
+ if ( life <= startLife )
+ particle->colour[3] = 1.0;
+ if (--particle->flicker <= 0)
+ particle->flicker = -FLICKER_FRAMES_DELAY;
+ }
+ glColor4fv( particle->colour );
+ } else
+ glColor3fv( particle->colour );
+
+ //draw particle
+ float pLeft = posx - sizeX,
+ pTop = posy + sizeY,
+ pRight = posx + sizeX,
+ pBottom = posy - sizeY;
+ glTexCoord2f( 0, 0 ); // Bottom Left
+ glVertex2f( pLeft, pBottom );
+ glTexCoord2f( 0, 1 ); // Top Left
+ glVertex2f( pLeft, pTop );
+ glTexCoord2f( 1, 1 ); // Top Right
+ glVertex2f( pRight, pTop );
+ glTexCoord2f( 1, 0 ); // Bottom Right
+ glVertex2f( pRight, pBottom );
+
+ //phisically update parameters of the particle
+ particle->updateParameters( timeDiff );
+
+ //check for particle death / explosion
+ switch (particle->particleType)
+ {
+ //a Fireparticle is restarted when in right conditions
+ case Particle::FireParticle:
+ if ( posx < -FIELDW_2 || posx > FIELDW_2 ||
+ (particle->zpos < -10.0 && posy < -FIELDW_2) )
+ {
+ particle->initializeValues();
+ if ( DRAND > 0.9995 )
+ particle->zspeed *= 4;
+ }
+ break;
+
+ //a leader explodes when his z speed drops to zero
+ //or, if it uses life, at death
+ case Particle::FireWorkLeaderParticle:
+ if ((particle->zspeed <= 0.0f && !particle->useLife) ||
+ (particle->useLife && particle->life <= 0.0) )
+ {
+ // play sound if enabled (and once per frame)
+ if (parameters.enableSound && !playedExplodeSound)
+ {
+ playSound(sound_explosion);
+ playedExplodeSound = true;
+ }
+ // flash screen if enabled
+ if (parameters.enableFlash && !flashedScreen) {
+ glEnd();
+ glDisable( GL_TEXTURE_2D );
+ glColor4f( 1,1,1, parameters.flashOpacity / 10.0 );
+ glBegin( GL_TRIANGLE_STRIP );
+ glVertex2f( FIELDW_2, FIELDW_2 );
+ glVertex2f( -FIELDW_2, FIELDW_2 );
+ glVertex2f( FIELDW_2, -FIELDW_2 );
+ glVertex2f( -FIELDW_2, -FIELDW_2 );
+ glEnd();
+ if ( particleTexture )
+ glEnable( GL_TEXTURE_2D );
+ glBegin( GL_QUADS );
+ flashedScreen = true;
+ }
+ // generating children and removing parent
+ int elementIndex = particleList.at();
+ explodeFirework(particle);
+ particleList.remove(elementIndex);
+ particleList.prev();
+ } else if ( parameters.enableTrails && DRAND < 0.4 ) {
+ // leave trail behind the particle (it'a small and slow red debris)
+ Particle * p = new Particle( Particle::FireWorkDebrisParticle );
+ p->initializeValues( 0, particle, 1, 1 );
+ p->texture = particleTexture;
+ p->xspeed /= 4;
+ p->yspeed /= 4;
+ p->zspeed /= 8;
+ p->zacc /= 4;
+ p->pixelSize = 2;
+ p->colour[0] /= 2;
+ int elementIndex = particleList.at();
+ particleList.append( p );
+ particleList.at( elementIndex );
+ }
+ break;
+
+ //remove if dead or outside field
+ default:
+ if (particle->life <= 0.0 || posx<-FIELDW_2 || posx>FIELDW_2 || posy<-FIELDW_2) {
+ particleList.remove();
+ particleList.prev();
+ }
+ break;
+ }
+ }
+ glEnd();
+
+ /* render WRITINGS */
+
+ if ( parameters.enableWritings )
+ {
+ int chance = (int) (1000.0 * DRAND);
+ if ( !chance ) {
+ static const TQString someStrings[] = {
+ i18n("www.kde.org"),
+ i18n("My TDE, please!"),
+ i18n("KoNqUeR the World"),
+ i18n("KFIRESAVER 3D"),
+ i18n("Gimme your eyes..."),
+ i18n("Thank you for using TDE"),
+ i18n("Going insane tonight"),
+ };
+ int n = (int)(6.0 * DRAND);
+ writer->spawnWords( someStrings[n], Writer::Fun1 );
+ }
+ writer->render( timeDiff );
+ }
+
+ /* generate a new FIREWORK_LEADER */
+
+ int random = (int) ((float)parameters.fireworksFrequency * DRAND);
+ if (showp.ShowType == Show)
+ {
+ //double the chances ('frequency') to raise a new leaderParticle
+ //but envelop it under a sine function
+ float step = (showp.timeStamp - timeCurrent) / showp.timeGap;
+ if (DRAND > sin(M_PI*step))
+ random = -1;
+ if (showp.type == AngelHairs && DRAND < 0.5)
+ random = -1;
+ }
+ if ( !random )
+ {
+ Particle * particle = new Particle( Particle::FireWorkLeaderParticle );
+ particle->initializeValues();
+ particle->texture = flareTexture;
+ particleList.append( particle );
+ }
+
+ /* explode a logo */
+
+ int logoImages = imageList.count();
+ if ( logoImages > 0 ) {
+ random = (int) (parameters.logoFrequency * logoImages * 200.0 * DRAND);
+ if ( random < logoImages )
+ {
+ if (parameters.enableFlash && !flashedScreen) {
+ glDisable( GL_TEXTURE_2D );
+ glColor4f( 1,1,1, parameters.flashOpacity / 10.0 );
+ glBegin( GL_TRIANGLE_STRIP );
+ glVertex2f( FIELDW_2, FIELDW_2 );
+ glVertex2f( -FIELDW_2, FIELDW_2 );
+ glVertex2f( FIELDW_2, -FIELDW_2 );
+ glVertex2f( -FIELDW_2, -FIELDW_2 );
+ glEnd();
+ }
+ burnLogo( imageList.at(random) );
+ }
+ }
+}
+
+
+int KFireSaver :: pickColour()
+{
+ int color = (int) (DRAND * parameters.colorsCount);
+ return parameters.colorsT[ color ];
+}
+
+
+KFireSaver :: enumFireworkType KFireSaver :: pickType()
+{
+ int type = (int) (DRAND * parameters.typesCount);
+ return parameters.typesT[ type ];
+}
+
+
+void KFireSaver :: explodeFirework(Particle* leaderParticle)
+{
+ GLfloat displace[3] = {0.0,0.0,0.0};
+ float tmp1 = 0.0, tmp2 = 0.0, tmp3 = 0.0, tmp4 = 0.0, tmp5 = 0.0;
+
+ // color of exploded particles
+ bool bicolor = parameters.enableCombos && (showp.forceBicolour || DRAND > 0.95),
+ flickers = false;
+ int cscheme = showp.forceColour ? showp.colour : pickColour(),
+ cscheme2 = showp.forceColour ? showp.colourSec : pickColour();
+
+ // randomize type of exploding firework
+ enumFireworkType fwType =
+ showp.forceType ? (enumFireworkType) showp.type : pickType();
+
+ // other options for generated particles
+ int number = (int) ((DRAND + DRAND) * 150.0);
+ float power = showp.forcePower ?
+ showp.powerEnvelop * (0.8 + 0.3*DRAND) :
+ DRAND * 11.0 + 2.0,
+ powermin = DRAND * power;
+
+ // now some rules ...
+ //a splitter can't split up more than 2 times
+ if (fwType == Splitter && leaderParticle->explosionsDepth > 1) {
+ if (parameters.typesCount == 1)
+ return;
+ if (showp.forceType)
+ fwType = showp.typeSec;
+ if (fwType == Splitter)
+ while ( (fwType = pickType()) == Splitter );
+ }
+
+ // PRE-ADJUST parameters for the firework we're creating
+ switch ( fwType )
+ {
+ //no need to handle this. it's the default configuration.
+ case Sphere:
+ break;
+
+ //explosion whithout emitting particles, only a flash
+ case NoFW:
+ number = 1;
+ power = powermin = 0;
+ break;
+
+ //splits up into 'number' orange pieces. tmp1 holds base_life
+ case Splitter:
+ cscheme = showp.forceColour ? showp.colour : 1;
+ bicolor = false;
+ number = 3 + (int) (DRAND * 4);
+ power /= 2.0;
+ powermin = power / 2.0;
+ tmp1 = 0.4 + DRAND * 1.5;
+ break;
+
+ //randomize a couple of angles (phi - theta) for exploding circle
+ case BiCircle:
+ number *= 2;
+ case Circle:
+ power = DRAND * 5.0 + 4.0;
+ tmp1 = DRAND * M_PI;
+ tmp2 = DRAND * M_PI;
+ tmp4 = cos(tmp2); //c2
+ tmp3 = sin(tmp2); //s2
+ tmp2 = cos(tmp1); //c1
+ tmp1 = sin(tmp1); //s1
+ break;
+
+ //cascade of flickering orange particles
+ case AngelHairs:
+ cscheme = showp.forceColour ? showp.colour : 1;
+ bicolor = false;
+ flickers = true;
+ power = 0.8 + DRAND * 1.9;
+ powermin = DRAND*0.5;
+ number = 100 + (int)(DRAND * 150);
+ displace[0] = -leaderParticle->xspeed/2;
+ displace[1] = -leaderParticle->yspeed/2;
+ displace[2] = power;
+ break;
+
+ //behave as a standard spherical firework
+ case Spirals:
+ break;
+
+ //not yet implemented, suppressing particles
+ case SuperNova:
+ case NoRender:
+ number = 0;
+ break;
+ }
+
+ //limit number of particles as we are getting to the capacity saturation
+ float currentParticles = (float) particleList.count();
+ const float particleCapacity = 15000;
+ const float particleGap = 8000;
+ if ( number > 10 && currentParticles > (particleCapacity - particleGap) )
+ {
+ //NoFW, Splitter and NoRender aren't limited.
+ number = (int)( (float)number * (particleCapacity - currentParticles) / particleGap );
+ if ( number < 10 )
+ number = 0;
+ }
+
+ int newExplosionsDepth = leaderParticle->explosionsDepth + 1;
+ for (int i=0 ; i<number ; i++)
+ {
+ Particle * particle;
+ if ( fwType == Spirals )
+ particle = new TurningParticle( Particle::FireWorkDebrisParticle );
+ else
+ particle = new Particle( Particle::FireWorkDebrisParticle );
+
+ particle->initializeValues (
+ bicolor && (i>number/2) ? cscheme2 : cscheme,
+ leaderParticle, powermin, power,
+ flickers, displace );
+ particle->texture = particleTexture;
+ particle->explosionsDepth = newExplosionsDepth;
+
+ // POST-ADJUST particle coefficients adapting to current FireworkType
+ switch ( fwType )
+ {
+ //create a big, white particle, simulating explosion
+ case NoFW:
+ if (parameters.enableFade)
+ particle->startLife = particle->life = 0.030;
+ else
+ particle->startLife = particle->life = 0.075;
+ particle->texture = flareTexture;
+ particle->colour[0]=
+ particle->colour[1]=
+ particle->colour[2]=1.0;
+ particle->pixelSize = 50.0 + 75.0 * DRAND;
+ particle->zacc = 0;
+ break;
+
+ //default. no need to change parameters, only create the
+ //'sphere light' as the first big particle if set.
+ case Sphere:
+ if (i==0 && parameters.enableSphereLight && number > 40) {
+ particle->texture = flareTexture;
+ particle->xspeed = leaderParticle->xspeed;
+ particle->yspeed = leaderParticle->yspeed;
+ particle->zspeed = 0.0;
+ particle->colour[0] /= 2.0;
+ particle->colour[1] /= 2.0;
+ particle->colour[2] /= 2.0;
+ float impression = power * (float)number/5.0;
+ particle->pixelSize = 25.0 * DRAND + impression;
+ if (parameters.enableFade) {
+ particle->startLife = particle->life = 0.040;
+ } else {
+ particle->startLife = 1.3;
+ particle->life = 1.8;
+ }
+ }
+ break;
+
+ //
+ case Splitter:
+ particle->particleType = Particle::FireWorkLeaderParticle;
+ particle->pixelSize *= 3.0;
+ particle->startLife = particle->life = tmp1 * (0.75 + DRAND/3.0);
+ if (particle->zspeed < 0)
+ particle->zspeed = -particle->zspeed;
+ break;
+
+ case Circle:
+ case BiCircle:
+ tmp5 = 2 * M_PI * DRAND;
+ //MMX can be useful.. if you know how to use it :-)
+ if ( fwType == BiCircle && i > number/2 ) {
+ GLfloat ey = cos(tmp5),
+ ez = sin(tmp5);
+ particle->xspeed = power * ( tmp3*ez );
+ particle->yspeed = power * ( tmp2*ey - tmp1*tmp4*ez );
+ particle->zspeed = power * ( tmp1*ey + tmp2*tmp4*ez );
+ } else {
+ GLfloat ex = sin(tmp5),
+ ey = cos(tmp5);
+ particle->xspeed = power * ( tmp4*ex );
+ particle->yspeed = power * ( tmp1*tmp3*ex + tmp2*ey );
+ particle->zspeed = power * ( -tmp2*tmp3*ex + tmp1*ey );
+ }
+ break;
+
+ case AngelHairs:
+ particle->zacc = -9.807 * (0.05 + DRAND*0.20);
+ particle->life = 2.0 + DRAND*2.5;
+ particle->startLife = particle->life - 1;
+ if (particle->zspeed < 0)
+ particle->zspeed *= -1;
+ //particle->pixelSize = 5.0;
+ break;
+
+ case Spirals:
+ particle->texture = diastarTexture;
+ break;
+
+ //discard cases
+ case SuperNova:
+ case NoRender:
+ break;
+ }
+ particleList.append(particle);
+ }
+}
+
+void KFireSaver :: timerEvent(TQTimerEvent*)
+{
+ timeval tv;
+ gettimeofday(&tv,NULL);
+ double currentTime = (double)tv.tv_sec + (double)tv.tv_usec/1000000.0;
+
+ bool chooseType = false,
+ chooseColor = false,
+ chooseOthers = false,
+ updateTimings = false;
+ bool firstTime = showp.timeStamp == 0.0;
+ bool endOfScene = currentTime >= showp.timeStamp;
+
+ if (firstTime)
+ switch (showp.ShowType)
+ {
+ case Monotype:
+ /* first time choose the type, color and attributes will
+ be choosed randomly for every firework which explodes*/
+ showp.forceType = true;
+ chooseType = true;
+ break;
+
+ case Monochrome:
+ /* first time choose the color, type and attributes will
+ be choosed randomly for every firework which explodes*/
+ showp.forceColour = true;
+ chooseColor =
+ chooseOthers = true;
+ break;
+
+ default: break;
+ }
+
+ if (endOfScene || firstTime)
+ switch (showp.ShowType)
+ {
+ case Show:
+ /* if a scene ended, randomize global parameters for the
+ whole next scene */
+ showp.forceType = true;
+ showp.forceColour = true;
+ showp.forcePower = true;
+ chooseOthers =
+ chooseColor =
+ chooseType = true;
+ updateTimings = true;
+ break;
+
+ default: break;
+ }
+
+ if ( chooseType )
+ {
+ showp.type = pickType();
+ if (parameters.typesCount < 2)
+ showp.typeSec = NoRender;
+ else
+ while ((showp.typeSec = pickType()) == showp.type);
+ }
+ if ( chooseColor ) {
+ showp.colour = pickColour();
+ showp.colourSec = pickColour();
+ }
+ if ( chooseOthers )
+ {
+ showp.powerEnvelop = DRAND * 8.0 + 3.0;
+ if (DRAND > 0.9)
+ {
+ showp.forceBicolour = true;
+ showp.colourSec = pickColour();
+ } else
+ showp.forceBicolour = false;
+ }
+ if ( firstTime || updateTimings )
+ {
+ if (DRAND < 0.2)
+ showp.timeGap = 1.0 + DRAND * 2.0;
+ else
+ showp.timeGap = 3.0 + DRAND * 10.0;
+ showp.timeStamp = currentTime + showp.timeGap;
+ showp.timeGap /= 1.5; //hack to introduce delay in sine func
+ }
+
+ updateGL();
+}
+
+void KFireSaver :: burnLogo(TQImage * image)
+{
+ if (!image || image->isNull())
+ return;
+ int step = parameters.enableReduceLogo ? 2 : 1,
+ imageW = image->width(),
+ imageH = image->height(),
+ offsetX = imageW / 2,
+ offsetY = imageH / 2;
+ float speed = FIELDW_4 / (imageW > imageH ? imageW : imageH),
+ speedXOffs = 5 * (DRAND - DRAND),
+ speedYOffs = DRAND + DRAND + 1;
+ //if image is too big, lower sample points
+ while ((imageW/step)>96 || (imageH/step)>96)
+ step *= 2;
+ for (int y=0 ; y<imageH ; y+=step)
+ {
+ for (int x=0 ; x<imageW ; x+=step)
+ {
+ TQRgb pixel = image->pixel(x,y);
+ if ( tqAlpha(pixel) < 250 )
+ continue;
+ //if ( DRAND > 0.9 )
+ // continue;
+
+ Particle* particle = new Particle( Particle::LogoParticle );
+ particle->initializeValues();
+ particle->texture = particleTexture;
+
+ float xI = (x - offsetX) ,
+ yI = (offsetY - y) ;
+ particle->xpos = xI * speed * 0.5;
+ particle->zpos = yI * speed * 0.5 + 5;
+ particle->xspeed = xI * speed + speedXOffs;
+ particle->zspeed = yI * speed + speedYOffs;
+
+ particle->colour[0] = tqRed(pixel) / 255.0f;
+ particle->colour[1] = tqGreen(pixel) / 255.0f;
+ particle->colour[2] = tqBlue(pixel) / 255.0f;
+
+ particleList.append(particle);
+ }
+ }
+ if (parameters.enableSound)
+ playSound(sound_debris);
+}
+
+void KFireSaver :: playSound(TQString file)
+{
+ //flush inactive players
+ KPlayObject * playObject = playObjectList.first();
+ while ( playObject )
+ {
+ if ( playObject->state() != Arts::posPlaying )
+ {
+ playObjectList.remove();
+ playObject = playObjectList.current();
+ } else
+ playObject = playObjectList.next();
+ }
+
+ //discart this sound if the player queue is already full (4 channels playing)
+ if ( playObjectList.count() >= 6 )
+ return;
+
+ // not needed when all of the files are in the distribution
+ //if (!TQFile::exists(file))
+ //return;
+
+ KPlayObjectFactory factory(artsServer.server());
+ playObject = factory.createPlayObject(KURL(file), true);
+
+ if (playObject && !playObject->isNull())
+ {
+ playObject->play();
+ playObjectList.append(playObject);
+ }
+}
+
+bool KFireSaver :: loadTexture( TQString fileName, unsigned int & textureID )
+{
+ //reset texture ID to the default EMPTY value
+ textureID = 0;
+
+ //load image
+ TQImage tmp;
+ if ( !tmp.load( fileName ) )
+ return false;
+
+ //convert it to suitable format (flipped RGBA)
+ TQImage texture = TQGLWidget::convertToGLFormat( tmp );
+ if ( texture.isNull() )
+ return false;
+
+ //get texture number and bind loaded image to that texture
+ glGenTextures( 1, &textureID );
+ glBindTexture( GL_TEXTURE_2D, textureID );
+ glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
+ glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
+ glTexImage2D( GL_TEXTURE_2D, 0, 4 /* 3 ??? */, texture.width(), texture.height(),
+ 0, GL_RGBA, GL_UNSIGNED_BYTE, texture.bits() );
+ return true;
+}
+
+void KFireSaver :: freeTexture( unsigned int & textureID )
+{
+ if ( textureID > 0 )
+ glDeleteTextures( 1, &textureID );
+ textureID = 0;
+}
+
+void KFireSaver :: readConfig ()
+{
+ TDEConfig config("kfiresaverrc",true,false);
+
+ // show
+ config.setGroup( "Show" );
+ showp.ShowType = (enum enumShowType)config.readNumEntry( "ShowType", 1 );
+ parameters.fireworksFrequency = 11 - config.readNumEntry( "FireworksFrequency", 7 );
+ if ( parameters.fireworksFrequency < 1 )
+ parameters.fireworksFrequency = 1;
+ if ( parameters.fireworksFrequency > 11 )
+ parameters.fireworksFrequency = 11;
+ parameters.fireworksFrequency *= (parameters.fireworksFrequency + 1); //*karl gauss's sum*
+ parameters.particleSize = config.readNumEntry( "ParticlesSize", 0 );
+ if ( parameters.particleSize < -5 )
+ parameters.particleSize = -5;
+ if ( parameters.particleSize > 5 )
+ parameters.particleSize = 5;
+ if ( parameters.enableBottomFire = config.readBoolEntry( "enable-BottomFire", true ) )
+ {
+ TQColor blue = TQt::darkBlue;
+ parameters.bottomFireColor = config.readColorEntry( "BottomFireColor", &blue );
+ }
+ parameters.enableSound = config.readBoolEntry( "enable-Sounds", false );
+ parameters.enableNoOverhead = config.readBoolEntry( "enable-NoOverhead", true );
+ parameters.enableRealtime = config.readBoolEntry( "enable-FrameSkip", true );
+
+ // fireworks
+ config.setGroup( "Fireworks" );
+ parameters.typesCount = 0;
+ if ( config.readBoolEntry( "use-Classic", true ) )
+ parameters.typesT[parameters.typesCount++] = Sphere;
+ if ( config.readBoolEntry( "use-Explosion", false ) )
+ parameters.typesT[parameters.typesCount++] = NoFW;
+ if ( config.readBoolEntry( "use-FlameRing", false ) )
+ parameters.typesT[parameters.typesCount++] = Circle;
+ if ( config.readBoolEntry( "use-FlameWorld", false ) )
+ parameters.typesT[parameters.typesCount++] = BiCircle;
+ if ( config.readBoolEntry( "use-Fall", false ) )
+ parameters.typesT[parameters.typesCount++] = AngelHairs;
+ if ( config.readBoolEntry( "use-Splitter", false ) )
+ parameters.typesT[parameters.typesCount++] = Splitter;
+ if ( config.readBoolEntry( "use-Spirals", false ) )
+ parameters.typesT[parameters.typesCount++] = Spirals;
+ if ( config.readBoolEntry( "use-SuperNova", false ) )
+ parameters.typesT[parameters.typesCount++] = SuperNova;
+ if ( !parameters.typesCount ) {
+ kdWarning() << "KFireSaver3D: Warning, no fireworks enabled in config file" << endl;
+ kdWarning() << " enabling 'Classic Spherical'" << endl;
+ parameters.typesCount = 1;
+ parameters.typesT[0] = Sphere;
+ }
+ parameters.typesT[ parameters.typesCount ] =
+ parameters.typesT[ parameters.typesCount-1 ];
+ parameters.colorsCount = 0;
+ if ( config.readBoolEntry( "use-Red", false ) )
+ parameters.colorsT[parameters.colorsCount++] = 0;
+ if ( config.readBoolEntry( "use-Orange", true ) )
+ parameters.colorsT[parameters.colorsCount++] = 1;
+ if ( config.readBoolEntry( "use-Green", false ) )
+ parameters.colorsT[parameters.colorsCount++] = 2;
+ if ( config.readBoolEntry( "use-Blue", false ) )
+ parameters.colorsT[parameters.colorsCount++] = 3;
+ if ( config.readBoolEntry( "use-White", true ) )
+ parameters.colorsT[parameters.colorsCount++] = 4;
+ if ( config.readBoolEntry( "use-Purple", false ) )
+ parameters.colorsT[parameters.colorsCount++] = 5;
+ if ( config.readBoolEntry( "use-DeepGreen", true ) )
+ parameters.colorsT[parameters.colorsCount++] = 6;
+ if ( !parameters.colorsCount )
+ {
+ kdWarning() << "KFireSaver3D: Warning enable at least one color" << endl;
+ kdWarning() << " enabling 'Blinding White'" << endl;
+ parameters.colorsCount = 1;
+ parameters.colorsT[0] = 4;
+ }
+ parameters.colorsT[ parameters.colorsCount ] =
+ parameters.colorsT[ parameters.colorsCount-1 ];
+ parameters.enableCombos = config.readBoolEntry( "use-Multicolor", true );
+
+ // specials
+ config.setGroup( "Specials" );
+ if ( parameters.enableLogos = config.readBoolEntry( "enable-Logos", true ) )
+ {
+ TQImage tempImage;
+ tempImage.setAlphaBuffer( true );
+ if ( config.readBoolEntry( "LogosTux", true ) )
+ if ( tempImage.load(locate("data","kfiresaver/kfs_tux.png")) )
+ imageList.append( new TQImage(tempImage) );
+ if ( config.readBoolEntry( "LogosKonqui", true ) )
+ if ( tempImage.load(locate("data","kfiresaver/kfs_kde.png")) )
+ imageList.append( new TQImage(tempImage) );
+ if ( config.readBoolEntry( "LogosKDEIcons", true ) ) {
+ const TQString icons[] = {
+ "3floppy_unmount", "cdrom_unmount", "hdd_mount", "kmix",
+ "network", "my-computer", "folder_home", "konqueror",
+ "kmail", "penguin", "personal" };
+ for ( int i = 0; i < 11; i++ )
+ imageList.append( new TQImage(DesktopIcon(icons[i],64).convertToImage()) );
+ }
+ parameters.enableReduceLogo = config.readBoolEntry( "LogosReduceDetail", true );
+ parameters.logoFrequency = 11 - config.readNumEntry( "LogosFrequency", 4 );
+ if ( parameters.logoFrequency < 1 )
+ parameters.logoFrequency = 1;
+ if ( parameters.logoFrequency > 11 )
+ parameters.logoFrequency = 11;
+ }
+ if ( parameters.enableStars = config.readBoolEntry( "enable-Stars", true ) )
+ {
+ parameters.enableStarFlickering = config.readBoolEntry( "StarsFlicker", false );
+ parameters.enableStarGradient = config.readBoolEntry( "StarsGradient", true );
+ parameters.starsNumber = config.readNumEntry( "StarsNumber", 4 );
+ if ( parameters.starsNumber < 0 )
+ parameters.starsNumber = 0;
+ if ( parameters.starsNumber > 10 )
+ parameters.starsNumber = 10;
+ }
+ parameters.enableWritings = config.readBoolEntry( "enable-Writings", true );
+
+ // effects
+ config.setGroup( "Effects" );
+ parameters.enableSphereLight = config.readBoolEntry( "enable-SphericalLight", true );
+ if ( parameters.enableFlash = config.readBoolEntry( "enable-Flash", false ) )
+ {
+ parameters.flashOpacity = config.readNumEntry( "FlashOpacity", 5 );
+ if ( parameters.flashOpacity < 0 )
+ parameters.flashOpacity = 0;
+ if ( parameters.flashOpacity > 10 )
+ parameters.flashOpacity = 10;
+ }
+ if ( parameters.enableFade = config.readBoolEntry( "enable-Fade", false ) )
+ {
+ parameters.fadeAmount = config.readNumEntry( "FadeIntensity", 3 );
+ if ( parameters.fadeAmount < 0 )
+ parameters.fadeAmount = 0;
+ if ( parameters.fadeAmount > 9 )
+ parameters.fadeAmount = 9;
+ }
+ if ( parameters.enableMegaFlares = config.readBoolEntry( "enable-Flares", true ) )
+ {
+ parameters.megaFlares = config.readNumEntry( "FlaresDimension", 5 );
+ if ( parameters.megaFlares < 0 )
+ parameters.megaFlares = 0;
+ if ( parameters.megaFlares > 10 )
+ parameters.megaFlares = 10;
+ parameters.megaFlares += 4;
+ parameters.megaFlares *= 2;
+ }
+ parameters.enableTrails = config.readBoolEntry( "enable-Trail", false );
+}
diff --git a/tdescreensaver/kdesavers/firesaver.h b/tdescreensaver/kdesavers/firesaver.h
new file mode 100644
index 00000000..8a34c5e9
--- /dev/null
+++ b/tdescreensaver/kdesavers/firesaver.h
@@ -0,0 +1,170 @@
+// This file is part of KFireSaver3D.
+
+// KFireSaver3D is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+
+// KFireSaver3D is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with KFireSaver3D; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+// Author: Enrico Ros, based on the great work of David Sansome (kfiresaver)
+// Email: asy@libero.it
+
+#ifndef KFIRESAVER_H
+#define KFIRESAVER_H
+
+#define PERSP_MAG_FACTOR 8.0
+#define NUMBER_OF_FIREPARTICLES 180
+
+#define MSECPERIOD 17 // 1000ms / 60fps = 16.6667 ~= 17 [ms/frame]
+
+#define FIELDWIDTH 30.0
+#define FIELDW_2 (FIELDWIDTH/2.0)
+#define FIELDW_4 (FIELDWIDTH/4.0)
+
+#include <tqgl.h>
+#include <tqptrlist.h>
+#include <tqimage.h>
+#include <tqstring.h>
+#include <tqcolor.h>
+
+#include <arts/kplayobject.h>
+#include <arts/kartsserver.h>
+#include <arts/kartsdispatcher.h>
+
+class Particle;
+class Writer;
+
+class KFireSaver : public TQGLWidget
+{
+ public:
+ KFireSaver( TQWidget *parent=0, const char *name=0 );
+ ~KFireSaver();
+
+ protected:
+ void initializeGL();
+ void resizeGL( int, int );
+ void paintGL();
+ void timerEvent( class TQTimerEvent * );
+
+ private:
+ enum enumFireworkType
+ {
+ Sphere = 0,
+ NoFW = 1,
+ Circle = 2,
+ BiCircle = 3,
+ AngelHairs = 4,
+ Splitter = 5,
+ Spirals = 6,
+ SuperNova = 7,
+ NoRender = 8
+ };
+
+ inline enumFireworkType pickType();
+ inline int pickColour();
+ void explodeFirework(Particle* fireWorkLeaderParticle);
+ void burnLogo(TQImage * image);
+ void playSound(TQString file);
+ bool loadTexture(TQString file, unsigned int & textureID);
+ void freeTexture(unsigned int & textureID);
+ void readConfig();
+
+ //list of particles and stars
+ TQPtrList<Particle>
+ particleList,
+ starList;
+
+ //stuff for 'exploding' pixmaps (kde, tux, icons..)
+ TQPtrList<TQImage>
+ imageList;
+
+ //texture stuff
+ unsigned int
+ currentTexture,
+ particleTexture,
+ starTexture,
+ flareTexture,
+ diastarTexture; // (to add) novaTexture cometTexture
+
+ //sound stuff
+ KArtsDispatcher artsDispatcher;
+ KArtsServer artsServer;
+ TQPtrList<KPlayObject> playObjectList;
+ TQString sound_explosion,
+ sound_debris;
+
+ //other stuff
+ class Writer * writer;
+ float unitX,
+ unitY;
+ double timeStampFrame;
+ bool firstGLFrame;
+
+ struct {
+ bool enableBottomFire, //show
+ enableSound,
+ enableNoOverhead,
+ enableRealtime,
+ enableCombos, //fireworks
+ enableLogos, //specials
+ enableReduceLogo,
+ enableStars,
+ enableStarFlickering,
+ enableStarGradient,
+ enableWritings,
+ enableSphereLight, //effects
+ enableFlash,
+ enableFade,
+ enableMegaFlares,
+ enableTrails;
+ int fireworksFrequency, //show
+ particleSize,
+ logoFrequency, //specials
+ starsNumber,
+ flashOpacity, //effects
+ fadeAmount,
+ megaFlares;
+ TQColor
+ bottomFireColor;
+ int colorsCount,
+ colorsT[8],
+ typesCount;
+ enumFireworkType
+ typesT[9];
+ } parameters;
+
+
+ enum enumShowType {
+ Show = 0,
+ Random = 1,
+ Monotype = 2,
+ Monochrome = 3
+ };
+
+ struct {
+ enum enumShowType ShowType;
+ int colour,
+ colourSec;
+ enumFireworkType
+ type,
+ typeSec;
+ bool forceBicolour,
+ forceColour,
+ forcePower,
+ forceType;
+ float powerEnvelop;
+ double timeStamp,
+ timeGap;
+ } showp;
+};
+
+#endif
diff --git a/tdescreensaver/kdesavers/firesaverparticle.cpp b/tdescreensaver/kdesavers/firesaverparticle.cpp
new file mode 100644
index 00000000..421115a7
--- /dev/null
+++ b/tdescreensaver/kdesavers/firesaverparticle.cpp
@@ -0,0 +1,273 @@
+// This file is part of KFireSaver3D.
+
+// KFireSaver3D is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+
+// KFireSaver3D is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with KFireSaver3D; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+// Author: Enrico Ros, based on the great work of David Sansome (kfiresaver)
+// Email: asy@libero.it
+
+#include <math.h>
+#include <stdlib.h>
+
+#include "firesaverparticle.h"
+#include "firesaver.h"
+
+//current color scheme : red orng grn blue w m c
+static const GLfloat c_red_min[7] = { 0.4, 0.9, 0, 0, 1, 0, 0 };
+static const GLfloat c_red_max[7] = { 1, 1, 0, 0, 1, 1, 0 };
+static const GLfloat c_green_min[7] = { 0, 0.4, 0.4, 0, 1, 0, 0 };
+static const GLfloat c_green_max[7] = { 0, 0.5, 1, 0.5, 1, 0, 1 };
+static const GLfloat c_blue_min[7] = { 0, 0.1, 0, 0.5, 1, 0, 0 };
+static const GLfloat c_blue_max[7] = { 0, 0.2, 0, 1, 1, 1, 1 };
+
+
+//default initialization (good for Leader / Fire)
+Particle :: Particle( ParticleType pT )
+ : particleType( pT ), explosionsDepth( 0 ), texture( 0 ),
+ xpos( 0.0 ), ypos( 0.0 ), zpos( -9.9 ),
+ xspeed( 0.0 ), yspeed( 0.0 ), zspeed( 0.0 ), zacc( -9.807 ),
+ life( 0.0 ), startLife( 0.0 ),
+ pixelSize( 5.0 ), useLife( true ), flicker( 0 )
+{
+ colour[0] = 0;
+ colour[1] = 0;
+ colour[2] = 0;
+ colour[3] = 1;
+}
+
+
+void Particle :: initializeValues (
+ int cs,
+ Particle* debrisParent,
+ GLfloat powermin, GLfloat powermax,
+ bool flickers,
+ GLfloat *displace )
+//note: this function is called when a particle needs a set of default parameters.
+// these depends on the ParticleType.
+{
+ switch (particleType)
+ {
+// -- FireParticle (params: [cs])
+// born in a rectangle centered in { 0, 0, -9.9 }
+// speed 3-6 [m/s] blue/cyan colored
+// this is only done at the beginning or when a particle dies
+ case FireParticle:
+ xpos = DRAND * FIELDWIDTH - FIELDW_2;
+ ypos = DRAND - 2.0;
+
+ xspeed = DRAND * 4.0 - 2.0;
+ yspeed = DRAND * 2.0;
+ zspeed = DRAND * 3.0 + 3.0;
+
+ useLife = false;
+ pixelSize = 2.0 + DRAND * 2.0;
+ break;
+
+// -- FireWorkLeaderParticle (params: none)
+// they start in a rectangle at the same height but
+// with different power and the same 'orange' colour
+ case FireWorkLeaderParticle:
+ xpos = DRAND * 14.0 - 7.0;
+ ypos = DRAND * 2.0 - 1.0;
+
+ xspeed = DRAND * 8.0 - 4.0 - (xpos / 2.0)*DRAND;
+ yspeed = DRAND * 8.0 - 4.0;
+ zspeed = DRAND * 6.5 + 18.0;
+
+ colour[0] = 0.6;
+ colour[1] = DRAND * 0.4;
+ colour[2] = 0.0;
+
+ useLife = false;
+ break;
+
+// -- LogoParticle (params: none)
+// they start in the middle of the screen.
+// little g-force, constant life, weavy-y
+ case LogoParticle:
+ yspeed = 3*(DRAND - DRAND);
+ zacc = -9.807f / 5.0f;
+
+ startLife = 0.7f;
+ life = 1.7f;
+ break;
+
+// -- StarParticle (params: none)
+// spherically distributed. xpos and ypos are the
+// transformed screen positions of the star.
+ case StarParticle:
+ colour[0] = DRAND * 0.2 + 0.5;
+ colour[1] = DRAND * 0.2 + 0.5;
+ colour[2] = DRAND * 0.2 + 0.5;
+
+ {bool accepted = false;
+ while (!accepted) {
+ float module = 30,
+ theta = DRAND * M_PI * 2.0,
+ u = DRAND * 2.0 - 1.0,
+ root = sqrt( 1 - u*u );
+ xpos = module * root * cos(theta);
+ ypos = fabs(module * root * sin(theta)) - 10.0;
+ zpos = fabs(module * u);
+
+ float sfactor = 256.0 / (256.0 + PERSP_MAG_FACTOR*ypos);
+ xpos *= sfactor;
+ ypos = sfactor * zpos - FIELDW_2;
+
+ pixelSize = sfactor * (2.0 + 3.0*DRAND);
+
+ accepted = xpos > -FIELDW_2 && xpos < FIELDW_2 &&
+ ypos > -FIELDW_2 && ypos < FIELDW_2;
+ }}
+ break;
+
+// -- FireWorkDebrisParticle (params: cs, parent, [powerm], [powerM], [flickers], [displace])
+// parameters are randomized for a 'spherical' explosion.
+// power{min,max}, flickers and displace applies only for that
+// kind of ParticleType.
+ case FireWorkDebrisParticle:
+
+ //same origin of the dead leader
+ xpos = debrisParent->xpos;
+ ypos = debrisParent->ypos;
+ zpos = debrisParent->zpos;
+
+ //true spherical randomization
+ float module = powermin + DRAND * (powermax - powermin),
+ theta = DRAND * M_PI * 2.0,
+ u = DRAND * 2.0 - 1.0,
+ root = sqrt( 1 - u*u );
+ xspeed = debrisParent->xspeed + module * root * cos(theta) * (1.0 + DRAND/3.0);
+ yspeed = debrisParent->yspeed + module * root * sin(theta) * (1.0 + DRAND/3.0);
+ zspeed = module * u * (1.0 + DRAND/3.0); //was 0.9 + DRAND/3
+
+ //if set add a displace to speed
+ if ( displace ) {
+ xspeed += displace[0];
+ yspeed += displace[1];
+ zspeed += displace[2];
+ }
+
+ //randomize the color choosing on current palette
+ colour[0] = c_red_min[cs] + (c_red_max[cs]-c_red_min[cs]) * DRAND;
+ colour[1] = c_green_min[cs] + (c_green_max[cs]-c_green_min[cs]) * DRAND;
+ colour[2] = c_blue_min[cs] + (c_blue_max[cs]-c_blue_min[cs]) * DRAND;
+
+ pixelSize = DRAND * 2.0 + 2.0;
+ zacc = -9.807 / (6.0 - pixelSize);
+
+ life = startLife = pixelSize / 2.0;
+
+ //if flickers is set the current visible delay is randomized
+ if ( flickers )
+ flicker = (int) ((DRAND * 2.0 - 1.0) * (float)FLICKER_FRAMES_DELAY);
+ break;
+ }
+}
+
+
+void Particle :: updateParameters( float dT )
+//note: this procedure uses a reduced set of parameters
+// x and y axis acceleration is no more used
+// the only external iterations are:
+// - the g force
+// - a sort of air friction that limits speed in x,y and
+// acceleration on z
+{
+ xpos += xspeed * dT;
+ ypos += yspeed * dT;
+ zpos += (zspeed + zacc*dT/2) * dT;
+
+ zspeed += zacc * dT;
+
+ xspeed *= 0.998;
+ yspeed *= 0.998;
+ zspeed *= 0.999;
+
+ if (useLife)
+ life -= dT;
+}
+
+
+// BEGIN TurningParticle class
+
+TurningParticle :: TurningParticle( ParticleType pT )
+ : Particle( pT ) {}
+
+void TurningParticle :: initializeValues (
+ int cs,
+ Particle* leader,
+ GLfloat powermin,
+ GLfloat powermax,
+ bool /*flickers*/,
+ GLfloat * /*displace*/ )
+{
+ //same origin of the parent
+ xpos = leader->xpos;
+ ypos = leader->ypos;
+ zpos = leader->zpos;
+
+ //velocity : true spherical randomization
+ float module = powermin + (powermax - powermin) * DRAND * 0.6,
+ theta = DRAND * M_PI * 2.0,
+ u = DRAND * 2.0 - 1.0,
+ root = sqrt( 1 - u*u );
+ xspeed = -module * root * cos(theta);
+ yspeed = -module * root * sin(theta);
+ zspeed = module * u;
+
+ //spin axis : in quadrature with velocity
+ module = (1 + DRAND) / 40;
+ u = DRAND * 2.0 - 1.0;
+ root = sqrt( 1 - u*u );
+ // axis to spin around
+ wx = module * root * cos(theta + M_PI_2);
+ wy = module * root * sin(theta + M_PI_2);
+ wz = module * u;
+
+ //randomize the color choosing on current palette
+ colour[0] = c_red_min[cs] + (c_red_max[cs]-c_red_min[cs]) * DRAND;
+ colour[1] = c_green_min[cs] + (c_green_max[cs]-c_green_min[cs]) * DRAND;
+ colour[2] = c_blue_min[cs] + (c_blue_max[cs]-c_blue_min[cs]) * DRAND;
+
+ pixelSize = DRAND * 2.0 + 2.0;
+ zacc = -9.807 / 5.0;
+ life = startLife = pixelSize / 2.0;
+}
+
+
+void TurningParticle :: updateParameters ( float dT )
+{
+ //update position
+ xpos += xspeed * dT;
+ ypos += yspeed * dT;
+ zpos += zspeed * dT;
+
+ //tan vector = velocity vector (vect producted by) spin axis
+ float vx = yspeed * wz - zspeed * wy,
+ vy = zspeed * wx - xspeed * wz,
+ vz = xspeed * wy - yspeed * wx;
+
+ //update velocity adding a tangential component (aka infinitesimally
+ //rotating the vector)
+ xspeed += vx;
+ yspeed += vy;
+ zspeed += vz + zacc * dT;
+
+ if (useLife)
+ life -= dT;
+}
+
+//END TurningParticle
diff --git a/tdescreensaver/kdesavers/firesaverparticle.h b/tdescreensaver/kdesavers/firesaverparticle.h
new file mode 100644
index 00000000..e539adec
--- /dev/null
+++ b/tdescreensaver/kdesavers/firesaverparticle.h
@@ -0,0 +1,105 @@
+// This file is part of KFireSaver3D.
+
+// KFireSaver3D is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+
+// KFireSaver3D is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with KFireSaver3D; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+// Author: Enrico Ros, based on the great work of David Sansome (kfiresaver)
+// Email: asy@libero.it
+
+#ifndef KFIRESAVER_PARTICLE_H
+#define KFIRESAVER_PARTICLE_H
+
+#include <tqgl.h>
+
+#define FLICKER_FRAMES_DELAY 8
+#define DRAND ((float)rand() / (float)RAND_MAX) /*random float between 0 and 1*/
+
+/* -- Particle class.
+ * Sets initial parameters and takes care of updating physics for a single
+ * fireworks particle. The physics model is the Newtonian one.
+ */
+class Particle
+{
+ public:
+ //enum definitions for type of particle
+ enum ParticleType
+ {
+ FireParticle,
+ FireWorkLeaderParticle,
+ FireWorkDebrisParticle,
+ LogoParticle,
+ StarParticle
+ };
+
+ Particle( ParticleType pT );
+
+ //public methods for initializing default parameters and update them
+ virtual void initializeValues (
+ int color_scheme = 0,
+ Particle* leader = 0L,
+ GLfloat powermin = 5.0,
+ GLfloat powermax = 10.0,
+ bool flickers = false,
+ GLfloat *displace = 0L );
+
+ virtual void updateParameters ( float timeGap );
+
+ //public accessible variables of the class
+ ParticleType particleType;
+ int explosionsDepth;
+ unsigned int texture;
+
+ GLfloat xpos, ypos, zpos,
+ xspeed, yspeed, zspeed,
+ zacc;
+
+ GLfloat colour[4],
+ life, startLife,
+ pixelSize;
+
+ bool useLife;
+ int flicker;
+
+ private:
+ Particle();
+};
+
+
+/* -- TurningParticle class.
+ * Randomize initial parameters similar to a standard 'spherical' particle
+ * and takes care of updating physics. The physics model is a funny 'bees'
+ * (vectorial-product) one.
+ */
+class TurningParticle : public Particle
+{
+ public:
+ TurningParticle( ParticleType pT );
+
+ virtual void initializeValues (
+ int color_scheme = 0,
+ Particle* leader = 0L,
+ GLfloat powermin = 5.0,
+ GLfloat powermax = 10.0,
+ bool flickers = false,
+ GLfloat *displace = 0L );
+
+ virtual void updateParameters ( float dT );
+
+ private:
+ float wx, wy, wz;
+ TurningParticle();
+};
+
+#endif
diff --git a/tdescreensaver/kdesavers/firesaversetup.ui b/tdescreensaver/kdesavers/firesaversetup.ui
new file mode 100644
index 00000000..3a3f3536
--- /dev/null
+++ b/tdescreensaver/kdesavers/firesaversetup.ui
@@ -0,0 +1,1855 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KFireSaverSetup</class>
+<widget class="TQWidget">
+ <property name="name">
+ <cstring>KFireSaverSetup</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>375</width>
+ <height>344</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>1</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="caption">
+ <string>KFireSaver Setup</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <widget class="TQPushButton" row="0" column="2">
+ <property name="name">
+ <cstring>useButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Load</string>
+ </property>
+ </widget>
+ <widget class="TQComboBox" row="0" column="1">
+ <item>
+ <property name="text">
+ <string>KDE (default)</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Elegant White</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Quick Simple</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Enhanced Reality</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Hypnotic Illusions</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>presetCombo</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>presetLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Preset:</string>
+ </property>
+ </widget>
+ <spacer row="0" column="3">
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>201</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQTabWidget" row="1" column="0" rowspan="1" colspan="4">
+ <property name="name">
+ <cstring>tabWidget</cstring>
+ </property>
+ <property name="tabShape">
+ <enum>Rounded</enum>
+ </property>
+ <widget class="TQWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Preview</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer row="1" column="2">
+ <property name="name">
+ <cstring>spacer162</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>30</width>
+ <height>220</height>
+ </size>
+ </property>
+ </spacer>
+ <spacer row="1" column="0">
+ <property name="name">
+ <cstring>spacer161</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>30</width>
+ <height>210</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLayoutWidget" row="1" column="1">
+ <property name="name">
+ <cstring>layout118</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer row="1" column="2">
+ <property name="name">
+ <cstring>spacer162_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>43</width>
+ <height>180</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQFrame" row="1" column="1">
+ <property name="name">
+ <cstring>previewFrame</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>240</width>
+ <height>180</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>240</width>
+ <height>180</height>
+ </size>
+ </property>
+ <property name="frameShape">
+ <enum>StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Sunken</enum>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>preview window</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Here is the preview (if it is not detached)</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>previewLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>P R E V I E W</string>
+ </property>
+ <property name="alignment">
+ <set>AlignCenter</set>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer row="1" column="0">
+ <property name="name">
+ <cstring>spacer161_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>30</width>
+ <height>180</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQCheckBox" row="0" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>detachBox</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Show in separate window</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="2" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>applyButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Apply &amp;&amp; Update</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQWidget">
+ <property name="name">
+ <cstring>tab</cstring>
+ </property>
+ <attribute name="title">
+ <string>Show</string>
+ </attribute>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layS1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>showLabel1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>5</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Show type:</string>
+ </property>
+ </widget>
+ <widget class="TQComboBox">
+ <item>
+ <property name="text">
+ <string>Simple Show</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Completely Random</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Only Change Color</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Only Change Fireworks</string>
+ </property>
+ </item>
+ <property name="name">
+ <cstring>showCombo</cstring>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer25</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>260</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layS2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>showLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>Number of fireworks:</string>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>showLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>few</string>
+ </property>
+ </widget>
+ <widget class="TQSlider">
+ <property name="name">
+ <cstring>fireworksSlider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minValue">
+ <number>0</number>
+ </property>
+ <property name="maxValue">
+ <number>10</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>4</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>showLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>more</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>125</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layS2_2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>particlesLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Size of particles:</string>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>particlesLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>small</string>
+ </property>
+ </widget>
+ <widget class="TQSlider">
+ <property name="name">
+ <cstring>particlesSlider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minValue">
+ <number>-5</number>
+ </property>
+ <property name="maxValue">
+ <number>5</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>particlesLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>big</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6_2_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>125</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>bottomfireBox</cstring>
+ </property>
+ <property name="text">
+ <string>Use bottom fire</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layS3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer7</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>16</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>bottomfireLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Color:</string>
+ </property>
+ </widget>
+ <widget class="KColorButton">
+ <property name="name">
+ <cstring>bottomfireColorButton</cstring>
+ </property>
+ <property name="text">
+ <string></string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Select the color</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>309</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>soundsBox</cstring>
+ </property>
+ <property name="text">
+ <string>Enable sounds</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>overheadBox</cstring>
+ </property>
+ <property name="text">
+ <string>Limit overload (recommended)</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>frameskipBox</cstring>
+ </property>
+ <property name="text">
+ <string>Realtime fps adjust (recommended)</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacerT2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>31</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ <widget class="TQWidget">
+ <property name="name">
+ <cstring>TabPage</cstring>
+ </property>
+ <attribute name="title">
+ <string>Fireworks</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer row="4" column="0">
+ <property name="name">
+ <cstring>spacerT3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>21</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLayoutWidget" row="3" column="0">
+ <property name="name">
+ <cstring>layF2</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox" row="0" column="1">
+ <property name="name">
+ <cstring>whiteBox</cstring>
+ </property>
+ <property name="text">
+ <string>Blinding white</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="3" column="1">
+ <property name="name">
+ <cstring>purpleBox</cstring>
+ </property>
+ <property name="text">
+ <string>Velvet purple</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="2" column="1">
+ <property name="name">
+ <cstring>seagreenBox</cstring>
+ </property>
+ <property name="text">
+ <string>Deep-sea green</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="1" column="2">
+ <property name="name">
+ <cstring>redBox</cstring>
+ </property>
+ <property name="text">
+ <string>Deep red</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="3" column="2">
+ <property name="name">
+ <cstring>combosBox</cstring>
+ </property>
+ <property name="text">
+ <string>Multicolor</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>try bi-color fireworks</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This allow a random creation of fireworks that explodes in 2 colors</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="1" column="1">
+ <property name="name">
+ <cstring>blueBox</cstring>
+ </property>
+ <property name="text">
+ <string>Boring blue</string>
+ </property>
+ </widget>
+ <spacer row="0" column="0" rowspan="4" colspan="1">
+ <property name="name">
+ <cstring>spacer7_2_5_2_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>16</width>
+ <height>80</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQCheckBox" row="0" column="2">
+ <property name="name">
+ <cstring>orangeBox</cstring>
+ </property>
+ <property name="text">
+ <string>Hot orange</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="2" column="2">
+ <property name="name">
+ <cstring>greenBox</cstring>
+ </property>
+ <property name="text">
+ <string>Purest green</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQLabel" row="2" column="0">
+ <property name="name">
+ <cstring>colorsLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Colors</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>fireworksLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Fireworks</string>
+ </property>
+ </widget>
+ <widget class="TQLayoutWidget" row="1" column="0">
+ <property name="name">
+ <cstring>layF1</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox" row="2" column="1">
+ <property name="name">
+ <cstring>fire3Box</cstring>
+ </property>
+ <property name="text">
+ <string>Flames ring</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>try me</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="1" column="2">
+ <property name="name">
+ <cstring>fire6Box</cstring>
+ </property>
+ <property name="text">
+ <string>Atomic splitter</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>try me</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="0" column="2">
+ <property name="name">
+ <cstring>fire5Box</cstring>
+ </property>
+ <property name="text">
+ <string>Sparkling fall</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>try me</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="0" column="1">
+ <property name="name">
+ <cstring>fire1Box</cstring>
+ </property>
+ <property name="text">
+ <string>Classic</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>try me</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="1" column="1">
+ <property name="name">
+ <cstring>fire2Box</cstring>
+ </property>
+ <property name="text">
+ <string>Only explosion</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>try me</string>
+ </property>
+ </widget>
+ <spacer row="0" column="0" rowspan="4" colspan="1">
+ <property name="name">
+ <cstring>spacer7_2_5_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>16</width>
+ <height>80</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQCheckBox" row="3" column="2">
+ <property name="name">
+ <cstring>fire8Box</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="paletteForegroundColor">
+ <color>
+ <red>255</red>
+ <green>0</green>
+ <blue>0</blue>
+ </color>
+ </property>
+ <property name="text">
+ <string>SuperNova</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>try me</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="2" column="2">
+ <property name="name">
+ <cstring>fire7Box</cstring>
+ </property>
+ <property name="text">
+ <string>Toxic spirals</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>try me</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="3" column="1">
+ <property name="name">
+ <cstring>fire4Box</cstring>
+ </property>
+ <property name="text">
+ <string>Flames world</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>try me</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQWidget">
+ <property name="name">
+ <cstring>TabPage</cstring>
+ </property>
+ <attribute name="title">
+ <string>Specials</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer row="5" column="0">
+ <property name="name">
+ <cstring>spacerT4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>MinimumExpanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>41</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQCheckBox" row="0" column="0">
+ <property name="name">
+ <cstring>logosBox</cstring>
+ </property>
+ <property name="text">
+ <string>Logos</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Watch exploding images</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Enable images explosion.</string>
+ </property>
+ </widget>
+ <widget class="TQFrame" row="1" column="0">
+ <property name="name">
+ <cstring>logosFrame</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <spacer row="0" column="0" rowspan="2" colspan="1">
+ <property name="name">
+ <cstring>spacer46</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>16</width>
+ <height>70</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLayoutWidget" row="0" column="1">
+ <property name="name">
+ <cstring>layP1</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox" row="1" column="0">
+ <property name="name">
+ <cstring>logosIconsBox</cstring>
+ </property>
+ <property name="text">
+ <string>KDE icons</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Enables KDE Icons</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Enables random KDE Icons explosions.</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="0" column="1">
+ <property name="name">
+ <cstring>logosTuxBox</cstring>
+ </property>
+ <property name="text">
+ <string>Tux</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Enables Tux</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Enables random Tux explosions.</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="1" column="1">
+ <property name="name">
+ <cstring>logosDetailBox</cstring>
+ </property>
+ <property name="text">
+ <string>Reduce detail</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>useful for increasing speed</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>When enabled speeds up logo explosion but reduces quality.</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="0" column="0">
+ <property name="name">
+ <cstring>logosKonquiBox</cstring>
+ </property>
+ <property name="text">
+ <string>Konqui</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Enables Konqui</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Enables random Konqui explosions.</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQLayoutWidget" row="1" column="1">
+ <property name="name">
+ <cstring>layP2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>frequencyLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Frequency:</string>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>neverLabel</cstring>
+ </property>
+ <property name="text">
+ <string>sometimes</string>
+ </property>
+ </widget>
+ <widget class="TQSlider">
+ <property name="name">
+ <cstring>logosSlider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>10</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>5</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>oftenLabel</cstring>
+ </property>
+ <property name="text">
+ <string>often</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer18</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>91</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQFrame" row="3" column="0">
+ <property name="name">
+ <cstring>starsFrame</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Raised</enum>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <spacer row="0" column="0" rowspan="2" colspan="1">
+ <property name="name">
+ <cstring>spacer7_2_5</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>16</width>
+ <height>50</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLayoutWidget" row="0" column="1">
+ <property name="name">
+ <cstring>layP3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>starsFlickerBox</cstring>
+ </property>
+ <property name="text">
+ <string>Flickering</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>enables a natural 'flicker' effect</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>This option produces a sort of vibration in the lightness of the star.</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox">
+ <property name="name">
+ <cstring>starsGradientBox</cstring>
+ </property>
+ <property name="text">
+ <string>Red-blue gradient</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>emulate horizon coloring</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Gives lower stars a reddish tint.</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget" row="1" column="1">
+ <property name="name">
+ <cstring>layP4</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel4_5</cstring>
+ </property>
+ <property name="text">
+ <string>Number:</string>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel3_2_6</cstring>
+ </property>
+ <property name="text">
+ <string>less</string>
+ </property>
+ </widget>
+ <widget class="TQSlider">
+ <property name="name">
+ <cstring>starsSlider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>10</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>5</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel3_2_2_5</cstring>
+ </property>
+ <property name="text">
+ <string>more</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6_5</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>149</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQCheckBox" row="2" column="0">
+ <property name="name">
+ <cstring>starsBox</cstring>
+ </property>
+ <property name="text">
+ <string>Stars</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Watch the stars</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Enable stars in the sky.</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="4" column="0">
+ <property name="name">
+ <cstring>writingsBox</cstring>
+ </property>
+ <property name="text">
+ <string>Writings</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Watch the stars</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Enable stars in the sky.</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQWidget">
+ <property name="name">
+ <cstring>TabPage</cstring>
+ </property>
+ <attribute name="title">
+ <string>Effects</string>
+ </attribute>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox" row="1" column="0">
+ <property name="name">
+ <cstring>flashBox</cstring>
+ </property>
+ <property name="text">
+ <string>Flash screen on explosions</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQLayoutWidget" row="4" column="0">
+ <property name="name">
+ <cstring>layE2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer7_2_3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>16</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>fadeLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Intensity:</string>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>fadeLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>small</string>
+ </property>
+ </widget>
+ <widget class="TQSlider">
+ <property name="name">
+ <cstring>fadeSlider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>9</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>3</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>fadeLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>hypnotic</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6_3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>131</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="TQCheckBox" row="5" column="0">
+ <property name="name">
+ <cstring>flaresBox</cstring>
+ </property>
+ <property name="text">
+ <string>Mega flares</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQLayoutWidget" row="6" column="0">
+ <property name="name">
+ <cstring>layE3</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer7_2_4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>16</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>flaresLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Dimension:</string>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>flaresLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>small</string>
+ </property>
+ </widget>
+ <widget class="TQSlider">
+ <property name="name">
+ <cstring>flaresSlider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>10</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>5</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>flaresLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>big</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6_4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>117</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="TQCheckBox" row="7" column="0">
+ <property name="name">
+ <cstring>trailBox</cstring>
+ </property>
+ <property name="text">
+ <string>Fireworks leave a particle trail</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>not yet ported</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>not yet ported</string>
+ </property>
+ </widget>
+ <widget class="TQLayoutWidget" row="2" column="0">
+ <property name="name">
+ <cstring>layE1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer7_2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>16</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>flashLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Flash opacity:</string>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>flashLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>min</string>
+ </property>
+ </widget>
+ <widget class="TQSlider">
+ <property name="name">
+ <cstring>flashSlider</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maxValue">
+ <number>10</number>
+ </property>
+ <property name="pageStep">
+ <number>1</number>
+ </property>
+ <property name="value">
+ <number>5</number>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ </widget>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>flashLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>max</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer6</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>110</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ <widget class="TQCheckBox" row="3" column="0">
+ <property name="name">
+ <cstring>fadeBox</cstring>
+ </property>
+ <property name="text">
+ <string>Fade effect</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="0" column="0">
+ <property name="name">
+ <cstring>lightBox</cstring>
+ </property>
+ <property name="text">
+ <string>Spherical light after explosion</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>warning, this can shock your mind :-)</string>
+ </property>
+ <property name="whatsThis" stdset="0">
+ <string>Multiplies the scale factor for particles near you, resulting in a colorful experience.</string>
+ </property>
+ </widget>
+ <spacer row="8" column="0">
+ <property name="name">
+ <cstring>spacerT5</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>31</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </grid>
+ </widget>
+ </widget>
+ </grid>
+</widget>
+<connections>
+ <connection>
+ <sender>logosBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>logosFrame</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>starsBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>starsFrame</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>bottomfireBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>bottomfireLabel1</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>bottomfireBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>bottomfireColorButton</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flashBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>flashLabel1</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flashBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>flashLabel2</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flashBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>flashLabel3</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flashBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>flashSlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>fadeBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>fadeLabel1</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>fadeBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>fadeLabel2</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>fadeBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>fadeLabel3</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>fadeBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>fadeSlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flaresBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>flaresLabel1</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flaresBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>flaresLabel2</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flaresBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>flaresLabel3</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>flaresBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>flaresSlider</receiver>
+ <slot>setEnabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>useButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KFireSaverSetup</receiver>
+ <slot>useButton_clicked()</slot>
+ </connection>
+ <connection>
+ <sender>applyButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KFireSaverSetup</receiver>
+ <slot>applyButton_clicked()</slot>
+ </connection>
+ <connection>
+ <sender>detachBox</sender>
+ <signal>clicked()</signal>
+ <receiver>KFireSaverSetup</receiver>
+ <slot>updatePreview()</slot>
+ </connection>
+</connections>
+<tabstops>
+ <tabstop>presetCombo</tabstop>
+ <tabstop>useButton</tabstop>
+ <tabstop>tabWidget</tabstop>
+ <tabstop>showCombo</tabstop>
+ <tabstop>fireworksSlider</tabstop>
+ <tabstop>particlesSlider</tabstop>
+ <tabstop>bottomfireBox</tabstop>
+ <tabstop>bottomfireColorButton</tabstop>
+ <tabstop>soundsBox</tabstop>
+ <tabstop>overheadBox</tabstop>
+ <tabstop>frameskipBox</tabstop>
+ <tabstop>fire1Box</tabstop>
+ <tabstop>fire2Box</tabstop>
+ <tabstop>fire3Box</tabstop>
+ <tabstop>fire4Box</tabstop>
+ <tabstop>fire5Box</tabstop>
+ <tabstop>fire6Box</tabstop>
+ <tabstop>fire7Box</tabstop>
+ <tabstop>fire8Box</tabstop>
+ <tabstop>whiteBox</tabstop>
+ <tabstop>blueBox</tabstop>
+ <tabstop>seagreenBox</tabstop>
+ <tabstop>purpleBox</tabstop>
+ <tabstop>orangeBox</tabstop>
+ <tabstop>redBox</tabstop>
+ <tabstop>greenBox</tabstop>
+ <tabstop>combosBox</tabstop>
+ <tabstop>logosBox</tabstop>
+ <tabstop>logosKonquiBox</tabstop>
+ <tabstop>logosTuxBox</tabstop>
+ <tabstop>logosIconsBox</tabstop>
+ <tabstop>logosDetailBox</tabstop>
+ <tabstop>logosSlider</tabstop>
+ <tabstop>starsBox</tabstop>
+ <tabstop>starsFlickerBox</tabstop>
+ <tabstop>starsGradientBox</tabstop>
+ <tabstop>starsSlider</tabstop>
+ <tabstop>lightBox</tabstop>
+ <tabstop>flashBox</tabstop>
+ <tabstop>flashSlider</tabstop>
+ <tabstop>fadeBox</tabstop>
+ <tabstop>fadeSlider</tabstop>
+ <tabstop>flaresBox</tabstop>
+ <tabstop>flaresSlider</tabstop>
+ <tabstop>trailBox</tabstop>
+</tabstops>
+<includes>
+ <include location="local" impldecl="in declaration">firesaver.h</include>
+ <include location="local" impldecl="in implementation">firesaversetup.ui.h</include>
+</includes>
+<variables>
+ <variable access="private">KFireSaver * fireSaverWidget;</variable>
+</variables>
+<Q_SLOTS>
+ <slot>applyButton_clicked()</slot>
+ <slot>updatePreview()</slot>
+ <slot>writeConfig()</slot>
+ <slot>readConfig()</slot>
+ <slot>useButton_clicked()</slot>
+</Q_SLOTS>
+<functions>
+ <function access="private" specifier="non virtual">init()</function>
+ <function access="private">destroy()</function>
+</functions>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>kcolorbutton.h</includehint>
+</includehints>
+</UI>
diff --git a/tdescreensaver/kdesavers/firesaversetup.ui.h b/tdescreensaver/kdesavers/firesaversetup.ui.h
new file mode 100644
index 00000000..da8ed42a
--- /dev/null
+++ b/tdescreensaver/kdesavers/firesaversetup.ui.h
@@ -0,0 +1,400 @@
+/****************************************************************************
+** ui.h extension file, included from the uic-generated form implementation.
+**
+** If you wish to add, delete or rename functions or slots use
+** TQt Designer which will update this file, preserving your code. Create an
+** init() function in place of a constructor, and a destroy() function in
+** place of a destructor.
+*****************************************************************************/
+
+
+#ifndef KFIRESAVER_SETUP_H
+#define KFIRESAVER_SETUP_H
+
+#include <tqcolor.h>
+#include <tqtimer.h>
+#include <kconfig.h>
+
+
+void KFireSaverSetup::init()
+{
+ readConfig();
+ fireSaverWidget = NULL;
+ updatePreview();
+}
+
+void KFireSaverSetup::destroy()
+{
+ if ( fireSaverWidget )
+ delete fireSaverWidget;
+}
+
+
+void KFireSaverSetup::applyButton_clicked()
+{
+ writeConfig();
+ updatePreview();
+}
+
+void KFireSaverSetup::updatePreview()
+{
+ if ( fireSaverWidget )
+ delete fireSaverWidget;
+ if ( detachBox->isChecked() ) {
+ previewLabel->show();
+ fireSaverWidget = new KFireSaver;
+ fireSaverWidget->resize(640,480);
+ } else {
+ previewLabel->hide();
+ fireSaverWidget = new KFireSaver( previewFrame );
+ fireSaverWidget->move(1,1);
+ fireSaverWidget->resize(
+ previewFrame->width() - 2,
+ previewFrame->height() - 2 );
+ }
+ fireSaverWidget->show();
+}
+
+
+void KFireSaverSetup::writeConfig()
+{
+ TDEConfig config("kfiresaverrc",false,false);
+
+ // show
+ config.setGroup( "Show" );
+ config.writeEntry( "ShowType", showCombo->currentItem() );
+ config.writeEntry( "FireworksFrequency", fireworksSlider->value() );
+ config.writeEntry( "ParticlesSize", particlesSlider->value() );
+ config.writeEntry( "enable-BottomFire", bottomfireBox->isChecked() );
+ config.writeEntry( "BottomFireColor", bottomfireColorButton->color() );
+ config.writeEntry( "enable-Sounds", soundsBox->isChecked() );
+ config.writeEntry( "enable-NoOverhead", overheadBox->isChecked() );
+ config.writeEntry( "enable-FrameSkip", frameskipBox->isChecked() );
+
+ // fireworks
+ config.setGroup( "Fireworks" );
+ if (!fire1Box->isChecked() && !fire2Box->isChecked() &&
+ !fire3Box->isChecked() && !fire4Box->isChecked() &&
+ !fire5Box->isChecked() && !fire6Box->isChecked() &&
+ !fire7Box->isChecked() && !fire8Box->isChecked())
+ fire1Box->setChecked(true);
+ config.writeEntry( "use-Classic", fire1Box->isChecked() );
+ config.writeEntry( "use-Explosion", fire2Box->isChecked() );
+ config.writeEntry( "use-FlameRing", fire3Box->isChecked() );
+ config.writeEntry( "use-FlameWorld", fire4Box->isChecked() );
+ config.writeEntry( "use-Fall", fire5Box->isChecked() );
+ config.writeEntry( "use-Splitter", fire6Box->isChecked() );
+ config.writeEntry( "use-Spirals", fire7Box->isChecked() );
+ config.writeEntry( "use-SuperNova", fire8Box->isChecked() );
+ if (!redBox->isChecked() && !orangeBox->isChecked() &&
+ !greenBox->isChecked() && !blueBox->isChecked() &&
+ !whiteBox->isChecked() && !purpleBox->isChecked() &&
+ !seagreenBox->isChecked())
+ whiteBox->setChecked(true);
+ config.writeEntry( "use-White", whiteBox->isChecked() );
+ config.writeEntry( "use-Blue", blueBox->isChecked() );
+ config.writeEntry( "use-DeepGreen", seagreenBox->isChecked() );
+ config.writeEntry( "use-Purple", purpleBox->isChecked() );
+ config.writeEntry( "use-Orange", orangeBox->isChecked() );
+ config.writeEntry( "use-Red", redBox->isChecked() );
+ config.writeEntry( "use-Green", greenBox->isChecked() );
+ config.writeEntry( "use-Multicolor", combosBox->isChecked() );
+
+ // specials
+ config.setGroup( "Specials" );
+ config.writeEntry( "enable-Logos", logosBox->isChecked() );
+ config.writeEntry( "LogosKonqui", logosKonquiBox->isChecked() );
+ config.writeEntry( "LogosTux", logosTuxBox->isChecked() );
+ config.writeEntry( "LogosKDEIcons", logosIconsBox->isChecked() );
+ config.writeEntry( "LogosReduceDetail", logosDetailBox->isChecked() );
+ config.writeEntry( "LogosFrequency", logosSlider->value() );
+ config.writeEntry( "enable-Stars", starsBox->isChecked() );
+ config.writeEntry( "StarsFlicker", starsFlickerBox->isChecked() );
+ config.writeEntry( "StarsGradient", starsGradientBox->isChecked() );
+ config.writeEntry( "StarsNumber", starsSlider->value() );
+ config.writeEntry( "enable-Writings", writingsBox->isChecked() );
+
+ // effects
+ config.setGroup( "Effects" );
+ config.writeEntry( "enable-SphericalLight", lightBox->isChecked() );
+ config.writeEntry( "enable-Flash", flashBox->isChecked() );
+ config.writeEntry( "FlashOpacity", flashSlider->value() );
+ config.writeEntry( "enable-Fade", fadeBox->isChecked() );
+ config.writeEntry( "FadeIntensity", fadeSlider->value() );
+ config.writeEntry( "enable-Flares", flaresBox->isChecked() );
+ config.writeEntry( "FlaresDimension", flaresSlider->value() );
+ config.writeEntry( "enable-Trail", trailBox->isChecked() );
+}
+
+
+void KFireSaverSetup::readConfig()
+{
+ TDEConfig config("kfiresaverrc",true,false);
+
+ // show
+ config.setGroup( "Show" );
+ showCombo->setCurrentItem(config.readNumEntry( "ShowType", 1 ));
+ fireworksSlider->setValue(config.readNumEntry( "FireworksFrequency", 7 ));
+ particlesSlider->setValue(config.readNumEntry( "ParticlesSize", 0 ));
+ bottomfireBox->setChecked(config.readBoolEntry( "enable-BottomFire", true ));
+ TQColor blue = TQt::darkBlue;
+ bottomfireColorButton->setColor(config.readColorEntry( "BottomFireColor", &blue ));
+ soundsBox->setChecked(config.readBoolEntry( "enable-Sounds", false ));
+ overheadBox->setChecked(config.readBoolEntry( "enable-NoOverhead", true ));
+ frameskipBox->setChecked(config.readBoolEntry( "enable-FrameSkip", true ));
+
+ // fireworks
+ config.setGroup( "Fireworks" );
+ fire1Box->setChecked(config.readBoolEntry( "use-Classic", true ));
+ fire2Box->setChecked(config.readBoolEntry( "use-Explosion", false ));
+ fire3Box->setChecked(config.readBoolEntry( "use-FlameRing", false ));
+ fire4Box->setChecked(config.readBoolEntry( "use-FlameWorld", false ));
+ fire5Box->setChecked(config.readBoolEntry( "use-Fall", false ));
+ fire6Box->setChecked(config.readBoolEntry( "use-Splitter", false ));
+ fire7Box->setChecked(config.readBoolEntry( "use-Spirals", false ));
+ fire8Box->setChecked(config.readBoolEntry( "use-SuperNova", false ));
+ whiteBox->setChecked(config.readBoolEntry( "use-White", true ));
+ blueBox->setChecked(config.readBoolEntry( "use-Blue", false ));
+ seagreenBox->setChecked(config.readBoolEntry( "use-DeepGreen", true ));
+ purpleBox->setChecked(config.readBoolEntry( "use-Purple", false ));
+ orangeBox->setChecked(config.readBoolEntry( "use-Orange", true ));
+ redBox->setChecked(config.readBoolEntry( "use-Red", false ));
+ greenBox->setChecked(config.readBoolEntry( "use-Green", false ));
+ combosBox->setChecked(config.readBoolEntry( "use-Multicolor", true ));
+
+ // specials
+ config.setGroup( "Specials" );
+ logosBox->setChecked(config.readBoolEntry( "enable-Logos", true ));
+ logosKonquiBox->setChecked(config.readBoolEntry( "LogosKonqui", true ));
+ logosTuxBox->setChecked(config.readBoolEntry( "LogosTux", true ));
+ logosIconsBox->setChecked(config.readBoolEntry( "LogosKDEIcons", true ));
+ logosDetailBox->setChecked(config.readBoolEntry( "LogosReduceDetail", true ));
+ logosSlider->setValue(config.readNumEntry( "LogosFrequency", 4 ));
+ starsBox->setChecked(config.readBoolEntry( "enable-Stars", true ));
+ starsFlickerBox->setChecked(config.readBoolEntry( "StarsFlicker", false ));
+ starsGradientBox->setChecked(config.readBoolEntry( "StarsGradient", true ));
+ starsSlider->setValue(config.readNumEntry( "StarsNumber", 4 ));
+ writingsBox->setChecked(config.readBoolEntry( "enable-Writings", true ));
+
+ // effects
+ config.setGroup( "Effects" );
+ lightBox->setChecked(config.readBoolEntry( "enable-SphericalLight", true ));
+ flashBox->setChecked(config.readBoolEntry( "enable-Flash", false ));
+ flashSlider->setValue(config.readNumEntry( "FlashOpacity", 5 ));
+ fadeBox->setChecked(config.readBoolEntry( "enable-Fade", false ));
+ fadeSlider->setValue(config.readNumEntry( "FadeIntensity", 3 ));
+ flaresBox->setChecked(config.readBoolEntry( "enable-Flares", true ));
+ flaresSlider->setValue(config.readNumEntry( "FlaresDimension", 5 ));
+ trailBox->setChecked(config.readBoolEntry( "enable-Trail", false ));
+}
+
+void KFireSaverSetup::useButton_clicked()
+{
+ int ci = presetCombo->currentItem();
+
+ showCombo->setCurrentItem( 0 );
+ particlesSlider->setValue( 0 );
+ overheadBox->setChecked( true );
+ flashBox->setChecked( false );
+ //flashSlider->setValue( );
+ //soundsBox->setChecked( );
+ //logosDetailBox->setChecked( );
+
+ switch (ci){
+ case 0: // KDE default
+ showCombo->setCurrentItem( 1 );
+ fireworksSlider->setValue( 7 );
+ bottomfireBox->setChecked( true );
+ bottomfireColorButton->setColor( TQt::darkBlue );
+ frameskipBox->setChecked( true );
+ fire1Box->setChecked( true );
+ fire2Box->setChecked( false );
+ fire3Box->setChecked( false );
+ fire4Box->setChecked( false );
+ fire5Box->setChecked( false );
+ fire6Box->setChecked( false );
+ fire7Box->setChecked( false );
+ fire8Box->setChecked( false );
+ whiteBox->setChecked( true );
+ blueBox->setChecked( false );
+ seagreenBox->setChecked( true );
+ purpleBox->setChecked( false );
+ orangeBox->setChecked( true );
+ redBox->setChecked( false );
+ greenBox->setChecked( false );
+ combosBox->setChecked( true );
+ logosBox->setChecked( true );
+ logosKonquiBox->setChecked( true );
+ logosTuxBox->setChecked( true );
+ logosIconsBox->setChecked( true );
+ logosSlider->setValue( 4 );
+ starsBox->setChecked( true );
+ starsFlickerBox->setChecked( false );
+ starsGradientBox->setChecked( true );
+ starsSlider->setValue( 4 );
+ writingsBox->setChecked( true );
+ lightBox->setChecked( true );
+ fadeBox->setChecked( false );
+ //fadeSlider->setValue( );
+ flaresBox->setChecked( true );
+ flaresSlider->setValue( 5 );
+ trailBox->setChecked( false );
+ break;
+ case 1: // Elegant white
+ fireworksSlider->setValue( 7 );
+ bottomfireBox->setChecked( true );
+ bottomfireColorButton->setColor( TQt::blue );
+ frameskipBox->setChecked( true );
+ fire1Box->setChecked( true );
+ fire2Box->setChecked( false );
+ fire3Box->setChecked( false );
+ fire4Box->setChecked( false );
+ fire5Box->setChecked( true );
+ fire6Box->setChecked( true );
+ fire7Box->setChecked( false );
+ fire8Box->setChecked( false );
+ whiteBox->setChecked( true );
+ blueBox->setChecked( true );
+ seagreenBox->setChecked( false );
+ purpleBox->setChecked( false );
+ orangeBox->setChecked( false );
+ redBox->setChecked( false );
+ greenBox->setChecked( false );
+ combosBox->setChecked( true );
+ logosBox->setChecked( true );
+ logosKonquiBox->setChecked( true );
+ logosTuxBox->setChecked( false );
+ logosIconsBox->setChecked( false );
+ logosSlider->setValue( 3 );
+ starsBox->setChecked( true );
+ starsFlickerBox->setChecked( true );
+ starsGradientBox->setChecked( false );
+ starsSlider->setValue( 4 );
+ writingsBox->setChecked( true );
+ lightBox->setChecked( true );
+ fadeBox->setChecked( true );
+ fadeSlider->setValue( 3 );
+ flaresBox->setChecked( true );
+ flaresSlider->setValue( 6 );
+ trailBox->setChecked( true );
+ break;
+ case 2: // Quick simple
+ showCombo->setCurrentItem(1);
+ fireworksSlider->setValue( 4 );
+ bottomfireBox->setChecked( false );
+ //bottomfireColorButton->setColor( );
+ frameskipBox->setChecked( false );
+ fire1Box->setChecked( true );
+ fire2Box->setChecked( true );
+ fire3Box->setChecked( false );
+ fire4Box->setChecked( false );
+ fire5Box->setChecked( false );
+ fire6Box->setChecked( false );
+ fire7Box->setChecked( false );
+ fire8Box->setChecked( false );
+ whiteBox->setChecked( true );
+ blueBox->setChecked( true );
+ seagreenBox->setChecked( false );
+ purpleBox->setChecked( false );
+ orangeBox->setChecked( false );
+ redBox->setChecked( true );
+ greenBox->setChecked( true );
+ combosBox->setChecked( false );
+ logosBox->setChecked( true );
+ logosKonquiBox->setChecked( true );
+ logosTuxBox->setChecked( true );
+ logosIconsBox->setChecked( true );
+ logosSlider->setValue( 2 );
+ starsBox->setChecked( false );
+ //starsFlickerBox->setChecked( );
+ //starsGradientBox->setChecked( );
+ //starsSlider->setValue( );
+ writingsBox->setChecked( false );
+ lightBox->setChecked( false );
+ fadeBox->setChecked( false );
+ //fadeSlider->setValue( );
+ flaresBox->setChecked( false );
+ //flaresSlider->setValue( );
+ trailBox->setChecked( false );
+ break;
+ case 3: //Enhanced reality
+ fireworksSlider->setValue( 8 );
+ bottomfireBox->setChecked( true );
+ bottomfireColorButton->setColor( TQt::magenta );
+ frameskipBox->setChecked( true );
+ fire1Box->setChecked( true );
+ fire2Box->setChecked( true );
+ fire3Box->setChecked( true );
+ fire4Box->setChecked( true );
+ fire5Box->setChecked( true );
+ fire6Box->setChecked( true );
+ fire7Box->setChecked( false );
+ fire8Box->setChecked( false );
+ whiteBox->setChecked( true );
+ blueBox->setChecked( true );
+ seagreenBox->setChecked( true );
+ purpleBox->setChecked( true );
+ orangeBox->setChecked( true );
+ redBox->setChecked( true );
+ greenBox->setChecked( true );
+ combosBox->setChecked( true );
+ logosBox->setChecked( true );
+ logosKonquiBox->setChecked( false );
+ logosTuxBox->setChecked( true );
+ logosIconsBox->setChecked( false );
+ logosSlider->setValue( 2 );
+ starsBox->setChecked( true );
+ starsFlickerBox->setChecked( true );
+ starsGradientBox->setChecked( true );
+ starsSlider->setValue( 5 );
+ writingsBox->setChecked( true );
+ lightBox->setChecked( false );
+ fadeBox->setChecked( true );
+ fadeSlider->setValue( 3 );
+ flaresBox->setChecked( false );
+ //flaresSlider->setValue( );
+ trailBox->setChecked( true );
+ break;
+ case 4: //Hypnotic illusions
+ fireworksSlider->setValue( 9 );
+ bottomfireBox->setChecked( true );
+ bottomfireColorButton->setColor( TQt::red );
+ frameskipBox->setChecked( true );
+ fire1Box->setChecked( true );
+ fire2Box->setChecked( true );
+ fire3Box->setChecked( true );
+ fire4Box->setChecked( true );
+ fire5Box->setChecked( true );
+ fire6Box->setChecked( true );
+ fire7Box->setChecked( false );
+ fire8Box->setChecked( false );
+ whiteBox->setChecked( true );
+ blueBox->setChecked( true );
+ seagreenBox->setChecked( true );
+ purpleBox->setChecked( true );
+ orangeBox->setChecked( true );
+ redBox->setChecked( true );
+ greenBox->setChecked( true );
+ combosBox->setChecked( true );
+ logosBox->setChecked( false );
+ //logosKonquiBox->setChecked( true );
+ //logosTuxBox->setChecked( true );
+ //logosIconsBox->setChecked( true );
+ //logosSlider->setValue( 5 );
+ starsBox->setChecked( true );
+ starsFlickerBox->setChecked( true );
+ starsGradientBox->setChecked( true );
+ starsSlider->setValue( 8 );
+ writingsBox->setChecked( false );
+ lightBox->setChecked( false );
+ fadeBox->setChecked( true );
+ fadeSlider->setValue( 7 );
+ flaresBox->setChecked( true );
+ flaresSlider->setValue( 8 );
+ trailBox->setChecked( false );
+ break;
+ }
+ //applyButton_clicked();
+}
+
+#endif
diff --git a/tdescreensaver/kdesavers/firesaverwriter.cpp b/tdescreensaver/kdesavers/firesaverwriter.cpp
new file mode 100644
index 00000000..ff78fc5e
--- /dev/null
+++ b/tdescreensaver/kdesavers/firesaverwriter.cpp
@@ -0,0 +1,247 @@
+/***************************************************************************
+ * Copyright (C) 2004 by E.Ros *
+ * rosenric@dei.unipd.it *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <math.h>
+#include <stdlib.h>
+#include <tqimage.h>
+#include <tqgl.h>
+#include <tqfile.h>
+#include <tqstring.h>
+#include <kdebug.h>
+#include <kstandarddirs.h>
+#include <tdeversion.h>
+#include <klocale.h>
+#include "firesaverwriter.h"
+
+
+/* Word: SINGLE WORD */
+
+Word::Word( const char * _text, TQMap<char, Symbol *> * sMap, float _scale )
+ : width(0), scale(_scale), cX(0), cY(0), vScale(0), vX(0), vY(0),
+ activateTime(0.0), lifeTime(2), currentTime(0)
+{
+ for ( ; *_text != 0 && *_text != ' '; _text++ )
+ {
+ char c = *_text;
+ if ( !sMap->contains(c) ) //search for a symbol in the map
+ continue;
+ Symbol * symbol = (*sMap)[c]; //get the symbol*
+ width += symbol->scale; //increase word's half-width
+ symbolList.append( symbol ); //insert it to the list
+ }
+ color[0] = 0;
+ color[1] = 0.8 * drand48();
+ color[2] = 0.2 + 0.8 * drand48();
+ color[3] = 1;
+}
+
+inline void Word::renderWord( double dT )
+{
+ if ( (currentTime += dT) < activateTime )
+ return;
+
+ //update coloring
+ if ( activateTime >= 0 ) {
+ if ( currentTime < activateTime + 0.4 )
+ color[3] = (currentTime - activateTime) / 0.4;
+ else
+ color[3] = 1 - (currentTime - activateTime - 0.4) / (lifeTime - 0.4);
+ } else
+ color[3] = 1 - currentTime / lifeTime;
+
+ //word's global transforms
+ glPushMatrix();
+ glTranslatef( cX - scale * width, cY, 0 );
+ glScalef( scale, scale, 1 );
+ glColor4fv( color );
+
+ //for each symbol draw it!
+ Symbol * symbol = symbolList.first();
+ for( ; symbol; symbol = symbolList.next() )
+ symbol->renderSymbol();
+ glPopMatrix();
+
+ //physical update to position and scale
+ cX += vX * dT;
+ cY += vY * dT;
+ scale += scale * vScale * dT;
+}
+
+inline bool Word::isDead()
+{
+ if ( activateTime > 0 )
+ return (currentTime - activateTime) >= lifeTime;
+ return currentTime >= lifeTime;
+}
+
+
+
+/* Writer: engine that spawns and manages words */
+
+Writer::Writer( TQString descFileName )
+ : numTextures(0)
+{
+ wordList.setAutoDelete( true );
+
+ if ( !loadMap( descFileName ) )
+ return;
+
+ TQString welcomeString = i18n("Welcome to KDE %1.%2.%3")
+ .arg(TDE_VERSION_MAJOR)
+ .arg(TDE_VERSION_MINOR)
+ .arg(TDE_VERSION_RELEASE);
+ spawnWords(welcomeString, Fun1);
+}
+
+Writer::~ Writer()
+{
+ glDeleteTextures( numTextures, texArray );
+ wordList.clear();
+ TQMap<char, Symbol *>::Iterator it = symbolMap.begin();
+ for ( ; it != symbolMap.end(); ++it )
+ delete (Symbol *)it.data();
+}
+
+void Writer::spawnWords( TQString phrase, effectType fX )
+{
+ int wordCount = 0;
+ float xCenter = 0,
+ yCenter = drand48()*40 - 20,
+ wordsWidth = 0;
+ TQPtrList<Word> localWords;
+ while ( phrase.length() > 0 )
+ {
+ TQString letters = phrase.section(" ",0,0);
+ Word * word = new Word( letters.latin1(), &symbolMap );
+ wordList.append( word );
+ localWords.append( word );
+ word->cX = xCenter;
+ word->cY = yCenter;
+ switch ( fX ) {
+ case Fun1:{
+ float angle = 2*M_PI * drand48(),
+ module = 0.25 * (drand48() + drand48());
+ word->vX = module * cos( angle );
+ word->vY = module * sin( angle );
+ word->vScale = 0.6;
+ word->scale = 0.7 + 0.3*(drand48() + drand48());}
+ word->activateTime = 0.3 * wordCount;
+ //fall to the case below for word spacing
+ default:
+ case NoEffect:
+ wordsWidth += word->width;
+ word->cX += wordsWidth;
+ wordsWidth += word->width + 1;
+ break;
+ case Sequence:
+ word->lifeTime = 1.2;
+ word->activateTime = 0.6 + 0.9 * wordCount;
+// word->vY = -5;
+ break;
+ }
+ wordCount ++;
+ phrase.remove(0, letters.length() + 1);
+ }
+ if ( localWords.count() < 1 )
+ return;
+ //some computations to 'center' the string
+ float displace = -(wordsWidth - 1) / 2;
+ Word * word = localWords.first();
+ for( ; word; word = localWords.next() )
+ word->cX += displace;
+}
+
+void Writer::render( double dT )
+{
+ if ( !numTextures )
+ return;
+
+ glEnable( GL_TEXTURE_2D );
+
+ glPushMatrix();
+ glScalef( 0.6, 0.6, 1.0 );
+ Word * word = wordList.first();
+ while( word ) {
+ word->renderWord( dT );
+ if ( word->isDead() ) {
+ wordList.remove();
+ word = wordList.current();
+ } else
+ word = wordList.next();
+ }
+ glPopMatrix();
+}
+
+/* loadMap()
+ * parses the description file to create the internal symbols map.
+ * This map is then used when building words.
+ **/
+bool Writer::loadMap( TQString descFile )
+{
+ TQFile desc( locate("data","kfiresaver/"+descFile) );
+ if ( !desc.open( IO_ReadOnly ) )
+ return false;
+
+ unsigned int currentNumber;
+ float xres = 0, yres = 0;
+ bool generatedFirst = false;
+
+ while ( !desc.atEnd() )
+ {
+ TQString line;
+ int count = desc.readLine( line, 100 );
+ //skip comments / invalid lines
+ if ( count < 6 || line.at(0) == '#')
+ continue;
+ //load texture maps
+ if ( line.at(0) == '"' && numTextures < 15 )
+ {
+ //load and generate texture
+ TQString fileName = line.section("\"", 1,1 );
+ TQImage tmp;
+ if ( !tmp.load( locate("data","kfiresaver/"+fileName) ) ) {
+ kdWarning() << "can't load filename:" << fileName << endl;
+ generatedFirst = false;
+ continue;
+ }
+ glGenTextures( 1, &currentNumber );
+ texArray[ numTextures++ ] = currentNumber;
+ glBindTexture(GL_TEXTURE_2D, currentNumber);
+ glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
+ glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
+ TQImage texture = TQGLWidget::convertToGLFormat( tmp );
+ xres = (float)texture.width();
+ yres = (float)texture.height();
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, (int)xres, (int)yres, 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, texture.bits());
+ generatedFirst = true;
+ continue;
+ }
+ if ( !generatedFirst )
+ continue;
+ if ( line.contains(' ') != 4 ) {
+ kdWarning() << "wrong line on symbols.desc (4 spaces expected):" << endl;
+ kdWarning() << " '" << line << "'" << endl;
+ continue;
+ }
+ //parse the line describing a symbol and create it
+ char p = *(line.latin1());
+ if ( symbolMap.contains(p) )
+ continue;
+ float left = (float)(line.section(" ",1,1).toInt())/xres,
+ top = (float)(line.section(" ",2,2).toInt())/yres,
+ right = (float)(line.section(" ",3,3).toInt() + 1)/xres,
+ bottom = (float)(line.section(" ",4,4).toInt() + 1)/yres;
+ symbolMap[p] = new Symbol( currentNumber, left,top,right,bottom );
+ }
+
+ return symbolMap.size() > 0;
+}
diff --git a/tdescreensaver/kdesavers/firesaverwriter.h b/tdescreensaver/kdesavers/firesaverwriter.h
new file mode 100644
index 00000000..e93f65be
--- /dev/null
+++ b/tdescreensaver/kdesavers/firesaverwriter.h
@@ -0,0 +1,113 @@
+/***************************************************************************
+ * Copyright (C) 2004 by E.Ros *
+ * rosenric@dei.unipd.it *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef FIRESAVER_WRITER_H
+#define FIRESAVER_WRITER_H
+
+#include <tqgl.h>
+#include <tqptrlist.h>
+#include <tqmap.h>
+#include <tqstring.h>
+
+class Symbol
+{
+ public:
+ Symbol( unsigned int textureNumber, float l, float t, float r, float b )
+ : scale((r - l) / (b - t)), texNum(textureNumber), L(l), T(1-t), R(r), B(1-b)
+ {
+ v1[0] = -scale; v1[1] = 1;
+ v2[0] = -scale; v2[1] = -1;
+ v3[0] = scale; v3[1] = 1;
+ v4[0] = scale; v4[1] = -1;
+ }
+
+ float scale;
+
+ inline void renderSymbol()
+ {
+ //draw the symbol and update "cursor"'s position
+ glBindTexture( GL_TEXTURE_2D, texNum );
+ glTranslatef( scale, 0, 0 );
+ glBegin( GL_TRIANGLE_STRIP );
+ glTexCoord2f( L, T );
+ glVertex2fv( v1 );
+ glTexCoord2f( L, B );
+ glVertex2fv( v2 );
+ glTexCoord2f( R, T );
+ glVertex2fv( v3 );
+ glTexCoord2f( R, B );
+ glVertex2fv( v4 );
+ glEnd();
+ glTranslatef( scale, 0, 0 );
+ }
+
+ private:
+ float v1[2], v2[2], v3[2], v4[2];
+ unsigned int texNum; //number of texture to activate
+ float L, T, R, B; //coordinates for mapping
+};
+
+
+class Word
+{
+ friend class Writer;
+ public:
+ Word( const char * text, TQMap<char, Symbol *> * map, float scale = 1.0 );
+
+ inline void renderWord( double dT );
+ inline bool isDead();
+
+ private:
+ float width, scale, cX, cY;
+ float vScale, vX, vY;
+ float activateTime, lifeTime, currentTime;
+ float color[4];
+ TQPtrList<Symbol> symbolList;
+};
+
+
+/*
+ *
+ **/
+class Writer
+{
+ public:
+ Writer( TQString descFileName );
+ ~Writer();
+
+ //types of effects implemented
+ enum effectType { NoEffect = 0, Sequence, Fun1, Fun2 };
+
+ //call this function to add a sentence to the renderer
+ void spawnWords( TQString phrase, effectType fx = NoEffect );
+
+ //called to get the words on screen using OpenGL
+ //Note: the context must be set up. Words are drawn on XY plane
+ //inside a rectangle with 10 units's side.
+ void render( double dT );
+
+ private:
+ //misc utility functions
+ bool loadMap( TQString );
+
+ //texture 'references' used by GL to delete allocated textures
+ int numTextures;
+ unsigned int texArray[16];
+
+ //list of words and map of symbols
+ TQPtrList<Word> wordList;
+ TQMap<char, Symbol *> symbolMap;
+
+ //disables standard constructor
+ Writer();
+};
+
+#endif
diff --git a/tdescreensaver/kdesavers/fountain.cpp b/tdescreensaver/kdesavers/fountain.cpp
new file mode 100644
index 00000000..7e4c13f8
--- /dev/null
+++ b/tdescreensaver/kdesavers/fountain.cpp
@@ -0,0 +1,461 @@
+//-----------------------------------------------------------------------------
+//
+// kfountain - Partical Fountain Screen Saver for KDE 2
+//
+// Copyright (c) Ian Reinhart Geiser 2001
+//
+// TDEConfig code and KScreenSaver "Setup..." improvements by
+// Nick Betcher <nbetcher@usinternet.com> 2001
+//
+#include <stdlib.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <kapplication.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kcolordialog.h>
+#include <kbuttonbox.h>
+#include <kcolorbutton.h>
+#include <kglobal.h>
+#include "fountain.h"
+#include "fountain.moc"
+#ifdef TQ_WS_MACX
+#include <OpenGL/gl.h>
+#include <OpenGL/glu.h>
+#else
+#include <GL/glu.h>
+#include <GL/gl.h>
+#endif
+#include <tqimage.h>
+#include <kdebug.h>
+#include <tqpainter.h>
+#include <tqradiobutton.h>
+#include <tqspinbox.h>
+#include <kstandarddirs.h>
+#include <math.h>
+#include <kmessagebox.h>
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kfountain.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "Particle Fountain Screen Saver" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new KFountainSaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new KFountainSetup();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// dialog to setup screen saver parameters
+//
+KFountainSetup::KFountainSetup( TQWidget *parent, const char *name )
+ : SetupUi( parent, name, TRUE )
+{
+ readSettings();
+
+ //TQLabel *label;
+ //TQPushButton *button;
+
+ //setCaption( i18n("Setup Particle Fountain") );
+
+ //TQVBoxLayout *tl = new TQVBoxLayout(this, 10);
+ //TQHBoxLayout *tl1 = new TQHBoxLayout;
+ //tl->addLayout(tl1);
+
+ //TQVBoxLayout *tl11 = new TQVBoxLayout(5);
+ //tl1->addLayout(tl11);
+
+ //label = new TQLabel( i18n("No options here yet...:"), this );
+ ///tl11->addWidget(label);;
+
+ //preview = new TQWidget( this );
+ preview->setFixedSize( 220, 170 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ saver = new KFountainSaver( preview->winId() );
+ //tl1->addWidget(preview);
+
+ //KButtonBox *bbox = new KButtonBox(this);
+ //bbox->addStretch(1);
+;
+ connect( PushButton1, TQT_SIGNAL( clicked() ), TQT_SLOT( slotOkPressed() ) );
+ connect( PushButton2, TQT_SIGNAL( clicked() ), TQT_SLOT( reject() ) );
+ connect( PushButton3, TQT_SIGNAL( clicked() ), TQT_SLOT( aboutPressed() ) );
+ connect( SpinBox1, TQT_SIGNAL( valueChanged(int)), saver, TQT_SLOT( updateSize(int)));
+ connect( RadioButton1, TQT_SIGNAL( toggled(bool)), saver, TQT_SLOT( doStars(bool)));
+
+}
+
+// read settings from config file
+void KFountainSetup::readSettings()
+{
+ TDEConfig config("kssfountainrc", false, false);
+
+ config.setGroup( "Settings" );
+ TQString boolval = config.readEntry( "Stars", "false" );
+ if (boolval == "true") {
+ RadioButton1->setDown(true);
+ RadioButton1_2->setDown(false);
+ } else {
+ if (boolval == "false")
+ {
+ RadioButton1->setDown(false);
+ RadioButton1_2->setDown(true);
+ }
+ }
+
+ TQString starammount = config.readEntry("StarSize", "75");
+ SpinBox1->setValue(starammount.toInt());
+
+}
+
+// Ok pressed - save settings and exit
+void KFountainSetup::slotOkPressed()
+{
+ TDEConfig config("kssfountainrc", false, false);
+ config.setGroup( "Settings" );
+
+ if (RadioButton1->isOn() == true)
+ {
+ config.writeEntry( "Stars", "true" );
+ } else {
+ if (RadioButton1_2->isOn() == true)
+ {
+ config.writeEntry( "Stars", "false" );
+ }
+ }
+ config.writeEntry( "StarSize", TQString::number(SpinBox1->value()) );
+
+ config.sync();
+
+ accept();
+}
+
+void KFountainSetup::aboutPressed()
+{
+ KMessageBox::about(this,
+ i18n("<h3>Particle Fountain</h3>\n<p>Particle Fountain Screen Saver for TDE</p>\nCopyright (c) Ian Reinhart Geiser 2001<br>\n\n<p>TDEConfig code and KScreenSaver \"Setup...\" improvements by Nick Betcher <nbetcher@usinternet.com> 2001</p>"));
+}
+//-----------------------------------------------------------------------------
+
+
+KFountainSaver::KFountainSaver( WId id ) : KScreenSaver( id )
+{
+
+ kdDebug() << "Blank" << endl;
+
+ timer = new TQTimer( this );
+ timer->start( 25, TRUE );
+ setBackgroundColor( black );
+ erase();
+ fountain = new Fountain();
+ embed(fountain);
+ fountain->show();
+ connect( timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(blank()) );
+}
+
+KFountainSaver::~KFountainSaver()
+{
+
+}
+
+// read configuration settings from config file
+void KFountainSaver::readSettings()
+{
+// Please remove me
+
+}
+
+void KFountainSaver::blank()
+{
+ // Play fountain
+
+ fountain->updateGL();
+ timer->start( 25, TRUE );
+
+}
+Fountain::Fountain( TQWidget * parent, const char * name) : TQGLWidget (parent,name)
+{
+ rainbow=true;
+ slowdown=2.0f;
+ zoom=-40.0f;
+ index=0;
+ size = 0.75f;
+ obj = gluNewQuadric();
+
+// This has to be here because you can't update the fountain until 'fountain' is created!
+ TDEConfig config("kssfountainrc", false, false);
+ config.setGroup( "Settings" );
+ TQString boolval = config.readEntry( "Stars", "false" );
+ if (boolval == "true") {
+ setStars(true);
+ } else {
+ if (boolval == "false")
+ {
+ setStars(false);
+ }
+ }
+
+ TQString starammount = config.readEntry("StarSize", "75");
+ float passvalue = (starammount.toInt() / 100.0);
+ setSize(passvalue);
+
+}
+
+Fountain::~Fountain()
+{
+ glDeleteTextures( 1, &texture[0] );
+ gluDeleteQuadric(obj);
+}
+
+/** load the particle file */
+bool Fountain::loadParticle()
+{
+ /* Status indicator */
+ bool Status = TRUE;
+ TQImage buf;
+
+ kdDebug() << "Loading: " << locate("data", "tdescreensaver/particle.png") << endl;
+ if (buf.load( locate("data", "tdescreensaver/particle.png") ) )
+
+ {
+ tex = convertToGLFormat(buf); // flipped 32bit RGBA
+ kdDebug() << "Texture loaded: " << tex.numBytes () << endl;
+ }
+ else
+ {
+ TQImage dummy( 32, 32, 32 );
+ dummy.fill( TQt::white.rgb() );
+ buf = dummy;
+ tex = convertToGLFormat( buf );
+ }
+
+ /* Set the status to true */
+ //Status = TRUE;
+ glGenTextures(1, &texture[0]); /* create three textures */
+ glBindTexture(GL_TEXTURE_2D, texture[0]);
+ /* use linear filtering */
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ /* actually generate the texture */
+ glTexImage2D(GL_TEXTURE_2D, 0, 4, tex.width(), tex.height(), 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, tex.bits());
+
+
+
+ return Status;
+}
+/** setup the GL enviroment */
+void Fountain::initializeGL ()
+{
+
+ kdDebug() << "InitGL" << endl;
+ GLfloat colors[12][3]=
+ {{1.0f,0.5f,0.5f},{1.0f,0.75f,0.5f},{1.0f,1.0f,0.5f},{0.75f,1.0f,0.5f},
+ {0.5f,1.0f,0.5f},{0.5f,1.0f,0.75f},{0.5f,1.0f,1.0f},{0.5f,0.75f,1.0f},
+ {0.5f,0.5f,1.0f},{0.75f,0.5f,1.0f},{1.0f,0.5f,1.0f},{1.0f,0.5f,0.75f}};
+
+ if (loadParticle()) // Jump To Texture Loading Routine
+ {
+ /* Enable smooth shading */
+ glShadeModel( GL_SMOOTH );
+
+ /* Set the background black */
+ glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
+
+ /* Depth buffer setup */
+ glClearDepth( 1.0f );
+
+ /* Enables Depth Testing */
+ glDisable( GL_DEPTH_TEST );
+
+ /* Enable Blending */
+ glEnable( GL_BLEND );
+ /* Type Of Blending To Perform */
+ glBlendFunc( GL_SRC_ALPHA, GL_ONE );
+
+
+ /* Really Nice Perspective Calculations */
+ glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );
+ /* Really Nice Point Smoothing */
+ glHint( GL_POINT_SMOOTH_HINT, GL_NICEST );
+
+ /* Enable Texture Mapping */
+ glEnable( GL_TEXTURE_2D );
+ /* Select Our Texture */
+ glBindTexture( GL_TEXTURE_2D, texture[0] );
+
+ for (loop=0;loop<MAX_PARTICLES;loop++) // Initials All The Textures
+ {
+ particle[loop].active=true; // Make All The Particles Active
+ particle[loop].life=1.0f; // Give All The Particles Full Life
+ particle[loop].fade=float(TDEApplication::random()%100)/1000.0f+0.003f; // Random Fade Speed
+ particle[loop].r=colors[(loop+1)/(MAX_PARTICLES/12)][0]; // Select Red Rainbow Color
+ particle[loop].g=colors[(loop+1)/(MAX_PARTICLES/12)][1]; // Select Green Rainbow Color
+ particle[loop].b=colors[(loop+1)/(MAX_PARTICLES/12)][2]; // Select Blue Rainbow Color
+ particle[loop].xi=float((TDEApplication::random()%50)-26.0f)*10.0f; // Random Speed On X Axis
+ particle[loop].yi=float((TDEApplication::random()%50)-25.0f)*10.0f; // Random Speed On Y Axis
+ particle[loop].zi=float((TDEApplication::random()%50)-25.0f)*10.0f; // Random Speed On Z Axis
+ particle[loop].xg=0.0f; // SetQt::Horizontal Pull To Zero
+ particle[loop].yg=-0.8f; // SetQt::Vertical Pull Downward
+ particle[loop].zg=0.0f; // Set Pull On Z Axis To Zero
+ particle[loop].size=size; // Set particle size.
+ }
+ }
+ else
+ exit(0);
+}
+/** resize the gl view */
+void Fountain::resizeGL ( int width, int height )
+{
+ kdDebug() << "ResizeGL " << width << "," <<height<< endl;
+ if (height==0) // Prevent A Divide By Zero By
+ {
+ height=1; // Making Height Equal One
+ }
+
+ glViewport(0,0,width,height); // Reset The Current Viewport
+
+ glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
+ glLoadIdentity(); // Reset The Projection Matrix
+
+ // Calculate The Aspect Ratio Of The Window
+ gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,200.0f);
+
+ glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
+ glLoadIdentity();
+}
+/** paint the GL view */
+void Fountain::paintGL ()
+{
+ //kdDebug() << "PaintGL" << endl;
+
+ GLfloat colors[12][3]=
+ {{1.0f,0.5f,0.5f},{1.0f,0.75f,0.5f},{1.0f,1.0f,0.5f},{0.75f,1.0f,0.5f},
+ {0.5f,1.0f,0.5f},{0.5f,1.0f,0.75f},{0.5f,1.0f,1.0f},{0.5f,0.75f,1.0f},
+ {0.5f,0.5f,1.0f},{0.75f,0.5f,1.0f},{1.0f,0.5f,1.0f},{1.0f,0.5f,0.75f}};
+ col = ( ++col ) % 12;
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer
+
+ glLoadIdentity();
+ // Reset The ModelView Matrix
+ transIndex++;
+ glTranslatef( GLfloat(5.0*sin(4*3.14*transIndex/360)), GLfloat(4.0*cos(2*3.14*transIndex/360)), 0.0 );
+ xspeed = GLfloat(100.0*cos(3*3.14*transIndex/360)+100);
+ yspeed = GLfloat(100.0*sin(3*3.14*transIndex/360)+100);
+ //slowdown = GLfloat(4.0*sin(2*3.14*transIndex/360)+4.01);
+
+ for (loop=0;loop<MAX_PARTICLES;loop++) // Loop Through All The Particles
+ {
+ if (particle[loop].active) // If The Particle Is Active
+ {
+ float x=particle[loop].x; // Grab Our Particle X Position
+ float y=particle[loop].y; // Grab Our Particle Y Position
+ float z=particle[loop].z+zoom; // Particle Z Pos + Zoom
+ /* Select Our Texture */
+
+ /* Draw The Particle Using Our RGB Values,
+ * Fade The Particle Based On It's Life
+ */
+
+ glColor4f( particle[loop].r,
+ particle[loop].g,
+ particle[loop].b,
+ particle[loop].life );
+
+ /* Build Quad From A Triangle Strip */
+ if( !stars )
+ glBegin( GL_TRIANGLE_STRIP );
+ else
+ glBegin( GL_TRIANGLE_FAN );
+ /* Top Right */
+ glTexCoord2d( 1, 1 );
+ glVertex3f( x + particle[loop].size, y + particle[loop].size, z );
+ /* Top Left */
+ glTexCoord2d( 0, 1 );
+ glVertex3f( x - particle[loop].size, y + particle[loop].size, z );
+ /* Bottom Right */
+ glTexCoord2d( 1, 0 );
+ glVertex3f( x + particle[loop].size, y - particle[loop].size, z );
+ /* Bottom Left */
+ glTexCoord2d( 0, 0 );
+ glVertex3f( x - particle[loop].size, y - particle[loop].size, z );
+ glEnd( );
+
+ particle[loop].x+=particle[loop].xi/(slowdown*1000);// Move On The X Axis By X Speed
+ particle[loop].y+=particle[loop].yi/(slowdown*1000);// Move On The Y Axis By Y Speed
+ particle[loop].z+=particle[loop].zi/(slowdown*1000);// Move On The Z Axis By Z Speed
+
+ particle[loop].xi+=particle[loop].xg; // Take Pull On X Axis Into Account
+ particle[loop].yi+=particle[loop].yg; // Take Pull On Y Axis Into Account
+ particle[loop].zi+=particle[loop].zg; // Take Pull On Z Axis Into Account
+ particle[loop].life-=particle[loop].fade; // Reduce Particles Life By 'Fade'
+
+ if (particle[loop].life<0.0f) // If Particle Is Burned Out
+ {
+ particle[loop].life=2.0f; // Give It New Life
+ particle[loop].fade=float(TDEApplication::random()%100)/1000.0f+0.003f; // Random Fade Value
+ particle[loop].x=0.0f; // Center On X Axis
+ particle[loop].y=0.0f; // Center On Y Axis
+ particle[loop].z=0.0f; // Center On Z Axis
+ particle[loop].xi=xspeed+float((TDEApplication::random()%60)-32.0f); // X Axis Speed And Direction
+ particle[loop].yi=yspeed+float((TDEApplication::random()%60)-30.0f); // Y Axis Speed And Direction
+ particle[loop].zi=float((TDEApplication::random()%60)-30.0f); // Z Axis Speed And Direction
+ particle[loop].r=colors[col][0]; // Select Red From Color Table
+ particle[loop].g=colors[col][1]; // Select Green From Color Table
+ particle[loop].b=colors[col][2]; // Select Blue From Color Table
+ particle[loop].size=size;
+ if ((1+(random()%20)) == 10)
+ {
+ // Explode
+ particle[loop].active=true; // Make All The Particles Active
+ particle[loop].life=1.0f; // Give All The Particles Full Life
+ particle[loop].fade=float(TDEApplication::random()%100)/1000.0f+0.003f; // Random Fade Speed
+ particle[loop].r=colors[(loop+1)/(MAX_PARTICLES/12)][0]; // Select Red Rainbow Color
+ particle[loop].g=colors[(loop+1)/(MAX_PARTICLES/12)][1]; // Select Green Rainbow Color
+ particle[loop].b=colors[(loop+1)/(MAX_PARTICLES/12)][2]; // Select Blue Rainbow Color
+ particle[loop].xi=float((TDEApplication::random()%50)-26.0f)*10.0f; // Random Speed On X Axis
+ particle[loop].yi=float((TDEApplication::random()%50)-25.0f)*10.0f; // Random Speed On Y Axis
+ particle[loop].zi=float((TDEApplication::random()%50)-25.0f)*10.0f; // Random Speed On Z Axis
+ particle[loop].xg=0.0f; // SetQt::Horizontal Pull To Zero
+ particle[loop].yg=-0.8f; // SetQt::Vertical Pull Downward
+ particle[loop].zg=0.0f; // Set Pull On Z Axis To Zero
+ particle[loop].size=size; // Set particle size.
+ }
+ }
+ // Lets stir some things up
+ index += 0.001;
+ particle[loop].yg =2.0*sin(2*3.14*transIndex/360);
+ particle[loop].xg =2.0*cos(2*3.14*transIndex/360);
+ particle[loop].zg =4.0+(4.0*cos(2*3.14*transIndex/360));
+
+ }
+ }
+
+ glFlush();
+}
+void Fountain::setSize( float newSize )
+{
+ size = newSize;
+}
+void Fountain::setStars( bool doStars )
+{
+ stars = doStars;
+}
+
+void KFountainSaver::updateSize(int newSize)
+{
+ fountain->setSize(newSize/100);
+}
+void KFountainSaver::doStars(bool starState)
+{
+ fountain->setStars(starState);
+}
+
diff --git a/tdescreensaver/kdesavers/fountain.h b/tdescreensaver/kdesavers/fountain.h
new file mode 100644
index 00000000..492680ff
--- /dev/null
+++ b/tdescreensaver/kdesavers/fountain.h
@@ -0,0 +1,143 @@
+//-----------------------------------------------------------------------------
+//
+// kfountain - Partical Fountain Screen Saver for KDE 2
+//
+// Copyright (c) Ian Reinhart Geiser 2001
+//
+/////
+//NOTE:
+// The base particle engine did not come from me, it was designed by Jeff Molofee <nehe@connect.ab.ca>
+// I did some extensive modifications to make it work with QT's OpenGL but the base principal is about
+// the same.
+////
+
+#ifndef __FOUNTAIN_H__
+#define __FOUNTAIN_H__
+
+#include <tqdialog.h>
+#include <tqgl.h>
+#ifdef TQ_WS_MACX
+#include <OpenGL/gl.h>
+#include <OpenGL/glu.h>
+#else
+#include <GL/glu.h>
+#include <GL/gl.h>
+#endif
+#include <tdescreensaver.h>
+#include <tqtimer.h>
+#include <tqimage.h>
+#include "fountaincfg.h"
+#include <kinstance.h>
+#include <tqfile.h>
+#include <tqtextstream.h>
+
+#define MAX_PARTICLES 1000
+
+
+class Fountain : public TQGLWidget
+{
+Q_OBJECT
+
+ class particles // Create A Structure For Particle
+ {
+ public:
+ bool active; // Active (Yes/No)
+ float life; // Particle Life
+ float fade; // Fade Speed
+ float r; // Red Value
+ float g; // Green Value
+ float b; // Blue Value
+ float x; // X Position
+ float y; // Y Position
+ float z; // Z Position
+ float xi; // X Direction
+ float yi; // Y Direction
+ float zi; // Z Direction
+ float xg; // X Gravity
+ float yg; // Y Gravity
+ float zg; // Z Gravity
+ float size; // Particle Size
+ };
+
+public:
+ Fountain( TQWidget * parent=0, const char * name=0 );
+ ~Fountain();
+ void setSize( float newSize );
+ void setStars( bool doStars );
+protected:
+ /** paint the GL view */
+ void paintGL ();
+ /** resize the gl view */
+ void resizeGL ( int w, int h );
+ /** setup the GL enviroment */
+ void initializeGL ();
+
+
+private:
+ /** load the partical file */
+ bool loadParticle();
+
+ particles particle[MAX_PARTICLES];
+
+
+ bool rainbow; // Rainbow Mode?
+ bool sp; // Spacebar Pressed?
+ bool rp; // Enter Key Pressed?
+
+ float slowdown; // Slow Down Particles
+ float xspeed; // Base X Speed (To Allow Keyboard Direction Of Tail)
+ float yspeed; // Base Y Speed (To Allow Keyboard Direction Of Tail)
+ float zoom; // Used To Zoom Out
+ float size;
+ float stars;
+ GLuint loop; // Misc Loop Variable
+ GLuint col; // Current Color Selection
+ GLuint delay; // Rainbow Effect Delay
+ GLuint texture[1];
+ TQImage tex;
+ float index;
+ float transIndex;
+ GLfloat scale;
+ GLUquadricObj *obj;
+};
+
+class KFountainSaver : public KScreenSaver
+{
+Q_OBJECT
+
+public:
+ KFountainSaver( WId drawable );
+ virtual ~KFountainSaver();
+ void readSettings();
+public slots:
+ void blank();
+ void updateSize(int newSize);
+ void doStars(bool starState);
+// void loadTextures(bool textures);
+private:
+ Fountain *fountain;
+ TQTimer *timer;
+};
+
+class KFountainSetup : public SetupUi
+{
+ Q_OBJECT
+
+public:
+ KFountainSetup( TQWidget *parent = NULL, const char *name = NULL );
+
+protected:
+ void readSettings();
+
+private slots:
+ void slotOkPressed();
+ void aboutPressed();
+private:
+ KFountainSaver *saver;
+ float size;
+ float stars;
+};
+
+#endif
+
+
diff --git a/tdescreensaver/kdesavers/fountaincfg.ui b/tdescreensaver/kdesavers/fountaincfg.ui
new file mode 100644
index 00000000..3b5eacd7
--- /dev/null
+++ b/tdescreensaver/kdesavers/fountaincfg.ui
@@ -0,0 +1,192 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>SetupUi</class>
+<widget class="TQDialog">
+ <property name="name">
+ <cstring>SetupUi</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>209</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>400</width>
+ <height>209</height>
+ </size>
+ </property>
+ <property name="baseSize">
+ <size>
+ <width>400</width>
+ <height>250</height>
+ </size>
+ </property>
+ <property name="caption">
+ <string>Particle Fountain Setup</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>Layout4</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQCheckBox" row="3" column="0">
+ <property name="name">
+ <cstring>CheckBox1</cstring>
+ </property>
+ <property name="text">
+ <string>Use textures</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="4" column="2">
+ <property name="name">
+ <cstring>PushButton3</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;About</string>
+ </property>
+ </widget>
+ <widget class="TQSpinBox" row="1" column="0">
+ <property name="name">
+ <cstring>SpinBox1</cstring>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ <property name="minValue">
+ <number>25</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>75</number>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="4" column="1">
+ <property name="name">
+ <cstring>PushButton2</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="4" column="0">
+ <property name="name">
+ <cstring>PushButton1</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQGroupBox" row="2" column="0">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="title">
+ <string>Shapes</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>Layout3</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQRadioButton">
+ <property name="name">
+ <cstring>RadioButton1</cstring>
+ </property>
+ <property name="text">
+ <string>Stars</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQRadioButton">
+ <property name="name">
+ <cstring>RadioButton1_2</cstring>
+ </property>
+ <property name="text">
+ <string>Flares</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQWidget" row="0" column="1" rowspan="4" colspan="2">
+ <property name="name">
+ <cstring>preview</cstring>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Particle size:</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<connections>
+ <connection>
+ <sender>RadioButton1_2</sender>
+ <signal>pressed()</signal>
+ <receiver>RadioButton1</receiver>
+ <slot>toggle()</slot>
+ </connection>
+ <connection>
+ <sender>RadioButton1</sender>
+ <signal>pressed()</signal>
+ <receiver>RadioButton1_2</receiver>
+ <slot>toggle()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/tdescreensaver/kdesavers/gravity.cpp b/tdescreensaver/kdesavers/gravity.cpp
new file mode 100644
index 00000000..8c0accc1
--- /dev/null
+++ b/tdescreensaver/kdesavers/gravity.cpp
@@ -0,0 +1,419 @@
+//-----------------------------------------------------------------------------
+//
+// kgravity - Partical Gravity Screen Saver for KDE 2
+//
+// Copyright (c) Ian Reinhart Geiser 2001
+//
+// TDEConfig code and KScreenSaver "Setup..." improvements by
+// Nick Betcher <nbetcher@usinternet.com> 2001
+//
+#include <stdlib.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <kapplication.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kcolordialog.h>
+#include <kbuttonbox.h>
+#include <kcolorbutton.h>
+#include "gravity.h"
+#include "gravity.moc"
+#ifdef TQ_WS_MACX
+#include <OpenGL/glu.h>
+#include <OpenGL/gl.h>
+#else
+#include <GL/glu.h>
+#include <GL/gl.h>
+#endif
+#include <tqimage.h>
+#include <kdebug.h>
+#include <tqpainter.h>
+#include <tqradiobutton.h>
+#include <tqspinbox.h>
+#include <kstandarddirs.h>
+#include <math.h>
+#include <kmessagebox.h>
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kgravity.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "Particle Gravity Screen Saver" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new KGravitySaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new KGravitySetup();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// dialog to setup screen saver parameters
+//
+KGravitySetup::KGravitySetup( TQWidget *parent, const char *name )
+ : SetupUi( parent, name, TRUE )
+{
+ readSettings();
+
+ preview->setFixedSize( 220, 170 );
+ preview->setBackgroundColor( black );
+#ifdef TQ_WS_X11
+ preview->show(); // otherwise saver does not get correct size
+#endif
+ saver = new KGravitySaver( preview->winId() );
+;
+ connect( PushButton1, TQT_SIGNAL( clicked() ), TQT_SLOT( slotOkPressed() ) );
+ connect( PushButton2, TQT_SIGNAL( clicked() ), TQT_SLOT( reject() ) );
+ connect( PushButton3, TQT_SIGNAL( clicked() ), TQT_SLOT( aboutPressed() ) );
+ connect( SpinBox1, TQT_SIGNAL( valueChanged(int)), saver, TQT_SLOT( updateSize(int)));
+ connect( RadioButton1, TQT_SIGNAL( toggled(bool)), saver, TQT_SLOT( doStars(bool)));
+
+}
+
+KGravitySetup::~KGravitySetup()
+{
+ delete saver;
+}
+
+// read settings from config file
+void KGravitySetup::readSettings()
+{
+ TDEConfig config("kssgravityrc", false, false);
+
+ config.setGroup( "Settings" );
+ TQString boolval = config.readEntry( "Stars", "false" );
+ if (boolval == "true") {
+ RadioButton1->setDown(true);
+ RadioButton1_2->setDown(false);
+ } else {
+ if (boolval == "false")
+ {
+ RadioButton1->setDown(false);
+ RadioButton1_2->setDown(true);
+ }
+ }
+
+ TQString starammount = config.readEntry("StarSize", "75");
+ SpinBox1->setValue(starammount.toInt());
+
+}
+
+// Ok pressed - save settings and exit
+void KGravitySetup::slotOkPressed()
+{
+ TDEConfig config("kssgravityrc", false, false);
+ config.setGroup( "Settings" );
+
+ if (RadioButton1->isOn() == true)
+ {
+ config.writeEntry( "Stars", "true" );
+ } else {
+ if (RadioButton1_2->isOn() == true)
+ {
+ config.writeEntry( "Stars", "false" );
+ }
+ }
+ config.writeEntry( "StarSize", TQString::number(SpinBox1->value()) );
+
+ config.sync();
+
+ accept();
+}
+
+void KGravitySetup::aboutPressed()
+{
+ KMessageBox::about(this,
+ i18n("<h3>Gravity</h3>\n<p>Particle Gravity Screen Saver for TDE</p>\nCopyright (c) Ian Reinhart Geiser 2001<br>\n\n<p>TDEConfig code and KScreenSaver \"Setup...\" improvements by Nick Betcher <nbetcher@usinternet.com> 2001</p>"));
+}
+//-----------------------------------------------------------------------------
+
+
+KGravitySaver::KGravitySaver( WId id ) : KScreenSaver( id )
+{
+
+ kdDebug() << "Blank" << endl;
+
+ timer = new TQTimer( this );
+ timer->start( 25, TRUE );
+ setBackgroundColor( black );
+ erase();
+ gravity = new Gravity();
+ embed(gravity);
+#ifdef TQ_WS_X11
+ gravity->show();
+#endif
+ connect( timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(blank()) );
+}
+
+KGravitySaver::~KGravitySaver()
+{
+
+}
+
+// read configuration settings from config file
+void KGravitySaver::readSettings()
+{
+// Please remove me
+
+}
+
+void KGravitySaver::blank()
+{
+ // Play gravity
+
+ gravity->updateGL();
+ timer->start( 25, TRUE );
+
+}
+Gravity::Gravity( TQWidget * parent, const char * name) : TQGLWidget (parent,name)
+{
+ rainbow=true;
+ slowdown=2.0f;
+ zoom=-50.0f;
+ index=0;
+ size = 3.95f;
+// obj = gluNewQuadric();
+
+// This has to be here because you can't update the gravity until 'gravity' is created!
+ TDEConfig config("kssgravityrc", false, false);
+ config.setGroup( "Settings" );
+ TQString boolval = config.readEntry( "Stars", "false" );
+ if (boolval == "true") {
+ setStars(true);
+ } else {
+ if (boolval == "false")
+ {
+ setStars(false);
+ }
+ }
+
+ TQString starammount = config.readEntry("StarSize", "75");
+ float passvalue = (starammount.toInt() / 100.0);
+ setSize(passvalue);
+
+}
+
+Gravity::~Gravity()
+{
+ glDeleteTextures( 1, &texture[0] );
+ gluDeleteQuadric(obj);
+}
+
+/** load the particle file */
+bool Gravity::loadParticle()
+{
+ /* Status indicator */
+ bool Status = TRUE;
+ TQImage buf;
+
+ kdDebug() << "Loading: " << locate("data", "tdescreensaver/particle.png") << endl;
+ if (buf.load( locate("data", "tdescreensaver/particle.png") ) )
+
+ {
+ tex = convertToGLFormat(buf); // flipped 32bit RGBA
+ kdDebug() << "Texture loaded: " << tex.numBytes () << endl;
+ }
+ else
+ {
+ TQImage dummy( 32, 32, 32 );
+ dummy.fill( TQt::white.rgb() );
+ buf = dummy;
+ tex = convertToGLFormat( buf );
+ }
+
+ /* Set the status to true */
+ //Status = TRUE;
+ glGenTextures(1, &texture[0]); /* create three textures */
+ glBindTexture(GL_TEXTURE_2D, texture[0]);
+ /* use linear filtering */
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+ /* actually generate the texture */
+ glTexImage2D(GL_TEXTURE_2D, 0, 4, tex.width(), tex.height(), 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, tex.bits());
+
+
+
+ return Status;
+}
+/** setup the GL enviroment */
+void Gravity::initializeGL ()
+{
+
+ kdDebug() << "InitGL" << endl;
+
+ if (loadParticle()) // Jump To Texture Loading Routine
+ {
+ /* Enable smooth shading */
+ glShadeModel( GL_SMOOTH );
+
+ /* Set the background black */
+ glClearColor( 0.0f, 0.0f, 0.0f, 0.0f );
+
+ /* Depth buffer setup */
+ glClearDepth( 1.0f );
+
+ /* Enables Depth Testing */
+ glDisable( GL_DEPTH_TEST );
+
+ /* Enable Blending */
+ glEnable( GL_BLEND );
+ /* Type Of Blending To Perform */
+ glBlendFunc( GL_SRC_ALPHA, GL_ONE );
+
+
+ /* Really Nice Perspective Calculations */
+ glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST );
+ /* Really Nice Point Smoothing */
+ glHint( GL_POINT_SMOOTH_HINT, GL_NICEST );
+
+ /* Enable Texture Mapping */
+ glEnable( GL_TEXTURE_2D );
+ /* Select Our Texture */
+ glBindTexture( GL_TEXTURE_2D, texture[0] );
+
+ for (loop=0;loop<MAX_PARTICLES;loop++) // Initials All The Textures
+ {
+ buildParticle(loop);
+ }
+ }
+ else
+ exit(0);
+}
+/** resize the gl view */
+void Gravity::resizeGL ( int width, int height )
+{
+ kdDebug() << "ResizeGL " << width << "," <<height<< endl;
+ if (height==0) // Prevent A Divide By Zero By
+ {
+ height=1; // Making Height Equal One
+ }
+
+ glViewport(0,0,width,height); // Reset The Current Viewport
+
+ glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
+ glLoadIdentity(); // Reset The Projection Matrix
+
+ // Calculate The Aspect Ratio Of The Window
+ gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,0.1f,100.0f);
+
+ glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
+ glLoadIdentity();
+}
+/** paint the GL view */
+void Gravity::paintGL ()
+{
+ //kdDebug() << "PaintGL" << endl;
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer
+ glLoadIdentity();
+ // Reset The ModelView Matrix
+ transIndex++;
+ //glRotatef(transIndex, 1,0,0);
+ //glRotatef(transIndex, 0,1,0);
+ //glRotatef(transIndex, 0,0,1);
+ float xmax = 5.0;
+ float ymax = 5.0;
+ glTranslatef( GLfloat(xmax*sin(3.14*transIndex/360)-xmax),
+ GLfloat(ymax*cos(3.14*transIndex/360)-ymax),
+ 0.0 );
+ //glRotatef(transIndex, 0,GLfloat(zmax*cos(3.14*transIndex/360000)), GLfloat(zmax*cos(3.14*transIndex/360000)));
+
+ for (loop=0;loop<MAX_PARTICLES;loop++) // Loop Through All The Particles
+ {
+ if (particle[loop].active) // If The Particle Is Active
+ {
+ float x=particle[loop].x; // Grab Our Particle X Position
+ float y=particle[loop].y; // Grab Our Particle Y Position
+ float z=particle[loop].z+zoom; // Particle Z Pos + Zoom
+ /* Select Our Texture */
+
+ /* Draw The Particle Using Our RGB Values,
+ * Fade The Particle Based On It's Life
+ */
+ particle[loop].life=(particle[loop].index/particle[loop].indexo)*2.0f;
+ glColor4f( particle[loop].r,
+ particle[loop].g,
+ particle[loop].b,
+ particle[loop].life );
+
+ /* Build Quad From A Triangle Strip */
+ if( !stars )
+ glBegin( GL_TRIANGLE_STRIP );
+ else
+ glBegin( GL_TRIANGLE_FAN );
+ /* Top Right */
+ glTexCoord2d( 1, 1 );
+ glVertex3f( x + particle[loop].size, y + particle[loop].size, z );
+ /* Top Left */
+ glTexCoord2d( 0, 1 );
+ glVertex3f( x - particle[loop].size, y + particle[loop].size, z );
+ /* Bottom Right */
+ glTexCoord2d( 1, 0 );
+ glVertex3f( x + particle[loop].size, y - particle[loop].size, z );
+ /* Bottom Left */
+ glTexCoord2d( 0, 0 );
+ glVertex3f( x - particle[loop].size, y - particle[loop].size, z );
+ glEnd( );
+ particle[loop].x=(particle[loop].xo*sin(particle[loop].index))*pow((double) particle[loop].index/particle[loop].indexo,(double) 8.0);
+ particle[loop].y=(particle[loop].yo*sin(particle[loop].index))*pow((double) particle[loop].index/particle[loop].indexo,(double) 8.0);
+ particle[loop].z=(particle[loop].zo*sin(particle[loop].index))*pow((double) particle[loop].index/particle[loop].indexo,(double) 8.0);
+ particle[loop].index-=0.05;
+ if (particle[loop].index<0.0f ) // If Particle Is Burned Out
+ {
+ buildParticle(loop);
+ }
+ // Lets stir some things up
+ }
+ }
+
+ glFlush();
+}
+void Gravity::setSize( float newSize )
+{
+ size = newSize;
+}
+void Gravity::setStars( bool doStars )
+{
+ stars = doStars;
+}
+
+void KGravitySaver::updateSize(int newSize)
+{
+ gravity->setSize(newSize/100);
+}
+void KGravitySaver::doStars(bool starState)
+{
+ gravity->setStars(starState);
+}
+
+void Gravity::buildParticle(int loop)
+{
+ GLfloat colors[12][3]=
+ {{1.0f,0.5f,0.5f},{1.0f,0.75f,0.5f},{1.0f,1.0f,0.5f},{0.75f,1.0f,0.5f},
+ {0.5f,1.0f,0.5f},{0.5f,1.0f,0.75f},{0.5f,1.0f,1.0f},{0.5f,0.75f,1.0f},
+ {0.5f,0.5f,1.0f},{0.75f,0.5f,1.0f},{1.0f,0.5f,1.0f},{1.0f,0.5f,0.75f}};
+ col = ( ++col ) % 12;
+ particle[loop].active=true;
+ particle[loop].index=TDEApplication::random()%100;
+ particle[loop].indexo=particle[loop].index;
+ particle[loop].fade=float(TDEApplication::random()%100)/1000.0f+0.003f; // Random Fade Value
+ particle[loop].r=colors[col][0]; // Select Red From Color Table
+ particle[loop].g=colors[col][1]; // Select Green From Color Table
+ particle[loop].b=colors[col][2]; // Select Blue From Color Table
+ particle[loop].size=size;
+ particle[loop].x = float(TDEApplication::random()%100-50)*4.0;
+ particle[loop].y = float(TDEApplication::random()%20-10)*4.0;
+ particle[loop].z = float(TDEApplication::random()%100-50)*4.0;
+ particle[loop].xo = particle[loop].x;
+ if ((1+(TDEApplication::random() % 10) > 5))
+ particle[loop].yo = particle[loop].y;
+ else
+ particle[loop].yo = 0.0;
+ particle[loop].zo = particle[loop].z;
+
+}
+
diff --git a/tdescreensaver/kdesavers/gravity.h b/tdescreensaver/kdesavers/gravity.h
new file mode 100644
index 00000000..2d44ea64
--- /dev/null
+++ b/tdescreensaver/kdesavers/gravity.h
@@ -0,0 +1,144 @@
+///-----------------------------------------------------------------------------
+//
+// kgravity - Partical gravity Screen Saver for KDE 2
+//
+// Copyright (c) Ian Reinhart Geiser 2001
+//
+/////
+//NOTE:
+// The base particle engine did not come from me, it was designed by Jeff Molofee <nehe@connect.ab.ca>
+// I did some extensive modifications to make it work with QT's OpenGL but the base principal is about
+// the same.
+////
+
+#ifndef __GRAVITY_H__
+#define __GRAVITY_H__
+
+#include <tqdialog.h>
+#include <tqgl.h>
+#ifdef TQ_WS_MACX
+#include <OpenGL/glu.h>
+#include <OpenGL/gl.h>
+#else
+#include <GL/glu.h>
+#include <GL/gl.h>
+#endif
+#include <tdescreensaver.h>
+#include <tqtimer.h>
+#include <tqimage.h>
+#include "gravitycfg.h"
+#include <kinstance.h>
+#include <tqfile.h>
+#include <tqtextstream.h>
+
+#define MAX_PARTICLES 100
+
+
+class Gravity : public TQGLWidget
+{
+Q_OBJECT
+
+ class particles // Create A Structure For Particle
+ {
+ public:
+ bool active; // Active (Yes/No)
+ float life; // Particle Life
+ float fade; // Fade Speed
+ float r; // Red Value
+ float g; // Green Value
+ float b; // Blue Value
+ float x; // X Position
+ float y; // Y Position
+ float z; // Z Position
+ float xo; // X Position
+ float yo; // Y Position
+ float zo; // Z Position
+ float index; // Index
+ float indexo;
+ float size; // Particle Size
+ };
+
+public:
+ Gravity( TQWidget * parent=0, const char * name=0 );
+ ~Gravity();
+ void setSize( float newSize );
+ void setStars( bool doStars );
+protected:
+ /** paint the GL view */
+ void paintGL ();
+ /** resize the gl view */
+ void resizeGL ( int w, int h );
+ /** setup the GL enviroment */
+ void initializeGL ();
+ void buildParticle(int loop);
+
+private:
+ /** load the partical file */
+ bool loadParticle();
+
+ particles particle[MAX_PARTICLES];
+
+
+ bool rainbow; // Rainbow Mode?
+ bool sp; // Spacebar Pressed?
+ bool rp; // Enter Key Pressed?
+ float slowdown; // Slow Down Particles
+ float xspeed; // Base X Speed (To Allow Keyboard Direction Of Tail)
+ float yspeed; // Base Y Speed (To Allow Keyboard Direction Of Tail)
+ float zoom; // Used To Zoom Out
+ float size;
+ float stars;
+ GLuint loop; // Misc Loop Variable
+ GLuint col; // Current Color Selection
+ GLuint delay; // Rainbow Effect Delay
+ GLuint texture[1];
+ TQImage tex;
+ float index;
+ float transIndex;
+ GLfloat scale;
+ GLUquadricObj *obj;
+};
+
+class KGravitySaver : public KScreenSaver
+{
+Q_OBJECT
+
+public:
+ KGravitySaver( WId drawable );
+ virtual ~KGravitySaver();
+ void readSettings();
+public slots:
+ void blank();
+ void updateSize(int newSize);
+ void doStars(bool starState);
+// void loadTextures(bool textures);
+private:
+ Gravity *gravity;
+ TQTimer *timer;
+};
+
+class KGravitySetup : public SetupUi
+{
+ Q_OBJECT
+
+public:
+ KGravitySetup( TQWidget *parent = NULL, const char *name = NULL );
+ ~KGravitySetup();
+
+protected:
+ void readSettings();
+
+private slots:
+ void slotOkPressed();
+ void aboutPressed();
+private:
+ KGravitySaver *saver;
+ float size;
+ float stars;
+ float zoom;
+ float speed;
+};
+
+#endif
+
+
diff --git a/tdescreensaver/kdesavers/gravitycfg.ui b/tdescreensaver/kdesavers/gravitycfg.ui
new file mode 100644
index 00000000..2d809c1f
--- /dev/null
+++ b/tdescreensaver/kdesavers/gravitycfg.ui
@@ -0,0 +1,192 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>SetupUi</class>
+<widget class="TQDialog">
+ <property name="name">
+ <cstring>SetupUi</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>209</height>
+ </rect>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>400</width>
+ <height>209</height>
+ </size>
+ </property>
+ <property name="baseSize">
+ <size>
+ <width>400</width>
+ <height>250</height>
+ </size>
+ </property>
+ <property name="caption">
+ <string>Gravity Setup</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>Layout4</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQCheckBox" row="3" column="0">
+ <property name="name">
+ <cstring>CheckBox1</cstring>
+ </property>
+ <property name="text">
+ <string>Use textures</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="4" column="2">
+ <property name="name">
+ <cstring>PushButton3</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;About</string>
+ </property>
+ </widget>
+ <widget class="TQSpinBox" row="1" column="0">
+ <property name="name">
+ <cstring>SpinBox1</cstring>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ <property name="minValue">
+ <number>25</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ <property name="value">
+ <number>75</number>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="4" column="1">
+ <property name="name">
+ <cstring>PushButton2</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="4" column="0">
+ <property name="name">
+ <cstring>PushButton1</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQGroupBox" row="2" column="0">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="title">
+ <string>Shapes</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQLayoutWidget" row="0" column="0">
+ <property name="name">
+ <cstring>Layout3</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQRadioButton">
+ <property name="name">
+ <cstring>RadioButton1</cstring>
+ </property>
+ <property name="text">
+ <string>Stars</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQRadioButton">
+ <property name="name">
+ <cstring>RadioButton1_2</cstring>
+ </property>
+ <property name="text">
+ <string>Flares</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQWidget" row="0" column="1" rowspan="4" colspan="2">
+ <property name="name">
+ <cstring>preview</cstring>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Particle size:</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ </grid>
+</widget>
+<connections>
+ <connection>
+ <sender>RadioButton1_2</sender>
+ <signal>pressed()</signal>
+ <receiver>RadioButton1</receiver>
+ <slot>toggle()</slot>
+ </connection>
+ <connection>
+ <sender>RadioButton1</sender>
+ <signal>pressed()</signal>
+ <receiver>RadioButton1_2</receiver>
+ <slot>toggle()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/tdescreensaver/kdesavers/image.png b/tdescreensaver/kdesavers/image.png
new file mode 100644
index 00000000..859645da
--- /dev/null
+++ b/tdescreensaver/kdesavers/image.png
Binary files differ
diff --git a/tdescreensaver/kdesavers/kclock.cpp b/tdescreensaver/kdesavers/kclock.cpp
new file mode 100644
index 00000000..5201f222
--- /dev/null
+++ b/tdescreensaver/kdesavers/kclock.cpp
@@ -0,0 +1,588 @@
+// $Id$
+//
+// kclock - Clock screen saver for KDE
+// Copyright (c) 2003 Melchior FRANZ
+//
+// License: GPL v2
+// Author: Melchior FRANZ <mfranz@kde.org>
+// Dependencies: libart_lgpl_2 http://www.levien.com/libart/
+//
+#include <stdlib.h>
+#include <string.h>
+
+#include <tqcheckbox.h>
+#include <tqcolor.h>
+#include <tqdatetime.h>
+#include <tqgroupbox.h>
+#include <tqhbox.h>
+#include <tqimage.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <tqpainter.h>
+#include <tqslider.h>
+
+#include <kapplication.h>
+#include <kcolorbutton.h>
+#include <kconfig.h>
+#include <kglobal.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+
+#include <libart_lgpl/art_affine.h>
+#include <libart_lgpl/art_misc.h>
+#include <libart_lgpl/art_rgb.h>
+#include <libart_lgpl/art_rgb_svp.h>
+#include <libart_lgpl/art_svp_vpath.h>
+#include <libart_lgpl/art_svp_vpath_stroke.h>
+#include <libart_lgpl/art_vpath.h>
+
+#include "kclock.h"
+#include "kclock.moc"
+
+
+const int COLOR_BUTTON_WIDTH = 80;
+const int TIMER_INTERVALL = 100;
+const int MAX_CLOCK_SIZE = 10;
+const int DEFAULT_CLOCK_SIZE = 3;
+const bool DEFAULT_KEEP_CENTERED = false;
+
+
+
+
+extern "C" {
+ KDE_EXPORT const char *kss_applicationName = "kclock.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP("Clock");
+ KDE_EXPORT const char *kss_version = "1.0";
+
+ KDE_EXPORT KScreenSaver *kss_create(WId id) {
+ return new KClockSaver(id);
+ }
+
+ KDE_EXPORT TQDialog *kss_setup() {
+ return new KClockSetup();
+ }
+}
+
+
+
+
+//-----------------------------------------------------------------------------
+
+KClockSetup::KClockSetup(TQWidget *parent, const char *name)
+ : KDialogBase(parent, name, true, i18n( "Setup Clock Screen Saver" ),
+ Ok|Cancel|Help, Ok, true),
+ m_saver(0)
+{
+ readSettings();
+
+ setButtonText( Help, i18n( "A&bout" ) );
+ TQWidget *main = makeMainWidget();
+
+ TQVBoxLayout *top = new TQVBoxLayout(main, 0, spacingHint());
+
+ TQHBoxLayout *hbox = new TQHBoxLayout;
+ top->addLayout( hbox );
+
+ TQGroupBox *colgroup = new TQGroupBox(i18n("Colors"), main);
+ colgroup->setColumnLayout( 0,Qt::Horizontal );
+ TQGridLayout *grid = new TQGridLayout( colgroup->layout(),
+ 5, 2, spacingHint() );
+
+ TQLabel *label = new TQLabel(i18n("&Hour-hand:"), colgroup);
+ KColorButton *colorButton = new KColorButton(m_hourColor, colgroup);
+ colorButton->setFixedWidth(COLOR_BUTTON_WIDTH);
+ label->setBuddy(colorButton);
+ connect(colorButton, TQT_SIGNAL(changed(const TQColor &)),
+ TQT_SLOT(slotHourColor(const TQColor &)));
+ grid->addWidget( label, 1, 1 );
+ grid->addWidget( colorButton, 1, 2 );
+
+ label = new TQLabel(i18n("&Minute-hand:"), colgroup);
+ colorButton = new KColorButton(m_minColor, colgroup);
+ colorButton->setFixedWidth(COLOR_BUTTON_WIDTH);
+ label->setBuddy(colorButton);
+ connect(colorButton, TQT_SIGNAL(changed(const TQColor &)),
+ TQT_SLOT(slotMinColor(const TQColor &)));
+ grid->addWidget( label, 2, 1 );
+ grid->addWidget( colorButton, 2, 2 );
+
+ label = new TQLabel(i18n("&Second-hand:"), colgroup);
+ colorButton = new KColorButton(m_secColor, colgroup);
+ colorButton->setFixedWidth(COLOR_BUTTON_WIDTH);
+ label->setBuddy(colorButton);
+ connect(colorButton, TQT_SIGNAL(changed(const TQColor &)),
+ TQT_SLOT(slotSecColor(const TQColor &)));
+ grid->addWidget( label, 3, 1 );
+ grid->addWidget( colorButton, 3, 2 );
+
+ label = new TQLabel(i18n("Scal&e:"), colgroup);
+ colorButton = new KColorButton(m_scaleColor, colgroup);
+ colorButton->setFixedWidth(COLOR_BUTTON_WIDTH);
+ label->setBuddy(colorButton);
+ connect(colorButton, TQT_SIGNAL(changed(const TQColor &)),
+ TQT_SLOT(slotScaleColor(const TQColor &)));
+ grid->addWidget( label, 4, 1 );
+ grid->addWidget( colorButton, 4, 2 );
+
+ label = new TQLabel(i18n("&Background:"), colgroup);
+ colorButton = new KColorButton(m_bgndColor, colgroup);
+ colorButton->setFixedWidth(COLOR_BUTTON_WIDTH);
+ label->setBuddy(colorButton);
+ connect(colorButton, TQT_SIGNAL(changed(const TQColor &)),
+ TQT_SLOT(slotBgndColor(const TQColor &)));
+ grid->addWidget( label, 5, 1 );
+ grid->addWidget( colorButton, 5, 2 );
+
+ hbox->addWidget(colgroup);
+
+ TQWidget *m_preview = new TQWidget(main);
+ m_preview->setFixedSize(220, 165);
+ m_preview->show();
+ m_saver = new KClockSaver(m_preview->winId());
+ hbox->addWidget(m_preview);
+
+ label = new TQLabel( i18n( "Si&ze:" ), main );
+ top->addWidget( label );
+ TQSlider *qs = new TQSlider(0, MAX_CLOCK_SIZE, 1, m_size,Qt::Horizontal, main);
+ label->setBuddy( qs );
+ qs->setTickInterval(1);
+ qs->setTickmarks(TQSlider::Below);
+ connect(qs, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(slotSliderMoved(int)));
+ top->addWidget( qs );
+
+ bool rtl = kapp->reverseLayout();
+ TQHBox *qsscale = new TQHBox(main);
+ label = new TQLabel(i18n("Small"), qsscale);
+ label->setAlignment(rtl ? AlignRight : AlignLeft);
+ label = new TQLabel(i18n("Medium"), qsscale);
+ label->setAlignment(AlignHCenter);
+ label = new TQLabel(i18n("Big"), qsscale);
+ label->setAlignment(rtl ? AlignLeft : AlignRight);
+ top->addWidget(qsscale);
+
+ TQCheckBox *keepCentered = new TQCheckBox(i18n("&Keep clock centered"), main);
+ keepCentered->setChecked(m_keepCentered);
+ connect(keepCentered, TQT_SIGNAL(stateChanged(int)), TQT_SLOT(slotKeepCenteredChanged(int)));
+ top->addWidget(keepCentered);
+ top->addStretch();
+}
+
+KClockSetup::~KClockSetup()
+{
+ delete m_saver;
+}
+
+void KClockSetup::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+
+ config->setGroup("Settings");
+ m_keepCentered = config->readBoolEntry("KeepCentered", DEFAULT_KEEP_CENTERED);
+ m_size = config->readUnsignedNumEntry("Size", DEFAULT_CLOCK_SIZE);
+ if (m_size > MAX_CLOCK_SIZE)
+ m_size = MAX_CLOCK_SIZE;
+
+ config->setGroup("Colors");
+ TQColor c = TQt::black;
+ m_bgndColor = config->readColorEntry("Background", &c);
+
+ c = TQt::white;
+ m_scaleColor = config->readColorEntry("Scale", &c);
+ m_hourColor = config->readColorEntry("HourHand", &c);
+ m_minColor = config->readColorEntry("MinuteHand", &c);
+
+ c = TQt::red;
+ m_secColor = config->readColorEntry("SecondHand", &c);
+
+ if (m_saver) {
+ m_saver->setBgndColor(m_bgndColor);
+ m_saver->setScaleColor(m_scaleColor);
+ m_saver->setHourColor(m_hourColor);
+ m_saver->setMinColor(m_minColor);
+ m_saver->setSecColor(m_secColor);
+ }
+}
+
+
+void KClockSetup::slotOk()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup("Settings");
+ config->writeEntry("Size", m_size);
+ config->writeEntry("KeepCentered", m_keepCentered);
+
+ config->setGroup("Colors");
+ config->writeEntry("Background", m_bgndColor);
+ config->writeEntry("Scale", m_scaleColor);
+ config->writeEntry("HourHand", m_hourColor);
+ config->writeEntry("MinuteHand", m_minColor);
+ config->writeEntry("SecondHand", m_secColor);
+ config->sync();
+ accept();
+}
+
+
+void KClockSetup::slotHelp()
+{
+ KMessageBox::about(this, "<qt>" + i18n(
+ "Clock Screen Saver<br>"
+ "Version 1.0<br>"
+ "<nobr>Melchior FRANZ (c) 2003</nobr>") +
+ "<br><a href=\"mailto:mfranz@kde.org\">mfranz@kde.org</a>"
+ "</qt>", TQString(), KMessageBox::AllowLink);
+}
+
+
+void KClockSetup::slotBgndColor(const TQColor &color)
+{
+ m_bgndColor = color;
+ if (m_saver)
+ m_saver->setBgndColor(m_bgndColor);
+}
+
+
+void KClockSetup::slotScaleColor(const TQColor &color)
+{
+ m_scaleColor = color;
+ if (m_saver)
+ m_saver->setScaleColor(m_scaleColor);
+}
+
+
+void KClockSetup::slotHourColor(const TQColor &color)
+{
+ m_hourColor = color;
+ if (m_saver)
+ m_saver->setHourColor(m_hourColor);
+}
+
+
+void KClockSetup::slotMinColor(const TQColor &color)
+{
+ m_minColor = color;
+ if (m_saver)
+ m_saver->setMinColor(m_minColor);
+}
+
+
+void KClockSetup::slotSecColor(const TQColor &color)
+{
+ m_secColor = color;
+ if (m_saver)
+ m_saver->setSecColor(m_secColor);
+}
+
+
+void KClockSetup::slotSliderMoved(int v)
+{
+ if (m_saver)
+ m_saver->restart(m_size = v);
+}
+
+
+void KClockSetup::slotKeepCenteredChanged(int c)
+{
+ if (m_saver)
+ m_saver->setKeepCentered(m_keepCentered = c);
+}
+
+
+
+
+
+//-----------------------------------------------------------------------------
+
+KClockPainter::KClockPainter(int width, int height)
+ : m_width(width),
+ m_height(height)
+{
+ m_buf = new TQ_UINT8[m_width * m_height * 3];
+ // build Cartesian coordinate system ranging from -1000 to +1000;
+ // points with positive x and y are in the top right quarter
+ m_matrix[0] = m_width / 2000.0;
+ m_matrix[1] = 0;
+ m_matrix[2] = 0;
+ m_matrix[3] = m_height / -2000.0;
+ m_matrix[4] = m_width / 2.0;
+ m_matrix[5] = m_height / 2.0;
+}
+
+
+KClockPainter::~KClockPainter()
+{
+ delete[] m_buf;
+}
+
+
+void KClockPainter::copy(KClockPainter *p)
+{
+ memcpy(m_buf, p->image(), m_width * m_height * 3);
+}
+
+
+void KClockPainter::drawToImage(TQImage *q, int xoffs = 0, int yoffs = 0)
+{
+ unsigned char *src = (unsigned char *)image();
+ for (int y = 0; y < m_height; y++) {
+ TQRgb *dest = reinterpret_cast<TQRgb *>(q->scanLine(y + yoffs)) + xoffs;
+ for (int x = 0; x < m_width; x++, src += 3)
+ *dest++ = tqRgba(src[0], src[1], src[2], 255);
+ }
+}
+
+
+void KClockPainter::setColor(const TQColor &c)
+{
+ m_color = (c.red() << 24) | (c.green() << 16) | (c.blue() << 8) | 255;
+}
+
+
+void KClockPainter::setShadowColor(const TQColor &c)
+{
+ m_shadow = (c.red() << 24) | (c.green() << 16) | (c.blue() << 8) | 255;
+}
+
+
+void KClockPainter::fill(const TQColor &c)
+{
+ art_rgb_fill_run(m_buf, c.red(), c.green(), c.blue(), m_width * m_height);
+}
+
+
+void KClockPainter::drawRadial(double alpha, double r0, double r1, double width)
+{
+ ArtVpath *vx, *v = art_new(ArtVpath, 3);
+ v[0].code = ART_MOVETO_OPEN;
+ v[0].x = r0;
+ v[0].y = 0;
+ v[1].code = ART_LINETO;
+ v[1].x = r1;
+ v[1].y = 0;
+ v[2].code = ART_END;
+
+ double m[6] = {0, 0, 0, 0, 0, 0};
+ art_affine_rotate(m, 90 - alpha);
+ vx = art_vpath_affine_transform(v, m);
+ art_free(v);
+ v = art_vpath_affine_transform(vx, m_matrix);
+ art_free(vx);
+
+ double w = width * m_matrix[0];
+ if (w < 1.0)
+ w = 1.0;
+
+ ArtSVP *path = art_svp_vpath_stroke(v, ART_PATH_STROKE_JOIN_MITER,
+ ART_PATH_STROKE_CAP_BUTT, w, 4, .5);
+ art_rgb_svp_alpha(path, 0, 0, m_width, m_height, m_color, m_buf, 3 * m_width, 0);
+ art_svp_free(path);
+ art_free(v);
+}
+
+
+void KClockPainter::drawDisc(double r)
+{
+ ArtVpath *v, *vx = art_vpath_new_circle(0, 0, r);
+ v = art_vpath_affine_transform(vx, m_matrix);
+ art_free(vx);
+
+ ArtSVP *path = art_svp_from_vpath(v);
+ art_rgb_svp_alpha(path, 0, 0, m_width, m_height, m_color, m_buf, 3 * m_width, 0);
+ art_svp_free(path);
+
+ path = art_svp_vpath_stroke(v, ART_PATH_STROKE_JOIN_MITER,
+ ART_PATH_STROKE_CAP_BUTT, 2, 4, .5);
+ art_free(v);
+
+ art_rgb_svp_alpha(path, 0, 0, m_width, m_height, m_color, m_buf, 3 * m_width, 0);
+ art_svp_free(path);
+}
+
+
+void KClockPainter::drawHand(const TQColor &c, double angle, double length,
+ double width, bool disc = true)
+{
+ const double shadow_width = 1.0;
+ setColor(m_shadow);
+ if (disc)
+ drawDisc(width * 1.3 + shadow_width);
+ drawRadial(angle, .75 * width, length + shadow_width, width + shadow_width);
+
+ setColor(c);
+ if (disc)
+ drawDisc(width * 1.3);
+ drawRadial(angle, .75 * width, length, width);
+}
+
+
+
+
+
+
+//-----------------------------------------------------------------------------
+
+KClockSaver::KClockSaver(WId id)
+ : KScreenSaver(id),
+ m_showSecond(true)
+{
+ readSettings();
+ setBackgroundColor(m_bgndColor);
+ connect(&m_timer, TQT_SIGNAL(timeout()), TQT_SLOT(slotTimeout()));
+ start(m_size);
+ m_timer.start(TIMER_INTERVALL);
+}
+
+
+KClockSaver::~KClockSaver()
+{
+ m_timer.stop();
+ stop();
+}
+
+
+void KClockSaver::start(int size)
+{
+ m_diameter = int(TQMIN(width(), height()) * (size + 4) / 14.0);
+ m_x = (width() - m_diameter) / 2;
+ m_y = (height() - m_diameter) / 2;
+
+ m_image = new TQImage(m_diameter, m_diameter, 32);
+ m_scale = new KClockPainter(m_diameter, m_diameter);
+ m_clock = new KClockPainter(m_diameter, m_diameter);
+
+ m_clock->setShadowColor(tqRgb((m_bgndColor.red() + m_scaleColor.red()) / 2,
+ (m_bgndColor.green() + m_scaleColor.green()) / 2,
+ (m_bgndColor.blue() + m_scaleColor.blue()) / 2));
+ drawScale();
+ forceRedraw();
+}
+
+
+void KClockSaver::stop()
+{
+ delete m_clock;
+ delete m_scale;
+ delete m_image;
+}
+
+
+void KClockSaver::restart(int size)
+{
+ m_timer.stop();
+ stop();
+ start(size);
+ drawScale();
+ m_timer.start(TIMER_INTERVALL);
+}
+
+
+void KClockSaver::setKeepCentered(bool b)
+{
+ m_keepCentered = b;
+ if (b) {
+ m_x = (width() - m_diameter) / 2;
+ m_y = (height() - m_diameter) / 2;
+ }
+ forceRedraw();
+}
+
+
+void KClockSaver::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+
+ config->setGroup("Settings");
+ m_keepCentered = config->readBoolEntry("KeepCentered", DEFAULT_KEEP_CENTERED);
+ m_size = config->readUnsignedNumEntry("Size", DEFAULT_CLOCK_SIZE);
+ if (m_size > MAX_CLOCK_SIZE)
+ m_size = MAX_CLOCK_SIZE;
+
+ config->setGroup("Colors");
+ TQColor c = TQt::black;
+ m_bgndColor = config->readColorEntry("Background", &c);
+
+ c = TQt::white;
+ m_scaleColor = config->readColorEntry("Scale", &c);
+ m_hourColor = config->readColorEntry("HourHand", &c);
+ m_minColor = config->readColorEntry("MinuteHand", &c);
+
+ c = TQt::red;
+ m_secColor = config->readColorEntry("SecondHand", &c);
+}
+
+
+void KClockSaver::drawScale()
+{
+ m_scale->fill(m_bgndColor);
+ m_scale->setColor(m_scaleColor);
+
+ for (int i = 0; i < 360; i += 6)
+ if (i % 30)
+ m_scale->drawRadial(i, 920, 980, 15);
+ else
+ m_scale->drawRadial(i, 825, 980, 40);
+
+ forceRedraw();
+}
+
+
+void KClockSaver::drawClock()
+{
+ double hour_angle = m_hour * 30.0 + m_minute * .5;
+ double minute_angle = m_minute * 6.0 + m_second * .1;
+ double second_angle = m_second * 6.0;
+
+ m_clock->copy(m_scale);
+ m_clock->drawHand(m_hourColor, hour_angle, 600, 55, false);
+ m_clock->drawHand(m_minColor, minute_angle, 900, 40);
+
+ if (m_showSecond)
+ m_clock->drawHand(m_secColor, second_angle, 900, 30);
+}
+
+
+void KClockSaver::slotTimeout()
+{
+ TQTime t = TQTime::currentTime();
+ int s = t.second();
+ if (s == m_second)
+ return;
+
+ m_second = m_showSecond ? s : 0;
+ m_hour = t.hour();
+ m_minute = t.minute();
+
+ drawClock();
+ TQPainter p(this);
+
+ if (width() < 256) {
+ // intended for the control module preview: always fill the whole area
+ TQImage *img = new TQImage(width(), height(), 32);
+ img->fill(tqRgb(m_bgndColor.red(), m_bgndColor.green(), m_bgndColor.blue()));
+ m_clock->drawToImage(img, m_x, m_y);
+ p.drawImage(0, 0, *img);
+ delete img;
+ } else {
+ m_clock->drawToImage(m_image);
+ p.drawImage(m_x, m_y, *m_image);
+ }
+
+ if (!m_keepCentered) {
+ static int xstep = 1;
+ static int ystep = -1;
+ int i;
+
+ m_x += xstep;
+ if (m_x <= 0)
+ m_x = 0, xstep = 1;
+ else if (m_x >= (i = width() - m_diameter))
+ m_x = i, xstep = -1;
+
+ m_y += ystep;
+ if (m_y <= 0)
+ m_y = 0, ystep = 1;
+ else if (m_y >= (i = height() - m_diameter))
+ m_y = i, ystep = -1;
+ }
+}
+
+
diff --git a/tdescreensaver/kdesavers/kclock.h b/tdescreensaver/kdesavers/kclock.h
new file mode 100644
index 00000000..d0c19e34
--- /dev/null
+++ b/tdescreensaver/kdesavers/kclock.h
@@ -0,0 +1,132 @@
+// $Id$
+//
+// kclock - Clock screen saver for KDE
+// Copyright (c) 2003 Melchior FRANZ
+//
+// License: GPL v2
+// Author: Melchior FRANZ <mfranz@kde.org>
+// Dependencies: libart_lgpl_2 http://www.levien.com/libart/
+//
+#ifndef __KCLOCK_H__
+#define __KCLOCK_H__
+
+#include <tqtimer.h>
+#include <kdialogbase.h>
+#include <tdescreensaver.h>
+
+
+class KClockPainter
+{
+ int m_width;
+ int m_height;
+ TQ_UINT8 *m_buf;
+ double m_matrix[6];
+ TQ_UINT32 m_color;
+ TQ_UINT32 m_shadow;
+
+ public:
+ KClockPainter(int width, int height);
+ ~KClockPainter();
+ void copy(KClockPainter *p);
+ void drawToImage(TQImage *q, int x, int y);
+ inline int width() { return m_width; }
+ inline int height() { return m_height; }
+ inline void *image() { return (void *)m_buf; }
+ void setColor(const TQColor &color);
+ void setShadowColor(const TQColor &color);
+ void fill(const TQColor &color);
+ void drawRadial(double alpha, double r0, double r1, double width);
+ void drawDisc(double radius);
+ void drawHand(const TQColor &color, double angle, double length,
+ double width, bool disc);
+};
+
+
+class KClockSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+ public:
+ KClockSaver(WId id);
+ virtual ~KClockSaver();
+ inline void setBgndColor(const TQColor &c) { m_bgndColor = c; drawScale(); setBackgroundColor(c); };
+ inline void setScaleColor(const TQColor &c) { m_scaleColor = c; drawScale(); };
+ inline void setHourColor(const TQColor &c) { m_hourColor = c; forceRedraw(); };
+ inline void setMinColor(const TQColor &c) { m_minColor = c; forceRedraw(); };
+ inline void setSecColor(const TQColor &c) { m_secColor = c; forceRedraw(); };
+ void setKeepCentered(bool b);
+ void restart(int siz);
+ inline void forceRedraw() { m_second = -1; }
+
+ private:
+ void readSettings();
+ void drawScale();
+ void drawClock();
+ void start(int size);
+ void stop();
+
+ protected slots:
+ void slotTimeout();
+
+ protected:
+ TQTimer m_timer;
+ TQImage *m_image;
+ KClockPainter *m_scale;
+ KClockPainter *m_clock;
+
+ int m_x;
+ int m_y;
+ int m_diameter;
+ int m_size;
+ bool m_showSecond;
+ bool m_keepCentered;
+ int m_hour;
+ int m_minute;
+ int m_second;
+
+ TQColor m_bgndColor;
+ TQColor m_scaleColor;
+ TQColor m_hourColor;
+ TQColor m_minColor;
+ TQColor m_secColor;
+};
+
+
+class KClockSetup : public KDialogBase
+{
+ Q_OBJECT
+
+ public:
+ KClockSetup(TQWidget *parent = 0, const char *name = 0);
+ ~KClockSetup();
+ protected:
+ void readSettings();
+
+ private slots:
+ void slotOk();
+ void slotHelp();
+
+ void slotBgndColor(const TQColor &);
+ void slotScaleColor(const TQColor &);
+ void slotHourColor(const TQColor &);
+ void slotMinColor(const TQColor &);
+ void slotSecColor(const TQColor &);
+ void slotSliderMoved(int);
+ void slotKeepCenteredChanged(int);
+
+ private:
+ KClockSaver *m_saver;
+
+ TQColor m_bgndColor;
+ TQColor m_scaleColor;
+ TQColor m_hourColor;
+ TQColor m_minColor;
+ TQColor m_secColor;
+
+ int m_size;
+ bool m_keepCentered;
+};
+
+#endif
+
+
diff --git a/tdescreensaver/kdesavers/kscience.png b/tdescreensaver/kdesavers/kscience.png
new file mode 100644
index 00000000..19de5909
--- /dev/null
+++ b/tdescreensaver/kdesavers/kscience.png
Binary files differ
diff --git a/tdescreensaver/kdesavers/kvm.cpp b/tdescreensaver/kdesavers/kvm.cpp
new file mode 100644
index 00000000..3ba233fa
--- /dev/null
+++ b/tdescreensaver/kdesavers/kvm.cpp
@@ -0,0 +1,384 @@
+/*-
+ * kvm.cpp - The Vm screensaver for KDE
+ * Copyright (c) 2000 by Artur Rataj
+ * This file is distributed under the terms of the GNU General Public License
+ *
+ * This file is partially based on kmatrix screen saver -- original copyright follows:
+ * kmatrix.c - The Matrix screensaver for KDE
+ * by Eric Plante Copyright (c) 1999
+ * Distributed under the Gnu Public License
+ *
+ * Much of this code taken from xmatrix.c from xscreensaver;
+ * original copyright follows:
+ * xscreensaver, Copyright (c) 1999 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ */
+// layout management added 1998/04/19 by Mario Weilguni <mweilguni@kde.org>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+/* for AIX at least */
+#include <time.h>
+
+#include <tqcolor.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <tqslider.h>
+#include <tqpainter.h>
+#include <tqbitmap.h>
+
+#include <kapplication.h>
+#include <kconfig.h>
+#include <klocale.h>
+#include <kglobal.h>
+#include <kmessagebox.h>
+
+#ifdef DEBUG_MEM
+#include <mcheck.h>
+#endif
+
+#include "kvm.h"
+
+#include "vm.xpm"
+#include "vm.xbm"
+
+#define CHAR_HEIGHT 22
+
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kvm.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "Virtual Machine" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new kVmSaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new kVmSetup();
+ }
+}
+
+
+
+static void
+load_images (m_state *state)
+{
+ if ( TQPixmap::defaultDepth() > 1 )
+ {
+ state->images = TQPixmap( vm );
+ }
+ else
+ {
+ state->images = TQBitmap( vm_width, vm_height, vm_bits );
+ }
+ state->image_width = state->images.width();
+ state->image_height = state->images.height();
+ state->nglyphs = state->image_height / CHAR_HEIGHT;
+}
+
+
+static m_state *
+init_pool ( TQWidget *w )
+{
+ m_state *state = new m_state;
+ state->w = w;
+
+ load_images (state);
+
+ state->char_width = state->image_width / 4;
+ state->char_height = CHAR_HEIGHT;
+
+ state->grid_width = w->width() / state->char_width;
+ state->grid_height = w->height() / state->char_height;
+ state->grid_margin_x = w->width()%state->char_width/2;
+ state->grid_margin_y = w->height()%state->char_height/2;
+ state->show_threads = 1;
+ vm_init_pool( &(state->pool), state->grid_width*state->grid_height,
+ THREAD_MAX_STACK_SIZE, MAX_THREADS_NUM );
+ //vm_enable_reverse( state->pool, 1 );
+ state->modified = new char[state->grid_height*state->grid_width];
+ for( int x = 0; x < state->grid_width*state->grid_height; ++x )
+ state->modified[x] = 1;
+ return state;
+}
+
+static void
+draw_pool (m_state *state)
+{
+ int x, y;
+ struct tvm_process* curr_thread;
+
+ if( state->show_threads ) {
+ curr_thread = state->pool->processes;
+ while( curr_thread ) {
+ state->modified[curr_thread->position] = 2;
+ curr_thread = curr_thread->next;
+ }
+ }
+ for (y = 0; y < state->grid_height; y++)
+ for (x = 0; x < state->grid_width; x++) {
+ int index = state->grid_width * y + x;
+ if( state->modified[index] )
+ {
+ int op = state->pool->area[index];
+ int pos_y;
+ int pos_x = 0;
+ switch( op ) {
+ case VM_OP_STOP:
+ pos_y = 14;
+ break;
+
+ case VM_OP_EXEC:
+ pos_y = 15;
+ break;
+
+ case VM_OP_COPY:
+ pos_y = 12;
+ break;
+
+ default:
+ pos_y = op - VM_OP_PUSH;
+ if( pos_y < 0 ) {
+ pos_y = -pos_y;
+ pos_x = 1;
+ }
+ break;
+ }
+ if( state->show_threads )
+ if( state->modified[index] == 1 )
+ pos_x += 2;
+ TQPainter p(state->w);
+ p.setPen( TQt::green );
+ p.setBrush( TQt::black );
+ p.drawPixmap( state->grid_margin_x + x*state->char_width,
+ state->grid_margin_y + y*state->char_height,
+ state->images, pos_x*state->char_width,
+ pos_y*state->char_height,
+ state->char_width, state->char_height );
+ --state->modified[index];
+ }
+ }
+}
+
+//-----------------------------------------------------------------------------
+
+kVmSaver::kVmSaver( WId id ) : KScreenSaver( id )
+{
+ readSettings();
+
+ colorContext = TQColor::enterAllocContext();
+
+ blank();
+ setSpeed( speed );
+ setRefreshTimeout( refreshTimeout );
+
+ refreshStep = 0;
+
+ pool_state = init_pool( this );
+ vm_default_initstate( time(0), &(pool_state->pool->vm_random_data) );
+ connect( &timer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotTimeout() ) );
+ timer.start( 100 - speed );
+}
+
+kVmSaver::~kVmSaver()
+{
+ timer.stop();
+ vm_done_pool( pool_state->pool );
+ delete[] pool_state->modified;
+ TQColor::leaveAllocContext();
+ TQColor::destroyAllocContext( colorContext );
+}
+
+void kVmSaver::blank()
+{
+ setBackgroundColor( black );
+ erase();
+}
+
+void kVmSaver::setSpeed( int spd )
+{
+ speed = spd;
+// timer.changeInterval( (100 - speed)*(100 - speed)*(100 - speed)/10000 );
+ timer.changeInterval( (100 - speed) );
+}
+void kVmSaver::setRefreshTimeout( const int refreshTimeout )
+{
+ this->refreshTimeout = refreshTimeout;
+}
+
+void kVmSaver::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ speed = config->readNumEntry( "Speed", 50 );
+ refreshTimeout = config->readNumEntry( "DisplayRefreshTimeout", 0 );
+}
+int kVmSaver::getRandom( const int max_value ) {
+ return (int)( vm_random(&(pool_state->pool->vm_random_data))*1.0*(max_value + 1.0)/
+ (VM_RAND_MAX + 1.0) );
+// return (int)( rand()*1.0*(max_value + 1.0)/
+// (RAND_MAX + 1.0) );
+}
+void kVmSaver::modifyArea( const int op ) {
+ int position;
+
+ vm_modify( pool_state->pool, position =
+ getRandom(pool_state->pool->area_size - 1), op );
+ pool_state->modified[position] = 1;
+}
+
+void kVmSaver::slotTimeout()
+{
+ for( int i = 0; i < 1; ++i ) {
+ if( getRandom(2) == 0 )
+ modifyArea( VM_OP_PUSH + getRandom(11) - getRandom(11) );
+ if( getRandom(8) == 0 )
+ modifyArea( VM_OP_STOP );
+ if( getRandom(8) == 0 )
+ modifyArea( VM_OP_COPY );
+ if( getRandom(8) == 0 )
+ modifyArea( VM_OP_EXEC );
+// if( getRandom(5) == 0 )
+// modifyArea( VM_OP_WAIT );
+ }
+ if( getRandom(0) == 0 )
+ vm_exec( pool_state->pool, getRandom(pool_state->pool->area_size - 1), 0,
+ vm_get_reverse( pool_state->pool ) );
+ vm_iterate( pool_state->pool, pool_state->modified );
+// if( refreshStep++ >= refreshTimeout*refreshTimeout*refreshTimeout ) {
+ if( refreshStep++ >= refreshTimeout ) {
+ draw_pool( pool_state );
+ refreshStep = 0;
+ }
+}
+
+//-----------------------------------------------------------------------------
+
+kVmSetup::kVmSetup( TQWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n( "Setup Virtual Machine" ),
+ Ok|Cancel|Help, Ok, true )
+{
+ readSettings();
+
+ setButtonText( Help, i18n( "A&bout" ) );
+ TQWidget *main = makeMainWidget();
+
+ TQHBoxLayout *tl = new TQHBoxLayout( main, 0, spacingHint() );
+ TQVBoxLayout *tl1 = new TQVBoxLayout();
+ tl->addLayout(tl1);
+
+ TQLabel *label = new TQLabel( i18n("Virtual machine speed:"), main );
+ tl1->addWidget(label);
+
+ TQSlider *slider = new TQSlider( Qt::Horizontal, main );
+ slider->setMinimumSize( 120, 20 );
+ slider->setRange( 0, 100 );
+ slider->setSteps( 10, 20 );
+ slider->setTickmarks( TQSlider::Below );
+ slider->setTickInterval( 10 );
+ slider->setValue( speed );
+ connect( slider, TQT_SIGNAL( valueChanged( int ) ),
+ TQT_SLOT( slotSpeed( int ) ) );
+ tl1->addWidget(slider);
+
+ label = new TQLabel( i18n("Display update speed:"), main );
+ tl1->addWidget(label);
+
+ slider = new TQSlider( Qt::Horizontal, main );
+ slider->setMinimumSize( 120, 20 );
+ slider->setRange( 0, MAX_REFRESH_TIMEOUT );
+ slider->setSteps( MAX_REFRESH_TIMEOUT/10, MAX_REFRESH_TIMEOUT/5 );
+ slider->setTickmarks( TQSlider::Below );
+ slider->setTickInterval( MAX_REFRESH_TIMEOUT/10 );
+ slider->setValue( MAX_REFRESH_TIMEOUT - refreshTimeout );
+ connect( slider, TQT_SIGNAL( valueChanged( int ) ),
+ TQT_SLOT( slotRefreshTimeout( int ) ) );
+ tl1->addWidget(slider);
+ tl1->addStretch();
+
+ preview = new TQWidget( main );
+ preview->setFixedSize( 220, 165 );
+ preview->show(); // otherwise saver does not get correct size
+ saver = new kVmSaver( preview->winId() );
+ tl->addWidget(preview);
+}
+
+kVmSetup::~kVmSetup()
+{
+ delete saver;
+}
+
+void kVmSetup::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ speed = config->readNumEntry( "Speed", 50 );
+ if ( speed > 100 )
+ speed = 100;
+ else if ( speed < 0 )
+ speed = 0;
+ refreshTimeout = config->readNumEntry( "DisplayRefreshTimeout", 0 );
+ if ( refreshTimeout > MAX_REFRESH_TIMEOUT )
+ refreshTimeout = MAX_REFRESH_TIMEOUT;
+ else if ( refreshTimeout < 0 )
+ refreshTimeout = 0;
+}
+
+void kVmSetup::slotSpeed( int num )
+{
+ speed = num;
+ if ( saver )
+ saver->setSpeed( num );
+}
+void kVmSetup::slotRefreshTimeout( int num )
+{
+ refreshTimeout = MAX_REFRESH_TIMEOUT - num;
+ if ( saver )
+ saver->setRefreshTimeout( refreshTimeout );
+}
+
+void kVmSetup::slotOk()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ TQString sspeed;
+ sspeed.setNum( speed );
+ config->writeEntry( "Speed", sspeed );
+ sspeed.setNum( refreshTimeout );
+ config->writeEntry( "DisplayRefreshTimeout", sspeed );
+
+ config->sync();
+ accept();
+}
+
+void kVmSetup::slotHelp()
+{
+ KMessageBox::about(this,
+ i18n("Virtual Machine Version 0.1\n\nCopyright (c) 2000 Artur Rataj <art@zeus.polsl.gliwice.pl>\n"),
+ i18n("About Virtual Machine")
+ );
+}
+
+#include "kvm.moc"
+
diff --git a/tdescreensaver/kdesavers/kvm.h b/tdescreensaver/kdesavers/kvm.h
new file mode 100644
index 00000000..eb68d3a4
--- /dev/null
+++ b/tdescreensaver/kdesavers/kvm.h
@@ -0,0 +1,101 @@
+//-----------------------------------------------------------------------------
+//
+// kvm screensaver
+//
+
+#ifndef __KVM_H__
+#define __KVM_H__
+
+#include <tqtimer.h>
+#include <tqptrlist.h>
+
+#include <kdialogbase.h>
+#include <tdescreensaver.h>
+
+extern "C" {
+#include "vm.h"
+#include "vm_random.h"
+}
+
+#define THREAD_MAX_STACK_SIZE 10
+#define MAX_THREADS_NUM 20
+
+#define MAX_REFRESH_TIMEOUT 40
+
+typedef struct {
+ TQWidget *w;
+ int grid_width, grid_height;
+ int grid_margin_x;
+ int grid_margin_y;
+ int char_width, char_height;
+ bool insert_top_p, insert_bottom_p;
+ int density;
+ struct tvm_pool* pool;
+ char* modified;
+ int show_threads;
+
+ TQPixmap images;
+ int image_width, image_height;
+ int nglyphs;
+
+} m_state;
+
+
+class kVmSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+public:
+ kVmSaver( WId id );
+ virtual ~kVmSaver();
+
+ void setSpeed( int spd );
+ void setRefreshTimeout( const int refreshTimeout );
+
+protected:
+ void blank();
+ void readSettings();
+ int getRandom( const int max_value );
+ void modifyArea( const int op );
+
+protected slots:
+ void slotTimeout();
+
+protected:
+ TQTimer timer;
+ int colorContext;
+
+ int speed;
+ m_state* pool_state;
+ int refreshStep;
+ int refreshTimeout;
+};
+
+
+class kVmSetup : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ kVmSetup( TQWidget *parent = NULL, const char *name = NULL );
+ ~kVmSetup();
+protected:
+ void readSettings();
+
+private slots:
+ void slotSpeed( int );
+ void slotRefreshTimeout( int num );
+ void slotOk();
+ void slotHelp();
+
+private:
+ TQWidget *preview;
+ kVmSaver *saver;
+
+ int speed;
+ int refreshTimeout;
+};
+
+
+#endif
+
diff --git a/tdescreensaver/kdesavers/lines.cpp b/tdescreensaver/kdesavers/lines.cpp
new file mode 100644
index 00000000..a2692217
--- /dev/null
+++ b/tdescreensaver/kdesavers/lines.cpp
@@ -0,0 +1,401 @@
+//-----------------------------------------------------------------------------
+//
+// klines 0.1.1 - Basic screen saver for KDE
+// by Dirk Staneker 1997
+// based on kpolygon from Martin R. Jones 1996
+// mailto:dirk.staneker@student.uni-tuebingen.de
+//
+// layout management added 1998/04/19 by Mario Weilguni <mweilguni@kde.org>
+// 2001/03/04 Converted to libtdescreensaver by Martin R. Jones
+
+#include <config.h>
+#include <stdlib.h>
+#include <time.h>
+#include <tqcolor.h>
+#include <tqlabel.h>
+#include <tqslider.h>
+#include <kconfig.h>
+#include <kapplication.h>
+#include <kmessagebox.h>
+#include <kcolorbutton.h>
+
+#include "kcolordialog.h"
+#include "lines.h"
+#include "lines.moc"
+
+#include <tqlayout.h>
+#include <klocale.h>
+#include <kglobal.h>
+#include <tqpainter.h>
+
+#define MAXLENGTH 256
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "klines.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "KLines" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new kLinesSaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new kLinesSetup();
+ }
+}
+
+// Methods of the Lines-class
+Lines::Lines(int x){
+ uint i;
+ numLn=x;
+ offx1=12;
+ offy1=16;
+ offx2=9;
+ offy2=10;
+ start=new Ln;
+ end=start;
+ for(i=1; i<numLn; i++){
+ end->next=new Ln;
+ end=end->next;
+ }
+ end->next=start;
+ akt=start;
+}
+
+Lines::~Lines(){
+ uint i;
+ for(i=0; i<numLn; i++){
+ end=start->next;
+ delete start;
+ start=end;
+ }
+}
+
+inline void Lines::reset(){ akt=start; }
+
+inline void Lines::getKoord(int& a, int& b, int& c, int& d){
+ a=akt->x1; b=akt->y1;
+ c=akt->x2; d=akt->y2;
+ akt=akt->next;
+}
+
+inline void Lines::setKoord(const int& a, const int& b, const int& c, const int& d){
+ akt->x1=a; akt->y1=b;
+ akt->x2=c; akt->y2=d;
+}
+
+inline void Lines::next(void){ akt=akt->next; }
+
+void Lines::turn(const int& w, const int& h){
+ start->x1=end->x1+offx1;
+ start->y1=end->y1+offy1;
+ start->x2=end->x2+offx2;
+ start->y2=end->y2+offy2;
+ if(start->x1>=w) offx1=-8;
+ if(start->x1<=0) offx1=7;
+ if(start->y1>=h) offy1=-11;
+ if(start->y1<=0) offy1=13;
+ if(start->x2>=w) offx2=-17;
+ if(start->x2<=0) offx2=15;
+ if(start->y2>=h) offy2=-10;
+ if(start->y2<=0) offy2=13;
+ end->next=start;
+ start=start->next;
+ end=end->next;
+}
+
+
+//-----------------------------------------------------------------------------
+// dialog to setup screen saver parameters
+//
+kLinesSetup::kLinesSetup(TQWidget *parent, const char *name)
+ : KDialogBase(parent, name, true, i18n( "Setup Lines Screen Saver" ),
+ Ok|Cancel|Help, Ok, true ), saver( 0 ), length( 10 ), speed( 50 )
+{
+ readSettings();
+
+ setButtonText( Help, i18n( "A&bout" ) );
+ TQWidget *main = makeMainWidget();
+
+ TQHBoxLayout *tl = new TQHBoxLayout(main, 0, spacingHint());
+ TQVBoxLayout *tl1 = new TQVBoxLayout;
+ tl->addLayout(tl1);
+
+ TQLabel *label=new TQLabel(i18n("Length:"), main);
+ tl1->addWidget(label);
+
+ TQSlider *sb= new TQSlider(1, MAXLENGTH+1, 16, length, Qt::Horizontal,
+ main);
+ sb->setMinimumSize(120, 20);
+ sb->setTickmarks(TQSlider::Below);
+ sb->setTickInterval(32);
+ connect(sb, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotLength(int)));
+ tl1->addWidget(sb);
+
+ label=new TQLabel(i18n("Speed:"), main);
+ tl1->addWidget(label);
+
+ sb = new TQSlider(0, 100, 10, speed, Qt::Horizontal, main);
+ sb->setMinimumSize(120, 20);
+ sb->setTickmarks(TQSlider::Below);
+ sb->setTickInterval(10);
+ connect( sb, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotSpeed( int ) ) );
+ tl1->addWidget(sb);
+
+ label=new TQLabel(i18n("Beginning:"), main);
+ tl1->addWidget(label);
+
+ colorPush0=new KColorButton(colstart, main);
+ connect(colorPush0, TQT_SIGNAL(changed(const TQColor &)),
+ TQT_SLOT(slotColstart(const TQColor &)));
+ tl1->addWidget(colorPush0);
+
+ label=new TQLabel(i18n("Middle:"), main);
+ tl1->addWidget(label);
+
+ colorPush1=new KColorButton(colmid, main);
+ connect(colorPush1, TQT_SIGNAL(changed(const TQColor &)),
+ TQT_SLOT(slotColmid(const TQColor &)));
+ tl1->addWidget(colorPush1);
+
+ label=new TQLabel(i18n("End:"), main);
+ tl1->addWidget(label);
+
+ colorPush2=new KColorButton(colend, main);
+ connect(colorPush2, TQT_SIGNAL(changed(const TQColor &)),
+ TQT_SLOT(slotColend(const TQColor &)));
+ tl1->addWidget(colorPush2);
+ tl1->addStretch();
+
+ preview = new TQWidget( main );
+ preview->setFixedSize( 220, 170 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ saver=new kLinesSaver(preview->winId());
+ tl->addWidget(preview);
+}
+
+kLinesSetup::~kLinesSetup()
+{
+ delete saver;
+}
+
+// read settings from config file
+void kLinesSetup::readSettings(){
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ TQString str;
+
+ length = config->readNumEntry("Length", length);
+ if(length>MAXLENGTH) length=MAXLENGTH;
+ else if(length<1) length=1;
+
+ speed = config->readNumEntry("Speed", speed);
+ if(speed>100) speed=100;
+ else if(speed<50) speed=50;
+
+ str=config->readEntry("StartColor");
+ if(!str.isNull()) colstart.setNamedColor(str);
+ else colstart=white;
+ str=config->readEntry("MidColor");
+ if(!str.isNull()) colmid.setNamedColor(str);
+ else colmid=blue;
+ str=config->readEntry("EndColor");
+ if(!str.isNull()) colend.setNamedColor(str);
+ else colend=black;
+}
+
+void kLinesSetup::slotLength(int len){
+ length=len;
+ if(saver) saver->setLines(length);
+}
+
+void kLinesSetup::slotSpeed(int num){
+ speed=num;
+ if(saver) saver->setSpeed(speed);
+}
+
+void kLinesSetup::slotColstart(const TQColor &col){
+ colstart = col;
+ if(saver) saver->setColor(colstart, colmid, colend);
+}
+
+void kLinesSetup::slotColmid(const TQColor &col){
+ colmid = col;
+ if(saver) saver->setColor(colstart, colmid, colend);
+}
+
+void kLinesSetup::slotColend(const TQColor &col){
+ colend = col;
+ if(saver) saver->setColor(colstart, colmid, colend);
+}
+
+void kLinesSetup::slotHelp(){
+ KMessageBox::about(this,
+ i18n("Lines Version 2.2.0\n\n"
+ "Written by Dirk Staneker 1997\n"
+ "dirk.stanerker@student.uni-tuebingen.de"));
+}
+
+// Ok pressed - save settings and exit
+void kLinesSetup::slotOk(){
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ TQString slength;
+ slength.setNum(length);
+ config->writeEntry("Length", slength);
+
+ TQString sspeed;
+ sspeed.setNum( speed );
+ config->writeEntry( "Speed", sspeed );
+
+ TQString colName0, colName1, colName2;
+ colName0.sprintf("#%02x%02x%02x", colstart.red(),
+ colstart.green(), colstart.blue() );
+ config->writeEntry( "StartColor", colName0 );
+
+ colName1.sprintf("#%02x%02x%02x", colmid.red(),
+ colmid.green(), colmid.blue() );
+ config->writeEntry( "MidColor", colName1 );
+
+ colName2.sprintf("#%02x%02x%02x", colend.red(),
+ colend.green(), colend.blue() );
+ config->writeEntry( "EndColor", colName2 );
+
+ config->sync();
+ accept();
+}
+
+//-----------------------------------------------------------------------------
+
+
+kLinesSaver::kLinesSaver( WId id ) : KScreenSaver( id ){
+ readSettings();
+ lines=new Lines(numLines);
+ colorContext=TQColor::enterAllocContext();
+ blank();
+ initialiseColor();
+ initialiseLines();
+ timer.start(speed);
+ connect(&timer, TQT_SIGNAL(timeout()), TQT_SLOT(slotTimeout()));
+}
+
+kLinesSaver::~kLinesSaver(){
+ timer.stop();
+ TQColor::leaveAllocContext();
+ TQColor::destroyAllocContext(colorContext);
+ delete lines;
+}
+
+// set lines properties
+void kLinesSaver::setLines(int len){
+ timer.stop();
+ numLines=len;
+ initialiseLines();
+ initialiseColor();
+ blank();
+ timer.start(speed);
+}
+
+// set the speed
+void kLinesSaver::setSpeed(int spd){
+ timer.stop();
+ speed=100-spd;
+ timer.start(speed);
+}
+
+void kLinesSaver::setColor(const TQColor& cs, const TQColor& cm, const TQColor& ce){
+ colstart=cs;
+ colmid=cm;
+ colend=ce;
+ initialiseColor();
+}
+
+// read configuration settings from config file
+void kLinesSaver::readSettings(){
+ TDEConfig *config=TDEGlobal::config();
+ config->setGroup("Settings");
+
+ numLines=config->readNumEntry("Length", 10);
+ speed = 100- config->readNumEntry("Speed", 50);
+ if(numLines>MAXLENGTH) numLines=MAXLENGTH;
+ else if(numLines<1) numLines = 1;
+
+ colstart=config->readColorEntry("StartColor", &white);
+ colmid=config->readColorEntry("MidColor", &blue);
+ colend=config->readColorEntry("EndColor", &black);
+}
+
+// draw next lines and erase tail
+void kLinesSaver::slotTimeout(){
+ uint i;
+ int x1,y1,x2,y2;
+ int col=0;
+
+ lines->reset();
+ TQPainter p( this );
+ p.setPen( black );
+
+ for(i=0; i<numLines; i++){
+ lines->getKoord(x1,y1,x2,y2);
+ p.drawLine( x1, y1, x2, y2 );
+ p.setPen( colors[col] );
+ col=(int)(i*colscale);
+ if(col>63) col=0;
+ }
+ lines->turn(width(), height());
+}
+
+void kLinesSaver::blank(){
+ setBackgroundColor( black );
+ erase();
+}
+
+// initialise the lines
+void kLinesSaver::initialiseLines(){
+ uint i;
+ int x1,y1,x2,y2;
+ delete lines;
+ lines=new Lines(numLines);
+ lines->reset();
+ x1=rnd.getLong(width());
+ y1=rnd.getLong(height());
+ x2=rnd.getLong(width());
+ y2=rnd.getLong(height());
+ for(i=0; i<numLines; i++){
+ lines->setKoord(x1,y1,x2,y2);
+ lines->next();
+ }
+}
+
+// create a color table of 64 colors
+void kLinesSaver::initialiseColor(){
+ int i;
+ double mr, mg, mb;
+ double cr, cg, cb;
+ mr=(double)(colmid.red()-colstart.red())/32;
+ mg=(double)(colmid.green()-colstart.green())/32;
+ mb=(double)(colmid.blue()-colstart.blue())/32;
+ cr=colstart.red();
+ cg=colstart.green();
+ cb=colstart.blue();
+ for(i=0; i<32; i++){
+ colors[63-i].setRgb((int)(mr*i+cr), (int)(mg*i+cg), (int)(mb*i+cb));
+ }
+ mr=(double)(colend.red()-colmid.red())/32;
+ mg=(double)(colend.green()-colmid.green())/32;
+ mb=(double)(colend.blue()-colmid.blue())/32;
+ cr=colmid.red();
+ cg=colmid.green();
+ cb=colmid.blue();
+ for(i=0; i<32; i++){
+ colors[31-1].setRgb((int)(mr*i+cr), (int)(mg*i+cg), (int)(mb*i+cb));
+ }
+ colscale=64.0/(double)numLines;
+}
diff --git a/tdescreensaver/kdesavers/lines.h b/tdescreensaver/kdesavers/lines.h
new file mode 100644
index 00000000..f169dc7c
--- /dev/null
+++ b/tdescreensaver/kdesavers/lines.h
@@ -0,0 +1,98 @@
+//-----------------------------------------------------------------------------
+//
+// klines 0.1.1 - Basic screen saver for KDE
+// by Dirk Staneker 1997
+// based on kpolygon 0.3 by Martin R. Jones 1996
+//
+
+#ifndef __LINES_H__
+#define __LINES_H__
+
+#include <tqtimer.h>
+#include <tqptrlist.h>
+
+#include <kdialogbase.h>
+#include <krandomsequence.h>
+#include <tdescreensaver.h>
+
+class KColorButton;
+
+class Lines{
+ private:
+ struct Ln{
+ Ln* next;
+ int x1, y1, x2, y2;
+ };
+ Ln *start, *end, *akt;
+ int offx1, offy1, offx2, offy2;
+ uint numLn;
+ public:
+ Lines(int);
+ ~Lines();
+ inline void reset();
+ inline void getKoord(int&, int&, int&, int&);
+ inline void setKoord(const int&, const int&, const int&, const int&);
+ inline void next(void);
+ void turn(const int&, const int&);
+};
+
+class kLinesSaver:public KScreenSaver{
+ Q_OBJECT
+
+ public:
+ kLinesSaver( WId id );
+ virtual ~kLinesSaver();
+
+ void setLines(int len);
+ void setSpeed(int spd);
+ void setColor(const TQColor&, const TQColor&, const TQColor&);
+
+ private:
+ void readSettings();
+ void blank();
+ void initialiseLines();
+ void initialiseColor();
+
+ protected slots:
+ void slotTimeout();
+
+ protected:
+ KRandomSequence rnd;
+ TQTimer timer;
+ unsigned numLines;
+ int colorContext, speed;
+ TQColor colors[64];
+ TQColor colstart, colmid, colend;
+ double colscale;
+ Lines* lines;
+};
+
+class kLinesSetup : public KDialogBase{
+ Q_OBJECT
+
+ public:
+ kLinesSetup(TQWidget *parent=NULL, const char *name=NULL);
+ ~kLinesSetup();
+
+ protected:
+ void readSettings();
+
+ private slots:
+ void slotLength(int);
+ void slotSpeed(int);
+ void slotColstart(const TQColor &);
+ void slotColmid(const TQColor &);
+ void slotColend(const TQColor &);
+ void slotOk();
+ void slotHelp();
+
+ private:
+ KColorButton *colorPush0, *colorPush1, *colorPush2;
+ TQWidget *preview;
+ kLinesSaver *saver;
+ int length, speed;
+ TQColor colstart, colmid, colend;
+};
+
+#endif
+
diff --git a/tdescreensaver/kdesavers/lorenz.cpp b/tdescreensaver/kdesavers/lorenz.cpp
new file mode 100644
index 00000000..91e6bbfc
--- /dev/null
+++ b/tdescreensaver/kdesavers/lorenz.cpp
@@ -0,0 +1,569 @@
+//-----------------------------------------------------------------------------
+//
+// Lorenz - Lorenz Attractor screen saver
+// Nicolas Brodu, brodu@kde.org, 2000
+//
+// Portions of code from kblankscrn and khop.
+// See authors there.
+//
+// I release my code as GPL, but see the other headers and the README
+
+#include <math.h>
+#include <stdlib.h>
+
+#include <tqpainter.h>
+#include <tqslider.h>
+#include <tqlayout.h>
+#include <tqcolor.h>
+#include <tqlabel.h>
+
+#include <kapplication.h>
+#include <klocale.h>
+#include <kglobal.h>
+#include <kconfig.h>
+#include <kmessagebox.h>
+
+#include "lorenz.h"
+#include "lorenz.moc"
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "klorenz.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "KLorenz" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new KLorenzSaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new KLorenzSetup();
+ }
+}
+
+#define MINSPEED 1
+#define MAXSPEED 1500
+#define DEFSPEED 150
+#define MINZROT -180
+#define MAXZROT 180
+#define DEFZROT 104 //100
+#define MINYROT -180
+#define MAXYROT 180
+#define DEFYROT -19 //80
+#define MINXROT -180
+#define MAXXROT 180
+#define DEFXROT 25 //20
+#define MINEPOCH 1
+#define MAXEPOCH 30000
+#define DEFEPOCH 5800
+#define MINCOLOR 1
+#define MAXCOLOR 100
+#define DEFCOLOR 20
+
+//-----------------------------------------------------------------------------
+// dialog to setup screen saver parameters
+//
+KLorenzSetup::KLorenzSetup( TQWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n( "Setup Lorenz Attractor" ),
+ Ok|Cancel|Default|Help, Ok, true )
+{
+ readSettings();
+
+ setButtonText( Help, i18n( "A&bout" ) );
+ TQWidget *main = makeMainWidget();
+
+ TQHBoxLayout *tl = new TQHBoxLayout( main, 0, spacingHint() );
+ TQVBoxLayout *tl1 = new TQVBoxLayout;
+ tl->addLayout(tl1);
+
+ TQLabel *label = new TQLabel( i18n("Speed:"), main );
+ tl1->addWidget(label);
+
+ sps = new TQSlider(MINSPEED, MAXSPEED, 10, speed, Qt::Horizontal, main);
+ sps->setMinimumSize( 120, 20 );
+ sps->setTickmarks(TQSlider::Below);
+ sps->setTickInterval(150);
+ connect( sps, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotSpeed( int ) ) );
+ tl1->addWidget(sps);
+
+ label = new TQLabel( i18n("Epoch:"), main );
+ tl1->addWidget(label);
+
+ eps = new TQSlider(MINEPOCH, MAXEPOCH, 100, epoch, Qt::Horizontal, main);
+ eps->setMinimumSize( 120, 20 );
+ eps->setTickmarks(TQSlider::Below);
+ eps->setTickInterval(3000);
+ connect( eps, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotEpoch( int ) ) );
+ tl1->addWidget(eps);
+
+ label = new TQLabel( i18n("Color rate:"), main );
+ tl1->addWidget(label);
+
+ crs = new TQSlider(MINCOLOR, MAXCOLOR, 5, crate, Qt::Horizontal, main);
+ crs->setMinimumSize( 120, 20 );
+ crs->setTickmarks(TQSlider::Below);
+ crs->setTickInterval(10);
+ connect( crs, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotCRate( int ) ) );
+ tl1->addWidget(crs);
+
+ label = new TQLabel( i18n("Rotation Z:"), main );
+ tl1->addWidget(label);
+
+ zrs = new TQSlider(MINZROT, MAXZROT, 18, zrot, Qt::Horizontal, main);
+ zrs->setMinimumSize( 120, 20 );
+ zrs->setTickmarks(TQSlider::Below);
+ zrs->setTickInterval(36);
+ connect( zrs, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotZRot( int ) ) );
+ tl1->addWidget(zrs);
+
+ label = new TQLabel( i18n("Rotation Y:"), main );
+ tl1->addWidget(label);
+
+ yrs = new TQSlider(MINYROT, MAXYROT, 18, yrot, Qt::Horizontal, main);
+ yrs->setMinimumSize( 120, 20 );
+ yrs->setTickmarks(TQSlider::Below);
+ yrs->setTickInterval(36);
+ connect( yrs, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotYRot( int ) ) );
+ tl1->addWidget(yrs);
+
+ label = new TQLabel( i18n("Rotation X:"), main );
+ tl1->addWidget(label);
+
+ xrs = new TQSlider(MINXROT, MAXXROT, 18, xrot, Qt::Horizontal, main);
+ xrs->setMinimumSize( 120, 20 );
+ xrs->setTickmarks(TQSlider::Below);
+ xrs->setTickInterval(36);
+ connect( xrs, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotXRot( int ) ) );
+ tl1->addWidget(xrs);
+
+ preview = new TQWidget( main );
+ preview->setFixedSize( 220, 165 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ saver = new KLorenzSaver( preview->winId() );
+ tl->addWidget(preview);
+}
+
+KLorenzSetup::~KLorenzSetup()
+{
+ delete saver;
+}
+
+// read settings from config file
+void KLorenzSetup::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ speed = config->readNumEntry( "Speed", DEFSPEED );
+ epoch = config->readNumEntry( "Epoch", DEFEPOCH );
+ crate = config->readNumEntry( "Color Rate", DEFCOLOR );
+ zrot = config->readNumEntry( "ZRot", DEFZROT );
+ yrot = config->readNumEntry( "YRot", DEFZROT );
+ xrot = config->readNumEntry( "XRot", DEFZROT );
+}
+
+
+void KLorenzSetup::slotSpeed(int num)
+{
+ speed = num;
+ if (saver) saver->setSpeed(speed);
+}
+
+void KLorenzSetup::slotEpoch(int num)
+{
+ epoch = num;
+ if (saver) saver->setEpoch(epoch);
+}
+
+void KLorenzSetup::slotCRate(int num)
+{
+ crate = num;
+ if (saver) saver->setCRate(crate);
+}
+
+void KLorenzSetup::slotZRot(int num)
+{
+ zrot = num;
+ if (saver) {
+ saver->setZRot(zrot);
+ saver->updateMatrix();
+ saver->newEpoch();
+ }
+}
+
+void KLorenzSetup::slotYRot(int num)
+{
+ yrot = num;
+ if (saver) {
+ saver->setYRot(yrot);
+ saver->updateMatrix();
+ saver->newEpoch();
+ }
+}
+
+void KLorenzSetup::slotXRot(int num)
+{
+ xrot = num;
+ if (saver) {
+ saver->setXRot(xrot);
+ saver->updateMatrix();
+ saver->newEpoch();
+ }
+}
+
+void KLorenzSetup::slotHelp()
+{
+ KMessageBox::about(this,i18n("Lorenz Attractor screen saver for TDE\n\nCopyright (c) 2000 Nicolas Brodu"));
+}
+
+// Ok pressed - save settings and exit
+void KLorenzSetup::slotOk()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ config->writeEntry( "Speed", speed );
+ config->writeEntry( "Epoch", epoch );
+ config->writeEntry( "Color Rate", crate );
+ config->writeEntry( "ZRot", zrot );
+ config->writeEntry( "YRot", yrot );
+ config->writeEntry( "XRot", xrot );
+
+ config->sync();
+
+ accept();
+}
+
+void KLorenzSetup::slotDefault()
+{
+ speed = DEFSPEED;
+ epoch = DEFEPOCH;
+ crate = DEFCOLOR;
+ zrot = DEFZROT;
+ yrot = DEFYROT;
+ xrot = DEFXROT;
+ if (saver) {
+ saver->setSpeed(speed);
+ saver->setEpoch(epoch);
+ saver->setCRate(crate);
+ saver->setZRot(zrot);
+ saver->setYRot(yrot);
+ saver->setXRot(xrot);
+ saver->updateMatrix();
+ saver->newEpoch();
+ }
+ sps->setValue(speed);
+ eps->setValue(epoch);
+ crs->setValue(crate);
+ zrs->setValue(zrot);
+ yrs->setValue(yrot);
+ xrs->setValue(xrot);
+
+/* // User can cancel, or save defaults?
+
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ config->writeEntry( "Speed", speed );
+ config->writeEntry( "Epoch", epoch );
+ config->writeEntry( "Color Rate", crate );
+ config->writeEntry( "ZRot", zrot );
+ config->writeEntry( "YRot", yrot );
+ config->writeEntry( "XRot", xrot );
+
+ config->sync();
+*/
+}
+
+//-----------------------------------------------------------------------------
+
+
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+const double pi = M_PI;
+
+// Homogeneous coordinate transform matrix
+// I initially wrote it for a Java applet, it is inspired from a
+// Matrix class in the JDK.
+// Nicolas Brodu, 1998-2000
+class Matrix3D
+{
+ // All coefficients
+ double xx, xy, xz, xo;
+ double yx, yy, yz, yo;
+ double zx, zy, zz, zo;
+ // 0, 0, 0, 1 are implicit
+public:
+
+ void unit()
+ {
+ xx=1.0; xy=0.0; xz=0.0; xo=0.0;
+ yx=0.0; yy=1.0; yz=0.0; yo=0.0;
+ zx=0.0; zy=0.0; zz=1.0; zo=0.0;
+ }
+
+ Matrix3D ()
+ {
+ unit();
+ }
+
+ // Translation
+ void translate(double x, double y, double z)
+ {
+ xo += x;
+ yo += y;
+ zo += z;
+ }
+
+ // Rotation, in degrees, around the Y axis
+ void rotY(double theta)
+ {
+ theta *= pi / 180;
+ double ct = cos(theta);
+ double st = sin(theta);
+
+ double Nxx = xx * ct + zx * st;
+ double Nxy = xy * ct + zy * st;
+ double Nxz = xz * ct + zz * st;
+ double Nxo = xo * ct + zo * st;
+
+ double Nzx = zx * ct - xx * st;
+ double Nzy = zy * ct - xy * st;
+ double Nzz = zz * ct - xz * st;
+ double Nzo = zo * ct - xo * st;
+
+ xo = Nxo;
+ xx = Nxx;
+ xy = Nxy;
+ xz = Nxz;
+ zo = Nzo;
+ zx = Nzx;
+ zy = Nzy;
+ zz = Nzz;
+ }
+
+
+ // Rotation, in degrees, around the X axis
+ void rotX(double theta)
+ {
+ theta *= pi / 180;
+ double ct = cos(theta);
+ double st = sin(theta);
+
+ double Nyx = yx * ct + zx * st;
+ double Nyy = yy * ct + zy * st;
+ double Nyz = yz * ct + zz * st;
+ double Nyo = yo * ct + zo * st;
+
+ double Nzx = zx * ct - yx * st;
+ double Nzy = zy * ct - yy * st;
+ double Nzz = zz * ct - yz * st;
+ double Nzo = zo * ct - yo * st;
+
+ yo = Nyo;
+ yx = Nyx;
+ yy = Nyy;
+ yz = Nyz;
+ zo = Nzo;
+ zx = Nzx;
+ zy = Nzy;
+ zz = Nzz;
+ }
+
+
+ // Rotation, in degrees, around the Z axis
+ void rotZ(double theta)
+ {
+ theta *= pi / 180;
+ double ct = cos(theta);
+ double st = sin(theta);
+
+ double Nyx = yx * ct + xx * st;
+ double Nyy = yy * ct + xy * st;
+ double Nyz = yz * ct + xz * st;
+ double Nyo = yo * ct + xo * st;
+
+ double Nxx = xx * ct - yx * st;
+ double Nxy = xy * ct - yy * st;
+ double Nxz = xz * ct - yz * st;
+ double Nxo = xo * ct - yo * st;
+
+ yo = Nyo;
+ yx = Nyx;
+ yy = Nyy;
+ yz = Nyz;
+ xo = Nxo;
+ xx = Nxx;
+ xy = Nxy;
+ xz = Nxz;
+ }
+
+ // Multiply by a projection matrix, with camera f
+ // f 0 0 0 x f*x
+ // 0 f 0 0 * y = f*y
+ // 0 0 1 f z z+f
+ // 0 0 0 1 1 1
+ // So, it it easy to find the 2D coordinates after the transform
+ // u = f*x / (z+f)
+ // v = f*y / (z+f)
+ void proj(double f)
+ {
+ xx*=f;
+ xy*=f;
+ xz*=f;
+ xo*=f;
+ yx*=f;
+ yy*=f;
+ yz*=f;
+ yo*=f;
+ zo+=f;
+ }
+
+ // Apply the transformation 3D => 2D
+ void transform(double x, double y, double z, double &u, double& v, double& w)
+ {
+ u = x * xx + y * xy + z * xz + xo;
+ v = x * yx + y * yy + z * yz + yo;
+ w = x * zx + y * zy + z * zz + zo;
+ }
+};
+
+KLorenzSaver::KLorenzSaver( WId id ) : KScreenSaver( id )
+{
+ readSettings();
+
+ // Create a transform matrix with the parameters
+ mat = new Matrix3D();
+ updateMatrix();
+
+ colorContext = TQColor::enterAllocContext();
+ setBackgroundColor( black );
+ newEpoch();
+
+ timer.start( 10 );
+ connect( &timer, TQT_SIGNAL( timeout() ), TQT_SLOT( drawOnce() ) );
+}
+
+KLorenzSaver::~KLorenzSaver()
+{
+ delete mat;
+ mat=0;
+ timer.stop();
+ TQColor::leaveAllocContext();
+ TQColor::destroyAllocContext( colorContext );
+}
+
+// read configuration settings from config file
+void KLorenzSaver::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ speed = config->readNumEntry( "Speed", DEFSPEED );
+ epoch = config->readNumEntry( "Epoch", DEFEPOCH );
+ zrot = config->readNumEntry( "ZRot", DEFZROT );
+ yrot = config->readNumEntry( "YRot", DEFZROT );
+ xrot = config->readNumEntry( "XRot", DEFZROT );
+
+ int crate_num = config->readNumEntry( "Color Rate", DEFCOLOR );
+ crate = (double)crate_num / (double)MAXCOLOR;
+}
+
+void KLorenzSaver::setSpeed(int num)
+{
+ speed = num;
+}
+
+void KLorenzSaver::setEpoch(int num)
+{
+ epoch = num;
+}
+
+void KLorenzSaver::setZRot(int num)
+{
+ zrot = num;
+}
+
+void KLorenzSaver::setYRot(int num)
+{
+ yrot = num;
+}
+
+void KLorenzSaver::setXRot(int num)
+{
+ xrot = num;
+}
+
+void KLorenzSaver::setCRate(int num)
+{
+ crate = (double)num / (double)MAXCOLOR;
+}
+
+void KLorenzSaver::updateMatrix()
+{
+ // reset matrix
+ mat->unit();
+ // Remove the mean before the rotations...
+ mat->translate(-0.95413, -0.96740, -23.60065);
+ mat->rotZ(zrot);
+ mat->rotY(yrot);
+ mat->rotX(xrot);
+ mat->translate(0, 0, 100);
+ mat->proj(1);
+}
+
+void KLorenzSaver::newEpoch()
+{
+ // Start at a random position, somewhere around the mean
+ x = 0.95-25.0+50.0*kapp->random() / (RAND_MAX+1.0);
+ y = 0.97-25.0+50.0*kapp->random() / (RAND_MAX+1.0);
+ z = 23.6-25.0+50.0*kapp->random() / (RAND_MAX+1.0);
+ // start at some random 'time' as well to have different colors
+ t = 10000.0*kapp->random() / (RAND_MAX+1.0);
+ erase();
+ e=0; // reset epoch counter
+}
+
+// Computes the derivatives using Lorenz equations
+static void lorenz(double x, double y, double z, double& dx, double& dy, double& dz)
+{
+ dx = 10*(y-x);
+ dy = 28*x - y - x*z;
+ dz = x*y - z*8.0/3.0;
+}
+
+// Use a simple Runge-Kutta formula to draw a few points
+// No need to go beyond 2nd order for a screensaver!
+void KLorenzSaver::drawOnce()
+{
+ double kx, ky, kz, dx, dy, dz;
+ const double h = 0.0001;
+ const double tqh = h * 3.0 / 4.0;
+ TQPainter p(this);
+
+ for (int i=0; i<speed; i++) {
+ // Runge-Kutta formula
+ lorenz(x,y,z,dx,dy,dz);
+ lorenz(x + tqh*dx, y + tqh*dy, z + tqh*dz, kx, ky, kz);
+ x += h*(dx/3.0+2*kx/3.0);
+ y += h*(dy/3.0+2*ky/3.0);
+ z += h*(dz/3.0+2*kz/3.0);
+ // Apply transform
+ mat->transform(x,y,z,kx,ky,kz);
+ // Choose a color
+ p.setPen(
+ TQColor((int)(sin(t*crate/pi)*127+128),
+ (int)(sin(t*crate/(pi-1))*127+128),
+ (int)(sin(t*crate/(pi-2))*127+128)).pixel() );
+ // Draw a point
+ p.drawPoint( (int)(kx*width()*1.5/kz)+(int)(width()/2),
+ (int)(ky*height()*1.5/kz)+(int)(height()/2));
+ t+=h;
+ }
+ if (++e>=epoch) newEpoch();
+}
diff --git a/tdescreensaver/kdesavers/lorenz.h b/tdescreensaver/kdesavers/lorenz.h
new file mode 100644
index 00000000..e0b43b31
--- /dev/null
+++ b/tdescreensaver/kdesavers/lorenz.h
@@ -0,0 +1,88 @@
+//-----------------------------------------------------------------------------
+//
+// Lorenz - Lorenz Attractor screen saver
+// Nicolas Brodu, brodu@kde.org, 2000
+//
+// Portions of code from kblankscrn and khop.
+// See authors there.
+//
+// I release my code as GPL, but see the other headers and the README
+
+#ifndef __LORENZKSCRN_H__
+#define __LORENZKSCRN_H__
+
+#include <tqtimer.h>
+#include <tqcolor.h>
+#include <tdescreensaver.h>
+#include <kdialogbase.h>
+
+// See lorenz.cpp for this private class
+class Matrix3D;
+
+class KLorenzSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+public:
+ KLorenzSaver( WId id );
+ virtual ~KLorenzSaver();
+ void setSpeed(int num);
+ void setEpoch(int num);
+ void setCRate(int num);
+ void setZRot(int num);
+ void setYRot(int num);
+ void setXRot(int num);
+ void updateMatrix();
+ void newEpoch();
+
+protected slots:
+ void drawOnce();
+
+protected:
+ TQTimer timer;
+ int colorContext;
+
+private:
+ void readSettings();
+
+private:
+ double x, y, z, t;
+ double speed, epoch, zrot, yrot, xrot, crate;
+ int e;
+ Matrix3D *mat;
+};
+
+class TQSlider;
+
+class KLorenzSetup : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ KLorenzSetup(TQWidget *parent = 0, const char *name = 0 );
+ ~KLorenzSetup();
+
+protected:
+ void readSettings();
+
+private slots:
+ void slotSpeed(int num);
+ void slotEpoch(int num);
+ void slotCRate(int num);
+ void slotZRot(int num);
+ void slotYRot(int num);
+ void slotXRot(int num);
+
+ void slotOk();
+ void slotHelp();
+ void slotDefault();
+
+private:
+ TQWidget *preview;
+ TQSlider *sps, *eps, *zrs, *yrs, *xrs, *crs;
+ KLorenzSaver *saver;
+ int speed, epoch, zrot, yrot, xrot, crate;
+};
+
+#endif
+
diff --git a/tdescreensaver/kdesavers/particle.png b/tdescreensaver/kdesavers/particle.png
new file mode 100644
index 00000000..a777c822
--- /dev/null
+++ b/tdescreensaver/kdesavers/particle.png
Binary files differ
diff --git a/tdescreensaver/kdesavers/pendulum.cpp b/tdescreensaver/kdesavers/pendulum.cpp
new file mode 100644
index 00000000..d1889877
--- /dev/null
+++ b/tdescreensaver/kdesavers/pendulum.cpp
@@ -0,0 +1,881 @@
+//============================================================================
+//
+// KPendulum screen saver for KDE
+//
+// The screen saver displays a physically realistic simulation of a two-part
+// pendulum.
+//
+// Developed by Georg Drenkhahn, georg-d@users.sourceforge.net
+//
+// $Id$
+//
+/*
+ * Copyright (C) 2004 Georg Drenkhahn
+ *
+ * KRotation is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License version 2 as published by the
+ * Free Software Foundation.
+ *
+ * KRotation is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA 02110-1301 USA
+ */
+//============================================================================
+
+// std. C++ headers
+#include <cstdlib>
+
+// TQt headers
+#include <tqlineedit.h>
+#include <tqspinbox.h>
+#include <tqvalidator.h>
+#include <tqcolordialog.h>
+#include <tqpushbutton.h>
+#include <tqtooltip.h>
+// KDE headers
+#include <klocale.h>
+#include <kconfig.h>
+#include <kdebug.h>
+#include <kmessagebox.h>
+
+#include "sspreviewarea.h"
+
+// pendulum.moc includes pendulum.h
+#include "pendulum.moc"
+
+#define KPENDULUM_VERSION "1.1"
+
+// libtdescreensaver interface
+extern "C"
+{
+ /// application name for libtdescreensaver interface
+ KDE_EXPORT const char *kss_applicationName = "kpendulum.kss";
+ /// application description for libtdescreensaver interface
+ KDE_EXPORT const char *kss_description = I18N_NOOP("Simulation of\
+ a two-part pendulum");
+ /// application version for libtdescreensaver interface
+ KDE_EXPORT const char *kss_version = KPENDULUM_VERSION;
+
+ /// function to create screen saver object
+ KDE_EXPORT KScreenSaver* kss_create(WId id)
+ {
+ return new KPendulumSaver(id);
+ }
+
+ /// function to create setup dialog for screen saver
+ KDE_EXPORT TQDialog* kss_setup()
+ {
+ return new KPendulumSetup();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// PendulumOdeSolver
+//-----------------------------------------------------------------------------
+
+PendulumOdeSolver::PendulumOdeSolver(
+ const double &_t,
+ const double &_dt,
+ std::valarray<double> &_y,
+ const double &_eps,
+ const double &_m1,
+ const double &_m2,
+ const double &_l1,
+ const double &_l2,
+ const double &_g)
+ : RkOdeSolver<double>(_t,_y,_dt,_eps),
+ A(1.0/(_m2*_l1*_l1)),
+ B1(_m2*_l1*_l2), // constants for faster numeric calculation
+ B(1.0/B1), // derived from m1,m2,l1,l2,g
+ C((_m1+_m2)/(_m2*_m2*_l2*_l2)),
+ D(_g*(_m1+_m2)*_l1),
+ E(_g*_m2*_l2),
+ M((_m1+_m2)/_m2)
+{
+}
+
+std::valarray<double> PendulumOdeSolver::f(
+ const double &x,
+ const std::valarray<double> &y) const
+{
+ (void)x; // unused
+
+ const double& q1 = y[0];
+ const double& q2 = y[1];
+ const double& p1 = y[2];
+ const double& p2 = y[3];
+
+ const double cosDq = std::cos(q1-q2);
+ const double iden = 1.0/(M - cosDq*cosDq); // invers denominator
+ const double dq1dt = (A*p1 - B*cosDq*p2)*iden;
+ const double dq2dt = (C*p2 - B*cosDq*p1)*iden;
+
+ std::valarray<double> ypr(y.size());
+ ypr[0] = dq1dt;
+ ypr[1] = dq2dt;
+
+ const double K = B1 * dq1dt*dq2dt * std::sin(q1-q2);
+ ypr[2] = -K - D * std::sin(q1);
+ ypr[3] = K - E * std::sin(q2);
+
+ return ypr;
+}
+
+//-----------------------------------------------------------------------------
+// Rotation: screen saver widget
+//-----------------------------------------------------------------------------
+
+PendulumGLWidget::PendulumGLWidget(TQWidget* parent, const char* name)
+ : TQGLWidget(parent, name),
+ eyeR(30), // eye coordinates (polar)
+ eyeTheta(M_PI*0.45),
+ eyePhi(0),
+ lightR(eyeR), // light coordinates (polar)
+ lightTheta(M_PI*0.25),
+ lightPhi(M_PI*0.25),
+ quadM1(gluNewQuadric()),
+ m_barColor(KPendulumSaver::barColorDefault),
+ m_m1Color(KPendulumSaver::m1ColorDefault),
+ m_m2Color(KPendulumSaver::m2ColorDefault)
+{
+}
+
+PendulumGLWidget::~PendulumGLWidget(void)
+{
+ gluDeleteQuadric(quadM1);
+}
+
+void PendulumGLWidget::setEyePhi(double phi)
+{
+ eyePhi = phi;
+ while (eyePhi < 0) eyePhi += 2.*M_PI;
+ while (eyePhi > 2*M_PI) eyePhi -= 2.*M_PI;
+
+ // get the view port
+ static GLint vp[4];
+ glGetIntegerv(GL_VIEWPORT, vp);
+ // calc new perspective, a resize event is simulated here
+ resizeGL(static_cast<int>(vp[2]), static_cast<int>(vp[3]));
+}
+
+void PendulumGLWidget::setAngles(const double& q1, const double& q2)
+{
+ ang1 = static_cast<GLfloat>(q1*180./M_PI);
+ ang2 = static_cast<GLfloat>(q2*180./M_PI);
+}
+
+void PendulumGLWidget::setMasses(const double& m1, const double& m2)
+{
+ sqrtm1 = static_cast<GLfloat>(sqrt(m1));
+ sqrtm2 = static_cast<GLfloat>(sqrt(m2));
+}
+
+void PendulumGLWidget::setLengths(const double& _l1, const double& _l2)
+{
+ l1 = static_cast<GLfloat>(_l1);
+ l2 = static_cast<GLfloat>(_l2);
+}
+
+void PendulumGLWidget::setBarColor(const TQColor& c)
+{
+ if (c.isValid())
+ {
+ m_barColor = c;
+ }
+}
+
+void PendulumGLWidget::setM1Color(const TQColor& c)
+{
+ if (c.isValid())
+ {
+ m_m1Color = c;
+ }
+}
+void PendulumGLWidget::setM2Color(const TQColor& c)
+{
+ if (c.isValid())
+ {
+ m_m2Color = c;
+ }
+}
+
+/* --------- protected methods ----------- */
+
+void PendulumGLWidget::initializeGL(void)
+{
+ qglClearColor(TQColor(black)); // set color to clear the background
+
+ glClearDepth(1); // depth buffer setup
+ glEnable(GL_DEPTH_TEST); // depth testing
+ glDepthFunc(GL_LEQUAL); // type of depth test
+
+ glShadeModel(GL_SMOOTH); // smooth color shading in poygons
+
+ // nice perspective calculation
+ glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
+
+ // set up the light
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glEnable(GL_LIGHT1);
+
+ glMatrixMode(GL_MODELVIEW); // select modelview matrix
+ glLoadIdentity();
+ // set positon of light0
+ GLfloat lightPos[4]=
+ {lightR * sin(lightTheta) * sin(lightPhi),
+ lightR * sin(lightTheta) * cos(lightPhi),
+ lightR * cos(lightTheta),
+ 0};
+ glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
+ // set positon of light1
+ lightPos[0] = lightR * sin(lightTheta) * sin(lightPhi+M_PI);
+ lightPos[1] = lightR * sin(lightTheta) * cos(lightPhi+M_PI);
+ glLightfv(GL_LIGHT1, GL_POSITION, lightPos);
+
+ // only for lights #>0
+ GLfloat spec[]={1,1,1,1};
+ glLightfv(GL_LIGHT1, GL_SPECULAR, spec);
+ glLightfv(GL_LIGHT1, GL_DIFFUSE, spec);
+
+ // enable setting the material colour by glColor()
+ glEnable(GL_COLOR_MATERIAL);
+
+ GLfloat emi[4] = {.13, .13, .13, 1};
+ glMaterialfv(GL_FRONT, GL_EMISSION, emi);
+}
+
+void PendulumGLWidget::paintGL(void)
+{
+ // clear color and depth buffer
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+
+ glMatrixMode(GL_MODELVIEW); // select modelview matrix
+
+ glLoadIdentity();
+
+ static const GLfloat width = 2.0;
+ static const GLfloat masswidth = 1.0;
+ static const int noOfSlices = 20;
+
+ // top axis, left (x>0)
+ glTranslatef(0.5*width, 0, 0);
+ glRotatef(90, 0, 1, 0);
+ qglColor(m_barColor);
+ gluCylinder(quadM1, 0.2, 0.2, 5, 10, 1);
+ gluSphere(quadM1, 0.2, 10, 10);
+ // top axis, right
+ glLoadIdentity();
+ glTranslatef(-0.5*width, 0, 0);
+ glRotatef(-90, 0, 1, 0);
+ gluCylinder(quadM1, 0.2, 0.2, 5, 10, 1);
+ gluSphere(quadM1, 0.2, 10, 10);
+ // 1. part, left
+ glLoadIdentity();
+ glRotatef(ang1, 1, 0, 0);
+ glPushMatrix();
+ glTranslatef(0.5*width, 0, -l1);
+ gluCylinder(quadM1, 0.2, 0.2, l1, 10, 1);
+ glPopMatrix();
+
+ // 1. part, right
+ glPushMatrix();
+ glTranslatef(-0.5*width, 0, -l1);
+ gluCylinder(quadM1, 0.2, 0.2, l1, 10, 1);
+ // 1. part, bottom
+ glRotatef(90, 0, 1, 0);
+ gluSphere(quadM1, 0.2, 10, 10); // bottom corner 1
+ gluCylinder(quadM1, 0.2, 0.2, width, 10, 1); // connection
+ glTranslatef(0, 0, 0.5*(width-masswidth));
+ qglColor(m_m1Color);
+ gluCylinder(quadM1, sqrtm1, sqrtm1, masswidth, noOfSlices, 1); // mass 1
+ gluQuadricOrientation(quadM1, GLU_INSIDE);
+ gluDisk(quadM1, 0, sqrtm1, noOfSlices,1); // bottom of mass
+ gluQuadricOrientation(quadM1, GLU_OUTSIDE);
+ glTranslatef(0, 0, masswidth);
+ gluDisk(quadM1, 0, sqrtm1, noOfSlices,1); // top of mass
+
+ glTranslatef(0, 0, 0.5*(width-masswidth));
+ qglColor(m_barColor);
+ gluSphere(quadM1, 0.2, 10, 10); // bottom corner 2
+ glPopMatrix();
+
+ // 2. pendulum bar
+ glLoadIdentity();
+ glTranslatef(0, l1*std::sin(ang1*M_PI/180.), -l1*std::cos(ang1*M_PI/180.));
+ glRotatef(ang2, 1, 0, 0);
+ glTranslatef(0, 0, -l2);
+ qglColor(m_barColor);
+ gluCylinder(quadM1, 0.2, 0.2, l2, 10, 1);
+
+ // mass 2
+ glRotatef(90, 0, 1, 0);
+ glTranslatef(0, 0, -0.5*masswidth);
+ qglColor(m_m2Color);
+ gluCylinder(quadM1, sqrtm2, sqrtm2, masswidth, noOfSlices, 1);
+ gluQuadricOrientation(quadM1, GLU_INSIDE);
+ gluDisk(quadM1, 0, sqrtm2, noOfSlices,1); // bottom of mass
+ gluQuadricOrientation(quadM1, GLU_OUTSIDE);
+ glTranslatef(0, 0, masswidth);
+ gluDisk(quadM1, 0, sqrtm2, noOfSlices,1); // top of mass
+
+ glFlush();
+}
+
+void PendulumGLWidget::resizeGL(int w, int h)
+{
+ // Prevent a divide by zero
+ if (h == 0) h = 1;
+
+ // set the new view port
+ glViewport(0, 0, static_cast<GLint>(w), static_cast<GLint>(h));
+
+ // set up projection matrix
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ // Perspective view
+ gluPerspective(40.0f,
+ static_cast<GLdouble>(w)/static_cast<GLdouble>(h),
+ 1.0, 100.0f);
+
+ // Viewing transformation, position for better view
+ // Theta is polar angle 0<Theta<Pi
+ gluLookAt(
+ eyeR * sin(eyeTheta) * sin(eyePhi),
+ eyeR * sin(eyeTheta) * cos(eyePhi),
+ eyeR * cos(eyeTheta),
+ 0,0,0,
+ 0,0,1);
+}
+
+//-----------------------------------------------------------------------------
+// KPendulumSaver: screen saver class
+//-----------------------------------------------------------------------------
+
+KPendulumSaver::KPendulumSaver(WId id) :
+ KScreenSaver(id),
+ solver(0),
+ m_massRatio(massRatioDefault),
+ m_lengthRatio(lengthRatioDefault),
+ m_g(gDefault),
+ m_E(EDefault),
+ m_persChangeInterval(persChangeIntervalDefault)
+{
+ setEraseColor(black);
+ erase(); // erase area
+ glArea = new PendulumGLWidget(this); // create gl widget
+ glArea->setEyePhi(eyePhiDefault);
+
+ readSettings(); // read global settings into pars
+ initData(); // init solver and glArea with read settings
+
+ embed(glArea); // embed gl widget and resize it
+ glArea->show(); // show gl widget
+
+ // set up and start cyclic timer
+ timer = new TQTimer(this);
+ timer->start(deltaT, TRUE);
+ connect(timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(doTimeStep()));
+}
+
+KPendulumSaver::~KPendulumSaver()
+{
+ // time, rotation are automatically deleted with parent KPendulumSaver
+ delete solver;
+}
+
+
+void KPendulumSaver::readSettings()
+{
+ // read configuration settings from config file
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ // internal saver parameters are set to stored values or left at their
+ // default values if stored values are out of range
+ setMassRatio(
+ config->readDoubleNumEntry(
+ "mass ratio",
+ KPendulumSaver::massRatioDefault));
+ setLengthRatio(
+ config->readDoubleNumEntry(
+ "length ratio",
+ KPendulumSaver::lengthRatioDefault));
+ setG(
+ config->readDoubleNumEntry(
+ "g",
+ KPendulumSaver::gDefault));
+ setE(
+ config->readDoubleNumEntry(
+ "E",
+ KPendulumSaver::EDefault));
+ setPersChangeInterval(
+ config->readUnsignedNumEntry(
+ "perspective change interval",
+ KPendulumSaver::persChangeIntervalDefault));
+
+ // set the colours
+ setBarColor(config->readColorEntry("bar color", &barColorDefault));
+ setM1Color( config->readColorEntry("m1 color", &m1ColorDefault));
+ setM2Color( config->readColorEntry("m2 color", &m2ColorDefault));
+}
+
+void KPendulumSaver::initData()
+{
+ const double m1plusm2 = 2; // m1+m2
+ const double m2 = m_massRatio * m1plusm2;
+ const double m1 = m1plusm2 - m2;
+ glArea->setMasses(m1, m2);
+ glArea->setAngles(0, 0);
+
+ const double l1plusl2 = 9; // l1+l2
+ const double l2 = m_lengthRatio * l1plusl2;
+ const double l1 = l1plusl2 - l2;
+ glArea->setLengths(l1, l2);
+
+ // kinetic energy of m2 and m1
+ const double kin_energy = m_E * m_g * (l1*m1 + (m1+m2)*(l1+l2));
+ // angular velocity for 1. and 2. pendulum
+ const double qp = sqrt(2.*kin_energy/((m1+m2)*l1*l1 + m2*l2*l2 + m2*l1*l2));
+
+ // assemble initial y for solver
+ std::valarray<double> y(4);
+ y[0] = 0; // q1
+ y[1] = 0; // q2
+ y[2] = (m1+m2)*l1*l1*qp + 0.5*m2*l1*l2*qp; // p1
+ y[3] = m2*l2*l2*qp + 0.5*m2*l1*l2*qp; // p2
+
+ // delete old solver
+ if (solver!=0) delete solver;
+ // init new solver
+ solver = new PendulumOdeSolver(
+ 0.0, // t
+ 0.01, // first dt step size estimation
+ y,
+ 1e-5, // eps
+ m1,
+ m2,
+ l1,
+ l2,
+ m_g);
+}
+
+
+void KPendulumSaver::setBarColor(const TQColor& c)
+{
+ glArea->setBarColor(c);
+}
+TQColor KPendulumSaver::barColor(void) const
+{
+ return glArea->barColor();
+}
+
+const TQColor KPendulumSaver::barColorDefault(255, 255, 127);
+
+void KPendulumSaver::setM1Color(const TQColor& c)
+{
+ glArea->setM1Color(c);
+}
+TQColor KPendulumSaver::m1Color(void) const
+{
+ return glArea->m1Color();
+}
+
+const TQColor KPendulumSaver::m1ColorDefault(170, 0, 127);
+
+void KPendulumSaver::setM2Color(const TQColor& c)
+{
+ glArea->setM2Color(c);
+}
+TQColor KPendulumSaver::m2Color(void) const
+{
+ return glArea->m2Color();
+}
+
+const TQColor KPendulumSaver::m2ColorDefault( 85, 170, 127);
+
+
+void KPendulumSaver::setMassRatio(const double& massRatio)
+{
+ // range check is not neccessary in normal operation because validators check
+ // the values at input. But the validators do not check for corrupted
+ // settings read from disk.
+ if (massRatio >= massRatioLimitLower
+ && massRatio <= massRatioLimitUpper
+ && m_massRatio != massRatio)
+ {
+ m_massRatio = massRatio;
+ if (timer!=0)
+ {
+ initData();
+ }
+ }
+}
+
+const double KPendulumSaver::massRatioLimitLower = 0.01;
+const double KPendulumSaver::massRatioLimitUpper = 0.99;
+const double KPendulumSaver::massRatioDefault = 0.5;
+
+void KPendulumSaver::setLengthRatio(const double& lengthRatio)
+{
+ if (lengthRatio >= lengthRatioLimitLower
+ && lengthRatio <= lengthRatioLimitUpper
+ && m_lengthRatio != lengthRatio)
+ {
+ m_lengthRatio = lengthRatio;
+ if (timer!=0)
+ {
+ initData();
+ }
+ }
+}
+
+const double KPendulumSaver::lengthRatioLimitLower = 0.01;
+const double KPendulumSaver::lengthRatioLimitUpper = 0.99;
+const double KPendulumSaver::lengthRatioDefault = 0.5;
+
+void KPendulumSaver::setG(const double& g)
+{
+ if (g >= gLimitLower
+ && g <= gLimitUpper
+ && m_g != g)
+ {
+ m_g = g;
+ if (timer!=0)
+ {
+ initData();
+ }
+ }
+}
+
+const double KPendulumSaver::gLimitLower = 0.1;
+const double KPendulumSaver::gLimitUpper = 300.0;
+const double KPendulumSaver::gDefault = 40.0;
+
+void KPendulumSaver::setE(const double& E)
+{
+ if (E >= ELimitLower
+ && E <= ELimitUpper
+ && m_E != E)
+ {
+ m_E = E;
+ if (timer!=0)
+ {
+ initData();
+ }
+ }
+}
+
+const double KPendulumSaver::ELimitLower = 0.0;
+const double KPendulumSaver::ELimitUpper = 5.0;
+const double KPendulumSaver::EDefault = 1.2;
+
+void KPendulumSaver::setPersChangeInterval(
+ const unsigned int& persChangeInterval)
+{
+ if (persChangeInterval >= persChangeIntervalLimitLower
+ && persChangeInterval <= persChangeIntervalLimitUpper
+ && m_persChangeInterval != persChangeInterval)
+ {
+ m_persChangeInterval = persChangeInterval;
+ // do not restart simulation here
+ }
+}
+
+const double KPendulumSaver::eyePhiDefault = 0.25*M_PI;
+
+
+void KPendulumSaver::doTimeStep()
+{
+ /* time (in seconds) of perspective change.
+ * - t<0: no change yet
+ * - t=0: change starts
+ * - 0<t<moving time: change takes place
+ * - t=moving time: end of the change */
+ static double persChangeTime = -5;
+
+ // integrate a step ahead
+ solver->integrate(0.001*deltaT);
+
+ // read new y from solver
+ const std::valarray<double> y = solver->Y();
+
+ // tell glArea the new coordinates/angles of the pendulum
+ glArea->setAngles(y[0], y[1]);
+
+ // handle perspective change
+ persChangeTime += 0.001*deltaT;
+ if (persChangeTime > 0)
+ {
+ // phi value at the start of a perspective change
+ static double eyePhi0 = eyePhiDefault;
+ // phi value at the end of a perspective change
+ static double eyePhi1 = 0.75*M_PI;
+ static double deltaEyePhi = eyePhi1-eyePhi0;
+
+ // movement acceleration/deceleration
+ const double a = 3;
+ // duration of the change period
+ const double movingTime = 2.*sqrt(fabs(deltaEyePhi)/a);
+
+ // new current phi of eye
+ double eyePhi = persChangeTime < 0.5*movingTime ?
+ // accelerating phase
+ eyePhi0 + (deltaEyePhi>0?1:-1)
+ * 0.5*a*persChangeTime*persChangeTime:
+ // decellerating phase
+ eyePhi1 - (deltaEyePhi>0?1:-1)
+ * 0.5*a*(movingTime-persChangeTime)*(movingTime-persChangeTime);
+
+ if (persChangeTime>movingTime)
+ { // perspective change has finished
+ // set new time till next change
+ persChangeTime = -double(m_persChangeInterval);
+ eyePhi0 = eyePhi = eyePhi1;
+ // find new phi value with angleLimit < phi < Pi-angleLimit or
+ // Pi+angleLimit < phi < 2*Pi-angleLimit
+ const double angleLimit = M_PI*0.2;
+ for (eyePhi1 = 0;
+ eyePhi1<angleLimit
+ || (eyePhi1<M_PI+angleLimit && eyePhi1>M_PI-angleLimit)
+ || eyePhi1>2*M_PI-angleLimit;
+ eyePhi1 = double(rand())/RAND_MAX * 2*M_PI)
+ {}
+ // new delta phi for next change
+ deltaEyePhi = eyePhi1 - eyePhi0;
+ // find shortest perspective change
+ if (deltaEyePhi < -M_PI) deltaEyePhi += 2*M_PI;
+ }
+
+ glArea->setEyePhi(eyePhi); // set new perspective
+ }
+
+ glArea->updateGL(); // repaint scenery
+ timer->start(deltaT, TRUE); // restart timer
+}
+
+// public slot of KPendulumSaver, forward resize event to public slot of glArea
+// to allow the resizing of the gl area withing the setup dialog
+void KPendulumSaver::resizeGlArea(TQResizeEvent* e)
+{
+ glArea->resize(e->size());
+}
+
+//-----------------------------------------------------------------------------
+// KPendulumSetup: dialog to setup screen saver parameters
+//-----------------------------------------------------------------------------
+
+KPendulumSetup::KPendulumSetup(TQWidget* parent, const char* name)
+ : KPendulumSetupUi(parent, name),
+ // create saver and give it the WinID of the preview area
+ saver(new KPendulumSaver(preview->winId()))
+{
+ // the dialog should block, no other control center input should be possible
+ // until the dialog is closed
+ setModal(TRUE);
+
+ // create input validators
+ mEdit->setValidator(new TQDoubleValidator(
+ KPendulumSaver::massRatioLimitLower,
+ KPendulumSaver::massRatioLimitUpper,
+ 5, mEdit));
+ lEdit->setValidator(new TQDoubleValidator(
+ KPendulumSaver::lengthRatioLimitLower,
+ KPendulumSaver::lengthRatioLimitUpper,
+ 5, lEdit));
+ gEdit->setValidator(new TQDoubleValidator(
+ KPendulumSaver::gLimitLower,
+ KPendulumSaver::gLimitUpper,
+ 5, gEdit));
+ eEdit->setValidator(new TQDoubleValidator(
+ KPendulumSaver::ELimitLower,
+ KPendulumSaver::ELimitUpper,
+ 5, eEdit));
+
+ // set input limits for the perspective change interval time
+ persSpinBox->setMinValue(KPendulumSaver::persChangeIntervalLimitLower);
+ persSpinBox->setMaxValue(KPendulumSaver::persChangeIntervalLimitUpper);
+
+ // set tool tips of editable fields
+ TQToolTip::add(
+ mEdit,
+ i18n("Ratio of 2nd mass to sum of both masses.\nValid values from %1 to %2.")
+ .arg(KPendulumSaver::massRatioLimitLower, 0, 'f', 2)
+ .arg(KPendulumSaver::massRatioLimitUpper, 0, 'f', 2));
+ TQToolTip::add(
+ lEdit,
+ i18n("Ratio of 2nd pendulum part length to the sum of both part lengths.\nValid values from %1 to %2.")
+ .arg(KPendulumSaver::lengthRatioLimitLower, 0, 'f', 2)
+ .arg(KPendulumSaver::lengthRatioLimitUpper, 0, 'f', 2));
+ TQToolTip::add(
+ gEdit,
+ i18n("Gravitational constant in arbitrary units.\nValid values from %1 to %2.")
+ .arg(KPendulumSaver::gLimitLower, 0, 'f', 2)
+ .arg(KPendulumSaver::gLimitUpper, 0, 'f', 2));
+ TQToolTip::add(
+ eEdit,
+ i18n("Energy in units of the maximum potential energy of the given configuration.\nValid values from %1 to %2.")
+ .arg(KPendulumSaver::ELimitLower, 0, 'f', 2)
+ .arg(KPendulumSaver::ELimitUpper, 0, 'f', 2));
+ TQToolTip::add(
+ persSpinBox,
+ i18n("Time in seconds after which a random perspective change occurs.\nValid values from %1 to %2.")
+ .arg(KPendulumSaver::persChangeIntervalLimitLower)
+ .arg(KPendulumSaver::persChangeIntervalLimitUpper));
+
+ // init preview area
+ preview->setBackgroundColor(black);
+ preview->show(); // otherwise saver does not get correct size
+
+ // read settings from saver and update GUI elements with these values, saver
+ // has read settings in its constructor
+
+ // set editable fields with stored values as defaults
+ TQString text;
+ text.setNum(saver->massRatio());
+ mEdit->setText(text);
+ text.setNum(saver->lengthRatio());
+ lEdit->setText(text);
+ text.setNum(saver->g());
+ gEdit->setText(text);
+ text.setNum(saver->E());
+ eEdit->setText(text);
+
+ persSpinBox->setValue(saver->persChangeInterval());
+
+ barColorButton->setPaletteBackgroundColor(saver->barColor());
+ m1ColorButton->setPaletteBackgroundColor(saver->m1Color());
+ m2ColorButton->setPaletteBackgroundColor(saver->m2Color());
+
+ // if the preview area is resized it emmits the resized() event which is
+ // caught by the saver. The embedded GlArea is resized to fit into the
+ // preview area.
+ connect(preview, TQT_SIGNAL(resized(TQResizeEvent*)),
+ saver, TQT_SLOT(resizeGlArea(TQResizeEvent*)));
+}
+
+KPendulumSetup::~KPendulumSetup()
+{
+ delete saver;
+}
+
+// Ok pressed - save settings and exit
+void KPendulumSetup::okButtonClickedSlot()
+{
+ TDEConfig* config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ config->writeEntry("mass ratio", saver->massRatio());
+ config->writeEntry("length ratio", saver->lengthRatio());
+ config->writeEntry("g", saver->g());
+ config->writeEntry("E", saver->E());
+ config->writeEntry("perspective change interval",
+ saver->persChangeInterval());
+ config->writeEntry("bar color", saver->barColor());
+ config->writeEntry("m1 color", saver->m1Color());
+ config->writeEntry("m2 color", saver->m2Color());
+
+ config->sync();
+ accept();
+}
+
+void KPendulumSetup::aboutButtonClickedSlot()
+{
+ KMessageBox::about(this, i18n("\
+<h3>KPendulum Screen Saver for KDE</h3>\
+<p>Simulation of a two-part pendulum</p>\
+<p>Copyright (c) Georg&nbsp;Drenkhahn 2004</p>\
+<p><tt>georg-d@users.sourceforge.net</tt></p>"));
+}
+
+void KPendulumSetup::mEditLostFocusSlot(void)
+{
+ if (mEdit->hasAcceptableInput())
+ {
+ saver->setMassRatio(mEdit->text().toDouble());
+ }
+ else
+ { // write current setting back into input field
+ TQString text;
+ text.setNum(saver->massRatio());
+ mEdit->setText(text);
+ }
+}
+void KPendulumSetup::lEditLostFocusSlot(void)
+{
+ if (lEdit->hasAcceptableInput())
+ {
+ saver->setLengthRatio(lEdit->text().toDouble());
+ }
+ else
+ { // write current setting back into input field
+ TQString text;
+ text.setNum(saver->lengthRatio());
+ lEdit->setText(text);
+ }
+}
+void KPendulumSetup::gEditLostFocusSlot(void)
+{
+ if (gEdit->hasAcceptableInput())
+ {
+ saver->setG(gEdit->text().toDouble());
+ }
+ else
+ { // write current setting back into input field
+ TQString text;
+ text.setNum(saver->g());
+ gEdit->setText(text);
+ }
+}
+void KPendulumSetup::eEditLostFocusSlot(void)
+{
+ if (eEdit->hasAcceptableInput())
+ {
+ saver->setE(eEdit->text().toDouble());
+ }
+ else
+ { // write current setting back into input field
+ TQString text;
+ text.setNum(saver->E());
+ eEdit->setText(text);
+ }
+}
+void KPendulumSetup::persChangeEnteredSlot(int t)
+{
+ saver->setPersChangeInterval(t);
+}
+
+void KPendulumSetup::barColorButtonClickedSlot(void)
+{
+ TQColor color = TQColorDialog::getColor(
+ saver->barColor(), this, "bar color dialog");
+ if (color.isValid())
+ {
+ saver->setBarColor(color);
+ barColorButton->setPaletteBackgroundColor(color);
+ }
+}
+void KPendulumSetup::m1ColorButtonClickedSlot(void)
+{
+ TQColor color = TQColorDialog::getColor(
+ saver->m1Color(), this, "mass 1 color dialog");
+ if (color.isValid())
+ {
+ saver->setM1Color(color);
+ m1ColorButton->setPaletteBackgroundColor(color);
+ }
+}
+void KPendulumSetup::m2ColorButtonClickedSlot(void)
+{
+ TQColor color = TQColorDialog::getColor(
+ saver->m2Color(), this, "mass 2 color dialog");
+ if (color.isValid())
+ {
+ saver->setM2Color(color);
+ m2ColorButton->setPaletteBackgroundColor(color);
+ }
+}
diff --git a/tdescreensaver/kdesavers/pendulum.h b/tdescreensaver/kdesavers/pendulum.h
new file mode 100644
index 00000000..815e2455
--- /dev/null
+++ b/tdescreensaver/kdesavers/pendulum.h
@@ -0,0 +1,391 @@
+//============================================================================
+//
+// KPendulum screen saver for KDE
+// $Id$
+// Copyright (C) 2004 Georg Drenkhahn
+//
+// This file is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+//============================================================================
+
+#ifndef __PENDULUM_H__
+#define __PENDULUM_H__
+
+// STL headers
+#include <valarray>
+// TQt headers
+#include <tqwidget.h>
+#include <tqtimer.h>
+#include <tqgl.h>
+// GL headers
+#include <GL/glu.h>
+#include <GL/gl.h>
+// KDE headers
+#include <tdescreensaver.h>
+
+#include "vec3.h"
+#include "rkodesolver.h"
+
+// KPendulumSetupUi
+#include "pendulumcfg.h"
+
+//--------------------------------------------------------------------
+
+/** @brief ODE solver for the Pendulum equations */
+class PendulumOdeSolver : public RkOdeSolver<double>
+{
+ public:
+ /** @brief Constuctor for the RK solver of the pendulum equation of motion
+ * @param t initial time in seconds
+ * @param dt initial time increment in seconds, just a hint for solver
+ * @param y generalized coordinates of pendulum system
+ * @param eps relative precision
+ * @param m1 mass of upper pendulum
+ * @param m2 mass of lower pendulum
+ * @param l1 length of upper pendulum
+ * @param l2 length of lower pendulum
+ * @param g gravitational constant */
+ PendulumOdeSolver(
+ const double &t,
+ const double &dt,
+ std::valarray<double> &y,
+ const double &eps,
+ const double &m1,
+ const double &m2,
+ const double &l1,
+ const double &l2,
+ const double &g
+ );
+
+ protected:
+ /** @brief ODE function for the pendulum equation of motion system
+ * @param x time
+ * @param y generalized coordinates of pendulum system
+ * @return derivation dy/dx */
+ std::valarray<double>
+ f(const double &x, const std::valarray<double> &y) const;
+
+ private:
+ /** These private variables contain constants for faster numeric calculation.
+ * They are derived from the constructor arguments m1,m2,l1,l2,g. */
+ const double A, B1, B, C, D, E, M;
+};
+
+
+//--------------------------------------------------------------------
+
+/** @brief GL widget class for the KPendulum screen saver
+ *
+ * Class implements TQGLWidget to display the KPendulum screen saver. */
+class PendulumGLWidget : public TQGLWidget
+{
+ Q_OBJECT
+
+
+ public:
+ /** @brief Constructor of KPendulum's GL widget
+ * @param parent parent widget, passed to TQGLWidget's constructor
+ * @param name name of widget, passed to TQGLWidget's constructor */
+ PendulumGLWidget(TQWidget* parent=0, const char* name=0);
+ /** @brief Destructor of KPendulum's GL widget */
+ ~PendulumGLWidget(void);
+
+ /** @brief Set phi angle of viewpoint
+ * @param phi angle in sterad */
+ void setEyePhi(double phi);
+ /** @brief Set angles of pendulum configuration
+ * @param q1 angle of 1. pendulum in sterad
+ * @param q2 angle of 2. pendulum in sterad */
+ void setAngles(const double& q1, const double& q2);
+ /** @brief Set masses of pendulum configuration
+ * @param m1 mass of 1. pendulum
+ * @param m2 mass of 2. pendulum */
+ void setMasses(const double& m1, const double& m2);
+ /** @brief Set lengths of pendulum configuration
+ * @param l1 length of 1. pendulum
+ * @param l2 length of 2. pendulum */
+ void setLengths(const double& l1, const double& l2);
+
+ /* accessors for colour settings */
+
+ /** @brief set color of the bars
+ * @param c color */
+ void setBarColor(const TQColor& c);
+ /** @brief get color of the bars
+ * @return color */
+ inline TQColor barColor(void) const {return m_barColor;}
+ /** @brief set color of mass 1
+ * @param c color */
+ void setM1Color(const TQColor& c);
+ /** @brief get color of mass 1
+ * @return color */
+ inline TQColor m1Color(void) const {return m_m1Color;}
+ /** @brief set color of mass 2
+ * @param c color */
+ void setM2Color(const TQColor& c);
+ /** @brief get color of mass 2
+ * @return color */
+ inline TQColor m2Color(void) const {return m_m2Color;}
+
+ protected:
+ /** paint the GL view */
+ virtual void paintGL();
+ /** resize the gl view */
+ virtual void resizeGL(int w, int h);
+ /** setup the GL enviroment */
+ virtual void initializeGL();
+
+ private: // Private attributes
+ /** Eye position distance from coordinate zero point */
+ GLfloat eyeR;
+ /** Eye position theta angle from z axis in sterad */
+ double eyeTheta;
+ /** Eye position phi angle (longitude) in sterad */
+ double eyePhi;
+ /** Light position distance from coordinate zero point */
+ GLfloat lightR;
+ /** Light position theta angle from z axis in sterad */
+ double lightTheta;
+ /** Light position phi angle (longitude) in sterad */
+ double lightPhi;
+
+ /** 1. pendulum's angle, degree */
+ GLfloat ang1;
+ /** 2. pendulum's angle, degree */
+ GLfloat ang2;
+
+ /** 1. pendulum's square root of mass */
+ GLfloat sqrtm1;
+ /** 2. pendulum's square root of mass */
+ GLfloat sqrtm2;
+
+ /** 1. pendulum's length */
+ GLfloat l1;
+ /** 2. pendulum's length */
+ GLfloat l2;
+
+ /** Pointer to a quadric object used in the rendering function paintGL() */
+ GLUquadricObj* const quadM1;
+
+ /** color of the pendulum bars */
+ TQColor m_barColor;
+ /** color of the 1. mass */
+ TQColor m_m1Color;
+ /** color of the 2. mass */
+ TQColor m_m2Color;
+};
+
+//--------------------------------------------------------------------
+
+/** @brief Main class of the KPendulum screen saver
+ *
+ * This class implements KScreenSaver for the KPendulum screen saver. */
+class KPendulumSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+
+ public:
+ /** @brief Constructor of the KPendulum screen saver object
+ * @param drawable Id of the window in which the screen saver is drawed
+ *
+ * Initial settings are read from disk, the GL widget is set up and displayed
+ * and the eq. of motion solver is started. */
+ KPendulumSaver(WId drawable);
+ /** @brief Destructor of the KPendulum screen saver object
+ *
+ * Only KPendulumSaver::solver is destoyed. */
+ ~KPendulumSaver();
+ /** read the saved settings from disk */
+ void readSettings();
+ /** init physical quantities, set up the GL area and (re)start the ode
+ * solver. Called if new parameters are specified in the setup dialog and at
+ * startup. */
+ void initData();
+
+ /* accessors for PendulumGLWidget member variables */
+
+ /** Set the displayed bar color of the pendulum */
+ void setBarColor(const TQColor& c);
+ /** Get the displayed bar color of the pendulum */
+ TQColor barColor(void) const;
+
+ static const TQColor barColorDefault;
+
+ /** Set the displayed color of the 1. pendulum mass */
+ void setM1Color(const TQColor& c);
+ /** Get the displayed color of the 1. pendulum mass */
+ TQColor m1Color(void) const;
+
+ static const TQColor m1ColorDefault;
+
+ /** Set the displayed color of the 2. pendulum mass */
+ void setM2Color(const TQColor& c);
+ /** Get the displayed color of the 2. pendulum mass */
+ TQColor m2Color(void) const;
+
+ static const TQColor m2ColorDefault;
+
+ /* accessors for own member variables */
+
+ /** Set the mass ratio of the pendulum system. @sa
+ * KPendulumSaver::m_massRatio */
+ void setMassRatio(const double& massRatio);
+ /** Get the mass ratio of the pendulum system. @sa
+ * KPendulumSaver::m_massRatio */
+ inline double massRatio(void) const {return m_massRatio;}
+
+ // lower, upper limits (inclusive) and default values for the setup
+ // parameters
+ static const double massRatioLimitUpper;
+ static const double massRatioLimitLower;
+ static const double massRatioDefault;
+
+ /** Set the length ratio of the pendulum system. @sa
+ * KPendulumSaver::m_lengthRatio */
+ void setLengthRatio(const double& lengthRatio);
+ /** Get the length ratio of the pendulum system. @sa
+ * KPendulumSaver::m_lengthRatio */
+ inline double lengthRatio(void) const {return m_lengthRatio;}
+
+ static const double lengthRatioLimitLower;
+ static const double lengthRatioLimitUpper;
+ static const double lengthRatioDefault;
+
+ /** Set the gravitational constant. @sa KPendulumSaver::m_g */
+ void setG(const double& g);
+ /** Get the gravitational constant. @sa KPendulumSaver::m_g */
+ inline double g(void) const {return m_g;}
+
+ static const double gLimitLower;
+ static const double gLimitUpper;
+ static const double gDefault;
+
+ /** Set the total energy. @sa KPendulumSaver::m_E */
+ void setE(const double& E);
+ /** Get the total energy. @sa KPendulumSaver::m_E */
+ inline double E(void) const {return m_E;}
+
+ static const double ELimitLower;
+ static const double ELimitUpper;
+ static const double EDefault;
+
+ /** Set the time interval for the periodic perspective change. @sa
+ * KPendulumSaver::m_persChangeInterval */
+ void setPersChangeInterval(const unsigned int& persChangeInterval);
+ /** Get the time interval for the periodic perspective change. @sa
+ * KPendulumSaver::m_persChangeInterval */
+ inline unsigned int persChangeInterval(void) const
+ {return m_persChangeInterval;}
+
+ static const unsigned int persChangeIntervalLimitLower = 5;
+ static const unsigned int persChangeIntervalLimitUpper = 600;
+ static const unsigned int persChangeIntervalDefault = 15;
+
+ public slots:
+ /** slot is called if integration should proceed by ::deltaT */
+ void doTimeStep();
+ /** slot is called if setup dialog changes in size and the GL are should be
+ * adjusted */
+ void resizeGlArea(TQResizeEvent* e);
+
+ private:
+ /** The ode solver which is used to integrate the equations of motion */
+ PendulumOdeSolver* solver;
+ /** Gl widget of simulation */
+ PendulumGLWidget* glArea;
+ /** Timer for the real time integration of the eqs. of motion */
+ TQTimer* timer;
+
+ /** Time step size for the integration in milliseconds. 20 ms corresponds to
+ * a frame rate of 50 fps. */
+ static const unsigned int deltaT = 20;
+ static const double eyePhiDefault;
+
+ // saved settings
+
+ /** Mass ratio m2/(m1+m2) of the pendulum masses. Value is determined by the
+ * setup dialog. Variable is accessed by setMassRatio() and massRatio(). */
+ double m_massRatio;
+ /** Length ratio l2/(l1+l2) of the pendulums. Value is determined by the
+ * setup dialog. Variable is accessed by setLengthRatio() and
+ * lengthRatio(). */
+ double m_lengthRatio;
+ /** Gravitational constant (in arbitrary units). Value is determined by the
+ * setup dialog. Variable is accessed by setG() and g(). */
+ double m_g;
+ /** Total energy of the system in units of the maximum possible potential
+ * energy. Value is determined by the setup dialog. Variable is accessed by
+ * setE() and E(). */
+ double m_E;
+ /** Time interval after which a new perspective changed happens. Value is
+ * determined by the setup dialog. Variable is accessed by
+ * setPersChangeInterval() and persChangeInterval(). */
+ unsigned int m_persChangeInterval;
+};
+
+//--------------------------------------------------------------------
+
+/** @brief KPendulum screen saver setup dialog.
+ *
+ * This class handles the KPendulum screen saver setup dialog. */
+class KPendulumSetup : public KPendulumSetupUi
+{
+ Q_OBJECT
+
+
+ public:
+ /** @brief Constructor for the KPendulum screen saver setup dialog
+ * @param parent Pointer to the parent widget, passed to KPendulumSetupUi
+ * @param name Widget name
+ *
+ * The dialog box is set up and the screen saver object KPendulumSetup::saver
+ * is instantiated. */
+ KPendulumSetup(TQWidget* parent = 0, const char* name = 0);
+ /** @brief Destructor of the KPendulum screen saver setup dialog
+ *
+ * Only KPendulumSetup::saver is deleted. */
+ ~KPendulumSetup(void);
+
+ public slots:
+ /** slot for the "OK" button: save settings and exit */
+ void okButtonClickedSlot(void);
+ /** slot for the "About" button: show the About dialog */
+ void aboutButtonClickedSlot(void);
+
+ /** slot is called if the mass ratio edit field looses its focus. If the
+ * input is acceptable KPendulumSaver::setMassRatio() is called. */
+ void mEditLostFocusSlot(void);
+ /** slot is called if the length ratio edit field looses its focus. If the
+ * input is acceptable KPendulumSaver::setLengthRatio() is called. */
+ void lEditLostFocusSlot(void);
+ /** slot is called if the gravitational constant edit field looses its focus.
+ * If the input is acceptable KPendulumSaver::setG() is called. */
+ void gEditLostFocusSlot(void);
+ /** slot is called if the energy edit field looses its focus. If the input
+ * is acceptable KPendulumSaver::setE() is called. */
+ void eEditLostFocusSlot(void);
+ /** slot is called if the perspective change interval spin box changed. If
+ * the input is acceptable KPendulumSaver::setPersChangeInterval() is
+ * called. */
+ void persChangeEnteredSlot(int t);
+
+ /** slot is called if the bar color button was clicked. A color dialog is
+ * opened and the result is given to KPendulumSaver::setBarColor(). */
+ void barColorButtonClickedSlot(void);
+ /** slot is called if the mass 1 color button was clicked. A color dialog is
+ * opened and the result is given to KPendulumSaver::setM1Color(). */
+ void m1ColorButtonClickedSlot(void);
+ /** slot is called if the mass 2 color button was clicked. A color dialog is
+ * opened and the result is given to KPendulumSaver::setM2Color(). */
+ void m2ColorButtonClickedSlot(void);
+
+ private:
+ /** Pointer to the screen saver object. Its member KPendulumSaver::glArea is
+ * displayed in the preview area */
+ KPendulumSaver* saver;
+};
+
+#endif
diff --git a/tdescreensaver/kdesavers/pendulumcfg.ui b/tdescreensaver/kdesavers/pendulumcfg.ui
new file mode 100644
index 00000000..4fa13d4f
--- /dev/null
+++ b/tdescreensaver/kdesavers/pendulumcfg.ui
@@ -0,0 +1,566 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPendulumSetupUi</class>
+<widget class="TQDialog">
+ <property name="name">
+ <cstring>KPendulumSetupUi</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>474</width>
+ <height>349</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>2</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>1200</width>
+ <height>900</height>
+ </size>
+ </property>
+ <property name="baseSize">
+ <size>
+ <width>400</width>
+ <height>250</height>
+ </size>
+ </property>
+ <property name="caption">
+ <string>KPendulum Setup</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="resizeMode">
+ <enum>Minimum</enum>
+ </property>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout18</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout16</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout15</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ <property name="text">
+ <string>&lt;p align="center"&gt;
+m&lt;sub&gt;2&lt;/sub&gt;&lt;br&gt;
+-----------&lt;br&gt;
+m&lt;sub&gt;1&lt;/sub&gt;+m&lt;sub&gt;2&lt;/sub&gt;
+&lt;/p&gt;</string>
+ </property>
+ </widget>
+ <widget class="TQLineEdit">
+ <property name="name">
+ <cstring>mEdit</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>60</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="maxLength">
+ <number>5</number>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout14</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="text">
+ <string>&lt;p align="center"&gt;
+l&lt;sub&gt;2&lt;/sub&gt;&lt;br&gt;
+------&lt;br&gt;
+l&lt;sub&gt;1&lt;/sub&gt;+l&lt;sub&gt;2&lt;/sub&gt;
+&lt;/p&gt;</string>
+ </property>
+ </widget>
+ <widget class="TQLineEdit">
+ <property name="name">
+ <cstring>lEdit</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>60</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="maxLength">
+ <number>5</number>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout13</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="text">
+ <string>g</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="TQLineEdit">
+ <property name="name">
+ <cstring>gEdit</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>60</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="maxLength">
+ <number>5</number>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout13_2</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel4</cstring>
+ </property>
+ <property name="text">
+ <string>E</string>
+ </property>
+ <property name="alignment">
+ <set>WordBreak|AlignCenter</set>
+ </property>
+ </widget>
+ <widget class="TQLineEdit">
+ <property name="name">
+ <cstring>eEdit</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>60</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="maxLength">
+ <number>5</number>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout18</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLabel">
+ <property name="name">
+ <cstring>textLabel2_2</cstring>
+ </property>
+ <property name="text">
+ <string>Perspective&lt;br&gt;
+Change [s]</string>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>specify the time in seconds after which a random perspective change occurs</string>
+ </property>
+ </widget>
+ <widget class="TQSpinBox">
+ <property name="name">
+ <cstring>persSpinBox</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>60</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>60</width>
+ <height>32767</height>
+ </size>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout15</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>barColorButton</cstring>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>40</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>Bars</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>m1ColorButton</cstring>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>40</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>M1</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>m2ColorButton</cstring>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>40</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="text">
+ <string>M2</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>MinimumExpanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ <widget class="SsPreviewArea">
+ <property name="name">
+ <cstring>preview</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>2</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>200</width>
+ <height>150</height>
+ </size>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout19</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>66</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>OkButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>CancelButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>AboutButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;About</string>
+ </property>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>65</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<customwidgets>
+ <customwidget>
+ <class>SsPreviewArea</class>
+ <header location="global">sspreviewarea.h</header>
+ <sizehint>
+ <width>-1</width>
+ <height>1</height>
+ </sizehint>
+ <container>0</container>
+ <sizepolicy>
+ <hordata>5</hordata>
+ <verdata>5</verdata>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ <pixmap>image0</pixmap>
+ </customwidget>
+</customwidgets>
+<images>
+ <image name="image0">
+ <data format="PNG" length="1002">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b149444154388dad945f4c5b551cc73fe7dc4b7b4bcba0762d45c43114323599ee6192609c51d883892ce083f1718b3ebb185f8dc91e972cf39d2d2a2f1af664b6f1e0fe3863a0718969700eb0c52142da0242a1bd6d696f7bcff101585203ceb8fd9ece39f99dcff9fe7edf939f88c562ec465f5f9fe609442c161362173c3e3eae7b7a7ac8e7f36432196cdbfe4f907c3e4f2291201e8fe338cec3737357e9e8e828aded1e229d650e1f2d51754b082110124c13a4dc5ea341eb9dc284c0558a853f3ce8cb0677ef500fde7d39d2596679e326597b8e9abb85d7a770ab16ab6983ec5a05b487a70e36f0f4e10afe408d6a558310980108478dba4a1e8233990c5d474b64ed39aa3a8fe5f3317fbf81dbd70bccfeb205947632fd74f6589c1c6ea2f70d03a58ba0c1f2c9bdc1b66de3b8256a6e11cbe7e3ee1d181b590124fe2693aeee08d223c82c3a2c24b7b874bec8f26288774f7bd054504aef0dde6e99c0eb83f9fb266323cb80a27fb0958141836044605a2ee5523393371cc646fee2da37195aa35d0c0c5b4859ac03d7e91712dcaac5adab3650a3ff9d08ef7dd8404bb48869e5d958b5b87dadc4c9a1464e9f0d0326df7ebd86bd2e310cb1bf62d384d59441f2d70a070e1c60e09489929b988681bdd9cc97170bcc4c65595f71f8e0e3301337fc24a7732467831875a47f289652b0be5e4151e6d07316c1b0c0340d8ab92023e76d66a6b2840e36d2fb7a13fee632475e6edc367ea98a90fb98b7dd6310ca0328a44761582e1bab41befabcc0ec940d28bc5e93b68e064cab84e1d9beaeb48934eac1f53b01c1b000fca496aa54b61a99fcde61662a4b4b4b23d1680be9d426173e4df3602a48ea411989a4fd590f52a8fd156b05ed9d350e3defe3cfdf4b4c7ce770ea7d3fb9f520afbe1620daeee5c26735d20b9b9cfb6811a754a439e4e5c5639a4caa1e5caf586bfc0197b78702005cb9b4cae4cd3267ce8638fe964bd72b393e39d74928d242617303a756a37f284447770dcdbffc6384a05a85de1306e9a52057c7527c7131c3c42d3f475eb2303c82d4fc3276d6811db37efeb148723082d9b08f79f97c1e5729109a9a28307cc622d2d6cdf52b2b24efe548dedb00142009862cfa879ee1a71f6cec928353511472fbf4389148b0b0e0c108081412458dfe21c9f11351e67e7358595468246d1d1e5e38a6e9e851bc39d84ab502a669331dafec0d8ec7e3e8cb06e1a881d727d1ae40180a434a8c9db129a54126ad48a7358c2b4c5352c8c374bcccdab2bb37d8719cba79fab8211f9df218e0582c261e95f8bfc04f1a1e8bc5c4dfe0a190172af6a9690000000049454e44ae426082</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>OkButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>okButtonClickedSlot()</slot>
+ </connection>
+ <connection>
+ <sender>CancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>close()</slot>
+ </connection>
+ <connection>
+ <sender>AboutButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>aboutButtonClickedSlot()</slot>
+ </connection>
+ <connection>
+ <sender>lEdit</sender>
+ <signal>lostFocus()</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>lEditLostFocusSlot()</slot>
+ </connection>
+ <connection>
+ <sender>gEdit</sender>
+ <signal>lostFocus()</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>gEditLostFocusSlot()</slot>
+ </connection>
+ <connection>
+ <sender>eEdit</sender>
+ <signal>lostFocus()</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>eEditLostFocusSlot()</slot>
+ </connection>
+ <connection>
+ <sender>persSpinBox</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>persChangeEnteredSlot(int)</slot>
+ </connection>
+ <connection>
+ <sender>mEdit</sender>
+ <signal>lostFocus()</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>mEditLostFocusSlot()</slot>
+ </connection>
+ <connection>
+ <sender>barColorButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>barColorButtonClickedSlot()</slot>
+ </connection>
+ <connection>
+ <sender>m1ColorButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>m1ColorButtonClickedSlot()</slot>
+ </connection>
+ <connection>
+ <sender>m2ColorButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KPendulumSetupUi</receiver>
+ <slot>m2ColorButtonClickedSlot()</slot>
+ </connection>
+</connections>
+<Q_SLOTS>
+ <slot>okButtonClickedSlot()</slot>
+ <slot>aboutButtonClickedSlot()</slot>
+ <slot>mEditLostFocusSlot(void)</slot>
+ <slot>lEditLostFocusSlot(void)</slot>
+ <slot>gEditLostFocusSlot(void)</slot>
+ <slot>eEditLostFocusSlot(void)</slot>
+ <slot>persChangeEnteredSlot(int)</slot>
+ <slot>barColorButtonClickedSlot(void)</slot>
+ <slot>m1ColorButtonClickedSlot(void)</slot>
+ <slot>m2ColorButtonClickedSlot(void)</slot>
+</Q_SLOTS>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>sspreviewarea.h</includehint>
+</includehints>
+</UI>
diff --git a/tdescreensaver/kdesavers/polygon.cpp b/tdescreensaver/kdesavers/polygon.cpp
new file mode 100644
index 00000000..a28cd34c
--- /dev/null
+++ b/tdescreensaver/kdesavers/polygon.cpp
@@ -0,0 +1,366 @@
+//-----------------------------------------------------------------------------
+//
+// kpolygon - Basic screen saver for KDE
+//
+// Copyright (c) Martin R. Jones 1996
+//
+// layout management added 1998/04/19 by Mario Weilguni <mweilguni@kde.org>
+// 2001/03/04 Converted to libtdescreensaver by Martin R. Jones
+
+#include <config.h>
+#include <stdlib.h>
+#include <time.h>
+#include <tqcolor.h>
+#include <tqlabel.h>
+#include <tqslider.h>
+#include <tqlayout.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kglobal.h>
+#include <kmessagebox.h>
+
+#include "polygon.h"
+#include <tqpainter.h>
+
+#include "polygon.moc"
+
+
+#define MAXLENGTH 65
+#define MAXVERTICES 19
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kpolygon.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "KPolygon" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new kPolygonSaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new kPolygonSetup();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// dialog to setup screen saver parameters
+//
+kPolygonSetup::kPolygonSetup( TQWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n( "Setup Polygon Screen Saver" ),
+ Ok|Cancel|Help, Ok, true ), saver( 0 ), length( 10 ), vertices( 3 ),
+ speed( 50 )
+{
+ readSettings();
+
+ TQWidget *main = makeMainWidget();
+ setButtonText( Help, i18n( "A&bout" ) );
+
+ TQHBoxLayout *tl = new TQHBoxLayout(main, 0, spacingHint());
+ TQVBoxLayout *tl1 = new TQVBoxLayout;
+ tl->addLayout(tl1);
+
+ TQLabel *label = new TQLabel( i18n("Length:"), main );
+ tl1->addWidget(label);
+
+ TQSlider *sb = new TQSlider(1, MAXLENGTH, 10, length, Qt::Horizontal,
+ main );
+ sb->setMinimumSize( 90, 20 );
+ sb->setTickmarks(TQSlider::Below);
+ sb->setTickInterval(10);
+ connect( sb, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotLength( int ) ) );
+ tl1->addWidget(sb);
+
+ label = new TQLabel( i18n("Vertices:"), main );
+ tl1->addWidget(label);
+
+ sb = new TQSlider(3, MAXVERTICES, 2, vertices, Qt::Horizontal, main);
+ sb->setMinimumSize( 90, 20 );
+ sb->setTickmarks(TQSlider::Below);
+ sb->setTickInterval(2);
+ connect( sb, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotVertices( int ) ) );
+ tl1->addWidget(sb);
+
+ label = new TQLabel( i18n("Speed:"), main );
+ tl1->addWidget(label);
+
+ sb = new TQSlider(0, 100, 10, speed, Qt::Horizontal, main);
+ sb->setMinimumSize( 90, 20 );
+ sb->setTickmarks(TQSlider::Below);
+ sb->setTickInterval(10);
+ connect( sb, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotSpeed( int ) ) );
+ tl1->addWidget(sb);
+ tl1->addStretch();
+
+ preview = new TQWidget( main );
+ preview->setFixedSize( 220, 170 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ saver = new kPolygonSaver( preview->winId() );
+ tl->addWidget(preview);
+
+ setMinimumSize( sizeHint() );
+}
+
+kPolygonSetup::~kPolygonSetup()
+{
+ delete saver;
+}
+
+// read settings from config file
+void kPolygonSetup::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ length = config->readNumEntry( "Length", length );
+ if ( length > MAXLENGTH )
+ length = MAXLENGTH;
+ else if ( length < 1 )
+ length = 1;
+
+ vertices = config->readNumEntry( "Vertices", vertices );
+ if ( vertices > MAXVERTICES )
+ vertices = MAXVERTICES;
+ else if ( vertices < 3 )
+ vertices = 3;
+
+ speed = config->readNumEntry( "Speed", speed );
+ if ( speed > 100 )
+ speed = 100;
+ else if ( speed < 50 )
+ speed = 50;
+}
+
+void kPolygonSetup::slotLength( int len )
+{
+ length = len;
+ if ( saver )
+ saver->setPolygon( length, vertices );
+}
+
+void kPolygonSetup::slotVertices( int num )
+{
+ vertices = num;
+ if ( saver )
+ saver->setPolygon( length, vertices );
+}
+
+void kPolygonSetup::slotSpeed( int num )
+{
+ speed = num;
+ if ( saver )
+ saver->setSpeed( speed );
+}
+
+// Ok pressed - save settings and exit
+void kPolygonSetup::slotOk()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ TQString slength;
+ slength.setNum( length );
+ config->writeEntry( "Length", slength );
+
+ TQString svertices;
+ svertices.setNum( vertices );
+ config->writeEntry( "Vertices", svertices );
+
+ TQString sspeed;
+ sspeed.setNum( speed );
+ config->writeEntry( "Speed", sspeed );
+
+ config->sync();
+
+ accept();
+}
+
+void kPolygonSetup::slotHelp()
+{
+ KMessageBox::information(this,
+ i18n("Polygon Version 2.2.0\n\n"\
+ "Written by Martin R. Jones 1996\n"\
+ "mjones@kde.org"));
+}
+
+//-----------------------------------------------------------------------------
+
+
+kPolygonSaver::kPolygonSaver( WId id ) : KScreenSaver( id )
+{
+ polygons.setAutoDelete( TRUE );
+
+ readSettings();
+
+ directions.resize( numVertices );
+ colorContext = TQColor::enterAllocContext();
+
+ blank();
+
+ initialiseColor();
+ initialisePolygons();
+
+ timer.start( speed );
+ connect( &timer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotTimeout() ) );
+}
+
+kPolygonSaver::~kPolygonSaver()
+{
+ timer.stop();
+ TQColor::leaveAllocContext();
+ TQColor::destroyAllocContext( colorContext );
+}
+
+// set polygon properties
+void kPolygonSaver::setPolygon( int len, int ver )
+{
+ timer.stop();
+ numLines = len;
+ numVertices = ver;
+
+ directions.resize( numVertices );
+ polygons.clear();
+ initialisePolygons();
+ blank();
+
+ timer.start( speed );
+}
+
+// set the speed
+void kPolygonSaver::setSpeed( int spd )
+{
+ timer.stop();
+ speed = 100-spd;
+ timer.start( speed );
+}
+
+// read configuration settings from config file
+void kPolygonSaver::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+ numLines = config->readNumEntry( "Length", 10 );
+ if ( numLines > 50 )
+ numLines = 50;
+ else if ( numLines < 1 )
+ numLines = 1;
+
+ numVertices = config->readNumEntry( "Vertices", 3 );
+ if ( numVertices > 20 )
+ numVertices = 20;
+ else if ( numVertices < 3 )
+ numVertices = 3;
+
+ speed = 100 - config->readNumEntry( "Speed", 50 );
+}
+
+// draw next polygon and erase tail
+void kPolygonSaver::slotTimeout()
+{
+ TQPainter p( this );
+ if ( polygons.count() > numLines )
+ {
+ p.setPen( black );
+ p.drawPolyline( *polygons.first() );
+ }
+
+ nextColor();
+ p.setPen( colors[currentColor] );
+ p.drawPolyline( *polygons.last() );
+
+ if ( polygons.count() > numLines )
+ polygons.removeFirst();
+
+ polygons.append( new TQPointArray( polygons.last()->copy() ) );
+ moveVertices();
+}
+
+void kPolygonSaver::blank()
+{
+ setBackgroundColor( black );
+ erase();
+}
+
+// initialise the polygon
+void kPolygonSaver::initialisePolygons()
+{
+ int i;
+
+ polygons.append( new TQPointArray( numVertices + 1 ) );
+
+ TQPointArray &poly = *polygons.last();
+
+ for ( i = 0; i < numVertices; i++ )
+ {
+ poly.setPoint( i, rnd.getLong(width()), rnd.getLong(height()) );
+ directions[i].setX( 16 - rnd.getLong(8) * 4 );
+ if ( directions[i].x() == 0 )
+ directions[i].setX( 1 );
+ directions[i].setY( 16 - rnd.getLong(8) * 4 );
+ if ( directions[i].y() == 0 )
+ directions[i].setY( 1 );
+ }
+
+ poly.setPoint( i, poly.point(0) );
+}
+
+// move polygon in current direction and change direction if a border is hit
+void kPolygonSaver::moveVertices()
+{
+ int i;
+ TQPointArray &poly = *polygons.last();
+
+ for ( i = 0; i < numVertices; i++ )
+ {
+ poly.setPoint( i, poly.point(i) + directions[i] );
+ if ( poly[i].x() >= (int)width() )
+ {
+ directions[i].setX( -(rnd.getLong(4) + 1) * 4 );
+ poly[i].setX( (int)width() );
+ }
+ else if ( poly[i].x() < 0 )
+ {
+ directions[i].setX( (rnd.getLong(4) + 1) * 4 );
+ poly[i].setX( 0 );
+ }
+
+ if ( poly[i].y() >= (int)height() )
+ {
+ directions[i].setY( -(rnd.getLong(4) + 1) * 4 );
+ poly[i].setY( height() );
+ }
+ else if ( poly[i].y() < 0 )
+ {
+ directions[i].setY( (rnd.getLong(4) + 1) * 4 );
+ poly[i].setY( 0 );
+ }
+ }
+
+ poly.setPoint( i, poly.point(0) );
+}
+
+// create a color table of 64 colors
+void kPolygonSaver::initialiseColor()
+{
+ for ( int i = 0; i < 64; i++ )
+ {
+ colors[i].setHsv( i * 360 / 64, 255, 255 );
+ }
+
+ currentColor = 0;
+}
+
+// set foreground color to next in the table
+void kPolygonSaver::nextColor()
+{
+ currentColor++;
+
+ if ( currentColor > 63 )
+ currentColor = 0;
+}
+
diff --git a/tdescreensaver/kdesavers/polygon.h b/tdescreensaver/kdesavers/polygon.h
new file mode 100644
index 00000000..86c9d2aa
--- /dev/null
+++ b/tdescreensaver/kdesavers/polygon.h
@@ -0,0 +1,81 @@
+//-----------------------------------------------------------------------------
+//
+// kpolygon - Basic screen saver for KDE
+//
+// Copyright (c) Martin R. Jones 1996
+//
+
+#ifndef __POLYGON_H__
+#define __POLYGON_H__
+
+#include <tqtimer.h>
+#include <tqptrlist.h>
+
+#include <kdialogbase.h>
+#include <tdescreensaver.h>
+#include <krandomsequence.h>
+
+class kPolygonSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+public:
+ kPolygonSaver( WId id );
+ virtual ~kPolygonSaver();
+
+ void setPolygon( int len, int ver );
+ void setSpeed( int spd );
+
+private:
+ void readSettings();
+ void blank();
+ void initialisePolygons();
+ void moveVertices();
+ void initialiseColor();
+ void nextColor();
+
+protected slots:
+ void slotTimeout();
+
+protected:
+ TQTimer timer;
+ unsigned numLines;
+ int numVertices;
+ int colorContext;
+ int speed;
+ TQColor colors[64];
+ int currentColor;
+ TQPtrList<TQPointArray> polygons;
+ TQMemArray<TQPoint> directions;
+ KRandomSequence rnd;
+};
+
+class kPolygonSetup : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ kPolygonSetup( TQWidget *parent = 0, const char *name = 0 );
+ ~kPolygonSetup();
+
+protected:
+ void readSettings();
+
+private slots:
+ void slotLength( int );
+ void slotVertices( int );
+ void slotSpeed( int );
+ void slotOk();
+ void slotHelp();
+
+private:
+ TQWidget *preview;
+ kPolygonSaver *saver;
+
+ int length;
+ int vertices;
+ int speed;
+};
+
+#endif
+
diff --git a/tdescreensaver/kdesavers/rkodesolver.cpp b/tdescreensaver/kdesavers/rkodesolver.cpp
new file mode 100644
index 00000000..2127a110
--- /dev/null
+++ b/tdescreensaver/kdesavers/rkodesolver.cpp
@@ -0,0 +1,252 @@
+//============================================================================
+//
+// Ordinary differential equation solver using the Runge-Kutta method.
+// $Id$
+// Copyright (C) 2004 Georg Drenkhahn
+//
+// This file is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+//============================================================================
+
+#include <kdebug.h>
+#include "rkodesolver.h"
+
+template<typename T>
+RkOdeSolver<T>::RkOdeSolver(const T &x,
+ const std::valarray<T>& y,
+ const T &dx,
+ const T &eps)
+ : mX(x)
+{
+ Y(y);
+ dX(dx);
+ Eps(eps);
+}
+
+// virtual dtor
+template<typename T>
+RkOdeSolver<T>::~RkOdeSolver(void)
+{}
+
+// accessors
+
+template<typename T>
+void
+RkOdeSolver<T>::dX(const T &a)
+{
+ if (a < 0.0)
+ {
+ kdDebug() << "RkOdeSolver: dx was negative, made it positive" << endl;
+ mStep = -a;
+ }
+ else if (a == 0.0)
+ {
+ mStep = 0.001; // a very arbitrary value
+ kdDebug() << "RkOdeSolver: dx == 0, set it to " << mStep << endl;
+ }
+ else
+ {
+ mStep = a;
+ }
+}
+
+template<typename T>
+void
+RkOdeSolver<T>::Eps(const T &a)
+{
+ if (a < 0.0)
+ {
+ kdDebug() << "RkOdeSolver: eps was negative, made it positive" << endl;
+ mEps = -a;
+ }
+ else if (a == 0.0)
+ {
+ mEps = 1e-5; // a very arbitrary value
+ kdDebug() << "RkOdeSolver: eps == 0, set it to 1e-5" << endl;
+ }
+ else
+ {
+ mEps = a;
+ }
+}
+
+template<typename T>
+void
+RkOdeSolver<T>::Y(const std::valarray<T> &a)
+{
+ mY.resize(a.size());
+ mY = a;
+}
+
+
+// public member functions
+
+template<typename T>
+void
+RkOdeSolver<T>::integrate(const T &deltaX)
+{
+ if (deltaX == 0)
+ {
+ return; // nothing to integrate
+ }
+
+ // init dydx if uninitialised
+ if (mDydx.size() != mY.size())
+ {
+ mDydx.resize(mY.size());
+ mDydx = f(mX,mY);
+ }
+
+ static const unsigned int maxiter = 10000;
+ const T x2 = mX + deltaX;
+
+ unsigned int iter;
+ for (iter=0;
+ iter<maxiter && rkStepCheck(x2-mX) == false;
+ ++iter)
+ {}
+
+ if (iter>maxiter)
+ {
+ kdDebug() << "RkOdeSolver: More than " << maxiter
+ << " iterations in RkOdeSolver::integrate" << endl;
+ // TODO throw exeption here
+ }
+}
+
+
+// private member functions
+
+template<typename T>
+bool
+RkOdeSolver<T>::rkStepCheck(const T& dx_requested)
+{
+ static const T safety = 0.9;
+ static const T pshrnk = -0.25;
+ static const T pgrow = -0.2;
+
+ // reduce step size by no more than a factor 10
+ static const T shrinkLimit = 0.1;
+ // enlarge step size by no more than a factor 5
+ static const T growthLimit = 5.0;
+ // errmax_sl = 6561.0
+ static const T errmax_sl = pow(shrinkLimit/safety, 1.0/pshrnk);
+ // errmax_gl = 1.89e-4
+ static const T errmax_gl = pow(growthLimit/safety, 1.0/pgrow);
+
+ static const unsigned int maxiter = 100;
+
+ if (dx_requested == 0)
+ {
+ return true; // integration done
+ }
+
+ std::valarray<T> ytmp(mY.size());
+ std::valarray<T> yerr(mY.size());
+ std::valarray<T> t(mY.size());
+
+ bool stepSizeWasMaximal;
+ T dx;
+ if (std::abs(dx_requested) > mStep)
+ {
+ stepSizeWasMaximal = true;
+ dx = dx_requested>0 ? mStep : -mStep;
+ }
+ else
+ {
+ stepSizeWasMaximal = false;
+ dx = dx_requested;
+ }
+
+ // generic scaling factor
+ std::valarray<T> yscal = std::abs(mY) + std::abs(dx*mDydx) + 1e-15;
+
+ unsigned int iter = 0;
+ T errmax = 0;
+ do
+ {
+ if (errmax >= 1.0)
+ {
+ // reduce step size
+ dx *= errmax<errmax_sl ? safety * pow(errmax, pshrnk) : shrinkLimit;
+ stepSizeWasMaximal = true;
+ if (mX == mX + dx)
+ {
+ // stepsize below numerical resolution
+ kdDebug() << "RkOdeSolver: stepsize underflow in rkStepCheck"
+ << endl;
+ // TODO throw exeption here
+ exit(0);
+ }
+ // new dx -> update scaling vector
+ yscal = std::abs(mY) + std::abs(dx*mDydx) + 1e-15;
+ }
+
+ ytmp = rkStep(dx, yerr); // try to make a step forward
+ t = std::abs(yerr/yscal); // calc the error vector
+ errmax = t.max()/mEps; // calc the rel. maximal error
+ ++iter;
+ } while (iter < maxiter && errmax >= 1.0);
+
+ if (iter >= maxiter)
+ {
+ kdDebug() << "RkOdeSolver: too many iterations in rkStepCheck" << endl;
+ // TODO throw exeption here
+ exit(0);
+ }
+
+ if (stepSizeWasMaximal == true)
+ {
+ // estimate next step size if used step size was maximal
+ mStep =
+ std::abs(dx)
+ * (errmax>errmax_gl ? safety * pow(errmax, pgrow) : growthLimit);
+ }
+ mX += dx; // make step forward
+ mY = ytmp; // save new function values
+ mDydx = f(mX,mY); // and update derivatives
+
+ return std::abs(dx) < std::abs(dx_requested);
+}
+
+template<typename T>
+std::valarray<T>
+RkOdeSolver<T>::rkStep(const T& dx, std::valarray<T>& yerr) const
+{
+ static const T
+ a2=0.2, a3=0.3, a4=0.6, a5=1.0, a6=0.875,
+ b21=0.2,
+ b31=3.0/40.0, b32=9.0/40.0,
+ b41=0.3, b42=-0.9, b43=1.2,
+ b51=-11.0/54.0, b52=2.5, b53=-70.0/27.0, b54=35.0/27.0,
+ b61=1631.0/55296.0, b62=175.0/512.0, b63=575.0/13824.0,
+ b64=44275.0/110592.0, b65=253.0/4096.0,
+ c1=37.0/378.0, c3=250.0/621.0, c4=125.0/594.0, c6=512.0/1771.0,
+ dc1=c1-2825.0/27648.0, dc3=c3-18575.0/48384.0,
+ dc4=c4-13525.0/55296.0, dc5=-277.0/14336.0, dc6=c6-0.25;
+
+ std::valarray<T> ak2 = f(mX + a2*dx,
+ mY + dx*b21*mDydx); // 2. step
+ std::valarray<T> ak3 = f(mX + a3*dx,
+ mY + dx*(b31*mDydx + b32*ak2)); // 3.step
+ std::valarray<T> ak4 = f(mX + a4*dx,
+ mY + dx*(b41*mDydx + b42*ak2
+ + b43*ak3)); // 4.step
+ std::valarray<T> ak5 = f(mX + a5*dx,
+ mY + dx*(b51*mDydx + b52*ak2
+ + b53*ak3 + b54*ak4)); // 5.step
+ std::valarray<T> ak6 = f(mX + a6*dx,
+ mY + dx*(b61*mDydx + b62*ak2
+ + b63*ak3 + b64*ak4
+ + b65*ak5)); // 6.step
+ yerr = dx*(dc1*mDydx + dc3*ak3 + dc4*ak4 + dc5*ak5 + dc6*ak6);
+ return mY + dx*( c1*mDydx + c3*ak3 + c4*ak4 + c6*ak6);
+}
+
+
+// explicite instantiations
+//template RkOdeSolver<long double>;
+template class RkOdeSolver<double>;
+//template RkOdeSolver<float>;
diff --git a/tdescreensaver/kdesavers/rkodesolver.h b/tdescreensaver/kdesavers/rkodesolver.h
new file mode 100644
index 00000000..d1f9d556
--- /dev/null
+++ b/tdescreensaver/kdesavers/rkodesolver.h
@@ -0,0 +1,187 @@
+//============================================================================
+//
+// Ordinary differential equation solver using the Runge-Kutta method.
+// $Id$
+// Copyright (C) 2004 Georg Drenkhahn
+//
+// This file is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+//============================================================================
+
+#ifndef RKODESOLVER_H
+#define RKODESOLVER_H
+
+// STL headers
+#include <valarray>
+
+/** @brief Solver class to integrate a first-order ordinary differential
+ * equation (ODE) by means of a 6. order Runge-Kutta method.
+ *
+ * The ODE system must be given as the derivative
+ * dy/dx = f(x,y)
+ * with x in R and y in R^n.
+ *
+ * Within this class the function f() is a pure virtual function, which must be
+ * reimplemented in a derived class.
+ *
+ * No other special data type for vectors or matrices are needed besides the STL
+ * class std::valarray. */
+template<typename T>
+class RkOdeSolver
+{
+ public:
+ /** @brief Constructor
+ * @param x Initial integration parameter
+ * @param y Initial function values of function to integrate
+ * @param dx Initial guess for step size. Will be automatically adjusted to
+ * guarantee required precision.
+ * @param eps Relative precision
+ *
+ * Initialises the solver with start conditions. */
+ RkOdeSolver(const T& x=0.0,
+ const std::valarray<T>& y=std::valarray<T>(0),
+ const T& dx=0,
+ const T& eps=1e-6);
+ /** @brief Destructor */
+ virtual ~RkOdeSolver(void);
+
+ /** @brief Integrates the ordinary differential equation from the current x
+ * value to x+@a dx.
+ * @param dx x-interval size to integrate over starting from x. dx may be
+ * negative.
+ *
+ * The integration is performed by calling rkStepCheck() repeatedly until the
+ * desired x value is reached. */
+ void integrate(const T& dx);
+
+ // Accessors
+
+ // get/set x value
+ /** @brief Get current x value.
+ * @return Reference of x value. */
+ const T& X(void) const;
+ /** @brief Set current x value.
+ * @param a The value to be set. */
+ void X(const T& a);
+
+ // get/set y value
+ /** @brief Get current y value.
+ * @return Reference of y vector. */
+ const std::valarray<T>& Y(void) const;
+ /** @brief Set current y values.
+ * @param a The vector to be set. */
+ void Y(const std::valarray<T>& a);
+
+ /** @brief Get current dy/dx value.
+ * @return Reference of dy/dx vector. */
+ const std::valarray<T>& dYdX(void) const;
+
+ // get/set dx value
+ /** @brief Get current estimated step size dX.
+ * @return Reference of dX value. */
+ const T& dX(void) const;
+ /** @brief Set estimated step size dX.
+ * @param a The value to be set. */
+ void dX(const T& a);
+
+ // get/set eps value
+ /** @brief Get current presision.
+ * @return Reference of precision value. */
+ const T& Eps(void) const;
+ /** @brief Set estimated presision.
+ * @param a The value to be set. */
+ void Eps(const T& a);
+
+ protected:
+ // purely virtual function which is integrated
+ /** @brief ODE function
+ * @param x Integration value
+ * @param y Function value
+ * @return Derivation
+ *
+ * This purely virtual function returns the value of dy/dx for the given
+ * parameter values of x and y. */
+ virtual std::valarray<T>
+ f(const T& x, const std::valarray<T>& y) const = 0;
+
+ private:
+ /** @brief Perform one integration step with a tolerable relative error given
+ * by ::mErr.
+ * @param dx Maximal step size, may be positive or negative depending on
+ * integration direction.
+ * @return Flag indicating if made absolute integration step was equal |@a dx
+ * | (true) less than |@a dx | (false).
+ *
+ * A new estimate for the maximum next step size is saved to ::mStep. The
+ * new values for x, y and f are saved in ::mX, ::mY and ::mDydx. */
+ bool rkStepCheck(const T& dx);
+ /** @brief Perform one Runge-Kutta integration step forward with step size
+ * ::mStep
+ * @param dx Step size relative to current x value.
+ * @param yerr Reference to vector in which the estimated error made in y is
+ * returned.
+ * @return The y value after the step at x+@a dx.
+ *
+ * Stored current x,y values are not adjusted. */
+ std::valarray<T> rkStep(const T& dx, std::valarray<T>& yerr) const;
+
+ /** current x value */
+ T mX;
+ /** current y value */
+ std::valarray<T> mY;
+ /** current value of dy/dx */
+ std::valarray<T> mDydx;
+
+ /** allowed relative error */
+ T mEps;
+ /** estimated step size for next Runge-Kutta step */
+ T mStep;
+};
+
+// inline accessors
+
+template<typename T>
+inline const T&
+RkOdeSolver<T>::X(void) const
+{
+ return mX;
+}
+
+template<typename T>
+inline void
+RkOdeSolver<T>::X(const T &a)
+{
+ mX = a;
+}
+
+template<typename T>
+inline const std::valarray<T>&
+RkOdeSolver<T>::Y(void) const
+{
+ return mY;
+}
+
+template<typename T>
+inline const std::valarray<T>&
+RkOdeSolver<T>::dYdX(void) const
+{
+ return mDydx;
+}
+
+template<typename T>
+inline const T&
+RkOdeSolver<T>::dX(void) const
+{
+ return mStep;
+}
+
+template<typename T>
+inline const T&
+RkOdeSolver<T>::Eps(void) const
+{
+ return mEps;
+}
+
+#endif
diff --git a/tdescreensaver/kdesavers/rotation.cpp b/tdescreensaver/kdesavers/rotation.cpp
new file mode 100644
index 00000000..fb38b71f
--- /dev/null
+++ b/tdescreensaver/kdesavers/rotation.cpp
@@ -0,0 +1,825 @@
+//============================================================================
+//
+// KRotation screen saver for KDE
+//
+// The screen saver displays a physically realistic simulation of a force free
+// rotating asymmetric body. The equations of motion for such a rotation, the
+// Euler equations, are integrated numerically by the Runge-Kutta method.
+//
+// Developed by Georg Drenkhahn, georg-d@users.sourceforge.net
+//
+// $Id$
+//
+/*
+ * Copyright (C) 2004 Georg Drenkhahn
+ *
+ * KRotation is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License version 2 as published by the
+ * Free Software Foundation.
+ *
+ * KRotation is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
+ * Place, Suite 330, Boston, MA 02110-1301 USA
+ */
+//============================================================================
+
+// std. C++ headers
+#include <cstdlib>
+// STL
+#include <deque>
+// TQt headers
+#include <tqcheckbox.h>
+#include <tqlineedit.h>
+#include <tqvalidator.h>
+#include <tqtooltip.h>
+// KDE headers
+#include <klocale.h>
+#include <kconfig.h>
+#include <kdebug.h>
+#include <kmessagebox.h>
+
+#include "sspreviewarea.h"
+
+// rotation.moc includes rotation.h
+#include "rotation.moc"
+
+/** Version number of this screen saver */
+#define KROTATION_VERSION "1.1"
+
+// libtdescreensaver interface
+extern "C"
+{
+ /** application name for the libtdescreensaver interface */
+ KDE_EXPORT const char *kss_applicationName = "krotation.kss";
+ /** application description for the libtdescreensaver interface */
+ KDE_EXPORT const char *kss_description =
+ I18N_NOOP("Simulation of a force free rotating asymmetric body");
+ /** application version for the libtdescreensaver interface */
+ KDE_EXPORT const char *kss_version = KROTATION_VERSION;
+
+ /** function to create screen saver object */
+ KDE_EXPORT KScreenSaver* kss_create(WId id)
+ {
+ return new KRotationSaver(id);
+ }
+
+ /** function to create setup dialog for screen saver */
+ KDE_EXPORT TQDialog* kss_setup()
+ {
+ return new KRotationSetup();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// EulerOdeSolver implementation
+//-----------------------------------------------------------------------------
+
+EulerOdeSolver::EulerOdeSolver(
+ const double &t_,
+ const double &dt_,
+ const double &A_,
+ const double &B_,
+ const double &C_,
+ std::valarray<double> &y_,
+ const double &eps_)
+ : RkOdeSolver<double>(t_,y_,dt_,eps_),
+ A(A_), B(B_), C(C_)
+{
+}
+
+std::valarray<double> EulerOdeSolver::f(
+ const double &x,
+ const std::valarray<double> &y) const
+{
+ // unused
+ (void)x;
+
+ // vec omega in body coor. sys.: omega_body = (p, q, r)
+ const vec3<double> omega_body(y[std::slice(0,3,1)]);
+ // body unit vectors in fixed frame coordinates
+ const vec3<double> e1(y[std::slice(3,3,1)]);
+ const vec3<double> e2(y[std::slice(6,3,1)]);
+ const vec3<double> e3(y[std::slice(9,3,1)]);
+
+ // don't use "const vec3<double>&" here because slice_array must be
+ // value-copied to vec3<double>.
+
+ // vec omega in global fixed coor. sys.
+ vec3<double> omega(
+ omega_body[0] * e1
+ + omega_body[1] * e2
+ + omega_body[2] * e3);
+
+ // return vector y'
+ std::valarray<double> ypr(y.size());
+
+ // omega_body'
+ ypr[0] = -(C-B)/A * omega_body[1] * omega_body[2]; // p'
+ ypr[1] = -(A-C)/B * omega_body[2] * omega_body[0]; // q'
+ ypr[2] = -(B-A)/C * omega_body[0] * omega_body[1]; // r'
+
+ // e1', e2', e3'
+ ypr[std::slice(3,3,1)] = vec3<double>::crossprod(omega, e1);
+ ypr[std::slice(6,3,1)] = vec3<double>::crossprod(omega, e2);
+ ypr[std::slice(9,3,1)] = vec3<double>::crossprod(omega, e3);
+
+ return ypr;
+}
+//-----------------------------------------------------------------------------
+
+
+//-----------------------------------------------------------------------------
+// Rotation: screen saver widget
+//-----------------------------------------------------------------------------
+
+RotationGLWidget::RotationGLWidget(
+ TQWidget* parent, const char* name,
+ const vec3<double>& _omega,
+ const std::deque<vec3<double> >& e1_,
+ const std::deque<vec3<double> >& e2_,
+ const std::deque<vec3<double> >& e3_,
+ const vec3<double>& J)
+ : TQGLWidget(parent, name),
+ eyeR(25), eyeTheta(1), eyePhi(M_PI*0.25),
+ boxSize(1,1,1),
+ fixedAxses(0),
+ bodyAxses(0),
+ lightR(10), lightTheta(M_PI/4), lightPhi(0),
+ bodyAxsesLength(6),
+ fixedAxsesLength(8),
+ omega(_omega),
+ e1(e1_),
+ e2(e2_),
+ e3(e3_)
+{
+ // set up initial rotation matrix as unit matrix, only non-constant elements
+ // are set later on
+ for (int i=0; i<16; i++)
+ rotmat[i] = ((i%5)==0) ? 1:0;
+
+ // Set the box sizes from the momenta of inertia. J is the 3 vector with
+ // momenta of inertia with respect to the 3 figure axes.
+
+ // the default values must be valid so that w,h,d are real!
+ GLfloat
+ x2 = 6.0*(-J[0] + J[1] + J[2]),
+ y2 = 6.0*( J[0] - J[1] + J[2]),
+ z2 = 6.0*( J[0] + J[1] - J[2]);
+
+ if (x2>=0 && y2>=0 && z2>=0)
+ {
+ boxSize = vec3<double>(sqrt(x2), sqrt(y2), sqrt(z2));
+ }
+ else
+ {
+ kdDebug() << "parameter error" << endl;
+ boxSize = vec3<double>(1, 1, 1);
+ }
+}
+
+/* --------- protected methods ----------- */
+
+void RotationGLWidget::initializeGL(void)
+{
+ qglClearColor(TQColor(black)); // set color to clear the background
+
+ glClearDepth(1); // depth buffer setup
+ glEnable(GL_DEPTH_TEST); // depth testing
+ glDepthFunc(GL_LEQUAL); // type of depth test
+
+ glShadeModel(GL_SMOOTH); // smooth color shading in poygons
+
+ // nice perspective calculation
+ glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
+
+ // set up the light
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ // set positon of light0
+ GLfloat lightPos[4]=
+ {lightR * sin(lightTheta) * sin(lightPhi),
+ lightR * sin(lightTheta) * cos(lightPhi),
+ lightR * cos(lightTheta), 1.};
+ glLightfv(GL_LIGHT0, GL_POSITION, lightPos);
+
+ // enable setting the material colour by glColor()
+ glEnable(GL_COLOR_MATERIAL);
+
+ // set up display lists
+
+ if (fixedAxses == 0)
+ fixedAxses = glGenLists(1); // list to be returned
+ glNewList(fixedAxses, GL_COMPILE);
+
+ // fixed coordinate system axes
+
+ glPushMatrix();
+ glLoadIdentity();
+
+ // z-axis, blue
+ qglColor(TQColor(blue));
+ myGlArrow(fixedAxsesLength, 0.5f, 0.03f, 0.1f);
+
+ // x-axis, red
+ qglColor(TQColor(red));
+ glRotatef(90, 0, 1, 0);
+
+ myGlArrow(fixedAxsesLength, 0.5f, 0.03f, 0.1f);
+
+ // y-axis, green
+ qglColor(TQColor(green));
+ glLoadIdentity();
+ glRotatef(-90, 1, 0, 0);
+ myGlArrow(fixedAxsesLength, 0.5f, 0.03f, 0.1f);
+
+ glPopMatrix();
+ glEndList();
+ // end of axes object list
+
+
+ // box and box-axses
+ if (bodyAxses == 0)
+ bodyAxses = glGenLists(1); // list to be returned
+ glNewList(bodyAxses, GL_COMPILE);
+
+ // z-axis, blue
+ qglColor(TQColor(blue));
+ myGlArrow(bodyAxsesLength, 0.5f, 0.03f, 0.1f);
+
+ // x-axis, red
+ qglColor(TQColor(red));
+ glPushMatrix();
+ glRotatef(90, 0, 1, 0);
+ myGlArrow(bodyAxsesLength, 0.5f, 0.03f, 0.1f);
+ glPopMatrix();
+
+ // y-axis, green
+ qglColor(TQColor(green));
+ glPushMatrix();
+ glRotatef(-90, 1, 0, 0);
+ myGlArrow(bodyAxsesLength, 0.5f, 0.03f, 0.1f);
+ glPopMatrix();
+
+ glEndList();
+}
+
+void RotationGLWidget::draw_traces(void)
+{
+ if (e1.size()==0 && e2.size()==0 && e3.size()==0)
+ return;
+
+ glPushMatrix();
+ glScalef(bodyAxsesLength, bodyAxsesLength, bodyAxsesLength);
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
+ for (int j=0; j<3; ++j)
+ {
+ const std::deque<vec3<double> >& e =
+ j==0 ? e1 : j==1 ? e2 : e3;
+
+ // trace must contain at least 2 elements
+ if (e.size() > 1)
+ {
+ // emission colour
+ GLfloat em[4] = {0,0,0,1};
+ em[j] = 1; // set either red, green, blue emission colour
+
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, em);
+ glColor4fv(em);
+
+ // set iterator of the tail part
+ std::deque<vec3<double> >::const_iterator eit = e.begin();
+ std::deque<vec3<double> >::const_iterator tail =
+ e.begin() +
+ static_cast<std::deque<vec3<double> >::difference_type>
+ (0.9*e.size());
+
+ glBegin(GL_LINES);
+ for (; eit < e.end()-1; ++eit)
+ {
+ glVertex3f((*eit)[0], (*eit)[1], (*eit)[2]);
+ // decrease transparency for tail section
+ if (eit > tail)
+ em[3] =
+ static_cast<GLfloat>
+ (1.0 - double(eit-tail)/(0.1*e.size()));
+ glColor4fv(em);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, em);
+ glVertex3f((*(eit+1))[0], (*(eit+1))[1], (*(eit+1))[2]);
+ }
+ glEnd();
+ }
+ }
+
+ glDisable(GL_BLEND);
+
+ glPopMatrix();
+}
+
+void RotationGLWidget::paintGL(void)
+{
+ // clear color and depth buffer
+ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
+
+ glMatrixMode(GL_MODELVIEW); // select modelview matrix
+
+ glLoadIdentity();
+ GLfloat const em[] = {0,0,0,1};
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, em);
+
+ // omega vector
+ vec3<double> rotvec =
+ vec3<double>::crossprod(vec3<double>(0,0,1), omega).normalize();
+ GLfloat rotdeg =
+ 180./M_PI * vec3<double>::angle(vec3<double>(0,0,1), omega);
+ glPushMatrix();
+ glRotatef(rotdeg, rotvec[0], rotvec[1], rotvec[2]);
+ qglColor(TQColor(white));
+ myGlArrow(7, .5f, .1f, 0.2f);
+ glPopMatrix();
+
+ // fixed axes
+ glCallList(fixedAxses);
+
+ glPushMatrix();
+
+ // set up variable part of rotation matrix for body
+ // set gl body rotation matrix from e1,e2,e3
+ const vec3<double>& e1b = e1.front();
+ const vec3<double>& e2b = e2.front();
+ const vec3<double>& e3b = e3.front();
+
+ rotmat[0] = e1b[0];
+ rotmat[1] = e1b[1];
+ rotmat[2] = e1b[2];
+ rotmat[4] = e2b[0];
+ rotmat[5] = e2b[1];
+ rotmat[6] = e2b[2];
+ rotmat[8] = e3b[0];
+ rotmat[9] = e3b[1];
+ rotmat[10] = e3b[2];
+
+ glMultMatrixf(rotmat);
+
+ glCallList(bodyAxses);
+
+ glScalef(boxSize[0]/2, boxSize[1]/2, boxSize[2]/2);
+
+ // paint box
+ glBegin(GL_QUADS);
+ // front (z)
+ qglColor(TQColor(blue));
+ glNormal3f( 0,0,1);
+ glVertex3f( 1, 1, 1);
+ glVertex3f(-1, 1, 1);
+ glVertex3f(-1, -1, 1);
+ glVertex3f( 1, -1, 1);
+ // back (-z)
+ glNormal3f( 0,0,-1);
+ glVertex3f( 1, 1, -1);
+ glVertex3f(-1, 1, -1);
+ glVertex3f(-1, -1, -1);
+ glVertex3f( 1, -1, -1);
+ // top (y)
+ qglColor(TQColor(green));
+ glNormal3f( 0,1,0);
+ glVertex3f( 1, 1, 1);
+ glVertex3f( 1, 1, -1);
+ glVertex3f(-1, 1, -1);
+ glVertex3f(-1, 1, 1);
+ // bottom (-y)
+ glNormal3f( 0,-1,0);
+ glVertex3f( 1, -1, 1);
+
+ glVertex3f( 1, -1, -1);
+ glVertex3f(-1, -1, -1);
+ glVertex3f(-1, -1, 1);
+ // left (-x)
+ qglColor(TQColor(red));
+ glNormal3f( -1,0,0);
+ glVertex3f(-1, 1, 1);
+ glVertex3f(-1, 1, -1);
+ glVertex3f(-1, -1, -1);
+ glVertex3f(-1, -1, 1);
+ // right (x)
+ glNormal3f( 1,0,0);
+ glVertex3f( 1, 1, 1);
+ glVertex3f( 1, 1, -1);
+ glVertex3f( 1, -1, -1);
+ glVertex3f( 1, -1, 1);
+ glEnd();
+
+ // traces
+ glPopMatrix();
+ draw_traces ();
+
+ glFlush();
+}
+
+void RotationGLWidget::resizeGL(int w, int h)
+{
+ // Prevent a divide by zero
+ if (h == 0) h = 1;
+
+ // set the new view port
+ glViewport(0, 0, (GLint)w, (GLint)h);
+
+ // set up projection matrix
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ // Perspective view
+ gluPerspective(40.0f, (GLdouble)w/(GLdouble)h, 1.0, 100.0f);
+
+ // Viewing transformation, position for better view
+ // Theta is polar angle 0<Theta<Pi
+ gluLookAt(
+ eyeR * sin(eyeTheta) * sin(eyePhi),
+ eyeR * sin(eyeTheta) * cos(eyePhi),
+ eyeR * cos(eyeTheta),
+ 0,0,0,
+ 0,0,1);
+}
+
+/* --------- privat methods ----------- */
+
+void RotationGLWidget::myGlArrow(
+ GLfloat total_length, GLfloat head_length,
+ GLfloat base_width, GLfloat head_width)
+{
+ GLUquadricObj* quadAx = gluNewQuadric();
+ glPushMatrix();
+ gluCylinder(quadAx, base_width, base_width,
+ total_length-head_length, 10, 1);
+ glTranslatef(0, 0, total_length-head_length);
+ gluCylinder(quadAx, head_width, 0, head_length, 10, 1);
+ glPopMatrix();
+ gluDeleteQuadric(quadAx);
+}
+
+
+//-----------------------------------------------------------------------------
+// KRotationSaver: screen saver class
+//-----------------------------------------------------------------------------
+
+KRotationSaver::KRotationSaver(WId id)
+ : KScreenSaver(id),
+ J(4,2,3), // fixed box sizes!
+ initEulerPhi(0),
+ initEulerPsi(0),
+ solver(0),
+ glArea(0),
+ timer(0),
+ m_traceLengthSeconds(traceLengthSecondsDefault),
+ m_Lz(LzDefault),
+ m_initEulerTheta(initEulerThetaDefault)
+{
+ readSettings(); // read global settings
+ initData(); // init e1,e2,e3,omega,solver
+
+ setEraseColor(black);
+ erase(); // erase area
+ glArea = new RotationGLWidget(
+ this, 0, omega, e1, e2, e3, J); // create gl widget
+ embed(glArea); // embed gl widget and resize it
+ glArea->show(); // show gl widget
+
+ timer = new TQTimer(this);
+ timer->start(deltaT, TRUE);
+ connect(timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(doTimeStep()));
+}
+
+KRotationSaver::~KRotationSaver()
+{
+ // time, rotation are automatically deleted with parent KRotationSaver
+ delete solver;
+}
+
+void KRotationSaver::initData()
+{
+ // reset coordiante system
+ vec3<double> e1t(1,0,0), e2t(0,1,0), e3t(0,0,1);
+ // rotation by phi around z = zhat axis
+ e1t.rotate(initEulerPhi*e3t);
+ e2t.rotate(initEulerPhi*e3t);
+ // rotation by theta around new x axis
+ e2t.rotate(m_initEulerTheta*e1t);
+ e3t.rotate(m_initEulerTheta*e1t);
+ // rotation by psi around new z axis
+ e1t.rotate(initEulerPsi*e3t);
+ e2t.rotate(initEulerPsi*e3t);
+ // set first vector in deque
+ e1.clear(); e1.push_front(e1t);
+ e2.clear(); e2.push_front(e2t);
+ e3.clear(); e3.push_front(e3t);
+
+ // calc L in body frame: 1. determine z-axis of fixed frame in body
+ // coordinates, undo the transformations for unit z vector of the body frame
+
+ // calc omega_body from ...
+ vec3<double> e1_body(1,0,0), e3_body(0,0,1);
+ // rotation by -psi along z axis
+ e1_body.rotate(-initEulerPsi*e3_body);
+ // rotation by -theta along new x axis
+ e3_body.rotate(-m_initEulerTheta*e1_body);
+ // omega_body = L_body * J_body^(-1)
+ vec3<double> omega_body = e3_body * m_Lz;
+ omega_body /= J;
+
+ // assemble initial y for solver
+ std::valarray<double> y(12);
+ y[std::slice(0,3,1)] = omega_body;
+ // 3 basis vectors of body system in fixed coordinates
+ y[std::slice(3,3,1)] = e1t;
+ y[std::slice(6,3,1)] = e2t;
+ y[std::slice(9,3,1)] = e3t;
+
+ // initial rotation vector
+ omega
+ = omega_body[0]*e1t
+ + omega_body[1]*e2t
+ + omega_body[2]*e3t;
+
+ if (solver!=0) delete solver;
+ // init solver
+ solver = new EulerOdeSolver(
+ 0.0, // t
+ 0.01, // first dt step size estimation
+ J[0], J[1], J[2], // A,B,C
+ y, // omega_body,e1,e2,e3
+ 1e-5); // eps
+}
+
+void KRotationSaver::readSettings()
+{
+ // read configuration settings from config file
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup("Settings");
+
+ // internal saver parameters are set to stored values or left at their
+ // default values if stored values are out of range
+ setTraceFlag(0, config->readBoolEntry("x trace", traceFlagDefault[0]));
+ setTraceFlag(1, config->readBoolEntry("y trace", traceFlagDefault[1]));
+ setTraceFlag(2, config->readBoolEntry("z trace", traceFlagDefault[2]));
+ setRandomTraces(config->readBoolEntry("random traces", randomTracesDefault));
+ setTraceLengthSeconds(
+ config->readDoubleNumEntry("length", traceLengthSecondsDefault));
+ setLz(
+ config->readDoubleNumEntry("Lz", LzDefault));
+ setInitEulerTheta(
+ config->readDoubleNumEntry("theta", initEulerThetaDefault));
+}
+
+void KRotationSaver::setTraceLengthSeconds(const double& t)
+{
+ if (t >= traceLengthSecondsLimitLower
+ && t <= traceLengthSecondsLimitUpper)
+ {
+ m_traceLengthSeconds = t;
+ }
+}
+
+const double KRotationSaver::traceLengthSecondsLimitLower = 0.0;
+const double KRotationSaver::traceLengthSecondsLimitUpper = 99.0;
+const double KRotationSaver::traceLengthSecondsDefault = 3.0;
+
+const bool KRotationSaver::traceFlagDefault[3] = {false, false, true};
+
+void KRotationSaver::setLz(const double& Lz)
+{
+ if (Lz >= LzLimitLower && Lz <= LzLimitUpper)
+ {
+ m_Lz = Lz;
+ }
+}
+
+const double KRotationSaver::LzLimitLower = 0.0;
+const double KRotationSaver::LzLimitUpper = 500.0;
+const double KRotationSaver::LzDefault = 10.0;
+
+void KRotationSaver::setInitEulerTheta(const double& theta)
+{
+ if (theta >= initEulerThetaLimitLower
+ && theta <= initEulerThetaLimitUpper)
+ {
+ m_initEulerTheta = theta;
+ }
+}
+
+const double KRotationSaver::initEulerThetaLimitLower = 0.0;
+const double KRotationSaver::initEulerThetaLimitUpper = 180.0;
+const double KRotationSaver::initEulerThetaDefault = 0.03;
+
+// public slots
+
+void KRotationSaver::doTimeStep()
+{
+ // integrate a step ahead
+ solver->integrate(0.001*deltaT);
+
+ // read new y
+ std::valarray<double> y = solver->Y();
+
+ std::deque<vec3<double> >::size_type
+ max_vec_length =
+ static_cast<std::deque<vec3<double> >::size_type>
+ ( m_traceLengthSeconds/(0.001*deltaT) );
+
+ for (int j=0; j<3; ++j)
+ {
+ std::deque<vec3<double> >& e =
+ j==0 ? e1 :
+ j==1 ? e2 : e3;
+
+ // read out new body coordinate system
+ if (m_traceFlag[j] == true
+ && max_vec_length > 0)
+ {
+ e.push_front(y[std::slice(3*j+3, 3, 1)]);
+ while (e.size() > max_vec_length)
+ {
+ e.pop_back();
+ }
+ }
+ else
+ {
+ // only set the 1. element
+ e.front() = y[std::slice(3*j+3, 3, 1)];
+ // and delete all other emements
+ if (e.size() > 1)
+ e.resize(1);
+ }
+ }
+
+ // current rotation vector omega
+ omega = y[0]*e1.front() + y[1]*e2.front() + y[2]*e3.front();
+
+ // set new random traces every 10 seconds
+ if (m_randomTraces==true)
+ {
+ static unsigned int counter=0;
+ ++counter;
+ if (counter > unsigned(10.0/(0.001*deltaT)))
+ {
+ counter=0;
+ for (int i=0; i<3; ++i)
+ m_traceFlag[i] = rand()%2==1 ? true : false;
+ }
+ }
+
+ glArea->updateGL();
+ timer->start(deltaT, TRUE); // restart timer
+}
+
+// public slot of KRotationSaver, forward resize event to public slot of glArea
+// to allow the resizing of the gl area withing the setup dialog
+void KRotationSaver::resizeGlArea(TQResizeEvent* e)
+{
+ glArea->resize(e->size());
+}
+
+//-----------------------------------------------------------------------------
+// KRotationSetup: dialog to setup screen saver parameters
+//-----------------------------------------------------------------------------
+
+KRotationSetup::KRotationSetup(TQWidget* parent, const char* name)
+ : KRotationSetupUi(parent, name),
+ // create ssaver and give it the WinID of the preview area
+ saver(new KRotationSaver(preview->winId()))
+{
+ // the dialog should block, no other control center input should be possible
+ // until the dialog is closed
+ setModal(TRUE);
+
+ lengthEdit->setValidator(
+ new TQDoubleValidator(
+ KRotationSaver::traceLengthSecondsLimitLower,
+ KRotationSaver::traceLengthSecondsLimitUpper,
+ 3, lengthEdit));
+ LzEdit->setValidator(
+ new TQDoubleValidator(
+ KRotationSaver::LzLimitLower,
+ KRotationSaver::LzLimitUpper,
+ 3, LzEdit));
+ thetaEdit->setValidator(
+ new TQDoubleValidator(
+ KRotationSaver::initEulerThetaLimitLower,
+ KRotationSaver::initEulerThetaLimitUpper,
+ 3, thetaEdit));
+
+ // set tool tips of editable fields
+ TQToolTip::add(
+ lengthEdit,
+ i18n("Length of traces in seconds of visibility.\nValid values from %1 to %2.")
+ .arg(KRotationSaver::traceLengthSecondsLimitLower, 0, 'f', 2)
+ .arg(KRotationSaver::traceLengthSecondsLimitUpper, 0, 'f', 2));
+ TQToolTip::add(
+ LzEdit,
+ i18n("Angular momentum in z direction in arbitrary units.\nValid values from %1 to %2.")
+ .arg(KRotationSaver::LzLimitLower, 0, 'f', 2)
+ .arg(KRotationSaver::LzLimitUpper, 0, 'f', 2));
+ TQToolTip::add(
+ thetaEdit,
+ i18n("Gravitational constant in arbitrary units.\nValid values from %1 to %2.")
+ .arg(KRotationSaver::initEulerThetaLimitLower, 0, 'f', 2)
+ .arg(KRotationSaver::initEulerThetaLimitUpper, 0, 'f', 2));
+
+ // init preview area
+ preview->setBackgroundColor(black);
+ preview->show(); // otherwise saver does not get correct size
+
+ // read settings from saver and update GUI elements with these values, saver
+ // has read settings in its constructor
+
+ // set editable fields with stored values as defaults
+ xTrace->setChecked(saver->traceFlag(0));
+ yTrace->setChecked(saver->traceFlag(1));
+ zTrace->setChecked(saver->traceFlag(2));
+ randTraces->setChecked(saver->randomTraces());
+ TQString text;
+ text.setNum(saver->traceLengthSeconds());
+ lengthEdit->validateAndSet(text,0,0,0);
+ text.setNum(saver->Lz());
+ LzEdit->validateAndSet(text,0,0,0);
+ text.setNum(saver->initEulerTheta());
+ thetaEdit->validateAndSet(text,0,0,0);
+
+ // if the preview area is resized it emmits the resized() event which is
+ // caught by the saver. The embedded GlArea is resized to fit into the
+ // preview area.
+ connect(preview, TQT_SIGNAL(resized(TQResizeEvent*)),
+ saver, TQT_SLOT(resizeGlArea(TQResizeEvent*)));
+}
+
+KRotationSetup::~KRotationSetup()
+{
+ delete saver;
+}
+
+// Ok pressed - save settings and exit
+void KRotationSetup::okButtonClickedSlot(void)
+{
+ TDEConfig* config = TDEGlobal::config();
+ config->setGroup("Settings");
+ config->writeEntry("x trace", saver->traceFlag(0));
+ config->writeEntry("y trace", saver->traceFlag(1));
+ config->writeEntry("z trace", saver->traceFlag(2));
+ config->writeEntry("random traces", saver->randomTraces());
+ config->writeEntry("length", saver->traceLengthSeconds());
+ config->writeEntry("Lz", saver->Lz());
+ config->writeEntry("theta", saver->initEulerTheta());
+ config->sync();
+ accept();
+}
+
+void KRotationSetup::aboutButtonClickedSlot(void)
+{
+ KMessageBox::about(this, i18n("\
+<h3>KRotation Screen Saver for KDE</h3>\
+<p>Simulation of a force free rotating asymmetric body</p>\
+<p>Copyright (c) Georg&nbsp;Drenkhahn 2004</p>\
+<p><tt>georg-d@users.sourceforge.net</tt></p>"));
+}
+
+void KRotationSetup::xTraceToggled(bool state)
+{
+ saver->setTraceFlag(0, state);
+}
+void KRotationSetup::yTraceToggled(bool state)
+{
+ saver->setTraceFlag(1, state);
+}
+void KRotationSetup::zTraceToggled(bool state)
+{
+ saver->setTraceFlag(2, state);
+}
+void KRotationSetup::randomTracesToggled(bool state)
+{
+ saver->setRandomTraces(state);
+ if (state==false)
+ {
+ // restore settings from gui if random traces are turned off
+ saver->setTraceFlag(0, xTrace->isChecked());
+ saver->setTraceFlag(1, yTrace->isChecked());
+ saver->setTraceFlag(2, zTrace->isChecked());
+ }
+}
+void KRotationSetup::lengthEnteredSlot(const TQString& s)
+{
+ saver->setTraceLengthSeconds(s.toDouble());
+}
+void KRotationSetup::LzEnteredSlot(const TQString& s)
+{
+ saver->setLz(s.toDouble());
+ if (saver!=0) saver->initData();
+}
+void KRotationSetup::thetaEnteredSlot(const TQString& s)
+{
+ saver->setInitEulerTheta(s.toDouble());
+ if (saver!=0) saver->initData();
+}
diff --git a/tdescreensaver/kdesavers/rotation.h b/tdescreensaver/kdesavers/rotation.h
new file mode 100644
index 00000000..c4dde402
--- /dev/null
+++ b/tdescreensaver/kdesavers/rotation.h
@@ -0,0 +1,328 @@
+//============================================================================
+//
+// KRotation screen saver for KDE
+// Copyright (C) 2004 Georg Drenkhahn
+// $Id$
+//
+//============================================================================
+
+#ifndef __ROTATION_H__
+#define __ROTATION_H__
+
+#include <math.h>
+// STL headers
+#include <valarray>
+// TQt headers
+#include <tqwidget.h>
+#include <tqtimer.h>
+#include <tqgl.h>
+// GL headers
+#include <GL/glu.h>
+#include <GL/gl.h>
+// KDE headers
+#include <tdescreensaver.h>
+
+#include "vec3.h"
+#include "rkodesolver.h"
+
+// KRotationSetupUi
+#include "rotationcfg.h"
+
+//--------------------------------------------------------------------
+
+/** @brief ODE solver for the Euler equations.
+ *
+ * Class implements RkOdeSolver<double> to solve the Euler equations of motion
+ * tor the rotating object. */
+class EulerOdeSolver : public RkOdeSolver<double>
+{
+ public:
+ /** @brief Constructor for the ODE solver for the Euler equations.
+ * @param t Time in seconds, integration variable
+ * @param dt Initial time increment in seconds for integration, auto adjusted
+ * later to guarantee precision
+ * @param _A Moment of inertia along 1. figure axis
+ * @param _B Moment of inertia along 2. figure axis
+ * @param _C Moment of inertia along 3. figure axis
+ * @param _y Vector of 12 elements containing the initial rotation vector
+ * omega (elements 0 to 2), and the initial rotating systems coordinate
+ * vectors e1, e2, e3 (elements 3 to 5, 6 to 8, and 9 to 11).
+ * @param eps Relative precision per integration step, see
+ * RkOdeSolver::RkOdeSolver(). */
+ EulerOdeSolver(
+ const double &t_,
+ const double &dt_,
+ const double &A_,
+ const double &B_,
+ const double &C_,
+ std::valarray<double> &y_,
+ const double &eps);
+
+ protected:
+ /** @brief ODE function for the Euler equation system
+ * @param x time in seconds
+ * @param y Vector of 12 elements containing the rotation vector omega
+ * (elements 0 to 2), and the rotating systems coordinate vectors e1, e2, e3
+ * (elements 3 to 5, 6 to 8, and 9 to 11).
+ * @return derivation dy/dx */
+ std::valarray<double>
+ f(const double &x, const std::valarray<double> &y) const;
+
+ private:
+ /** Moments of inertia along the three figure axes */
+ double A, B, C;
+};
+
+
+//--------------------------------------------------------------------
+
+/** @brief GL widget class for the KRotation screen saver
+ *
+ * Class implements TQGLWidget to display the KRotation screen saver. */
+class RotationGLWidget : public TQGLWidget
+{
+ Q_OBJECT
+
+
+ public:
+ /** @brief Constructor of KRotation's GL widget
+ * @param parent parent widget, passed to TQGLWidget's constructor
+ * @param name name of widget, passed to TQGLWidget's constructor
+ * @param omega current rotation vector
+ * @param e1 x trace data
+ * @param e2 y trace data
+ * @param e3 z trace data
+ * @param J 3 vector with momenta of inertia with respect to the 3 figure
+ * axes. */
+ RotationGLWidget(TQWidget* parent, const char* name,
+ const vec3<double>& omega,
+ const std::deque<vec3<double> >& e1,
+ const std::deque<vec3<double> >& e2,
+ const std::deque<vec3<double> >& e3,
+ const vec3<double>& J);
+
+ protected:
+ /** Called if scenery (GL view) must be updated */
+ virtual void paintGL();
+ /** Called if gl widget was resized. Method makes adjustments for new
+ * perspective */
+ virtual void resizeGL(int w, int h);
+ /** Setup the GL enviroment */
+ virtual void initializeGL();
+
+ private:
+ /** @brief Draw 3D arrow
+ * @param total_length total length of arrow
+ * @param head_length length of arrow head (cone)
+ * @param base_width width of arrow base
+ * @param head_width width of arrow head (cone)
+ *
+ * The arrow is drawn from the coordinates zero point along th z direction.
+ * The cone's tip is located at (0,0,@a total_length). */
+ void myGlArrow(GLfloat total_length, GLfloat head_length,
+ GLfloat base_width, GLfloat head_width);
+ /** Draw the traces in the GL area */
+ void draw_traces (void);
+
+ private: // Private attributes
+ /** Eye position distance from coordinate zero point */
+ GLfloat eyeR;
+ /** Eye position theta angle from z axis */
+ GLfloat eyeTheta;
+ /** Eye position phi angle (longitude) */
+ GLfloat eyePhi;
+ /** Box size */
+ vec3<double> boxSize;
+ /** GL object list of fixed coordinate systems axses */
+ GLuint fixedAxses;
+ /** GL object list of rotating coordinate systems axses */
+ GLuint bodyAxses;
+ /** Light position distance from coordinate zero point */
+ GLfloat lightR;
+ /** Light position theta angle from z axis */
+ GLfloat lightTheta;
+ /** Light position phi angle (longitude) */
+ GLfloat lightPhi;
+
+ /** stores position where the mouse button was pressed down */
+ TQPoint mouse_press_pos;
+
+ /** Length of the rotating coordinate system axses */
+ GLfloat bodyAxsesLength;
+ /** Length of the fixed coordinate system axses */
+ GLfloat fixedAxsesLength;
+
+ /** The openGL rotation matrix for the box. */
+ GLfloat rotmat[16];
+
+ /** reference to current rotation vector */
+ const vec3<double>& omega;
+ /** reference to x trace values */
+ const std::deque<vec3<double> >& e1;
+ /** reference to y trace values */
+ const std::deque<vec3<double> >& e2;
+ /** reference to z trace values */
+ const std::deque<vec3<double> >& e3;
+};
+
+//--------------------------------------------------------------------
+
+/** @brief Main class of the KRotation screen saver
+ *
+ * This class implements KScreenSaver for the KRotation screen saver. */
+class KRotationSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+
+ public:
+ /** @brief Constructor of the KRotation screen saver object
+ * @param drawable Id of the window in which the screen saver is drawed
+ *
+ * Initial settings are read from disk, the GL widget is set up and displayed
+ * and the eq. of motion solver is started. */
+ KRotationSaver(WId drawable);
+ /** @brief Destructor of the KPendulum screen saver object
+ *
+ * Only KPendulumSaver::solver is destoyed. */
+ ~KRotationSaver();
+ /** read the saved settings from disk */
+ void readSettings();
+ /** init physical quantities and set up the ode solver */
+ void initData();
+
+ /** Returns length of traces in seconds of visibility, parameter from setup
+ * dialog */
+ inline double traceLengthSeconds(void) const {return m_traceLengthSeconds;}
+ /** Sets the length of traces in seconds of visibility. */
+ void setTraceLengthSeconds(const double& t);
+ /** Lower argument limit for setTraceLengthSeconds() */
+ static const double traceLengthSecondsLimitLower;
+ /** Upper argument limit for setTraceLengthSeconds() */
+ static const double traceLengthSecondsLimitUpper;
+ /** Default value of KRotationSaver::m_traceLengthSeconds */
+ static const double traceLengthSecondsDefault;
+
+ /** Flags indicating if the traces for x,y,z are shown. Only relevant if
+ * ::randomTraces is not set to true. Parameter from setup dialog */
+ inline bool traceFlag(unsigned int n) const {return m_traceFlag[n];}
+ /** (Un)Sets the x,y,z traces flags. */
+ inline void setTraceFlag(unsigned int n, const bool& flag)
+ {m_traceFlag[n] = flag;}
+ /** Default values for KRotationSaver::m_traceFlag */
+ static const bool traceFlagDefault[3];
+
+ /** If flag is set to true the traces will be (de)activated randomly all 10
+ * seconds. Parameter from setup dialog */
+ inline bool randomTraces(void) const {return m_randomTraces;}
+ /** (Un)Sets the random trace flag. */
+ inline void setRandomTraces(const bool& flag) {m_randomTraces = flag;}
+ /** Default value for KRotationSaver::m_randomTraces */
+ static const bool randomTracesDefault = true;
+
+ /** Returns the angular momentum. */
+ inline double Lz(void) const {return m_Lz;}
+ /** Sets the angular momentum. */
+ void setLz(const double& Lz);
+ /** Lower argument limit for setLz() */
+ static const double LzLimitLower;
+ /** Upper argument limit for setLz() */
+ static const double LzLimitUpper;
+ /** Default value for KRotationSaver::m_Lz */
+ static const double LzDefault;
+
+ /** Returns initial eulerian angle theta of the top body at t=0 sec. */
+ inline double initEulerTheta(void) const {return m_initEulerTheta;}
+ /** Set the initial eulerian angle theta of the top body at t=0 sec. */
+ void setInitEulerTheta(const double& theta);
+ /** Lower argument limit for setInitEulerTheta() */
+ static const double initEulerThetaLimitLower;
+ /** Upper argument limit for setInitEulerTheta() */
+ static const double initEulerThetaLimitUpper;
+ /** Default value for KRotationSaver::m_initEulerTheta */
+ static const double initEulerThetaDefault;
+
+ public slots:
+ /** slot is called if integration should proceed by ::deltaT */
+ void doTimeStep();
+ /** slot is called if setup dialog changes in size and the GL area should be
+ * adjusted */
+ void resizeGlArea(TQResizeEvent* e);
+
+ private:
+ /** Momentum of inertia along figure axes */
+ vec3<double> J;
+ /** Initial eulerian angles phi of the top body at t=0s */
+ double initEulerPhi;
+ /** Initial eulerian angles psi of the top body at t=0s */
+ double initEulerPsi;
+
+ /** The ode solver which is used to integrate the equations of motion */
+ EulerOdeSolver* solver;
+ /** Gl widget of simulation */
+ RotationGLWidget* glArea;
+ /** Timer for the real time integration of the Euler equations */
+ TQTimer* timer;
+
+ /** current rotation vector */
+ vec3<double> omega;
+ /** deque of unit vectors of e1 figure axes in fixed frame coordinates */
+ std::deque<vec3<double> > e1;
+ /** deque of unit vectors of e2 figure axes in fixed frame coordinates */
+ std::deque<vec3<double> > e2;
+ /** deque of unit vectors of e3 figure axes in fixed frame coordinates */
+ std::deque<vec3<double> > e3;
+
+ /** Time step size for the integration in milliseconds. Used in
+ * ::KRotationSaver and ::RotationGLWidget. */
+ static const unsigned int deltaT = 20;
+
+ /** Length of traces in seconds of visibility, parameter from setup dialog */
+ double m_traceLengthSeconds;
+ /** Flags indicating if the traces for x,y,z are shown. Only relevant if
+ * ::randomTraces is not set to true. Parameter from setup dialog */
+ bool m_traceFlag[3];
+ /** If flag is set to true the traces will be (de)activated randomly all 10
+ * seconds. Parameter from setup dialog */
+ bool m_randomTraces;
+ /** Angular momentum. This is a constant of motion and points always into
+ * positive z direction. Parameter from setup dialog */
+ double m_Lz;
+ /** Initial eulerian angles theta of the top body at t=0 sec. Parameter from
+ * setup dialog */
+ double m_initEulerTheta;
+};
+
+//--------------------------------------------------------------------
+
+/** @brief KRotation screen saver setup dialog.
+ *
+ * This class handles the KRotation screen saver setup dialog. */
+class KRotationSetup : public KRotationSetupUi
+{
+ Q_OBJECT
+
+
+ public:
+ KRotationSetup(TQWidget* parent = NULL, const char* name = NULL);
+ ~KRotationSetup();
+
+ public slots:
+ /// slot for the OK Button: save settings and exit
+ void okButtonClickedSlot(void);
+ /// slot for the About Button: show the About dialog
+ void aboutButtonClickedSlot(void);
+ void randomTracesToggled(bool state);
+ void xTraceToggled(bool state);
+ void yTraceToggled(bool state);
+ void zTraceToggled(bool state);
+ void lengthEnteredSlot(const TQString& s);
+ void LzEnteredSlot(const TQString& s);
+ void thetaEnteredSlot(const TQString& s);
+
+ private:
+ /// the screen saver widget which is displayed in the preview area
+ KRotationSaver* saver;
+};
+
+#endif
diff --git a/tdescreensaver/kdesavers/rotationcfg.ui b/tdescreensaver/kdesavers/rotationcfg.ui
new file mode 100644
index 00000000..7bfca1aa
--- /dev/null
+++ b/tdescreensaver/kdesavers/rotationcfg.ui
@@ -0,0 +1,488 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>KRotationSetupUi</class>
+<widget class="TQDialog">
+ <property name="name">
+ <cstring>KRotationSetupUi</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>401</width>
+ <height>265</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>3</hsizetype>
+ <vsizetype>3</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>1200</width>
+ <height>900</height>
+ </size>
+ </property>
+ <property name="baseSize">
+ <size>
+ <width>400</width>
+ <height>250</height>
+ </size>
+ </property>
+ <property name="caption">
+ <string>KRotation Setup</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="resizeMode">
+ <enum>Minimum</enum>
+ </property>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout17</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout6</cstring>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQButtonGroup">
+ <property name="name">
+ <cstring>buttonGroup1</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>Traces</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>layout5</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQCheckBox" row="0" column="0">
+ <property name="name">
+ <cstring>xTrace</cstring>
+ </property>
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="text">
+ <string>x</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="1" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>randTraces</cstring>
+ </property>
+ <property name="text">
+ <string>Random</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="0" column="1">
+ <property name="name">
+ <cstring>yTrace</cstring>
+ </property>
+ <property name="text">
+ <string>y</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="0" column="2">
+ <property name="name">
+ <cstring>zTrace</cstring>
+ </property>
+ <property name="text">
+ <string>z</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Length:</string>
+ </property>
+ </widget>
+ <widget class="TQLineEdit" row="1" column="1">
+ <property name="name">
+ <cstring>lengthEdit</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>40</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="font">
+ <font>
+ <family>Helvetica</family>
+ <pointsize>11</pointsize>
+ </font>
+ </property>
+ <property name="maxLength">
+ <number>2</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout10</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQLineEdit" row="0" column="1">
+ <property name="name">
+ <cstring>LzEdit</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>50</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="maxLength">
+ <number>5</number>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="1" column="0">
+ <property name="name">
+ <cstring>textLabel3</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>1</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Theta:</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>textLabel2</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Lz:</string>
+ </property>
+ </widget>
+ <widget class="TQLineEdit" row="1" column="1">
+ <property name="name">
+ <cstring>thetaEdit</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>50</width>
+ <height>32767</height>
+ </size>
+ </property>
+ <property name="maxLength">
+ <number>5</number>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer1</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>31</width>
+ <height>51</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
+ <widget class="SsPreviewArea">
+ <property name="name">
+ <cstring>preview</cstring>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>200</width>
+ <height>150</height>
+ </size>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout9</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>51</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>layout4</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>OkButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>CancelButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>AboutButton</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;About</string>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ <spacer>
+ <property name="name">
+ <cstring>spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>61</width>
+ <height>31</height>
+ </size>
+ </property>
+ </spacer>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<customwidgets>
+ <customwidget>
+ <class>SsPreviewArea</class>
+ <header location="global">sspreviewarea.h</header>
+ <sizehint>
+ <width>-1</width>
+ <height>1</height>
+ </sizehint>
+ <container>0</container>
+ <sizepolicy>
+ <hordata>5</hordata>
+ <verdata>5</verdata>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ <pixmap>image0</pixmap>
+ </customwidget>
+</customwidgets>
+<images>
+ <image name="image0">
+ <data format="XPM.GZ" length="4462">789c9d97c76e24490e86effd1442f3d65870d2451a0ce6206f5adeb4cc620f8c34f2553225b5a4c1befb46927fe6a1d4c0ccac4287fa8a0c26834193f5dbb785b3fd9d856fbf7d799ec9ecba5ea8afe469e15bf3727ffffeeffffcf1e797af49b2d0ffc7d142f2f55f5fbe1ecc16ea85dde9a4ed81290045faa77ca49cf4ab67ba1e3953969173651ab9d4fdf1c8a27c3872ad7c3c72d3b32c2a67c3f3444636fbef23eb7e590267e68fcc4656395d8dacf6d938ef97eaef289781cddebdb2846fccff44b989ba58e3411f3dc75158e6df1d3889539517ca49bf54fe43398d1dec4f46567f685fd9c539f43fc025f80c1c3ce8d93f28e77185f8bf0c6cfae4c0b5f9c3c6e5c0542a4b5876fe13708df39d2bd7716372aa8c93c4e4723bb2f977aadc26ceec4bdb7310e6b0bfab9c2445ecd49f1370694cebca65d260ffa6711a41aef14d24e94cee6be3348e0ae5e9c8765f07ca3e8db17f0f9c825794eb3489351fe9bb7217e4969f29388bd51ee9fda5715a19730696b852fea95c6471647ca95cf64bcf43e0cef4657b647bfe6acf213d6bb32f9a9f5992b5a64f9a8f990b6cf9ecc15d6cf9acf6b2da55a8a75cb973dee4b2d1b38b5c05de02434e87e01aacfb351df5bebddea74b5c67f9c795711ea15e357e2ecde358fb87efc0a867df8cac728a074e62e527706afb59f3cf6583be5c28bb3c35f693812d1fbdc6dbe57966fec932d899ffa4f7e38adca17e34beaeca4b9c271a18f1d5fc739257b0d70d9c68be7bed7fcee7827ab91cd8e4740cf6b19d4ffb87ab07b9bf516e72d4a3ac821b9cef6e60d84f47367ded2fae1d9f7704f6163f79000ffde27660f387ed3c5dbf54dfeebb0bf6acbe6b706bfa5ef32f8f8b18f5bf0f463f20edb77956a4e68fbc80b3c4facd163847be6bfde72ec86dbeac82715fbc0286be683cf3bc081d44f7df80d344fb0b6b7de64581fb916765297263d6fccd9b7ee97e566e8b06cfdb1f59cf2bda2f8bbc2c11df0c5c41aefdb328ca22b1feb0012eedbce24736f91b18fb796d64eb87cb60817dcdafb07d906bfd14d22f659d8785ef97b2f6d7b2df6ef1d6fb2babaac6f92e8c25b27ecc1f239b7f3a5fca5a8678ea7c2d9bc0e6ef1238b3fca2c7814d5f4cbf9334b5f833384bed3c7a5f5514f4adbe2ec07962e7590457f06f6f649b977afe2a16f42f5e070bfc591e18f7a5f1a812a9e0df39d827da4fbd8c6ccfd7785569bf945f953371a9d5a3de67950bfa2d75c63eb2fb15bdcfaaf011e6c7263846bf8f4636f91618f3c7d3c0f047fb69550efab2074e12bd6fd27957553ec33c5b043bcc7f9d0795f818fdb501a3df8ae673e507ff69021eea37063bc45ffb73550736ff36c0a84f3e0317a86f8b5f139e6ffe1f821de6d9127898ff3be00a7c3ab2cd03e3d697560ff40016e47b3bb2e96bbd559d8f32bbff4b7065f193042c98873acf240af6adbf3c83c5f2954bb0c7bcd77c107d81d2fdebc63e33ff640aaecc9e1c8151df5c803dfaadc64b52dfa03ed64636ffb4ff4b2867f453ede7227586fcd3f9264ded91fffafe236d5da37fe83c91ceb7b9e5b7f6731ff92ed7f747d6fbf7e185cf58347e3e6932e47b3430fa893edf87d795c2fc3f003b67f5f902cec17abfde0dfa3c053b3c5ffb832fc2eb8fddcf233887fc195c801f46b6f3cdc02558fba72f7d2d1a7f7e321ee58fe0cad86bbff24dd3e2fe74fef836b0c6eb60d62fa6bf5e07b3419f853dd7dc70fb8bd5f1255fd90ed30f9f3c5ff30ddff21ddff384a7fcc08ffcc4cf61cdf8855ff9e79c7e1db4dff89d3f7891977899577895d7789d377893b7f83b6fcfe937bc13b477798ff7f9800ff928ac633ee11f7cca6761d7f99c7e1b3cb908da11c7413be1943376e153cc39175c72f549ff9e17c31744429e6a6aa8a58e2ee98aaee9866e7f617fc24b7417a4f734a1293dd0233dd133cd8285177aa5f9f3b63ca5377aa78f607b919668995682e62aadd17ab0b1419b9ff41f682b48bed336edd02eed05ed7d5ea3033a0cdf1ed1f127fd273ae123fa41a774a6b685cee982228a837e42e927fd47caf8985c38651eb40b2ac38e4a5842658a97fab33fd248cb87d2c9a55cc9b5dcc82d1fc99ddccb44a6f230af2f8ff224cf417f262ff22a3fe54ddee543166549966545567f617f4dd66523dc6b2c9bb225df655b7682f692ecca9eeccfe97772c09b722847722c27c1f3eb70f66bf9116c9fca999ccbc59cfe25bf4a143a5ef8992561324a78bd92522acf9ebc78efe7cf7b153276db37bef59dbff457fedadff85b7f27abfede4ffcd4cf9ff76faeff4fffefeff8c7f5fedfdfbffc0fa355c495</data>
+ </image>
+</images>
+<connections>
+ <connection>
+ <sender>OkButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KRotationSetupUi</receiver>
+ <slot>okButtonClickedSlot()</slot>
+ </connection>
+ <connection>
+ <sender>CancelButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KRotationSetupUi</receiver>
+ <slot>close()</slot>
+ </connection>
+ <connection>
+ <sender>AboutButton</sender>
+ <signal>clicked()</signal>
+ <receiver>KRotationSetupUi</receiver>
+ <slot>aboutButtonClickedSlot()</slot>
+ </connection>
+ <connection>
+ <sender>randTraces</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>xTrace</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>xTrace</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>KRotationSetupUi</receiver>
+ <slot>xTraceToggled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>randTraces</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>yTrace</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>randTraces</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>zTrace</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>randTraces</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>KRotationSetupUi</receiver>
+ <slot>randomTracesToggled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>yTrace</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>KRotationSetupUi</receiver>
+ <slot>yTraceToggled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>zTrace</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>KRotationSetupUi</receiver>
+ <slot>zTraceToggled(bool)</slot>
+ </connection>
+ <connection>
+ <sender>lengthEdit</sender>
+ <signal>textChanged(const TQString&amp;)</signal>
+ <receiver>KRotationSetupUi</receiver>
+ <slot>lengthEnteredSlot(const TQString&amp;)</slot>
+ </connection>
+ <connection>
+ <sender>LzEdit</sender>
+ <signal>textChanged(const TQString&amp;)</signal>
+ <receiver>KRotationSetupUi</receiver>
+ <slot>LzEnteredSlot(const TQString&amp;)</slot>
+ </connection>
+ <connection>
+ <sender>thetaEdit</sender>
+ <signal>textChanged(const TQString&amp;)</signal>
+ <receiver>KRotationSetupUi</receiver>
+ <slot>thetaEnteredSlot(const TQString&amp;)</slot>
+ </connection>
+</connections>
+<Q_SLOTS>
+ <slot>okButtonClickedSlot()</slot>
+ <slot>aboutButtonClickedSlot()</slot>
+ <slot>randomTracesToggled(bool)</slot>
+ <slot>xTraceToggled(bool)</slot>
+ <slot>yTraceToggled(bool)</slot>
+ <slot>zTraceToggled(bool)</slot>
+ <slot>lengthEnteredSlot(const TQString&amp;)</slot>
+ <slot>LzEnteredSlot(const TQString&amp;)</slot>
+ <slot>thetaEnteredSlot(const TQString&amp;)</slot>
+</Q_SLOTS>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>sspreviewarea.h</includehint>
+</includehints>
+</UI>
diff --git a/tdescreensaver/kdesavers/science.cpp b/tdescreensaver/kdesavers/science.cpp
new file mode 100644
index 00000000..1eea3262
--- /dev/null
+++ b/tdescreensaver/kdesavers/science.cpp
@@ -0,0 +1,1151 @@
+//-----------------------------------------------------------------------------
+//
+// kscience - screen saver for KDE
+//
+// Copyright (c) Rene Beutler 1998
+//
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include <sys/types.h>
+#include <time.h>
+
+#include <tqpainter.h>
+#include <tqpixmap.h>
+#include <tqlabel.h>
+#include <tqlistbox.h>
+#include <tqcheckbox.h>
+#include <tqslider.h>
+#include <tqlayout.h>
+
+#include <kapplication.h>
+#include <kglobal.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kstandarddirs.h>
+#include <krandomsequence.h>
+
+#include "science.h"
+#include "science.moc"
+
+#if defined Q_WS_X11 && !defined K_WS_TQTONLY
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#endif
+
+#define SCI_DEFAULT_MODE 0
+#define SCI_DEFAULT_MOVEX 6
+#define SCI_DEFAULT_MOVEY 8
+#define SCI_DEFAULT_SIZE 15
+#define SCI_DEFAULT_INTENSITY 4
+#define SCI_DEFAULT_SPEED 70
+#define SCI_DEFAULT_INVERSE false
+#define SCI_DEFAULT_GRAVITY false
+#define SCI_DEFAULT_HIDE false
+#define SCI_MAX_SPEED 100
+#define SCI_MAX_MOVE 20
+
+#undef Below
+
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kscience.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "Science Screen Saver" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new KScienceSaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new KScienceSetup();
+ }
+}
+
+static struct {
+ TQString name;
+ bool inverseEnable;
+ } modeInfo[MAX_MODES];
+
+enum { MODE_WHIRL=0, MODE_CURVATURE, MODE_SPHERE, MODE_WAVE, MODE_EXPONENTIAL, MODE_CONTRACTION };
+
+void initModeInfo()
+{
+ modeInfo[MODE_WHIRL].name = i18n( "Whirl" );
+ modeInfo[MODE_WHIRL].inverseEnable = true;
+
+ modeInfo[MODE_SPHERE].name = i18n( "Sphere" );
+ modeInfo[MODE_SPHERE].inverseEnable = true;
+
+ modeInfo[MODE_EXPONENTIAL].name = i18n( "Exponential" );
+ modeInfo[MODE_EXPONENTIAL].inverseEnable = false;
+
+ modeInfo[MODE_CONTRACTION].name = i18n( "Contraction" );
+ modeInfo[MODE_CONTRACTION].inverseEnable = false;
+
+ modeInfo[MODE_WAVE].name = i18n( "Wave" );
+ modeInfo[MODE_WAVE].inverseEnable = false;
+
+ modeInfo[MODE_CURVATURE].name = i18n( "Curvature" );
+ modeInfo[MODE_CURVATURE].inverseEnable = true;
+}
+
+//-----------------------------------------------------------------------------
+// KPreviewWidget
+//
+
+KPreviewWidget::KPreviewWidget( TQWidget *parent ) :
+ TQWidget ( parent ) { }
+
+void KPreviewWidget::paintEvent( TQPaintEvent *event )
+{
+ if( saver != 0 )
+ saver->do_refresh( event->rect() );
+}
+
+void KPreviewWidget::notifySaver( KScienceSaver *s )
+{
+ saver = s;
+}
+
+//-----------------------------------------------------------------------------
+// Screen Saver
+//
+
+struct KScienceData
+{
+ T32bit **offset;
+ XImage *buffer;
+ XImage *xRootWin;
+ GC gc;
+};
+
+KScienceSaver::KScienceSaver( WId id, bool s, bool gP )
+ : KScreenSaver( id )
+{
+ d = new KScienceData;
+ d->gc = XCreateGC(tqt_xdisplay(), id, 0, 0);
+ d->xRootWin = 0;
+ d->buffer = 0;
+
+ moveOn = true;
+ grabPixmap = gP;
+ setup = s;
+
+ vx = vy = 0.0;
+ readSettings();
+
+ if( !grabPixmap )
+ {
+ grabRootWindow();
+ initialize();
+ do_refresh( TQRect ( 0, 0, width(), height() ) );
+ }
+
+ connect( &timer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotTimeout() ) );
+ timer.start( SCI_MAX_SPEED - speed[mode] );
+}
+
+KScienceSaver::~KScienceSaver()
+{
+ timer.stop();
+ releaseLens();
+ if ( d->xRootWin )
+ XDestroyImage( d->xRootWin );
+ XFreeGC(tqt_xdisplay(), d->gc );
+ delete d;
+}
+
+void KScienceSaver::myAssert( bool term, const char *eMsg )
+{
+ if( !term ) {
+ fprintf(stderr, "Error in KScreensaver - mode Science: %s\n", eMsg);
+ releaseLens();
+ exit(-1);
+ }
+}
+
+void KScienceSaver::initialize()
+{
+ KRandomSequence rnd;
+ initLens();
+ signed int ws = (signed int) (width() - diam);
+ signed int hs = (signed int) (height() - diam);
+
+ x = (ws > 0) ? (rnd.getDouble() * ws ) : 0.0;
+ y = (hs > 0) ? (rnd.getDouble() * hs ) : 0.0;
+
+ xcoord = (int) x;
+ ycoord = (int) y;
+
+ switch( bpp ) {
+ case 1 : applyLens = &KScienceSaver::applyLens8bpp; break;
+ case 2 : applyLens = &KScienceSaver::applyLens16bpp; break;
+ case 3 : applyLens = &KScienceSaver::applyLens24bpp; break;
+ case 4 : applyLens = &KScienceSaver::applyLens32bpp; break;
+ default: myAssert( false, "unsupported colordepth "\
+ "(only 8, 16, 24, 32 bpp supported)" );
+ }
+}
+
+void KScienceSaver::initWhirlLens()
+{
+ double dx, dy, r, phi, intens;
+ T32bit *off;
+ T32bit xo, yo;
+
+ intens = double( intensity[mode] + 1) / 5.0;
+ if( inverse[mode] )
+ intens = -intens;
+
+ for(int y = side-1; y >= 0; y--)
+ {
+ dy = y - origin;
+ off = d->offset[y] = (T32bit *) malloc(sizeof(T32bit) * side);
+ myAssert( off != 0, "too few memory" );
+ for(int x = side-1; x >= 0; x--)
+ {
+ dx = x - origin;
+ r = sqrt( dx*dx + dy*dy );
+
+ if( r < radius )
+ {
+ if ( dx == 0.0 )
+ phi = (dy > 0.0) ? M_PI_2 :-(M_PI_2);
+ else
+ phi = atan2( dy, dx );
+ phi += intens * ( radius - r ) / ( r+7.0 );
+ xo = (T32bit) ( origin + r*cos( phi ) - x );
+ yo = (T32bit) ( origin + r*sin( phi ) - y );
+ off[x] = xo*bpp + yo*imgnext;
+ }
+ else
+ if( hideBG[mode] )
+ off[x] = (border-y)*imgnext + (border-x)*bpp;
+ else
+ off[x] = 0;
+ }
+ }
+}
+
+void KScienceSaver::initSphereLens()
+{
+ double dx, dy, r, xr, yr, phi, intens;
+ T32bit *off;
+ T32bit xo, yo;
+
+ intens = 1.0 - double( intensity[mode] ) / 20.0;
+
+ if( inverse[mode] )
+ intens = -intens;
+
+ for(int y = side-1; y >= 0; y--)
+ {
+ dy = y - origin;
+ off = d->offset[y] = (T32bit *) malloc(sizeof(T32bit) * side);
+ myAssert( off != 0, "too few memory" );
+ for(int x = side-1; x >= 0; x--)
+ {
+ dx = x - origin;
+ r = sqrt( dx*dx + dy*dy );
+
+ if( r < radius )
+ {
+ xr = (double) radius*cos(asin(dy/radius));
+ yr = (double) radius*cos(asin(dx/radius));
+ phi = (xr != 0.0) ? asin(dx/xr) : 0.0;
+ xo = (T32bit) (origin + intens*2.0*phi*xr / M_PI - x);
+ phi = (yr != 0.0) ? asin(dy/yr) : 0.0;
+ yo = (T32bit) (origin + intens*2.0*phi*yr / M_PI - y);
+ off[x] = xo*bpp + yo*imgnext;
+ }
+ else
+ if( hideBG[mode] )
+ off[x] = (border-y)*imgnext + (border-x)*bpp;
+ else
+ off[x] = 0;
+ }
+ }
+}
+
+void KScienceSaver::initExponentialLens()
+{
+ double dx, dy, r, rnew, f, intens;
+ T32bit *off;
+ T32bit xo, yo;
+
+ if( mode == MODE_EXPONENTIAL )
+ intens = - (0.1 + 0.8 * double( intensity[mode] + 2) / 10.0);
+ else
+ intens = 0.9 - 0.8 * double( intensity[mode] ) / 10.0;
+
+ for(int y = side-1; y >= 0; y--)
+ {
+ dy = y - origin;
+ off = d->offset[y] = (T32bit *) malloc(sizeof(T32bit) * side);
+ myAssert( off != 0, "too few memory" );
+ for(int x = side-1; x >= 0; x--)
+ {
+ dx = x - origin;
+ r = sqrt( dx*dx + dy*dy );
+
+ if( r < radius )
+ {
+ if( r == 0.0 )
+ f = 0.0;
+ else
+ {
+ rnew = radius*(pow(r, intens) / pow(radius, intens));
+ f = double ((int)rnew % radius) / r;
+ }
+ xo = (T32bit) ( origin + f*dx - x );
+ yo = (T32bit) ( origin + f*dy - y );
+ off[x] = xo*bpp + yo*imgnext;
+ }
+ else
+ if( hideBG[mode] )
+ off[x] = (border-y)*imgnext + (border-x)*bpp;
+ else
+ off[x] = 0;
+ }
+ }
+}
+
+void KScienceSaver::initCurvatureLens()
+{
+ double dx, dy, r, f, intens;
+ T32bit *off;
+ T32bit xo, yo;
+
+ intens = (double) radius*intensity[mode] / 20.0;
+ if( inverse[mode] ) intens = -intens;
+
+ for(int y = side-1; y >= 0; y--)
+ {
+ dy = y - origin;
+ off = d->offset[y] = (T32bit *) malloc(sizeof(T32bit) * side);
+ myAssert( off != 0, "too few memory" );
+ for(int x = side-1; x >= 0; x--)
+ {
+ dx = x - origin;
+ r = sqrt( dx*dx + dy*dy );
+
+ if( r < radius )
+ {
+ if( r == 0.0 )
+ f = 0.0;
+ else
+ f = (r - intens * sin(M_PI * r/(double)radius)) / r;
+ xo = (T32bit) ( origin + f*dx - x );
+ yo = (T32bit) ( origin + f*dy - y );
+ off[x] = xo*bpp + yo*imgnext;
+ }
+ else
+ if( hideBG[mode] )
+ off[x] = (border-y)*imgnext + (border-x)*bpp;
+ else
+ off[x] = 0;
+ }
+ }
+}
+
+void KScienceSaver::initWaveLens()
+{
+ double dx, dy, r, rnew, f, intens, k;
+ T32bit *off;
+ T32bit xo, yo;
+
+ intens = (double) intensity[mode] + 1.0;
+ k = (intensity[mode] % 2) ? -12.0 : 12.0;
+
+ for(int y = side-1; y >= 0; y--)
+ {
+ dy = y - origin;
+ off = d->offset[y] = (T32bit *) malloc(sizeof(T32bit) * side);
+ myAssert( off != 0, "too few memory" );
+ for(int x = side-1; x >= 0; x--)
+ {
+ dx = x - origin;
+ r = sqrt( dx*dx + dy*dy );
+
+ if( r < radius )
+ {
+ if( r == 0.0 )
+ f = 0.0;
+ else
+ {
+ rnew = r - k * sin( M_PI * intens * r/(double)radius);
+ f = double ((int)rnew % radius) / r;
+ }
+ xo = (T32bit) ( origin + f*dx - x );
+ yo = (T32bit) ( origin + f*dy - y );
+ off[x] = xo*bpp + yo*imgnext;
+ }
+ else
+ if( hideBG[mode] )
+ off[x] = (border-y)*imgnext + (border-x)*bpp;
+ else
+ off[x] = 0;
+ }
+ }
+}
+
+void KScienceSaver::initLens()
+{
+ int min = (width() < height()) ? width() : height();
+ border = 1 + SCI_MAX_MOVE;
+
+ radius = (size[mode] * min) / 100;
+ if( radius<<1 == min ) radius--;
+ diam = radius << 1;
+ myAssert( diam < min, "assertion violated: diam < min" );
+ origin = radius + border;
+ side = origin << 1;
+
+ d->buffer = XSubImage( d->xRootWin, 0, 0, side, side );
+ myAssert( d->buffer != 0, "can't allocate pixmap" );
+
+ d->offset = (T32bit **) malloc( sizeof(T32bit *) * side );
+ myAssert( d->offset != 0, "too few memory" );
+
+ switch( mode ) {
+ case MODE_WHIRL: initWhirlLens(); break;
+ case MODE_SPHERE: initSphereLens(); break;
+ case MODE_EXPONENTIAL:
+ case MODE_CONTRACTION: initExponentialLens(); break;
+ case MODE_CURVATURE: initCurvatureLens(); break;
+ case MODE_WAVE: initWaveLens(); break;
+ default: myAssert( false, "internal error (wrong mode in initLens() )" );
+ }
+}
+
+void KScienceSaver::releaseLens()
+{
+ if( d->offset != 0 ) {
+ for(int i=0; i<side; i++)
+ if( d->offset[i] != 0 ) free( d->offset[i] );
+ free( d->offset );
+ d->offset = 0;
+ }
+ if( d->buffer != 0 ) {
+ XDestroyImage( d->buffer );
+ d->buffer = 0;
+ }
+}
+
+void KScienceSaver::setMode( int m )
+{
+ timer.stop();
+
+ releaseLens();
+ int old = mode;
+ mode = m;
+ vx = copysign( moveX[mode], vx );
+ vy = copysign( moveY[mode], vy );
+ int dm = diam;
+ initLens();
+ if( hideBG[old] ^ hideBG[m] )
+ do_refresh( TQRect( 0, 0, width(), height() ) );
+ else
+ if( diam < dm )
+ {
+ do_refresh( TQRect( (int) x+diam, (int) y, dm-diam, diam ) );
+ do_refresh( TQRect( (int) x, (int) y+diam, dm, dm-diam ) );
+ }
+
+ timer.start( SCI_MAX_SPEED - speed[mode] );
+}
+
+void KScienceSaver::setMoveX( int s )
+{
+ timer.stop();
+
+ moveX[mode] = s;
+ vx = copysign( moveX[mode], vx );
+
+ timer.start( SCI_MAX_SPEED - speed[mode] );
+}
+
+void KScienceSaver::setMoveY( int s )
+{
+ timer.stop();
+
+ moveY[mode] = s;
+ vy = copysign( moveY[mode], vy );
+
+ timer.start( SCI_MAX_SPEED - speed[mode] );
+}
+
+void KScienceSaver::setMove( bool s )
+{
+ moveOn = s;
+}
+
+void KScienceSaver::setSize( int s )
+{
+ timer.stop();
+
+ releaseLens();
+ int dm = diam;
+ size[mode] = s;
+ initLens();
+ if( diam < dm )
+ {
+ do_refresh( TQRect( (int) x+diam, (int) y, dm-diam, diam ) );
+ do_refresh( TQRect( (int) x, (int) y+diam, dm, dm-diam ) );
+ }
+
+ timer.start( SCI_MAX_SPEED - speed[mode] );
+}
+
+void KScienceSaver::setSpeed( int s )
+{
+ speed[mode] = s;
+
+ timer.changeInterval( SCI_MAX_SPEED - speed[mode] );
+}
+
+void KScienceSaver::setIntensity( int i )
+{
+ timer.stop();
+
+ releaseLens();
+ intensity[mode] = i;
+ initLens();
+
+ timer.start( SCI_MAX_SPEED - speed[mode]);
+}
+
+void KScienceSaver::setInverse( bool b )
+{
+ timer.stop();
+
+ releaseLens();
+ inverse[mode] = b;
+ initLens();
+
+ timer.start( SCI_MAX_SPEED - speed[mode]);
+}
+
+void KScienceSaver::setGravity( bool b )
+{
+ timer.stop();
+
+ releaseLens();
+ gravity[mode] = b;
+ vy = copysign( moveY[mode], vy );
+ initLens();
+
+ timer.start( SCI_MAX_SPEED - speed[mode]);
+}
+
+void KScienceSaver::setHideBG( bool b )
+{
+ timer.stop();
+
+ releaseLens();
+ hideBG[mode] = b;
+ initLens();
+ do_refresh( TQRect( 0, 0, width(), height() ) );
+
+ timer.start( SCI_MAX_SPEED - speed[mode]);
+}
+
+void KScienceSaver::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ TQString sMode;
+
+ config->setGroup( "Settings" );
+ mode = config->readNumEntry( "ModeNr", SCI_DEFAULT_MODE );
+
+ for(int i=0; i < MAX_MODES; i++)
+ {
+ sMode.setNum( i );
+ config->setGroup( "Mode" + sMode );
+ moveX[i] = config->readNumEntry( "MoveX", SCI_DEFAULT_MOVEX);
+ moveY[i] = config->readNumEntry( "MoveY", SCI_DEFAULT_MOVEY);
+ size[i] = config->readNumEntry( "Size", SCI_DEFAULT_SIZE);
+ speed[i] = config->readNumEntry( "Speed", SCI_DEFAULT_SPEED);
+ intensity[i] = config->readNumEntry( "Intensity", SCI_DEFAULT_INTENSITY);
+ inverse[i] = config->readBoolEntry( "Inverse", SCI_DEFAULT_INVERSE);
+ gravity[i] = config->readBoolEntry( "Gravity", SCI_DEFAULT_GRAVITY);
+ hideBG[i] = config->readBoolEntry( "HideBG", SCI_DEFAULT_HIDE);
+ }
+
+ vx = copysign( moveX[mode], vx );
+ vy = copysign( moveY[mode], vy );
+}
+
+void KScienceSaver::do_refresh( const TQRect & rect )
+{
+ if( grabPixmap )
+ return;
+ rect.normalize();
+
+ if( hideBG[mode] )
+ {
+ XSetWindowBackground( tqt_xdisplay(), winId(), black.pixel() );
+ XClearArea( tqt_xdisplay(), winId(), rect.left(), rect.top(),
+ rect.width(), rect.height(), false );
+ }
+ else
+ {
+ myAssert( d->xRootWin != 0, "root window not grabbed" );
+ XPutImage( tqt_xdisplay(), winId(), d->gc, d->xRootWin,
+ rect.left(), rect.top(),
+ rect.left(), rect.top(),
+ rect.width(), rect.height() );
+ }
+}
+
+void KScienceSaver::slotTimeout()
+{
+ if( grabPixmap ) {
+ if( !TQWidget::find(winId())->isActiveWindow() )
+ return;
+ grabPreviewWidget();
+ grabPixmap = false;
+ initialize();
+ if( hideBG[mode] )
+ do_refresh( TQRect ( 0, 0, width(), height() ) );
+ }
+
+ signed int oldx = xcoord, oldy = ycoord;
+
+ if( gravity[mode] ) {
+ double h = double(y+1.0) / double(height()-diam);
+ if( h > 1.0 ) h = 1.0;
+ vy = sqrt( h ) * ( (vy > 0.0) ? moveY[mode] : -moveY[mode] );
+ }
+ myAssert( abs((int)rint(vy)) <= border, "assertion violated: vy <= border" );
+
+ if( moveOn )
+ {
+ x += vx;
+ y += vy;
+ }
+
+ if( x <= 0.0 ) {
+ vx = -vx;
+ x = 0.0;
+ }
+ if( int(x) + diam >= width()) {
+ vx = -vx;
+ myAssert( width()-diam > 0, "assertion violated: width-diam > 0" );
+ x = (double) (width() - diam - 1);
+ }
+ if( y <= 0.0 ) {
+ vy = -vy;
+ y = 0.0;
+ }
+ if( int(y) + diam >= height() ) {
+ vy = -vy;
+ myAssert( height() - diam > 0, "assertion violated: height-diam > 0" );
+ y = (double) (height() - diam - 1);
+ }
+
+ xcoord = (int) x ;
+ ycoord = (int) y ;
+ signed int dx = (signed int) xcoord - oldx;
+ signed int dy = (signed int) ycoord - oldy;
+ signed int xs, ys, xd, yd, w, h;
+
+ if( dx > 0 ) {
+ w = diam+dx;
+ xd = oldx;
+ xs = border-dx;
+ if( dy > 0 ) {
+ h = diam+dy;
+ yd = oldy;
+ ys = border-dy;
+ }
+ else {
+ h = diam-dy;
+ yd = ycoord;
+ ys = border;
+ }
+ }
+ else {
+ w = diam-dx;
+ xd = xcoord;
+ xs = border;
+ if( dy > 0 ) {
+ h = diam+dy;
+ yd = oldy;
+ ys = border-dy;
+ } else {
+ h = diam-dy;
+ yd = ycoord;
+ ys = border;
+ }
+ }
+
+ if( xd + w >= width() ) w = width() - xd - 1;
+ if( yd + h >= height() ) h = height() - yd - 1;
+
+//printf("%d: (dx: %3d, dy: %3d), diam: %3d, (xc: %3d, yc: %3d), (xs: %3d, ys: %3d), (xd: %3d, yd: %3d), (w: %3d, h: %3d)\n", mode, dx, dy, diam, xcoord, ycoord, xs, ys, xd, yd, w, h);
+ myAssert( dx <= border && dy <=border, "assertion violated: dx or dy <= border");
+ myAssert( xcoord >= 0 && ycoord >= 0, "assertion violated: xcoord, ycoord >= 0 ");
+ myAssert( xd+w < width(), "assertion violated: xd+w < width" );
+ myAssert( yd+h < height(), "assertion violated: yd+h < height" );
+
+ if( hideBG[mode] )
+ blackPixel( xcoord, ycoord );
+ (this->*applyLens)(xs, ys, xd, yd, w, h);
+ XPutImage( tqt_xdisplay(), winId(), d->gc, d->buffer, 0, 0, xd, yd, w, h );
+ if( hideBG[mode] )
+ blackPixelUndo( xcoord, ycoord );
+}
+
+void KScienceSaver::grabRootWindow()
+{
+ Display *dsp = tqt_xdisplay();
+ Window rootwin = RootWindow( dsp, tqt_xscreen() );
+
+ // grab contents of root window
+ if( d->xRootWin )
+ XDestroyImage( d->xRootWin );
+
+ d->xRootWin = XGetImage( dsp, rootwin, 0, 0, width(),
+ height(), AllPlanes, ZPixmap);
+ myAssert( d->xRootWin, "unable to grab root window\n" );
+
+ imgnext = d->xRootWin->bytes_per_line;
+ bpp = ( d->xRootWin->bits_per_pixel ) >> 3;
+}
+
+void KScienceSaver::grabPreviewWidget()
+{
+ myAssert( TQWidget::find(winId())->isActiveWindow(), "can't grab preview widget: dialog not active()" );
+
+ if( d->xRootWin )
+ XDestroyImage( d->xRootWin );
+
+ Display *dsp = tqt_xdisplay();
+ d->xRootWin = XGetImage( dsp, winId(), 0, 0, width(), height(), AllPlanes, ZPixmap);
+ myAssert( d->xRootWin, "unable to grab preview window\n" );
+
+ imgnext = d->xRootWin->bytes_per_line;
+ bpp = ( d->xRootWin->bits_per_pixel ) >> 3;
+}
+
+void KScienceSaver::blackPixel( int x, int y )
+{
+ unsigned char black = (char) BlackPixel( tqt_xdisplay(), tqt_xscreen() );
+ unsigned int adr = x*bpp + y*imgnext;
+
+ for(int i=0; i<bpp; i++) {
+ blackRestore[i] = d->xRootWin->data[adr];
+ d->xRootWin->data[adr++] = black;
+ }
+}
+
+void KScienceSaver::blackPixelUndo( int x, int y )
+{
+ unsigned int adr = x*bpp + y*imgnext;
+ for(int i=0; i<bpp; i++)
+ d->xRootWin->data[adr++] = blackRestore[i];
+}
+
+// hm....
+
+void KScienceSaver::applyLens8bpp(int xs, int ys, int xd, int yd, int w, int h)
+{
+ T32bit *off;
+ char *img1, *img2, *data;
+ signed int ix, iy, datanext = d->buffer->bytes_per_line - w;
+
+ img1 = d->xRootWin->data + xd + yd*imgnext;
+ data = d->buffer->data;
+ for(iy = ys; iy < ys+h; iy++)
+ {
+ off = d->offset[iy] + xs;
+ img2 = img1;
+ for(ix = w; ix > 0; ix--)
+ *data++ = img2++[*off++];
+ img1 += imgnext;
+ data += datanext;
+ }
+
+}
+
+void KScienceSaver::applyLens16bpp(int xs, int ys, int xd, int yd, int w, int h)
+{
+ T32bit *off;
+ char *img1, *img2, *data;
+ int ix, iy, datanext = d->buffer->bytes_per_line - (w << 1);
+
+ img1 = d->xRootWin->data + (xd << 1) + yd*imgnext;
+ data = d->buffer->data;
+ for(iy = ys; iy < ys+h; iy++)
+ {
+ off = d->offset[iy] + xs;
+ img2 = img1;
+ for(ix = w; ix > 0; ix--) {
+ *data++ = img2++[*off];
+ *data++ = img2++[*off++];
+ }
+ img1 += imgnext;
+ data += datanext;
+ }
+}
+
+void KScienceSaver::applyLens24bpp(int xs, int ys, int xd, int yd, int w, int h)
+{
+ T32bit *off;
+ char *img1, *img2, *data;
+ signed int ix, iy, datanext = d->buffer->bytes_per_line - 3*w;
+
+ img1 = d->xRootWin->data + 3*xd + yd*imgnext;
+ data = d->buffer->data;
+ for(iy = ys; iy < ys+h; iy++)
+ {
+ off = d->offset[iy] + xs;
+ img2 = img1;
+ for(ix = w; ix > 0; ix--) {
+ *data++ = img2++[*off];
+ *data++ = img2++[*off];
+ *data++ = img2++[*off++];
+ }
+ img1 += imgnext;
+ data += datanext;
+ }
+}
+
+void KScienceSaver::applyLens32bpp(int xs, int ys, int xd, int yd, int w, int h)
+{
+ T32bit *off;
+ char *img1, *img2, *data;
+ signed int ix, iy, datanext = d->buffer->bytes_per_line - (w << 2);
+
+ img1 = d->xRootWin->data + (xd << 2) + yd*imgnext;
+ data = d->buffer->data;
+ for(iy = ys; iy < ys+h; iy++)
+ {
+ off = d->offset[iy] + xs;
+ img2 = img1;
+ for(ix = w; ix > 0; ix--) {
+ *data++ = img2++[*off];
+ *data++ = img2++[*off];
+ *data++ = img2++[*off];
+ *data++ = img2++[*off++];
+ }
+ img1 += imgnext;
+ data += datanext;
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+
+KScienceSetup::KScienceSetup( TQWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n( "Setup Science Screen Saver" ),
+ Ok|Cancel|Help, Ok, true ), saver( 0 )
+{
+ readSettings();
+ initModeInfo();
+
+ TQWidget *main = makeMainWidget();
+
+ TQHBoxLayout *lt = new TQHBoxLayout( main, 0, spacingHint());
+ TQVBoxLayout *ltm = new TQVBoxLayout;
+ lt->addLayout( ltm );
+ TQVBoxLayout *ltc = new TQVBoxLayout;
+ lt->addLayout( ltc );
+
+ // mode
+ TQLabel *label = new TQLabel( i18n("Mode:"), main );
+ ltm->addWidget( label );
+
+ TQListBox *c = new TQListBox( main );
+ for(int i = 0; i<MAX_MODES; i++)
+ c->insertItem( modeInfo[i].name );
+ c->setCurrentItem( mode );
+ c->setFixedHeight( 5 * c->fontMetrics().height() );
+ connect( c, TQT_SIGNAL( highlighted( int ) ), TQT_SLOT( slotMode( int ) ) );
+ ltm->addWidget( c );
+
+ // inverse
+ TQCheckBox *cbox = checkInverse = new TQCheckBox( i18n("Inverse"), main );
+ cbox->setEnabled( modeInfo[mode].inverseEnable );
+ cbox->setChecked( inverse[mode] );
+ connect( cbox, TQT_SIGNAL( clicked() ), TQT_SLOT( slotInverse() ) );
+ ltm->addWidget( cbox );
+
+ // gravity
+ cbox = checkGravity = new TQCheckBox( i18n("Gravity"), main );
+ cbox->setChecked( gravity[mode] );
+ connect( cbox, TQT_SIGNAL( clicked() ), TQT_SLOT( slotGravity() ) );
+ ltm->addWidget( cbox );
+
+ // hide background
+ cbox = checkHideBG = new TQCheckBox( i18n("Hide background"), main );
+ cbox->setChecked( hideBG[mode] );
+ connect( cbox, TQT_SIGNAL( clicked() ), TQT_SLOT( slotHideBG() ) );
+ ltm->addWidget( cbox );
+ ltm->addStretch();
+
+ // size
+ label = new TQLabel( i18n("Size:"), main );
+ ltc->addWidget( label );
+
+ slideSize = new TQSlider(9, 50, 5, size[mode], Qt::Horizontal,
+ main );
+ slideSize->setMinimumSize( 90, 20 );
+ slideSize->setTickmarks(TQSlider::Below);
+ slideSize->setTickInterval(5);
+ connect( slideSize, TQT_SIGNAL( sliderMoved( int ) ),
+ TQT_SLOT( slotSize( int ) ) );
+ connect( slideSize, TQT_SIGNAL( sliderPressed() ),
+ TQT_SLOT( slotSliderPressed() ) );
+ connect( slideSize, TQT_SIGNAL( sliderReleased() ),
+ TQT_SLOT( slotSliderReleased() ) );
+
+ ltc->addWidget( slideSize );
+
+ // intensity
+ label = new TQLabel( i18n("Intensity:"), main );
+ ltc->addWidget( label );
+
+ slideIntensity = new TQSlider(0, 10, 1, intensity[mode],
+ Qt::Horizontal, main );
+ slideIntensity->setMinimumSize( 90, 20 );
+ slideIntensity->setTickmarks(TQSlider::Below);
+ slideIntensity->setTickInterval(1);
+ connect( slideIntensity, TQT_SIGNAL( sliderMoved( int ) ),
+ TQT_SLOT( slotIntensity( int )) );
+ connect( slideIntensity, TQT_SIGNAL( sliderPressed() ),
+ TQT_SLOT( slotSliderPressed() ) );
+ connect( slideIntensity, TQT_SIGNAL( sliderReleased() ),
+ TQT_SLOT( slotSliderReleased() ) );
+ ltc->addWidget( slideIntensity );
+
+ // speed
+ label = new TQLabel( i18n("Speed:"), main );
+ ltc->addWidget( label );
+
+ slideSpeed = new TQSlider(0, SCI_MAX_SPEED, 10, speed[mode],
+ Qt::Horizontal, main );
+ slideSpeed->setMinimumSize( 90, 20 );
+ slideSpeed->setTickmarks(TQSlider::Below);
+ slideSpeed->setTickInterval(10);
+ connect( slideSpeed, TQT_SIGNAL( sliderMoved( int ) ),
+ TQT_SLOT( slotSpeed( int ) ) );
+ ltc->addWidget( slideSpeed );
+
+ // motion
+ label = new TQLabel( i18n("Motion:"), main );
+ ltc->addWidget( label );
+
+ TQHBoxLayout *ltcm = new TQHBoxLayout;
+ ltc->addLayout( ltcm );
+
+ slideMoveX = new TQSlider(0, SCI_MAX_MOVE, 5, moveX[mode],
+ Qt::Horizontal, main );
+ slideMoveX->setMinimumSize( 40, 20 );
+ slideMoveX->setTickmarks(TQSlider::Below);
+ slideMoveX->setTickInterval(5);
+ connect( slideMoveX, TQT_SIGNAL( sliderMoved( int ) ),
+ TQT_SLOT( slotMoveX( int ) ) );
+ ltcm->addWidget( slideMoveX );
+
+ slideMoveY = new TQSlider(0, SCI_MAX_MOVE, 5, moveY[mode],
+ Qt::Horizontal, main );
+ slideMoveY->setMinimumSize( 40, 20 );
+ slideMoveY->setTickmarks(TQSlider::Below);
+ slideMoveY->setTickInterval(5);
+ connect( slideMoveY, TQT_SIGNAL( sliderMoved( int ) ),
+ TQT_SLOT( slotMoveY( int ) ) );
+ ltcm->addWidget( slideMoveY );
+
+ ltc->addStretch();
+
+ // preview
+ preview = new KPreviewWidget( main );
+ preview->setFixedSize( 220, 170 );
+ TQPixmap p( locate("data", "tdescreensaver/pics/kscience.png") );
+ if( p.isNull() )
+ preview->setBackgroundColor( black );
+ else
+ preview->setBackgroundPixmap( p );
+ preview->show(); // otherwise saver does not get correct size
+ lt->addWidget( preview );
+
+ // let the preview window display before creating the saver
+ kapp->processEvents();
+
+ saver = new KScienceSaver( preview->winId(), true, !p.isNull() );
+ preview->notifySaver( saver );
+}
+
+KScienceSetup::~KScienceSetup()
+{
+ delete saver; // be sure to delete this first
+}
+
+void KScienceSetup::updateSettings()
+{
+ // update dialog
+ slideMoveX ->setValue( moveX[mode] );
+ slideMoveY ->setValue( moveY[mode] );
+ slideSize ->setValue( size[mode] );
+ slideSpeed ->setValue( speed[mode] );
+ slideIntensity->setValue( intensity[mode] );
+ checkInverse ->setEnabled( modeInfo[mode].inverseEnable );
+ checkInverse ->setChecked( inverse[mode] );
+ checkGravity ->setChecked( gravity[mode] );
+ checkHideBG ->setChecked( hideBG[mode] );
+}
+
+// read settings from config file
+void KScienceSetup::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ TQString sMode;
+
+ config->setGroup( "Settings" );
+ mode = config->readNumEntry( "ModeNr", SCI_DEFAULT_MODE );
+
+ for(int i=0; i < MAX_MODES; i++)
+ {
+ sMode.setNum( i );
+ config->setGroup( "Mode" + sMode );
+ moveX[i] = config->readNumEntry( "MoveX", SCI_DEFAULT_MOVEX);
+ moveY[i] = config->readNumEntry( "MoveY", SCI_DEFAULT_MOVEY);
+ size[i] = config->readNumEntry( "Size", SCI_DEFAULT_SIZE);
+ speed[i] = config->readNumEntry( "Speed", SCI_DEFAULT_SPEED);
+ intensity[i] = config->readNumEntry( "Intensity", SCI_DEFAULT_INTENSITY);
+ inverse[i] = config->readBoolEntry( "Inverse", SCI_DEFAULT_INVERSE);
+ gravity[i] = config->readBoolEntry( "Gravity", SCI_DEFAULT_GRAVITY);
+ hideBG[i] = config->readBoolEntry( "HideBG", SCI_DEFAULT_HIDE);
+ }
+}
+
+void KScienceSetup::slotMode( int m )
+{
+ mode = m;
+
+ if( saver )
+ saver->setMode( mode );
+
+ updateSettings();
+}
+
+void KScienceSetup::slotInverse( )
+{
+ inverse[mode] = checkInverse->isChecked();
+
+ if( saver )
+ saver->setInverse( inverse[mode] );
+}
+
+void KScienceSetup::slotGravity( )
+{
+ gravity[mode] = checkGravity->isChecked();
+
+ if( saver )
+ saver->setGravity( gravity[mode] );
+}
+
+void KScienceSetup::slotHideBG( )
+{
+ hideBG[mode] = checkHideBG->isChecked();
+
+ if( saver )
+ saver->setHideBG( hideBG[mode] );
+}
+
+void KScienceSetup::slotMoveX( int x )
+{
+ moveX[mode] = x;
+
+ if( saver )
+ saver->setMoveX( x );
+}
+
+void KScienceSetup::slotMoveY( int y )
+{
+ moveY[mode] = y;
+
+ if( saver )
+ saver->setMoveY( y );
+}
+
+void KScienceSetup::slotSize( int s )
+{
+ size[mode] = s;
+
+ if( saver )
+ saver->setSize( s );
+}
+
+void KScienceSetup::slotSpeed( int s )
+{
+ speed[mode] = s;
+
+ if( saver )
+ saver->setSpeed( s );
+}
+
+void KScienceSetup::slotIntensity( int i )
+{
+ intensity[mode] = i;
+
+ if( saver )
+ saver->setIntensity( i );
+}
+
+void KScienceSetup::slotSliderPressed()
+{
+ if( saver )
+ saver->setMove( false );
+}
+
+void KScienceSetup::slotSliderReleased()
+{
+ if( saver )
+ saver->setMove( true );
+}
+
+// Ok pressed - save settings and exit
+void KScienceSetup::slotOk()
+{
+ TDEConfig *config = TDEGlobal::config();
+ TQString sSize, sSpeed, sIntensity, sMode;
+
+ config->setGroup( "Settings" );
+ config->writeEntry( "ModeNr", mode );
+
+ for(int i=0; i<MAX_MODES; i++)
+ {
+ sMode.setNum( i );
+ config->setGroup( "Mode" + sMode );
+ config->writeEntry( "MoveX", moveX[i] );
+ config->writeEntry( "MoveY", moveY[i] );
+ config->writeEntry( "Size", size[i] );
+ config->writeEntry( "Speed", speed[i] );
+ config->writeEntry( "Intensity", intensity[i] );
+ config->writeEntry( "Inverse", inverse[i] );
+ config->writeEntry( "Gravity", gravity[i] );
+ config->writeEntry( "HideBG", hideBG[i] );
+ }
+
+ config->sync();
+
+ accept();
+}
+
+void KScienceSetup::slotHelp()
+{
+ TQString about = i18n("Science Version 0.26.5\n\nWritten by Rene Beutler (1998)\nrbeutler@g26.ethz.ch");
+ KMessageBox::about(this,
+ about);
+}
diff --git a/tdescreensaver/kdesavers/science.h b/tdescreensaver/kdesavers/science.h
new file mode 100644
index 00000000..eb894053
--- /dev/null
+++ b/tdescreensaver/kdesavers/science.h
@@ -0,0 +1,151 @@
+// ----------------------------------------------------------------
+//
+// kscience - screen saver for KDE
+//
+// copyright (c) Rene Beutler 1998
+//
+
+#ifndef __SCIENCE_H__
+#define __SCIENCE_H__
+
+#include <tqrect.h>
+#include <tqtimer.h>
+#include <kdialogbase.h>
+#include <tdescreensaver.h>
+
+class TQSlider;
+class TQCheckBox;
+
+#define MAX_MODES 6
+
+typedef signed int T32bit;
+
+class KScienceSaver;
+
+class KPreviewWidget : public TQWidget
+{
+ Q_OBJECT
+
+public:
+ KPreviewWidget( TQWidget *parent );
+ void paintEvent( TQPaintEvent *event );
+ void notifySaver( KScienceSaver *s = 0 );
+private:
+ KScienceSaver *saver;
+};
+
+struct KScienceData;
+
+class KScienceSaver : public KScreenSaver
+{
+ Q_OBJECT
+
+public:
+ KScienceSaver( WId id, bool setup=false, bool gP=false);
+ virtual ~KScienceSaver();
+
+ void do_refresh( const TQRect & rect );
+ void setMode ( int mode );
+ void setMoveX ( signed int s );
+ void setMoveY ( signed int s );
+ void setMove ( bool s );
+ void setSize ( signed int s );
+ void setIntensity ( signed int s );
+ void setSpeed ( signed int s );
+ void setInverse ( bool b );
+ void setGravity ( bool b );
+ void setHideBG ( bool b );
+
+ void myAssert( bool term, const char *sMsg );
+
+private:
+ void readSettings();
+ void initLens();
+ void initialize();
+ void releaseLens();
+ void (KScienceSaver::*applyLens)(int xs, int ys, int xd, int yd, int w, int h);
+
+protected slots:
+ void slotTimeout();
+
+protected:
+ void grabRootWindow();
+ void grabPreviewWidget();
+ void initWhirlLens();
+ void initSphereLens();
+ void initExponentialLens();
+ void initWaveLens();
+ void initCurvatureLens();
+ void blackPixel( int x, int y );
+ void blackPixelUndo( int x, int y);
+ void applyLens8bpp( int xs, int ys, int xd, int yd, int w, int h);
+ void applyLens16bpp(int xs, int ys, int xd, int yd, int w, int h);
+ void applyLens24bpp(int xs, int ys, int xd, int yd, int w, int h);
+ void applyLens32bpp(int xs, int ys, int xd, int yd, int w, int h);
+ TQTimer timer;
+ bool moveOn;
+ bool setup;
+ bool grabPixmap;
+ int mode;
+ bool inverse[MAX_MODES];
+ bool gravity[MAX_MODES];
+ bool hideBG[MAX_MODES];
+ signed int size[MAX_MODES];
+ signed int moveX[MAX_MODES];
+ signed int moveY[MAX_MODES];
+ signed int speed[MAX_MODES];
+ signed int intensity[MAX_MODES];
+ int xcoord, ycoord;
+ double x, y, vx, vy;
+ signed int bpp, side;
+ int border, radius, diam, origin;
+ int imgnext;
+ char blackRestore[4];
+ KScienceData *d;
+};
+
+
+class KScienceSetup : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ KScienceSetup(TQWidget *parent=0, const char *name=0);
+ ~KScienceSetup();
+protected:
+ void updateSettings();
+ void readSettings();
+
+private slots:
+ void slotMode( int );
+ void slotInverse();
+ void slotGravity();
+ void slotHideBG();
+ void slotMoveX( int );
+ void slotMoveY( int );
+ void slotSize( int );
+ void slotIntensity( int );
+ void slotSliderPressed();
+ void slotSliderReleased();
+ void slotSpeed( int );
+ void slotOk();
+ void slotHelp();
+
+private:
+ KPreviewWidget *preview;
+ KScienceSaver *saver;
+ TQSlider *slideSize, *slideSpeed, *slideIntensity;
+ TQSlider *slideMoveX, *slideMoveY;
+ TQCheckBox *checkInverse, *checkGravity, *checkHideBG;
+
+ int mode;
+ bool inverse [MAX_MODES];
+ bool gravity [MAX_MODES];
+ bool hideBG [MAX_MODES];
+ int moveX [MAX_MODES];
+ int moveY [MAX_MODES];
+ int size [MAX_MODES];
+ int intensity[MAX_MODES];
+ int speed [MAX_MODES];
+};
+#endif
diff --git a/tdescreensaver/kdesavers/slideshow.cpp b/tdescreensaver/kdesavers/slideshow.cpp
new file mode 100644
index 00000000..ea216991
--- /dev/null
+++ b/tdescreensaver/kdesavers/slideshow.cpp
@@ -0,0 +1,1022 @@
+/* Slide Show Screen Saver
+ * (C) 1999 Stefan Taferner <taferner@kde.org>
+ * (C) 2001 Martin R. Jones <mjones@kde.org>
+ * (C) 2003 Chris Howells <howells@kde.org>
+ * (C) 2003 Sven Leiber <s.leiber@web.de>
+ *
+ * This code is under GPL
+ *
+ * 2001/03/04 Converted to libtdescreensaver by Martin R. Jones.
+ */
+
+
+#include <tqdir.h>
+#include <tqcolor.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <tqfile.h>
+#include <tqpaintdevicemetrics.h>
+#include <tqcheckbox.h>
+#include <tqcombobox.h>
+#include <tqspinbox.h>
+#include <tqframe.h>
+#include <tqdesktopwidget.h>
+
+#include <kconfig.h>
+#include <kglobal.h>
+#include <kapplication.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kimageio.h>
+#include <kfiledialog.h>
+#include <kstandarddirs.h>
+#include <kurlrequester.h>
+#include <kaboutdata.h>
+#include <kaboutapplication.h>
+#include <kdebug.h>
+
+#include <stdlib.h>
+#include <assert.h>
+#include <math.h>
+#include <time.h>
+
+#include "slideshow.h"
+#include "slideshow.moc"
+#include "slideshowcfg.h"
+
+
+#define SLIDESHOW_VERSION "2.3.0"
+static const char version[] = SLIDESHOW_VERSION;
+static const char description[] = I18N_NOOP("KSlideshow");
+
+
+// libtdescreensaver interface
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kslideshow.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "KSlideshow" );
+ KDE_EXPORT const char *kss_version = SLIDESHOW_VERSION;
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new kSlideShowSaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new kSlideShowSetup();
+ }
+}
+
+
+//=============================================================================
+// Class kSlideShowSaver
+//=============================================================================
+kSlideShowSaver::kSlideShowSaver( WId id ): KScreenSaver(id)
+{
+ KImageIO::registerFormats();
+
+ blank();
+
+ mEffect = NULL;
+ mNumEffects = 0;
+ mIntArray = NULL;
+ registerEffects();
+
+ readConfig();
+ initNextScreen();
+
+ mFileIdx = 0;
+ mColorContext = TQColor::enterAllocContext();
+
+ mEffectRunning = false;
+
+ mTimer.start(10, true);
+ connect(&mTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotTimeout()));
+
+ TQDesktopWidget *d = TQApplication::desktop();
+ if( geometry() == d->geometry() && d->numScreens() > 1)
+ {
+ for(int i = 0; i < d->numScreens(); ++i)
+ {
+ TQRect s = d->screenGeometry(i);
+ mGeoList.append(new mScreenGeo(s.width(), s.height(), s.topLeft().x(), s.topLeft().y()));
+ }
+ }
+ else
+ {
+ mGeoList.append(new mScreenGeo(width(), height(), 0, 0 ));
+ }
+ createNextScreen();
+}
+
+
+//----------------------------------------------------------------------------
+kSlideShowSaver::~kSlideShowSaver()
+{
+ delete [] mIntArray;
+ delete [] mEffectList;
+
+ mTimer.stop();
+ if (mPainter.isActive()) mPainter.end();
+ TQColor::leaveAllocContext();
+ TQColor::destroyAllocContext(mColorContext);
+}
+
+
+//-----------------------------------------------------------------------------
+void kSlideShowSaver::initNextScreen()
+{
+ TQPaintDeviceMetrics metric(this);
+ int w, h;
+
+ w = width();
+ h = height();
+ mNextScreen = TQPixmap(w, h, metric.depth());
+}
+
+
+//-----------------------------------------------------------------------------
+void kSlideShowSaver::readConfig()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup("Settings");
+ mShowRandom = config->readBoolEntry("ShowRandom", true);
+ mZoomImages = config->readBoolEntry("ZoomImages", false);
+ mPrintName = config->readBoolEntry("PrintName", true);
+ mDirectory = config->readPathEntry("Directory", TDEGlobal::dirs()->findDirs("wallpaper", "").last());
+ mDelay = config->readNumEntry("Delay", 10) * 1000;
+ mSubdirectory = config->readBoolEntry("SubDirectory", false);
+ mRandomPosition = config->readBoolEntry("RandomPosition", false);
+
+ loadDirectory();
+}
+
+
+//----------------------------------------------------------------------------
+void kSlideShowSaver::registerEffects()
+{
+ int i = 0;
+
+ mEffectList = new EffectMethod[64];
+ mEffectList[i++] = &kSlideShowSaver::effectChessboard;
+ mEffectList[i++] = &kSlideShowSaver::effectMultiCircleOut;
+ mEffectList[i++] = &kSlideShowSaver::effectSpiralIn;
+ mEffectList[i++] = &kSlideShowSaver::effectSweep;
+ mEffectList[i++] = &kSlideShowSaver::effectMeltdown;
+ mEffectList[i++] = &kSlideShowSaver::effectCircleOut;
+ mEffectList[i++] = &kSlideShowSaver::effectBlobs;
+ mEffectList[i++] = &kSlideShowSaver::effectHorizLines;
+ mEffectList[i++] = &kSlideShowSaver::effectVertLines;
+ mEffectList[i++] = &kSlideShowSaver::effectRandom;
+ mEffectList[i++] = &kSlideShowSaver::effectGrowing;
+ mEffectList[i++] = &kSlideShowSaver::effectIncomingEdges;
+
+ mNumEffects = i;
+ // mNumEffects = 1; //...for testing
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectMultiCircleOut(bool aInit)
+{
+ int x, y, i;
+ double alpha;
+ static TQPointArray pa(4);
+
+ if (aInit)
+ {
+ startPainter();
+ mw = width();
+ mh = height();
+ mx = mw;
+ my = mh>>1;
+ pa.setPoint(0, mw>>1, mh>>1);
+ pa.setPoint(3, mw>>1, mh>>1);
+ mfy = sqrt((double)mw*mw + mh*mh) / 2;
+ mi = TDEApplication::random()%15 + 2;
+ mfd = M_PI*2/mi;
+ mAlpha = mfd;
+ mwait = 10 * mi;
+ mfx = M_PI/32; // divisor must be powers of 8
+ }
+
+ if (mAlpha < 0)
+ {
+ mPainter.end();
+ showNextScreen();
+ return -1;
+ }
+
+ for (alpha=mAlpha, i=mi; i>=0; i--, alpha+=mfd)
+ {
+ x = (mw>>1) + (int)(mfy * cos(-alpha));
+ y = (mh>>1) + (int)(mfy * sin(-alpha));
+
+ mx = (mw>>1) + (int)(mfy * cos(-alpha + mfx));
+ my = (mh>>1) + (int)(mfy * sin(-alpha + mfx));
+
+ pa.setPoint(1, x, y);
+ pa.setPoint(2, mx, my);
+
+ mPainter.drawPolygon(pa);
+ }
+ mAlpha -= mfx;
+
+ return mwait;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectSpiralIn(bool aInit)
+{
+ if (aInit)
+ {
+ startPainter();
+ mw = width();
+ mh = height();
+ mix = mw / 8;
+ miy = mh / 8;
+ mx0 = 0;
+ mx1 = mw - mix;
+ my0 = miy;
+ my1 = mh - miy;
+ mdx = mix;
+ mdy = 0;
+ mi = 0;
+ mj = 16 * 16;
+ mx = 0;
+ my = 0;
+ }
+
+ if (mi==0 && mx0>=mx1)
+ {
+ mPainter.end();
+ showNextScreen();
+ return -1;
+ }
+
+ if (mi==0 && mx>=mx1) // switch to: down on right side
+ {
+ mi = 1;
+ mdx = 0;
+ mdy = miy;
+ mx1 -= mix;
+ }
+ else if (mi==1 && my>=my1) // switch to: right to left on bottom side
+ {
+ mi = 2;
+ mdx = -mix;
+ mdy = 0;
+ my1 -= miy;
+ }
+ else if (mi==2 && mx<=mx0) // switch to: up on left side
+ {
+ mi = 3;
+ mdx = 0;
+ mdy = -miy;
+ mx0 += mix;
+ }
+ else if (mi==3 && my<=my0) // switch to: left to right on top side
+ {
+ mi = 0;
+ mdx = mix;
+ mdy = 0;
+ my0 += miy;
+ }
+
+ bitBlt(TQT_TQPAINTDEVICE(this), mx, my, TQT_TQPAINTDEVICE(&mNextScreen), mx, my, mix, miy, CopyROP, true);
+
+ mx += mdx;
+ my += mdy;
+ mj--;
+
+ return 8;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectMeltdown(bool aInit)
+{
+ int i, x, y;
+ bool done;
+
+ if (aInit)
+ {
+ delete [] mIntArray;
+ mw = width();
+ mh = height();
+ mdx = 4;
+ mdy = 16;
+ mix = mw / mdx;
+ mIntArray = new int[mix];
+ for (i=mix-1; i>=0; i--)
+ mIntArray[i] = 0;
+ }
+
+ done = true;
+ for (i=0,x=0; i<mix; i++,x+=mdx)
+ {
+ y = mIntArray[i];
+ if (y >= mh) continue;
+ done = false;
+ if ((TDEApplication::random()&15) < 6) continue;
+ bitBlt(TQT_TQPAINTDEVICE(this), x, y+mdy, TQT_TQPAINTDEVICE(this), x, y, mdx, mh-y-mdy, CopyROP, true);
+ bitBlt(TQT_TQPAINTDEVICE(this), x, y, TQT_TQPAINTDEVICE(&mNextScreen), x, y, mdx, mdy, CopyROP, true);
+ mIntArray[i] += mdy;
+ }
+
+ if (done)
+ {
+ delete [] mIntArray;
+ mIntArray = NULL;
+ return -1;
+ }
+
+ return 15;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectCircleOut(bool aInit)
+{
+ int x, y;
+ static TQPointArray pa(4);
+
+ if (aInit)
+ {
+ startPainter();
+ mw = width();
+ mh = height();
+ mx = mw;
+ my = mh>>1;
+ mAlpha = 2*M_PI;
+ pa.setPoint(0, mw>>1, mh>>1);
+ pa.setPoint(3, mw>>1, mh>>1);
+ mfx = M_PI/16; // divisor must be powers of 8
+ mfy = sqrt((double)mw*mw + mh*mh) / 2;
+ }
+
+ if (mAlpha < 0)
+ {
+ mPainter.end();
+ showNextScreen();
+ return -1;
+ }
+
+ x = mx;
+ y = my;
+ mx = (mw>>1) + (int)(mfy * cos(mAlpha));
+ my = (mh>>1) + (int)(mfy * sin(mAlpha));
+ mAlpha -= mfx;
+
+ pa.setPoint(1, x, y);
+ pa.setPoint(2, mx, my);
+
+ mPainter.drawPolygon(pa);
+
+ return 20;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectSweep(bool aInit)
+{
+ int w, h, x, y, i;
+
+ if (aInit)
+ {
+ // subtype: 0=sweep right to left, 1=sweep left to right
+ // 2=sweep bottom to top, 3=sweep top to bottom
+ mSubType = TDEApplication::random() % 4;
+ mw = width();
+ mh = height();
+ mdx = (mSubType==1 ? 16 : -16);
+ mdy = (mSubType==3 ? 16 : -16);
+ mx = (mSubType==1 ? 0 : mw);
+ my = (mSubType==3 ? 0 : mh);
+ }
+
+ if (mSubType==0 || mSubType==1)
+ {
+ // horizontal sweep
+ if ((mSubType==0 && mx < -64) ||
+ (mSubType==1 && mx > mw+64))
+ {
+ return -1;
+ }
+ for (w=2,i=4,x=mx; i>0; i--, w<<=1, x-=mdx)
+ {
+ bitBlt(TQT_TQPAINTDEVICE(this), x, 0, TQT_TQPAINTDEVICE(&mNextScreen), x, 0, w, mh, CopyROP, true);
+ }
+ mx += mdx;
+ }
+ else
+ {
+ // vertical sweep
+ if ((mSubType==2 && my < -64) ||
+ (mSubType==3 && my > mh+64))
+ {
+ return -1;
+ }
+ for (h=2,i=4,y=my; i>0; i--, h<<=1, y-=mdy)
+ {
+ bitBlt(TQT_TQPAINTDEVICE(this), 0, y, TQT_TQPAINTDEVICE(&mNextScreen), 0, y, mw, h, CopyROP, true);
+ }
+ my += mdy;
+ }
+
+ return 20;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectBlobs(bool aInit)
+{
+ int r;
+
+ if (aInit)
+ {
+ startPainter();
+ mAlpha = M_PI * 2;
+ mw = width();
+ mh = height();
+ mi = 150;
+ }
+
+ if (mi <= 0)
+ {
+ mPainter.end();
+ showNextScreen();
+ return -1;
+ }
+
+ mx = TDEApplication::random() % mw;
+ my = TDEApplication::random() % mh;
+ r = (TDEApplication::random() % 200) + 50;
+
+ mPainter.drawEllipse(mx-r, my-r, r, r);
+ mi--;
+
+ return 10;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectRandom(bool /*aInit*/)
+{
+ int x, y, i, w, h, fact, sz;
+
+ fact = (TDEApplication::random() % 3) + 1;
+
+ w = width() >> fact;
+ h = height() >> fact;
+ sz = 1 << fact;
+
+ for (i = (w*h)<<1; i > 0; i--)
+ {
+ x = (TDEApplication::random() % w) << fact;
+ y = (TDEApplication::random() % h) << fact;
+ bitBlt(TQT_TQPAINTDEVICE(this), x, y, TQT_TQPAINTDEVICE(&mNextScreen), x, y, sz, sz, CopyROP, true);
+ }
+ showNextScreen();
+
+ return -1;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectGrowing(bool aInit)
+{
+ if (aInit)
+ {
+ mw = width();
+ mh = height();
+ mx = mw >> 1;
+ my = mh >> 1;
+ mi = 0;
+ mfx = mx / 100.0;
+ mfy = my / 100.0;
+ }
+
+ mx = (mw>>1) - (int)(mi * mfx);
+ my = (mh>>1) - (int)(mi * mfy);
+ mi++;
+
+ if (mx<0 || my<0)
+ {
+ showNextScreen();
+ return -1;
+ }
+
+ bitBlt(TQT_TQPAINTDEVICE(this), mx, my, TQT_TQPAINTDEVICE(&mNextScreen), mx, my,
+ mw - (mx<<1), mh - (my<<1), CopyROP, true);
+
+ return 20;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectChessboard(bool aInit)
+{
+ int y;
+
+ if (aInit)
+ {
+ mw = width();
+ mh = height();
+ mdx = 8; // width of one tile
+ mdy = 8; // height of one tile
+ mj = (mw+mdx-1)/mdx; // number of tiles
+ mx = mj*mdx; // shrinking x-offset from screen border
+ mix = 0; // growing x-offset from screen border
+ miy = 0; // 0 or mdy for growing tiling effect
+ my = mj&1 ? 0 : mdy; // 0 or mdy for shrinking tiling effect
+ mwait = 800 / mj; // timeout between effects
+ }
+
+ if (mix >= mw)
+ {
+ showNextScreen();
+ return -1;
+ }
+
+ mix += mdx;
+ mx -= mdx;
+ miy = miy ? 0 : mdy;
+ my = my ? 0 : mdy;
+
+ for (y=0; y<mw; y+=(mdy<<1))
+ {
+ bitBlt(TQT_TQPAINTDEVICE(this), mix, y+miy, TQT_TQPAINTDEVICE(&mNextScreen), mix, y+miy,
+ mdx, mdy, CopyROP, true);
+ bitBlt(TQT_TQPAINTDEVICE(this), mx, y+my, TQT_TQPAINTDEVICE(&mNextScreen), mx, y+my,
+ mdx, mdy, CopyROP, true);
+ }
+
+ return mwait;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectIncomingEdges(bool aInit)
+{
+ int x1, y1;
+
+ if (aInit)
+ {
+ mw = width();
+ mh = height();
+ mix = mw >> 1;
+ miy = mh >> 1;
+ mfx = mix / 100.0;
+ mfy = miy / 100.0;
+ mi = 0;
+ mSubType = TDEApplication::random() & 1;
+ }
+
+ mx = (int)(mfx * mi);
+ my = (int)(mfy * mi);
+
+ if (mx>mix || my>miy)
+ {
+ showNextScreen();
+ return -1;
+ }
+
+ x1 = mw - mx;
+ y1 = mh - my;
+ mi++;
+
+ if (mSubType)
+ {
+ // moving image edges
+ bitBlt(TQT_TQPAINTDEVICE(this), 0, 0, TQT_TQPAINTDEVICE(&mNextScreen), mix-mx, miy-my, mx, my, CopyROP, true);
+ bitBlt(TQT_TQPAINTDEVICE(this), x1, 0, TQT_TQPAINTDEVICE(&mNextScreen), mix, miy-my, mx, my, CopyROP, true);
+ bitBlt(TQT_TQPAINTDEVICE(this), 0, y1, TQT_TQPAINTDEVICE(&mNextScreen), mix-mx, miy, mx, my, CopyROP, true);
+ bitBlt(TQT_TQPAINTDEVICE(this), x1, y1, TQT_TQPAINTDEVICE(&mNextScreen), mix, miy, mx, my, CopyROP, true);
+ }
+ else
+ {
+ // fixed image edges
+ bitBlt(TQT_TQPAINTDEVICE(this), 0, 0, TQT_TQPAINTDEVICE(&mNextScreen), 0, 0, mx, my, CopyROP, true);
+ bitBlt(TQT_TQPAINTDEVICE(this), x1, 0, TQT_TQPAINTDEVICE(&mNextScreen), x1, 0, mx, my, CopyROP, true);
+ bitBlt(TQT_TQPAINTDEVICE(this), 0, y1, TQT_TQPAINTDEVICE(&mNextScreen), 0, y1, mx, my, CopyROP, true);
+ bitBlt(TQT_TQPAINTDEVICE(this), x1, y1, TQT_TQPAINTDEVICE(&mNextScreen), x1, y1, mx, my, CopyROP, true);
+ }
+ return 20;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectHorizLines(bool aInit)
+{
+ static int iyPos[] = { 0, 4, 2, 6, 1, 5, 3, 7, -1 };
+ int y;
+
+ if (aInit)
+ {
+ mw = width();
+ mh = height();
+ mi = 0;
+ }
+
+ if (iyPos[mi] < 0) return -1;
+
+ for (y=iyPos[mi]; y<mh; y+=8)
+ {
+ bitBlt(TQT_TQPAINTDEVICE(this), 0, y, TQT_TQPAINTDEVICE(&mNextScreen), 0, y, mw, 1, CopyROP, true);
+ }
+
+ mi++;
+ if (iyPos[mi] >= 0) return 160;
+ return -1;
+}
+
+
+//----------------------------------------------------------------------------
+int kSlideShowSaver::effectVertLines(bool aInit)
+{
+ static int ixPos[] = { 0, 4, 2, 6, 1, 5, 3, 7, -1 };
+ int x;
+
+ if (aInit)
+ {
+ mw = width();
+ mh = height();
+ mi = 0;
+ }
+
+ if (ixPos[mi] < 0) return -1;
+
+ for (x=ixPos[mi]; x<mw; x+=8)
+ {
+ bitBlt(TQT_TQPAINTDEVICE(this), x, 0, TQT_TQPAINTDEVICE(&mNextScreen), x, 0, 1, mh, CopyROP, true);
+ }
+
+ mi++;
+ if (ixPos[mi] >= 0) return 160;
+ return -1;
+}
+
+
+//-----------------------------------------------------------------------------
+void kSlideShowSaver::startPainter(TQt::PenStyle aPen)
+{
+ TQBrush brush;
+ brush.setPixmap(mNextScreen);
+ if (mPainter.isActive()) mPainter.end();
+ mPainter.begin(this);
+ mPainter.setBrush(brush);
+ mPainter.setPen(aPen);
+}
+
+
+//-----------------------------------------------------------------------------
+void kSlideShowSaver::restart()
+{
+ mEffectRunning = false;
+ mEffect = NULL;
+ blank();
+ slotTimeout();
+}
+
+
+//-----------------------------------------------------------------------------
+void kSlideShowSaver::slotTimeout()
+{
+ int tmout = -1;
+ int i;
+
+ if (mEffectRunning)
+ {
+ tmout = (this->*mEffect)(false);
+ }
+ else
+ {
+ loadNextImage();
+ createNextScreen();
+
+ if (mNumEffects > 1) i = TDEApplication::random() % mNumEffects;
+ else i = 0;
+
+ mEffect = mEffectList[i];
+ mEffectRunning = true;
+ tmout = (this->*mEffect)(true);
+ }
+ if (tmout <= 0)
+ {
+ tmout = mDelay;
+ mEffectRunning = false;
+ }
+ mTimer.start(tmout, true);
+}
+
+
+//----------------------------------------------------------------------------
+void kSlideShowSaver::showNextScreen()
+{
+ bitBlt(TQT_TQPAINTDEVICE(this), 0, 0, TQT_TQPAINTDEVICE(&mNextScreen), 0, 0,
+ mNextScreen.width(), mNextScreen.height(), CopyROP, true);
+}
+
+
+//----------------------------------------------------------------------------
+void kSlideShowSaver::createNextScreen()
+{
+ TQPainter p;
+ int ww, wh, iw, ih, x, y;
+ double fx, fy;
+
+ if (mNextScreen.size() != size())
+ mNextScreen.resize(size());
+
+ mNextScreen.fill(black);
+
+ p.begin(&mNextScreen);
+
+ mScreenGeo *geoptr = 0;
+ for(geoptr = mGeoList.first(); geoptr; geoptr = mGeoList.next())
+ {
+ loadNextImage();
+
+ iw = mImage.width();
+ ih = mImage.height();
+ ww = geoptr->mW;
+ wh = geoptr->mH;
+
+ if (mFileList.isEmpty())
+ {
+ p.setPen(TQColor("white"));
+ p.drawText(20 + (TDEApplication::random() % (ww>>1)), 20 + (TDEApplication::random() % (wh>>1)),
+ i18n("No images found"));
+ }
+ else
+ {
+ if (mZoomImages)
+ {
+ fx = (double)ww / iw;
+ fy = (double)wh / ih;
+ if (fx > fy) fx = fy;
+ if (fx > 2) fx = 2;
+ iw = (int)(iw * fx);
+ ih = (int)(ih * fx);
+ TQImage scaledImg = mImage.smoothScale(iw, ih);
+
+ x = ((ww - iw) >> 1) + geoptr->mXorg;
+ y = ((wh - ih) >> 1) + geoptr->mYorg;
+
+ p.drawImage(x, y, scaledImg);
+ }
+ else
+ {
+ if(iw >= ww || ih >= wh)
+ {
+ fx = (double)ww / iw;
+ fy = (double)wh / ih;
+ if (fx > fy) fx = fy;
+ if (fx > 2) fx = 2;
+ iw = (int)(iw * fx);
+ ih = (int)(ih * fx);
+ TQImage scaledImg = mImage.smoothScale(iw, ih);
+
+ x = ((ww - iw) >> 1) + geoptr->mXorg;
+ y = ((wh - ih) >> 1) + geoptr->mYorg;
+
+ p.drawImage(x, y, scaledImg);
+ }
+ else
+ {
+ if(mRandomPosition)
+ {
+ x = (TDEApplication::random() % (ww - iw)) + geoptr->mXorg;
+ y = (TDEApplication::random() % (wh - ih)) + geoptr->mYorg;
+ }
+ else
+ {
+ x = ((ww - iw) >> 1) + geoptr->mXorg;
+ y = ((wh - ih) >> 1) + geoptr->mYorg;
+ }
+
+ // bitBlt(TQT_TQPAINTDEVICE(&mNextScreen), x, y, TQT_TQPAINTDEVICE(&mImage), 0, 0, iw, ih, CopyROP, false);
+ p.drawImage(x, y, mImage);
+ }
+ }
+
+ if (mPrintName)
+ {
+ p.setPen(TQColor("black"));
+ for (x=9; x<=11; x++)
+ for (y=21; y>=19; y--)
+ p.drawText(x + geoptr->mXorg, wh-y+geoptr->mYorg, mImageName);
+ p.setPen(TQColor("white"));
+ p.drawText(10 + geoptr->mXorg, wh-20 + geoptr->mYorg, mImageName);
+ }
+ }
+ }
+ p.end();
+}
+
+
+//----------------------------------------------------------------------------
+void kSlideShowSaver::loadNextImage()
+{
+ TQString fname;
+ int num;
+
+ num = mFileList.count();
+ if (num <= 0) //no files in the directory
+ {
+ return;
+ }
+
+ if (mShowRandom)
+ {
+ mFileIdx = TDEApplication::random() % num;
+ fname = mFileList[mFileIdx];
+ mFileList.remove(fname);
+ if (num == 1) //we're about to run out of images
+ {
+ mFileList = mRandomList;
+ }
+ }
+ else
+ {
+ if (mFileIdx >= num) mFileIdx = 0;
+ fname = mFileList[mFileIdx];
+ }
+
+ if (!mImage.load(fname))
+ {
+ kdDebug() << "Failed to load image " << fname << endl;
+ mFileList.remove(fname);
+ mRandomList.remove(fname);
+ if (!mFileList.isEmpty())
+ loadNextImage();
+ return;
+ }
+ mFileIdx++;
+
+ int i, j;
+ i = fname.findRev('.');
+ if (i < 0) i = 32767;
+ j = fname.findRev('/') + 1;
+ if (j < 0) j = 0;
+ mImageName = fname.mid(j, i-j);
+}
+
+
+//----------------------------------------------------------------------------
+void kSlideShowSaver::loadDirectory()
+{
+ mFileIdx = 0;
+ mFileList.clear();
+ traverseDirectory(mDirectory);
+ mRandomList = mFileList;
+}
+
+void kSlideShowSaver::traverseDirectory(const TQString &dirName)
+{
+ TQDir dir(dirName);
+ if (!dir.exists())
+ {
+ return ;
+ }
+ dir.setFilter(TQDir::Dirs | TQDir::Files);
+
+ const TQFileInfoList *fileinfolist = dir.entryInfoList();
+ TQFileInfoListIterator it(*fileinfolist);
+ TQFileInfo *fi;
+ while ((fi = it.current()))
+ {
+ if (fi->fileName() == "." || fi->fileName() == "..")
+ {
+ ++it;
+ continue;
+ }
+ if (fi->isDir() && fi->isReadable() && mSubdirectory)
+ {
+ traverseDirectory(fi->filePath());
+ }
+ else
+ {
+ if (!fi->isDir())
+ {
+ mFileList.append(fi->filePath());
+ }
+ }
+ ++it;
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+void kSlideShowSaver::blank()
+{
+ erase();
+}
+
+
+//=============================================================================
+// Class kSlideShowSetup
+//=============================================================================
+kSlideShowSetup::kSlideShowSetup(TQWidget *aParent, const char *aName)
+ : KDialogBase(aParent, aName, true, i18n( "Setup Slide Show Screen Saver" ),
+ Ok|Cancel|Help, Ok, true )
+{
+ setButtonText( Help, i18n( "A&bout" ) );
+
+ TQWidget *main = makeMainWidget();
+ TQVBoxLayout *top = new TQVBoxLayout( main, 0, spacingHint() );
+
+ cfg = new SlideShowCfg( main, "SlideShowCfg" );
+ top->addWidget( cfg );
+ top->addStretch();
+
+ cfg->mPreview->setFixedSize(220, 170);
+ cfg->mPreview->setBackgroundColor(black);
+ cfg->mPreview->show(); // otherwise saver does not get correct size
+ mSaver = new kSlideShowSaver(cfg->mPreview->winId());
+
+ cfg->mDirChooser->setMode(KFile::Directory | KFile::ExistingOnly);
+ connect(cfg->mDirChooser, TQT_SIGNAL(returnPressed(const TQString &)),
+ TQT_SLOT(slotDirSelected(const TQString &)));
+ connect(cfg->mDirChooser, TQT_SIGNAL(urlSelected(const TQString &)),
+ TQT_SLOT(slotDirSelected(const TQString &)));
+
+ readSettings();
+}
+
+kSlideShowSetup::~kSlideShowSetup()
+{
+ delete mSaver;
+}
+
+//-----------------------------------------------------------------------------
+void kSlideShowSetup::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+
+ config->setGroup("Settings");
+ cfg->mCbxRandom->setChecked(config->readBoolEntry("ShowRandom", true));
+ cfg->mCbxZoom->setChecked(config->readBoolEntry("ZoomImages", false));
+ cfg->mCbxShowName->setChecked(config->readBoolEntry("PrintName", true));
+ cfg->mDelay->setValue(config->readNumEntry("Delay", 20));
+ cfg->mDirChooser->setURL(config->readPathEntry("Directory"));
+ cfg->mCbxSubdirectory->setChecked(config->readBoolEntry("SubDirectory", false));
+ cfg->mCbxRandomPosition->setChecked(config->readBoolEntry("RandomPosition", false));
+}
+
+
+//-----------------------------------------------------------------------------
+void kSlideShowSetup::writeSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+
+ config->setGroup("Settings");
+ config->writeEntry("ShowRandom", cfg->mCbxRandom->isChecked());
+ config->writeEntry("ZoomImages", cfg->mCbxZoom->isChecked());
+ config->writeEntry("PrintName", cfg->mCbxShowName->isChecked());
+ config->writeEntry("Delay", cfg->mDelay->value());
+ config->writePathEntry("Directory", cfg->mDirChooser->url());
+ config->writeEntry("SubDirectory", cfg->mCbxSubdirectory->isChecked());
+ config->writeEntry("RandomPosition", cfg->mCbxRandomPosition->isChecked());
+
+ config->sync();
+
+ if (mSaver)
+ {
+ mSaver->readConfig();
+ mSaver->restart();
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+void kSlideShowSetup::slotDirSelected(const TQString &)
+{
+ writeSettings();
+}
+
+
+//-----------------------------------------------------------------------------
+void kSlideShowSetup::slotOk()
+{
+ writeSettings();
+ accept();
+}
+
+
+//-----------------------------------------------------------------------------
+void kSlideShowSetup::slotHelp()
+{
+ TDEAboutData aboutData( "kslideshow.kss", I18N_NOOP("SlideShow"),
+ version, description, TDEAboutData::License_GPL,
+ "(c) 1999-2003, The KDE Team" );
+ aboutData.addAuthor("Stefan Taferner", 0, "taferner@kde.org");
+ aboutData.addAuthor("Chris Howells", 0, "howells@kde.org");
+ aboutData.addAuthor("Sven Leiber", 0, "s.leiber@web.de");
+
+ KAboutApplication mAbout(&aboutData, this, 0);
+ mAbout.exec();
+}
diff --git a/tdescreensaver/kdesavers/slideshow.h b/tdescreensaver/kdesavers/slideshow.h
new file mode 100644
index 00000000..6d20315b
--- /dev/null
+++ b/tdescreensaver/kdesavers/slideshow.h
@@ -0,0 +1,152 @@
+/* Slide Show Screen Saver
+ * (C) 1999 Stefan Taferner <taferner@kde.org>
+ * (C) 2003 Sven Leiber <s.leiber@web.de>
+ */
+
+
+#ifndef SLIDESHOW_H
+#define SLIDESHOW_H
+
+#include <tqtimer.h>
+#include <tqptrlist.h>
+#include <tqstringlist.h>
+#include <tqpixmap.h>
+#include <tqpainter.h>
+#include <tqimage.h>
+
+#include <tdescreensaver.h>
+#include <kdialogbase.h>
+
+#include "slideshowcfg.h"
+
+class SlideShowCfg;
+
+//-----------------------------------------------------------------------------
+class kSlideShowSaver: public KScreenSaver
+{
+ Q_OBJECT
+
+public:
+ kSlideShowSaver( WId id );
+ virtual ~kSlideShowSaver();
+
+ typedef int (kSlideShowSaver::*EffectMethod)(bool);
+
+ void readConfig();
+
+ void restart();
+
+protected slots:
+ void slotTimeout();
+
+protected:
+ void blank();
+
+ /** Load list of images from directory */
+ virtual void loadDirectory();
+
+ /** Helper for loadDirectory() */
+ virtual void traverseDirectory(const TQString &dirName);
+
+ /** Load next image from list. If the file cannot be read
+ it is automatically removed from the file list.
+ mImage contains the image after loading. */
+ virtual void loadNextImage();
+
+ /** Show next screen, completely, without transition. */
+ virtual void showNextScreen();
+
+ /** Set loaded image to next-screen buffer. */
+ virtual void createNextScreen();
+
+ /** Initialize next-screen buffer. */
+ virtual void initNextScreen();
+
+ /** Register effect methods in effect list. */
+ virtual void registerEffects();
+
+ /** Various effects. If adding one, do not forget to manually
+ add the effect to the list in the registerEffects() method. */
+ int effectHorizLines(bool doInit);
+ int effectVertLines(bool doInit);
+ int effectRandom(bool doInit);
+ int effectGrowing(bool doInit);
+ int effectChessboard(bool doInit);
+ int effectIncomingEdges(bool doInit);
+ int effectBlobs(bool doInit);
+ int effectCircleOut(bool doInit);
+ int effectSweep(bool doInit);
+ int effectMeltdown(bool doInit);
+ int effectSpiralIn(bool doInit);
+ int effectMultiCircleOut(bool doInit);
+
+protected:
+ /** Init mPainter with next-screen's pixmap and call
+ mPainter.begin(&mWidget) */
+ void startPainter(TQt::PenStyle penStyle=NoPen);
+
+protected:
+ struct mScreenGeo {
+ mScreenGeo(int w, int h, int x, int y) : mW(w), mH(h), mXorg(x), mYorg(y) {};
+ int mW;
+ int mH;
+ int mXorg;
+ int mYorg;
+ };
+ TQPtrList<mScreenGeo> mGeoList;
+ bool mEffectRunning;
+ TQTimer mTimer;
+ int mColorContext;
+ TQStringList mFileList;
+ TQStringList mRandomList;
+ int mFileIdx;
+ TQImage mImage;
+ TQPixmap mNextScreen;
+ EffectMethod* mEffectList;
+ EffectMethod mEffect;
+ int mNumEffects;
+ TQPainter mPainter;
+ TQString mImageName;
+
+ // config settings:
+ bool mShowRandom;
+ bool mZoomImages;
+ bool mPrintName;
+ bool mSubdirectory;
+ bool mRandomPosition;
+ int mDelay;
+ TQString mDirectory;
+
+ // values for state of various effects:
+ int mx, my, mw, mh, mdx, mdy, mix, miy, mi, mj, mSubType;
+ int mx0, my0, mx1, my1, mwait;
+ double mfx, mfy, mAlpha, mfd;
+ int* mIntArray;
+};
+
+
+//-----------------------------------------------------------------------------
+class kSlideShowSetup : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ kSlideShowSetup(TQWidget *parent=NULL, const char *name=NULL);
+ ~kSlideShowSetup();
+
+protected:
+ void readSettings();
+
+protected slots:
+ void slotOk();
+ void slotHelp();
+ void writeSettings();
+ void slotDirSelected(const TQString &where);
+
+private:
+ kSlideShowSaver *mSaver;
+ SlideShowCfg *cfg;
+};
+
+#endif /*SLIDESHOW_H*/
+
diff --git a/tdescreensaver/kdesavers/slideshowcfg.ui b/tdescreensaver/kdesavers/slideshowcfg.ui
new file mode 100644
index 00000000..e63dbd55
--- /dev/null
+++ b/tdescreensaver/kdesavers/slideshowcfg.ui
@@ -0,0 +1,176 @@
+<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
+<class>SlideShowCfg</class>
+<widget class="TQWidget">
+ <property name="name">
+ <cstring>Form1</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>243</height>
+ </rect>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <widget class="TQCheckBox" row="7" column="0" rowspan="1" colspan="4">
+ <property name="name">
+ <cstring>mCbxSubdirectory</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Include images from sub-folders</string>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="1" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>mCbxRandom</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Random order</string>
+ </property>
+ </widget>
+ <widget class="KURLRequester" row="6" column="2" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>mDirChooser</cstring>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="0" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>mCbxZoom</cstring>
+ </property>
+ <property name="text">
+ <string>Resi&amp;ze images</string>
+ </property>
+ </widget>
+ <spacer row="7" column="4">
+ <property name="name">
+ <cstring>spacer9</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>161</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQLabel" row="6" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>textLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>I&amp;mage folder:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>mDirChooser</cstring>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="2" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>mCbxShowName</cstring>
+ </property>
+ <property name="text">
+ <string>Show &amp;names</string>
+ </property>
+ </widget>
+ <spacer row="5" column="1">
+ <property name="name">
+ <cstring>spacer11</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>19</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQSpinBox" row="4" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>mDelay</cstring>
+ </property>
+ <property name="suffix">
+ <string> sec</string>
+ </property>
+ <property name="specialValueText">
+ <string></string>
+ </property>
+ <property name="maxValue">
+ <number>240</number>
+ </property>
+ <property name="minValue">
+ <number>1</number>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="4" column="0">
+ <property name="name">
+ <cstring>textLabel1_2</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Delay:</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>mDelay</cstring>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="3" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>mCbxRandomPosition</cstring>
+ </property>
+ <property name="text">
+ <string>Random &amp;position</string>
+ </property>
+ </widget>
+ <widget class="TQFrame" row="0" column="3" rowspan="6" colspan="2">
+ <property name="name">
+ <cstring>mPreview</cstring>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>7</hsizetype>
+ <vsizetype>7</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>NoFrame</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>Plain</enum>
+ </property>
+ </widget>
+ </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+ <connection>
+ <sender>mCbxZoom</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>mCbxRandomPosition</receiver>
+ <slot>setDisabled(bool)</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+ <includehint>klineedit.h</includehint>
+ <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>
diff --git a/tdescreensaver/kdesavers/sspreviewarea.cpp b/tdescreensaver/kdesavers/sspreviewarea.cpp
new file mode 100644
index 00000000..2b8b3c65
--- /dev/null
+++ b/tdescreensaver/kdesavers/sspreviewarea.cpp
@@ -0,0 +1,21 @@
+//============================================================================
+//
+// KRotation screen saver for KDE
+// Copyright (C) 2004 Georg Drenkhahn
+// $Id$
+//
+//============================================================================
+
+#include "sspreviewarea.h"
+#include "sspreviewarea.moc"
+
+SsPreviewArea::SsPreviewArea(TQWidget* parent, const char* name)
+ : TQWidget(parent, name)
+{
+}
+
+void SsPreviewArea::resizeEvent(TQResizeEvent* e)
+{
+ emit resized(e);
+}
+
diff --git a/tdescreensaver/kdesavers/sspreviewarea.h b/tdescreensaver/kdesavers/sspreviewarea.h
new file mode 100644
index 00000000..ab36c4b8
--- /dev/null
+++ b/tdescreensaver/kdesavers/sspreviewarea.h
@@ -0,0 +1,58 @@
+//============================================================================
+//
+// KRotation screen saver for KDE
+// Copyright (C) 2004 Georg Drenkhahn
+// $Id$
+//
+//============================================================================
+
+#ifndef SSPREVIEWAREA_H
+#define SSPREVIEWAREA_H
+
+#include <tqwidget.h>
+
+/** @brief Reimplementation of TQWidget emitting a signal if resized.
+ *
+ * This class is equalt to TQWidget except for the fact that the signal resized()
+ * is emitted if the widget gets resized. By this signaling mechanism it is
+ * possible to resize the embedded GL area object within the screen saver setup
+ * dialog.
+ *
+ * In the constructor of the dialog widget (KPendulumSetup::KPendulumSetup(),
+ * KRotationSetup::KRotationSetup()) the signal SsPreviewArea::resized() is
+ * connected with a slot of the screensaver class
+ * (KPendulumSaver::resizeGlArea(), KRotationSaver::resizeGlArea()). This slot
+ * function calls the reimplemented TQGLWidget::resizeGL() method of the GL
+ * widgets (PendulumGLWidget::resizeGL(), RotationGLWidget::resizeGL()) which
+ * really resizes the GL scenery. */
+class SsPreviewArea : public TQWidget
+{
+ Q_OBJECT
+
+
+ public:
+ /** @brief Constructor for SsPreviewArea
+ * @param parent Pointer tp parent widget, forwarded to the TQWidget
+ * constructor
+ * @param name Pointer to widget name, forwarded to the TQWidget constructor
+ *
+ * The constructor just calls TQWidget::TQWidget() with the given arguments.
+ */
+ SsPreviewArea(TQWidget* parent = NULL, const char* name = NULL);
+
+ protected:
+ /** @brief Called if widget gets resized.
+ * @param e Pointer to the corresponding TQResizeEvent object containing the
+ * resize information
+ *
+ * Reimplemented event handler from TQWidget. Only the signal resized() is
+ * emitted. */
+ virtual void resizeEvent(TQResizeEvent* e);
+
+ signals:
+ /** @brief Signal which is emitted in the resizeEvent() method.
+ * @param e Pointer to the corresponding TQResizeEvent object */
+ void resized(TQResizeEvent* e);
+};
+
+#endif
diff --git a/tdescreensaver/kdesavers/vec3.cpp b/tdescreensaver/kdesavers/vec3.cpp
new file mode 100644
index 00000000..c66730e5
--- /dev/null
+++ b/tdescreensaver/kdesavers/vec3.cpp
@@ -0,0 +1,105 @@
+//============================================================================
+//
+// 3-dim real vector class
+// $Id$
+// Copyright (C) 2004 Georg Drenkhahn
+//
+// This file is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+//============================================================================
+
+#include <math.h>
+#if !defined(NAN)
+static inline double nan__()
+{
+ static const unsigned int one = 1;
+ static const bool BigEndian = (*((unsigned char *) &one) == 0);
+
+ static const unsigned char be_nan_bytes[] = { 0x7f, 0xf8, 0, 0, 0, 0, 0, 0 };
+ static const unsigned char le_nan_bytes[] = { 0, 0, 0, 0, 0, 0, 0xf8, 0x7f };
+
+ return *( ( const double * )( BigEndian ? be_nan_bytes : le_nan_bytes ) );
+}
+# define NAN (::nan__())
+#endif
+
+#include <config.h>
+
+#ifdef HAVE_NUMERIC_LIMITS
+#include <limits>
+#endif
+
+#include <cerrno>
+#include "vec3.h"
+
+template<typename T>
+vec3<T>& vec3<T>::normalize()
+{
+ T n = norm(*this);
+ if (n != 0)
+ {
+ (*this) /= n;
+ }
+ else
+ {
+ errno = EDOM; // indicate domain error
+ // TODO: throw an exception?
+ }
+ return *this;
+}
+
+template<typename T>
+vec3<T>& vec3<T>::rotate(const vec3<T>& r)
+{
+ T phi = norm(r);
+ if (phi != 0)
+ {
+ // part of vector which is parallel to r
+ vec3<T> par(r*(*this)/(r*r) * r);
+ // part of vector which is perpendicular to r
+ vec3<T> perp(*this - par);
+ // rotation direction, size of perp
+ vec3<T> rotdir(norm(perp) * normalized(crossprod(r,perp)));
+ *this = par + cos(phi)*perp + sin(phi)*rotdir;
+ }
+ return *this;
+}
+
+/*--- static member functions ---*/
+
+template<typename T>
+T vec3<T>::cos_angle(const vec3<T>& a, const vec3<T>& b)
+{
+ T den = norm(a) * norm(b);
+ T ret = 0;
+ // if |a|=0 or |b|=0 then angle is not defined. We return NAN in this case.
+ if (den != 0.0)
+ {
+ ret = a*b/den;
+ }
+ else
+ {
+ errno = EDOM; // indicate domain error
+#ifdef HAVE_NUMERIC_LIMITS
+ // TODO test
+ ret = std::numeric_limits<T>::quiet_NaN();
+#else
+ ret = NAN; // return NAN from ISO C99
+#endif
+ }
+ return ret;
+}
+
+template<typename T>
+T vec3<T>::angle(const vec3<T>& a, const vec3<T>& b, const vec3<T>& c)
+{
+ // if |a|=0 or |b|=0 then angle is not defined. We return NAN in this case.
+ T ang = vec3<T>::angle(a,b);
+ return (crossprod(a,b)*c<0) ?
+ T(2.*M_PI)-ang : ang;
+}
+
+// explicite instantiation
+template class vec3<double>;
diff --git a/tdescreensaver/kdesavers/vec3.h b/tdescreensaver/kdesavers/vec3.h
new file mode 100644
index 00000000..62aeb8ed
--- /dev/null
+++ b/tdescreensaver/kdesavers/vec3.h
@@ -0,0 +1,214 @@
+//============================================================================
+//
+// 3-dim real vector class
+// $Id$
+// Copyright (C) 2004 Georg Drenkhahn
+//
+// This file is free software; you can redistribute it and/or modify it under
+// the terms of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+//============================================================================
+
+#ifndef VEC3_H
+#define VEC3_H
+
+#include <valarray>
+
+/** @brief 3-dimensional real vector
+ *
+ * Implements regular 3 dimensional (space) vectors including the common inner
+ * scalar product (2 norm) and the cross product. @a T may be any integer or
+ * float data type which is an acceptable template argument of std::valarray. */
+template<typename T>
+class vec3 : public std::valarray<T>
+{
+ public:
+ /** Default constructor */
+ vec3();
+ /** Constructor with initial element values */
+ vec3(const T&, const T&, const T&);
+ /** Copy constructor */
+ vec3(const std::valarray<T>&);
+ /** Copy constructor */
+ vec3(const std::slice_array<T>&);
+
+ /** Normalize the vector to have a norm of 1. @return Normalized vector if
+ * length is non-zero and otherwise the zero vector. */
+ vec3& normalize();
+
+ /** Rotate the vector (*this) in positive mathematical direction around the
+ * direction given by @a r. The norm of @a r specifies the rotation angle in
+ * radians.
+ * @param r Rotation vector.
+ * @return Rotated vector. */
+ vec3& rotate(const vec3& r);
+
+ /*--- static funcions ---*/
+
+ /** @param a first vector
+ * @param b second vector
+ * @return Cosine of the angle between @a a and @a b. If norm(@a a)==0 or
+ * norm(@a b)==0 the global variable errno is set to EDOM and NAN (or
+ * std::numeric_limits<T>::quiet_NaN()) is returned. */
+ static T cos_angle(const vec3& a, const vec3& b);
+
+ /** @brief Returns the angle between vectors @c a and @a b but with respect
+ * to a preferred rotation direction @a c.
+ *
+ * @param a First vector for angle. Must be | @a a |>0 otherwises NAN is
+ * returned.
+ * @param b Second vector for angle. Must be | @a b |>0 otherwises NAN is
+ * returned.
+ * @param c Indicates the rotation direction. @a c can be any vector which is
+ * not part of the plane spanned by @a a and @a b. If | @a c | = 0 the
+ * smalest possible angle angle is returned.
+ * @return Angle in radians between 0 and 2*Pi or NAN if | @a a |=0 or | @a b
+ * |=0.
+ *
+ * For @a a not parallel to @a b and @a a not antiparallel to @a b the 2
+ * vectors @a a,@a b span a unique plane in the 3-dimensional space. Let @b
+ * n<sub>1</sub> and @b n<sub>2</sub> be the two possible normal vectors for
+ * this plane with |@b n<sub>i</sub> |=1, i={1,2} and @b n<sub>1</sub> = -@b
+ * n<sub>2</sub> .
+ *
+ * Let further @a a and @a b enclose an angle alpha in [0,Pi], then there is
+ * one i in {1,2} so that (alpha*@b n<sub>i</sub> x @a a) * @a b = 0. This
+ * means @a a rotated by the rotation vector alpha*@b n<sub>i</sub> is
+ * parallel to @a b. One could also rotate @a a by (2*Pi-alpha)*(-@b
+ * n<sub>i</sub>) to acomplish the same transformation with
+ * ((2*Pi-alpha)*(-@b n<sub>i</sub>) x @a a) * @a b = 0
+ *
+ * The vector @a c defines the direction of the normal vector to take as
+ * reference. If @a c * @b n<sub>i</sub> > 0 alpha is returned and otherwise
+ * 2*Pi-alpha. If @a a parallel to @a b or @a a parallel to @a b the choice
+ * of @a c does not matter. */
+ static T angle(const vec3& a, const vec3& b, const vec3& c);
+
+ /*--- static inline funcions ---*/
+
+ /** Norm of argument vector.
+ * @param a vector.
+ * @return | @a a | */
+ static T norm(const vec3& a);
+
+ /** Angle between @a a and @a b.
+ * @param a fist vector. Must be | @a a | > 0 otherwises NAN is returned.
+ * @param b second vector. Must be | @a b | > 0 otherwises NAN is returned.
+ * @return Angle in radians between 0 and Pi or NAN if | @a a | = 0 or | @a b
+ * | = 0. */
+ static T angle(const vec3& a, const vec3& b);
+
+ /** Cross product of @a a and @a b.
+ * @param a fist vector.
+ * @param b second vector.
+ * @return Cross product of argument vectors @a a x @a b. */
+ static vec3 crossprod(const vec3& a, const vec3& b);
+
+ /** Normalized version of argument vector.
+ * @param a vector.
+ * @return @a a / | @a a | for | @a a | > 0 and otherwise the zero vector
+ * (=@a a). In the latter case the global variable errno is set to EDOM. */
+ static vec3 normalized(vec3 a);
+};
+
+/*--- inline member functions ---*/
+
+template<typename T>
+inline vec3<T>::vec3()
+ : std::valarray<T>(3)
+{}
+
+template<typename T>
+inline vec3<T>::vec3(const T& a, const T& b, const T& c)
+ : std::valarray<T>(3)
+{
+ (*this)[0] = a;
+ (*this)[1] = b;
+ (*this)[2] = c;
+}
+
+template<typename T>
+inline vec3<T>::vec3(const std::valarray<T>& a)
+ : std::valarray<T>(a)
+{
+}
+
+template<typename T>
+inline vec3<T>::vec3(const std::slice_array<T>& a)
+ : std::valarray<T>(a)
+{
+}
+
+/*--- inline non-member operators ---*/
+
+/** @param a first vector summand
+ * @param b second vector summand
+ * @return Sum vector of vectors @a a and @a b. */
+template<typename T>
+inline vec3<T> operator+(vec3<T> a, const vec3<T>& b)
+{
+ a += b; /* valarray<T>::operator+=(const valarray<T>&) */
+ return a;
+}
+
+/** @param a first vector multiplicant
+ * @param b second vector multiplicant
+ * @return Scalar product of vectors @a a and @a b. */
+template<typename T>
+inline T operator*(vec3<T> a, const vec3<T>& b)
+{
+ a *= b; /* valarray<T>::operator*=(const T&) */
+ return a.sum();
+}
+
+/** @param a scalar multiplicant
+ * @param b vector operand
+ * @return Product vector of scalar @a a and vector @a b. */
+template<typename T>
+inline vec3<T> operator*(const T& a, vec3<T> b)
+{
+ b *= a; /* valarray<T>::operator*=(const T&) */
+ return b;
+}
+
+/** @param a vector operand
+ * @param b scalar multiplicant
+ * @return Product vector of scalar @a b and vector @a a. */
+template<typename T>
+inline vec3<T> operator*(vec3<T> a, const T& b)
+{
+ return b*a; /* vec3<T>::operator*(const T&, vec3<T>) */
+}
+
+/*--- static inline funcions ---*/
+
+template<typename T>
+inline T vec3<T>::norm(const vec3<T>& a)
+{
+ return sqrt(a*a);
+}
+
+template<typename T>
+inline T vec3<T>::angle(const vec3<T>& a, const vec3<T>& b)
+{
+ // returns NAN if cos_angle() returns NAN (TODO: test this case)
+ return acos(cos_angle(a,b));
+}
+
+template<typename T>
+inline vec3<T> vec3<T>::crossprod(const vec3<T>& a, const vec3<T>& b)
+{
+ return vec3<T>(
+ a[1]*b[2] - a[2]*b[1],
+ a[2]*b[0] - a[0]*b[2],
+ a[0]*b[1] - a[1]*b[0]);
+}
+
+template<typename T>
+inline vec3<T> vec3<T>::normalized(vec3<T> a)
+{
+ return a.normalize();
+}
+
+#endif
diff --git a/tdescreensaver/kdesavers/vm.c b/tdescreensaver/kdesavers/vm.c
new file mode 100644
index 00000000..6d4a1af2
--- /dev/null
+++ b/tdescreensaver/kdesavers/vm.c
@@ -0,0 +1,264 @@
+/*
+ * vm.c
+ *
+ * Copyright (c) 2000 Artur Rataj
+ * Distributed under the terms of the GNU General Public License
+ *
+ */
+
+#include "vm.h"
+
+#define ERROR_VALUE INT_MAX
+
+int vm_init_pool( struct tvm_pool** pool,
+ int area_size,
+ int max_stack_size,
+ int max_threads_num ) {
+ int position;
+
+ ( *pool ) = (struct tvm_pool*)malloc( sizeof(struct tvm_pool) );
+ ( *pool )->area_size = area_size;
+ ( *pool )->area = (int*)malloc( (*pool)->area_size*sizeof(int) );
+ ( *pool )->processes = NULL;
+ ( *pool )->max_stack_size = max_stack_size;
+ ( *pool )->max_threads_num = max_threads_num;
+ vm_enable_reverse( *pool, 0 );
+ for( position = 0; position < (*pool)->area_size; ++position )
+ ( *pool )->area[position] = VM_OP_STOP;
+ return 1;
+}
+
+void vm_done_pool( struct tvm_pool* pool ) {
+ struct tvm_process* curr_process;
+ free( pool->area );
+ curr_process = pool->processes;
+ while( curr_process ) {
+ struct tvm_process* tmp_process;
+
+ tmp_process = curr_process;
+ curr_process = curr_process->next;
+ free( tmp_process->stack );
+ free( tmp_process );
+ }
+ free( pool );
+}
+
+static int push( struct tvm_pool* pool,
+ struct tvm_process* process,
+ int value ) {
+ if( process->stack_top == pool->max_stack_size )
+ return ERROR_VALUE;
+ else
+ process->stack[process->stack_top++] = value;
+ return 1;
+}
+
+static int pop( struct tvm_pool* pool,
+ struct tvm_process* process ) {
+ if( process->stack_top == 0 )
+ return ERROR_VALUE;
+ else
+{
+ return process->stack[--process->stack_top];
+}
+}
+
+void vm_modify( struct tvm_pool* pool,
+ int position,
+ int op ) {
+ pool->area[position] = op;
+}
+
+void vm_exec( struct tvm_pool* pool,
+ int position,
+ int age,
+ int reverse ) {
+ struct tvm_process* new_process;
+
+ new_process = (struct tvm_process*)malloc( sizeof(struct tvm_process) );
+ new_process->position = position;
+ new_process->stack = (int*)malloc( pool->max_stack_size*sizeof(int) );
+ new_process->stack_top = 0;
+ new_process->age = age;
+ new_process->reverse = reverse;
+ new_process->next = pool->processes;
+ pool->processes = new_process;
+}
+
+void vm_enable_reverse( struct tvm_pool* pool,
+ const int enabled ) {
+ pool->reverse_enabled = enabled;
+}
+
+int vm_get_reverse( struct tvm_pool* pool ) {
+ if( pool->reverse_enabled )
+ return (int)( vm_random(&(pool->vm_random_data))*2.0/
+ ( VM_RAND_MAX + 1.0 ) );
+ else
+ return 0;
+}
+
+void vm_iterate( struct tvm_pool* pool,
+ char* modified ) {
+ struct tvm_process* prev_process;
+ struct tvm_process* curr_process;
+ struct tvm_process* next_process;
+ int processes_num;
+
+ processes_num = 0;
+ prev_process = NULL;
+ curr_process = pool->processes;
+ while( curr_process ) {
+ int op;
+ int arg;
+ int arg_2;
+ int arg_3;
+
+ ++curr_process->age;
+ next_process = curr_process->next;
+ op = pool->area[curr_process->position];
+ if( curr_process->reverse )
+ --curr_process->position;
+ else
+ ++curr_process->position;
+ curr_process->position = ( curr_process->position + pool->area_size )%
+ pool->area_size;
+ switch( op ) {
+ case VM_OP_WAIT:
+ break;
+
+ case VM_OP_STOP:
+ if( !prev_process )
+ pool->processes = curr_process->next;
+ else
+ prev_process->next = curr_process->next;
+ free( curr_process->stack );
+ free( curr_process );
+ curr_process = prev_process;
+ --processes_num;
+ break;
+
+ case VM_OP_EXEC:
+ if( (arg = pop( pool, curr_process )) == ERROR_VALUE ) {
+ if( !prev_process )
+ pool->processes = curr_process->next;
+ else
+ prev_process->next = curr_process->next;
+ free( curr_process->stack );
+ free( curr_process );
+ curr_process = prev_process;
+ --processes_num;
+ } else {
+ arg = curr_process->position + arg;
+ if( arg < 0 )
+ arg += pool->area_size;
+ if( arg >= pool->area_size )
+ arg -= pool->area_size;
+ vm_exec( pool, arg, curr_process->age, vm_get_reverse(pool) );
+ }
+ break;
+
+ case VM_OP_COPY:
+ if( (arg = pop( pool, curr_process )) == ERROR_VALUE ) {
+ if( !prev_process )
+ pool->processes = curr_process->next;
+ else
+ prev_process->next = curr_process->next;
+ free( curr_process->stack );
+ free( curr_process );
+ curr_process = prev_process;
+ --processes_num;
+ } else if( (arg_2 = pop( pool, curr_process )) == ERROR_VALUE ) {
+ if( !prev_process )
+ pool->processes = curr_process->next;
+ else
+ prev_process->next = curr_process->next;
+ free( curr_process->stack );
+ free( curr_process );
+ curr_process = prev_process;
+ --processes_num;
+ } else if( 1 && (arg_3 = pop( pool, curr_process )) == ERROR_VALUE ) {
+ if( !prev_process )
+ pool->processes = curr_process->next;
+ else
+ prev_process->next = curr_process->next;
+ free( curr_process->stack );
+ free( curr_process );
+ curr_process = prev_process;
+ --processes_num;
+ } else {
+ int count;
+ int direction;
+
+ arg = curr_process->position + arg;
+ if( arg < 0 )
+ arg += pool->area_size;
+ if( arg >= pool->area_size )
+ arg -= pool->area_size;
+ arg_2 = curr_process->position + arg_2;
+ if( arg_2 < 0 )
+ arg_2 += pool->area_size;
+ if( arg_2 >= pool->area_size )
+ arg_2 -= pool->area_size;
+ if( curr_process->reverse )
+ direction = -1;
+ else
+ direction = 1;
+ for( count = 0; count < arg_3; ++count ) {
+ int i, j;
+ int offset;
+
+ offset = count*direction + pool->area_size;
+ i = pool->area[( arg_2 + offset )%pool->area_size];
+ j = pool->area[( arg_2 + offset )%pool->area_size] = pool->area[( arg + offset )%pool->area_size];
+ if( modified && i != j )
+ modified[( arg_2 + offset )%pool->area_size] = 1;
+ }
+ }
+ break;
+
+ default: /* >= VM_OP_PUSH */
+ arg = op - VM_OP_PUSH;
+ if( push(pool, curr_process, arg) == ERROR_VALUE ) {
+ if( !prev_process )
+ pool->processes = curr_process->next;
+ else
+ prev_process->next = curr_process->next;
+ free( curr_process->stack );
+ free( curr_process );
+ curr_process = prev_process;
+ --processes_num;
+ }
+ break;
+ }
+ prev_process = curr_process;
+ curr_process = next_process;
+ ++processes_num;
+ }
+ while( processes_num > pool->max_threads_num ) {
+ int process_num;
+ int curr_process_num;
+
+ process_num = (int)( vm_random(&(pool->vm_random_data))*1.0*processes_num/
+ ( VM_RAND_MAX + 1.0 ) );
+/*
+ process_num = (int)( rand()*1.0*processes_num/
+ ( RAND_MAX + 1.0 ) );
+ */
+ curr_process_num = 0;
+ curr_process = pool->processes;
+ prev_process = NULL;
+ while( curr_process_num != process_num ) {
+ prev_process = curr_process;
+ curr_process = curr_process->next;
+ ++curr_process_num;
+ }
+ if( prev_process )
+ prev_process->next = curr_process->next;
+ else
+ pool->processes = curr_process->next;
+ free( curr_process->stack );
+ free( curr_process );
+ --processes_num;
+ }
+}
diff --git a/tdescreensaver/kdesavers/vm.h b/tdescreensaver/kdesavers/vm.h
new file mode 100644
index 00000000..dc64d241
--- /dev/null
+++ b/tdescreensaver/kdesavers/vm.h
@@ -0,0 +1,52 @@
+#ifndef __VM_H__
+#define __VM_H__
+
+#include <stdlib.h>
+#include <stdio.h> /* !!! */
+#include <limits.h>
+#include "vm_random.h"
+
+#define VM_OP_STOP 1
+#define VM_OP_COPY 2
+#define VM_OP_EXEC 3
+#define VM_OP_WAIT 4
+#define VM_OP_PUSH (INT_MAX/2)
+
+struct tvm_process {
+ int position;
+ int* stack;
+ int stack_top;
+ int age;
+ int reverse;
+ struct tvm_process* next;
+};
+
+struct tvm_pool {
+ int* area;
+ int area_size;
+ struct tvm_process* processes;
+ int max_stack_size;
+ int max_threads_num;
+ int reverse_enabled;
+ struct vm_random_data vm_random_data;
+};
+
+int vm_init_pool( struct tvm_pool** pool,
+ int area_size,
+ int max_stack_size,
+ int max_threads_num );
+void vm_modify( struct tvm_pool* pool,
+ int position,
+ int op );
+void vm_exec( struct tvm_pool* pool,
+ int position,
+ int age,
+ int reverse );
+void vm_enable_reverse( struct tvm_pool* pool,
+ const int enabled );
+int vm_get_reverse( struct tvm_pool* pool );
+void vm_iterate( struct tvm_pool* pool,
+ char* modified );
+void vm_done_pool( struct tvm_pool* pool );
+
+#endif /* !defined( __VM_H__ ) */
diff --git a/tdescreensaver/kdesavers/vm.xbm b/tdescreensaver/kdesavers/vm.xbm
new file mode 100644
index 00000000..3d6e84cd
--- /dev/null
+++ b/tdescreensaver/kdesavers/vm.xbm
@@ -0,0 +1,191 @@
+/* Created with The GIMP */
+#define vm_width 44
+#define vm_height 374
+static unsigned char vm_bits[] = {
+ 0x6d, 0xdb, 0xf6, 0xff, 0xff, 0x0f, 0xdb, 0xb6, 0x55, 0xdb, 0xb6, 0x0d,
+ 0x6d, 0x0b, 0xd0, 0xff, 0x07, 0x06, 0x5b, 0x1d, 0xd0, 0xdb, 0xee, 0x0c,
+ 0xf6, 0xf6, 0x77, 0xff, 0xbf, 0x0f, 0x8d, 0x4a, 0xd4, 0xd6, 0xba, 0x0d,
+ 0x05, 0x37, 0xe8, 0xd3, 0x4f, 0x0e, 0x27, 0x2c, 0xd1, 0x9a, 0xce, 0x0c,
+ 0x62, 0x1a, 0xd3, 0xdd, 0xeb, 0x0c, 0x52, 0x94, 0xa2, 0x39, 0xcf, 0x09,
+ 0x73, 0x9a, 0xd2, 0xde, 0xeb, 0x0e, 0xd2, 0x94, 0xd3, 0x39, 0xef, 0x09,
+ 0x53, 0x8a, 0x62, 0xdd, 0xa5, 0x0e, 0x62, 0x1c, 0xe3, 0x9a, 0xef, 0x0c,
+ 0x03, 0x16, 0xd0, 0xd5, 0x46, 0x0d, 0x0e, 0x75, 0xd8, 0xcb, 0x1f, 0x0d,
+ 0xdb, 0xae, 0x6a, 0x77, 0xff, 0x07, 0xd6, 0xaa, 0xed, 0xfe, 0xb6, 0x0e,
+ 0x5d, 0x5f, 0xdb, 0xf7, 0xff, 0x0f, 0x75, 0xf5, 0xd6, 0xbe, 0xb5, 0x0d,
+ 0xab, 0x95, 0xfa, 0xeb, 0xff, 0x07, 0x7a, 0xb7, 0xab, 0x7f, 0xb7, 0x0e,
+ 0xd7, 0x5a, 0xd5, 0xef, 0xfd, 0x0f, 0xad, 0x76, 0x77, 0xdd, 0xb7, 0x0d,
+ 0xf5, 0x0d, 0xd0, 0x7f, 0x47, 0x0c, 0x57, 0x1b, 0xd0, 0xf7, 0x5e, 0x0d,
+ 0x5a, 0xf5, 0xdb, 0xfe, 0xfb, 0x07, 0x6b, 0x97, 0xda, 0xad, 0xaf, 0x0e,
+ 0x85, 0x1a, 0xf4, 0xe5, 0x56, 0x0f, 0x87, 0x36, 0xa8, 0xe9, 0x1f, 0x0d,
+ 0x9a, 0xed, 0xec, 0xb7, 0x75, 0x0f, 0x16, 0x9b, 0xa8, 0xe7, 0x6f, 0x0d,
+ 0x8d, 0x76, 0xdc, 0xb7, 0x3f, 0x0f, 0x9d, 0xd5, 0xd4, 0xe6, 0x76, 0x0d,
+ 0x8b, 0xb6, 0xfc, 0xef, 0x5f, 0x0f, 0x9d, 0xad, 0xa4, 0xad, 0x5d, 0x0d,
+ 0x03, 0x34, 0xd0, 0xa5, 0x17, 0x0d, 0x06, 0x14, 0xc0, 0x91, 0x5e, 0x08,
+ 0xfd, 0xef, 0x7e, 0xff, 0xfb, 0x0f, 0xab, 0xaa, 0xe5, 0x77, 0xd7, 0x0f,
+ 0x6a, 0x5d, 0xdd, 0xdf, 0x7f, 0x0d, 0xde, 0xd5, 0x55, 0xfd, 0xf6, 0x0f,
+ 0x55, 0xb7, 0xf6, 0xef, 0xdf, 0x0a, 0xdb, 0xb6, 0xd6, 0x7d, 0xfb, 0x0f,
+ 0xb6, 0xea, 0xda, 0xef, 0x6f, 0x07, 0xb6, 0xaf, 0xb6, 0xbd, 0xfd, 0x0e,
+ 0x6d, 0x15, 0xd0, 0xef, 0x07, 0x0d, 0x5b, 0x1b, 0xd0, 0xfd, 0xae, 0x0c,
+ 0x76, 0xed, 0xdb, 0xef, 0xfb, 0x07, 0x8d, 0x5b, 0x5a, 0x5b, 0x5f, 0x0f,
+ 0x05, 0x16, 0xf0, 0xe5, 0x8b, 0x0e, 0x23, 0x14, 0xd1, 0x4c, 0x6f, 0x0c,
+ 0x72, 0x9e, 0xd2, 0x9e, 0xb3, 0x0d, 0x56, 0xd4, 0xf2, 0xbd, 0xff, 0x0c,
+ 0x1b, 0xbb, 0xd0, 0xc7, 0x36, 0x0d, 0x1b, 0xd6, 0x50, 0xdf, 0x7f, 0x0e,
+ 0xc6, 0x35, 0xfe, 0xf1, 0x96, 0x0b, 0x42, 0x16, 0xc2, 0xab, 0xaf, 0x0d,
+ 0x01, 0x0a, 0x70, 0x94, 0x45, 0x0e, 0x03, 0x1e, 0xd0, 0xa9, 0x4b, 0x0c,
+ 0xfd, 0xd2, 0xeb, 0xfe, 0xff, 0x07, 0xab, 0x5e, 0xdd, 0x6f, 0xdd, 0x0e,
+ 0xed, 0xb5, 0xd5, 0xfd, 0xf7, 0x0f, 0x5b, 0xab, 0xb6, 0x6f, 0xbf, 0x0d,
+ 0xd6, 0x76, 0xdb, 0xfd, 0xed, 0x07, 0xb5, 0xd6, 0xd6, 0xdb, 0xdf, 0x0e,
+ 0xef, 0x5a, 0xdd, 0x7f, 0xfb, 0x0f, 0xaa, 0xb7, 0xd5, 0xee, 0xbf, 0x0d,
+ 0x5d, 0x15, 0xf0, 0x7b, 0x03, 0x0c, 0xeb, 0x16, 0x50, 0xff, 0xb7, 0x0d,
+ 0x5d, 0xfb, 0xeb, 0x6b, 0xff, 0x0e, 0x55, 0x4b, 0x5c, 0xef, 0xad, 0x0d,
+ 0x03, 0x1d, 0xf0, 0xd1, 0x4f, 0x0e, 0x22, 0x14, 0xd1, 0x9d, 0xd6, 0x0c,
+ 0x57, 0x6e, 0xd3, 0xb6, 0xef, 0x0c, 0x3a, 0xda, 0xd0, 0x97, 0xbd, 0x0d,
+ 0x07, 0x55, 0xe8, 0xeb, 0x2f, 0x06, 0x2d, 0x5e, 0x51, 0x97, 0xfd, 0x0c,
+ 0x5d, 0xb4, 0xe2, 0x5f, 0xb7, 0x0d, 0x75, 0xea, 0xa3, 0x5d, 0xff, 0x09,
+ 0x03, 0x1a, 0xd0, 0xd6, 0x25, 0x0e, 0x02, 0x16, 0xf0, 0x88, 0xa7, 0x0c,
+ 0xef, 0xb5, 0xce, 0xf7, 0xdf, 0x0f, 0xad, 0xd6, 0xda, 0x7f, 0xbd, 0x0d,
+ 0xb5, 0xad, 0x6d, 0xef, 0xf7, 0x07, 0xb7, 0x6d, 0xeb, 0xdd, 0xdf, 0x0e,
+ 0xda, 0x5a, 0xdd, 0x7f, 0xfd, 0x0f, 0x56, 0xb7, 0xd5, 0xf6, 0xaf, 0x0d,
+ 0xfb, 0x6a, 0xdb, 0xdf, 0xfd, 0x0e, 0x56, 0xdb, 0xda, 0xfd, 0xed, 0x0d,
+ 0xb5, 0x0d, 0xd0, 0xb7, 0x07, 0x06, 0x6d, 0x1b, 0xd0, 0xfe, 0xdf, 0x0c,
+ 0xdb, 0xf6, 0xdb, 0xb7, 0xf6, 0x0f, 0xb6, 0x95, 0xda, 0xfe, 0xbf, 0x0d,
+ 0x0d, 0x7b, 0xe8, 0xc7, 0x36, 0x0f, 0x1b, 0xd6, 0xd8, 0xd6, 0x3f, 0x0c,
+ 0x06, 0x2b, 0xe8, 0xd3, 0x56, 0x0f, 0x25, 0x3a, 0xa8, 0xcb, 0x5f, 0x0d,
+ 0x23, 0x17, 0xe9, 0x6c, 0x4d, 0x0e, 0x23, 0x1a, 0xd9, 0xcd, 0x6b, 0x0d,
+ 0x02, 0x0b, 0xd0, 0xd4, 0x27, 0x0d, 0x02, 0x1a, 0xd0, 0x92, 0x26, 0x0d,
+ 0x2f, 0x76, 0xf0, 0xe7, 0x5f, 0x0e, 0x0a, 0x6a, 0xd0, 0x8e, 0x5d, 0x0c,
+ 0xfd, 0xad, 0xd7, 0xfb, 0xff, 0x07, 0x95, 0xb5, 0xb6, 0xff, 0xb5, 0x0f,
+ 0x7b, 0xd7, 0xda, 0xad, 0xff, 0x0e, 0x56, 0xbd, 0xb6, 0xff, 0xdb, 0x0d,
+ 0x75, 0xeb, 0xea, 0x5d, 0xff, 0x07, 0xd7, 0xaa, 0xae, 0xfb, 0xb6, 0x0e,
+ 0x5a, 0xd7, 0xf5, 0xff, 0xff, 0x0f, 0x76, 0x5d, 0xad, 0x6d, 0xab, 0x0d,
+ 0xad, 0x15, 0xd0, 0xff, 0x17, 0x0c, 0x6d, 0x17, 0x70, 0xdb, 0xd6, 0x0d,
+ 0xdb, 0xfa, 0xeb, 0xff, 0x7f, 0x07, 0xda, 0x96, 0xd6, 0xb6, 0xed, 0x0f,
+ 0x03, 0x2a, 0xd0, 0xc9, 0x17, 0x0c, 0x05, 0x1a, 0xd0, 0xa9, 0x4e, 0x0d,
+ 0xf3, 0x97, 0x6f, 0xfd, 0xeb, 0x0f, 0x02, 0x1a, 0xe8, 0xc5, 0x0f, 0x0d,
+ 0x03, 0x16, 0xd0, 0xaa, 0xad, 0x0c, 0x76, 0xb4, 0xd3, 0x9d, 0xff, 0x09,
+ 0x5b, 0x6e, 0xe1, 0xbf, 0x6a, 0x0d, 0x76, 0x58, 0x47, 0xb7, 0xff, 0x0d,
+ 0x01, 0x86, 0xf0, 0xcc, 0x26, 0x0c, 0x03, 0x1d, 0xd0, 0xc9, 0x4d, 0x0d,
+ 0xdd, 0x56, 0xed, 0xf7, 0xf7, 0x0f, 0xb5, 0x6d, 0xad, 0x7e, 0xbf, 0x0d,
+ 0xd7, 0xda, 0xda, 0xf7, 0xed, 0x07, 0xbd, 0xab, 0xdb, 0xaf, 0xbf, 0x0e,
+ 0x55, 0x5d, 0x75, 0xff, 0xed, 0x0f, 0xed, 0x75, 0xd7, 0xba, 0xff, 0x0d,
+ 0x5b, 0xab, 0xda, 0xff, 0x5a, 0x0f, 0xb6, 0x6e, 0xdb, 0xed, 0xff, 0x0d,
+ 0x6d, 0x1b, 0x70, 0xbf, 0x05, 0x06, 0x6b, 0x15, 0xd0, 0xf7, 0xaf, 0x0c,
+ 0xae, 0xdb, 0xeb, 0xbe, 0xfb, 0x0f, 0x5a, 0xb6, 0xda, 0x6f, 0x7f, 0x0d,
+ 0x05, 0x2a, 0xd0, 0xd2, 0x15, 0x0d, 0x47, 0x3e, 0xd0, 0xab, 0xaf, 0x0d,
+ 0xb1, 0x85, 0xef, 0xfc, 0xeb, 0x0e, 0x83, 0x1d, 0xd8, 0x65, 0x97, 0x0d,
+ 0x01, 0x0b, 0x68, 0xd4, 0x23, 0x0e, 0x23, 0x0a, 0xd1, 0x99, 0xe7, 0x0c,
+ 0x38, 0x8e, 0x71, 0xde, 0xf6, 0x06, 0x63, 0x1a, 0xe3, 0x9c, 0xc7, 0x0c,
+ 0x21, 0x16, 0xe8, 0xea, 0xad, 0x0e, 0x07, 0x35, 0xd8, 0xa3, 0x1f, 0x0d,
+ 0xad, 0xd7, 0xea, 0xfe, 0xfa, 0x0f, 0xb5, 0xb6, 0xd6, 0xef, 0xb7, 0x0d,
+ 0xdb, 0xda, 0x6d, 0x7b, 0xff, 0x07, 0xb6, 0xab, 0xda, 0xef, 0xad, 0x0e,
+ 0x6d, 0xdd, 0x76, 0xff, 0xff, 0x0f, 0xab, 0xd5, 0xea, 0xb6, 0xb5, 0x0d,
+ 0xdd, 0xae, 0xed, 0xff, 0xff, 0x07, 0xdb, 0xba, 0x55, 0xdb, 0xb6, 0x0e,
+ 0xb6, 0x15, 0xd0, 0xff, 0x47, 0x0c, 0x6d, 0x17, 0x70, 0xdb, 0xae, 0x0d,
+ 0xd5, 0xfa, 0xd7, 0xff, 0xff, 0x0e, 0xbd, 0x26, 0x6d, 0xdb, 0xda, 0x0d,
+ 0x03, 0x1c, 0xe0, 0xa1, 0x27, 0x0a, 0x02, 0x2a, 0x50, 0x97, 0xcf, 0x0c,
+ 0x77, 0x9a, 0xf3, 0x5d, 0xef, 0x0e, 0x6a, 0xb6, 0xa2, 0xbf, 0xdd, 0x0c,
+ 0x17, 0x6a, 0xf1, 0xca, 0x7f, 0x0d, 0x7d, 0xae, 0xd1, 0x5f, 0xeb, 0x0e,
+ 0x15, 0x5b, 0xe9, 0xef, 0x3f, 0x06, 0x37, 0x75, 0x59, 0x4d, 0xfb, 0x0e,
+ 0x9a, 0xd6, 0xd4, 0xf7, 0x2f, 0x0f, 0x96, 0xad, 0xd8, 0xe7, 0x7d, 0x0d,
+ 0x6d, 0xdb, 0x76, 0xbf, 0xff, 0x07, 0xdb, 0xb6, 0xd6, 0xfd, 0xd5, 0x0e,
+ 0xb6, 0xd5, 0xed, 0xb7, 0xff, 0x0f, 0xad, 0xb6, 0xda, 0xfe, 0xae, 0x0d,
+ 0x75, 0xdb, 0xd6, 0xdb, 0xfb, 0x07, 0x6f, 0xab, 0xb5, 0xff, 0xbf, 0x0e,
+ 0xaa, 0x5d, 0xdb, 0xad, 0xf5, 0x0f, 0xba, 0xd5, 0xd6, 0xff, 0xbf, 0x0d,
+ 0xd7, 0x0e, 0x70, 0xbb, 0x43, 0x0c, 0xb5, 0x1a, 0xd0, 0x77, 0x57, 0x0d,
+ 0xef, 0xed, 0xeb, 0xfe, 0xff, 0x07, 0x0a, 0x5b, 0xdc, 0xd7, 0xad, 0x0e,
+ 0x05, 0x15, 0xd0, 0x68, 0x8f, 0x0e, 0x23, 0x1e, 0xd1, 0x95, 0xad, 0x0c,
+ 0x79, 0x94, 0xf2, 0xde, 0xf7, 0x0c, 0x43, 0x96, 0xd2, 0x59, 0xc7, 0x0d,
+ 0x05, 0x2d, 0xd0, 0xca, 0x1d, 0x06, 0x05, 0x2a, 0xd8, 0xd3, 0x57, 0x0e,
+ 0x73, 0x8e, 0xd3, 0x9c, 0xe7, 0x0c, 0x52, 0x9a, 0xd2, 0xbd, 0xee, 0x0d,
+ 0x21, 0x16, 0x70, 0x95, 0xa3, 0x0c, 0x07, 0x2d, 0xd0, 0xd3, 0x1f, 0x0d,
+ 0x55, 0xdb, 0x76, 0xef, 0xf7, 0x0f, 0xdd, 0x56, 0xd5, 0xbd, 0xbe, 0x0d,
+ 0x6b, 0xdd, 0x76, 0xff, 0xeb, 0x07, 0xad, 0xd5, 0xd6, 0xdb, 0xbf, 0x0e,
+ 0x7b, 0xbb, 0xed, 0x7e, 0xef, 0x0f, 0x56, 0xab, 0xda, 0xf7, 0xfd, 0x0d,
+ 0x75, 0x6d, 0xeb, 0xde, 0x57, 0x0f, 0xd7, 0xdb, 0xda, 0xfd, 0xfe, 0x0d,
+ 0x5a, 0x15, 0xe0, 0xb7, 0x07, 0x06, 0x76, 0x17, 0x50, 0xff, 0xb7, 0x0c,
+ 0xad, 0xfa, 0xef, 0x6d, 0xfd, 0x0f, 0xcb, 0x27, 0xda, 0xfb, 0xaf, 0x0d,
+ 0x05, 0x1a, 0xe8, 0xa4, 0x0b, 0x0f, 0x22, 0x96, 0xd0, 0x55, 0x77, 0x0c,
+ 0x19, 0x8d, 0x69, 0xee, 0x73, 0x07, 0x71, 0x14, 0xe1, 0x9c, 0xe7, 0x0c,
+ 0x03, 0x8e, 0xf0, 0xc6, 0x16, 0x0e, 0x05, 0x1a, 0xc0, 0x95, 0xaf, 0x0c,
+ 0x2b, 0x6d, 0x79, 0xdb, 0xdd, 0x06, 0x3d, 0x5b, 0xd1, 0xdf, 0x7b, 0x0e,
+ 0x01, 0x15, 0xd8, 0x62, 0x97, 0x0e, 0x43, 0x17, 0xda, 0xea, 0x97, 0x0d,
+ 0xb5, 0xad, 0xf5, 0x7e, 0xeb, 0x0f, 0xad, 0xba, 0xd6, 0xed, 0xbf, 0x0d,
+ 0x7b, 0x6b, 0xed, 0xbf, 0xff, 0x07, 0xd6, 0xd6, 0x55, 0x7b, 0xb5, 0x0e,
+ 0xb5, 0xad, 0xee, 0xff, 0xff, 0x0f, 0x6d, 0xdb, 0x5a, 0xeb, 0xb6, 0x0d,
+ 0xdb, 0xb6, 0xf5, 0xbf, 0xff, 0x07, 0xb6, 0xad, 0x56, 0xfb, 0xb5, 0x0e,
+ 0x55, 0xdb, 0xed, 0xef, 0xff, 0x0f, 0xee, 0x16, 0xd0, 0xbe, 0x06, 0x0c,
+ 0xb5, 0x1a, 0xf0, 0xf7, 0x57, 0x0d, 0xd7, 0xd6, 0xcf, 0xfe, 0xfe, 0x0f,
+ 0xaa, 0x2d, 0xf8, 0xd5, 0xab, 0x0a, 0x03, 0x1b, 0xa0, 0xa5, 0x17, 0x0f,
+ 0x06, 0x35, 0xd8, 0xd5, 0xaf, 0x06, 0x0d, 0x6e, 0xd0, 0xab, 0x3d, 0x0e,
+ 0x25, 0x2a, 0x79, 0xdb, 0xd7, 0x0c, 0x67, 0x3a, 0xd3, 0x99, 0xce, 0x0d,
+ 0x02, 0x14, 0xe0, 0xa2, 0x17, 0x04, 0x03, 0x14, 0xc0, 0x2d, 0x57, 0x09,
+ 0x70, 0x08, 0x43, 0x5a, 0xea, 0x0a, 0x41, 0x08, 0xc2, 0x98, 0xc2, 0x01,
+ 0xf7, 0x7b, 0xdb, 0xff, 0x7f, 0x0f, 0xad, 0x56, 0xdb, 0xf7, 0xef, 0x0f,
+ 0xb5, 0x75, 0x75, 0x5f, 0xbd, 0x0e, 0xb7, 0x56, 0xd7, 0xfd, 0xf7, 0x0d,
+ 0xea, 0xed, 0xda, 0xf7, 0xbe, 0x07, 0x5e, 0xab, 0xd6, 0xde, 0x77, 0x0f,
+ 0xd5, 0x6e, 0xdd, 0xff, 0xfe, 0x0d, 0xb5, 0xda, 0xb5, 0xdb, 0xb7, 0x0f,
+ 0xef, 0x56, 0xeb, 0x7e, 0xfb, 0x06, 0xd5, 0x1a, 0xd0, 0xf7, 0x07, 0x0c,
+ 0xad, 0x0b, 0xd0, 0xde, 0xee, 0x0e, 0x7b, 0xfb, 0xf7, 0xfd, 0xdd, 0x0d,
+ 0x05, 0x0d, 0xa8, 0xeb, 0xb7, 0x0e, 0x03, 0x1a, 0x60, 0x09, 0x87, 0x08,
+ 0xa2, 0x14, 0xe5, 0xb5, 0x6f, 0x0d, 0xa7, 0x3c, 0xa5, 0x3b, 0xcd, 0x09,
+ 0x46, 0x14, 0xe2, 0xac, 0x6f, 0x0d, 0x05, 0x34, 0xc0, 0x91, 0x4e, 0x08,
+ 0xa5, 0x18, 0xc2, 0x6d, 0xab, 0x0b, 0xa7, 0x31, 0xce, 0x79, 0xce, 0x03,
+ 0x02, 0x0c, 0xc0, 0x4a, 0x17, 0x0a, 0x02, 0x18, 0xc0, 0x49, 0x57, 0x0a,
+ 0xfb, 0xf7, 0x7f, 0xff, 0xfd, 0x0f, 0x56, 0xad, 0xd4, 0xbf, 0xb7, 0x0d,
+ 0xad, 0x55, 0xeb, 0xfa, 0xfd, 0x0f, 0x7b, 0x77, 0xdd, 0xdf, 0x6f, 0x0d,
+ 0x55, 0xad, 0xeb, 0x76, 0xfb, 0x07, 0x6e, 0x6b, 0xd5, 0xff, 0x6f, 0x0f,
+ 0xb5, 0xfd, 0xff, 0xb6, 0xff, 0x0f, 0xb6, 0xfd, 0xff, 0x7f, 0xff, 0x0f,
+ 0x6d, 0xfb, 0x7f, 0xfb, 0xff, 0x0f, 0xdb, 0xfe, 0xff, 0x6f, 0xff, 0x0f,
+ 0xb6, 0xfd, 0x7f, 0xfb, 0xff, 0x0f, 0x55, 0xfb, 0xff, 0x7f, 0xff, 0x0f,
+ 0x07, 0x7e, 0x70, 0xa3, 0x1f, 0x0e, 0x05, 0x18, 0xe0, 0x25, 0x07, 0x08,
+ 0x71, 0x9c, 0x63, 0x9c, 0xe7, 0x08, 0xd1, 0x8c, 0xe7, 0x3d, 0xe3, 0x09,
+ 0x69, 0xcb, 0x7f, 0xfe, 0xf3, 0x0f, 0xd9, 0xce, 0xff, 0xec, 0xf3, 0x0f,
+ 0xa9, 0xcd, 0x7f, 0xbf, 0xf3, 0x0f, 0x71, 0x8d, 0x6f, 0x7a, 0xe3, 0x0f,
+ 0x01, 0x1c, 0xe0, 0x94, 0x47, 0x09, 0x07, 0x38, 0xe0, 0x23, 0x0f, 0x0c,
+ 0xad, 0xff, 0xfc, 0xfd, 0x7f, 0x0f, 0x6d, 0xfd, 0xbf, 0xdf, 0xff, 0x0f,
+ 0xb5, 0xfd, 0xff, 0x7d, 0xff, 0x0f, 0x6f, 0xfb, 0xff, 0xeb, 0xff, 0x0f,
+ 0xda, 0xfe, 0x7f, 0x7f, 0xff, 0x0f, 0xab, 0xfd, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0x83, 0x1f, 0xfc, 0xe4, 0x57, 0x0f, 0x01, 0x0e, 0xf0, 0x80, 0x07, 0x0c,
+ 0x03, 0x1c, 0xe0, 0x08, 0x47, 0x08, 0xe7, 0x1c, 0xe7, 0x3d, 0xef, 0x09,
+ 0xe3, 0x9c, 0xe7, 0x38, 0xc7, 0x09, 0x03, 0x1e, 0xe0, 0x81, 0x0f, 0x0c,
+ 0x03, 0x1f, 0xf8, 0xc1, 0x0f, 0x0e, 0xe3, 0x1f, 0xff, 0xfd, 0xef, 0x0f,
+ 0x83, 0x1f, 0xfc, 0xe0, 0x07, 0x0f, 0x83, 0x1f, 0xfc, 0xe0, 0x07, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0x0f, 0x3f, 0xf8, 0xe3, 0x1f, 0x0f, 0x03, 0x1e, 0xf0, 0x81, 0x07, 0x0c,
+ 0x73, 0x9e, 0xf3, 0x9c, 0xe7, 0x0c, 0x73, 0x9e, 0xf3, 0xbc, 0xe7, 0x0d,
+ 0xc3, 0x1f, 0xfc, 0xf8, 0x87, 0x0f, 0x07, 0x3e, 0xf0, 0x81, 0x0f, 0x0c,
+ 0x3f, 0xfe, 0xf1, 0x9f, 0x7f, 0x0c, 0x7b, 0x9c, 0xe3, 0xbe, 0xf7, 0x0d,
+ 0x21, 0x0e, 0xf0, 0x88, 0x43, 0x0c, 0x03, 0x1e, 0xf0, 0xc0, 0x07, 0x0c,
+ 0xdf, 0xff, 0xfc, 0xff, 0x7f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xb5, 0xfa, 0xff, 0xff, 0xff, 0x0f, 0x6e, 0xff, 0x7f, 0x55, 0xff, 0x0f,
+ 0xd5, 0xfa, 0xff, 0xff, 0xff, 0x0f, 0xbb, 0xfe, 0xbf, 0x7b, 0xff, 0x0f,
+ 0xd6, 0xfd, 0xff, 0xef, 0xff, 0x0f, 0xb5, 0xfa, 0x7f, 0x7d, 0xff, 0x0f,
+ 0x55, 0x8e, 0xf3, 0xd7, 0xf7, 0x0e, 0x41, 0x0c, 0x61, 0x18, 0xc3, 0x08,
+ 0x21, 0x1c, 0xf3, 0x9e, 0xc7, 0x0c, 0x27, 0x3a, 0xf0, 0x51, 0x0f, 0x0e,
+ 0x8a, 0x7b, 0xb8, 0xe3, 0x1f, 0x0f, 0x0b, 0x7e, 0x7c, 0xaf, 0x1f, 0x0f,
+ 0x06, 0x3b, 0xf8, 0xe1, 0x0e, 0x0e, 0x22, 0x1e, 0xf1, 0x9d, 0x4f, 0x0c,
+ 0x21, 0x08, 0xa1, 0xa8, 0xc2, 0x08, 0x21, 0x08, 0x61, 0x1a, 0x43, 0x08,
+ 0xdd, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x5b, 0xfd, 0xff, 0xeb, 0xff, 0x0f,
+ 0x6a, 0xfb, 0xbf, 0xbf, 0xff, 0x0f, 0xdd, 0xfe, 0x7f, 0x7d, 0xff, 0x0f,
+ 0xab, 0xfd, 0xff, 0xf7, 0xff, 0x0f, 0xba, 0xfa, 0xff, 0xbf, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x01, 0x0c, 0x60, 0x80, 0x03, 0x0c,
+ 0x01, 0x0e, 0x70, 0x80, 0x03, 0x0c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f };
diff --git a/tdescreensaver/kdesavers/vm.xpm b/tdescreensaver/kdesavers/vm.xpm
new file mode 100644
index 00000000..8d00a5b3
--- /dev/null
+++ b/tdescreensaver/kdesavers/vm.xpm
@@ -0,0 +1,493 @@
+/* XPM */
+static const char *vm[] = {
+/* columns rows colors chars-per-pixel */
+"44 374 113 2",
+" c #005e00",
+". c #003c63",
+"X c #003b00",
+"o c #00263e",
+"O c #00b3ed",
+"+ c #00c3ff",
+"@ c #007095",
+"# c #007ba0",
+"$ c #0086b9",
+"% c #0095cb",
+"& c #005474",
+"* c #005e80",
+"= c #006d00",
+"- c #008d00",
+"; c #004a74",
+": c #006997",
+"> c #004500",
+", c #005900",
+"< c #002f49",
+"1 c #00425f",
+"2 c #00ec00",
+"3 c #00dc00",
+"4 c #009400",
+"5 c #008a00",
+"6 c #009c00",
+"7 c #00cc00",
+"8 c #0077a8",
+"9 c #00a5dc",
+"0 c #006200",
+"q c #008000",
+"w c #004b6a",
+"e c #00688a",
+"r c #00bc00",
+"t c #007600",
+"y c #007d00",
+"u c #005985",
+"i c #004f00",
+"p c #003854",
+"a c #00ac00",
+"s c #006c00",
+"d c #5d5e00",
+"f c Gray0",
+"g c #3b3b00",
+"h c #6f7000",
+"j c #b7b700",
+"k c #c9c900",
+"l c #a5a600",
+"z c #939400",
+"x c Gray11",
+"c c #8d8d8d",
+"v c #aaaaaa",
+"b c #717171",
+"n c #555555",
+"m c #464600",
+"M c #737300",
+"N c #7e7e00",
+"B c #686800",
+"V c #5c5d00",
+"C c Gray7",
+"Z c Gray35",
+"A c Gray42",
+"S c Gray28",
+"D c Gray21",
+"F c Yellow",
+"G c Gray100",
+"H c #a0a000",
+"J c #a0a0a0",
+"K c #eded00",
+"L c #818200",
+"P c #e2e2e2",
+"I c Gray22",
+"U c #959500",
+"Y c #515200",
+"T c #8e8e8e",
+"R c #232323",
+"E c #dbdb00",
+"W c #c6c6c6",
+"Q c #8a8a00",
+"! c #7c7c7c",
+"~ c #2a2a2a",
+"^ c #6a6a6a",
+"/ c #808080",
+"( c Gray25",
+") c #1b1b1b",
+"_ c #434343",
+"` c #515151",
+"' c #282828",
+"] c #c0c0c0",
+"[ c #797979",
+"{ c #151515",
+"} c Gray5",
+"| c #959595",
+" . c Gray37",
+".. c #610000",
+"X. c #3d0000",
+"o. c #840000",
+"O. c #960000",
+"+. c #730000",
+"@. c #530000",
+"#. c #5e0000",
+"$. c #480000",
+"%. c #dc0000",
+"&. c Red",
+"*. c #ca0000",
+"=. c #8a0000",
+"-. c #a00000",
+";. c #7f0000",
+":. c #a70000",
+">. c #ed0000",
+",. c #690000",
+"<. c #950000",
+"1. c #b80000",
+"2. c #740000",
+/* pixels */
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" = - - . . . . ; : : . . . . X X X X > , , X X X X o o o o < 1 1 o o o o ",
+" - 2 2 2 3 = . . . : + + + O ; . . X X X , 4 4 4 5 > X X o o o 1 # # # @ < o o ",
+" = 2 3 - 6 2 7 . . ; + O : 8 + 9 . . X X > 4 5 , 0 4 q X X o o < # @ 1 w # e o o ",
+" 6 2 - r 2 = . . 8 + : . . % + ; . X X 0 4 , X X t 4 > X o o w # 1 o o * # < o ",
+" r 2 - 2 - . . % + . . . : + : . X X t 4 X X X , 4 , X o o * # o o o 1 # 1 o ",
+" r 2 - 2 - . . % + . . . : + : . X X t 4 X X X , 4 , X o o * # o o o 1 # 1 o ",
+" r 2 - 2 - . . % + . . . : + : . X X t 4 X X X , 4 , X o o * # o o o 1 # 1 o ",
+" r 2 - 2 - . . % + . . . : + : . X X t 4 X X X , 4 , X o o * # o o o 1 # 1 o ",
+" 6 2 - r 2 = . . 8 + : . . % + ; . X X 0 4 , X X t 4 > X o o w # 1 o o * # < o ",
+" = 2 3 - 6 2 7 . . ; + O : 8 + 9 . . X X > 4 5 , 0 4 q X X o o < # @ 1 w # e o o ",
+" - 2 2 2 3 = . . . : + + + O ; . . X X X , 4 4 4 5 > X X o o o 1 # # # @ < o o ",
+" = - - . . . . ; : : . . . . X X X X > , , X X X X o o o o < 1 1 o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" y . . . . . . u . . . . X X X X X X i X X X X o o o o o o p o o o o ",
+" = a r 2 2 . . ; $ % + + . . . . X X > s t 4 4 X X X X o o < & * # # o o o o ",
+" y 2 3 3 2 . . u + O O + . . . . X X i 4 5 5 4 X X X X o o p # @ @ # o o o o ",
+" r 2 . . . . . % + . . . . X X X X X t 4 X X X X o o o o o * # o o o o ",
+" r 2 . . . . . % + . . . . X X X X X t 4 X X X X o o o o o * # o o o o ",
+" r 2 . . . . . % + . . . . X X X X X t 4 X X X X o o o o o * # o o o o ",
+" r 2 . . . . . % + . . . . X X X X X t 4 X X X X o o o o o * # o o o o ",
+" r 2 . . . . . % + . . . . X X X X X t 4 X X X X o o o o o * # o o o o ",
+" r 2 . . . . . % + . . . . X X X X X t 4 X X X X o o o o o * # o o o o ",
+" = r r 3 2 r r - . . ; % % O + % % : . X X > t t 5 4 t t , X o o < * * @ # * * 1 o ",
+" y 2 2 2 2 2 2 a . . u + + + + + + $ . X X i 4 4 4 4 4 4 s X o o p # # # # # # & o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" y - y . . . . u : u . . . . X X X X i , i X X X X o o o o p 1 p o o o o ",
+" = 7 2 2 2 7 = . . ; 9 + + + 9 ; . . X X > q 4 4 4 q > X X o o < e # # # e < o o ",
+" 7 2 a - a 2 7 . . 9 + $ : $ + 9 . . X X q 4 s , s 4 q X X o o e # & 1 & # e o o ",
+" 3 a r 2 . . O $ . . . % + . . X X 5 s X X X t 4 X X o o @ & o o o * # o o ",
+" = 3 3 . . . . . . ; O O . . X X X X X X > 5 5 X X o o o o o o < @ @ o o ",
+" = 3 2 - . . . . . ; O + : . . X X X X X > 5 4 , X X o o o o o < @ # 1 o o ",
+" = 3 2 a . . . . ; O + $ . . . X X X X > 5 4 s X X X o o o o < @ # & o o o ",
+" - 3 2 - . . . : O + : . . . . X X X , 5 4 , X X X X o o o 1 @ # 1 o o o o ",
+" - 2 3 y - a . . : + O u . : $ . . X X , 4 5 i X , s X X o o 1 # @ p o 1 & o o ",
+" - 2 2 7 r r 3 2 . : + + 9 % % O + . . X , 4 4 q t t 5 4 X X o 1 # # e * * @ # o o ",
+" - 2 2 2 2 2 2 2 . : + + + + + + + . . X , 4 4 4 4 4 4 4 X X o 1 # # # # # # # o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" y - - . . . . u : : . . . . X X X X i , , X X X X o o o o p 1 1 o o o o ",
+" = 3 2 2 2 3 = . . ; O + + + O ; . . X X > 5 4 4 4 5 > X X o o < @ # # # @ < o o ",
+" r 2 6 - 6 2 7 . . % + 8 : 8 + 9 . . X X t 4 0 , 0 4 q X X o o * # w 1 w # e o o ",
+" = y r 2 . . ; u . . . % + . . X X > i X X X t 4 X X o o < p o o o * # o o ",
+" = - 6 2 7 . . . . ; : 8 + 9 . . X X X X > , 0 4 q X X o o o o < 1 w # e o o ",
+" r 2 2 2 = . . . . % + + + ; . . X X X X t 4 4 4 > X X o o o o * # # # < o o ",
+" = - a 2 r . . . . ; : $ + % . . X X X X > , s 4 t X X o o o o < 1 & # * o o ",
+" 6 2 y . . . . . . . 8 + u . X X X X X X X 0 4 i X o o o o o o o w # p o ",
+" 6 2 - . . . . . . . 8 + : . X X X X X X X 0 4 , X o o o o o o o w # 1 o ",
+" a 6 - - a 2 2 = . . $ 8 : : $ + + ; . X X s 0 , , s 4 4 > X o o & w 1 1 & # # < o ",
+" 7 2 2 2 2 3 - . . 9 + + + + O : . . X X q 4 4 4 4 5 , X X o o e # # # # @ 1 o o ",
+" y - - y . . . u : : u . . . . X X X i , , i X X X X o o o p 1 1 p o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" 7 2 r . . . . . 9 + % . . . X X X X X q 4 t X X X o o o o o e # * o o o ",
+" - 2 2 r . . . . : + + % . . . X X X X , 4 4 t X X X o o o o 1 # # * o o o ",
+" 3 3 2 r . . . . O O + % . . . X X X X 5 5 4 t X X X o o o o @ @ # * o o o ",
+" a 2 - 2 r . . . $ + : + % . . . X X X s 4 , 4 t X X X o o o & # 1 # * o o o ",
+" = 2 7 2 r . . ; + 9 . + % . . . X X > 4 q X 4 t X X X o o < # e o # * o o o ",
+" 7 2 y 2 r . . 9 + u . + % . . . X X q 4 i X 4 t X X X o o e # p o # * o o o ",
+" y 2 3 r r 2 3 - . u + O % % + O : . . X i 4 5 t t 4 5 , X X o p # @ * * # @ 1 o o ",
+" - 2 2 2 2 2 2 a . : + + + + + + $ . . X , 4 4 4 4 4 4 s X X o 1 # # # # # # & o o ",
+" - r 2 3 - . . . . : % + O : . . X X X X , t 4 5 , X X o o o o 1 * # @ 1 o o ",
+" a 2 2 2 a . . . . $ + + + $ . . X X X X s 4 4 4 s X X o o o o & # # # & o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" - 2 2 2 2 2 a . . : + + + + + $ . . X X , 4 4 4 4 4 s X X o o 1 # # # # # & o o ",
+" - 2 7 r r r - . . : + 9 % % % : . . X X , 4 q t t t , X X o o 1 # e * * * 1 o o ",
+" - 2 - . . : + : . . . . . . X X , 4 , X X X X X X o o 1 # 1 o o o o o o ",
+" - 2 7 2 2 a . . : + 9 + + $ . . . X X , 4 q 4 4 s X X X o o 1 # e # # & o o o ",
+" - 2 3 r 7 2 r . . : + O % 9 + % . . X X , 4 5 t q 4 t X X o o 1 # @ * e # * o o ",
+" - r 2 y . . . : . . . % + u . X X X , X X X t 4 i X o o o 1 o o o * # p o ",
+" - 2 - . . . . . . . : + : . X X X X X X X , 4 , X o o o o o o o 1 # 1 o ",
+" 6 2 - . . . . . . . 8 + : . X X X X X X X 0 4 , X o o o o o o o w # 1 o ",
+" y 2 a - - a 2 3 . u + $ : : $ + O . . X i 4 s , , s 4 5 X X o p # & 1 1 & # @ o o ",
+" = 7 2 2 2 2 3 = . ; 9 + + + + O ; . . X > q 4 4 4 4 5 > X X o < e # # # # @ < o o ",
+" = - - y . . . ; : : u . . . . X X X > , , i X X X X o o o < 1 1 p o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" = - - . . . . . ; : : . . . X X X X X > , , X X X o o o o o < 1 1 o o o ",
+" = 7 2 2 2 a . . . ; 9 + + + $ . . X X X > q 4 4 4 s X X o o o < e # # # & o o ",
+" = 3 2 r - a - . . ; O + % : $ : . . X X > 5 4 t , s , X X o o < @ # * 1 & 1 o o ",
+" a 2 - . . $ + : . . . . . . X X s 4 , X X X X X X o o & # 1 o o o o o o ",
+" 2 a 6 r 6 . . + $ 8 % 8 . . . . X X 4 s 0 t 0 X X X X o o # & w * w o o o o ",
+" - 2 3 2 2 2 3 . : + O + + + O . . . X , 4 5 4 4 4 5 X X X o 1 # @ # # # @ o o o ",
+" - 2 2 6 a 2 6 . : + + 8 . $ + 8 . . X , 4 4 0 X s 4 0 X X o 1 # # w o & # w o o ",
+" - 2 7 2 r . : + 9 . . . + % . . X , 4 q X X X 4 t X X o 1 # e o o o # * o o ",
+" 2 3 = 2 r . . + O . . ; + % . . X X 4 5 X X > 4 t X X o o # @ o o < # * o o ",
+" r 2 r - r 2 y . . % + % : % + u . . X X t 4 t , t 4 i X X o o * # * 1 * # p o o ",
+" = 7 2 2 2 r . . ; 9 + + + % . . . X X > q 4 4 4 t X X X o o < e # # # * o o o ",
+" y - = . . . . u : ; . . . . X X X X i , > X X X X o o o o p 1 < o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" - 2 2 2 2 2 2 - . . : + + + + + + : . X X , 4 4 4 4 4 4 , X o o 1 # # # # # # 1 o ",
+" - 2 7 r r 7 2 . . : + 9 % % 9 + . . X X , 4 q t t q 4 X X o o 1 # e * * e # o o ",
+" = r = r 3 . . ; % ; . . % O . . X X > t > X X t 5 X X o o < * < o o * @ o o ",
+" 2 r . . . . . . . + % . . X X X X X X X 4 t X X o o o o o o o # * o o ",
+" - 2 - . . . . . . : + : . . X X X X X X , 4 , X X o o o o o o 1 # 1 o o ",
+" a 2 . . . . . . $ + . . . X X X X X X s 4 X X X o o o o o o & # o o o ",
+" 3 7 . . . . . . O 9 . . . X X X X X X 5 q X X X o o o o o o @ e o o o ",
+" y 2 6 . . . . . u + 8 . . . X X X X X i 4 0 X X X o o o o o p # w o o o ",
+" a 2 = . . . . . $ + ; . . . X X X X X s 4 > X X X o o o o o & # < o o o ",
+" a 3 . . . . . $ O . . . . X X X X X s 5 X X X X o o o o o & @ o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" y - y . . . . u : u . . . . X X X X i , i X X X X o o o o p 1 p o o o o ",
+" = 7 2 2 2 7 = . . ; 9 + + + 9 ; . . X X > q 4 4 4 q > X X o o < e # # # e < o o ",
+" 7 2 a - a 2 7 . . 9 + $ : $ + 9 . . X X q 4 s , s 4 q X X o o e # & 1 & # e o o ",
+" 2 r r 2 . . + % . . . % + . . X X 4 t X X X t 4 X X o o # * o o o * # o o ",
+" 7 3 y y 3 7 . . 9 O u . u O 9 . . X X q 5 i X i 5 q X X o o e @ p o p @ e o o ",
+" = 7 2 2 2 7 = . . ; 9 + + + 9 ; . . X X > q 4 4 4 q > X X o o < e # # # e < o o ",
+" = 3 3 r 3 3 = . . ; O O % O O ; . . X X > 5 5 t 5 5 > X X o o < @ @ * @ @ < o o ",
+" 3 3 3 7 . . O O . . . O 9 . . X X 5 5 X X X 5 q X X o o @ @ o o o @ e o o ",
+" 2 r r 2 . . + % . . . % + . . X X 4 t X X X t 4 X X o o # * o o o * # o o ",
+" 7 2 a - a 2 7 . . 9 + $ : $ + 9 . . X X q 4 s , s 4 q X X o o e # & 1 & # e o o ",
+" = 3 2 2 2 3 = . . ; O + + + O ; . . X X > 5 4 4 4 5 > X X o o < @ # # # @ < o o ",
+" y - y . . . . u : u . . . . X X X X i , i X X X X o o o o p 1 p o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" = - - . . . ; : : . . . . . X X X > , , X X X X X o o o < 1 1 o o o o o ",
+" - 2 2 2 3 - . . : + + + O : . . . X X , 4 4 4 5 , X X X o o 1 # # # @ 1 o o o ",
+" 2 3 - 6 2 3 = . . + O : 8 + O ; . . X X 4 5 , 0 4 5 > X X o o # @ 1 w # @ < o o ",
+" - 2 - a 2 - . : + : . . $ + : . . X , 4 , X X s 4 , X X o 1 # 1 o o & # 1 o o ",
+" - 2 6 6 2 r . : + 8 . . 8 + % . . X , 4 0 X X 0 4 t X X o 1 # w o o w # * o o ",
+" 3 3 - a 2 2 r . . O O : $ + + % . . X X 5 5 , s 4 4 t X X o o @ @ 1 & # # * o o ",
+" - 2 2 2 r 2 r . . : + + + % + % . . X X , 4 4 4 t 4 t X X o o 1 # # # * # * o o ",
+" = - y 6 2 - . . . ; : u 8 + : . . X X X > , i 0 4 , X X o o o < 1 p w # 1 o o ",
+" = 3 3 . . . . . ; O O . . . X X X X X > 5 5 X X X o o o o o < @ @ o o o ",
+" = r - a 2 2 - . ; % : $ + + : . . . X > t , s 4 4 , X X X o < * 1 & # # 1 o o o ",
+" y 2 2 2 3 - . u + + + O : . . . . X i 4 4 4 5 , X X X X o p # # # @ 1 o o o o ",
+" = - y . . ; : u . . . . . . X X > , i X X X X X X o o < 1 p o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" = - - - - . . ; : : : : . . . . X X > , , , , X X X X o o < 1 1 1 1 o o o o ",
+" 6 2 2 2 2 - . . 8 + + + + : . . . X X 0 4 4 4 4 , X X X o o w # # # # 1 o o o ",
+" = - 7 2 2 7 . . ; : 9 + + 9 . . . X X > , q 4 4 q X X X o o < 1 e # # e o o o ",
+" 3 3 7 2 = . . . . O O 9 + ; . . X X X X 5 5 q 4 > X X o o o o @ @ e # < o o ",
+" - 2 6 y 2 a . . . : + 8 u + $ . . X X X , 4 0 i 4 s X X o o o 1 # w p # & o o ",
+" 7 2 3 2 . . . 9 + . . O + . . X X X q 4 X X 5 4 X X o o o e # o o @ # o o ",
+" y 2 2 2 2 2 2 6 . . u + + + + + + 8 . X X i 4 4 4 4 4 4 0 X o o p # # # # # # w o ",
+" a 2 r r r r 2 7 . . $ + % % % % + 9 . X X s 4 t t t t 4 q X o o & # * * * * # e o ",
+" a 2 2 r = a 3 2 r . $ + + % ; . $ O + % X s 4 4 t > X s 5 4 t o & # # * < o & @ # * ",
+" 3 2 2 2 y 3 2 2 2 . O + + + u . O + + + X 5 4 4 4 i X 5 4 4 4 o @ # # # p o @ # # # ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . O + + + + + + . . X X X X X X X X X X X o o @ # # # # # # o o ",
+" . . $ % % % % % % . . X X X X X X X X X X X o o & * * * * * * o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" y - - - - - . . u : : : : : . . . X X i , , , , , X X X o o p 1 1 1 1 1 o o o ",
+" 2 2 2 2 2 2 3 - . . + + + + + + O : . X X 4 4 4 4 4 4 5 , X o o # # # # # # @ 1 o ",
+" y 2 7 - - 6 2 3 . . u + 9 : : 8 + O . X X i 4 q , , 0 4 5 X o o p # e 1 1 w # @ o ",
+" 2 r r 2 . . . + % . . . % + . X X X 4 t X X X t 4 X o o o # * o o o * # o ",
+" 2 7 - - a 2 a . . . + 9 : : $ + $ . X X X 4 q , , s 4 s X o o o # e 1 1 & # & o ",
+" 2 2 2 2 2 2 a . . . + + + + + + $ . X X X 4 4 4 4 4 4 s X o o o # # # # # # & o ",
+" 2 7 - - - 7 2 6 . . . + 9 : : : 9 + 8 X X X 4 q , , , q 4 0 o o o # e 1 1 1 e # w ",
+" 2 r 2 r . . . + % . . . . + % X X X 4 t X X X X 4 t o o o # * o o o o # * ",
+" a 2 3 r r r 7 2 6 . . $ + O % % % 9 + 8 X X s 4 5 t t t q 4 0 o o & # @ * * * e # w ",
+" 3 2 2 2 2 2 3 a . . O + + + + + O $ . X X 5 4 4 4 4 4 5 s X o o @ # # # # # @ & o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+" . . . . . . . . . . . X X X X X X X X X X X o o o o o o o o o o o ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"d d d h j k k l z h d f f f x c v v b n x f g g g m M N N B V m g f f f C Z A A S D C f ",
+"d d z F F F F F F k d f f n G G G G G G v f g g V H H H H H H N g f f D J J J J J J A f ",
+"d h F K L d h j F k d f x G P I f x c G v f g m H U Y g m M H N g f C J T R f C Z J A f ",
+"d l F l d d d d E j d f b G b f f f f W c f g B H B g g g g Q M g f S J S f f f f ! Z f ",
+"d k F d d d d d d d d f v G f f f f f f f f g N H g g g g g g g g f A J f f f f f f f f ",
+"d k F d d d d d d d d f v G f f f f f f f f g N H g g g g g g g g f A J f f f f f f f f ",
+"d k F d d d d d d d d f v G f f f f f f f f g N H g g g g g g g g f A J f f f f f f f f ",
+"d l F l d d d d h L d f b G b f f f f x I f g B H B g g g g m Y g f S J S f f f f C R f ",
+"d d K F E z z l K F d f f P G W n n b P G f g g U H Q V V B U H g f f T J ! D D S T J f ",
+"d d h k F F F F K z d f f x v G G G G P n f g g m N H H H H U V g f f C A J J J J T D f ",
+"d d d d h z z L d d d f f f f x n n I f f f g g g g m V V Y g g g f f f f C D D R f f f ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"d d d d d d d d d d d f f f f f f f f f f f g g g g g g g g g g g f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f n n n n n x f f f f f n n n n n x f f f f f D D D D D C f f f f f D D D D D C f f f ",
+"f n G G G G G G v f f f n G G G G G G v f f f D J J J J J J A f f f D J J J J J J A f f ",
+"f f c G c n n W G b f f f c G c n n W G b f f f Z J Z D D ! J S f f f Z J Z D D ! J S f ",
+"f f n G n f f f G v f f f n G n f f f G v f f f D J D f f f J A f f f D J D f f f J A f ",
+"f f n G n f f x G v f f f n G n f f x G v f f f D J D f f C J A f f f D J D f f C J A f ",
+"f f n G W v v G G I f f f n G W v v G G I f f f D J ! A A J J R f f f D J ! A A J J R f ",
+"f f n G G G G W I f f f f n G G G G W I f f f f D J J J J ! R f f f f D J J J J ! R f f ",
+"f f n G n f f f f f f f f n G n f f f f f f f f D J D f f f f f f f f D J D f f f f f f ",
+"f x W G W v c f f f f f x W G W v c f f f f f C ! J ! A Z f f f f f C ! J ! A Z f f f f ",
+"f I G G G G P f f f f f I G G G G P f f f f f R J J J J T f f f f f R J J J J T f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f ~ ^ / / ( ~ f f f f f I c v v n I f f f f f ) _ ` ` ' ) f f f f f R Z A A D R f f ",
+"f f ( ] ] ] ] ] ] f f f f n G G G G G G f f f f ' [ [ [ [ [ [ f f f f D J J J J J J f f ",
+"f f v v ~ f { v ] f f f f P P I f x P G f f f f A A ) f } A [ f f f f T T R f C T J f f ",
+"f f ] | f f f ( ^ f f f f G W f f f n c f f f f [ .f f f ' _ f f f f J ! f f f D Z f f ",
+"f f | ] | ^ ( f f f f f f W G W c n f f f f f f .[ ._ ' f f f f f f ! J ! Z D f f f f ",
+"f f f ^ v ] ] ] ^ f f f f f c P G G G c f f f f f _ A [ [ [ _ f f f f f Z T J J J Z f f ",
+"f f f f f ~ n v ] ~ f f f f f f I b P G I f f f f f f ) D A [ ) f f f f f f R S T J R f ",
+"f ~ ] ~ f f f ( ] ( f f I G I f f f n G n f f ) [ ) f f f ' [ ' f f R J R f f f D J D f ",
+"f ( ] v n ( n v ] { f f n G P b n b P G x f f ' [ A D ' D A [ } f f D J T S D S T J C f ",
+"f ~ ] v ] ] ] ] ( f f f I G P G G G G n f f f ) [ A [ [ [ [ ' f f f R J T J J J J D f f ",
+"f f f f ~ ( ( f f f f f f f f I n n f f f f f f f f ) ' ' f f f f f f f f R D D f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"..o.O.O.+...+.O.O.o...f I n n x f x n n I f X.@.#.#.$.X.$.#.#.@.X.f R D D C f C D D R f ",
+"..%.&.&.*...O.&.&.&...f W G G v f n G G G f X.=.-.-.;.X.#.-.-.-.X.f ! J J A f D J J J f ",
+"..o.%.&.:...+.&.>.o...f I W G b f x G P I f X.@.=.-.,.X.$.-.<.@.X.f R ! J S f C J T R f ",
+"....+.>.&.:.>.&.o.....f f x P G b P G I f f X.X.$.<.-.,.<.-.@.X.X.f f C T J S T J R f f ",
+"......+.>.&.&.O.......f f f x P G G n f f f X.X.X.$.<.-.-.#.X.X.X.f f f C T J J D f f f ",
+"........*.&.>.+.......f f f f v G P x f f f X.X.X.X.;.-.<.$.X.X.X.f f f f A J T C f f f ",
+"......*.&.%.&.%.......f f f v G W G W f f f X.X.X.;.-.=.-.=.X.X.X.f f f A J ! J ! f f f ",
+"....O.&.*...:.&.*.....f f n G v f b G v f f X.X.#.-.;.X.,.-.;.X.X.f f D J A f S J A f f ",
+"..1.&.&.*...O.&.&.%.+.f c G G v f n G G W x X.2.-.-.;.X.#.-.-.=.$.f Z J J A f D J J ! C ",
+"..>.&.&.>...1.&.&.&.o.f P G G P f c G G G I X.<.-.-.<.X.2.-.-.-.@.f T J J T f Z J J J R ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"......................f f f f f f f f f f f X.X.X.X.X.X.X.X.X.X.X.f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f P G G G G G G G I f f P G G G G G G G I f f T J J J J J J J R f f T J J J J J J J R f ",
+"f c v v v v v v v x f f c v v v v v v v x f f Z A A A A A A A C f f Z A A A A A A A C f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f ",
+"f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f "
+};
diff --git a/tdescreensaver/kdesavers/vm_random.c b/tdescreensaver/kdesavers/vm_random.c
new file mode 100644
index 00000000..ea0cd96a
--- /dev/null
+++ b/tdescreensaver/kdesavers/vm_random.c
@@ -0,0 +1,379 @@
+/*
+ * Copyright (c) 1983 Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the University of California, Berkeley. The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ * Please note that as of July 22, 1999, the licensees and distributors
+ * are no longer required to include the above mentioned acknowledgement
+ * within advertising materials. For full details see
+ * ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
+ */
+
+/*
+ * This is derived from the Berkeley source:
+ * @(#)random.c 5.5 (Berkeley) 7/6/88
+ * It was reworked for the GNU C Library by Roland McGrath.
+ * Rewritten to be reentrant by Ulrich Drepper, 1995
+ */
+
+#include <limits.h>
+#include <stdlib.h>
+#include "vm_random.h"
+
+/* An improved random number generation package. In addition to the standard
+ rand()/srand() like interface, this package also has a special state info
+ interface. The initstate() routine is called with a seed, an array of
+ bytes, and a count of how many bytes are being passed in; this array is
+ then initialized to contain information for random number generation with
+ that much state information. Good sizes for the amount of state
+ information are 32, 64, 128, and 256 bytes. The state can be switched by
+ calling the setstate() function with the same array as was initialized
+ with initstate(). By default, the package runs with 128 bytes of state
+ information and generates far better random numbers than a linear
+ congruential generator. If the amount of state information is less than
+ 32 bytes, a simple linear congruential R.N.G. is used. Internally, the
+ state information is treated as an array of longs; the zeroth element of
+ the array is the type of R.N.G. being used (small integer); the remainder
+ of the array is the state information for the R.N.G. Thus, 32 bytes of
+ state information will give 7 longs worth of state information, which will
+ allow a degree seven polynomial. (Note: The zeroth word of state
+ information also has some other information stored in it; see setstate
+ for details). The random number generation technique is a linear feedback
+ shift register approach, employing trinomials (since there are fewer terms
+ to sum up that way). In this approach, the least significant bit of all
+ the numbers in the state table will act as a linear feedback shift register,
+ and will have period 2^deg - 1 (where deg is the degree of the polynomial
+ being used, assuming that the polynomial is irreducible and primitive).
+ The higher order bits will have longer periods, since their values are
+ also influenced by pseudo-random carries out of the lower bits. The
+ total period of the generator is approximately deg*(2**deg - 1); thus
+ doubling the amount of state information has a vast influence on the
+ period of the generator. Note: The deg*(2**deg - 1) is an approximation
+ only good for large deg, when the period of the shift register is the
+ dominant factor. With deg equal to seven, the period is actually much
+ longer than the 7*(2**7 - 1) predicted by this formula. */
+
+
+
+/* For each of the currently supported random number generators, we have a
+ break value on the amount of state information (you need at least this many
+ bytes of state info to support this random number generator), a degree for
+ the polynomial (actually a trinomial) that the R.N.G. is based on, and
+ separation between the two lower order coefficients of the trinomial. */
+
+/* Linear congruential. */
+#define TYPE_0 0
+#define BREAK_0 8
+#define DEG_0 0
+#define SEP_0 0
+
+/* x**7 + x**3 + 1. */
+#define TYPE_1 1
+#define BREAK_1 32
+#define DEG_1 7
+#define SEP_1 3
+
+/* x**15 + x + 1. */
+#define TYPE_2 2
+#define BREAK_2 64
+#define DEG_2 15
+#define SEP_2 1
+
+/* x**31 + x**3 + 1. */
+#define TYPE_3 3
+#define BREAK_3 128
+#define DEG_3 31
+#define SEP_3 3
+
+/* x**63 + x + 1. */
+#define TYPE_4 4
+#define BREAK_4 256
+#define DEG_4 63
+#define SEP_4 1
+
+
+/* Array versions of the above information to make code run faster.
+ Relies on fact that TYPE_i == i. */
+
+#define MAX_TYPES 5 /* Max number of types above. */
+
+struct vm_random_poly_info
+{
+ int seps[MAX_TYPES];
+ int degrees[MAX_TYPES];
+};
+
+static struct vm_random_poly_info vm_random_poly_info =
+{
+ { SEP_0, SEP_1, SEP_2, SEP_3, SEP_4 },
+ { DEG_0, DEG_1, DEG_2, DEG_3, DEG_4 }
+};
+
+static int32_t vm_randtbl[DEG_3 + 1] =
+ {
+ TYPE_3,
+
+ -1726662223, 379960547, 1735697613, 1040273694, 1313901226,
+ 1627687941, -179304937, -2073333483, 1780058412, -1989503057,
+ -615974602, 344556628, 939512070, -1249116260, 1507946756,
+ -812545463, 154635395, 1388815473, -1926676823, 525320961,
+ -1009028674, 968117788, -123449607, 1284210865, 435012392,
+ -2017506339, -911064859, -370259173, 1132637927, 1398500161,
+ -205601318,
+ };
+
+/* Initialize the random number generator based on the given seed. If the
+ type is the trivial no-state-information type, just remember the seed.
+ Otherwise, initializes state[] based on the given "seed" via a linear
+ congruential generator. Then, the pointers are set to known locations
+ that are exactly rand_sep places apart. Lastly, it cycles the state
+ information a given number of times to get rid of any initial dependencies
+ introduced by the L.C.R.N.G. Note that the initialization of randtbl[]
+ for default usage relies on values produced by this routine. */
+int vm_srandom (unsigned int seed,
+ struct vm_random_data* buf)
+{
+ int type;
+ int32_t *state;
+ long int i;
+ long int word;
+ int32_t *dst;
+ int kc;
+
+ if (buf == NULL)
+ goto fail;
+ type = buf->vm_rand_type;
+ if ((unsigned int) type >= MAX_TYPES)
+ goto fail;
+
+ state = buf->state;
+ /* We must make sure the seed is not 0. Take arbitrarily 1 in this case. */
+ if (seed == 0)
+ seed = 1;
+ state[0] = seed;
+ if (type == TYPE_0)
+ goto done;
+
+ dst = state;
+ word = seed;
+ kc = buf->vm_rand_deg;
+ for (i = 1; i < kc; ++i)
+ {
+ /* This does:
+ state[i] = (16807 * state[i - 1]) % 2147483647;
+ but avoids overflowing 31 bits. */
+ long int hi = word / 127773;
+ long int lo = word % 127773;
+ word = 16807 * lo - 2836 * hi;
+ if (word < 0)
+ word += 2147483647;
+ *++dst = word;
+ }
+
+ buf->fptr = &state[buf->vm_rand_sep];
+ buf->rptr = &state[0];
+ kc *= 10;
+ while (--kc >= 0)
+ {
+ vm_random (buf);
+ }
+
+ done:
+ return 0;
+
+ fail:
+ return -1;
+}
+
+/* Initialize the state information in the given array of N bytes for
+ future random number generation. Based on the number of bytes we
+ are given, and the break values for the different R.N.G.'s, we choose
+ the best (largest) one we can and set things up for it. srandom is
+ then called to initialize the state information. Note that on return
+ from srandom, we set state[-1] to be the type multiplexed with the current
+ value of the rear pointer; this is so successive calls to initstate won't
+ lose this information and will be able to restart with setstate.
+ Note: The first thing we do is save the current state, if any, just like
+ setstate so that it doesn't matter when initstate is called.
+ Returns a pointer to the old state. */
+int vm_initstate (unsigned int seed,
+ void* arg_state,
+ size_t n,
+ struct vm_random_data* buf)
+{
+ int type;
+ int degree;
+ int separation;
+ int32_t *state;
+
+ if (buf == NULL)
+ goto fail;
+
+ if (n >= BREAK_3)
+ type = n < BREAK_4 ? TYPE_3 : TYPE_4;
+ else if (n < BREAK_1)
+ {
+ if (n < BREAK_0)
+ {
+ goto fail;
+ }
+ type = TYPE_0;
+ }
+ else
+ type = n < BREAK_2 ? TYPE_1 : TYPE_2;
+
+ degree = vm_random_poly_info.degrees[type];
+ separation = vm_random_poly_info.seps[type];
+
+ buf->vm_rand_type = type;
+ buf->vm_rand_sep = separation;
+ buf->vm_rand_deg = degree;
+ state = &((int32_t *) arg_state)[1]; /* First location. */
+ /* Must set END_PTR before srandom. */
+ buf->end_ptr = &state[degree];
+
+ buf->state = state;
+
+ vm_srandom (seed, buf);
+
+ state[-1] = TYPE_0;
+ if (type != TYPE_0)
+ state[-1] = (buf->rptr - state) * MAX_TYPES + type;
+
+ return 0;
+
+ fail:
+ return -1;
+}
+
+/* Restore the state from the given state array.
+ Note: It is important that we also remember the locations of the pointers
+ in the current state information, and restore the locations of the pointers
+ from the old state information. This is done by multiplexing the pointer
+ location into the zeroth word of the state information. Note that due
+ to the order in which things are done, it is OK to call setstate with the
+ same state as the current state
+ Returns a pointer to the old state information. */
+int vm_setstate (void* arg_state,
+ struct vm_random_data* buf)
+{
+ int32_t *new_state = (int32_t *) arg_state;
+ int type;
+ int old_type;
+ int32_t *old_state;
+ int degree;
+ int separation;
+
+ if (buf == NULL)
+ goto fail;
+
+ old_type = buf->vm_rand_type;
+ old_state = buf->state;
+ if (old_type == TYPE_0)
+ old_state[-1] = TYPE_0;
+ else
+ old_state[-1] = (MAX_TYPES * (buf->rptr - old_state)) + old_type;
+
+ type = new_state[0] % MAX_TYPES;
+ if (type < TYPE_0 || type >= TYPE_4)
+ goto fail;
+
+ buf->vm_rand_deg = degree = vm_random_poly_info.degrees[type];
+ buf->vm_rand_sep = separation = vm_random_poly_info.seps[type];
+ buf->vm_rand_type = type;
+
+ if (type != TYPE_0)
+ {
+ int rear = new_state[0] / MAX_TYPES;
+ buf->rptr = &new_state[rear];
+ buf->fptr = &new_state[(rear + separation) % degree];
+ }
+ buf->state = &new_state[1];
+ /* Set end_ptr too. */
+ buf->end_ptr = &new_state[degree];
+
+ return 0;
+
+ fail:
+ return -1;
+}
+
+/* If we are using the trivial TYPE_0 R.N.G., just do the old linear
+ congruential bit. Otherwise, we do our fancy trinomial stuff, which is the
+ same in all the other cases due to all the global variables that have been
+ set up. The basic operation is to add the number at the rear pointer into
+ the one at the front pointer. Then both pointers are advanced to the next
+ location cyclically in the table. The value returned is the sum generated,
+ reduced to 31 bits by throwing away the "least random" low bit.
+ Note: The code takes advantage of the fact that both the front and
+ rear pointers can't wrap on the same call by not testing the rear
+ pointer if the front one has wrapped. Returns a 31-bit random number. */
+
+int32_t vm_random (struct vm_random_data* buf)
+{
+ int32_t *state;
+ int32_t result;
+
+ if (buf == NULL)
+ goto fail;
+
+ state = buf->state;
+
+ if (buf->vm_rand_type == TYPE_0)
+ {
+ int32_t val = state[0];
+ val = ((state[0] * 1103515245) + 12345) & 0x7fffffff;
+ state[0] = val;
+ result = val;
+ }
+ else
+ {
+ int32_t *fptr = buf->fptr;
+ int32_t *rptr = buf->rptr;
+ int32_t *end_ptr = buf->end_ptr;
+ int32_t val;
+
+ val = *fptr += *rptr;
+ /* Chucking least random bit. */
+ result = (val >> 1) & 0x7fffffff;
+ ++fptr;
+ if (fptr >= end_ptr)
+ {
+ fptr = state;
+ ++rptr;
+ }
+ else
+ {
+ ++rptr;
+ if (rptr >= end_ptr)
+ rptr = state;
+ }
+ buf->fptr = fptr;
+ buf->rptr = rptr;
+ }
+ return result;
+
+ fail:
+ return -1;
+}
+
+void vm_default_initstate( int seed,
+ struct vm_random_data* buf ) {
+ vm_initstate( seed,
+ vm_randtbl,
+ 128,
+ buf );
+}
diff --git a/tdescreensaver/kdesavers/vm_random.h b/tdescreensaver/kdesavers/vm_random.h
new file mode 100644
index 00000000..1aa5e937
--- /dev/null
+++ b/tdescreensaver/kdesavers/vm_random.h
@@ -0,0 +1,31 @@
+#ifndef __VM_RANDOM_H__
+#define __VM_RANDOM_H__
+
+#define VM_RAND_MAX 2147483647
+
+#define int32_t int
+
+struct vm_random_data
+{
+ int32_t *fptr; /* Front pointer. */
+ int32_t *rptr; /* Rear pointer. */
+ int32_t *state; /* Array of state values. */
+ int vm_rand_type; /* Type of random number generator. */
+ int vm_rand_deg; /* Degree of random number generator. */
+ int vm_rand_sep; /* Distance between front and rear. */
+ int32_t *end_ptr; /* Pointer behind state table. */
+};
+
+int vm_initstate (unsigned int seed,
+ void* arg_state,
+ size_t n,
+ struct vm_random_data* buf);
+int vm_setstate (void* arg_state,
+ struct vm_random_data* buf);
+void vm_default_initstate( int seed,
+ struct vm_random_data* buf );
+int vm_srandom (unsigned int seed,
+ struct vm_random_data* buf);
+int32_t vm_random (struct vm_random_data* buf);
+
+#endif /* !defined( __VM_RANDOM_H__ ) */
diff --git a/tdescreensaver/kdesavers/wave.cpp b/tdescreensaver/kdesavers/wave.cpp
new file mode 100644
index 00000000..67357f89
--- /dev/null
+++ b/tdescreensaver/kdesavers/wave.cpp
@@ -0,0 +1,324 @@
+//-----------------------------------------------------------------------------
+//
+// kwave - Waveing Flag Screen Saver for KDE 2
+//
+// Copyright (c) Ian Reinhart Geiser 2001
+//
+#include <stdlib.h>
+#include <tqlabel.h>
+#include <tqlayout.h>
+#include <kapplication.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kcolordialog.h>
+#include <kbuttonbox.h>
+#include <kcolorbutton.h>
+#include <kglobal.h>
+#include "wave.h"
+#include "wave.moc"
+#ifdef TQ_WS_MACX
+#include <OpenGL/glu.h>
+#include <OpenGL/gl.h>
+#else
+#include <GL/glu.h>
+#include <GL/gl.h>
+#endif
+#include <tqimage.h>
+#include <kdebug.h>
+#include <tqpainter.h>
+#include <tqradiobutton.h>
+#include <tqspinbox.h>
+#include <kstandarddirs.h>
+#include <math.h>
+#include <kmessagebox.h>
+#ifndef GLU_NURBS_TEXTURE_COORD
+#define GLU_NURBS_TEXTURE_COORD 100168
+#endif
+// libtdescreensaver interface
+
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "kwave.kss";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "Bitmap Wave Screen Saver" );
+ KDE_EXPORT const char *kss_version = "2.2.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId id )
+ {
+ return new KWaveSaver( id );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ return new KWaveSetup();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// dialog to setup screen saver parameters
+//
+KWaveSetup::KWaveSetup( TQWidget *parent, const char *name )
+ : SetupUi( parent, name, TRUE )
+{
+ readSettings();
+
+ preview->setFixedSize( 220, 170 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ saver = new KWaveSaver( preview->winId() );
+
+ connect( PushButton1, TQT_SIGNAL( clicked() ), TQT_SLOT( slotOkPressed() ) );
+ connect( PushButton2, TQT_SIGNAL( clicked() ), TQT_SLOT( reject() ) );
+ connect( PushButton3, TQT_SIGNAL( clicked() ), TQT_SLOT( aboutPressed() ) );
+ connect( SpinBox1, TQT_SIGNAL( valueChanged(int)), saver, TQT_SLOT( updateSize(int)));
+ connect( RadioButton1, TQT_SIGNAL( toggled(bool)), saver, TQT_SLOT( doStars(bool)));
+
+}
+
+KWaveSetup::~KWaveSetup( )
+{
+ delete saver;
+}
+
+
+// read settings from config file
+void KWaveSetup::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+// color = config->readColorEntry( "Color", &black );
+}
+
+// Ok pressed - save settings and exit
+void KWaveSetup::slotOkPressed()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+// config->writeEntry( "Color", color );
+
+ config->sync();
+
+ accept();
+}
+
+void KWaveSetup::aboutPressed()
+{
+ KMessageBox::about(this,
+ i18n("<h3>Bitmap Flag Screen Saver</h3>\n<p>Waving Flag Screen Saver for TDE</p>\nCopyright (c) Ian Reinhart Geiser 2001"));
+}
+//-----------------------------------------------------------------------------
+
+
+KWaveSaver::KWaveSaver( WId id ) : KScreenSaver( id )
+{
+ kdDebug() << "Blank" << endl;
+ readSettings();
+
+ timer = new TQTimer( this );
+ timer->start( 50, TRUE );
+ setBackgroundColor( black );
+ erase();
+ wave = new Wave();
+ embed(wave);
+ wave->show();
+ connect( timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(blank()) );;
+}
+
+KWaveSaver::~KWaveSaver()
+{
+
+}
+
+// read configuration settings from config file
+void KWaveSaver::readSettings()
+{
+ TDEConfig *config = TDEGlobal::config();
+ config->setGroup( "Settings" );
+
+// color = config->readColorEntry( "Color", &black );
+}
+
+void KWaveSaver::blank()
+{
+ // Play wave
+
+ wave->updateGL();
+ timer->start( 100, TRUE );
+
+}
+Wave::Wave( TQWidget * parent, const char * name) : TQGLWidget (parent,name)
+{
+ pNurb = 0;
+
+ nNumPoints = 4;
+ index = 0;
+}
+
+Wave::~Wave()
+{
+ glDeleteTextures( 1, &texture[0] );
+ gluDeleteNurbsRenderer(pNurb);
+}
+
+/** setup the GL enviroment */
+void Wave::initializeGL ()
+{
+
+ kdDebug() << "InitGL" << endl;
+
+ /* Load in the texture */
+ if ( !LoadGLTextures( ) )
+ exit(0);
+
+ /* Enable Texture Mapping ( NEW ) */
+ glEnable( GL_TEXTURE_2D );
+
+ /* Enable smooth shading */
+ glShadeModel( GL_SMOOTH );
+ // Light values and coordinates
+ GLfloat specular[] = { 0.7f, 0.0f, 0.0f, 1.0f};
+ GLfloat shine[] = { 75.0f };
+
+ glClearColor(0.0f, 0.0f, 0.0f, 0.0f );
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+
+ glEnable(GL_COLOR_MATERIAL);
+
+ glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
+ glMaterialfv(GL_FRONT, GL_SPECULAR, specular);
+ glMaterialfv(GL_FRONT, GL_SHININESS, shine);
+
+ glEnable(GL_AUTO_NORMAL);
+
+
+ pNurb = gluNewNurbsRenderer();
+
+ gluNurbsProperty(pNurb, GLU_SAMPLING_TOLERANCE, 25.0f);
+ // Uncomment the next line and comment the one following to produce a
+ // wire frame mesh.
+ //gluNurbsProperty(pNurb, GLU_DISPLAY_MODE, GLU_OUTLINE_POLYGON);
+ gluNurbsProperty(pNurb, GLU_DISPLAY_MODE, (GLfloat)GLU_FILL);
+ glEnable(GL_MAP2_TEXTURE_COORD_3);
+ glEnable(GL_MAP2_VERTEX_3);
+ glEnable(GL_BLEND);
+
+}
+/** resize the gl view */
+void Wave::resizeGL ( int w, int h)
+{
+ kdDebug() << "ResizeGL " << w << "," <<h<< endl;
+ // Prevent a divide by zero
+ if(h == 0)
+ h = 1;
+
+ // Set Viewport to window dimensions
+ glViewport(0, 0, w, h);
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+
+ // Perspective view
+ gluPerspective (45.0f, (GLdouble)w/(GLdouble)h, 1.0, 40.0f);
+
+ // Modelview matrix reset
+ glMatrixMode(GL_MODELVIEW);
+ glLoadIdentity();
+
+ // Viewing transformation, position for better view
+ glTranslatef (0.0f, 0.0f, -20.0f);
+
+}
+/** paint the GL view */
+void Wave::paintGL ()
+{
+
+ float ctrlPoints[4][4][3];
+
+ index++;
+ float Z[16];
+ for( int i = 0; i < 16; i++)
+ {
+ Z[i] = 3.0 * sin(16*(3.141592654 * 2.0f) * (index+(i))/360);
+ }
+
+// kdDebug() << "-----" << endl;
+ int counter =15;
+ for( int i = 0; i < 4; i++)
+ for( int j = 0; j < 4;j++)
+ {
+ ctrlPoints[i][j][0] = float((5*i)-10);
+ ctrlPoints[i][j][1] = float((3*j)-6);
+ ctrlPoints[i][j][2] = Z[counter--];
+// kdDebug() << Z[counter] << endl;
+ }
+ // Knot sequence for the NURB
+ float knots[8] = { 0, 0, 0, 0, 1, 1, 1, 1 };
+ // Draw in Blu
+ //glColor3ub(0,0,220);
+
+ // Clear the window with current clearing color
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ // Save the modelview matrix stack
+ glMatrixMode(GL_MODELVIEW);
+ glPushMatrix();
+
+ // Rotate the mesh around to make it easier to see
+ glRotatef(index/2, 1.0f,0.0f,0.0f);
+ glRotatef(index/5, 0.0f,1.0f,0.0f);
+ glRotatef(index/6, 0.0f,0.0f,1.0f);
+
+ // Render the NURB
+ gluBeginSurface( pNurb );
+ gluNurbsSurface( pNurb, 8, knots, 8, knots,
+ 4*3, 3, &ctrlPoints[0][0][0], 4, 4, GL_MAP2_TEXTURE_COORD_3);
+ //gluNurbsSurface( pNurb, 8, knots, 8, knots,
+ //4*3, 3, &ctrlPoints[0][0][0], 4, 4, GL_MAP2_NORMAL );
+ gluNurbsSurface( pNurb, 8, knots, 8, knots,
+ 4*3, 3, &ctrlPoints[0][0][0], 4, 4, GL_MAP2_VERTEX_3 );
+ gluEndSurface( pNurb );
+
+ // Restore the modelview matrix
+ glPopMatrix();
+
+ glFlush();
+}
+
+bool Wave::LoadGLTextures()
+{
+ /* Status indicator */
+ bool Status = TRUE;
+
+ TQImage buf; // = TQPixmap::grabWindow ( 0 ).convertToImage();
+ kdDebug() << "Loading: " << locate("data", "tdescreensaver/image.png") << endl;
+ if (buf.load( locate("data", "tdescreensaver/image.png") ) )
+
+ {
+ tex = convertToGLFormat(buf); // flipped 32bit RGBA
+ kdDebug() << "Texture loaded: " << tex.numBytes () << endl;
+ }
+ else
+ {
+ TQImage dummy( 64, 64, 64 );
+ dummy.fill( TQt::white.rgb() );
+ buf = dummy;
+ tex = convertToGLFormat( buf );
+ }
+ /* Set the status to true */
+ //Status = TRUE;
+ glGenTextures(1, &texture[0]); /* create three textures */
+ glBindTexture(GL_TEXTURE_2D, texture[0]);
+ /* use linear filtering */
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
+ /* actually generate the texture */
+ glTexImage2D(GL_TEXTURE_2D, 0, 4, tex.width(), tex.height(), 0,
+ GL_RGBA, GL_UNSIGNED_BYTE, tex.bits());
+ kdDebug() << "Texture Loaded: " << tex.width() << "," << tex.height() << endl;
+
+
+ return Status;
+}
diff --git a/tdescreensaver/kdesavers/wave.h b/tdescreensaver/kdesavers/wave.h
new file mode 100644
index 00000000..363e8ddd
--- /dev/null
+++ b/tdescreensaver/kdesavers/wave.h
@@ -0,0 +1,100 @@
+//-----------------------------------------------------------------------------
+//
+// kwave - Partical Wave Screen Saver for KDE 2
+//
+// Copyright (c) Ian Reinhart Geiser 2001
+//
+/////
+//NOTE:
+// The base particle engine did not come from me, it was designed by Jeff Molofee <nehe@connect.ab.ca>
+// I did some extensive modifications to make it work with QT's OpenGL but the base principal is about
+// the same.
+////
+
+#ifndef __WAVE_H__
+#define __WAVE_H__
+
+#include <tqdialog.h>
+#include <tqgl.h>
+#ifdef TQ_WS_MACX
+#include <OpenGL/glu.h>
+#include <OpenGL/gl.h>
+#else
+#include <GL/glu.h>
+#include <GL/gl.h>
+#endif
+#include <tdescreensaver.h>
+#include <tqtimer.h>
+#include <tqimage.h>
+#include "wavecfg.h"
+
+
+class Wave : public TQGLWidget
+{
+Q_OBJECT
+
+
+public:
+ Wave( TQWidget * parent=0, const char * name=0 );
+ ~Wave();
+
+protected:
+ /** paint the GL view */
+ void paintGL ();
+ /** resize the gl view */
+ void resizeGL ( int w, int h );
+ /** setup the GL enviroment */
+ void initializeGL ();
+
+
+private:
+//
+ GLUnurbsObj *pNurb;
+ GLint nNumPoints;
+// float ctrlPoints[4][4][3];
+// float knots[8];
+ int index;
+ bool LoadGLTextures();
+ GLuint texture[1];
+ TQImage tex;
+
+};
+
+class KWaveSaver : public KScreenSaver
+{
+Q_OBJECT
+
+public:
+ KWaveSaver( WId drawable );
+ virtual ~KWaveSaver();
+ void readSettings();
+public slots:
+ void blank();
+
+private:
+ Wave *wave;
+ TQTimer *timer;
+};
+
+class KWaveSetup : public SetupUi
+{
+ Q_OBJECT
+
+public:
+ KWaveSetup( TQWidget *parent = NULL, const char *name = NULL );
+ ~KWaveSetup( );
+protected:
+ void readSettings();
+
+private slots:
+ void slotOkPressed();
+ void aboutPressed();
+private:
+ KWaveSaver *saver;
+ float size;
+ float stars;
+};
+
+#endif
+
+
diff --git a/tdescreensaver/kdesavers/wavecfg.ui b/tdescreensaver/kdesavers/wavecfg.ui
new file mode 100644
index 00000000..9ad24416
--- /dev/null
+++ b/tdescreensaver/kdesavers/wavecfg.ui
@@ -0,0 +1,191 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>SetupUi</class>
+<widget class="TQDialog">
+ <property name="name">
+ <cstring>SetupUi</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>209</height>
+ </rect>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy>
+ <hsizetype>0</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize">
+ <size>
+ <width>400</width>
+ <height>209</height>
+ </size>
+ </property>
+ <property name="baseSize">
+ <size>
+ <width>400</width>
+ <height>250</height>
+ </size>
+ </property>
+ <property name="caption">
+ <string>Bitmap Flag Setup</string>
+ </property>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>Layout4</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>1</x>
+ <y>1</y>
+ <width>398</width>
+ <height>206</height>
+ </rect>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQCheckBox" row="3" column="0">
+ <property name="name">
+ <cstring>CheckBox1</cstring>
+ </property>
+ <property name="text">
+ <string>Use textures</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="4" column="2">
+ <property name="name">
+ <cstring>PushButton3</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;About</string>
+ </property>
+ </widget>
+ <widget class="TQSpinBox" row="1" column="0">
+ <property name="name">
+ <cstring>SpinBox1</cstring>
+ </property>
+ <property name="maxValue">
+ <number>500</number>
+ </property>
+ <property name="minValue">
+ <number>10</number>
+ </property>
+ <property name="lineStep">
+ <number>10</number>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="4" column="1">
+ <property name="name">
+ <cstring>PushButton2</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="4" column="0">
+ <property name="name">
+ <cstring>PushButton1</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQGroupBox" row="2" column="0">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="title">
+ <string>Shapes</string>
+ </property>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>Layout3</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>130</width>
+ <height>50</height>
+ </rect>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQRadioButton">
+ <property name="name">
+ <cstring>RadioButton1</cstring>
+ </property>
+ <property name="text">
+ <string>Stars</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQRadioButton">
+ <property name="name">
+ <cstring>RadioButton1_2</cstring>
+ </property>
+ <property name="text">
+ <string>Flares</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ </widget>
+ <widget class="TQWidget" row="0" column="1" rowspan="4" colspan="2">
+ <property name="name">
+ <cstring>preview</cstring>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property name="text">
+ <string>Particle size:</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+</widget>
+<connections>
+ <connection>
+ <sender>RadioButton1_2</sender>
+ <signal>pressed()</signal>
+ <receiver>RadioButton1</receiver>
+ <slot>toggle()</slot>
+ </connection>
+ <connection>
+ <sender>RadioButton1</sender>
+ <signal>pressed()</signal>
+ <receiver>RadioButton1_2</receiver>
+ <slot>toggle()</slot>
+ </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/tdescreensaver/krootbacking/CMakeLists.txt b/tdescreensaver/krootbacking/CMakeLists.txt
new file mode 100644
index 00000000..bedfa71e
--- /dev/null
+++ b/tdescreensaver/krootbacking/CMakeLists.txt
@@ -0,0 +1,17 @@
+#################################################
+#
+# (C) 2012 Slavek Banko
+# slavek (DOT) banko (AT) axis.cz
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+install(
+ FILES
+ xscreensaver-getimage
+ xscreensaver-getimage-file
+ DESTINATION ${BIN_INSTALL_DIR}
+)
diff --git a/tdescreensaver/krootbacking/Makefile.am b/tdescreensaver/krootbacking/Makefile.am
new file mode 100644
index 00000000..4f4d3e3d
--- /dev/null
+++ b/tdescreensaver/krootbacking/Makefile.am
@@ -0,0 +1,8 @@
+INCLUDES = $(all_includes)
+
+hackdir = $(kde_bindir)
+hack_DATA = xscreensaver-getimage xscreensaver-getimage-file
+
+install-data-hook:
+ chmod 755 $(DESTDIR)$(hackdir)/xscreensaver-getimage
+ chmod 755 $(DESTDIR)$(hackdir)/xscreensaver-getimage-file
diff --git a/tdescreensaver/krootbacking/xscreensaver-getimage b/tdescreensaver/krootbacking/xscreensaver-getimage
new file mode 100644
index 00000000..4745ac1b
--- /dev/null
+++ b/tdescreensaver/krootbacking/xscreensaver-getimage
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# Yes, this is quite fragile
+# Yes, it should be fixed
+# But for this non-critical function it should be good enough...
+REAL_BINARY=$(whereis -b xscreensaver-getimage | awk '{print $2}')
+if [[ "$0" != "$REAL_BINARY" ]]; then
+ $REAL_BINARY -no-video -no-desktop -images "$@"
+fi
diff --git a/tdescreensaver/krootbacking/xscreensaver-getimage-file b/tdescreensaver/krootbacking/xscreensaver-getimage-file
new file mode 100644
index 00000000..ae1b0e9d
--- /dev/null
+++ b/tdescreensaver/krootbacking/xscreensaver-getimage-file
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+krootbacking
diff --git a/tdescreensaver/kxsconfig/CMakeLists.txt b/tdescreensaver/kxsconfig/CMakeLists.txt
new file mode 100644
index 00000000..99f44e54
--- /dev/null
+++ b/tdescreensaver/kxsconfig/CMakeLists.txt
@@ -0,0 +1,66 @@
+#################################################
+#
+# (C) 2011 Golubev Alexander
+# fatzer2 (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+ ${X11_INCLUDE_DIR}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+ ${X11_LIBRARY_DIR}
+)
+
+##### kxsconfig #################################
+set( target kxsconfig )
+
+set( ${target}_SRCS
+ kxscontrol.cpp kxsitem.cpp kxsxml.cpp kxsconfig.cpp )
+
+tde_add_executable( ${target} AUTOMOC
+ SOURCES ${${target}_SRCS}
+ LINK kio-shared ${X11_Xt_LIB}
+ DESTINATION ${BIN_INSTALL_DIR}
+)
+
+##### kxsrun ####################################
+set( target kxsrun )
+
+set( ${target}_SRCS
+ kxsrun.cpp kxscontrol.cpp kxsitem.cpp kxsxml.cpp )
+
+tde_add_executable( ${target} AUTOMOC
+ SOURCES ${${target}_SRCS}
+ LINK kio-shared
+ DESTINATION ${BIN_INSTALL_DIR}
+)
+
+##### install desktops ##########################
+# code from kde4
+FILE(GLOB _desktopfiles "ScreenSavers/*.desktop" )
+foreach(_currentdesktopfile ${_desktopfiles})
+ STRING(REGEX REPLACE ".desktop" "" _newitem "${_currentdesktopfile}" )
+ #MESSAGE(STATUS "newItem <${_newitem}>")
+ GET_FILENAME_COMPONENT(_screensaverName ${_newitem} NAME_WE)
+ #MESSAGE(STATUS "name without extension
+ find_file(XSCREENSAVER_FILE_FOUND ${_screensaverName}.xml PATHS ${XSCREENSAVER_CONFIG_DIR} )
+ if(XSCREENSAVER_FILE_FOUND)
+ MESSAGE(STATUS "xscreensaver name ${_screensaverName} found")
+ install(FILES ${_currentdesktopfile} DESTINATION ${APPS_INSTALL_DIR}/System/ScreenSavers )
+ else(XSCREENSAVER_FILE_FOUND)
+ MESSAGE(STATUS "xscreensaver name ${_screensaverName} not found")
+ endif(XSCREENSAVER_FILE_FOUND)
+ unset(XSCREENSAVER_FILE_FOUND CACHE)
+endforeach(_currentdesktopfile ${_desktopfiles})
+
diff --git a/tdescreensaver/kxsconfig/Makefile.am b/tdescreensaver/kxsconfig/Makefile.am
new file mode 100644
index 00000000..e0b89f67
--- /dev/null
+++ b/tdescreensaver/kxsconfig/Makefile.am
@@ -0,0 +1,56 @@
+## Makefile.am of tdebase/tdescreensaver/kxsconfig
+
+INCLUDES = $(all_includes)
+kxsconfig_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_KIO) -ltdetexteditor
+kxsconfig_LDADD = $(LIB_KIO) -lXt
+
+kxsrun_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_KIO) -ltdetexteditor
+kxsrun_LDADD = $(LIB_KIO)
+
+EXTRA_DIST = ScreenSavers hacks.pot
+
+####### Files
+
+bin_PROGRAMS = kxsconfig kxsrun
+
+kxsconfig_SOURCES = kxscontrol.cpp kxsitem.cpp kxsxml.cpp kxsconfig.cpp
+kxsrun_SOURCES = kxsrun.cpp kxscontrol.cpp kxsitem.cpp kxsxml.cpp
+
+noinst_HEADERS = kxsconfig.h kxscontrol.h kxsitem.h kxsxml.h
+
+METASOURCES = AUTO
+
+####### Build rules
+
+messages:
+ $(XGETTEXT) -x hacks.pot *.cpp *.h -o $(podir)/kxsconfig.pot
+ cat hacks.pot >> $(podir)/kxsconfig.pot
+ -rm -f labels.cpp
+
+newhacks:
+ hacks=`cd /usr/lib/xscreensaver/ && ls -1 | grep -v config` ;\
+ echo $$hacks ;\
+ for name in $$hacks; do \
+ if test -f /usr/lib/xscreensaver/$$name && test -f /etc/xscreensaver/$$name.xml && test ! -f $(srcdir)/ScreenSavers/$$name.desktop; then \
+ label=`grep '<screensaver.*_label' /etc/xscreensaver/$$name.xml | sed -e 's#^.*_label=\"\(.*\)\".*$$#\1#'` ;\
+ f=$(srcdir)/ScreenSavers/$$name.desktop ;\
+ sed -e "s#@NAME@#$$name#; s#@LABEL@#$$label#" $(srcdir)/ScreenSavers/xscreensaver.template > $$f; \
+ if ldd /usr/lib/xscreensaver/$$name 2>&1 | grep libGL; then sed -e "s,@GL1@,X-TDE-Type=OpenGL,; s,@GL2@,X-TDE-Category=OpenGL Screen Savers," $$f > $$f.new && mv $$f.new $$f; else grep -v @GL $$f > $$f.new && mv $$f.new $$f; fi ;\
+ fi; \
+ done
+
+screensaverdir=$(kde_appsdir)/System/ScreenSavers
+
+install-data-local:
+ $(mkinstalldirs) $(DESTDIR)$(screensaverdir)
+ list=`(cd $(srcdir)/ScreenSavers && ls -1 *.desktop)` ;\
+ for i in $$list; do \
+ hack=`echo $$i | sed -e "s#\.desktop##"` ;\
+ if test -x $(XSCREENSAVER_HACKS_DIR)/$$hack; then \
+ echo "$$hack found" ;\
+ echo $(INSTALL_DATA) $(srcdir)/ScreenSavers/$$i $(DESTDIR)$(screensaverdir)/$$i ;\
+ $(INSTALL_DATA) $(srcdir)/ScreenSavers/$$i $(DESTDIR)$(screensaverdir)/$$i ;\
+ else \
+ echo "$$hack not found" ;\
+ fi ;\
+ done
diff --git a/tdescreensaver/kxsconfig/README b/tdescreensaver/kxsconfig/README
new file mode 100644
index 00000000..3d009305
--- /dev/null
+++ b/tdescreensaver/kxsconfig/README
@@ -0,0 +1,17 @@
+kxsconfig configures xscreensaver hacks. For best results xscreensaver 4.x
+is required. Older versions work with varying success.
+
+The xscreensaver copyright notice follows. Files containing code copied
+from xscreensaver also carry this notice.
+
+-----------------------------------------------------------------------------
+xscreensaver, Copyright (c) 1993-2002 Jamie Zawinski <jwz@jwz.org>
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation. No representations are made about the suitability of this
+software for any purpose. It is provided "as is" without express or
+implied warranty.
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/abstractile.desktop b/tdescreensaver/kxsconfig/ScreenSavers/abstractile.desktop
new file mode 100644
index 00000000..0fecee39
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/abstractile.desktop
@@ -0,0 +1,202 @@
+[Desktop Entry]
+Exec=abstractile
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Abstractile
+Name[ca]=Abstràctil
+Name[et]=Abstraktiil
+Name[fr]=Mosaïque abstraite
+Name[it]=Tasselli astratti
+Name[nds]=Afstrakachel
+Name[ru]=Мозаика
+Name[sr]=ÐпÑтрактил
+Name[sr@Latn]=Apstraktil
+Name[sv]=Abstrakt kakel
+
+X-TDE-Category=Visit to Flatland
+
+[Desktop Action Setup]
+Exec=kxsconfig abstractile
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun abstractile -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun abstractile -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/anemone.desktop b/tdescreensaver/kxsconfig/ScreenSavers/anemone.desktop
new file mode 100644
index 00000000..fd00df0d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/anemone.desktop
@@ -0,0 +1,229 @@
+[Desktop Entry]
+Exec=anemone
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Miscellaneous
+Name=Anemone
+Name[bg]=Ðнемона
+Name[ca]=Anèmona
+Name[cy]=Blodyn Y Gwynt
+Name[el]=Ανεμώνη
+Name[en_GB]=Anemonae
+Name[es]=Anémona
+Name[et]=Meriroos
+Name[eu]=Anemona
+Name[fa]=شقایق نعمانی
+Name[fr]=Anémone
+Name[fy]=Anemoan
+Name[gl]=Anémona
+Name[he]=זרועות
+Name[hi]=à¤à¤¨à¥‡à¤®à¥‰à¤¨
+Name[ja]=ã‚¢ãƒãƒ¢ãƒ
+Name[ka]=ფრინტáƒ
+Name[mk]=Ðнемона
+Name[mt]=Anemoni
+Name[nds]=Anemoon
+Name[ne]=à¤à¤¨à¥‡à¤®à¥‹à¤¨
+Name[nl]=Anemoon
+Name[pl]=Anemon
+Name[pt_BR]=Anêmona
+Name[ro]=Anemonă
+Name[ru]=Ветреница
+Name[sl]=Anemon
+Name[sr]=Ðнемона
+Name[sr@Latn]=Anemona
+Name[ta]=அனிமோனà¯
+Name[tg]=Одами Ñабук
+Name[tr]=Anemon
+Name[uk]=Ðнемон
+Name[uz]=Poʻfanak
+Name[uz@cyrillic]=Пўфанак
+Name[zh_CN]=海葵
+Name[zh_TW]=海葵
+
+[Desktop Action Setup]
+Exec=kxsconfig anemone
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun anemone -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun anemone -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/anemotaxis.desktop b/tdescreensaver/kxsconfig/ScreenSavers/anemotaxis.desktop
new file mode 100644
index 00000000..1ce51307
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/anemotaxis.desktop
@@ -0,0 +1,207 @@
+[Desktop Entry]
+Exec=anemotaxis
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Visit to Flatland
+Name=Anemotaxis
+Name[bg]=ÐнемотакÑиÑ
+Name[el]=Ανεμόταξη
+Name[es]=Amemotaxis
+Name[et]=Tuulelemb
+Name[fy]=Anemotaksis
+Name[hi]=à¤à¤¨à¥‡à¤®à¥‰à¤Ÿà¤¾à¤•à¥à¤¸à¤¿à¤¸
+Name[ja]=走風性
+Name[ka]=áƒáƒ áƒáƒ›áƒáƒ¢áƒ˜
+Name[mk]=Ориентација по мириÑ
+Name[ne]=à¤à¤¨à¥‡à¤®à¥‹à¤Ÿà¥à¤¯à¤¾à¤•à¥à¤¸à¤¿à¤¸
+Name[ru]=Ðромат
+Name[sr]=ÐнемотакÑа
+Name[sr@Latn]=Anemotaksa
+Name[ta]=அனிமோடாகà¯à®šà®¿à®¸à¯
+
+
+[Desktop Action Setup]
+Exec=kxsconfig anemotaxis
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun anemotaxis -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun anemotaxis -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/ant.desktop b/tdescreensaver/kxsconfig/ScreenSavers/ant.desktop
new file mode 100644
index 00000000..9e3a6c78
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/ant.desktop
@@ -0,0 +1,248 @@
+[Desktop Entry]
+Exec=ant
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Ant
+Name[af]=Mier
+Name[br]=Merien
+Name[ca]=Formiga
+Name[cs]=Mravenec
+Name[cy]=Morgrugyn
+Name[da]=Myre
+Name[de]=Ameise
+Name[el]=ΜυÏμήγκι
+Name[eo]=Formiko
+Name[es]=Hormiga
+Name[et]=Sipelgas
+Name[eu]=Inurria
+Name[fa]=مورچه
+Name[fi]=Muurahaiset
+Name[fo]=Mýrir
+Name[fr]=Fourmi
+Name[fy]=Pishimmel
+Name[gl]=Formiga
+Name[he]=נמלי×
+Name[hi]=चींटी
+Name[hu]=Hangya
+Name[is]=Maur
+Name[it]=Formica
+Name[ja]=アリ
+Name[ka]=ჭიáƒáƒœáƒ­áƒ•áƒ”ლáƒ
+Name[mk]=Мравки
+Name[ms]=Semut
+Name[mt]=Nemel
+Name[nb]=Maur
+Name[nds]=Miegeem
+Name[ne]=à¤à¤¨à¥à¤Ÿ
+Name[nn]=Maur
+Name[nso]=Ntshi
+Name[pa]=ਕੀੜੀ
+Name[pl]=Mrówka
+Name[pt]=Formiga
+Name[pt_BR]=Formigas
+Name[ro]=Furnică
+Name[ru]=Муравей
+Name[sk]=Mravec
+Name[sl]=Mravlja
+Name[sr]=Мрав
+Name[sr@Latn]=Mrav
+Name[sv]=Myra
+Name[ta]=எறà¯à®®à¯à®ªà¯
+Name[tg]=Мӯрча
+Name[th]=มด
+Name[tr]=Karınca
+Name[uk]=Мурашка
+Name[uz]=Chumoli
+Name[uz@cyrillic]=Чумоли
+Name[vi]=Kiến
+Name[xh]=isigcawu
+Name[zh_CN]=èš‚èš
+Name[zh_TW]=螞蟻
+
+[Desktop Action Setup]
+Exec=kxsconfig ant
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun ant -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun ant -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/antinspect.desktop b/tdescreensaver/kxsconfig/ScreenSavers/antinspect.desktop
new file mode 100644
index 00000000..79f53546
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/antinspect.desktop
@@ -0,0 +1,223 @@
+[Desktop Entry]
+Exec=antinspect
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=AntInspect
+Name[ca]=Formiga inspectora
+Name[de]=Ameiseninspektion
+Name[el]=Ακολουθία μυÏμηγκιών
+Name[eo]=FormikInspekt
+Name[es]=Hormiga inspectora
+Name[et]=Sipelgas-uurija
+Name[eu]=Inurri ikuskatzailea
+Name[fr]=3 fourmis
+Name[fy]=PishimmelYnspekt
+Name[gl]=Formiga Inspectora
+Name[hi]=à¤à¤¨à¥à¤Ÿà¤²à¤¨à¥à¤¸à¥à¤ªà¥‡à¤•à¥à¤Ÿ
+Name[it]=Formiche in ispezione
+Name[ka]=ჭიáƒáƒœáƒ­áƒ•áƒ”ლები
+Name[mk]=Мравки на преглед
+Name[ms]=Pemeriksaan Semut
+Name[nb]=MaurInspiser
+Name[nds]=Miegeem-Nakiek
+Name[nn]=Maurinspekt
+Name[pt]=Inspeccionar Formiga
+Name[pt_BR]=Formiga
+Name[ru]=Три муравьÑ
+Name[sl]=Mravlji pregled
+Name[sr]=Мравља инÑпекција
+Name[sr@Latn]=Mravlja inspekcija
+Name[sv]=Inspektera myra
+Name[tg]=Се мурча
+Name[tr]=KarıncaDenetle
+Name[uk]=Три мурашки
+Name[vi]=Khám xét Kiến
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig antinspect
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun antinspect -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun antinspect -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/antmaze.desktop b/tdescreensaver/kxsconfig/ScreenSavers/antmaze.desktop
new file mode 100644
index 00000000..61a88d9a
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/antmaze.desktop
@@ -0,0 +1,223 @@
+[Desktop Entry]
+Exec=antmaze
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=AntMaze
+Name[ca]=Laberint de formigues
+Name[cs]=MravenÄí bludiÅ¡tÄ›
+Name[da]=Myrernes labyrint
+Name[eo]=FormikLabirint
+Name[et]=Sipelgalabürint
+Name[fa]=هزارتوی
+Name[fi]=Muurahaissokkelo
+Name[fr]=Labyrinthe des fourmis
+Name[fy]=Doalhôf
+Name[gl]=Labirinto de Formigas
+Name[he]=מבוך נמלה
+Name[hu]=Hangyák a labirintusban
+Name[is]=Völundarhús
+Name[ja]=アリ迷路
+Name[ka]=ჭიáƒáƒœáƒ­áƒ•áƒ”ლების ლáƒáƒ‘ირინთი
+Name[mk]=Лавиринт Ñо мравки
+Name[nb]=MaurLabyrint
+Name[nds]=Miegeem-Biestergoorn
+Name[nl]=Doolhof
+Name[nn]=Maurlabyrint
+Name[pt]=Labirinto da Formiga
+Name[pt_BR]=Labirinto para Formiga
+Name[ru]=ПутешеÑтвие по муравейнику
+Name[sl]=Mravlji blodnjak
+Name[sr]=Мрављи лавиринт
+Name[sr@Latn]=Mravlji lavirint
+Name[sv]=Myrornas labyrint
+Name[uk]=Мурашиний Лабіринт
+Name[vi]=Mê cung Kiến
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig antmaze
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun antmaze -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun antmaze -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/antspotlight.desktop b/tdescreensaver/kxsconfig/ScreenSavers/antspotlight.desktop
new file mode 100644
index 00000000..3dbbdcf7
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/antspotlight.desktop
@@ -0,0 +1,229 @@
+[Desktop Entry]
+Exec=antspotlight
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=AntSpotlight
+Name[ca]=FocusFormiga
+Name[cy]=GolauSbot Ant
+Name[de]=Ameise mit Scheinwerfer
+Name[eo]=FormikLumĵet
+Name[es]=Foco de hormiga
+Name[et]=Sipelgas laternaga
+Name[eu]=Inurri fokua
+Name[fr]=Fourmi éclairante
+Name[fy]=PishimmelSpotsje
+Name[gl]=Foco de formiga
+Name[he]=זרקור נמלי×
+Name[hi]=à¤à¤¨à¥à¤Ÿ-सà¥à¤ªà¥‰à¤Ÿà¤²à¤¾à¤‡à¤Ÿ
+Name[hu]=Hangya+reflektor
+Name[is]=Maurakastljós
+Name[it]=Formica con luce
+Name[ja]=アリ スãƒãƒƒãƒˆãƒ©ã‚¤ãƒˆ
+Name[ka]=ჭიáƒáƒœáƒ­áƒ•áƒ”ლáƒ-გáƒáƒ›áƒœáƒáƒ—ებელი
+Name[mk]=Мравка-рефлектор
+Name[nb]=MaurSpotlight
+Name[nds]=Miegeemsöök
+Name[nn]=Maur-punktlys
+Name[pl]=Mrówka pod reflektorem
+Name[pt]=Luz Pontual Ant
+Name[pt_BR]=Holofote
+Name[ru]=Муравей-шахтёр
+Name[sl]=Mravlji žaromet
+Name[sr]=Мрављи рефлектор
+Name[sr@Latn]=Mravlji reflektor
+Name[sv]=Spotlight på myra
+Name[ta]=எறà¯à®®à¯à®ªà¯à®‡à®Ÿà®’ளி
+Name[tg]=Мӯрчаи коргари кон
+Name[tr]=Işık Spotu
+Name[uk]=Мурашка-ліхтарик
+Name[vi]=Äèn chiếu Kiến
+Name[zh_CN]=èšå…‰ç¯
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL;ManipulateScreen
+
+[Desktop Action Setup]
+Exec=kxsconfig antspotlight
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun antspotlight -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun antspotlight -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/apollonian.desktop b/tdescreensaver/kxsconfig/ScreenSavers/apollonian.desktop
new file mode 100644
index 00000000..41171f00
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/apollonian.desktop
@@ -0,0 +1,228 @@
+[Desktop Entry]
+Exec=apollonian
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Apollonian
+Name[br]=Apollonieg
+Name[ca]=Apol·loni
+Name[cy]=Apolonaidd
+Name[da]=Apollonsk
+Name[de]=Apollonische Kreise
+Name[el]=Απολλώνιος
+Name[es]=Apoloniano
+Name[et]=Harmoonia
+Name[eu]=Apoloniarra
+Name[fa]=آپولونی
+Name[fo]=Apollonianskt
+Name[fr]=Apollinien
+Name[fy]=Apolloniaansk
+Name[gl]=Apolonian
+Name[hi]=अपोलोनियन
+Name[hu]=Apolló
+Name[ja]=ã‚¢ãƒãƒ­ãƒ‹ã‚¢ãƒ³
+Name[ka]=áƒáƒžáƒáƒšáƒáƒœáƒ£áƒ áƒ˜
+Name[mk]=ÐполонÑки
+Name[mt]=Apollonjan
+Name[nb]=Apollinsk
+Name[nds]=Apolloonsche Krinken
+Name[ne]=à¤à¤ªà¥‹à¤²à¥‹à¤¨à¤¿à¤¯à¤¨
+Name[nl]=Apolloniaans
+Name[nn]=Apollonsk
+Name[ru]=Круги
+Name[sl]=Apolonija
+Name[sr]=ÐполонÑки
+Name[sr@Latn]=Apolonski
+Name[sv]=Apollonisk
+Name[ta]=அபà¯à®ªà¯‹à®²à¯‹à®©à®¿à®¯à®©à¯
+Name[tg]=Давраҳо
+Name[tr]=Apollon
+Name[uk]=ÐполонÑький
+Name[zh_CN]=阿波罗
+
+[Desktop Action Setup]
+Exec=kxsconfig apollonian
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun apollonian -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun apollonian -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/apple2.desktop b/tdescreensaver/kxsconfig/ScreenSavers/apple2.desktop
new file mode 100644
index 00000000..b9f38063
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/apple2.desktop
@@ -0,0 +1,203 @@
+[Desktop Entry]
+Exec=apple2
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Type=Fortune
+X-TDE-Category=Banners & Pictures
+Name=Apple ][
+Name[fa]=سیب ][
+Name[gl]=Mazá ][
+Name[hi]=à¤à¤ªà¥à¤ªà¤² ][
+Name[ne]=à¤à¤ªà¥à¤ªà¤² ][
+Name[sl]=Jabolko ][
+Name[sv]=Apple
+Name[ta]=ஆபà¯à®ªà®¿à®³à¯ ][
+Name[tr]=Elma ][
+Name[vi]=Táo ][
+
+[Desktop Action Setup]
+Exec=kxsconfig apple2
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun apple2 -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun apple2 -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/atlantis.desktop b/tdescreensaver/kxsconfig/ScreenSavers/atlantis.desktop
new file mode 100644
index 00000000..4e82a1f3
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/atlantis.desktop
@@ -0,0 +1,221 @@
+[Desktop Entry]
+Exec=atlantis
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Atlantis (GL)
+Name[af]=Atlantis (Gl)
+Name[ca]=Atlàntida (GL)
+Name[de]=Atlantis
+Name[el]=Ατλαντίδα (GL)
+Name[eo]=Atlantido (graf. bibl.)
+Name[es]=Atlántida (GL)
+Name[gl]=Atlántida (GL)
+Name[he]=×טלנטיס (GL)
+Name[hi]=अटलांटिस (जीà¤à¤²)
+Name[hu]=Atlantisz (GL)
+Name[it]=Atlantide (GL)
+Name[ja]=アトランティス (GL)
+Name[ka]=áƒáƒ¢áƒšáƒáƒœáƒ¢áƒ˜áƒ¡áƒ˜ (GL)
+Name[mk]=Ðтлантик (GL)
+Name[ne]=à¤à¤Ÿà¤²à¤¾à¤¨à¥à¤Ÿà¤¿à¤¸ (GL)
+Name[pt]=Atlântida (GL)
+Name[ru]=Ðтлантида (GL)
+Name[sl]=Atlantida (GL)
+Name[sr]=Ðтлантида (GL)
+Name[sr@Latn]=Atlantida (GL)
+Name[ta]=அடà¯à®²à®¾à®£à¯à®Ÿà¯€à®¸à¯(GL)
+Name[tg]=Ðтлантида (GL)
+Name[th]=à¹à¸­à¸•à¹à¸¥à¸™à¸•à¸´à¸ª (GL)
+Name[uk]=Ðтлантида (GL)
+Name[zh_CN]=大西洋(GL)
+Name[zh_TW]=亞特蘭ææ–¯ (GL)
+
+
+[Desktop Action Setup]
+Exec=kxsconfig atlantis
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun atlantis -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun atlantis -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/attraction.desktop b/tdescreensaver/kxsconfig/ScreenSavers/attraction.desktop
new file mode 100644
index 00000000..6e29b084
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/attraction.desktop
@@ -0,0 +1,251 @@
+[Desktop Entry]
+Exec=attraction
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Rapid Motion
+Name=Attraction
+Name[af]=Aantrekking
+Name[bg]=Привличане
+Name[br]=Dedennerezh
+Name[ca]=Atracció
+Name[cs]=Přitažlivost
+Name[cy]=Atyniad
+Name[da]=Attraktion
+Name[de]=Anziehung
+Name[el]=Έλξη
+Name[eo]=Altirfortoj
+Name[es]=Atracción
+Name[et]=Külgetõmme
+Name[eu]=Erakarpena
+Name[fa]=ربایش
+Name[fi]=Attraktori
+Name[fo]=Hála hendavegin
+Name[fy]=Attraksje
+Name[gl]=Atracción
+Name[he]=משיכה
+Name[hi]=आकरà¥à¤·à¤£
+Name[hu]=Vonzás
+Name[is]=Aðdráttur
+Name[it]=Attrazione
+Name[ja]=アトラクション
+Name[ka]=მიმზიდველáƒáƒ‘áƒ
+Name[lt]=Atrakcijos
+Name[lv]=Atrakcija
+Name[mk]=Привлекување
+Name[ms]=Tarikan
+Name[mt]=Attrazzjoni
+Name[nb]=Attraksjon
+Name[nds]=Antrecken
+Name[ne]=आकरà¥à¤·à¤£
+Name[nn]=Tiltrekking
+Name[nso]=Kgogedi
+Name[pl]=Atrakcja
+Name[pt]=Atracção
+Name[pt_BR]=Atração
+Name[ro]=Atracţie
+Name[ru]=ПрелеÑÑ‚ÑŒ
+Name[sk]=Atrakcia
+Name[sl]=PrivlaÄnost
+Name[sr]=Привлачење
+Name[sr@Latn]=PrivlaÄenje
+Name[sv]=Sammandragning
+Name[ta]=ஈரà¯à®ªà¯à®ªà¯
+Name[tg]=Латофат
+Name[th]=ดึงดูดใจ
+Name[tr]=Cazibe
+Name[uk]=ПритÑганнÑ
+Name[uz]=Tortishish
+Name[uz@cyrillic]=Тортишиш
+Name[ven]=Zwitamisaho
+Name[vi]=Hấp dẫn
+Name[xh]=Utsaleko
+Name[zh_CN]=å¸å¼•
+Name[zh_TW]=å¸å¼•åŠ›
+Name[zu]=Ukuthatheka
+
+[Desktop Action Setup]
+Exec=kxsconfig attraction
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun attraction -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun attraction -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/atunnel.desktop b/tdescreensaver/kxsconfig/ScreenSavers/atunnel.desktop
new file mode 100644
index 00000000..f6afb414
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/atunnel.desktop
@@ -0,0 +1,217 @@
+[Desktop Entry]
+Exec=atunnel
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Atunnel
+Name[ca]=TúnelA
+Name[cy]=TwnelA
+Name[de]=Grauer Tunnel
+Name[eu]=A tunela
+Name[fr]=Tunnel A
+Name[hi]=à¤-टनल
+Name[ja]=トンãƒãƒ«
+Name[ka]=ჰიპნáƒáƒ¢áƒ£áƒ áƒ˜ გვირáƒáƒ‘ი
+Name[mk]=Тунел
+Name[ms]=Terowong
+Name[nds]=En Tunnel
+Name[ne]=à¤à¤Ÿà¥à¤¨à¥‡à¤²
+Name[pl]=Tunel
+Name[pt]=Túnel
+Name[ru]=Туннель
+Name[sl]=Atunel
+Name[sr]=Ðтунел
+Name[sr@Latn]=Atunel
+Name[sv]=En tunnel
+Name[ta]=அடà¯à®Ÿà®©à®²à¯
+Name[tg]=Тунели гипертонӣ
+Name[uk]=Безкінечний тунель
+Name[vi]=ÄÆ°á»ng hầm
+
+[Desktop Action Setup]
+Exec=kxsconfig atunnel
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun atunnel -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun atunnel -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/barcode.desktop b/tdescreensaver/kxsconfig/ScreenSavers/barcode.desktop
new file mode 100644
index 00000000..00d06317
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/barcode.desktop
@@ -0,0 +1,234 @@
+[Desktop Entry]
+Exec=barcode
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Barcode
+Name[bg]=Баркод
+Name[ca]=Codi de Barres
+Name[cs]=Čárový kód
+Name[cy]=Bargôd
+Name[de]=Strichcode
+Name[eo]=Strekkodo
+Name[es]=Código de barras
+Name[et]=Ribakood
+Name[eu]=Barra-kodea
+Name[fa]=کد میله‌ای
+Name[fr]=Code barre
+Name[fy]=Barkoade
+Name[gl]=Código de barras
+Name[he]=בר־קוד
+Name[hi]=बारकोड
+Name[hu]=Vonalkód
+Name[is]=Strikamerki
+Name[it]=Codice a barre
+Name[ja]=ãƒãƒ¼ã‚³ãƒ¼ãƒ‰
+Name[ka]=შტრიხკáƒáƒ“ი
+Name[mk]=Бар-код
+Name[ms]=Kod Bar
+Name[nb]=Strekkode
+Name[nds]=Streekkode
+Name[ne]=बारकोड
+Name[nn]=Strekkode
+Name[pa]=ਬਾਰ-ਕੋਡ
+Name[pl]=Kod paskowy
+Name[pt]=Código de Barras
+Name[ro]=Cod de bare
+Name[ru]=Штрих-коды
+Name[sl]=ÄŒrtna koda
+Name[sr]=Бар код
+Name[sr@Latn]=Bar kod
+Name[sv]=Streckkod
+Name[ta]=படà¯à®Ÿà®¿à®šà®¿à®©à¯à®©à®®à¯
+Name[tg]=Кодҳои рах-рах
+Name[tr]=Barkod
+Name[uk]=Штриховий код
+Name[vi]=Mã vạch
+Name[zh_CN]=æ¡å½¢ç 
+
+[Desktop Action Setup]
+Exec=kxsconfig barcode
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun barcode -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun barcode -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/blaster.desktop b/tdescreensaver/kxsconfig/ScreenSavers/blaster.desktop
new file mode 100644
index 00000000..e05189e5
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/blaster.desktop
@@ -0,0 +1,224 @@
+[Desktop Entry]
+Exec=blaster
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Flying Things
+Name=Blaster
+Name[cy]=Ffrwydryn
+Name[el]=Εκτοξευτής
+Name[fo]=Blásari
+Name[fr]=Boutefeu
+Name[gl]=Disparo
+Name[he]=קרב בחלל
+Name[hi]=विसà¥à¤«à¤¼à¥‹à¤Ÿà¤•
+Name[ja]=ブラスター
+Name[ka]=ბლáƒáƒ¡áƒ¢áƒ”რი
+Name[mk]=Ðапад
+Name[ms]=Peledak
+Name[nb]=Strålekanon
+Name[nds]=Blaser
+Name[ne]=बà¥à¤²à¤¾à¤¸à¥à¤Ÿà¤°
+Name[nn]=Strålekanon
+Name[pl]=Miotacz
+Name[pt]=Estoiro
+Name[ru]=БлаÑтер
+Name[sl]=Bojevnik
+Name[sr]=БлаÑтер
+Name[sv]=Strålkanon
+Name[ta]=பà¯à®³à®¾à®¸à¯à®Ÿà®°à¯
+Name[tg]=БлаÑтер
+Name[th]=บลาสเตอร์
+Name[tr]=Süpürge
+Name[uk]=Винищувач
+Name[uz@cyrillic]=БлаÑтер
+Name[ven]=Tshikwashi
+Name[vi]=Nổ tung
+Name[zh_CN]=太空激战
+Name[zh_TW]=攻擊風暴
+
+[Desktop Action Setup]
+Exec=kxsconfig blaster
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun blaster -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun blaster -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/blinkbox.desktop b/tdescreensaver/kxsconfig/ScreenSavers/blinkbox.desktop
new file mode 100644
index 00000000..c80a0ed6
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/blinkbox.desktop
@@ -0,0 +1,225 @@
+[Desktop Entry]
+Exec=blinkbox
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=BlinkBox
+Name[el]=Πλαίσιο αναλαμπών
+Name[eo]=PulsSkatolo
+Name[es]=Caja parpadeante
+Name[et]=Plinkiv kast
+Name[eu]=Kaxa keinularia
+Name[fa]=جعبۀ چشمک
+Name[fr]=Boîte clignotante
+Name[he]=קופסה מהבהבת
+Name[hi]=बà¥à¤²à¤¿à¤‚क-बॉकà¥à¤¸
+Name[hu]=Villódzó doboz
+Name[is]=BlikkBox
+Name[it]=Scatole nella pallina
+Name[ka]=მáƒáƒªáƒ˜áƒ›áƒªáƒ˜áƒ›áƒ” დáƒáƒ¤áƒ
+Name[mk]=Трепкави кутии
+Name[ms]=Kotak Kerlip
+Name[nb]=BlinkBoks
+Name[nds]=Blinkkist
+Name[ne]=बà¥à¤²à¤¿à¤™à¥à¤• बाकस
+Name[nn]=Blinkboks
+Name[pt_BR]=Caixa Piscante
+Name[ru]=Запертые шарики
+Name[sl]=UtripajoÄa Å¡katla
+Name[sr]=Трепћућа кутија
+Name[sr@Latn]=Trepćuća kutija
+Name[sv]=Blinkande ruta
+Name[ta]=மினà¯à®©à¯à®®à¯à®ªà¯†à®Ÿà¯à®Ÿà®¿
+Name[tg]=Кӯрачаҳои манъшуда
+Name[tr]=YanSönKutusu
+Name[uk]=Ðœ'Ñчик в коробці
+Name[vi]=Hộp Nháy
+Name[zh_CN]=é—ªçƒç›’å­
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig blinkbox
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun blinkbox -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun blinkbox -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/blitspin.desktop b/tdescreensaver/kxsconfig/ScreenSavers/blitspin.desktop
new file mode 100644
index 00000000..b5e0d2ec
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/blitspin.desktop
@@ -0,0 +1,218 @@
+[Desktop Entry]
+Exec=blitspin
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=BlitSpin
+Name[cy]=SbinBlit
+Name[de]=Teilen und Drehen
+Name[et]=Tükeldaja
+Name[fa]=چرخش بلیت
+Name[fr]=Image tournante
+Name[he]=×¤×™×¦×•×œ×™× ×•×¡×™×‘×•×‘×™×
+Name[hi]=बà¥à¤²à¤¿à¤Ÿ-सà¥à¤ªà¤¿à¤¨
+Name[hu]=Blitspin
+Name[ja]=ブリットスピン
+Name[ka]=დáƒáƒ’რეხáƒ
+Name[mk]=Ротирање битмапи
+Name[nb]=Blitspinn
+Name[nds]=Deeldreihen
+Name[ne]=बà¥à¤²à¤¿à¤Ÿà¤¸à¥à¤ªà¤¿à¤¨
+Name[nn]=Bitspinn
+Name[pt_BR]=Giro
+Name[ru]=Ð—Ð°ÐºÑ€ÑƒÑ‡ÐµÐ½Ð½Ð°Ñ ÐºÐ°Ñ€Ñ‚Ð¸Ð½ÐºÐ°
+Name[sr]=БлитÑпин
+Name[sr@Latn]=Blitspin
+Name[sv]=Bitspinn
+Name[ta]=பà¯à®³à®¿à®Ÿà¯à®šà¯‚ழலà¯
+Name[tg]=ТаÑвири тофташуда
+Name[uk]=Бліт-переверненнÑ
+Name[zh_CN]=旋转拼图
+Name[zh_TW]=旋轉拼圖
+
+[Desktop Action Setup]
+Exec=kxsconfig blitspin
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun blitspin -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun blitspin -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/blocktube.desktop b/tdescreensaver/kxsconfig/ScreenSavers/blocktube.desktop
new file mode 100644
index 00000000..e7614e8f
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/blocktube.desktop
@@ -0,0 +1,230 @@
+[Desktop Entry]
+Exec=blocktube
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=BlockTube
+Name[ca]=BlocTub
+Name[cy]=TiwbBloc
+Name[de]=Blocktunnel
+Name[eo]=BlokTubo
+Name[es]=Túnel de bloques
+Name[et]=Plokitunnel
+Name[eu]=Bloke hodia
+Name[fa]=لامپ بلوک
+Name[fr]=Tunnel pavé
+Name[fy]=Blokbuizen
+Name[gl]=Túnel de bloques
+Name[he]=בלוק ×מיתי
+Name[hi]=बंद नली
+Name[hu]=Cső
+Name[it]=Tubo a blocchi
+Name[ja]=ブロックãƒãƒ¥ãƒ¼ãƒ–
+Name[ka]=გვირáƒáƒ‘ი - ჩიხი
+Name[mk]=Цевка од блокови
+Name[ms]=Tiub Blok
+Name[nb]=Blokkrør
+Name[nds]=Schieventunnel
+Name[ne]=बà¥à¤²à¤•à¤Ÿà¥à¤¯à¥à¤¬
+Name[nl]=Blokbuizen
+Name[nn]=Blokkrøyr
+Name[pt]=Tubo Bloco
+Name[ru]=РаÑÑыпающийÑÑ Ñ‚ÑƒÐ½Ð½ÐµÐ»ÑŒ
+Name[sl]=BloÄna tuba
+Name[sr]=БлоковÑка цев
+Name[sr@Latn]=Blokovska cev
+Name[sv]=Blocktub
+Name[ta]=பகà¯à®¤à®¿ கà¯à®´à®¾à®¯à¯
+Name[tg]=Тунели пошида иÑтода
+Name[tr]=Tüp
+Name[uk]=Тунель з блоків
+Name[vi]=á»ng Chắn
+Name[zh_CN]=å—æ–¹
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig blocktube
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun blocktube -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun blocktube -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/boing.desktop b/tdescreensaver/kxsconfig/ScreenSavers/boing.desktop
new file mode 100644
index 00000000..bc8f76c8
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/boing.desktop
@@ -0,0 +1,207 @@
+[Desktop Entry]
+Exec=boing
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Boing
+Name[es]=Saltarín
+Name[fy]=Pong
+Name[he]=זבנג
+Name[ja]=ãƒãƒ³
+Name[ka]=ბáƒáƒ˜áƒœáƒ’ი
+Name[mk]=ОтÑкокнување
+Name[ne]=बोइङ
+Name[nl]=Pong
+Name[ru]=Прыгающий шарик
+Name[sr]=Боинг
+Name[sv]=BÃ¥ng
+Name[uk]=Боїнг
+Name[zh_TW]=波音
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig boing
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun boing -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun boing -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/bouboule.desktop b/tdescreensaver/kxsconfig/ScreenSavers/bouboule.desktop
new file mode 100644
index 00000000..28ed4152
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/bouboule.desktop
@@ -0,0 +1,223 @@
+[Desktop Entry]
+Exec=bouboule
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Illusions of Depth
+Name=Bouboule
+Name[af]=Borrels
+Name[br]=Mell-divell
+Name[da]=Klokke
+Name[eo]=Vezikoj
+Name[et]=MullMull
+Name[fo]=Bouboula
+Name[he]=כדור מתפתל
+Name[hi]=à¤à¤¾à¤— के बà¥à¤²à¤¬à¥à¤²à¥‡
+Name[hu]=Buborékok
+Name[it]=Bolle
+Name[ja]=泡
+Name[ka]=ლáƒáƒ¥áƒ”ბი
+Name[lt]=Burbulas
+Name[mk]=ДамчеÑто
+Name[ne]=बोउबोउल
+Name[pt_BR]=Conjunto de Bolhas
+Name[ru]=Шарики
+Name[sk]=Bubliny
+Name[sl]=BalonÄki
+Name[sr]=Буболе
+Name[sr@Latn]=Bubole
+Name[ta]=பௌபௌலà¯
+Name[tg]=Кӯрачаҳо
+Name[th]=ฟอง
+Name[uk]=Бубуль
+Name[uz]=Pufakcha
+Name[uz@cyrillic]=Пуфакча
+Name[zh_CN]=泡泡团
+Name[zh_TW]=泡泡
+
+[Desktop Action Setup]
+Exec=kxsconfig bouboule
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun bouboule -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun bouboule -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/bouncingcow.desktop b/tdescreensaver/kxsconfig/ScreenSavers/bouncingcow.desktop
new file mode 100644
index 00000000..13961a05
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/bouncingcow.desktop
@@ -0,0 +1,237 @@
+[Desktop Entry]
+Exec=bouncingcow
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=BouncingCow
+Name[bg]=Скачаща крава
+Name[br]=Buoc'h dañsus
+Name[ca]=Vaca dansaire
+Name[cs]=Poskakující kráva
+Name[cy]=BuwchSboncio
+Name[de]=Kuh auf Trampolin
+Name[eo]=ResaltaBovin'
+Name[es]=La vaca saltarina
+Name[et]=Hüppav Lehm
+Name[eu]=Behi errebotatzailea
+Name[fa]=گاو سالم و سرحال
+Name[fr]=Vache dansante
+Name[fy]=Stuiterjende Ko
+Name[gl]=Vaca rebotando
+Name[he]=פרה מקפצת
+Name[hi]=उछलती-गाय
+Name[hu]=Pattogó tehén
+Name[is]=Skoppandi belja
+Name[it]=Mucca che salta
+Name[ja]=暴れる牛
+Name[ka]=მáƒáƒ®áƒ¢áƒ£áƒœáƒáƒ•áƒ” ძრáƒáƒ®áƒ
+Name[mk]=Крава што Ñкока
+Name[ms]=Lembu Lantun
+Name[nb]=Sprettende ku
+Name[nds]=Springen Koh
+Name[ne]=बाउनà¥à¤¸à¤¿à¤™à¤•à¤¾à¤‰
+Name[nl]=Stuiterende koe
+Name[nn]=Sprettande ku
+Name[pl]=SkaczÄ…ca krowa
+Name[pt]=VacaSaltitante
+Name[pt_BR]=Vaca
+Name[ro]=Vaca săritoare
+Name[ru]=Ð›ÐµÑ‚Ð°ÑŽÑ‰Ð°Ñ ÐºÐ¾Ñ€Ð¾Ð²Ð°
+Name[sl]=PoskoÄna krava
+Name[sr]=Одбијајућа крава
+Name[sr@Latn]=Odbijajuća krava
+Name[sv]=Studsande ko
+Name[ta]=கà¯à®¤à®¿à®•à¯à®•à¯à®®à¯ பசà¯
+Name[tg]=Гови парвоз карда иÑтода
+Name[tr]=Zıplayanİnek
+Name[uk]=Корова підÑтрибує
+Name[vi]=Bò cái Va đập
+Name[zh_CN]=康康牛
+
+[Desktop Action Setup]
+Exec=kxsconfig bouncingcow
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun bouncingcow -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun bouncingcow -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/boxed.desktop b/tdescreensaver/kxsconfig/ScreenSavers/boxed.desktop
new file mode 100644
index 00000000..afb2fa32
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/boxed.desktop
@@ -0,0 +1,236 @@
+[Desktop Entry]
+Exec=boxed
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Boxed
+Name[ca]=Encaixonat
+Name[cy]=Amgaeëdig
+Name[de]=Bälle im Würfel
+Name[es]=Encajonado
+Name[et]=Kastis
+Name[eu]=Kaxan
+Name[fa]=در جعبه گذاشته‌شده
+Name[fi]=Pakattu
+Name[fo]=Ã kassum
+Name[fr]=En boîte
+Name[gl]=Encaixado
+Name[he]=×›×“×•×¨×™× ×‘×§×•×¤×¡×”
+Name[hi]=बकà¥à¤¸-गोला
+Name[hu]=Dobozos
+Name[is]=Kassað
+Name[ja]=箱詰ã‚
+Name[ka]=ყითები
+Name[mk]=Спакувано
+Name[ms]=Dikotakkan
+Name[mt]=Inkaxxat
+Name[nb]=Kasser
+Name[nds]=Inpackt
+Name[ne]=बाकसमा राखिà¤à¤•à¥‹
+Name[nn]=Kassar
+Name[pl]=W pudełku
+Name[pt]=Encaixotado
+Name[pt_BR]=Encaixado
+Name[ru]=Стакан
+Name[sl]=Å katla
+Name[sr]=КутијаÑто
+Name[sr@Latn]=Kutijasto
+Name[sv]=LÃ¥dor
+Name[ta]=கடà¯à®Ÿà®ªà¯à®ªà®Ÿà¯à®Ÿ
+Name[tg]=Стакан
+Name[tr]=Kutulu
+Name[uk]=В коробці
+Name[ven]=Zwo vhulungwaho
+Name[vi]=Há»™p
+Name[xh]=Ifakwe ebhokisini
+Name[zh_CN]=ç›’å­
+Name[zh_TW]=ç›’è£çš„
+Name[zu]=Okufakwe ebhokisini
+
+[Desktop Action Setup]
+Exec=kxsconfig boxed
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun boxed -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun boxed -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/boxfit.desktop b/tdescreensaver/kxsconfig/ScreenSavers/boxfit.desktop
new file mode 100644
index 00000000..11ddeaf7
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/boxfit.desktop
@@ -0,0 +1,213 @@
+[Desktop Entry]
+Exec=boxfit
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=BoxFit
+Name[ca]=Encaixat
+Name[fi]=Laatikkosovitus
+Name[fr]=En forme de boîte
+Name[gl]=Caixón
+Name[hu]=Dobozba zárva
+Name[ja]=ç®±ã´ã£ãŸã‚Šè©°ã‚
+Name[ka]=ყუთები
+Name[mk]=Погодно за кутија
+Name[nds]=Passkist
+Name[ne]=बकà¥à¤¸à¤«à¤¿à¤Ÿ
+Name[pt]=Encaixotado
+Name[pt_BR]=Preenchimento
+Name[ru]=Разноцветные пузырьки
+Name[sl]=Tlakovanje
+Name[sr]=Уклопљене кутије
+Name[sr@Latn]=Uklopljene kutije
+Name[sv]=Passa i lådor
+Name[tr]=Kutulu
+Name[uk]=В коробці
+Name[vi]=Hộp khít
+
+X-TDE-Category=Gadgets & Simulations
+
+[Desktop Action Setup]
+Exec=kxsconfig boxfit
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun boxfit -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun boxfit -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/braid.desktop b/tdescreensaver/kxsconfig/ScreenSavers/braid.desktop
new file mode 100644
index 00000000..fdd91238
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/braid.desktop
@@ -0,0 +1,237 @@
+[Desktop Entry]
+Exec=braid
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Braid
+Name[af]=Weef
+Name[br]=Plezh
+Name[ca]=Trena
+Name[cs]=Šňůra
+Name[cy]=Plethu
+Name[da]=Fletning
+Name[de]=Zopf
+Name[eo]=Plektaĵo
+Name[es]=Trenza
+Name[et]=Põimik
+Name[fa]=باÙÙ‡
+Name[fr]=Tresse
+Name[fy]=Frissel
+Name[gl]=Trenza
+Name[he]=×ž×¢×’×œ×™× ×§×œ×•×¢×™×
+Name[hi]=रसà¥à¤¸à¤¿à¤¯à¤¾à¤
+Name[hu]=Copf
+Name[is]=Fléttað
+Name[it]=Trecce
+Name[ja]=組ã¿ã²ã‚‚
+Name[ka]=თáƒáƒ¡áƒ›áƒ
+Name[mk]=Ширит
+Name[ms]=Jalin
+Name[mt]=Malja
+Name[nb]=Flette
+Name[nds]=Flechtwark
+Name[ne]=बà¥à¤°à¥‡à¤¡
+Name[pt_BR]=Trança
+Name[ru]=ТеÑьма
+Name[sk]=Stužka
+Name[sl]=Preplet
+Name[sr]=Плетеница
+Name[sr@Latn]=Pletenica
+Name[sv]=HÃ¥rband
+Name[ta]=பினà¯à®©à®²à¯
+Name[tg]=ТаÑмача
+Name[th]=ถัà¸à¹€à¸à¸¥à¸µà¸¢à¸§
+Name[tr]=Saç Örgüsü
+Name[uk]=ПереплетеннÑ
+Name[ven]=U tanganisa
+Name[xh]=Umphotho
+Name[zh_CN]=交织圆环
+Name[zh_TW]=交織圓
+Name[zu]=Igoda
+
+[Desktop Action Setup]
+Exec=kxsconfig braid
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun braid -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun braid -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/bsod.desktop b/tdescreensaver/kxsconfig/ScreenSavers/bsod.desktop
new file mode 100644
index 00000000..5635cf70
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/bsod.desktop
@@ -0,0 +1,204 @@
+[Desktop Entry]
+Exec=bsod
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Banners & Pictures
+Name=BSOD
+Name[fr]=Écran bleu
+Name[he]=מסך המוות הכחול
+Name[hi]=बीà¤à¤¸à¤“डी
+Name[ka]=ლურჯი ეკრáƒáƒœáƒ˜
+Name[ne]=बीà¤à¤¸à¤“डी
+Name[ru]=Синий Ñкран Ñмерти
+Name[tg]=Эрани кабуди марг
+Name[th]=หน้าจอสีฟ้าà¹à¸«à¹ˆà¸‡à¸„วามตาย
+Name[uk]=Синій екран Ñмерті
+Name[zh_CN]=è“å±æ­»æœº
+Name[zh_TW]=當機畫é¢
+
+[Desktop Action Setup]
+Exec=kxsconfig bsod
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun bsod -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun bsod -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/bubble3d.desktop b/tdescreensaver/kxsconfig/ScreenSavers/bubble3d.desktop
new file mode 100644
index 00000000..f554ff3d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/bubble3d.desktop
@@ -0,0 +1,249 @@
+[Desktop Entry]
+Exec=bubble3d
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Bubble 3D (GL)
+Name[af]=Borrel 3d (Gl)
+Name[bg]=Балон 3D (GL)
+Name[br]=Klogor 3D (GL)
+Name[ca]=Bombolla 3D (GL)
+Name[cs]=Bubliny 3D (GL)
+Name[cy]=Swigen 3D (GL)
+Name[da]=Boble 3D (GL)
+Name[de]=Blasen 3D
+Name[el]=Φυσαλίδα 3D (GL)
+Name[eo]=Veziko 3D (graf. bibl.)
+Name[es]=Burbuja 3D (GL)
+Name[et]=Mull 3D (GL)
+Name[eu]=Burbuila 3D (GL)
+Name[fa]=حباب سه بعدی (GL)
+Name[fi]=Kuplat 3D (GL)
+Name[fo]=3D-bubblar (GL)
+Name[fr]=Bulle 3D (GL)
+Name[fy]=Brobbel 3D (GL)
+Name[gl]=Borbulla 3D (GL)
+Name[he]=בועות תלת־מימדיות (GL)
+Name[hi]= तà¥à¤°à¤¿à¤†à¤¯à¤¾à¤®à¥€ बà¥à¤²à¤¬à¥à¤²à¥‡ (जीà¤à¤²)
+Name[hu]=Buborékok 3D (OpenGL)
+Name[is]=Blöðrur 3D (GL)
+Name[it]=Bolla 3D (GL)
+Name[ja]=泡 3D (GL)
+Name[ka]=ბუშტუკები (GL)
+Name[mk]=Меурчиња 3Д (GL)
+Name[mt]=Bżieżaq 3D (GL)
+Name[nb]=Bobler i 3D (GL)
+Name[nds]=3D-Blasen
+Name[ne]=तà¥à¤°à¤¿-आयामिक फोका (GL)
+Name[nn]=Boble 3D (GL)
+Name[pl]=BÄ…belki 3D (GL)
+Name[pt]=Bolha 3D (GL)
+Name[pt_BR]=Bolha 3D (GL)
+Name[ro]=Bulă 3D (GL)
+Name[ru]=Пузырьки (GL)
+Name[sk]=3D Bublina (GL)
+Name[sl]=MehurÄki 3D (GL)
+Name[sr]=Балони 3Д (GL)
+Name[sr@Latn]=Baloni 3D (GL)
+Name[sv]=Bubblor 3D (GL)
+Name[ta]=நà¯à®°à¯ˆ 3டி (GL)
+Name[tg]=Пуфакҳо (GL)
+Name[th]=ฟองà¹à¸šà¸š 3 มิติ (GL)
+Name[tr]=Üç Boyutlu Kabarcık (GL)
+Name[uk]=Бульбашки 3D (GL)
+Name[uz]=Pufakcha 3D (GL)
+Name[uz@cyrillic]=Пуфакча 3D (GL)
+Name[ven]=Pulo 3D (GL)
+Name[vi]=Bá»t 3 chiá»u (GL)
+Name[xh]=Iqampu 3D (GL)
+Name[zh_CN]=立体泡泡(GL)
+Name[zh_TW]=3D 氣泡 (GL)
+Name[zu]=Igwebu 3D (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig bubble3d
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun bubble3d -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun bubble3d -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/bubbles.desktop b/tdescreensaver/kxsconfig/ScreenSavers/bubbles.desktop
new file mode 100644
index 00000000..45ce25be
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/bubbles.desktop
@@ -0,0 +1,249 @@
+[Desktop Entry]
+Exec=bubbles
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Bubbles
+Name[af]=Borrels
+Name[bg]=Балончета
+Name[br]=Klogor
+Name[ca]=Bombolles
+Name[cs]=Bubliny
+Name[cy]=Swigod
+Name[da]=Bobler
+Name[de]=Blasen
+Name[el]=Φυσαλίδες
+Name[eo]=Vezikoj
+Name[es]=Burbujas
+Name[et]=Mullid
+Name[eu]=Burbuilak
+Name[fa]=حبابها
+Name[fi]=Kuplat
+Name[fo]=Bubblar
+Name[fr]=Bulles
+Name[fy]=Brobbels
+Name[gl]=Borbullas
+Name[he]=בועות
+Name[hi]=बà¥à¤²à¤¬à¥à¤²à¥‡
+Name[hu]=Buborékok
+Name[is]=Blöðrur
+Name[it]=Bolle
+Name[ja]=泡
+Name[ka]=ბუშტუკები
+Name[mk]=Меурчиња
+Name[ms]=Bebuih
+Name[mt]=Bżieżaq
+Name[nb]=Bobler
+Name[nds]=Blasen
+Name[ne]=फोका
+Name[nn]=Bobler
+Name[pl]=BÄ…belki
+Name[pt]=Bolhas
+Name[pt_BR]=Bolhas
+Name[ro]=Bule
+Name[ru]=Кипение
+Name[sk]=Bubliny
+Name[sl]=MehurÄki
+Name[sr]=Балони
+Name[sr@Latn]=Baloni
+Name[sv]=Bubblor
+Name[ta]=நà¯à®°à¯ˆà®•à®³à¯
+Name[tg]=Ҷӯшиш
+Name[th]=ฟอง
+Name[tr]=Kabarcıklar
+Name[uk]=Бульбашки
+Name[uz]=Pufakchalar
+Name[uz@cyrillic]=Пуфакчалар
+Name[ven]=Mapulo
+Name[vi]=Bá»t
+Name[xh]=Amaqampu
+Name[zh_CN]=泡泡
+Name[zh_TW]=氣泡
+Name[zu]=Amagwebu
+
+[Desktop Action Setup]
+Exec=kxsconfig bubbles
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun bubbles -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun bubbles -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/bumps.desktop b/tdescreensaver/kxsconfig/ScreenSavers/bumps.desktop
new file mode 100644
index 00000000..a2c21869
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/bumps.desktop
@@ -0,0 +1,238 @@
+[Desktop Entry]
+Exec=bumps
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=Bumps
+Name[bg]=ÐеравноÑти
+Name[cy]=Hergydion
+Name[da]=Bump
+Name[de]=Beulen
+Name[el]=ΣυγκÏοÏσεις
+Name[es]=Bultos
+Name[et]=Kühmud
+Name[eu]=Erliebeak
+Name[fa]=ضربتها
+Name[fr]=Bosses
+Name[fy]=Bûns
+Name[gl]=Vultos
+Name[he]=זרקור תלת־מימד
+Name[hi]=बमà¥à¤ªà¥à¤¸
+Name[hu]=Dudorok
+Name[is]=Þúfur
+Name[it]=Cunette
+Name[ja]=ã§ã“ã¼ã“
+Name[ka]=ტვიფრი
+Name[mk]=Ðерамнини
+Name[mt]=Ħotob
+Name[nb]=Humper
+Name[nds]=Printblick
+Name[ne]=बमà¥à¤ªà¥à¤¸
+Name[nn]=Humpar
+Name[pl]=Zakłócenia
+Name[pt]=Mossas
+Name[pt_BR]=Colisões
+Name[ro]=Umflături
+Name[ru]=ШахтёрÑкий фонарик
+Name[sl]=Izbokline
+Name[sr]=Избочине
+Name[sr@Latn]=IzboÄine
+Name[sv]=Bulor
+Name[ta]=மேடà¯à®•à®³à¯
+Name[tg]=ФонуÑчаи киÑагии шахтёрӣ
+Name[th]=à¸à¸£à¸°à¹€à¸”้งà¸à¸£à¸°à¸”อน
+Name[tr]=Darbe
+Name[uk]=Ліхтарик
+Name[ven]=U bammba
+Name[vi]=Nảy
+Name[xh]=Ingquba
+Name[zh_CN]=探照ç¯
+Name[zu]=Okokubhampa
+
+[Desktop Action Setup]
+Exec=kxsconfig bumps
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun bumps -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun bumps -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/cage.desktop b/tdescreensaver/kxsconfig/ScreenSavers/cage.desktop
new file mode 100644
index 00000000..156aed2f
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/cage.desktop
@@ -0,0 +1,249 @@
+[Desktop Entry]
+Exec=cage
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Cage (GL)
+Name[af]=Hok (Gl)
+Name[br]=Kaloued (GL)
+Name[ca]=Gàbia (GL)
+Name[cs]=Klec 3D (GL)
+Name[cy]=Cawell (GL)
+Name[da]=Bur (GL)
+Name[de]=Käfig
+Name[el]=Κλουβί (GL)
+Name[eo]=KaÄo (graf. bibl.)
+Name[es]=Jaula (GL)
+Name[et]=Puur (GL)
+Name[eu]=Kaiola (GL)
+Name[fa]=Ù‚Ùس (GL)
+Name[fi]=Luola (GL)
+Name[fo]=Búr (GL)
+Name[fy]=Koai (GL)
+Name[gl]=Gaiola (GL)
+Name[he]=כלוב (GL)
+Name[hi]=पिंजरा (जीà¤à¤²)
+Name[hu]=Kalitka (OpenGL)
+Name[is]=Búr (GL)
+Name[it]=Gabbia (GL)
+Name[ja]=ã‹ã” (GL)
+Name[ka]=გáƒáƒšáƒ˜áƒ (GL)
+Name[lt]=Narvelis (GL)
+Name[mk]=Кафез (GL)
+Name[mt]=Gaġġa (GL)
+Name[nb]=Bur (GL)
+Name[nds]=Escherkist (GL)
+Name[ne]=पिंजडा (GL)
+Name[nn]=Bur (GL)
+Name[pa]=ਪਿੰਜਰਾ (GL)
+Name[pl]=Klatka (GL)
+Name[pt]=Jaula (GL)
+Name[pt_BR]=Gaiola (GL)
+Name[ro]=Cuşcă (GL)
+Name[ru]=Клетка (GL)
+Name[sk]=Klietka (GL)
+Name[sl]=Kletka (GL)
+Name[sr]=Кавез (GL)
+Name[sr@Latn]=Kavez (GL)
+Name[sv]=Bur (GL)
+Name[ta]=கூணà¯à®Ÿà¯ (GL)
+Name[tg]=ÒšÐ°Ñ„Ð°Ñ (GL)
+Name[th]=à¸à¸£à¸‡ (GL)
+Name[tr]=Kafes (GL)
+Name[uk]=Клітка (GL)
+Name[uz]=Qafas (GL)
+Name[uz@cyrillic]=ÒšÐ°Ñ„Ð°Ñ (GL)
+Name[ven]=Hokoni (GL)
+Name[vi]=Lồng (GL)
+Name[xh]=Indlu yentaka (GL)
+Name[zh_CN]=笼å­(GL)
+Name[zh_TW]=牢籠 (GL)
+Name[zu]=Ikheji (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig cage
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun cage -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun cage -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/carousel.desktop b/tdescreensaver/kxsconfig/ScreenSavers/carousel.desktop
new file mode 100644
index 00000000..021a71fe
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/carousel.desktop
@@ -0,0 +1,228 @@
+[Desktop Entry]
+Exec=carousel
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Carousel
+Name[ca]=Carrusel
+Name[cs]=Karusel
+Name[da]=Karussel
+Name[de]=Karussell
+Name[eo]=Karuselo
+Name[es]=Carrusel
+Name[et]=Karussell
+Name[fa]=چرخ ÙÙ„Ú©
+Name[fi]=Karuselli
+Name[fr]=Carrousel
+Name[fy]=Draaimole
+Name[gl]=Carrusel
+Name[he]=קרוסלה
+Name[hu]=Ringlispil
+Name[is]=Hringekja
+Name[it]=Carosello
+Name[ja]=回転木馬
+Name[ka]=კáƒáƒ áƒ£áƒ¡áƒ”ლი
+Name[mk]=Вртелешка
+Name[nb]=Karusell
+Name[nds]=Mallmöhl
+Name[ne]=फेसà¥à¤Ÿà¤¿à¤­à¤²
+Name[nl]=Draaimolen
+Name[nn]=Karusell
+Name[pt]=Carrossel
+Name[pt_BR]=Carrossel
+Name[ru]=КаруÑель
+Name[sl]=Vrtiljak
+Name[sr]=КаруÑел
+Name[sr@Latn]=Karusel
+Name[sv]=Karusell
+Name[uk]=КаруÑель
+Name[vi]=Nồi hầm
+Name[zh_TW]=旋轉木馬
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig carousel
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun carousel -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun carousel -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/ccurve.desktop b/tdescreensaver/kxsconfig/ScreenSavers/ccurve.desktop
new file mode 100644
index 00000000..85f95125
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/ccurve.desktop
@@ -0,0 +1,242 @@
+[Desktop Entry]
+Exec=ccurve
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=C Curve
+Name[af]=C Kurwe
+Name[br]=Kromm C
+Name[ca]=Corba C
+Name[cs]=C křivka
+Name[cy]=Cromlin C
+Name[da]=C-kurve
+Name[de]=C-Kurve
+Name[el]=ΚαμπÏλη C
+Name[es]=Curva C
+Name[eu]=C kurba
+Name[fa]=منحنی C
+Name[fi]=C käyrä
+Name[fr]=Courbes en C
+Name[fy]=C Kurve
+Name[gl]=Curva C
+Name[he]=×¤×¨×§×˜×œ×™× ×§×•×•×™×™×
+Name[hi]=सी वकà¥à¤°
+Name[hu]=C-görbe
+Name[is]=C ferill
+Name[it]=Curva C
+Name[ja]=C 曲線
+Name[ka]=ტეხილი
+Name[mk]=C-крива
+Name[ms]=Keluk C
+Name[mt]=Kurvatura C
+Name[nb]=C-Kurve
+Name[nds]=C-Bagen
+Name[ne]=सी बकà¥à¤°
+Name[nn]=Kurvar
+Name[pa]=C ਵਤਰ
+Name[pl]=Krzywa C
+Name[pt]=Curva C
+Name[pt_BR]=Curva em C
+Name[ro]=Curbă C
+Name[ru]=ИÑÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð¸Ñ Ð»Ð¸Ð½Ð¸Ð¸
+Name[sl]=Krivulja C
+Name[sr]=Ц крива
+Name[sr@Latn]=C kriva
+Name[sv]=Kurvor
+Name[ta]=சி வளைகோடà¯
+Name[tg]=Ҳам (каҷ) кардани рах
+Name[tr]=EÄŸim
+Name[uk]=Криві
+Name[ven]=U vhadea sa C
+Name[vi]=ÄÆ°á»ng cong C
+Name[xh]=Igophe lika C
+Name[zh_CN]=C 曲线
+Name[zh_TW]=C 曲線
+Name[zu]=Iqhuzu le-C
+
+[Desktop Action Setup]
+Exec=kxsconfig ccurve
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun ccurve -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun ccurve -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/celtic.desktop b/tdescreensaver/kxsconfig/ScreenSavers/celtic.desktop
new file mode 100644
index 00000000..0aa61b74
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/celtic.desktop
@@ -0,0 +1,227 @@
+[Desktop Entry]
+Exec=celtic
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Celtic
+Name[bg]=Келт
+Name[br]=Keltiek
+Name[ca]=Cèltic
+Name[da]=Keltisk
+Name[de]=Keltisch
+Name[el]=Κέλτικο
+Name[eo]=Kelta
+Name[es]=Celta
+Name[fa]=سلتی
+Name[fi]=Kelttiläinen
+Name[fr]=Celtique
+Name[ga]=Ceilteach
+Name[gl]=Céltico
+Name[hu]=Kelta
+Name[is]=Keltneskt
+Name[it]=Celtico
+Name[ja]=ケルト
+Name[ka]=კელტური
+Name[mk]=КелтÑки
+Name[nb]=Keltisk
+Name[nds]=Keltsch
+Name[ne]=सेलà¥à¤Ÿà¤¿à¤•
+Name[nl]=Keltisch
+Name[nn]=Keltisk
+Name[pt]=Céltico
+Name[pt_BR]=Celta
+Name[ru]=КельтÑкие мотивы
+Name[sl]=Keltsko
+Name[sr]=КелтÑки
+Name[sr@Latn]=Keltski
+Name[sv]=Keltisk
+Name[tr]=Keltik
+Name[uk]=КельтÑька
+Name[zh_TW]=塞爾æå…‹
+
+X-TDE-Category=Visit to Flatland
+
+[Desktop Action Setup]
+Exec=kxsconfig celtic
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun celtic -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun celtic -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/circuit.desktop b/tdescreensaver/kxsconfig/ScreenSavers/circuit.desktop
new file mode 100644
index 00000000..67dbb424
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/circuit.desktop
@@ -0,0 +1,240 @@
+[Desktop Entry]
+Exec=circuit
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Circuit
+Name[cs]=Obvod
+Name[cy]=Cylched
+Name[da]=Kredsløb
+Name[de]=Schaltkreis
+Name[el]=ΚÏκλωμα
+Name[es]=Circuito
+Name[et]=Vooluring
+Name[eu]=Zirkuitua
+Name[fa]=مدار
+Name[fi]=Piiri
+Name[fy]=Sirkwy
+Name[gl]=Circuito
+Name[he]=×לקטרוניקה
+Name[hi]=सरà¥à¤•à¤¿à¤Ÿ
+Name[hu]=Pálya
+Name[is]=Rásir
+Name[it]=Circuito
+Name[ja]=回路
+Name[ka]=ელექტრáƒáƒ¡áƒ¥áƒ”მáƒ
+Name[mk]=ЕлектронÑки кола
+Name[ms]=Litar
+Name[mt]=ÄŠirkwit
+Name[nb]=Krets
+Name[nds]=Schaltkrink
+Name[ne]=सरà¥à¤•à¤¿à¤Ÿ
+Name[nn]=Krets
+Name[pa]=ਸਰਕਟ
+Name[pl]=Obwód
+Name[pt]=Circuito
+Name[pt_BR]=Circuito
+Name[ru]=ВращениÑ
+Name[rw]=Uruhuriranenzira
+Name[sl]=Vezje
+Name[sr]=Коло
+Name[sr@Latn]=Kolo
+Name[sv]=Krets
+Name[ta]==மினà¯à®šà¯à®±à¯à®±à¯
+Name[tg]=Тобхурӣ
+Name[th]=ลายวงจร
+Name[tr]=Devre
+Name[uk]=Радіо-деталі
+Name[ven]=Tshitshimbidzi tsha mulilo
+Name[vi]=Mạch điện
+Name[zh_CN]=电路
+Name[zh_TW]=ç·šè·¯
+Name[zu]=Isekisi
+
+[Desktop Action Setup]
+Exec=kxsconfig circuit
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun circuit -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun circuit -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/cloudlife.desktop b/tdescreensaver/kxsconfig/ScreenSavers/cloudlife.desktop
new file mode 100644
index 00000000..9bf34348
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/cloudlife.desktop
@@ -0,0 +1,232 @@
+[Desktop Entry]
+Exec=cloudlife
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=CloudLife
+Name[br]=Koumoul pik
+Name[ca]=Núvol de Vida
+Name[cy]=BywydCymylau
+Name[de]=Lebendige Wolken
+Name[eo]=NubVivo
+Name[es]=Nube viva
+Name[et]=Pilveelu
+Name[eu]=Puntu-hodeiak
+Name[fa]=زندگی تیره و تار
+Name[fr]=Nuages de points
+Name[fy]=Libje yn'e wolken
+Name[he]=ענן ×—×™×™×
+Name[hi]=हयाते-अबà¥à¤°
+Name[hu]=Élet a felhőkben
+Name[is]=Skýjalíf
+Name[ja]=クラウドライフ
+Name[ka]=ღრუბლები
+Name[mk]=Животот на облакот
+Name[ms]=Hayat Awan
+Name[nb]=Sky-liv
+Name[nds]=Wulkenleven
+Name[ne]=कà¥à¤²à¤¾à¤‰à¤¡à¤²à¤¾à¤‡à¤«
+Name[nl]=Leven in de wolken
+Name[nn]=Sky-liv
+Name[pl]=Życie w chmurach
+Name[pt]=Nuvem Viva
+Name[pt_BR]=Nas Nuvens
+Name[ro]=Nor de viaţă
+Name[ru]=Облака
+Name[sl]=Življenje oblaka
+Name[sr]=Живот облака
+Name[sr@Latn]=Život oblaka
+Name[sv]=Molnrörelser
+Name[ta]=மேகவாழà¯à®•à¯à®•à¯ˆ
+Name[tg]=Ðбр
+Name[tr]=Bulut
+Name[uk]=Хмари
+Name[vi]=Äám mây Cuá»™c sống
+Name[zh_CN]=云海
+X-TDE-Category=Gadgets & Simulations
+
+[Desktop Action Setup]
+Exec=kxsconfig cloudlife
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun cloudlife -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun cloudlife -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/compass.desktop b/tdescreensaver/kxsconfig/ScreenSavers/compass.desktop
new file mode 100644
index 00000000..672c44b1
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/compass.desktop
@@ -0,0 +1,253 @@
+[Desktop Entry]
+Exec=compass
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Compass
+Name[af]=Kompas
+Name[bg]=КомпаÑ
+Name[br]=Nadoz-vor
+Name[ca]=Compàs
+Name[cs]=Kompas
+Name[cy]=Cwmpawd
+Name[da]=Kompas
+Name[de]=Kompass
+Name[el]=Πυξίδα
+Name[eo]=Kompaso
+Name[es]=Brújula
+Name[et]=Kompass
+Name[eu]=Iparorratza
+Name[fa]=قطب‌نما
+Name[fi]=Kompassi
+Name[fo]=Kumpass
+Name[fr]=Boussole
+Name[fy]=Kompas
+Name[gl]=Compás
+Name[he]=מצפן
+Name[hi]=दिशा-सूचक
+Name[hu]=Iránytű
+Name[is]=Kompás
+Name[it]=Bussola
+Name[ja]=コンパス
+Name[ka]=კáƒáƒ›áƒžáƒáƒ¡áƒ˜
+Name[lt]=Kompasas
+Name[lv]=Kompass
+Name[mk]=КомпаÑ
+Name[ms]=Kompas
+Name[mt]=Kumpass
+Name[nb]=Kompass
+Name[nds]=Kompass
+Name[ne]=कमà¥à¤ªà¤¾à¤¸
+Name[nl]=kompas
+Name[nn]=Kompass
+Name[pa]=ਕੰਪਾਸ
+Name[pl]=Kompas
+Name[pt]=Compasso
+Name[pt_BR]=Compasso
+Name[ro]=Compas
+Name[ru]=КомпаÑ
+Name[sk]=Kompas
+Name[sl]=Kompas
+Name[sr]=КомпаÑ
+Name[sr@Latn]=Kompas
+Name[sv]=Kompass
+Name[ta]=பாகைமானி
+Name[tg]=Қутбнамо
+Name[th]=เขาวงà¸à¸•
+Name[tr]=Pusula
+Name[uk]=КомпаÑ
+Name[uz]=Kompas
+Name[uz@cyrillic]=КомпаÑ
+Name[ven]=Tsumbavhuyo
+Name[vi]=Com pa
+Name[xh]=Ikhampasi
+Name[zh_CN]=罗盘
+Name[zh_TW]=指å—é‡
+Name[zu]=Ikhampasi
+
+[Desktop Action Setup]
+Exec=kxsconfig compass
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun compass -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun compass -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/coral.desktop b/tdescreensaver/kxsconfig/ScreenSavers/coral.desktop
new file mode 100644
index 00000000..372a9906
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/coral.desktop
@@ -0,0 +1,246 @@
+[Desktop Entry]
+Exec=coral
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Fractals
+Name=Coral
+Name[af]=Koraal
+Name[bg]=Корал
+Name[br]=Koural
+Name[ca]=Corall
+Name[cs]=Korál
+Name[cy]=Cwrel
+Name[da]=Koral
+Name[de]=Koralle
+Name[el]=ΚοÏάλλι
+Name[eo]=Koralo
+Name[et]=Korall
+Name[eu]=Korala
+Name[fa]=مرجان
+Name[fi]=Koralli
+Name[fr]=Corail
+Name[fy]=Koraal
+Name[he]=×למוגי×
+Name[hi]=मूंगा
+Name[hu]=Korall
+Name[is]=Kórall
+Name[it]=Corallo
+Name[ja]=çŠç‘š
+Name[ka]=მáƒáƒ áƒ¯áƒáƒœáƒ˜
+Name[lt]=Koralas
+Name[lv]=KoraļļkrÄsas
+Name[mk]=Корал
+Name[ms]=Karang
+Name[mt]=Qroll
+Name[nb]=Korall
+Name[nds]=Korall
+Name[ne]=मूगा
+Name[nl]=koraal
+Name[nn]=Korall
+Name[pl]=Koral
+Name[ru]=Коралл
+Name[sk]=Korál
+Name[sl]=Korale
+Name[sr]=Корал
+Name[sr@Latn]=Koral
+Name[sv]=Korall
+Name[ta]=கடறà¯à®ªà®¾à®šà®¿
+Name[tg]=Марҷон
+Name[th]=ปะà¸à¸²à¸£à¸±à¸‡
+Name[tr]=Mercan
+Name[uk]=Корал
+Name[uz]=Koral
+Name[uz@cyrillic]=Корал
+Name[ven]=Khorala
+Name[vi]=San hô
+Name[xh]=Indawo enzima efihlwe zizinambuzane zaselwandle
+Name[zh_CN]=çŠç‘š
+Name[zh_TW]=çŠç‘š
+Name[zu]=Indawo enzima efihlwe izilwane zaselwandle
+
+[Desktop Action Setup]
+Exec=kxsconfig coral
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun coral -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun coral -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/crackberg.desktop b/tdescreensaver/kxsconfig/ScreenSavers/crackberg.desktop
new file mode 100644
index 00000000..c212facf
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/crackberg.desktop
@@ -0,0 +1,205 @@
+[Desktop Entry]
+Exec=crackberg
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Crackberg
+Name[ja]=クラックãƒãƒ¼ã‚°
+Name[mk]=ИÑпукани Ñанти мраз
+Name[nb]=Knekkberg
+Name[nds]=Knackbarg
+Name[ne]=कà¥à¤°à¥à¤¯à¤¾à¤•à¤¬à¤°à¥à¤—
+Name[nn]=Knekkberg
+Name[ru]=Терраформирование
+Name[sl]=Visoki otoki
+Name[sr]=Крекберг
+Name[sr@Latn]=Krekberg
+Name[sv]=Spräcka berg
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig crackberg
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun crackberg -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun crackberg -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/critical.desktop b/tdescreensaver/kxsconfig/ScreenSavers/critical.desktop
new file mode 100644
index 00000000..9f6406a4
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/critical.desktop
@@ -0,0 +1,242 @@
+[Desktop Entry]
+Exec=critical
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Rapid Motion
+Name=Critical
+Name[af]=Krities
+Name[bg]=Критично
+Name[br]=Arvarus
+Name[ca]=Crític
+Name[cy]=Critigol
+Name[da]=Kritisk
+Name[de]=Kritisch
+Name[el]=ΚÏίσιμο
+Name[es]=Crítico
+Name[et]=Kriitiline
+Name[eu]=Kritikoa
+Name[fa]=بحرانی
+Name[fi]=Kriittinen
+Name[fr]=Critique
+Name[gl]=Crítico
+Name[he]=×§×•×•×™× ×קר××™×™×
+Name[hi]=कà¥à¤°à¤¿à¤Ÿà¤¿à¤•à¤²
+Name[hu]=Kritikus
+Name[is]=Alvarlegt
+Name[it]=Critico
+Name[ja]=クリティカル
+Name[ka]=კრიტიკული
+Name[mk]=Критично
+Name[ms]=Kritikal
+Name[mt]=Kritiku
+Name[nb]=Kritisk
+Name[nds]=Kritisch
+Name[ne]=असामानà¥à¤¯
+Name[nn]=Kritisk
+Name[nso]=Ganetsa
+Name[pa]=ਗੰਭੀਰ
+Name[pt]=Crítico
+Name[pt_BR]=Crítico
+Name[ro]=Critic
+Name[ru]=ЛоманаÑ
+Name[sl]=KritiÄno
+Name[sr]=Критично
+Name[sr@Latn]=KritiÄno
+Name[sv]=Kritisk
+Name[ta]=à®®à¯à®•à¯à®•à®¿à®¯à®®à®¾à®©
+Name[tg]=ШикаÑта
+Name[th]=วิà¸à¸¤à¸•à¸´
+Name[tr]=Kritik
+Name[uk]=Ламані
+Name[ven]=Zwisasaladzeaho
+Name[vi]=Tới hạn
+Name[xh]=Ilimazekile
+Name[zh_CN]=转折
+Name[zu]=Okubucayi
+
+[Desktop Action Setup]
+Exec=kxsconfig critical
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun critical -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun critical -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/crystal.desktop b/tdescreensaver/kxsconfig/ScreenSavers/crystal.desktop
new file mode 100644
index 00000000..f4e19c5f
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/crystal.desktop
@@ -0,0 +1,251 @@
+[Desktop Entry]
+Exec=crystal
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Rapid Motion
+Name=Crystal
+Name[af]=Kristal
+Name[bg]=КриÑтал
+Name[br]=Strink
+Name[ca]=Cristall
+Name[cs]=Krystal
+Name[cy]=Grisial
+Name[da]=Krystal
+Name[de]=Kristall
+Name[el]=ΚÏÏσταλλος
+Name[eo]=Kristalo
+Name[es]=Cristal
+Name[et]=Kristall
+Name[eu]=Kristal
+Name[fa]=بلور
+Name[fi]=Kristalli
+Name[fo]=Krystall
+Name[fr]=Cristal
+Name[fy]=Kristal
+Name[gl]=Cristal
+Name[he]=גביש
+Name[hi]=सà¥à¤«à¤Ÿà¤¿à¤•
+Name[hu]=Kristály
+Name[is]=Kristal
+Name[it]=Cristallo
+Name[ja]=クリスタル
+Name[ka]=კრისტáƒáƒšáƒ˜
+Name[lt]=Kristalas
+Name[lv]=KristÄls
+Name[mk]=КриÑтал
+Name[ms]=Kristal
+Name[mt]=Kristall
+Name[nb]=Krystall
+Name[nds]=Kristall
+Name[ne]=कà¥à¤°à¤¿à¤¸à¥à¤Ÿà¤²
+Name[nn]=Krystall
+Name[pl]=Kryształ
+Name[pt]=Cristal
+Name[pt_BR]=Cristal
+Name[ro]=Cristal
+Name[ru]=КриÑталл
+Name[sk]=Kryštáľ
+Name[sl]=Kristal
+Name[sr]=КриÑтал
+Name[sr@Latn]=Kristal
+Name[sv]=Kristall
+Name[ta]=படிகமà¯
+Name[tg]=КриÑталл
+Name[th]=คริสตัล
+Name[tr]=Kristal
+Name[uk]=КриÑтал
+Name[uz]=Kristal
+Name[uz@cyrillic]=КриÑтал
+Name[ven]=Zwivhonalaho
+Name[vi]=Tinh thể
+Name[xh]=Into ekhanyayo
+Name[zh_CN]=晶格
+Name[zh_TW]=水晶
+Name[zu]=Itshe elikhanyayo
+
+[Desktop Action Setup]
+Exec=kxsconfig crystal
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun crystal -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun crystal -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/cube21.desktop b/tdescreensaver/kxsconfig/ScreenSavers/cube21.desktop
new file mode 100644
index 00000000..3d5ae00a
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/cube21.desktop
@@ -0,0 +1,225 @@
+[Desktop Entry]
+Exec=cube21
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Cube 21
+Name[bg]=Куб 21
+Name[ca]=Cub 21
+Name[cs]=Kostka 21
+Name[de]=Würfel 21
+Name[eo]=Kubo 21
+Name[es]=Cubo 21
+Name[fa]=مکعب ۲۱
+Name[gl]=Cubo 21
+Name[he]=קוביה 21
+Name[hu]=Kocka 21
+Name[is]=Teningur 21
+Name[it]=Cubo 21
+Name[ja]=キューブ 21
+Name[ka]=კუბი 21
+Name[mk]=Коцка 21
+Name[nb]=Kube 21
+Name[nds]=Wörpel 21
+Name[ne]=घन २१
+Name[nl]=Kubus 21
+Name[nn]=Kube 21
+Name[pt]=Cubo 21
+Name[pt_BR]=Cubo 21
+Name[ru]=Кубик 21
+Name[sl]=Kocka 21
+Name[sr]=Коцка 21
+Name[sr@Latn]=Kocka 21
+Name[sv]=Kub 21
+Name[tr]=Küp 21
+Name[uk]=Куб 21
+Name[vi]=Lập phương 21
+Name[zh_TW]=立方體 21
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig cube21
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun cube21 -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun cube21 -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/cubenetic.desktop b/tdescreensaver/kxsconfig/ScreenSavers/cubenetic.desktop
new file mode 100644
index 00000000..6a41938d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/cubenetic.desktop
@@ -0,0 +1,226 @@
+[Desktop Entry]
+Exec=cubenetic
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Cubenetic
+Name[cy]=Ciwbnetig
+Name[de]=Würfelnetik
+Name[el]=Κυβοειδές
+Name[es]=Cubonetic
+Name[et]=Kubineetika
+Name[eu]=Kubenetikoa
+Name[fr]=Cubique
+Name[gl]=Cubonético
+Name[he]=קוביות
+Name[hi]=गति घन
+Name[hu]=Kocka
+Name[ja]=キューブãƒãƒ†ã‚£ãƒƒã‚¯
+Name[ka]=კუბიკები
+Name[mk]=Хиперкоцки
+Name[ms]=Kiub
+Name[nb]=Kubenetisk
+Name[nds]=Kubeneetsch
+Name[ne]=कà¥à¤¯à¥‚बनेटिक
+Name[nn]=Kubisk
+Name[pt]=Cubo
+Name[pt_BR]=Cubo
+Name[ru]=Кубики
+Name[sl]=PrekrivajoÄe Å¡katle
+Name[sr]=КоцкаÑтично
+Name[sr@Latn]=KockastiÄno
+Name[sv]=Kubistisk
+Name[ta]=படà¯à®Ÿà®•
+Name[tg]=Кубикҳо
+Name[tr]=Küpler
+Name[uk]=Кубики
+Name[zh_CN]=立方体
+Name[zh_TW]=立方體
+
+[Desktop Action Setup]
+Exec=kxsconfig cubenetic
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun cubenetic -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun cubenetic -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/cubestorm.desktop b/tdescreensaver/kxsconfig/ScreenSavers/cubestorm.desktop
new file mode 100644
index 00000000..5900085e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/cubestorm.desktop
@@ -0,0 +1,230 @@
+[Desktop Entry]
+Exec=cubestorm
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=CubeStorm
+Name[ca]=TempestaCúbica
+Name[cy]=StormCiwb
+Name[de]=Würfelsturm
+Name[eo]=KubÅœtorm'
+Name[es]=Tormenta cúbica
+Name[et]=Kuubimaru
+Name[eu]=Ekaitz kubikoa
+Name[fr]=Cube
+Name[gl]=Tormenta cúbica
+Name[he]=קוביות סערה
+Name[hi]=घन-तूफ़ान
+Name[hu]=Kocka-vihar
+Name[is]=Kubbastormur
+Name[ja]=キューブストーム
+Name[ka]=კუბიკების ზვáƒáƒ•áƒ˜
+Name[mk]=Бура од коцки
+Name[ms]=Ribut Kiub
+Name[nb]=Kubestorm
+Name[nds]=Wörpelstorm
+Name[ne]=कà¥à¤¯à¥‚बसà¥à¤Ÿà¥à¤°à¤°à¥à¤®
+Name[nn]=Kubestorm
+Name[pl]=Burza sześcianów
+Name[pt]=Tempestade Cubo
+Name[pt_BR]=Tempestade em Cubo
+Name[ru]=ÐашеÑтвие кубиков
+Name[sl]=SukajoÄe Å¡katle
+Name[sr]=КоцкаÑта олуја
+Name[sr@Latn]=Kockasta oluja
+Name[sv]=Kubstorm
+Name[ta]=படà¯à®Ÿà®•à®ªà¯à®ªà¯à®¯à®²à¯
+Name[tg]=Ҳуҷуми кубикҳо
+Name[tr]=Küp Fırtınası
+Name[uk]=ÐашеÑÑ‚Ñ ÐºÑƒÐ±Ñ–Ð²
+Name[vi]=Bão Lập phương
+Name[zh_CN]=立方风暴
+Name[zh_TW]=立體風暴
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig cubestorm
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun cubestorm -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun cubestorm -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/cubicgrid.desktop b/tdescreensaver/kxsconfig/ScreenSavers/cubicgrid.desktop
new file mode 100644
index 00000000..185c1b34
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/cubicgrid.desktop
@@ -0,0 +1,25 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=cubicgrid
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=CubicGrid
+
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig cubicgrid
+Name=Setup...
+
+[Desktop Action InWindow]
+Exec=kxsrun cubicgrid -- -window-id %w
+Name=Display in Specified Window
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun cubicgrid -- -root
+Name=Display in Root Window
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/cwaves.desktop b/tdescreensaver/kxsconfig/ScreenSavers/cwaves.desktop
new file mode 100644
index 00000000..eb473b85
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/cwaves.desktop
@@ -0,0 +1,204 @@
+[Desktop Entry]
+Exec=cwaves
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=CWaves
+Name[ca]=OnesC
+Name[de]=C-Wellen
+Name[es]=Ondas C
+Name[et]=CLained
+Name[fr]=Ondulations
+Name[it]=Onde
+Name[nds]=C-Bülgen
+Name[ru]=Северное ÑиÑние
+Name[sr]=Ц-талаÑи
+Name[sr@Latn]=C-talasi
+Name[sv]=VÃ¥gor
+
+X-TDE-Category=Illusions of Depth
+
+[Desktop Action Setup]
+Exec=kxsconfig cwaves
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun cwaves -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun cwaves -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/cynosure.desktop b/tdescreensaver/kxsconfig/ScreenSavers/cynosure.desktop
new file mode 100644
index 00000000..6dfb1385
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/cynosure.desktop
@@ -0,0 +1,221 @@
+[Desktop Entry]
+Exec=cynosure
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Cynosure
+Name[ca]=Centre d'atracció
+Name[cy]=Canolbwynt Edmygedd
+Name[de]=Anziehungspunkt
+Name[es]=Centro de atracción
+Name[et]=Huvikese
+Name[eu]=Erakarpen zentrua
+Name[fa]=ستارۀ قطبی
+Name[he]=×ž×œ×‘× ×™× ×¦×‘×¢×•× ×™×™×
+Name[hi]=सायनोसà¥à¤¯à¥‹à¤°
+Name[ka]=კáƒáƒœáƒªáƒ”ნტრáƒáƒªáƒ˜áƒ
+Name[lv]=PolÄrzvaigzne
+Name[mk]=Предмет на воÑхит
+Name[ms]=Pusat Tumpuan
+Name[nb]=Ledstjerne
+Name[ne]=मारà¥à¤—दरà¥à¤¶à¤•
+Name[pt_BR]=Centro de atração
+Name[ru]=Центр вниманиÑ
+Name[sr]=МагнетÑка привлачноÑÑ‚
+Name[sr@Latn]=Magnetska privlaÄnost
+Name[sv]=Ledstjärna
+Name[ta]=கணà¯à®®à®£à®¿
+Name[tg]=Маркази диққат
+Name[th]=เป้าสายตา
+Name[tr]=Küçük Ayı Takım Yıldızı
+Name[uk]=Провідна зірка
+Name[vi]=Trung tâm của sự chú ý
+Name[zh_CN]=å˜å¹»çŸ©å½¢
+Name[zh_TW]=北極星
+
+[Desktop Action Setup]
+Exec=kxsconfig cynosure
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun cynosure -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun cynosure -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/dangerball.desktop b/tdescreensaver/kxsconfig/ScreenSavers/dangerball.desktop
new file mode 100644
index 00000000..a8657193
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/dangerball.desktop
@@ -0,0 +1,235 @@
+[Desktop Entry]
+Exec=dangerball
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=DangerBall
+Name[ca]=Pilota perillosa
+Name[cy]=PelEnbyd
+Name[de]=Gefährlicher Ball
+Name[el]=Επικίνδυνη μπάλα
+Name[es]=Bola peligrosa
+Name[et]=Kohutav Pall
+Name[eu]=Pilota arriskutsua
+Name[fa]=گوی خطر
+Name[fr]=Boule dangereuse
+Name[gl]=Bola perigosa
+Name[he]=כדור מסוכן
+Name[hi]=ख़तरनाक गेंद
+Name[hu]=Villámgömb
+Name[is]=Hættubolti
+Name[it]=Palla Pericolosa
+Name[ja]=å±é™ºãªãƒœãƒ¼ãƒ«
+Name[ka]=სáƒáƒ®áƒ˜áƒ¤áƒáƒ—რბურთი
+Name[mk]=ОпаÑна топка
+Name[ms]=Bola Bahaya
+Name[nb]=Ballfare
+Name[nds]=Prickenball
+Name[ne]=खतरनाक बल
+Name[nn]=Ballfare
+Name[pt]=Bola Perigosa
+Name[pt_BR]=Jogo de Batalha
+Name[ro]=Bilă periculoasă
+Name[ru]=ОпаÑный мÑч
+Name[sl]=Nevarna žoga
+Name[sr]=ОпаÑна лопта
+Name[sr@Latn]=Opasna lopta
+Name[sv]=Bollfara
+Name[ta]=அபாயபà¯à®ªà®¨à¯à®¤à¯
+Name[tg]=Тӯпи хатарнок
+Name[th]=ลูà¸à¸šà¸­à¸¥à¸­à¸±à¸™à¸•à¸£à¸²à¸¢
+Name[tr]=Tehlikeli Toplar
+Name[uk]=Ðебезпечний м'Ñч
+Name[ven]=B
+Name[vi]=Bóng Nguy hiểm
+Name[xh]=Ibhola Enobungozi
+Name[zh_CN]=扎手的çƒ
+Name[zu]=Ibhola Lengozi
+
+[Desktop Action Setup]
+Exec=kxsconfig dangerball
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun dangerball -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun dangerball -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/decayscreen.desktop b/tdescreensaver/kxsconfig/ScreenSavers/decayscreen.desktop
new file mode 100644
index 00000000..575a0b2d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/decayscreen.desktop
@@ -0,0 +1,236 @@
+[Desktop Entry]
+Exec=decayscreen
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=DecayScreen
+Name[ca]=Desintegració de la pantalla
+Name[cy]=SgrînDadfeilio
+Name[de]=Bildschirmzerfall
+Name[el]=ΑποσÏνθεση οθόνης
+Name[es]=Desintegración de pantalla
+Name[et]=Lagunev Ekraan
+Name[eu]=Pantailaren desintegrazioa
+Name[fa]=پردۀ اÙت
+Name[fi]=HäviäväNäyttö
+Name[fr]=Écran décalé
+Name[gl]=Pantalla a esvaecer
+Name[he]=מסך נמס
+Name[hi]=पटाकà¥à¤·à¥‡à¤ª
+Name[is]=Eyða skjá
+Name[it]=Schermo Franante
+Name[ja]=スクリーン崩壊
+Name[ka]=დáƒáƒ¨áƒšáƒ
+Name[mk]=РаÑпаѓање на екранот
+Name[ms]=Skrin Pudar
+Name[mt]=Skrin Idub
+Name[nb]=Skjermsammenbrudd
+Name[nds]=Vergahn Schirm
+Name[ne]=बिगà¥à¤°à¤¿à¤à¤•à¥‹ सà¥à¤•à¥à¤°à¤¿à¤¨
+Name[nn]=Skjermsamanbrot
+Name[pt]=Decaimento
+Name[pt_BR]=Tela em Ruínas
+Name[ro]=Ecran curgător
+Name[ru]=РаÑпад
+Name[sl]=Razpad zaslona
+Name[sr]=РаÑпад екрана
+Name[sr@Latn]=Raspad ekrana
+Name[sv]=Skärmsönderfall
+Name[ta]=அழிதà¯à®¤à®¿à®°à¯ˆ
+Name[tg]=Барҳам
+Name[tr]=Çürüyen Ekran
+Name[uk]=Розпад
+Name[ven]=Tshikirini tsho tahalaho
+Name[vi]=Màn hình Tan rã
+Name[xh]=Ikhusi le Decay
+Name[zh_CN]=熔化的å±å¹•
+Name[zh_TW]=衰敗螢幕
+Name[zu]=Isikrini Sokubola
+
+[Desktop Action Setup]
+Exec=kxsconfig decayscreen
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun decayscreen -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun decayscreen -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/deco.desktop b/tdescreensaver/kxsconfig/ScreenSavers/deco.desktop
new file mode 100644
index 00000000..3481832d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/deco.desktop
@@ -0,0 +1,217 @@
+[Desktop Entry]
+Exec=deco
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Deco
+Name[de]=Art Deco
+Name[es]=Decó
+Name[fr]=Déco
+Name[fy]=Deko
+Name[gl]=Decó
+Name[he]=קישוטי קירות
+Name[hi]=डेको
+Name[ja]=デコ
+Name[ka]=ნáƒáƒ™áƒ£áƒ¬áƒ”ბი
+Name[mk]=Деко
+Name[ms]=Hias
+Name[mt]=Deko
+Name[nds]=Art Deco
+Name[ne]=डेको
+Name[ru]=ЛоÑкутное одеÑло
+Name[sl]=Okras
+Name[sr]=Деко
+Name[sr@Latn]=Deko
+Name[ta]=அழகà¯à®ªà¯Šà®°à¯à®³à¯
+Name[tg]=Курпаи қӯроқин
+Name[tr]=Dekor
+Name[uk]=Деко
+Name[vi]=Trang trí
+Name[zh_CN]=矩形拼æ¿
+
+[Desktop Action Setup]
+Exec=kxsconfig deco
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun deco -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun deco -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/deluxe.desktop b/tdescreensaver/kxsconfig/ScreenSavers/deluxe.desktop
new file mode 100644
index 00000000..729d8a72
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/deluxe.desktop
@@ -0,0 +1,226 @@
+[Desktop Entry]
+Exec=deluxe
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Rapid Motion
+Name=Deluxe
+Name[bg]=ДелукÑ
+Name[ca]=De luxe
+Name[cy]=Moethus
+Name[de]=Luxuriös
+Name[el]=Πολυτελής
+Name[eu]=Luxuzkoa
+Name[fa]=مجلل
+Name[fr]=Luxe
+Name[he]=×¢×™×’×•×œ×™× ×•×›×•×›×‘×™×
+Name[hi]=डीलकà¥à¤¸
+Name[ja]=デラックス
+Name[ka]=კáƒáƒ›áƒ¤áƒáƒ áƒ¢áƒ˜
+Name[mk]=ДелукÑ
+Name[ms]=Deluks
+Name[mt]=Lussu
+Name[nds]=Delüx
+Name[ne]=विशिषà¥à¤Ÿ
+Name[pa]=ਡੀਲਕਸ
+Name[ru]=РоÑкошь
+Name[sl]=Deluks
+Name[sr]=ДелукÑ
+Name[sr@Latn]=Deluks
+Name[ta]=டீலகà¯à®¸à¯
+Name[tg]=Шукӯҳ
+Name[th]=เดอลุà¸à¸‹à¹Œ
+Name[tr]=İhtişamlı
+Name[uk]=ЛюкÑ
+Name[uz]=Delyuks
+Name[uz@cyrillic]=ДелюкÑ
+Name[ven]=Maimo a ntha
+Name[vi]=Xịn
+Name[zh_CN]=豪åŽ
+Name[zh_TW]=高級
+
+[Desktop Action Setup]
+Exec=kxsconfig deluxe
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun deluxe -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun deluxe -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/demon.desktop b/tdescreensaver/kxsconfig/ScreenSavers/demon.desktop
new file mode 100644
index 00000000..c0e47951
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/demon.desktop
@@ -0,0 +1,235 @@
+[Desktop Entry]
+Exec=demon
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Demon
+Name[af]=Demoon
+Name[bg]=Демон
+Name[br]=Diaoul
+Name[ca]=Dimoni
+Name[cs]=Démon
+Name[cy]=Cythraul
+Name[da]=Dæmon
+Name[de]=Dämon
+Name[el]=Δαίμονας
+Name[es]=Demonio
+Name[et]=Deemon
+Name[eu]=Deabrua
+Name[fa]=دمون
+Name[fi]=Demoni
+Name[fo]=Andi
+Name[fr]=Démon
+Name[gl]=Demo
+Name[he]=ת××™×
+Name[hi]=वेताल
+Name[hu]=Démon
+Name[it]=Demone
+Name[ja]=悪魔
+Name[ka]=დემáƒáƒœáƒ˜
+Name[mk]=Демон
+Name[ms]=Hantu
+Name[mt]=Dimonju
+Name[nds]=Dämoon
+Name[ne]=डेमोन
+Name[pt]=Demónio
+Name[pt_BR]=Demônio
+Name[ru]=Демон
+Name[sr]=Демон
+Name[ta]=அரகà¯à®•à®©à¯
+Name[tg]=Ðзозил
+Name[th]=เดมอน
+Name[tr]=Åžeytan
+Name[uk]=Демон
+Name[vi]=Quá»·
+Name[xh]=Umoya omdaka
+Name[zh_CN]=魔鬼
+Name[zh_TW]=å°é­”鬼
+Name[zu]=Idimoni
+
+[Desktop Action Setup]
+Exec=kxsconfig demon
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun demon -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun demon -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/discrete.desktop b/tdescreensaver/kxsconfig/ScreenSavers/discrete.desktop
new file mode 100644
index 00000000..14013970
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/discrete.desktop
@@ -0,0 +1,240 @@
+[Desktop Entry]
+Exec=discrete
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Discrete
+Name[bg]=ДиÑкретно
+Name[ca]=Discret
+Name[cs]=Diskrétní
+Name[cy]=Arwahanol
+Name[da]=Diskret
+Name[de]=Diskret
+Name[el]=ΔιακÏιτό
+Name[es]=Discreto
+Name[et]=Diskreetne
+Name[eu]=Deskretua
+Name[fa]=گسسته
+Name[fi]=Diskreetti
+Name[fr]=Discret
+Name[fy]=Diskreet
+Name[gl]=Discreto
+Name[he]=מערכת מפות בדידות
+Name[hi]=डिसà¥à¤•à¥à¤°à¥€à¤Ÿ
+Name[hu]=Diszkrét
+Name[it]=Discreto
+Name[ja]=ディスクリート
+Name[ka]=წყვეტილი
+Name[mk]=ДиÑкретно
+Name[ms]=Diskret
+Name[mt]=Diskret
+Name[nb]=Diskret
+Name[nds]=Diskreet
+Name[ne]=खणà¥à¤¡à¤¿à¤¤
+Name[nl]=Discreet
+Name[nn]=Diskret
+Name[pt]=Discreto
+Name[pt_BR]=Discreto
+Name[ro]=Discret
+Name[ru]=ÐбÑтракциÑ
+Name[sl]=Diskretno
+Name[sr]=ДиÑкретно
+Name[sr@Latn]=Diskretno
+Name[sv]=Diskret
+Name[ta]=ஆரà¯à®ªà¯à®ªà®¾à®Ÿà¯à®Ÿà®®à®¿à®²à¯à®²à®¾à®¤
+Name[tg]=ÐбÑтрактÑиÑ
+Name[tr]=Görkemli
+Name[uk]=ÐбÑтракціÑ
+Name[ven]=Zwigwada
+Name[vi]=Rá»i rạc
+Name[xh]=Efihlakeleyo
+Name[zh_CN]=离散
+Name[zh_TW]=離散
+Name[zu]=Okufihlakele
+
+[Desktop Action Setup]
+Exec=kxsconfig discrete
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun discrete -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun discrete -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/distort.desktop b/tdescreensaver/kxsconfig/ScreenSavers/distort.desktop
new file mode 100644
index 00000000..9ce460d7
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/distort.desktop
@@ -0,0 +1,240 @@
+[Desktop Entry]
+Exec=distort
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=Distort
+Name[ca]=Distorsió
+Name[cs]=Pokřivit
+Name[cy]=Aflunio
+Name[de]=Bildstörung
+Name[el]=ΔιαστÏέφω
+Name[es]=Distorsión
+Name[et]=Moonutus
+Name[eu]=Distortsioa
+Name[fa]=اعوجاج
+Name[fr]=Distorsion
+Name[fy]=Ferfoarming
+Name[gl]=Distorsión
+Name[he]=עדשה מעוותת
+Name[hi]=विकृतियाà¤
+Name[hu]=Torzulás
+Name[is]=Afmynda
+Name[it]=Distorto
+Name[ja]=ゆãŒã‚ã‚‹
+Name[ka]=დáƒáƒ›áƒáƒ®áƒ˜áƒœáƒ¯áƒ”ბáƒ
+Name[mk]=Изобличување
+Name[ms]=Herot
+Name[mt]=Distorzjoni
+Name[nb]=Forvreng
+Name[nds]=Vertarren
+Name[ne]=बङà¥à¤—ाई
+Name[nl]=Vervorming
+Name[nn]=Forvreng
+Name[pl]=Zniekształcenia
+Name[pt]=Distorção
+Name[pt_BR]=Distorção
+Name[ro]=Distorsiune
+Name[ru]=ИÑкажение
+Name[sl]=LeÄa
+Name[sr]=ДиÑторзија
+Name[sr@Latn]=Distorzija
+Name[sv]=Förvräng
+Name[ta]=சிதைகà¯à®•à®ªà¯à®ªà®Ÿà¯à®Ÿ
+Name[tg]=Вайрон кардан
+Name[tr]=Eğri büğrü
+Name[uk]=СпотвореннÑ
+Name[ven]=U kombamisa
+Name[vi]=Méo mó
+Name[xh]=Yenza ubuxoki
+Name[zh_CN]=扭曲é€é•œ
+Name[zh_TW]=扭曲
+Name[zu]=Shintsha
+
+[Desktop Action Setup]
+Exec=kxsconfig distort
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun distort -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun distort -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/drift.desktop b/tdescreensaver/kxsconfig/ScreenSavers/drift.desktop
new file mode 100644
index 00000000..e8a3fb30
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/drift.desktop
@@ -0,0 +1,240 @@
+[Desktop Entry]
+Exec=drift
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Drift
+Name[af]=Dryf
+Name[bg]=Дрейф
+Name[br]=Diroudañ
+Name[ca]=Deriva
+Name[cy]=Drifft
+Name[da]=Flyd
+Name[de]=Gestöber
+Name[el]=ΡεÏμα
+Name[eo]=Drivo
+Name[es]=Deriva
+Name[et]=Triiv
+Name[eu]=Zirimiria
+Name[fa]=رانش
+Name[fi]=Fraktaalilinssi
+Name[fr]=Dérive
+Name[gl]=Deriva
+Name[he]=להבות קוסמיות
+Name[hi]=बहाव
+Name[hu]=Sodródás
+Name[is]=Reka
+Name[it]=Deriva
+Name[ja]=ドリフト
+Name[ka]=დიუნები
+Name[lt]=SrovÄ—
+Name[lv]=Dreifs
+Name[mk]=Талкање
+Name[ms]=Hanyut
+Name[ne]=à¤à¥à¤•à¤¾à¤µ
+Name[pl]=Dryft
+Name[pt]=Desvio
+Name[pt_BR]=Deriva
+Name[ro]=Deplasare
+Name[ru]=Барханы
+Name[sl]=Drsenje
+Name[sr]=Смет
+Name[sr@Latn]=Smet
+Name[ta]=இழà¯à®¤à¯à®¤à¯à®šà¯†à®²à¯à®²à®ªà¯à®ªà®Ÿà¯à®Ÿ
+Name[tg]=Хомаи рег
+Name[th]=พัดพา
+Name[tr]=Akıntı
+Name[uk]=Дрейф
+Name[ven]=Kokodza
+Name[vi]=Trôi dạt
+Name[xh]=Yiqhube
+Name[zh_CN]=宇宙焰ç«
+Name[zh_TW]=漂æµ
+Name[zu]=Phephuka
+
+[Desktop Action Setup]
+Exec=kxsconfig drift
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun drift -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun drift -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/endgame.desktop b/tdescreensaver/kxsconfig/ScreenSavers/endgame.desktop
new file mode 100644
index 00000000..940ea28b
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/endgame.desktop
@@ -0,0 +1,243 @@
+[Desktop Entry]
+Exec=endgame
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Endgame
+Name[br]=Dibenn an abadenn
+Name[ca]=Joc final
+Name[cs]=Konec hry
+Name[cy]=Diwedd y Gêm
+Name[da]=Slutspil
+Name[de]=Schach
+Name[el]=Τέλος παιχνιδιοÏ
+Name[es]=Juego final
+Name[et]=Lõppmäng
+Name[eu]=Jokuaren amaiera
+Name[fa]=پایان بازی
+Name[fi]=Loppupeli
+Name[fo]=Kortspøl
+Name[fr]=Fin de partie
+Name[fy]=Einstriid
+Name[gl]=Xogo final
+Name[he]=שחמט
+Name[hi]=à¤à¤¨à¥à¤¡à¤—ेम
+Name[hu]=Végjáték
+Name[is]=Lokatafl
+Name[it]=Gioco Finale
+Name[ja]=エンドゲーム
+Name[ka]=თáƒáƒ›áƒáƒ¨áƒ˜ დáƒáƒ¡áƒ áƒ£áƒšáƒ“áƒ
+Name[mk]=Крај на играта
+Name[ms]=Permainan Tamat
+Name[mt]=Tmiem il-logħba
+Name[nb]=Sluttstrid
+Name[nds]=Ennspeel
+Name[ne]=अनà¥à¤¤à¤¿à¤® खेल
+Name[nn]=Sluttspel
+Name[nso]=Fetsa Papadi
+Name[pt]=Fim do Jogo
+Name[pt_BR]=Jogo do fim
+Name[ro]=Sfîrşit de joc
+Name[ru]=Конец игры
+Name[sl]=Konec igre
+Name[sr]=Крај игре
+Name[sr@Latn]=Kraj igre
+Name[sv]=Slutstrid
+Name[ta]=à®®à¯à®Ÿà®¿à®µà®¿à®³à¯ˆà®¯à®¾à®Ÿà¯à®Ÿà¯
+Name[tg]=Поёни бозӣ
+Name[tr]=Oyunun Sonu
+Name[uk]=Кінець гри
+Name[ven]=Fhedzani mutambo
+Name[vi]=Trò chơi kết thúc
+Name[xh]=Phelisa umdlalo
+Name[zh_CN]=决战
+Name[zh_TW]=éŠæˆ²çµæŸ
+Name[zu]=Ukuphela kwesikhathi
+
+[Desktop Action Setup]
+Exec=kxsconfig endgame
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun endgame -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun endgame -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/engine.desktop b/tdescreensaver/kxsconfig/ScreenSavers/engine.desktop
new file mode 100644
index 00000000..96979df2
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/engine.desktop
@@ -0,0 +1,246 @@
+[Desktop Entry]
+Exec=engine
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Engine
+Name[af]=Masjien
+Name[br]=Keflusker
+Name[ca]=Enginy
+Name[cs]=Motor
+Name[cy]=Peiriant
+Name[da]=Motor
+Name[de]=Motor
+Name[el]=Μηχανή
+Name[es]=Motor
+Name[et]=Mootor
+Name[eu]=Motorra
+Name[fa]=موتور
+Name[fi]=Moottori
+Name[fo]=Motorur
+Name[fr]=Moteur
+Name[fy]=Masine
+Name[gl]=Motor
+Name[he]=מנוע
+Name[hi]=इंजन
+Name[hu]=Motor
+Name[is]=Vél
+Name[it]=Motore
+Name[ja]=エンジン
+Name[ka]=ძრáƒáƒ•áƒ˜
+Name[mk]=Мотор
+Name[ms]=Enjin
+Name[mt]=Magna
+Name[nb]=Motor
+Name[nds]=Motor
+Name[ne]=इनà¥à¤œà¤¿à¤¨
+Name[nn]=Motor
+Name[pa]=ਇੰਜਣ
+Name[pl]=Silnik
+Name[pt]=Motor
+Name[pt_BR]=Máquina
+Name[ro]=Motor
+Name[ru]=Двигатель
+Name[sl]=Motor
+Name[sr]=Мотор
+Name[sr@Latn]=Motor
+Name[sv]=Motor
+Name[ta]=இயநà¯à®¤à®¿à®°à®®à¯
+Name[tg]=Муҳаррик
+Name[th]=เครื่องยนต์
+Name[tr]=Motor
+Name[uk]=Двигун
+Name[ven]=Nzhini
+Name[vi]=Máy
+Name[xh]=Injini
+Name[zh_CN]=引擎
+Name[zh_TW]=引擎
+Name[zu]=Injini
+
+[Desktop Action Setup]
+Exec=kxsconfig engine
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun engine -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun engine -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/epicycle.desktop b/tdescreensaver/kxsconfig/ScreenSavers/epicycle.desktop
new file mode 100644
index 00000000..55ada41b
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/epicycle.desktop
@@ -0,0 +1,232 @@
+[Desktop Entry]
+Exec=epicycle
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Illusions of Depth
+Name=Epicycle
+Name[bg]=Епицикъл
+Name[ca]=Epicicle
+Name[cy]=Argylch
+Name[da]=Epicykel
+Name[de]=Epizykel
+Name[el]=Επικυκλοειδής
+Name[es]=Epiciclo
+Name[et]=Epitsükkel
+Name[eu]=Epizikloa
+Name[fi]=Episykli
+Name[fr]=Épicycle
+Name[gl]=Epiciclo
+Name[he]=צורות מעגליות
+Name[hi]=चकà¥à¤°à¤µà¤¾à¤¤
+Name[hu]=Epiciklois
+Name[is]=Sporbaugur
+Name[ja]=周転円
+Name[ka]=ეპიციკლი
+Name[mk]=Епицикл
+Name[ms]=Epikitar
+Name[mt]=Epiċiklu
+Name[nb]=Episykel
+Name[nds]=Böverkrink
+Name[ne]=इपिसाइकल
+Name[nn]=Episykel
+Name[pt]=Epiciclo
+Name[pt_BR]=Epiciclo
+Name[ro]=Epiciclu
+Name[ru]=Эпицикл
+Name[sl]=Epicikel
+Name[sr]=ЕпициклуÑ
+Name[sr@Latn]=Epiciklus
+Name[sv]=Epicykel
+Name[ta]=மேலà¯à®µà®Ÿà¯à®Ÿà®®à¯
+Name[tg]=Эпидавра
+Name[tr]=Küçük Daire
+Name[uk]=Епіцикл
+Name[zh_CN]=周转圆
+Name[zh_TW]=週轉圓
+
+[Desktop Action Setup]
+Exec=kxsconfig epicycle
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun epicycle -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun epicycle -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/eruption.desktop b/tdescreensaver/kxsconfig/ScreenSavers/eruption.desktop
new file mode 100644
index 00000000..e9eb6f72
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/eruption.desktop
@@ -0,0 +1,235 @@
+[Desktop Entry]
+Exec=eruption
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Flying Things
+Name=Eruption
+Name[bg]=Изригване
+Name[ca]=Erupció
+Name[cs]=Erupce
+Name[cy]=Allwthiad
+Name[eo]=Erupcio
+Name[es]=Erupción
+Name[et]=Purse
+Name[eu]=Erupzioa
+Name[fa]=Ùوران
+Name[fr]=Éruption
+Name[fy]=Utbarsting
+Name[gl]=Erución
+Name[he]=התפרצות
+Name[hi]=विसà¥à¤«à¤¼à¥‹à¤Ÿ
+Name[hu]=Kitörés
+Name[is]=Gos
+Name[it]=Eruzione
+Name[ja]=エラプション
+Name[ka]=ნáƒáƒžáƒ”რწკლები
+Name[mk]=Ерупција
+Name[ms]=Letupan
+Name[nb]=Utbrudd
+Name[nds]=Eruptschoon
+Name[ne]=पानीफोका
+Name[nl]=Uitbarsting
+Name[nn]=Utbrot
+Name[pl]=Erupcja
+Name[pt]=Erupção
+Name[pt_BR]=Erupção
+Name[ro]=Erupţie
+Name[ru]=Огненные брызги
+Name[sk]=Erupcia
+Name[sl]=Izbruh
+Name[sr]=Ерупција
+Name[sr@Latn]=Erupcija
+Name[sv]=Utbrott
+Name[ta]=எரிமலைபொஙà¯à®•à®²à¯
+Name[tg]=Қатраҳои оташӣ
+Name[uk]=ВиверженнÑ
+Name[vi]=Vụ phun trào
+Name[zh_CN]=ç«å±±çˆ†å‘
+Name[zh_TW]=爆發
+
+[Desktop Action Setup]
+Exec=kxsconfig eruption
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun eruption -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun eruption -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/euler2d.desktop b/tdescreensaver/kxsconfig/ScreenSavers/euler2d.desktop
new file mode 100644
index 00000000..1cf55673
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/euler2d.desktop
@@ -0,0 +1,218 @@
+[Desktop Entry]
+Exec=euler2d
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Euler2d
+Name[de]=Euler (zweidimensional)
+Name[es]=Euler2D
+Name[fa]=اویلر2d
+Name[gl]=Euler2D
+Name[he]=זרימה
+Name[hi]=यूलर2डी
+Name[hu]=Euler 2D
+Name[it]=Eulero 2d
+Name[ja]=オイラー 2D
+Name[ka]=ეილერი
+Name[mk]=Ојлер2Д
+Name[nb]=Euler 2D
+Name[nds]=Euler-2D
+Name[nn]=Euler 2D
+Name[pt_BR]=Euler 2d
+Name[ru]=Эйлер
+Name[sr]=Ојлер 2Д
+Name[sr@Latn]=Ojler 2D
+Name[sv]=Euler 2D
+Name[ta]=à®à®²à®°à¯2டி
+Name[tg]=Эйлер
+Name[tr]=Euler 2D
+Name[uk]=Ейлер
+Name[zh_CN]=欧拉平é¢
+Name[zh_TW]=尤拉 2D
+
+[Desktop Action Setup]
+Exec=kxsconfig euler2d
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun euler2d -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun euler2d -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/extrusion.desktop b/tdescreensaver/kxsconfig/ScreenSavers/extrusion.desktop
new file mode 100644
index 00000000..7a6d7f6e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/extrusion.desktop
@@ -0,0 +1,233 @@
+[Desktop Entry]
+Exec=extrusion
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Extrusion
+Name[bg]=ЕкÑтрудиране
+Name[ca]=Extrusió
+Name[cy]=Allwthiad
+Name[de]=Spritzgeformtes
+Name[es]=Extrusión
+Name[et]=Venitus
+Name[eu]=Estrusioa
+Name[fa]=Ùشارکاری
+Name[gl]=Extrusión
+Name[he]=צורות תלת־מימדיות
+Name[hi]=à¤à¤•à¥à¤¸à¤Ÿà¥à¤°à¥‚ज़न
+Name[ja]=çªå‡º
+Name[ka]=გáƒáƒ›áƒáƒ«áƒ”ვებáƒ
+Name[mk]=Издолжување
+Name[ms]=Tonjolan
+Name[mt]=Estrużjoni
+Name[nb]=Ekstrudering
+Name[nds]=Strangpresste Delen
+Name[ne]=निसà¥à¤•à¤¾à¤¸à¤¨
+Name[nn]=Ekstrudering
+Name[pl]=Wytłoczenie
+Name[pt]=Extrusão
+Name[pt_BR]=Extrusão
+Name[ro]=Extruziune
+Name[ru]=ВытеÑнение
+Name[sl]=Ekstruzija
+Name[sr]=Издуживање
+Name[sr@Latn]=Izduživanje
+Name[sv]=Extrudering
+Name[ta]=வெளியேறà¯à®±à¯
+Name[tg]=Ðз миён бурдан
+Name[tr]=Sımsıkı
+Name[uk]=ВитіÑненнÑ
+Name[ven]=Kombamisa
+Name[vi]=Nhô ra
+Name[xh]=Ukhutsho
+Name[zh_CN]=çªå‡ºå½¢ä½“
+Name[zh_TW]=çªå‡º
+Name[zu]=Ukuputshuka
+
+[Desktop Action Setup]
+Exec=kxsconfig extrusion
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun extrusion -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun extrusion -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/fadeplot.desktop b/tdescreensaver/kxsconfig/ScreenSavers/fadeplot.desktop
new file mode 100644
index 00000000..cc825063
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/fadeplot.desktop
@@ -0,0 +1,237 @@
+[Desktop Entry]
+Exec=fadeplot
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Flying Things
+Name=Fade Plot
+Name[af]=Uitdoof Tema
+Name[br]=Tres dislivet
+Name[ca]=Traces esvaïdes
+Name[cs]=Slábnoucí vykreslování
+Name[cy]=Plot Afliwio
+Name[de]=Schattenhafte Zeichnung
+Name[eo]=PaliÄo
+Name[es]=Trazos desvanecidos
+Name[et]=Kahvatu Joonis
+Name[eu]=Iraungitze-marrazketa
+Name[fa]=محو کردن رسم
+Name[fi]=Häviävä piirto
+Name[fr]=Fondu
+Name[gl]=Trazos esvaecidos
+Name[he]=התוויה נמוגה
+Name[hi]=फेड पà¥à¤²à¥‰à¤Ÿ
+Name[hu]=Fakulás
+Name[it]=Plot sfumato
+Name[ja]=フェードプロット
+Name[ka]=გველთევზáƒ
+Name[lt]=Nykstantis siužetas
+Name[lv]=Izdziestoša shēma
+Name[mk]=Бледо иÑцртување
+Name[ms]=Plot Pudar
+Name[nb]=Bleknende plott
+Name[nds]=Utblennrebeet
+Name[ne]=फेड पà¥à¤²à¤Ÿ
+Name[pt]=Desenho a Desaparecer
+Name[ru]=МорÑÐºÐ°Ñ Ð·Ð¼ÐµÑ
+Name[sk]=Ohrada pozemku
+Name[sl]=IzginjajoÄa risba
+Name[sr]=Затамњено иÑцртавање
+Name[sr@Latn]=Zatamnjeno iscrtavanje
+Name[sv]=Bleknande teckning
+Name[ta]=மறை வரை
+Name[tg]=Мори баҳрӣ
+Name[tr]=SoluÅŸ Noktalama
+Name[uk]=ЗгаÑаюча змійка
+Name[ven]=Puloto yau Fhelaho
+Name[vi]=Äồ thị Má»
+Name[xh]=Inxuwa Elphelelwayo
+Name[zh_CN]=飘é€çš„彩带
+Name[zh_TW]=淡出圖形
+Name[zu]=Ishashalazi eligqunqile
+
+[Desktop Action Setup]
+Exec=kxsconfig fadeplot
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun fadeplot -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun fadeplot -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/fiberlamp.desktop b/tdescreensaver/kxsconfig/ScreenSavers/fiberlamp.desktop
new file mode 100644
index 00000000..c954f2b3
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/fiberlamp.desktop
@@ -0,0 +1,224 @@
+[Desktop Entry]
+Exec=fiberlamp
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Fiberlamp
+Name[ca]=Làmpada de fibra
+Name[da]=Fiberlampe
+Name[de]=Glasfaser-Lampe
+Name[eo]=Fibrolampo
+Name[es]=Fibra luminosa
+Name[et]=Fiiberlamp
+Name[fa]=شعله
+Name[fi]=Kuitulamppu
+Name[fr]=Lampe à incandescence
+Name[fy]=Glêsrizellampe
+Name[gl]=Lámpada de fibras
+Name[hu]=Lámpa
+Name[it]=Lampada a fibre
+Name[ja]=ファイãƒãƒ¼ãƒ©ãƒ³ãƒ—
+Name[ka]=ბáƒáƒ­áƒ™áƒáƒ•áƒáƒœáƒ˜ ნáƒáƒ—ურáƒ
+Name[mk]=Фибер-ламба
+Name[nb]=Fiberlampe
+Name[nds]=Faserlamp
+Name[ne]=फाइबर लà¥à¤¯à¤¾à¤®à¥à¤ª
+Name[nl]=Glasvezellamp
+Name[nn]=Fiberlampe
+Name[pt]=Luz de Fibra
+Name[pt_BR]=Fibra de Luz
+Name[ru]=Ð”ÐµÐºÐ¾Ñ€Ð°Ñ‚Ð¸Ð²Ð½Ð°Ñ Ð»Ð°Ð¼Ð¿Ð°
+Name[sl]=Svetilka iz vlaken
+Name[sr]=Фиберлампа
+Name[sr@Latn]=Fiberlampa
+Name[sv]=Fiberlampa
+Name[tr]=Fiberlamba
+Name[uk]=Волоконна лампа
+Name[vi]=Äèn dây tóc
+Name[zh_TW]=纖維燈
+X-TDE-Category=Gadgets & Simulations
+
+[Desktop Action Setup]
+Exec=kxsconfig fiberlamp
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun fiberlamp -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun fiberlamp -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/fireworkx.desktop b/tdescreensaver/kxsconfig/ScreenSavers/fireworkx.desktop
new file mode 100644
index 00000000..a97e2952
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/fireworkx.desktop
@@ -0,0 +1,224 @@
+[Desktop Entry]
+Exec=fireworkx
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+X-TDE-Category=Gadgets & Simulations
+Name=Fireworkx
+Name[ca]=Focs artificials x
+Name[cs]=Ohňostroje
+Name[de]=Feuerwerk
+Name[el]=ΓÏανάζια (GL)
+Name[eo]=Piroteknik'
+Name[es]=Fuegos artificialesx
+Name[eu]=Su artifizialak x
+Name[fa]=آتش بازی x
+Name[fi]=Ilotulitus
+Name[fr]=Feux d'artifices
+Name[fy]=Fjoerwurk
+Name[he]=זיקוקי דינור
+Name[hu]=Tűzijáték
+Name[is]=Flugeldar
+Name[it]=Fuochi d'artificio
+Name[ja]=花ç«
+Name[ka]=ფეიერვერკი X
+Name[mk]=ОгнометикÑ
+Name[nb]=Fyrverkerii
+Name[nds]=FüerwarkX
+Name[nn]=Fyrverkerii
+Name[pt]=Fogo de Artifício
+Name[ru]=Фейерверк X
+Name[sl]=OgnjemetX
+Name[sr]=Ватромети
+Name[sr@Latn]=Vatrometi
+Name[sv]=Fyrverkeri
+Name[uk]=Феєрверк Х
+Name[vi]=Pháo hoa
+Name[zh_CN]=烟花
+Name[zh_TW]=ç…™ç«
+
+
+[Desktop Action Setup]
+Exec=kxsconfig fireworkx
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun fireworkx -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun fireworkx -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/flag.desktop b/tdescreensaver/kxsconfig/ScreenSavers/flag.desktop
new file mode 100644
index 00000000..c89cf959
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/flag.desktop
@@ -0,0 +1,252 @@
+[Desktop Entry]
+Exec=flag
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Banners & Pictures
+Name=Flag
+Name[af]=Vlag
+Name[bg]=Флаг
+Name[br]=Banniel
+Name[ca]=Bandera
+Name[cs]=Vlajka
+Name[cy]=Baner
+Name[de]=Flagge
+Name[el]=Σημαία
+Name[eo]=Flago
+Name[es]=Bandera
+Name[et]=Lipp
+Name[eu]=Bandera
+Name[fa]=پرچم
+Name[fi]=Lippu
+Name[fo]=Flagg
+Name[fr]=Drapeau
+Name[fy]=Flagge
+Name[gl]=Bandeira
+Name[he]=דגל
+Name[hi]=à¤à¤£à¥à¤¡à¤¾
+Name[hu]=Zászló
+Name[is]=Fáni
+Name[it]=Bandiera
+Name[ja]=æ——
+Name[ka]=áƒáƒšáƒáƒ›áƒ˜
+Name[lt]=VÄ—liava
+Name[lv]=Karogs
+Name[mk]=Знаме
+Name[ms]=Bendera
+Name[mt]=Bandiera
+Name[nb]=Flagg
+Name[nds]=Flagg
+Name[ne]=à¤à¤£à¥à¤¡à¤¾
+Name[nn]=Flagg
+Name[nso]=Folaga
+Name[pa]=à¨à©°à¨¡à¨¾
+Name[pl]=Flaga
+Name[pt]=Bandeira
+Name[pt_BR]=Bandeira
+Name[ro]=Steag
+Name[ru]=Флаг
+Name[sk]=Vlajka
+Name[sl]=Zastava
+Name[sr]=ЗаÑтава
+Name[sr@Latn]=Zastava
+Name[sv]=Flagga
+Name[ta]=கà¯à®±à®¿
+Name[tg]=Байрақ
+Name[th]=ธง
+Name[tr]=Bayrak
+Name[uk]=Прапор
+Name[uz]=Bayroq
+Name[uz@cyrillic]=Байроқ
+Name[ven]=Fulaga
+Name[vi]=Cá»
+Name[xh]=Indwe
+Name[zh_CN]=旗帜
+Name[zh_TW]=旗幟
+Name[zu]=Ifulagi
+
+[Desktop Action Setup]
+Exec=kxsconfig flag
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun flag -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun flag -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/flame.desktop b/tdescreensaver/kxsconfig/ScreenSavers/flame.desktop
new file mode 100644
index 00000000..7b907a4c
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/flame.desktop
@@ -0,0 +1,252 @@
+[Desktop Entry]
+Exec=flame
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Fractals
+Name=Flame
+Name[af]=Vlam
+Name[bg]=Пламък
+Name[br]=Flamm
+Name[ca]=Flama
+Name[cs]=Plamen
+Name[cy]=Fflam
+Name[da]=Flamme
+Name[de]=Flamme
+Name[el]=Φλόγα
+Name[eo]=Flamo
+Name[es]=Llama
+Name[et]=Lõõm
+Name[eu]=Sugarra
+Name[fa]=شعله
+Name[fi]=Liekki
+Name[fr]=Flamme
+Name[fy]=Flam
+Name[gl]=Lapa
+Name[he]=×¤×¨×§×˜×œ×™× ×§×•×¡×ž×™×™×
+Name[hi]=जà¥à¤µà¤¾à¤²à¤¾
+Name[hu]=Láng
+Name[is]=Logar
+Name[it]=Fiamma
+Name[ja]=フレーム
+Name[ka]=áƒáƒšáƒ˜
+Name[lt]=Aistra
+Name[lv]=Liesma
+Name[mk]=Пламен
+Name[ms]=Nyalaan
+Name[mt]=Fjamma
+Name[nb]=Flamme
+Name[nds]=Flamm
+Name[ne]=जà¥à¤µà¤¾à¤²à¤¾
+Name[nn]=Flamme
+Name[nso]=Kgabo
+Name[pa]=ਲਪਟ
+Name[pl]=Płomień
+Name[pt]=Chama
+Name[pt_BR]=Chama
+Name[ro]=Flacără
+Name[ru]=ПламÑ
+Name[sk]=Plameň
+Name[sl]=Plamen
+Name[sr]=Пламен
+Name[sr@Latn]=Plamen
+Name[sv]=Flamma
+Name[ta]=தீ பிழமà¯à®ªà¯
+Name[tg]=Шӯъла
+Name[th]=เปลวไฟ
+Name[tr]=Alev
+Name[uk]=Полум'Ñ
+Name[uz]=Oʻt
+Name[uz@cyrillic]=ÐŽÑ‚
+Name[ven]=Khavhu
+Name[vi]=Lá»­a
+Name[xh]=Idangatye
+Name[zh_CN]=ç«ç„°
+Name[zh_TW]=ç«ç„°
+Name[zu]=Ilangabi
+
+[Desktop Action Setup]
+Exec=kxsconfig flame
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun flame -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun flame -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/flipflop.desktop b/tdescreensaver/kxsconfig/ScreenSavers/flipflop.desktop
new file mode 100644
index 00000000..acd19da8
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/flipflop.desktop
@@ -0,0 +1,219 @@
+[Desktop Entry]
+Exec=flipflop
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=FlipFlop
+Name[ca]=Biestable
+Name[cy]=FflipLlip
+Name[de]=Quadrate umklappen
+Name[et]=Lipp lipi, lapp lapi peal
+Name[fa]=Ùلیپ Ùلاپ
+Name[he]=×ž×•×©×›×™× ×“×™× ×ž×™×™×
+Name[hi]=उलट-पलट
+Name[hu]=Flip-flop
+Name[ja]=フリップフロップ
+Name[ka]=ფილები
+Name[mk]=Превртување
+Name[ms]=Flip Flop
+Name[nds]=Klippklapp
+Name[ne]=फà¥à¤²à¤¿à¤ªà¤«à¥à¤²à¤ª
+Name[ru]=Плитка
+Name[sl]=Flip flop
+Name[sr]=Флип-флоп
+Name[sr@Latn]=Flip-flop
+Name[sv]=Vippa
+Name[ta]=திரà¯à®ªà¯à®ªà¯à®¤à®¿à®°à¯à®ªà¯à®ªà¯
+Name[tg]=Тахтаҳои Ñафолӣ
+Name[tr]=Yan Sön
+Name[uk]=Перекидень
+Name[vi]=Lật lát
+Name[zh_CN]=翻转
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig flipflop
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun flipflop -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun flipflop -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/flipscreen3d.desktop b/tdescreensaver/kxsconfig/ScreenSavers/flipscreen3d.desktop
new file mode 100644
index 00000000..788779e0
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/flipscreen3d.desktop
@@ -0,0 +1,231 @@
+[Desktop Entry]
+Exec=flipscreen3d
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL;ManipulateScreen
+Name=Flipscreen3d
+Name[ca]=Girapantalles3d
+Name[cy]=Sgrînfflip3d
+Name[da]=Flipskærm3d
+Name[de]=Bildschirm drehen (dreidimensional)
+Name[el]=ΑναστÏοφή οθόνης 3d
+Name[es]=Rotapantallas3D
+Name[et]=3D ekraanimuserdaja
+Name[eu]=Pantaila biratzailea 3d
+Name[fa]=پردۀ Ùلیپ3d
+Name[fr]=Écran tournant 3d
+Name[gl]=VaiVen 3D
+Name[he]=סיבוב מסך
+Name[hi]=पलट-परà¥à¤¦à¤¾3डी
+Name[hu]=FlipScreen 3D
+Name[it]=Schermo invertito 3D
+Name[ja]=フリップスクリーン 3D
+Name[ka]=მბრუნáƒáƒ•áƒ˜ ეკრáƒáƒœáƒ˜
+Name[mk]=Превртување екран 3Д
+Name[nb]=Skjermvender 3D
+Name[nds]=Dreihschirm 3D
+Name[nn]=Skjermvendar 3D
+Name[pt]=Ecrã Invertido 3D
+Name[pt_BR]=Tela Sacudida 3D
+Name[ru]=ВращающийÑÑ Ñкран
+Name[sl]=VrteÄi zaslon 3D
+Name[sr]=Окретање екрана 3Д
+Name[sr@Latn]=Okretanje ekrana 3D
+Name[sv]=Skärmvändare 3D
+Name[ta]=திரà¯à®ªà¯à®ªà¯à®¤à¯à®¤à®¿à®°à¯ˆ3டி
+Name[tg]=Экрани тобхуранда
+Name[tr]=EkranEÄŸ3d
+Name[uk]=ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ ÐµÐºÑ€Ð°Ð½Ð°
+Name[ven]=Tshikirini tshisi tshavhudi3d
+Name[vi]=Màn hình lật 3 chiá»u
+Name[xh]=Jula phezulu ikhusi 3d
+Name[zh_CN]=立体翻转å±å¹•
+Name[zh_TW]=翻轉螢幕 3D
+
+[Desktop Action Setup]
+Exec=kxsconfig flipscreen3d
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun flipscreen3d -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun flipscreen3d -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/fliptext.desktop b/tdescreensaver/kxsconfig/ScreenSavers/fliptext.desktop
new file mode 100644
index 00000000..3a5fdd29
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/fliptext.desktop
@@ -0,0 +1,225 @@
+[Desktop Entry]
+Exec=fliptext
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=FlipText
+Name[ca]=Text canviat
+Name[cs]=Naklánějící se text
+Name[el]=ΑντεστÏαμμένο κείμενο
+Name[eo]=RenversTekst'
+Name[es]=Texto inverso
+Name[eu]=Fliptestua
+Name[fa]=Flip متن
+Name[fi]=FlipTeksti
+Name[fr]=Texte tournant
+Name[fy]=Draaide tekst
+Name[he]=טקסט מסתובב
+Name[hu]=Szöveges
+Name[is]=Spegla texta
+Name[it]=Testo invertito
+Name[ja]=フリップテキスト
+Name[ka]=მáƒáƒ®áƒ¢áƒ£áƒœáƒáƒ•áƒ” ტექსტი
+Name[mk]=Превртување текÑÑ‚
+Name[nb]=Fliptekst
+Name[nds]=Klapptext
+Name[ne]=फà¥à¤²à¤¿à¤ª पाठ
+Name[nl]=Gedraaide tekst
+Name[nn]=Fliptekst
+Name[pt]=Texto Invertido
+Name[pt_BR]=Texto em Rotação
+Name[ru]=ЛиÑток бумаги
+Name[sl]=Premetavanje besedila
+Name[sr]=Окретање текÑта
+Name[sr@Latn]=Okretanje teksta
+Name[sv]=Textvändning
+Name[uk]=ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð¢ÐµÐºÑту
+Name[vi]=Văn bản lật
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig fliptext
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun fliptext -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun fliptext -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/flow.desktop b/tdescreensaver/kxsconfig/ScreenSavers/flow.desktop
new file mode 100644
index 00000000..0a3050be
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/flow.desktop
@@ -0,0 +1,248 @@
+[Desktop Entry]
+Exec=flow
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Illusions of Depth
+Name=Flow
+Name[af]=Vloei
+Name[br]=Lanv
+Name[ca]=Flux
+Name[cs]=Proud
+Name[cy]=Llif
+Name[da]=Flyd
+Name[de]=Fließen
+Name[el]=Ροή
+Name[eo]=Fluo
+Name[es]=Flujo
+Name[et]=Voog
+Name[eu]=Fluxua
+Name[fa]=روند
+Name[fi]=Virta
+Name[fr]=Flot
+Name[fy]=Floei
+Name[gl]=Fluxo
+Name[he]=×ž×•×©×›×™× ×“×™× ×ž×™×™×
+Name[hi]=किरण पà¥à¤°à¤µà¤¾à¤¹
+Name[hu]=Folyam
+Name[is]=Flæði
+Name[it]=Flusso
+Name[ja]=æµã‚Œ
+Name[ka]=ნáƒáƒ™áƒáƒ“ი
+Name[lt]=SrovÄ—
+Name[lv]=Plūsma
+Name[mk]=Тек
+Name[ms]=Aliran
+Name[mt]=Fluss
+Name[nb]=Flyt
+Name[nds]=Fleten
+Name[ne]=पà¥à¤°à¤µà¤¾à¤¹
+Name[nn]=Flyt
+Name[nso]=Moela
+Name[pl]=Przepływ
+Name[pt]=Fluxo
+Name[pt_BR]=Fluxo
+Name[ro]=Curgere
+Name[ru]=Поток
+Name[sk]=Prúd
+Name[sl]=Tok
+Name[sr]=Ток
+Name[sr@Latn]=Tok
+Name[sv]=Flöde
+Name[ta]=ஓடà¯à®Ÿà®®à¯
+Name[tg]=Сел
+Name[th]=สายน้ำ
+Name[tr]=Akış
+Name[uk]=Потік
+Name[ven]=Elela
+Name[vi]=Dòng chảy
+Name[xh]=Mpompoza
+Name[zh_CN]=æµåŠ¨
+Name[zh_TW]=æµå‹•
+Name[zu]=Ntanta
+
+[Desktop Action Setup]
+Exec=kxsconfig flow
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun flow -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun flow -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/fluidballs.desktop b/tdescreensaver/kxsconfig/ScreenSavers/fluidballs.desktop
new file mode 100644
index 00000000..250c1665
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/fluidballs.desktop
@@ -0,0 +1,233 @@
+[Desktop Entry]
+Exec=fluidballs
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Illusions of Depth
+Name=FluidBalls
+Name[ca]=Fluidessa de les pilotes
+Name[cy]=PeliLlif
+Name[de]=Bälle in Flüssigkeit
+Name[el]=Ρευστές μπάλες
+Name[es]=Fluido de bolas
+Name[et]=Voolavad pallid
+Name[eu]=Pilota likidoak
+Name[fa]=گویهای روان
+Name[fi]=Nestepallot
+Name[fr]=Boules liquides
+Name[gl]=Fluxo de bolas
+Name[he]=×›×“×•×¨×™× ×§×•×¤×¦×™×
+Name[hi]=फà¥à¤²à¥‚इड-बालà¥à¤¸
+Name[hu]=Folyadékcseppek
+Name[is]=Vökvaboltar
+Name[ja]=æµã‚Œã‚‹ãƒœãƒ¼ãƒ«
+Name[ka]=მáƒáƒ«áƒ áƒáƒ•áƒ˜ ბურთულები
+Name[mk]=Топчиња Ñо течноÑÑ‚
+Name[ms]=Bola Air
+Name[nb]=Flytende baller
+Name[nds]=Flootbäll
+Name[ne]=फà¥à¤¯à¥à¤¡ बल
+Name[nn]=Flytande ballar
+Name[pl]=Płynne piłki
+Name[pt]=Bolas Fluidas
+Name[pt_BR]=Bolas de Fluido
+Name[ru]=Подвижные шарики
+Name[sl]=TekoÄe žoge
+Name[sr]=Флуидне лопте
+Name[sr@Latn]=Fluidne lopte
+Name[sv]=Flytande bollar
+Name[ta]=தணà¯à®£à¯€à®°à¯à®ªà®¨à¯à®¤à¯à®•à¯à®•à®³à¯
+Name[tg]=Кӯраҳои ҳаракаткунанда
+Name[tr]=Sulu Toplar
+Name[uk]=Рідкі бульбашки
+Name[vi]=Bóng chảy
+Name[xh]=Iibhola Ezingamanzi
+Name[zh_CN]=液体中的çƒ
+Name[zh_TW]=液體çƒ
+Name[zu]=Amabhola Amanzi
+
+[Desktop Action Setup]
+Exec=kxsconfig fluidballs
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun fluidballs -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun fluidballs -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/flurry.desktop b/tdescreensaver/kxsconfig/ScreenSavers/flurry.desktop
new file mode 100644
index 00000000..112c013b
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/flurry.desktop
@@ -0,0 +1,224 @@
+[Desktop Entry]
+Exec=flurry
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Flurry
+Name[ca]=Ràfega
+Name[cy]=Ffwdan
+Name[de]=Gestöber
+Name[eo]=Agit'
+Name[es]=Ráfaga
+Name[et]=Segadik
+Name[eu]=Bolada
+Name[fa]=طوÙان ناگهانی
+Name[fr]=Bourrasque
+Name[fy]=Fleach
+Name[he]=גלי×
+Name[hi]=à¤à¥‹à¤‚का
+Name[ja]=フラーリ
+Name[ka]=áƒáƒ¦áƒ”ლვებáƒ
+Name[mk]=Возбудливо
+Name[ms]=Salji
+Name[ne]=आà¤à¤§à¥€
+Name[nl]=Vlagen
+Name[pl]=Śnieżyca
+Name[pt]=Confuso
+Name[ru]=Свечение
+Name[sl]=Rosenje
+Name[sr]=Ðервоза
+Name[sr@Latn]=Nervoza
+Name[sv]=Byar
+Name[ta]=திடீர௠அதிகரிபà¯à®ªà¯
+Name[tg]=Партавафканӣ
+Name[tr]=Çoşku
+Name[uk]=Чарівне Ñвітло
+Name[zh_CN]=飓风
+
+[Desktop Action Setup]
+Exec=kxsconfig flurry
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun flurry -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun flurry -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/flyingtoasters.desktop b/tdescreensaver/kxsconfig/ScreenSavers/flyingtoasters.desktop
new file mode 100644
index 00000000..fe9118e9
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/flyingtoasters.desktop
@@ -0,0 +1,238 @@
+[Desktop Entry]
+Exec=flyingtoasters
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+Name=Flying Toasters
+Name[bg]=ЛетÑщи тоÑтери
+Name[ca]=Torradores Volants
+Name[cy]=TosteriFflio
+Name[de]=Fliegende Toaster
+Name[el]=Ιπτάμενες τοστιέÏες
+Name[eo]=Flugantaj Panrostiloj
+Name[es]=Tostadoras volantes
+Name[et]=Lendavad konnad
+Name[eu]=Tostagailu hegalariak
+Name[fa]=سرخ‌کننده‌های سریع
+Name[fr]=Grille-pain volants
+Name[fy]=Fleanende toasters
+Name[gl]=Torradoras volantes
+Name[he]=×ž×¦× × ×™× ×ž×¢×•×¤×¤×™×
+Name[hi]=उड़न टोसà¥à¤Ÿà¤°
+Name[hu]=Repülő kenyérpirítók
+Name[is]=Fljúgandi ristavélar
+Name[it]=Tostapane volante
+Name[ja]=フライングトースター
+Name[ka]=მფრინáƒáƒ•áƒ˜ ტáƒáƒ¡áƒ¢áƒ”რები
+Name[mk]=Летечки тоÑтери
+Name[ms]=Pembakar Roti Terbang
+Name[nb]=Flygende brødristere
+Name[nds]=Flegen Toasters
+Name[ne]=उडà¥à¤¨à¥‡ टोयसà¥à¤Ÿà¤°
+Name[nl]=Vliegende toasters
+Name[nn]=Flygande brødristarar
+Name[pl]=LatajÄ…ce tostery
+Name[pt]=Torradeira Voadoras
+Name[pt_BR]=Torradeiras Voadoras
+Name[ro]=Prăjitoare zburătoare
+Name[ru]=Летающие тоÑтеры
+Name[sk]=Lietajúce taniere
+Name[sl]=LeteÄi opekaÄi
+Name[sr]=Летећи тоÑтери
+Name[sr@Latn]=Leteći tosteri
+Name[sv]=Flygande brödrostar
+Name[ta]=பறகà¯à®•à¯à®®à¯ சà¯à®Ÿà¯à®Ÿà®¾à®©à¯à®•à®³à¯
+Name[tg]=ТоÑтерҳои парвозкунанда
+Name[tr]=Uçan Tost Makineleri
+Name[uk]=ТоÑтери літають
+Name[vi]=Bánh mì Bay
+Name[zh_CN]=飞行é¢åŒ…机
+Name[zh_TW]=飛行土å¸
+
+[Desktop Action Setup]
+Exec=kxsconfig flyingtoasters
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun flyingtoasters -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun flyingtoasters -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/fontglide.desktop b/tdescreensaver/kxsconfig/ScreenSavers/fontglide.desktop
new file mode 100644
index 00000000..3bc4b44c
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/fontglide.desktop
@@ -0,0 +1,226 @@
+[Desktop Entry]
+Exec=fontglide
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=FontGlide
+Name[de]=Gleitende Schriften
+Name[el]=ΣυÏόμενα γÏάμματα
+Name[eo]=TiparGlito
+Name[es]=Caracteres deslizantes
+Name[eu]=Testu irristariak
+Name[fa]=حرکت نرم قلم
+Name[fi]=KirjasinLiuku
+Name[fr]=Texte glissant
+Name[gl]=Altitude
+Name[he]=גבהי×
+Name[hi]=फ़ॉनà¥à¤Ÿ-गà¥à¤²à¤¾à¤‡à¤¡
+Name[hu]=Csúszkáló betűk
+Name[is]=Letursúpa
+Name[ka]=მáƒáƒ¡áƒ áƒ˜áƒáƒšáƒ” ფáƒáƒœáƒ¢áƒ˜
+Name[mk]=Лизгачки текÑÑ‚
+Name[ms]=Luncuran Fon
+Name[nb]=Skrift-glide
+Name[nds]=Glieden Schrift
+Name[ne]=फनà¥à¤Ÿ गà¥à¤²à¤¾à¤‡à¤¡
+Name[nn]=Skriftflyt
+Name[pl]=SzybujÄ…ce czcionki
+Name[ro]=Font în mişcare
+Name[ru]=СкользÑщий текÑÑ‚
+Name[sl]=Drsenje pisav
+Name[sr]=Клизање фонтова
+Name[sr@Latn]=Klizanje fontova
+Name[sv]=Teckenkana
+Name[ta]=எழà¯à®¤à¯à®¤à¯à®°à¯ கà¯à®³à¯ˆà®Ÿà¯
+Name[tg]=Матни лағжанда
+Name[tr]=YazıtipiKayma
+Name[uk]=ТекÑÑ‚ літає
+Name[vi]=Phông chữ Trượt
+X-TDE-Type=Fortune
+X-TDE-Category=Banners & Pictures
+
+[Desktop Action Setup]
+Exec=kxsconfig fontglide
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun fontglide -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun fontglide -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/forest.desktop b/tdescreensaver/kxsconfig/ScreenSavers/forest.desktop
new file mode 100644
index 00000000..3c154efb
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/forest.desktop
@@ -0,0 +1,253 @@
+[Desktop Entry]
+Exec=forest
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Fractals
+Name=Forest
+Name[af]=Woud
+Name[bg]=Гора
+Name[br]=Koadeg
+Name[ca]=Bosc
+Name[cs]=Les
+Name[cy]=Coedwig
+Name[da]=Skov
+Name[de]=Wald
+Name[el]=Δάσος
+Name[eo]=Arbaro
+Name[es]=Bosque
+Name[et]=Mets
+Name[eu]=Basoa
+Name[fa]=جنگل
+Name[fi]=Metsä
+Name[fo]=Skóg
+Name[fr]=Forêt
+Name[fy]=Bosk
+Name[gl]=Bosque
+Name[he]=יער
+Name[hi]=जंगल
+Name[hu]=Erdő
+Name[is]=Skógur
+Name[it]=Foresta
+Name[ja]=森
+Name[ka]=ტყე
+Name[lt]=Miškas
+Name[lv]=Mežs
+Name[mk]=Шума
+Name[ms]=Rimba
+Name[mt]=Foresta
+Name[nb]=Skog
+Name[nds]=Woold
+Name[ne]=जङà¥à¤—ल
+Name[nn]=Skog
+Name[nso]=Sethokgwa
+Name[pa]=ਜੰਗਲ
+Name[pl]=Las
+Name[pt]=Floresta
+Name[pt_BR]=Floresta
+Name[ro]=Pădure
+Name[ru]=ЛеÑ
+Name[sk]=Les
+Name[sl]=Gozd
+Name[sr]=Шума
+Name[sr@Latn]=Å uma
+Name[sv]=Skog
+Name[ta]=காடà¯
+Name[tg]=Ҷангал
+Name[th]=ป่าไม้
+Name[tr]=Orman
+Name[uk]=ЛіÑ
+Name[uz]=Oʻrmon
+Name[uz@cyrillic]=Ўрмон
+Name[ven]=Daka
+Name[vi]=Rừng
+Name[xh]=Ihlathi
+Name[zh_CN]=森林
+Name[zh_TW]=森林
+Name[zu]=Ihlathi
+
+[Desktop Action Setup]
+Exec=kxsconfig forest
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun forest -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun forest -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/fuzzyflakes.desktop b/tdescreensaver/kxsconfig/ScreenSavers/fuzzyflakes.desktop
new file mode 100644
index 00000000..e766620e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/fuzzyflakes.desktop
@@ -0,0 +1,220 @@
+[Desktop Entry]
+Exec=fuzzyflakes
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Illusions of Depth
+Name=FuzzyFlakes
+Name[de]=Verrückte Schneeflocken
+Name[el]=Ασαφείς Φλόγες
+Name[eo]=DiskrispajFlokoj
+Name[es]=Copos rizados
+Name[et]=Leegid
+Name[eu]=Maluta koloreztatuak
+Name[fa]=تکه‌های مبهم
+Name[fr]=Flocons colorés
+Name[gl]=Lapa
+Name[hi]=फ़जी-फà¥à¤²à¥ˆà¤•à¥à¤¸
+Name[is]=Loðnar flögur
+Name[ka]=ყვáƒáƒ•áƒ˜áƒšáƒœáƒáƒ áƒ˜
+Name[mk]=ÐејаÑни Ñнегулки
+Name[ms]=Empingan Samar
+Name[nds]=Sneeflocken
+Name[ne]=फजी ढाà¤à¤šà¤¾
+Name[nn]=Uklare flak
+Name[pl]=Niewyraźne płatki
+Name[ru]=Цветочки
+Name[sl]=Zabrisane snežinke
+Name[sr]=Меке пахуљице
+Name[sr@Latn]=Meke pahuljice
+Name[sv]=Suddiga flingor
+Name[tg]=Гулҳо
+Name[tr]=TüyParçaları
+Name[uk]=Розмиті Ñніжинки
+Name[vi]=Bông tuyết MỠảo
+
+[Desktop Action Setup]
+Exec=kxsconfig fuzzyflakes
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun fuzzyflakes -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun fuzzyflakes -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/galaxy.desktop b/tdescreensaver/kxsconfig/ScreenSavers/galaxy.desktop
new file mode 100644
index 00000000..18789c85
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/galaxy.desktop
@@ -0,0 +1,250 @@
+[Desktop Entry]
+Exec=galaxy
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Flying Things
+Name=Galaxy
+Name[af]=Heelal
+Name[bg]=Галактики
+Name[br]=Hent Sant-Jakez
+Name[ca]=Galàxia
+Name[cs]=Galaxie
+Name[cy]=Galaeth
+Name[da]=Galakse
+Name[de]=Galaxis
+Name[el]=Γαλαξίας
+Name[eo]=Galaksio
+Name[es]=Galaxia
+Name[et]=Galaktika
+Name[eu]=Galaxia
+Name[fa]=کهکشان راه شیری
+Name[fi]=Galaksi
+Name[fr]=Galaxie
+Name[fy]=Molkewei
+Name[gl]=Galáxia
+Name[he]=גלקסיות
+Name[hi]=आकाशगंगा
+Name[hu]=Galaxis
+Name[is]=Stjörnuþoka
+Name[it]=Galassia
+Name[ja]=銀河
+Name[ka]=გáƒáƒšáƒáƒ¥áƒ¢áƒ˜áƒ™áƒ
+Name[lt]=Galaktika
+Name[lv]=Galaktika
+Name[mk]=ГалакÑија
+Name[ms]=Galaksi
+Name[mt]=Galassji
+Name[nb]=Galakse
+Name[nds]=Galaxie
+Name[ne]=आकाशगङà¥à¤—ा
+Name[nn]=Galakse
+Name[pa]=ਗਲੈਕਸੀ
+Name[pl]=Galaktyka
+Name[pt]=Galáxia
+Name[pt_BR]=Galáxia
+Name[ro]=Galaxie
+Name[ru]=Галактика
+Name[sk]=Galaxia
+Name[sl]=Galaksija
+Name[sr]=ГалакÑија
+Name[sr@Latn]=Galaksija
+Name[sv]=Galax
+Name[ta]=அணà¯à®Ÿà®®à¯
+Name[tg]=Галактика
+Name[th]=à¹à¸à¹à¸¥à¹‡à¸à¸‹à¸µ
+Name[tr]=Galaksi
+Name[uk]=Галактика
+Name[uz]=Galaktika
+Name[uz@cyrillic]=Галактика
+Name[vi]=Thiên hà
+Name[xh]=Intlaninge Yeenkwenkwezi
+Name[zh_CN]=星系
+Name[zh_TW]=銀河
+Name[zu]=Ibhola lezinkanyezi
+
+[Desktop Action Setup]
+Exec=kxsconfig galaxy
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun galaxy -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun galaxy -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/gears.desktop b/tdescreensaver/kxsconfig/ScreenSavers/gears.desktop
new file mode 100644
index 00000000..eaa8865c
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/gears.desktop
@@ -0,0 +1,248 @@
+[Desktop Entry]
+Exec=gears
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Gears (GL)
+Name[af]=Ratte (Gl)
+Name[br]=Rodeg (GL)
+Name[ca]=Engranatges (GL)
+Name[cs]=Soukolí (GL)
+Name[cy]=Gerau (GL)
+Name[da]=Gear (GL)
+Name[de]=Zahnräder
+Name[el]=ΓÏανάζια (GL)
+Name[eo]=Radoj (graf. bibl.)
+Name[es]=Engranajes (GL)
+Name[et]=Hammasrattad (GL)
+Name[eu]=Makineria (GL)
+Name[fa]=دنده‌ها (GL)
+Name[fi]=Vaihteet (GL)
+Name[fo]=Tannhjól (GL)
+Name[fr]=Engrenages (GL)
+Name[gl]=Engranaxes (GL)
+Name[he]=גלגלי ×©×™× ×™×™× (GL)
+Name[hi]=गरारी (जीà¤à¤²)
+Name[hu]=Fogaskerekek (OpenGL)
+Name[is]=Gírar (GL)
+Name[it]=Ingranaggi (GL)
+Name[ja]=ギア (GL)
+Name[ka]=კბილáƒáƒœáƒ”ბი (GL)
+Name[lt]=Mechanizmai (GL)
+Name[lv]=MehÄnismi (GL)
+Name[mk]=Запчаници (GL)
+Name[mt]=Roti tas-snien (GL)
+Name[nb]=Gir (GL)
+Name[nds]=Tahnrööd (GL)
+Name[ne]=गेयर (GL)
+Name[nn]=Tannhjul (GL)
+Name[pa]=ਗੇਅਰ (GL)
+Name[pl]=Trybiki (GL)
+Name[pt]=Roldanas (GL)
+Name[pt_BR]=Engrenagens (GL)
+Name[ro]=Rotiţe (GL)
+Name[ru]=ШеÑтерёнки (GL)
+Name[sk]=Prístroje (GL)
+Name[sl]=Zobniki (GL)
+Name[sr]=Зупчаници (GL)
+Name[sr@Latn]=ZupÄanici (GL)
+Name[sv]=Kugghjul (GL)
+Name[ta]=பலà¯à®šà®•à¯à®•à®°à®™à¯à®•à®³à¯ (GL)
+Name[tg]=Чархи дандонадор (GL)
+Name[th]=ฟันเฟือง (GL)
+Name[tr]=DiÅŸliler (GL)
+Name[uk]=ПриÑтрої (GL)
+Name[ven]=Gere (GL)
+Name[vi]=Bánh răng (GL)
+Name[xh]=Izixhobo Zemoto (GL)
+Name[zh_CN]=齿轮(GL)
+Name[zh_TW]=齒輪 (GL)
+Name[zu]=Amagiye ezimoto (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig gears
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun gears -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun gears -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/gflux.desktop b/tdescreensaver/kxsconfig/ScreenSavers/gflux.desktop
new file mode 100644
index 00000000..436ea3c9
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/gflux.desktop
@@ -0,0 +1,219 @@
+[Desktop Entry]
+Exec=gflux
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=GFlux
+Name[ca]=Flux G
+Name[cy]=FfrwdG
+Name[de]=Gewelltes Drahtgitter
+Name[es]=Flujo G
+Name[fr]=drap (GL)
+Name[fy]=GFluks
+Name[gl]=Fluxo G
+Name[he]=גלי×
+Name[hi]=रंग बरसे
+Name[ka]=GNU ფლუქტუáƒáƒªáƒ˜áƒ
+Name[mk]=ГФлукÑ
+Name[nb]=Gfluks
+Name[nds]=Bülgendook
+Name[nn]=Gfluks
+Name[pt]=Fluxo
+Name[ru]=GNU Флуктуации
+Name[sl]=Tok GL
+Name[sr]=Г-флукÑ
+Name[sr@Latn]=G-fluks
+Name[sv]=Gflux
+Name[ta]=Gஒடà¯à®Ÿà®®à¯
+Name[tg]=ФлуктуатÑиÑи GFlux
+Name[uk]=ФлюкÑÑ–Ñ (GL)
+Name[vi]=Lưu thông GL
+Name[zh_CN]=Gæµä½“
+
+[Desktop Action Setup]
+Exec=kxsconfig gflux
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun gflux -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun gflux -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/glblur.desktop b/tdescreensaver/kxsconfig/ScreenSavers/glblur.desktop
new file mode 100644
index 00000000..d5126887
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/glblur.desktop
@@ -0,0 +1,224 @@
+[Desktop Entry]
+Exec=glblur
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=GLBlur
+Name[ca]=GL núvols
+Name[cy]=DylniGL
+Name[de]=Radiale Unschärfe
+Name[es]=Vaho GL
+Name[et]=GL Hägu
+Name[fr]=Brouillard (GL)
+Name[fy]=GL-dize
+Name[gl]=Borroso GL
+Name[he]=גלי×
+Name[hi]=धà¥à¤‚धलका (जीà¤à¤²)
+Name[it]=Sfocatura (GL)
+Name[ka]=ნáƒáƒ—ებრ(GL)
+Name[mk]=GL-замаглување
+Name[nb]=GLdis
+Name[nds]=Swiemel GL
+Name[nl]=GL-waas
+Name[nn]=GLdis
+Name[pl]=Rozmycie GL
+Name[pt]=Borrão (GL)
+Name[ru]=Свечение (GL)
+Name[sk]=GLRozmazanie
+Name[sl]=Umazanija GL
+Name[sr]=GL мутно
+Name[sr@Latn]=GL mutno
+Name[sv]=Diffus GL
+Name[ta]=GLதெளிவிலà¯à®²à®¾à®¤
+Name[tg]=Партавафканӣ (GL)
+Name[uk]=Світло (GL)
+Name[vi]=MỠảo GL
+Name[zh_CN]=GL模糊
+
+[Desktop Action Setup]
+Exec=kxsconfig glblur
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun glblur -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun glblur -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/glcells.desktop b/tdescreensaver/kxsconfig/ScreenSavers/glcells.desktop
new file mode 100644
index 00000000..468b712d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/glcells.desktop
@@ -0,0 +1,207 @@
+[Desktop Entry]
+Exec=glcells
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=GLCells
+Name[ca]=GL cèl·lules
+Name[de]=GL-Zellen
+Name[el]=GL ΓÏαμμές
+Name[es]=Células GL
+Name[et]=GLLahtrid
+Name[fr]=Cellules (GL)
+Name[it]=Cellule (GL)
+Name[nds]=Zelln GL
+Name[ru]=Размножение клеток
+Name[sk]=GLBunky
+Name[sr]=GL ћелије
+Name[sr@Latn]=GL ćelije
+Name[sv]=Celler GL
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig glcells
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun glcells -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun glcells -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/gleidescope.desktop b/tdescreensaver/kxsconfig/ScreenSavers/gleidescope.desktop
new file mode 100644
index 00000000..e2e62571
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/gleidescope.desktop
@@ -0,0 +1,226 @@
+[Desktop Entry]
+Exec=gleidescope
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=Gleidescope
+Name[ca]=Gleidoscopi
+Name[de]=Kaleidoskop
+Name[el]=GL Καλειδοσκόπιο
+Name[eo]=Kalejdoskopo
+Name[es]=GLeidoscopio
+Name[et]=Gleidoskoop
+Name[fi]=Kaleidoskooppi
+Name[fr]=Kaléidoscope (GL)
+Name[gl]=Gleidoscópio
+Name[he]=קליידסקופ
+Name[hi]=गà¥à¤²à¤¾à¤‡à¤¡à¤¸à¥à¤•à¥‹à¤ª
+Name[hu]=Gleidoszkóp
+Name[is]=Gleidesjá
+Name[it]=Caleidoscopio (GL)
+Name[ka]=კáƒáƒšáƒ”იდáƒáƒ¡áƒ™áƒáƒžáƒ˜
+Name[mk]=ГЛеидоÑкоп
+Name[nb]=Gleidoskop
+Name[nds]=Gleidoskoop
+Name[ne]=गà¥à¤²à¥‡à¤‡à¤¡à¤¸à¥à¤•à¥‹à¤ª
+Name[pt]=Gleidoscópio
+Name[ru]=КалейдоÑкоп
+Name[sk]=Galeidoskop
+Name[sl]=Gleidoskop
+Name[sr]=ГлејдоÑкоп
+Name[sr@Latn]=Glejdoskop
+Name[sv]=Gleideskop
+Name[ta]=வணà¯à®£à®ªà¯à®ªà®°à®ªà¯à®ªà¯
+Name[tg]=КалейдоÑкоп
+Name[tr]=ÇiçekDürbünü
+Name[uk]=ГлайдоÑкоп
+Name[vi]=Kính vạn hoa lướt
+Name[zh_TW]=è¬èŠ±ç­’
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig gleidescope
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun gleidescope -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun gleidescope -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/glforestfire.desktop b/tdescreensaver/kxsconfig/ScreenSavers/glforestfire.desktop
new file mode 100644
index 00000000..fb7651c3
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/glforestfire.desktop
@@ -0,0 +1,235 @@
+[Desktop Entry]
+Exec=glforestfire
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=GLForestFire
+Name[ca]=GL bosc de foc
+Name[cy]=TânCoedwigGL
+Name[da]=GLSkovbrand
+Name[de]=Waldfeuer
+Name[el]=GL Φωτιά στο δάσος
+Name[es]=Bosque de fuego GL
+Name[et]=GL Metsatulekahju
+Name[eu]=Basoko sua GL
+Name[fi]=GLMetsäpalo
+Name[fo]=Skógareldur
+Name[fr]=Feu de forêt (GL)
+Name[gl]=Bosque de fogo GL
+Name[he]=שריפה ביער (GL)
+Name[hi]=जंगल की आग (जीà¤à¤²)
+Name[hu]=Erdőtűz (OpenGL)
+Name[is]=GL-Skógareldar
+Name[it]=Fuoco nella foresta (GL)
+Name[ja]=GL 森林ç«ç½
+Name[ka]=ტყის ხáƒáƒœáƒ«áƒáƒ áƒ˜ (GL)
+Name[mk]=GL-шумÑки пожар
+Name[nb]=GLSkogbrann
+Name[nds]=GLWooldfüer
+Name[ne]=GL फोरेसà¥à¤Ÿà¤«à¤¾à¤¯à¤°
+Name[nn]=Skogbrann GL
+Name[pt]=Fogo na Floresta (GL)
+Name[pt_BR]=Floresta de Fogo GL
+Name[ru]=ГорÑщий Ð»ÐµÑ (GL)
+Name[sk]=GLLesnýPožiar
+Name[sl]=Gozdni požar GL
+Name[sr]=GL шумÑки пожар
+Name[sr@Latn]=GL šumski požar
+Name[sv]=Skogsbrand GL
+Name[ta]=GLகாடà¯à®Ÿà¯à®¤à¯à®¤à¯€
+Name[tg]=Ҷангали Ñухта иÑтода (GL)
+Name[th]=ไฟป่า (GL)
+Name[tr]=Orman Yangını
+Name[uk]=ЛіÑова пожежа (GL)
+Name[ven]=GLMulilo wa dakani
+Name[vi]=Lửa Rừng GL
+Name[zh_CN]=GL森林大ç«
+Name[zh_TW]=森林煙ç«
+
+[Desktop Action Setup]
+Exec=kxsconfig glforestfire
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun glforestfire -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun glforestfire -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/glhanoi.desktop b/tdescreensaver/kxsconfig/ScreenSavers/glhanoi.desktop
new file mode 100644
index 00000000..449050b6
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/glhanoi.desktop
@@ -0,0 +1,216 @@
+[Desktop Entry]
+Exec=glhanoi
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=GLHanoi
+Name[ca]=GL Hanoi
+Name[es]=HanoiGL
+Name[et]=GL Hanoi
+Name[fr]=Hanoi (GL)
+Name[he]=מגדל ×”×נוי (GL)
+Name[hu]=Hanoi-torony (OpenGL)
+Name[is]=GL-Hanoí
+Name[it]=Hanoi (GL)
+Name[ja]=GL ãƒãƒŽã‚¤
+Name[ka]=GLჰáƒáƒœáƒáƒ˜
+Name[mk]=GL-Ханој
+Name[ne]=GL हानोइ
+Name[nl]=GL Hanoi
+Name[pt]=Hanói GL
+Name[ru]=ХанойÑкие башни
+Name[sk]=GLHanoj
+Name[sl]=Hanoi GL
+Name[sr]=GL ханој
+Name[sr@Latn]=GL hanoj
+Name[sv]=Hanoi GL
+Name[vi]=Tháp Hà Nội GL
+Name[zh_TW]=漢諾塔
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig glhanoi
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun glhanoi -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun glhanoi -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/glknots.desktop b/tdescreensaver/kxsconfig/ScreenSavers/glknots.desktop
new file mode 100644
index 00000000..31a84397
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/glknots.desktop
@@ -0,0 +1,224 @@
+[Desktop Entry]
+Exec=glknots
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=GLKnots
+Name[ca]=NusosGL
+Name[cy]=ClymauGL
+Name[de]=Knoten
+Name[eo]=GLNodoj
+Name[es]=NudosGL
+Name[et]=GL Sõlmed
+Name[eu]=GLKorapiloak
+Name[fr]=Noeuds (GL)
+Name[gl]=Nós GL
+Name[hi]=गांठें (जीà¤à¤²)
+Name[hu]=Csomók (OpenGL)
+Name[is]=GL-hnútar
+Name[it]=Knots (GL)
+Name[ka]=ნáƒáƒ¡áƒ™áƒ•áƒ”ბი (GL)
+Name[mk]=GL-јазли
+Name[nb]=GLKnuter
+Name[nds]=GLKnütten
+Name[ne]=GL नोटà¥à¤¸
+Name[nn]=GLKnutar
+Name[pl]=Węzły GL
+Name[pt]=Nós (GL)
+Name[ru]=Клубок (GL)
+Name[sl]=Vozel GL
+Name[sr]=GL чворови
+Name[sr@Latn]=GL Ävorovi
+Name[sv]=Knutar GL
+Name[ta]=GLà®®à¯à®Ÿà®¿à®šà¯à®šà¯à®•à®³à¯
+Name[tg]=Тӯбча (GL)
+Name[uk]=Вузли (GL)
+Name[vi]=Nút thắt GL
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig glknots
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun glknots -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun glknots -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/glmatrix.desktop b/tdescreensaver/kxsconfig/ScreenSavers/glmatrix.desktop
new file mode 100644
index 00000000..20c58d04
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/glmatrix.desktop
@@ -0,0 +1,228 @@
+[Desktop Entry]
+Exec=glmatrix
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=GLMatrix
+Name[cy]=MatricsGL
+Name[de]=Matrix
+Name[eo]=GLMatrico
+Name[es]=MatrixGL
+Name[et]=GL Matrix
+Name[eu]=GLMatrizea
+Name[fr]=Matrix (GL)
+Name[fy]=GLMatriks
+Name[gl]=Matrix GL
+Name[he]=מטריקס GL
+Name[hi]=जीà¤à¤²-मेटà¥à¤°à¤¿à¤•à¥à¤¸
+Name[hu]=A Mátrix (OpenGL)
+Name[is]=GL-matrixa
+Name[it]=Matrix (GL)
+Name[ja]=GL マトリックス
+Name[ka]=მáƒáƒ¢áƒ áƒ˜áƒªáƒ (GL)
+Name[mk]=GL-МатрикÑ
+Name[ne]=GL मà¥à¤¯à¤¾à¤Ÿà¥à¤°à¤¿à¤•à¥à¤¸
+Name[nn]=GLMatrise
+Name[pl]=Matrix GL
+Name[pt]=Matriz GL
+Name[ru]=Матрица (GL)
+Name[sk]=GLMatica
+Name[sl]=Matrica GL
+Name[sr]=GL матрица
+Name[sr@Latn]=GL matrica
+Name[sv]=Matrix GL
+Name[ta]=GLஅணி
+Name[tg]=МатритÑа (GL)
+Name[tr]=GL Matrix
+Name[uk]=ÐœÐ°Ñ‚Ñ€Ð¸Ñ†Ñ (GL)
+Name[vi]=Ma trận GL
+Name[zh_CN]=GL黑客å¸å›½
+Name[zh_TW]=駭客任務
+
+[Desktop Action Setup]
+Exec=kxsconfig glmatrix
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun glmatrix -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun glmatrix -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/glplanet.desktop b/tdescreensaver/kxsconfig/ScreenSavers/glplanet.desktop
new file mode 100644
index 00000000..2930501a
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/glplanet.desktop
@@ -0,0 +1,245 @@
+[Desktop Entry]
+Exec=glplanet
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=GL Planet (GL)
+Name[af]=Gl Planeet (Gl)
+Name[br]=Planedenn GL (GL)
+Name[ca]=GL planeta (GL)
+Name[cs]=GL planeta (GL)
+Name[cy]=GL Planed (GL)
+Name[de]=Planet
+Name[el]=Πλανήτης GL (GL)
+Name[eo]=Planedo (graf. bibl.)
+Name[es]=Planeta GL (GL)
+Name[et]=GL Planeet (GL)
+Name[eu]=GL Planeta (GL)
+Name[fi]=GL Planeetta (GL)
+Name[fo]=Gongustjørna (GL)
+Name[fr]=Planète (GL)
+Name[fy]=GL Planeet (GL)
+Name[gl]=Planeta GL (GL)
+Name[he]=כוכב (GL)
+Name[hi]=जीà¤à¤² पà¥à¤²à¥‡à¤¨à¥‡à¤Ÿ (जीà¤à¤²)
+Name[hu]=Bolygó (OpenGL)
+Name[is]=GL-pláneta (GL)
+Name[it]=Pianeta (GL)
+Name[ja]=GL 惑星 (GL)
+Name[ka]=პლáƒáƒœáƒ”ტრ(GL)
+Name[lt]=GL Planeta (GL)
+Name[lv]=GL Planēta (GL)
+Name[mk]=GL-планета (GL)
+Name[mt]=GL Pjaneta (GL)
+Name[nb]=GL-planeten (GL)
+Name[nds]=Planet (GL)
+Name[ne]=GL गà¥à¤°à¤¹ (GL)
+Name[nn]=GL-planet (GL)
+Name[pl]=Planeta GL (GL)
+Name[pt]=Planeta (GL)
+Name[pt_BR]=Planeta GL (GL)
+Name[ru]=Планета (GL)
+Name[sk]=GL Planéta (GL)
+Name[sl]=Planet GL
+Name[sr]=GL планета (GL)
+Name[sr@Latn]=GL planeta (GL)
+Name[sv]=GL-planeten (GL)
+Name[ta]=GL கோள௠(GL)
+Name[tg]=Сайёраи (GL)
+Name[th]=ลูà¸à¹‚ลภ(GL)
+Name[tr]=GL Gezegen (GL)
+Name[uk]=Планета (GL)
+Name[ven]=Pulanete ya GL (GL)
+Name[vi]=Hành tinh GL
+Name[xh]=Umzimba Osesibhakabhakeni Ojikeleza Ilanga (GL)
+Name[zh_CN]=GL行星(GL)
+Name[zh_TW]=行星 (GL)
+Name[zu]=Umzimba osesibhakabhakeni ojikeleza ilanga (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig glplanet
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun glplanet -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun glplanet -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/glschool.desktop b/tdescreensaver/kxsconfig/ScreenSavers/glschool.desktop
new file mode 100644
index 00000000..3983b491
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/glschool.desktop
@@ -0,0 +1,205 @@
+[Desktop Entry]
+Exec=glschool
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=glschool
+Name[ca]=GL escola
+Name[de]=GL-Schule
+Name[es]=Escuela GL
+Name[et]=GLKool
+Name[fr]=Banc (GL)
+Name[it]=Scuola (GL)
+Name[nds]=GLSchool
+Name[ru]=Рыбки
+Name[sr]=GL јато
+Name[sr@Latn]=GL jato
+Name[sv]=Stim GL
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig glschool
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun glschool -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun glschool -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/glslideshow.desktop b/tdescreensaver/kxsconfig/ScreenSavers/glslideshow.desktop
new file mode 100644
index 00000000..70478d54
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/glslideshow.desktop
@@ -0,0 +1,232 @@
+[Desktop Entry]
+Exec=glslideshow
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=GLSlideshow
+Name[ca]=GL diapositives
+Name[cy]=Sioe Tryloywder GL
+Name[de]=GL-Dia-Schau
+Name[el]=ΠÏοβολή σλάιντς GL
+Name[eo]=GLLumbildoj
+Name[es]=Presentación GL
+Name[et]=GL Slaidiseanss
+Name[eu]=GLDiapositibaErakusketa
+Name[fr]=Diaporama (GL)
+Name[fy]=GL-diafoarstelling
+Name[gl]=Apresentación GL
+Name[he]=מצגת שקופיות GL
+Name[hi]=जीà¤à¤²-à¤à¤²à¤• तमाशा
+Name[hu]=Diavetítés (OpenGL)
+Name[is]=GL-skyggnusýning
+Name[it]=Immagini in sequenza (GL)
+Name[ja]=GL スライドショー
+Name[ka]=სლáƒáƒ˜áƒ“ების ჩვენებრ(GL)
+Name[mk]=GL Ñлајд-шоу
+Name[nb]=GL Lysbildeshow
+Name[nds]=GL-Diaschau
+Name[ne]=GL सà¥à¤²à¤¾à¤‡à¤¡ शो
+Name[nl]=GL-diavoorstelling
+Name[nn]=GL-biletframvising
+Name[pl]=Pokaz slajdów GL
+Name[pt]=Apresentação (GL)
+Name[pt_BR]=Show de slides GL
+Name[ru]=Слайд-шоу (GL)
+Name[sl]=Diapozitivi GL
+Name[sr]=GL Ñлајд шоу
+Name[sr@Latn]=GL slajd Å¡ou
+Name[sv]=Bildspel GL
+Name[ta]=GLஸà¯à®²à¯ˆà®Ÿà¯à®•à®¾à®Ÿà¯à®šà®¿
+Name[tg]=Ðамоиши Ñлайди (GL)
+Name[uk]=Слайди (GL)
+Name[vi]=Lướt trình GL
+Name[zh_CN]=GLå¹»ç¯
+Name[zh_TW]=幻燈片放映
+
+[Desktop Action Setup]
+Exec=kxsconfig glslideshow
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun glslideshow -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun glslideshow -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/glsnake.desktop b/tdescreensaver/kxsconfig/ScreenSavers/glsnake.desktop
new file mode 100644
index 00000000..5fec3cf8
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/glsnake.desktop
@@ -0,0 +1,234 @@
+[Desktop Entry]
+Exec=glsnake
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=GLSnake
+Name[ca]=GL serp
+Name[cy]=NeidrGL
+Name[de]=Schlange
+Name[el]=GL Φίδι
+Name[es]=Serpiente GL
+Name[et]=GL Madu
+Name[eu]=GLSugea
+Name[fi]=GLKäärme
+Name[fr]=Serpent (GL)
+Name[fy]=GLSlange
+Name[gl]=Serpente GL
+Name[he]=נחש (GL)
+Name[hi]=जीà¤à¤²-सांप
+Name[hu]=Kígyó (OpenGL)
+Name[is]=GL-snákur
+Name[it]=Serpente (GL)
+Name[ja]=GL スãƒãƒ¼ã‚¯
+Name[ka]=გველი (GL)
+Name[mk]=GL-змија
+Name[mt]=GLSerp
+Name[nb]=GL-orm
+Name[nds]=GLSnaak
+Name[ne]=GL सà¥à¤¨à¥‡à¤•
+Name[nn]=GL-orm
+Name[pt]=Cobra (GL)
+Name[pt_BR]=CobraGL
+Name[ru]=Ð—Ð¼ÐµÑ (GL)
+Name[sl]=KaÄa GL
+Name[sr]=GL змија
+Name[sr@Latn]=GL zmija
+Name[sv]=GL-orm
+Name[ta]=GLபாமà¯à®ªà¯
+Name[tg]=Мор (GL)
+Name[th]=งู (GL)
+Name[tr]=Yılan
+Name[uk]=Ð—Ð¼Ñ–Ñ (GL)
+Name[ven]=GLnowa
+Name[vi]=Rắn GL
+Name[zh_CN]=GL蛇
+Name[zh_TW]=蛇
+
+[Desktop Action Setup]
+Exec=kxsconfig glsnake
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun glsnake -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun glsnake -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/gltext.desktop b/tdescreensaver/kxsconfig/ScreenSavers/gltext.desktop
new file mode 100644
index 00000000..80a5c9ab
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/gltext.desktop
@@ -0,0 +1,234 @@
+[Desktop Entry]
+Exec=gltext
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=GLText
+Name[ca]=GL text
+Name[cy]=TestunGL
+Name[da]=GLTekst
+Name[de]=Text
+Name[el]=GL Κείμενο
+Name[es]=Texto GL
+Name[et]=GL Tekst
+Name[eu]=GLTestua
+Name[fi]=GLTeksti
+Name[fo]=Tekstur
+Name[fr]=Texte (GL)
+Name[fy]=GLTekst
+Name[gl]=Texto GL
+Name[he]=טקסט מסתובב (GL)
+Name[hi]=जीà¤à¤²-इबारत
+Name[hu]=Szöveges (OpenGL)
+Name[is]=GL-texti
+Name[it]=Testo (GL)
+Name[ja]=GL テキスト
+Name[ka]=წáƒáƒ áƒ¬áƒ”რრ(GL)
+Name[mk]=GL-текÑÑ‚
+Name[mt]=GLTest
+Name[nb]=GL-tekst
+Name[ne]=GL पाठ
+Name[nn]=GL-tekst
+Name[pt]=Texto (GL)
+Name[pt_BR]=Texto GL
+Name[ru]=ÐадпиÑÑŒ (GL)
+Name[sl]=Besedilo GL
+Name[sr]=GL текÑÑ‚
+Name[sr@Latn]=GL tekst
+Name[sv]=GL-text
+Name[ta]=GLஉரை
+Name[tg]=Ðавиштаҷот (GL)
+Name[th]=ข้อความ (GL)
+Name[uk]=ТекÑÑ‚ (GL)
+Name[ven]=GLManwalwa
+Name[vi]=Văn bản GL
+Name[zh_CN]=GL文字
+Name[zh_TW]=文字
+
+[Desktop Action Setup]
+Exec=kxsconfig gltext
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun gltext -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun gltext -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/goop.desktop b/tdescreensaver/kxsconfig/ScreenSavers/goop.desktop
new file mode 100644
index 00000000..417e3ca7
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/goop.desktop
@@ -0,0 +1,217 @@
+[Desktop Entry]
+Exec=goop
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Rapid Motion
+Name=Goop
+Name[bg]=Глупи
+Name[cy]=Llaid
+Name[de]=Kleckse
+Name[et]=Plekk
+Name[fr]=Pétales
+Name[he]=בועות בשמן
+Name[hi]=गूप
+Name[it]=Macchie
+Name[ja]=グープ
+Name[ka]=მედუზები
+Name[lv]=Nekauņa
+Name[mk]=Ðедоветно
+Name[nb]=Guffe
+Name[nds]=Amöben
+Name[ne]=गूप
+Name[ru]=Медузы
+Name[sl]=Gup
+Name[sr]=Гуп
+Name[sr@Latn]=Gup
+Name[sv]=Idiot
+Name[ta]=கோநà¯à®¤à¯
+Name[tg]=Медузаҳо
+Name[uk]=ЕкÑтаз
+Name[zh_CN]=蠕动胶体
+
+[Desktop Action Setup]
+Exec=kxsconfig goop
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun goop -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun goop -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/grav.desktop b/tdescreensaver/kxsconfig/ScreenSavers/grav.desktop
new file mode 100644
index 00000000..f1fbe04d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/grav.desktop
@@ -0,0 +1,249 @@
+[Desktop Entry]
+Exec=grav
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Gadgets & Simulations
+Name=Gravity
+Name[af]=Gravitasie
+Name[bg]=ГравитациÑ
+Name[br]=Dedennerezh
+Name[ca]=Gravetat
+Name[cs]=Gravitace
+Name[cy]=Disgyrchiant
+Name[da]=Tyngdekraft
+Name[de]=Schwerkraft
+Name[el]=ΒαÏÏτητα
+Name[eo]=Gravito
+Name[es]=Gravedad
+Name[et]=Raskusjõud
+Name[eu]=Grabitatea
+Name[fa]=جاذبه
+Name[fi]=Gravitaatio
+Name[fo]=Tyngd
+Name[fr]=Gravité
+Name[fy]=Swiertekrêft
+Name[gl]=Gravidade
+Name[he]=גרביטציה
+Name[hi]=गà¥à¤°à¥à¤¤à¥à¤µ
+Name[hu]=Gravitáció
+Name[is]=Þyngdarafl
+Name[it]=Gravità
+Name[ja]=é‡åŠ›
+Name[ka]=მიზიდულáƒáƒ‘áƒ
+Name[lt]=Trauka
+Name[lv]=GravitÄcija
+Name[mk]=Гравитација
+Name[ms]=Graviti
+Name[mt]=Gravità
+Name[nb]=Gravitation
+Name[nds]=Swoorkraft
+Name[ne]=गà¥à¤°à¥à¤¤à¥à¤µà¤¾à¤•à¤°à¥à¤·à¤£
+Name[nn]=Tyngdekraft
+Name[pl]=Grawitacja
+Name[pt]=Gravidade
+Name[pt_BR]=Gravidade
+Name[ro]=Gravitaţie
+Name[ru]=ГравитациÑ
+Name[sk]=Gravitácia
+Name[sl]=Gravitacija
+Name[sr]=Гравитација
+Name[sr@Latn]=Gravitacija
+Name[sv]=Gravitation
+Name[ta]=பà¯à®µà®¿à®¯à®¿à®°à¯à®ªà¯à®ªà¯
+Name[tg]=Ҷозиба
+Name[th]=à¹à¸£à¸‡à¹‚น้มถ่วง
+Name[tr]=Yerçekimi
+Name[uk]=ГравітаціÑ
+Name[ven]=Fhasi Mavuni
+Name[vi]=Trá»ng trÆ°á»ng
+Name[xh]=Umoya otsala izinto kumbindi womhlaba
+Name[zh_CN]=引力
+Name[zh_TW]=é‡åŠ›
+Name[zu]=Umoya oshaya izinto ekujuleni komhlaba
+
+[Desktop Action Setup]
+Exec=kxsconfig grav
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun grav -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun grav -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/greynetic.desktop b/tdescreensaver/kxsconfig/ScreenSavers/greynetic.desktop
new file mode 100644
index 00000000..fe1bb7dd
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/greynetic.desktop
@@ -0,0 +1,227 @@
+[Desktop Entry]
+Exec=greynetic
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Rapid Motion
+Name=graynetic
+Name[bg]=ÐаÑлагващи Ñе правоъгълници
+Name[ca]=Grisnètic
+Name[cy]=llwydnetig
+Name[de]=Zufällige Rechtecke
+Name[en_GB]=greynetic
+Name[es]=Grisnetico
+Name[et]=Hallimeelsus
+Name[fr]=Mondrian
+Name[he]=×ž×œ×‘× ×™× ×ž× ×•×§×“×™×
+Name[hi]=गà¥à¤°à¥‡à¤¨à¥‡à¤Ÿà¤¿à¤•
+Name[hu]=Graynetic
+Name[it]=Graynetic
+Name[ja]=グレーãƒãƒ†ã‚£ãƒƒã‚¯
+Name[ka]=მáƒáƒ áƒ—კუთხედები
+Name[mk]=Обоени правоаголници
+Name[ms]=graynetik
+Name[nb]=Grånetisk
+Name[nds]=Grieseneetsch
+Name[ne]=गà¥à¤°à¥‡à¤¨à¥‡à¤Ÿà¤¿à¤•
+Name[nn]=Grått
+Name[pl]=Greynetic
+Name[pt]=Cinzento
+Name[pt_BR]=Graynetic
+Name[ro]=Graynetic
+Name[ru]=РаÑплодившиеÑÑ Ð¿Ñ€Ñмоугольники
+Name[sl]=Graynetic
+Name[sr]=Сивотичко
+Name[sr@Latn]=SivotiÄko
+Name[sv]=Gråhet
+Name[ta]=சாமà¯à®ªà®²à¯à®¨à®¿à®±à®®à®¾à®•
+Name[tg]=РоÑткунҷаҳои афзоишшаванда
+Name[uk]=ПрÑмокутники
+Name[zh_CN]=ç°è‰²æƒ…怀
+
+[Desktop Action Setup]
+Exec=kxsconfig greynetic
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun greynetic -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun greynetic -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/halftone.desktop b/tdescreensaver/kxsconfig/ScreenSavers/halftone.desktop
new file mode 100644
index 00000000..13bd1df0
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/halftone.desktop
@@ -0,0 +1,234 @@
+[Desktop Entry]
+Exec=halftone
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Visit to Flatland
+Name=Halftone
+Name[bg]=Полутон
+Name[ca]=Mig To
+Name[cy]=Hannerdôn
+Name[de]=Halbton-Rasterung
+Name[eo]=Duontono
+Name[es]=Semitono
+Name[et]=Pooltoon
+Name[eu]=Erdi-tonua
+Name[fa]=نیم تن
+Name[fr]=Demi-teinte
+Name[fy]=Healtoan
+Name[gl]=Semitono
+Name[he]=חצ××™ גווני×
+Name[hi]=हाफटोन
+Name[hu]=Félárnyékos
+Name[is]=Hálftóna
+Name[it]=Mezzi toni
+Name[ja]=ãƒãƒ¼ãƒ•ãƒˆãƒ¼ãƒ³
+Name[ka]=ნáƒáƒ®áƒ”ვáƒáƒ áƒ¢áƒáƒœáƒ”ბი
+Name[mk]=Полутон
+Name[ms]=Nada Separuh
+Name[nb]=Halvtone
+Name[nds]=Halftoon
+Name[ne]=हालà¥à¤«à¤Ÿà¥‹à¤¨
+Name[nl]=Halftoon
+Name[nn]=Halvtone
+Name[pl]=Półtony
+Name[pt]=Meio tom
+Name[pt_BR]=Meio tom
+Name[ru]=Полутона
+Name[sl]=Polton
+Name[sr]=Полутон
+Name[sr@Latn]=Poluton
+Name[sv]=Halvton
+Name[ta]=அரைமை
+Name[tg]=Ðимпарда
+Name[tr]=Yarıton
+Name[uk]=Півтони
+Name[vi]=Äen trắng
+Name[zh_CN]=网æ¿
+Name[zh_TW]=åŠé€æ˜Ž
+
+[Desktop Action Setup]
+Exec=kxsconfig halftone
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun halftone -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun halftone -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/halo.desktop b/tdescreensaver/kxsconfig/ScreenSavers/halo.desktop
new file mode 100644
index 00000000..0c53eb01
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/halo.desktop
@@ -0,0 +1,214 @@
+[Desktop Entry]
+Exec=halo
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Halo
+Name[cy]=Corongylch
+Name[el]=Άλως
+Name[fa]=هاله
+Name[he]=×ž×¢×’×œ×™× ×¤×¡×™×›×“×œ×™×™×
+Name[hi]=पà¥à¤°à¤­à¤¾à¤®à¤£à¥à¤¡à¤²
+Name[it]=Alone
+Name[ja]=ãƒãƒ­
+Name[ka]=ჰáƒáƒšáƒ
+Name[mk]=Ореол
+Name[ms]=Cahaya Suci
+Name[nb]=Glorie
+Name[nds]=Lichthoff
+Name[ne]=तेजमणà¥à¤¡à¤²
+Name[ro]=Halou
+Name[ru]=СиÑние
+Name[sr]=Хало
+Name[ta]=ஒளிவடà¯à®Ÿà®®à¯
+Name[tg]=Дурахш
+Name[uk]=СÑйво
+Name[vi]=Vầng sáng
+Name[zh_CN]=晕轮
+
+[Desktop Action Setup]
+Exec=kxsconfig halo
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun halo -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun halo -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/helix.desktop b/tdescreensaver/kxsconfig/ScreenSavers/helix.desktop
new file mode 100644
index 00000000..80b5892e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/helix.desktop
@@ -0,0 +1,229 @@
+[Desktop Entry]
+Exec=helix
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Helix
+Name[br]=Helis
+Name[ca]=Hèlice
+Name[cy]=Helics
+Name[el]=Έλικα
+Name[es]=Hélice
+Name[et]=Heeliks
+Name[eu]=Helizea
+Name[fa]=مارپیچ
+Name[fi]=Heliksi
+Name[fr]=Hélice
+Name[fy]=Heliks
+Name[gl]=Hélice
+Name[he]=חוטי×
+Name[hi]=हेलिकà¥à¤¸
+Name[it]=Elica
+Name[ja]=ヘリックス
+Name[ka]=ჰელიქსი
+Name[mk]=ХеликÑ
+Name[ms]=Heliks
+Name[mt]=Eliċi
+Name[nds]=Spiraal
+Name[ne]=हेलिकà¥à¤¸
+Name[pa]=ਹੀਲਿਕਸ
+Name[pt]=Hélice
+Name[ru]=Завиток
+Name[sl]=Heliks
+Name[sr]=ХеликÑ
+Name[sr@Latn]=Heliks
+Name[ta]=பினà¯à®©à®²à¯
+Name[tg]=Каҷак
+Name[th]=เฮลิà¸à¸‹à¹Œ
+Name[uk]=Завиток
+Name[vi]=Cuốn vòng
+Name[xh]=Ejijekile
+Name[zh_CN]=螺旋
+Name[zh_TW]=螺旋
+
+[Desktop Action Setup]
+Exec=kxsconfig helix
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun helix -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun helix -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/hopalong.desktop b/tdescreensaver/kxsconfig/ScreenSavers/hopalong.desktop
new file mode 100644
index 00000000..dbf32f14
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/hopalong.desktop
@@ -0,0 +1,216 @@
+[Desktop Entry]
+Exec=hopalong
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Hopalong
+Name[af]=Huppelkind
+Name[br]=Lammedikaat
+Name[cy]=Sboncio
+Name[et]=Hüppa kaasa
+Name[he]=תחרה
+Name[hi]=हॉपà¤à¤²à¤¾à¤¨à¥à¤—
+Name[hu]=Ugrabugra
+Name[ka]=áƒáƒ¡áƒ™áƒ˜áƒœáƒ™áƒ˜áƒšáƒ
+Name[mk]=Фрактална чипка
+Name[ne]=होपालङ
+Name[nn]=Hoppalong
+Name[ro]=Åžotron
+Name[ru]=Прыжки на одной ноге
+Name[sl]=SkakaÄ
+Name[sr]=Скочи за мном
+Name[sr@Latn]=SkoÄi za mnom
+Name[ta]=நொணà¯à®Ÿà®¿à®•à¯à®•à¯Šà®£à¯à®Ÿà¯
+Name[tg]=Ҷағидан бо Ñк по
+Name[uk]=Стрибки разом
+Name[vi]=Ô lò cò
+Name[xh]=Umgama womaya ngapha kwenqanaba elinye
+Name[zh_CN]=分形花边
+Name[zu]=Gibela nganxanye
+
+[Desktop Action Setup]
+Exec=kxsconfig hopalong
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun hopalong -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun hopalong -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/hyperball.desktop b/tdescreensaver/kxsconfig/ScreenSavers/hyperball.desktop
new file mode 100644
index 00000000..c99130ce
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/hyperball.desktop
@@ -0,0 +1,233 @@
+[Desktop Entry]
+Exec=hyperball
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Illusions of Depth
+Name=Hyperball
+Name[ca]=Hiper-pilota
+Name[cy]=Gorbêl
+Name[el]=ΥπεÏμπάλα
+Name[es]=Hiper-bola
+Name[et]=Hüperpall
+Name[eu]=Hiperpilota
+Name[fa]=گوی بزرگ
+Name[fi]=Hyperpallo
+Name[fo]=Hyperbóltur
+Name[fr]=Hyper boule
+Name[gl]=Hiperbola
+Name[he]=היפר־כדור
+Name[hi]=अति गेंद
+Name[hu]=Hipergömb
+Name[it]=Iperpalla
+Name[ja]=ãƒã‚¤ãƒ‘ーボール
+Name[ka]=ჰიპერსფერáƒ
+Name[mk]=Хипертопка
+Name[ms]=Hiperbola
+Name[mt]=Ipersfera
+Name[nds]=Överball
+Name[ne]=हाईपरबल
+Name[pl]=Hiperkula
+Name[pt]=Hiper-bola
+Name[pt_BR]=Hiperbola
+Name[ro]=Hipersferă
+Name[ru]=Гипершар
+Name[sl]=Hiperžoga
+Name[sr]=Хиперлопта
+Name[sr@Latn]=Hiperlopta
+Name[sv]=Hyperboll
+Name[ta]=அதிபநà¯à®¤à¯
+Name[tg]=Гиперкура
+Name[tr]=Hipertop
+Name[uk]=Гіперм'Ñч
+Name[ven]=Bolakhulwane
+Name[vi]=Bóng Ä‘a chiá»u
+Name[xh]=Ibhola ephezulu
+Name[zh_CN]=超线çƒ
+Name[zu]=Ibhokisi elikhulu kakhulu
+
+[Desktop Action Setup]
+Exec=kxsconfig hyperball
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun hyperball -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun hyperball -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/hypercube.desktop b/tdescreensaver/kxsconfig/ScreenSavers/hypercube.desktop
new file mode 100644
index 00000000..fff07c9b
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/hypercube.desktop
@@ -0,0 +1,245 @@
+[Desktop Entry]
+Exec=hypercube
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Illusions of Depth
+Name=Hypercube
+Name[af]=Hiperkubus
+Name[br]=Gourdiñs
+Name[ca]=Hiper-cub
+Name[cs]=Hyperkrychle
+Name[cy]=Gorgiwb
+Name[da]=Hyperkubus
+Name[de]=Hyperwürfel
+Name[el]=ΥπεÏκÏβος
+Name[eo]=Hiperkubo
+Name[es]=Hipercubo
+Name[et]=Hüperkuup
+Name[eu]=Hiperkuboa
+Name[fa]=مکعب بزرگ
+Name[fi]=Hyperkuutio
+Name[fo]=Hyperterningur
+Name[fy]=Hyperkubus
+Name[gl]=Hipercubo
+Name[he]=היפר־קובייה
+Name[hi]=अति-घन
+Name[hu]=Hiperkocka
+Name[it]=Ipercubo
+Name[ja]=ãƒã‚¤ãƒ‘ーキューブ
+Name[ka]=ჰიპერკუბი
+Name[lt]=Hiperkubas
+Name[lv]=Hiperkubs
+Name[mk]=Хиперкоцка
+Name[ms]=Hiperkiub
+Name[mt]=Iperkubu
+Name[nb]=Hyperkube
+Name[nds]=Överwörpel
+Name[ne]=हाईपरकà¥à¤¯à¥‚ब
+Name[nn]=Hyperkube
+Name[pl]=Hipersześcian
+Name[pt]=Hiper-cubo
+Name[pt_BR]=Hipercubo
+Name[ro]=Hipercub
+Name[ru]=Гиперкуб
+Name[sk]=Hyperkocka
+Name[sl]=Hiperkocka
+Name[sr]=Хиперкоцка
+Name[sr@Latn]=Hiperkocka
+Name[sv]=Hyperkub
+Name[ta]=அதிபடà¯à®Ÿà®•à®®à¯
+Name[tg]=Гиперкуб
+Name[th]=à¸à¸¥à¹ˆà¸­à¸‡à¹„ฮเปอร์
+Name[tr]=Hiperküp
+Name[uk]=Гіперкуб
+Name[vi]=Lập phÆ°Æ¡ng Ä‘a chiá»u
+Name[xh]=Umbhobho ongaphezulu
+Name[zh_CN]=超立方体
+Name[zh_TW]=超立方體
+Name[zu]=Iqhuzu elikhulukazi
+
+[Desktop Action Setup]
+Exec=kxsconfig hypercube
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun hypercube -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun hypercube -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/hypertorus.desktop b/tdescreensaver/kxsconfig/ScreenSavers/hypertorus.desktop
new file mode 100644
index 00000000..863f2fd2
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/hypertorus.desktop
@@ -0,0 +1,229 @@
+[Desktop Entry]
+Exec=hypertorus
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=4D Hypertorus
+Name[ca]=4D Hipertor
+Name[cy]=Gordorws 4D
+Name[de]=Hypertorus (vierdimensional)
+Name[el]=4D ΥπεÏÏ„ÏŒÏος
+Name[eo]=4D Hipertoro
+Name[es]=Hipertoro 4D
+Name[et]=4D hüpersfäär
+Name[eu]=4D Hipertorua
+Name[fr]=Tore 4D
+Name[gl]=Hipertoro 4D
+Name[he]=היפר־קובייה
+Name[hi]=चतà¥à¤°à¥à¤¯à¤¾à¤®à¥€ वलय
+Name[hu]=Hipertórusz 4D
+Name[it]=Ipertoro 4D
+Name[ja]=4D ãƒã‚¤ãƒ‘ートーラス
+Name[ka]=ჰიპერტáƒáƒ áƒ˜
+Name[mk]=4Д-хиперторуÑ
+Name[ms]=Hipertorus 4D
+Name[nds]=4D-Överring
+Name[ne]=चौ-आयामिक हाइपरटरस
+Name[nn]=4D-hypertorus
+Name[pl]=Czterowymiarowy hipertorus
+Name[pt]=Hipertoro 4D
+Name[ro]=Hipertor 4D
+Name[ru]=Гипертор
+Name[sl]=4D hipertorus
+Name[sr]=4Д хиперпрÑтен
+Name[sr@Latn]=4D hiperprsten
+Name[sv]=Hypertorus 4D
+Name[tg]=Гипертор
+Name[tr]=4D Hipertorus
+Name[uk]=Гіпертор 4D
+Name[vi]=Bánh vòng 4 chiá»u
+Name[zh_CN]=4D 超环é¢
+Name[zh_TW]=4D 超立方體
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig hypertorus
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun hypertorus -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun hypertorus -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/hypnowheel.desktop b/tdescreensaver/kxsconfig/ScreenSavers/hypnowheel.desktop
new file mode 100644
index 00000000..fb06233a
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/hypnowheel.desktop
@@ -0,0 +1,25 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=hypnowheel
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Hypnowheel
+
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig hypnowheel
+Name=Setup...
+
+[Desktop Action InWindow]
+Exec=kxsrun hypnowheel -- -window-id %w
+Name=Display in Specified Window
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun hypnowheel -- -root
+Name=Display in Root Window
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/ifs.desktop b/tdescreensaver/kxsconfig/ScreenSavers/ifs.desktop
new file mode 100644
index 00000000..e271c5fd
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/ifs.desktop
@@ -0,0 +1,246 @@
+[Desktop Entry]
+Exec=ifs
+Icon=tdescreensaver
+Type=Application
+
+Action=InWindow;Root;Setup
+X-TDE-Category=Fractals
+Name=Iterated-function-system Images
+Name[af]=Iterasie-funksie-sisteem Beelde
+Name[br]=Skeudennoù arch'weloù-reizhiad-arredet
+Name[ca]=Imatges de sistemes de funcions iterades
+Name[cs]=IFS obrázky
+Name[cy]=Delweddau Cysawd-ffwythiant-adrifo
+Name[da]='Itereret funktionssystem'-billeder
+Name[de]=IFS
+Name[el]=Εικόνες συστήματος-επαναλαμβανόμενης-λειτουÏγίας
+Name[eo]=Bildoj de ripetitaj sistemfunkcioj
+Name[es]=Imágenes de sistemas de funciones iteradas
+Name[et]=Iteratiiv-funktsiooni-süsteemi kujutised
+Name[eu]=Funtzio-sistema iteratuen irudiak
+Name[fa]=تصاویر عملکرد تکراری سیستم
+Name[fi]=Iteroidut funktiosysteemikuvat
+Name[fr]=Images de fonctions itératives du système
+Name[fy]=Werhel-funksje systeem ôfbylden
+Name[ga]=Ãomhánna Iterated-function-system
+Name[gl]=Imaxes de sistemas de funcións iteradas
+Name[he]=מערכת פונקציות ×יטרטיבית
+Name[hi]=तंतà¥à¤° छवि शà¥à¤°à¥ƒà¤‚खला
+Name[hu]=Iterált függvények képei
+Name[it]=Immagini IFS
+Name[ja]=å復関数システム画åƒ
+Name[ka]=ფრáƒáƒ¥áƒ¢áƒáƒšáƒ£áƒ áƒ˜ ნáƒáƒ®áƒáƒ¢áƒ”ბი
+Name[lt]=Iterated-function-system paveikslai
+Name[lv]=AtkÄrtoto-funkciju-sistÄ“mas AttÄ“li
+Name[ms]=Imej Sistem Fungsi Terlelar
+Name[mt]=Disinni Iterated-function-system
+Name[nb]=Bilder av iterert funksjonssystem
+Name[nds]=IFS-Biller
+Name[ne]=दोहोरिà¤à¤•à¥‹-पà¥à¤°à¤•à¤¾à¤°à¥à¤¯-पà¥à¤°à¤£à¤¾à¤²à¥€ छवि
+Name[nl]=Herhaal-functie systeem afbeeldingen
+Name[nn]=Iterertfunksjonsystem-bilete
+Name[pl]=Obrazki z Systemu Odwzorowań Zwężających
+Name[pt]=Imagens IFS
+Name[pt_BR]=Imagens de sistema iterativo de funções
+Name[ro]=Imagini sistem de funcţii iterate
+Name[ru]=ПлÑÑки фракталов
+Name[sk]=Opakovanie-funkcia-systém obrázky
+Name[sl]=Slike, narejene s sistemom iteracije funkcij
+Name[sr]=Слике ÑиÑтема итерационих фукција
+Name[sr@Latn]=Slike sistema iteracionih fukcija
+Name[sv]=Bilder av itererade funktionssystem
+Name[ta]=திரà¯à®®à¯à®ª செயà¯à®¯à®ªà¯à®ªà®Ÿà¯à®Ÿ-செயலà¯à®ªà®¾à®Ÿà¯-தள வடிவஙà¯à®•à®³à¯
+Name[tg]=РақÑи фракталҳо
+Name[tr]=Yinelenen Fonksiyon Sistemi Görüntüleri
+Name[uk]=Танці фракталів
+Name[ven]=Zwifanyiso zwa Mashumisele a itharethede
+Name[vi]=Hình của hệ hàm quy nạp
+Name[xh]=Iphindiwe-umsebenzi-Imifanekiso esetyenziswayo
+Name[zh_CN]=迭代函数系统图形
+Name[zh_TW]=迭代函數系統圖形
+Name[zu]=Iphindiwe-umsebenzi-Imifanekiso esisetshenziswayo
+
+[Desktop Action Setup]
+Exec=kxsconfig ifs
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun ifs -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun ifs -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/imsmap.desktop b/tdescreensaver/kxsconfig/ScreenSavers/imsmap.desktop
new file mode 100644
index 00000000..bd0d3dc9
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/imsmap.desktop
@@ -0,0 +1,251 @@
+[Desktop Entry]
+Exec=imsmap
+Icon=tdescreensaver
+Type=Application
+
+Action=InWindow;Root;Setup
+X-TDE-Category=Fractals
+Name=Fractal Maps
+Name[af]=Fraktale Kaarte
+Name[bg]=Фрактални карти
+Name[br]=Kartennoù fraktal
+Name[bs]=Fraktalne mape
+Name[ca]=Mapes fractals
+Name[cs]=Fraktální mapy
+Name[cy]=Mapiau Ffractaidd
+Name[da]=Fraktalgenerator
+Name[de]=Fraktalkarten
+Name[el]=ΧάÏτες fractal
+Name[eo]=Fraktalmapoj
+Name[es]=Mapas fractales
+Name[et]=Fraktaalkaardid
+Name[eu]=Mapa fraktalak
+Name[fa]=نگاشتهای Ùراکتال
+Name[fi]=Fraktaalikartat
+Name[fo]=Fraktalir
+Name[fr]=Cartes fractales
+Name[fy]=Fractal-kaarten
+Name[ga]=Mapaí Frachtail
+Name[gl]=Mapas fractais
+Name[he]=מפות פרקטלי×
+Name[hi]=फà¥à¤°à¤¼à¥ˆà¤•à¥à¤Ÿà¤² नकà¥à¤¶à¥‡
+Name[hu]=Fraktáltérképek
+Name[is]=Fractal kort
+Name[it]=Mappe frattali
+Name[ja]=フラクタルマップ
+Name[ka]=ფრáƒáƒ¥áƒ¢áƒáƒšáƒ£áƒ áƒ˜ რუკები
+Name[lt]=Fraktalo kompozicijos
+Name[lv]=FraktÄlÄs Kartes
+Name[mk]=Фрактални мапи
+Name[ms]=Peta Fraktal
+Name[mt]=Mapep Frattali
+Name[nb]=Fraktalkart
+Name[nds]=IMS-Koort
+Name[ne]=आंशिक मानचितà¥à¤°
+Name[nl]=Fractal kaarten
+Name[nn]=Fraktalkart
+Name[pl]=Mapy fraktalne
+Name[pt]=Mapas Fractais
+Name[pt_BR]=Mapas fractais
+Name[ro]=Hărţi de fractali
+Name[ru]=Карты фракталов
+Name[sk]=Generátor fraktálov
+Name[sl]=Fraktalni zemljevidi
+Name[sr]=Фракталне мапе
+Name[sr@Latn]=Fraktalne mape
+Name[sv]=Fraktalkartor
+Name[tg]=Қартаи фракталҳо
+Name[th]=à¹à¸œà¸™à¸—ี่à¹à¸Ÿà¸£à¸„ทัล
+Name[tr]=Fraktal Haritalar
+Name[uk]=Карти фракталів
+Name[ven]=Tsumbamashango isi ya vhudi
+Name[vi]=Bản đồ Phân dạng
+Name[xh]=Iimaphu Ezahlukaneyo
+Name[zh_CN]=分形地图
+Name[zh_TW]=碎形圖
+Name[zu]=Amamephu a Fractal
+
+[Desktop Action Setup]
+Exec=kxsconfig imsmap
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun imsmap -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun imsmap -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/interaggregate.desktop b/tdescreensaver/kxsconfig/ScreenSavers/interaggregate.desktop
new file mode 100644
index 00000000..030d14aa
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/interaggregate.desktop
@@ -0,0 +1,220 @@
+[Desktop Entry]
+Exec=interaggregate
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Interaggregate
+Name[bg]=Скреж
+Name[ca]=Inter-agregat
+Name[eo]=Interagregato
+Name[es]=Interagregado
+Name[fa]=اختلال
+Name[fr]=Inter-agrégation
+Name[fy]=Beweegjende sirkels
+Name[gl]=Interagregado
+Name[hu]=Interaggregát
+Name[is]=Samanlagt
+Name[it]=Interaggregati
+Name[ja]=インターアグリゲート
+Name[ka]=ინტერáƒáƒ’რეგáƒáƒªáƒ˜áƒ
+Name[mk]=Интерагрегат
+Name[nds]=Aggregaat
+Name[ne]=अनà¥à¤¤à¤°à¤¸à¤®à¥‚ह
+Name[nl]=Bewegende cirkels
+Name[pt]=Inter-agregação
+Name[pt_BR]=Interação
+Name[ru]=ПереÑечениÑ
+Name[sl]=Interagregacija
+Name[sr]=ИÑпитивање
+Name[sr@Latn]=Ispitivanje
+Name[sv]=Sammanhopning
+Name[tr]=Çakıllar Arasında
+Name[uk]=МіжагрегаціÑ
+Name[vi]=Kết dính
+
+X-TDE-Category=Gadgets & Simulations
+
+[Desktop Action Setup]
+Exec=kxsconfig interaggregate
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun interaggregate -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun interaggregate -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/interference.desktop b/tdescreensaver/kxsconfig/ScreenSavers/interference.desktop
new file mode 100644
index 00000000..d9cfef0e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/interference.desktop
@@ -0,0 +1,249 @@
+[Desktop Entry]
+Exec=interference
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Visit to Flatland
+Name=Interference
+Name[af]=Interverensie
+Name[bg]=ИнтерференциÑ
+Name[br]=Diarbennadur
+Name[ca]=Interferència
+Name[cs]=Průnik
+Name[cy]=Ymyrraeth
+Name[da]=Interferens
+Name[de]=Interferenz
+Name[el]=ΠαÏεμβολή
+Name[eo]=Interfero
+Name[es]=Interferencia
+Name[et]=Kokkupõrge
+Name[eu]=Interferentzia
+Name[fa]=اختلال
+Name[fi]=Interferenssi
+Name[fr]=Interférence
+Name[fy]=Fersteuring
+Name[gl]=Interferéncia
+Name[he]=הפרעות
+Name[hi]=दख़लनà¥à¤¦à¤¾à¤œà¤¼à¥€
+Name[hu]=Interferencia
+Name[is]=Truflanir
+Name[it]=Interferenza
+Name[ja]=インターフェレンス
+Name[ka]=გáƒáƒ“áƒáƒ¤áƒáƒ áƒ•áƒ
+Name[lt]=Interferencija
+Name[mk]=Интерференција
+Name[ms]=Gangguan
+Name[mt]=Interferenza
+Name[nb]=Forstyrrelser
+Name[nds]=Interferenz
+Name[ne]=हसà¥à¤¤à¤•à¥à¤·à¥‡à¤ª
+Name[nl]=Verstoring
+Name[nn]=Interferens
+Name[pl]=Interferencja
+Name[pt]=Interferência
+Name[pt_BR]=Interferência
+Name[ro]=Interferenţă
+Name[ru]=ИнтерференциÑ
+Name[sk]=Interferencie
+Name[sl]=Interferenca
+Name[sr]=Интерференција
+Name[sr@Latn]=Interferencija
+Name[sv]=Störning
+Name[ta]=தலையீடலà¯
+Name[tg]=ИнтерференциÑ
+Name[th]=ความยุ่งเหยิง
+Name[tr]=Müdahale
+Name[uk]=ІнтерференціÑ
+Name[ven]=U dzhena hanwani
+Name[vi]=Giao thoa
+Name[xh]=Isiphazamiso
+Name[zh_CN]=干涉
+Name[zh_TW]=干涉
+Name[zu]=Isiphazamiso
+
+[Desktop Action Setup]
+Exec=kxsconfig interference
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun interference -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun interference -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/intermomentary.desktop b/tdescreensaver/kxsconfig/ScreenSavers/intermomentary.desktop
new file mode 100644
index 00000000..200919b1
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/intermomentary.desktop
@@ -0,0 +1,217 @@
+[Desktop Entry]
+Exec=intermomentary
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Intermomentary
+Name[ca]=Intermomentani
+Name[de]=Zwischenaugenblicklich
+Name[el]=Ανάμεσα στις στιγμές
+Name[eo]=Intermomenta
+Name[es]=Intermomentáneo
+Name[eu]=Momentuartekoa
+Name[fa]=میان لحظه‌ای
+Name[fr]=Inter-momentané
+Name[ja]=インターモーメンタリ
+Name[ka]=მáƒáƒ™áƒšáƒ”ვáƒáƒ“იáƒáƒœáƒ˜ კáƒáƒ•áƒ¨áƒ˜áƒ áƒ”ბი
+Name[mk]=Во меѓувреме
+Name[ms]=Antara Detik
+Name[nds]=Twischenmomang
+Name[ne]=समà¥à¤à¤¨à¤¾à¤¯à¥à¤•à¥à¤¤
+Name[pt]=Inter-momentâneo
+Name[ru]=Кратковременные ÑвÑзи
+Name[sl]=Intermomentarnost
+Name[sr]=Међутренутачни
+Name[sr@Latn]=MeÄ‘utrenutaÄni
+Name[sv]=Intermomentant
+Name[ta]=தலையீடலà¯
+Name[tr]=Anlık
+Name[uk]=ТимчаÑові зв'Ñзки
+Name[vi]=Xoay vòng
+
+X-TDE-Category=Gadgets & Simulations
+
+[Desktop Action Setup]
+Exec=kxsconfig intermomentary
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun intermomentary -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun intermomentary -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/jigglypuff.desktop b/tdescreensaver/kxsconfig/ScreenSavers/jigglypuff.desktop
new file mode 100644
index 00000000..86d585b1
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/jigglypuff.desktop
@@ -0,0 +1,215 @@
+[Desktop Entry]
+Exec=jigglypuff
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=JigglyPuff
+Name[ca]=Vent Ondulat
+Name[cy]=PwffJiglo
+Name[de]=Wackelnde Windbeutel
+Name[eu]=Pilota jauzkaria
+Name[fr]=Boule bouillonnante
+Name[he]=להטוטן
+Name[hi]=घूम फà¥à¤—à¥à¤—ा
+Name[hu]=Piff-puff
+Name[is]=Jigglí púff
+Name[ja]=ジャグルパフ
+Name[ka]=ნიáƒáƒ•áƒ˜
+Name[mk]=Треперлив балон
+Name[nds]=Püüsterbüdel
+Name[ne]=जिगà¥à¤²à¥€à¤ªà¤«
+Name[ru]=Пуфик
+Name[sl]=SkakajoÄ izdih
+Name[sr]=Ðиги пуфна
+Name[sr@Latn]=Džigi pufna
+Name[sv]=Vinglig puff
+Name[tg]=Пуфикҳо
+Name[uk]=Пуфик
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig jigglypuff
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun jigglypuff -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun jigglypuff -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/jigsaw.desktop b/tdescreensaver/kxsconfig/ScreenSavers/jigsaw.desktop
new file mode 100644
index 00000000..eddd213e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/jigsaw.desktop
@@ -0,0 +1,235 @@
+[Desktop Entry]
+Exec=jigsaw
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=Jigsaw
+Name[bg]=Пъзел
+Name[ca]=Trencaclosques
+Name[cy]=Jig-sô
+Name[da]=Puslespil
+Name[de]=Puzzle
+Name[es]=Rompecabezas
+Name[et]=Pusle
+Name[eu]=Puzzlea
+Name[fa]=پازل
+Name[fi]=Palapeli
+Name[fo]=Puslispæl
+Name[fr]=Puzzle
+Name[fy]=Puzel
+Name[gl]=Crebacabezas
+Name[he]=פ×זל
+Name[hi]=चौखट-आरी
+Name[hu]=Puzzle
+Name[is]=Púsluspil
+Name[it]=Mosaico
+Name[ja]=ジグゾー
+Name[ka]=მáƒáƒ–áƒáƒ˜áƒ™áƒ
+Name[mk]=Сложувалка
+Name[nb]=Puslespill
+Name[nds]=Loofsaag
+Name[ne]=जिगस
+Name[nl]=Puzzel
+Name[nn]=Puslespel
+Name[pl]=Układanka
+Name[ru]=Паззл
+Name[sl]=Sestavljanka
+Name[sr]=Загонетка
+Name[sr@Latn]=Zagonetka
+Name[sv]=Pussel
+Name[ta]=கà¯à®´à®ªà¯à®ª
+Name[tg]=Кошинкорӣ
+Name[th]=จิ๊à¸à¸‹à¸­à¸§à¹Œ
+Name[uk]=Мозаїка
+Name[vi]=Răng cưa
+Name[xh]=Isarha
+Name[zh_CN]=拼图
+Name[zh_TW]=拼圖
+
+[Desktop Action Setup]
+Exec=kxsconfig jigsaw
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun jigsaw -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun jigsaw -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/juggle.desktop b/tdescreensaver/kxsconfig/ScreenSavers/juggle.desktop
new file mode 100644
index 00000000..d77e3f1e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/juggle.desktop
@@ -0,0 +1,233 @@
+[Desktop Entry]
+Exec=juggle
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Miscellaneous
+Name=Juggle
+Name[bg]=Жонгльор
+Name[ca]=Joc de mans
+Name[cs]=Žonglování
+Name[cy]=Jyglo
+Name[da]=Kunster
+Name[de]=Jonglieren
+Name[el]=ΤαχυδακτυλουÏγία
+Name[es]=Juegos de manos
+Name[et]=Žonglöör
+Name[eu]=Esku jokoa
+Name[fa]=تردستی
+Name[fr]=Jonglage
+Name[fy]=Jonglearje
+Name[gl]=Xogos de mans
+Name[he]=להטוטן
+Name[hi]=बाज़ीगरी
+Name[it]=Giochi di prestigio
+Name[ja]=ジャグル
+Name[ka]=ჟáƒáƒœáƒ’ლირებáƒ
+Name[mk]=Жонглирање
+Name[nb]=Sjonglere
+Name[nds]=Jongleren
+Name[ne]=जà¥à¤—à¥à¤—ल
+Name[nl]=Jongleren
+Name[nn]=Sjonglering
+Name[pl]=Żonglerka
+Name[pt_BR]=Malabarista
+Name[ro]=Jonglerii
+Name[ru]=ÐариÑованный жонглёр
+Name[sl]=Žongler
+Name[sr]=Жонглирање
+Name[sr@Latn]=Žongliranje
+Name[sv]=Jonglera
+Name[ta]=மாறà¯à®±à®¿
+Name[tg]=Жонглёрӣ кардан
+Name[uk]=ЖонглюваннÑ
+Name[vi]=Tung hứng
+Name[xh]=Jula ubambe emoyeni
+Name[zh_CN]=æ‚è€
+Name[zh_TW]=戲法
+
+[Desktop Action Setup]
+Exec=kxsconfig juggle
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun juggle -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun juggle -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/juggler3d.desktop b/tdescreensaver/kxsconfig/ScreenSavers/juggler3d.desktop
new file mode 100644
index 00000000..d304c883
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/juggler3d.desktop
@@ -0,0 +1,223 @@
+[Desktop Entry]
+Exec=juggler3d
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Juggler3D
+Name[ca]=Joc de mans 3D
+Name[cs]=Žonglování 3D
+Name[de]=Jonglieren 3D
+Name[eo]=Ä´onglisto3D
+Name[es]=Juglar3D
+Name[et]=Žonglöör 3D
+Name[fr]=Jonglage 3D
+Name[fy]=3D Jonglearje
+Name[gl]=Xogos de mans 3D
+Name[he]= להטוטן תלת־מימדי
+Name[hu]=Zsonglőr 3D
+Name[it]=Giochi di prestigio 3D
+Name[ja]=ジャグラー 3D
+Name[ka]=3D ჟáƒáƒœáƒ’ლიáƒáƒ áƒ˜
+Name[mk]=Жонглер3Д
+Name[nb]=Sjonglere3D
+Name[nds]=Jongleren 3D
+Name[ne]=जà¥à¤—à¥à¤²à¤° तà¥à¤°à¤¿-आयामिक
+Name[nl]=3D Jongleren
+Name[nn]=Sjonglere3D
+Name[pt_BR]=Malabarista 3D
+Name[ru]=Жонглёр
+Name[sl]=Žongler 3D
+Name[sr]=Жонглирање 3Д
+Name[sr@Latn]=Žongliranje 3D
+Name[sv]=Jonglera 3D
+Name[uk]=ЖонглюваннÑ3D
+Name[vi]=Tung hứng 3 chiá»u
+Name[zh_TW]=戲法3D
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig juggler3d
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun juggler3d -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun juggler3d -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/julia.desktop b/tdescreensaver/kxsconfig/ScreenSavers/julia.desktop
new file mode 100644
index 00000000..01867d22
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/julia.desktop
@@ -0,0 +1,211 @@
+[Desktop Entry]
+Exec=julia
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Julia
+Name[bg]=ЮлиÑ
+Name[he]=ג'וליה
+Name[hi]=जूलिया
+Name[is]=Júlía
+Name[ja]=ジュリア
+Name[ka]=ჯულიáƒ
+Name[lv]=Džūlija
+Name[mk]=Јулија
+Name[ne]=जà¥à¤²à¤¿à¤¯à¤¾
+Name[pt]=Júlia
+Name[ru]=ДжулиÑ
+Name[sr]=Јулија
+Name[sr@Latn]=Julija
+Name[ta]= ஜூலியா
+Name[tg]=ДжулиÑ
+Name[th]=จูเลีย
+Name[uk]=ЮліÑ
+Name[zh_CN]=Julia 集
+
+[Desktop Action Setup]
+Exec=kxsconfig julia
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun julia -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun julia -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/kaleidescope.desktop b/tdescreensaver/kxsconfig/ScreenSavers/kaleidescope.desktop
new file mode 100644
index 00000000..f87f4e54
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/kaleidescope.desktop
@@ -0,0 +1,247 @@
+[Desktop Entry]
+Exec=kaleidescope
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Rapid Motion
+Name=Kaleidescope
+Name[af]=Kaleidoskoop
+Name[bg]=КалейдоÑкоп
+Name[br]=Kaerigellerez
+Name[bs]=Kaleidoskop
+Name[ca]=Calidoscopi
+Name[cs]=Kaleidoskop
+Name[cy]=Kaleidesgôp
+Name[da]=Kalejdoskop
+Name[de]=Kaleidoskop
+Name[el]=Καλειδοσκόπιο
+Name[eo]=Kalejdoskopo
+Name[es]=Caleidoscopio
+Name[et]=Kaleidoskoop
+Name[eu]=Kaleideskopioa
+Name[fi]=Kaleidoskooppi
+Name[fr]=Kaléidoscope
+Name[fy]=Kaleidoskoop
+Name[gl]=Caleidoscópio
+Name[he]=קליידסקופ
+Name[hi]=रंग बिरंगा
+Name[hu]=Kaleidoszkóp
+Name[is]=Kviksjá
+Name[it]=Caleidoscopio
+Name[ja]=カレイドスコープ
+Name[ka]=კáƒáƒšáƒ”იდáƒáƒ¡áƒ™áƒáƒžáƒ˜
+Name[lt]=Kaleidoskopas
+Name[lv]=Kaleidoskops
+Name[mk]=КалеидоÑкоп
+Name[ms]=Kaleideskope
+Name[mt]=Kalejdeskopju
+Name[nb]=Kaleidoskop
+Name[nds]=Dreihnett
+Name[ne]=कलेइडेसà¥à¤•à¥‹à¤ª
+Name[nl]=Caleidoscoop
+Name[nn]=Kaleidoskop
+Name[pl]=Kalejdoskop
+Name[pt]=Caleidoscópio
+Name[pt_BR]=Caleidoscópio
+Name[ru]=КалейдоÑкоп
+Name[sk]=Kaleidoskop
+Name[sl]=Kalejdoskop
+Name[sr]=КалеидоÑкоп
+Name[sr@Latn]=Kaleidoskop
+Name[sv]=Kaleidoskop
+Name[ta]=வணà¯à®£à®¨à¯‹à®•à¯à®•à®¿
+Name[tg]=КалейдоÑкоп
+Name[th]=ภาพลานตา
+Name[tr]=Çiçek Dürbünü
+Name[uk]=КалейдоÑкоп
+Name[vi]=Kính vạn hoa
+Name[xh]=Umboniso ongatshintshiyo
+Name[zh_CN]=万花筒
+Name[zh_TW]=è¬èŠ±ç­’
+Name[zu]=Umboniso ongashintshiyo
+
+[Desktop Action Setup]
+Exec=kxsconfig kaleidescope
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun kaleidescope -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun kaleidescope -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/klein.desktop b/tdescreensaver/kxsconfig/ScreenSavers/klein.desktop
new file mode 100644
index 00000000..1f5abd95
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/klein.desktop
@@ -0,0 +1,209 @@
+[Desktop Entry]
+Exec=klein
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=Klein
+Name[de]=Kleinsche Flasche
+Name[fy]=Lyts
+Name[hi]=के-लीन
+Name[hu]=Kicsike
+Name[ja]=クラン
+Name[ka]=კლáƒáƒ˜áƒœáƒ˜áƒ¡ ზედáƒáƒžáƒ˜áƒ áƒ˜
+Name[mk]=Клајн
+Name[nds]=Klein sien Buddel
+Name[ne]=कà¥à¤²à¥‡à¤‡à¤¨
+Name[ru]=ПоверхноÑти Клейна
+Name[sr]=Клајн
+Name[sr@Latn]=Klajn
+Name[ta]=கà¯à®³à¯ˆà®£à¯
+Name[tg]=Сатҳи Клейн
+Name[uk]=КлÑйн
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig klein
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun klein -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun klein -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/kumppa.desktop b/tdescreensaver/kxsconfig/ScreenSavers/kumppa.desktop
new file mode 100644
index 00000000..8094bad9
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/kumppa.desktop
@@ -0,0 +1,206 @@
+[Desktop Entry]
+Exec=kumppa
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Kumppa
+Name[eo]=Kumpo
+Name[he]=×¦×‘×¢×™× ×ž×”×™×¨×™×
+Name[hi]=कà¥à¤®à¥à¤ªà¤¾
+Name[ka]=კუმპáƒ
+Name[mk]=Кумпа
+Name[ne]=कà¥à¤®à¥à¤ªà¤¾
+Name[ru]=Кумпа
+Name[sr]=Кумпа
+Name[sr@Latn]=Kumpa
+Name[ta]=கமà¯à®ªà¯à®ªà®¾
+Name[tg]=Кумпа
+Name[uk]=Кумпа
+Name[zh_CN]=旋转俯冲
+
+[Desktop Action Setup]
+Exec=kxsconfig kumppa
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun kumppa -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun kumppa -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/lament.desktop b/tdescreensaver/kxsconfig/ScreenSavers/lament.desktop
new file mode 100644
index 00000000..70963aa2
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/lament.desktop
@@ -0,0 +1,231 @@
+[Desktop Entry]
+Exec=lament
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Lament (GL)
+Name[af]=Lament (Gl)
+Name[br]=Hirvoud (GL)
+Name[cy]=Galarnad (GL)
+Name[de]=Lament
+Name[eo]=Lamento (graf. bibl.)
+Name[es]=Lamento (GL)
+Name[et]=Nutulaul (GL)
+Name[eu]=Aienea (GL)
+Name[fa]=مرثیه (GL)
+Name[fi]=Valitus (GL)
+Name[fr]=Complainte (GL)
+Name[gl]=Laio (GL)
+Name[he]=תיבת למרשנד (GL)
+Name[hi]=लेमेनà¥à¤Ÿ (जीà¤à¤²)
+Name[it]=Lamento (GL)
+Name[ja]=ラメント (GL)
+Name[ka]=ძველი კუბი (GL)
+Name[lt]=Verksmas (GL)
+Name[lv]=Elēģija (GL)
+Name[mk]=Лемаршан (GL)
+Name[nb]=Klage (GL)
+Name[ne]=लामेनà¥à¤Ÿ (GL)
+Name[pt]=Lamento (GL)
+Name[pt_BR]=Lamento (GL)
+Name[ru]=Древний куб (GL)
+Name[sr]=Ламент (GL)
+Name[sv]=Bedrövlig (GL)
+Name[ta]=பà¯à®²à®®à¯à®ªà®²à¯(GL)
+Name[tg]=Куби қадима (GL)
+Name[th]=น่าเศร้าใจ (GL)
+Name[tr]=Matem (GL)
+Name[uk]=Лемент (GL)
+Name[vi]=Rên rỉ (GL)
+Name[xh]=Isibonakaliso Sokukhala (GL)
+Name[zh_CN]=悲伤(GL)
+Name[zh_TW]=悲傷 (GL)
+Name[zu]=Isibonakaliso sokukhala (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig lament
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun lament -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun lament -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/laser.desktop b/tdescreensaver/kxsconfig/ScreenSavers/laser.desktop
new file mode 100644
index 00000000..539471f3
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/laser.desktop
@@ -0,0 +1,226 @@
+[Desktop Entry]
+Exec=laser
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Rapid Motion
+Name=Laser
+Name[bg]=Лазер
+Name[br]=Bann-gouloù
+Name[ca]=Làser
+Name[el]=ΛέιζεÏ
+Name[eo]=Lazero
+Name[es]=Láser
+Name[eu]=Laserra
+Name[fa]=لیزر
+Name[fi]=Laseri
+Name[gl]=Láser
+Name[he]=קרני לייזר
+Name[hi]=लेज़र
+Name[hu]=Lézer
+Name[ja]=レーザー
+Name[ka]=ლáƒáƒ–ერი
+Name[lt]=Lazeris
+Name[lv]=LÄzers
+Name[mk]=ЛаÑер
+Name[mt]=Lażer
+Name[ne]=लेजर
+Name[ru]=Лазер
+Name[sr]=ЛаÑер
+Name[ta]=லேசரà¯
+Name[tg]=Лазер
+Name[th]=เลเซอร์
+Name[tr]=Lazer
+Name[uk]=Лазер
+Name[uz]=Lazer
+Name[uz@cyrillic]=Лазер
+Name[ven]=leizara
+Name[xh]=Icebo eliphethe umtha wokukhanya omninwa
+Name[zh_CN]=激光
+Name[zh_TW]=é›·å°„
+
+[Desktop Action Setup]
+Exec=kxsconfig laser
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun laser -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun laser -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/lavalite.desktop b/tdescreensaver/kxsconfig/ScreenSavers/lavalite.desktop
new file mode 100644
index 00000000..ee7a29d2
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/lavalite.desktop
@@ -0,0 +1,218 @@
+[Desktop Entry]
+Exec=lavalite
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=LavaLite
+Name[cy]=GolauLafa
+Name[de]=Lavalampe
+Name[eu]=Laba
+Name[fr]=Lave
+Name[he]=מנורת לבה
+Name[hi]=लावा-लौ
+Name[ja]=ラヴァライト
+Name[ka]=ლáƒáƒ•áƒ
+Name[mk]=Лава-Ñветилка
+Name[nb]=Lavalite
+Name[nds]=Lavalamp
+Name[ne]=लेभालाइट
+Name[nn]=Lettlava
+Name[ru]=Лава
+Name[sl]=Lahka lava
+Name[sr]=Лава Ñветло
+Name[sr@Latn]=Lava svetlo
+Name[sv]=Lavalite
+Name[ta]=லாவாவிளகà¯à®•à¯
+Name[tg]=Гудоза
+Name[th]=ลาวา
+Name[uk]=Лава-Ñвітло
+Name[vi]=Nham thạch Nhẹ
+Name[zh_CN]=å°åž‹ç†”岩
+
+[Desktop Action Setup]
+Exec=kxsconfig lavalite
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun lavalite -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun lavalite -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/lcdscrub.desktop b/tdescreensaver/kxsconfig/ScreenSavers/lcdscrub.desktop
new file mode 100644
index 00000000..0ecbf629
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/lcdscrub.desktop
@@ -0,0 +1,23 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=lcdscrub
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=LCDscrub
+
+
+[Desktop Action Setup]
+Exec=kxsconfig lcdscrub
+Name=Setup...
+
+[Desktop Action InWindow]
+Exec=kxsrun lcdscrub -- -window-id %w
+Name=Display in Specified Window
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun lcdscrub -- -root
+Name=Display in Root Window
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/lightning.desktop b/tdescreensaver/kxsconfig/ScreenSavers/lightning.desktop
new file mode 100644
index 00000000..d3fc2ef6
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/lightning.desktop
@@ -0,0 +1,250 @@
+[Desktop Entry]
+Exec=lightning
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Lightning
+Name[af]=Weerlig
+Name[br]=Luc'hed
+Name[ca]=Llamp
+Name[cs]=Blesky
+Name[cy]=Mellt
+Name[da]=Lyn
+Name[de]=Blitz
+Name[el]=ΑστÏαπή
+Name[eo]=Lumaĵo
+Name[es]=Rayo
+Name[et]=Välk
+Name[eu]=Tximista
+Name[fa]=آذرخش
+Name[fi]=Salamat
+Name[fo]=Snarljós
+Name[fr]=Éclairs
+Name[gl]=Raio
+Name[he]=ברקי×
+Name[hi]=बिज़ली
+Name[hu]=Villám
+Name[is]=Eldingar
+Name[it]=Lampo
+Name[ja]=稲光
+Name[ka]=ელვáƒ
+Name[lt]=Žaibas
+Name[lv]=IedegÅ¡anÄs
+Name[mk]=Молња
+Name[ms]=Kilat
+Name[mt]=Beraq
+Name[nb]=Lyn
+Name[nds]=Blix
+Name[ne]=बिदà¥à¤¯à¥à¤¤
+Name[nn]=Lyn
+Name[nso]=Legadima
+Name[pl]=BÅ‚yskawica
+Name[pt]=Relâmpago
+Name[pt_BR]=Relâmpago
+Name[ro]=Fulger
+Name[ru]=МолниÑ
+Name[sk]=Svetelný
+Name[sl]=Bliski
+Name[sr]=Муња
+Name[sr@Latn]=Munja
+Name[sv]=Blixten
+Name[ta]=மினà¯à®©à®²à¯
+Name[tg]=Оташак
+Name[th]=ฟ้าà¹à¸¥à¸š
+Name[tr]=ÅžimÅŸek
+Name[uk]=БлиÑкавка
+Name[uz]=Chaqmoq
+Name[uz@cyrillic]=Чақмоқ
+Name[ven]=Lupenyo
+Name[vi]=Tia chá»›p
+Name[xh]=Umbane
+Name[zh_CN]=闪电
+Name[zh_TW]=閃電
+Name[zu]=Umbani
+
+[Desktop Action Setup]
+Exec=kxsconfig lightning
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun lightning -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun lightning -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/lisa.desktop b/tdescreensaver/kxsconfig/ScreenSavers/lisa.desktop
new file mode 100644
index 00000000..06be1eac
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/lisa.desktop
@@ -0,0 +1,210 @@
+[Desktop Entry]
+Exec=lisa
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Lisa
+Name[el]=Λίσα
+Name[et]=Lissa
+Name[he]=לול×ות
+Name[hi]=लिसा
+Name[is]=Lísa
+Name[ka]=ლისáƒáƒŸáƒ£áƒ¡ მრუდები
+Name[mk]=Лиза
+Name[ne]=लिसा
+Name[ru]=ЛиÑÑажу
+Name[sr]=ЛиÑа
+Name[ta]=லீசா
+Name[tg]=ЛиÑÑажу
+Name[th]=ลิซา
+Name[uk]=ЛіÑажу
+Name[uz]=Liza
+Name[uz@cyrillic]=Лиза
+Name[zh_CN]=ä¸çº¿åœˆ
+
+[Desktop Action Setup]
+Exec=kxsconfig lisa
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun lisa -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun lisa -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/lissie.desktop b/tdescreensaver/kxsconfig/ScreenSavers/lissie.desktop
new file mode 100644
index 00000000..490964bf
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/lissie.desktop
@@ -0,0 +1,216 @@
+[Desktop Entry]
+Exec=lissie
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Visit to Flatland
+Name=Lissie
+Name[eo]=Cirklulin'
+Name[eu]=Lissajous
+Name[fi]=Putki
+Name[fr]=Lissajous
+Name[he]=טבעות
+Name[hi]=लिसी
+Name[it]=Anelli
+Name[ja]=リッシー
+Name[ka]=ლისი
+Name[lt]=SpiralÄ—
+Name[mk]=Лизи
+Name[mt]=Ħolqa
+Name[ne]=लिसà¥à¤¸à¥€
+Name[ru]=ЛиÑÑи
+Name[sr]=ЛиÑка
+Name[sr@Latn]=Liska
+Name[ta]=லிஸà¯à®¸à®¿
+Name[tg]=ЛиÑÑи
+Name[th]=เส้นพริ้ว
+Name[uk]=ЛіÑÑÑ–
+Name[uz]=Lissi
+Name[uz@cyrillic]=ЛиÑÑи
+Name[zh_CN]=弹簧
+
+[Desktop Action Setup]
+Exec=kxsconfig lissie
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun lissie -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun lissie -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/lmorph.desktop b/tdescreensaver/kxsconfig/ScreenSavers/lmorph.desktop
new file mode 100644
index 00000000..f7aac636
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/lmorph.desktop
@@ -0,0 +1,247 @@
+[Desktop Entry]
+Exec=lmorph
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Morphing Lines
+Name[af]=Morferende Lyne
+Name[bg]=Връв
+Name[br]=Linennoù trolinenn
+Name[ca]=Línies canviants
+Name[cs]=Morfující linie
+Name[cy]=Llinellau sy'n Morffio
+Name[da]=Morfende linjer
+Name[de]=Morphing-Linien
+Name[el]=ΓÏαμμές ΜοÏφοποίησης
+Name[eo]=ÅœanÄiÄantaj linioj
+Name[es]=Líneas cambiantes
+Name[et]=Joonte moonutaja
+Name[eu]=Lerro aldakorrak
+Name[fa]=خطوط Morphing
+Name[fi]=Sulautuvat viivat
+Name[fr]=Lignes déformées
+Name[ga]=Línte Morfaithe
+Name[gl]=Líñas cambiantes
+Name[he]=×§×•×•×™× ×ž×©× ×™ צורה
+Name[hi]=बदलती लाइनें
+Name[hu]=Alakuló vonalak
+Name[it]=Linee che si trasformano
+Name[ja]=モルフィングライン
+Name[ka]=გáƒáƒ“áƒáƒ¬áƒ•áƒœáƒ
+Name[lt]=Morphing Linijos
+Name[lv]=Metamorfējošas Līnijas
+Name[mk]=Ðморфни линии
+Name[ms]=Garisan Morphing
+Name[mt]=Linji jimmorfjaw
+Name[nb]=Morfende linjer
+Name[nds]=Lienen-Metamorphoos
+Name[ne]=बदलिने रेखा
+Name[nn]=Morfande linjer
+Name[pl]=ZmieniajÄ…ce siÄ™ linie
+Name[pt]=Linhas Mutantes
+Name[pt_BR]=Linhas em 'morphing'
+Name[ro]=Linii schimbătoare
+Name[ru]=ПрÑжа
+Name[sk]=Premenlivé Čiary
+Name[sl]=PrehajajoÄe Ärte
+Name[sr]=Морфне линије
+Name[sr@Latn]=Morfne linije
+Name[sv]=Morfande linjer
+Name[ta]=மாறà¯à®®à¯ கமà¯à®ªà®¿à®•à®³à¯
+Name[tg]=РеÑмон
+Name[th]=à¹à¸›à¸¥à¸‡à¸£à¸¹à¸›à¸£à¹ˆà¸²à¸‡à¹€à¸ªà¹‰à¸™
+Name[tr]=Değişen Çizgiler
+Name[uk]=Ðморфні лінії
+Name[ven]=Mitalo ya Morphing
+Name[vi]=Dòng kẻ Biến dạng
+Name[xh]=Iilayini Ezixineneyo
+Name[zh_CN]=线æ¡å˜å½¢
+Name[zh_TW]=èžåˆçš„ç·šæ¢
+Name[zu]=Morphing Olayini
+
+[Desktop Action Setup]
+Exec=kxsconfig lmorph
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun lmorph -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun lmorph -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/lockward.desktop b/tdescreensaver/kxsconfig/ScreenSavers/lockward.desktop
new file mode 100644
index 00000000..2bac4bb7
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/lockward.desktop
@@ -0,0 +1,203 @@
+[Desktop Entry]
+Exec=lockward
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Lockward
+Name[ca]=Guarda de pany
+Name[fr]=Serrure
+Name[it]=Lucchetto a combinazione
+Name[nds]=Slottwarts
+Name[pl]=Blokada
+Name[ru]=ПолÑрные координаты
+Name[sr]=Локворд
+Name[sr@Latn]=Lokvord
+Name[sv]=Låshållet
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig lockward
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun lockward -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun lockward -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/loop.desktop b/tdescreensaver/kxsconfig/ScreenSavers/loop.desktop
new file mode 100644
index 00000000..d463b0bc
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/loop.desktop
@@ -0,0 +1,240 @@
+[Desktop Entry]
+Exec=loop
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Loop
+Name[af]=Lus
+Name[br]=A-zol
+Name[ca]=Bucle
+Name[cs]=SmyÄka
+Name[cy]=Dolen
+Name[de]=Schleifenförmige Kolonien
+Name[el]=Î’Ïόχος
+Name[es]=Bucle
+Name[et]=Silmus
+Name[eu]=Begizta
+Name[fa]=حلقه
+Name[fi]=Looppi
+Name[fo]=Lykkja
+Name[fr]=Boucle
+Name[fy]=Werhelling
+Name[gl]=Bucle
+Name[he]=מושבות מתפשטות
+Name[hi]=लूप
+Name[is]=Slaufa
+Name[it]=Ciclo
+Name[ja]=ループ
+Name[ka]=მáƒáƒ áƒ§áƒ£áƒŸáƒ˜
+Name[mk]=Јамка
+Name[ms]=Gelung
+Name[nb]=Looping
+Name[nds]=Slööp
+Name[ne]=लूप
+Name[nl]=Herhaling
+Name[nn]=Løkkje
+Name[pl]=Pętla
+Name[pt]=Ciclo
+Name[ro]=Buclă
+Name[ru]=КолониÑ
+Name[sk]=SluÄka
+Name[sl]=Zanka
+Name[sr]=Петља
+Name[sr@Latn]=Petlja
+Name[sv]=Looping
+Name[ta]=சà¯à®±à¯à®±à¯
+Name[tg]=МуÑтамлика
+Name[th]=วนรอบ
+Name[tr]=Döngü
+Name[uk]=ПетлÑ
+Name[vi]=Vòng
+Name[xh]=Dibanisa
+Name[zh_CN]=循环
+Name[zu]=Jikelezisa
+
+[Desktop Action Setup]
+Exec=kxsconfig loop
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun loop -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun loop -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/m6502.desktop b/tdescreensaver/kxsconfig/ScreenSavers/m6502.desktop
new file mode 100644
index 00000000..ba0f77be
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/m6502.desktop
@@ -0,0 +1,194 @@
+[Desktop Entry]
+Exec=m6502
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=M6502
+Name[ru]=МикропроцеÑÑор M6502
+
+X-TDE-Category=Gadgets & Simulations
+
+[Desktop Action Setup]
+Exec=kxsconfig m6502
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun m6502 -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun m6502 -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/maze.desktop b/tdescreensaver/kxsconfig/ScreenSavers/maze.desktop
new file mode 100644
index 00000000..0ab2931e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/maze.desktop
@@ -0,0 +1,238 @@
+[Desktop Entry]
+Exec=maze
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Maze
+Name[bg]=Лабиринт
+Name[br]=Milendall
+Name[ca]=Laberint
+Name[cs]=Bludiště
+Name[cy]=Drysfa
+Name[da]=Labyrint
+Name[de]=Labyrinth
+Name[el]=ΛαβÏÏινθος
+Name[es]=Laberinto
+Name[et]=Labürint
+Name[eu]=Labirintoa
+Name[fa]=هزارتوی
+Name[fi]=Sokkelo
+Name[fr]=Labyrinthe
+Name[fy]=Doalhôf
+Name[gl]=Labirinto
+Name[he]=מבוך
+Name[hi]=भूलभà¥à¤²à¥ˆà¤¯à¤¾
+Name[hu]=Labirintus
+Name[is]=Völundarhús
+Name[it]=Labirinto
+Name[ja]=è¿·å®®
+Name[ka]=ლáƒáƒ‘ირინთი
+Name[mk]=Лавиринт
+Name[nb]=Labyrint
+Name[nds]=Biestergoorn
+Name[ne]=मेज
+Name[nl]=Doolhof
+Name[nn]=Labyrint
+Name[pl]=Labirynt
+Name[pt]=Labirinto
+Name[pt_BR]=Labirinto
+Name[ro]=Labirint
+Name[ru]=Лабиринт
+Name[sl]=Labirint
+Name[sr]=Лавиринт
+Name[sr@Latn]=Lavirint
+Name[sv]=Labyrint
+Name[ta]=கà¯à®´à®ªà¯à®ªà®µà®´à®¿
+Name[tg]=Лабиринт
+Name[uk]=Лабіринт
+Name[vi]=Mê cung
+Name[xh]=Uzunge-zunge
+Name[zh_CN]=迷宫
+Name[zh_TW]=è¿·å®®
+
+[Desktop Action Setup]
+Exec=kxsconfig maze
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun maze -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun maze -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/memscroller.desktop b/tdescreensaver/kxsconfig/ScreenSavers/memscroller.desktop
new file mode 100644
index 00000000..de588968
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/memscroller.desktop
@@ -0,0 +1,217 @@
+[Desktop Entry]
+Exec=memscroller
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Banners & Pictures
+Name=MemScroller
+Name[ca]=Rotllo amb memòria
+Name[de]=Speicherläufer
+Name[el]=Κυλιόμενη Μνήμη
+Name[eo]=Penrozo
+Name[es]=MemScroller
+Name[et]=Mälukerija
+Name[fi]=Muistirullaus
+Name[fr]=Promenade dans la mémoire
+Name[hi]=मेम-सà¥à¤•à¥à¤°à¥‰à¤²à¤°
+Name[hu]=Memóriagörgető
+Name[ka]=მეხსიერების გáƒáƒ“áƒáƒ®áƒ•áƒ”ვáƒ
+Name[mk]=МемориÑки приказ
+Name[nb]=Minneruller
+Name[nds]=Spiekerkieker
+Name[ne]=मेमसà¥à¤•à¥à¤°à¥‹à¤²à¤°
+Name[nn]=Minneruller
+Name[ru]=ПамÑÑ‚ÑŒ компьютера
+Name[sl]=Spominski drsnik
+Name[sr]=Клизач меморије
+Name[sr@Latn]=KlizaÄ memorije
+Name[sv]=Rullande minne
+Name[ta]=மெம௠உரà¯à®³à®¿
+Name[uk]=Пам'ÑÑ‚ÑŒ
+Name[zh_TW]=記憶體æ²å‹•å™¨
+
+
+[Desktop Action Setup]
+Exec=kxsconfig memscroller
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun memscroller -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun memscroller -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/menger.desktop b/tdescreensaver/kxsconfig/ScreenSavers/menger.desktop
new file mode 100644
index 00000000..d65d80db
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/menger.desktop
@@ -0,0 +1,209 @@
+[Desktop Entry]
+Exec=menger
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Menger
+Name[de]=Menger-Schwamm
+Name[fy]=Minger
+Name[he]=××˜× ×ž× ×’×¨
+Name[hi]=मेंगर
+Name[ja]=メンガー
+Name[ka]=მენგერი
+Name[mk]=Менгер
+Name[nds]=Menger-Swamm
+Name[ne]=मेनà¥à¤œà¤°
+Name[ru]=Менгер
+Name[sr]=Менгер
+Name[ta]=மெஙà¯à®•à®°à¯
+Name[tg]=Менгер
+Name[uk]=Менгер
+Name[xh]=Umxubi
+
+[Desktop Action Setup]
+Exec=kxsconfig menger
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun menger -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun menger -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/metaballs.desktop b/tdescreensaver/kxsconfig/ScreenSavers/metaballs.desktop
new file mode 100644
index 00000000..058c85ba
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/metaballs.desktop
@@ -0,0 +1,228 @@
+[Desktop Entry]
+Exec=metaballs
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Rapid Motion
+Name=MetaBalls
+Name[ca]=Metapilotes
+Name[cy]=MetaBeli
+Name[de]=Meta-Bälle
+Name[eo]=MetaPilkoj
+Name[et]=Metapallid
+Name[eu]=Meta pilotak
+Name[fr]=Meta boules
+Name[fy]=Metaballen
+Name[gl]=Metabolas
+Name[he]=×›×“×•×¨×™× ×ž×¨×—×¤×™×
+Name[hi]=परा-गेंद
+Name[hu]=Metalabdák
+Name[is]=Metakúlur
+Name[ja]=メタボール
+Name[ka]=მეტáƒáƒ‘ურთულები
+Name[mk]=Мета-топки
+Name[ms]=Bola Meta
+Name[nb]=Meta-baller
+Name[nds]=Metabäll
+Name[ne]=मेटाबल
+Name[nl]=Metaballen
+Name[nn]=Meta-ballar
+Name[pl]=Metapiłki
+Name[pt]=Meta-Bolas
+Name[pt_BR]=Meta Bolas
+Name[ro]=MetaSfere
+Name[ru]=СветÑщиеÑÑ ÑˆÐ°Ñ€Ð¸ÐºÐ¸
+Name[sl]=Metažoge
+Name[sr]=Металопте
+Name[sr@Latn]=Metalopte
+Name[sv]=Metabollar
+Name[ta]=மெடா பநà¯à®¤à¯à®•à¯à®•à®³à¯
+Name[tg]=Кураҳои мунаваршуда иÑтода
+Name[uk]=Мета-м'Ñчі
+Name[zh_CN]=å…ƒçƒ
+
+[Desktop Action Setup]
+Exec=kxsconfig metaballs
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun metaballs -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun metaballs -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/mirrorblob.desktop b/tdescreensaver/kxsconfig/ScreenSavers/mirrorblob.desktop
new file mode 100644
index 00000000..6b95ec71
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/mirrorblob.desktop
@@ -0,0 +1,229 @@
+[Desktop Entry]
+Exec=mirrorblob
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=MirrorBlob
+Name[de]=Spiegelbild-Blob 
+Name[el]=ΚατοπτÏική σταγόνα
+Name[eo]=SpegulMakul'
+Name[es]=Gota de espejo
+Name[et]=Peegelpiisk
+Name[eu]=Ispilu-tanta
+Name[fa]=بلوب آئینه‌ای
+Name[fi]=PeiliKuplat
+Name[fr]=Goutte miroir
+Name[fy]=SpegelBlob
+Name[gl]=Espello Blob
+Name[he]=גוש מר×תי
+Name[hi]=मिररबà¥à¤²à¥‰à¤¬
+Name[hu]=Tükröződő blobok
+Name[is]=Spegla blob
+Name[it]=Blob a specchio
+Name[ka]=სფერული დáƒáƒ¡áƒáƒ áƒ™áƒ•áƒ
+Name[mk]=Огледална дамка
+Name[ms]=Tompok Cermin
+Name[nb]=Speilflekk
+Name[nds]=Spegelplacken
+Name[ne]=मिररबà¥à¤²à¤¬
+Name[nn]=Speglklatt
+Name[pt_BR]=Blob Espelho
+Name[ro]=Bulă oglindită
+Name[ru]=СферичеÑкое отражение
+Name[sl]=Zrcalna kepica
+Name[sr]=ОгледалÑки балончић
+Name[sr@Latn]=Ogledalski balonÄić
+Name[sv]=Spegelfläck
+Name[tg]=Ð˜Ð½ÑŠÐ¸ÐºÐ¾Ñ Ð½Ð°Ð¼ÑƒÐ´Ð°Ð½Ð¸ мудаввар
+Name[tr]=AynaDamlacığı
+Name[uk]=Сферичне віддзеркаленнÑ
+Name[vi]=Giá»t nÆ°á»›c trên GÆ°Æ¡ng
+Name[zh_CN]=魔镜
+X-TDE-Type=OpenGL;ManipulateScreen
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig mirrorblob
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun mirrorblob -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun mirrorblob -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/mismunch.desktop b/tdescreensaver/kxsconfig/ScreenSavers/mismunch.desktop
new file mode 100644
index 00000000..d59f6d27
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/mismunch.desktop
@@ -0,0 +1,212 @@
+[Desktop Entry]
+Exec=mismunch
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Fractals
+Name=Mismunch
+Name[de]=Fehler mampfen
+Name[et]=Mugimine
+Name[fa]=بد جویدن
+Name[fr]=Mâcher
+Name[hi]=मिसमैच
+Name[is]=Munur
+Name[ka]=დáƒáƒ­áƒ›áƒ£áƒ­áƒ•áƒœáƒ
+Name[nb]=Mismumse
+Name[nds]=Freten Fehlers
+Name[ne]=मिसमनà¥à¤š
+Name[pt_BR]=Mastigação
+Name[ru]=Пережёванные квадраты
+Name[sl]=ZgreÅ¡eno žveÄenje
+Name[sr]=МиÑманч
+Name[sr@Latn]=MismanÄ
+Name[sv]=Mumsfel
+Name[tg]=Хоида-хоида майда кардани мураббаъ (квадрат)
+Name[tr]=MisYeme
+Name[uk]=По-жоване
+
+[Desktop Action Setup]
+Exec=kxsconfig mismunch
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun mismunch -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun mismunch -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/moebius.desktop b/tdescreensaver/kxsconfig/ScreenSavers/moebius.desktop
new file mode 100644
index 00000000..d8fb1613
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/moebius.desktop
@@ -0,0 +1,225 @@
+[Desktop Entry]
+Exec=moebius
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Moebius (GL)
+Name[af]=Möbius (Gl)
+Name[da]=Möbius (GL)
+Name[de]=Möbius
+Name[eo]=Mebiuso (graf. bibl.)
+Name[et]=Möbius (GL)
+Name[fr]=Möbius (GL)
+Name[ga]=Möbius (GL)
+Name[he]=טבעת מוביוס (GL)
+Name[hi]=मोबियस (जीà¤à¤²)
+Name[hu]=Möbius (OpenGL)
+Name[is]=Möbíus (GL)
+Name[ja]=メビウス (GL)
+Name[ka]=მიáƒáƒ‘იუსი (GL)
+Name[mk]=ÐœÐµÐ±Ð¸ÑƒÑ (GL)
+Name[nb]=Möbius (GL)
+Name[nds]=Möbius (GL)
+Name[ne]=मोइबिअस (GL)
+Name[nn]=Møbius (GL)
+Name[pl]=Mobius (GL)
+Name[pt_BR]=Möbius (GL)
+Name[ru]=Кольца МёбиуÑа (GL)
+Name[sl]=Möbius (GL)
+Name[sr]=ÐœÐµÐ±Ð¸Ñ˜ÑƒÑ (GL)
+Name[sr@Latn]=Mebijus (GL)
+Name[sv]=Möbius (GL)
+Name[ta]=மோபியஸà¯(GL)
+Name[tg]=Ðнгуштарини ÐœÐµÐ±Ð¸ÑƒÑ (GL)
+Name[th]=โมเบียส (GL)
+Name[uk]=ÐœÑŒÐ¾Ð±Ñ–ÑƒÑ (GL)
+Name[zh_CN]=墨比乌斯带(GL)
+Name[zh_TW]=莫比斯帶 (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig moebius
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun moebius -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun moebius -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/moebiusgears.desktop b/tdescreensaver/kxsconfig/ScreenSavers/moebiusgears.desktop
new file mode 100644
index 00000000..2dde208b
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/moebiusgears.desktop
@@ -0,0 +1,208 @@
+[Desktop Entry]
+Exec=moebiusgears
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=MoebiusGears
+Name[ca]=Engranatge de Moebius
+Name[de]=Möbius-Räder
+Name[el]=ΓÏανάζια Moebius
+Name[es]=Ruedas de Moebius
+Name[et]=MöbiuseHammasrattad
+Name[fr]=Rouages de Möbius (GL)
+Name[it]=Ruote di Moebius
+Name[nds]=Möbiusrööd
+Name[pl]=Mobius
+Name[ru]=КолёÑа МёбиуÑа
+Name[sr]=МебијуÑови зупчаници
+Name[sr@Latn]=Mebijusovi zupÄanici
+Name[sv]=Möbiuskuggar
+Name[zh_TW]=莫比斯齒輪
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig moebiusgears
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun moebiusgears -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun moebiusgears -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/moire.desktop b/tdescreensaver/kxsconfig/ScreenSavers/moire.desktop
new file mode 100644
index 00000000..c64e48b6
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/moire.desktop
@@ -0,0 +1,218 @@
+[Desktop Entry]
+Exec=moire
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Moire
+Name[el]=Κυματοειδής
+Name[es]=Muaré
+Name[et]=Muaree
+Name[eu]=Muarea
+Name[fa]=مویر
+Name[fo]=Moiré
+Name[fr]=Moiré
+Name[ga]=Moiré
+Name[gl]=Muaré
+Name[he]=תבניות הפרעה
+Name[hi]=मौआ
+Name[ja]=モアレ
+Name[ka]=მáƒáƒ˜áƒ áƒ
+Name[mk]=Моаре
+Name[ne]=मोइर
+Name[ro]=Moar
+Name[ru]=Муар
+Name[sr]=Мутно
+Name[sr@Latn]=Mutno
+Name[sv]=Moaré
+Name[ta]=மொயà¯à®°à¯
+Name[tg]=Парниё
+Name[uk]=Муар
+Name[zh_CN]=干涉波纹
+Name[zh_TW]=波紋
+
+[Desktop Action Setup]
+Exec=kxsconfig moire
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun moire -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun moire -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/moire2.desktop b/tdescreensaver/kxsconfig/ScreenSavers/moire2.desktop
new file mode 100644
index 00000000..d17f43b1
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/moire2.desktop
@@ -0,0 +1,221 @@
+[Desktop Entry]
+Exec=moire2
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Moire2
+Name[de]=Moire 2
+Name[el]=Κυματοειδής2
+Name[es]=Muaré2
+Name[et]=Muaree2
+Name[eu]=Muarea2
+Name[fa]=مویر۲
+Name[fo]=Meira Moiré
+Name[fr]=Moiré2
+Name[ga]=Moiré2
+Name[gl]=Muaré 2
+Name[he]=תבניות הפרעה 2
+Name[hi]=मौआ2
+Name[ja]=モアレ 2
+Name[ka]=მáƒáƒ˜áƒ áƒ 2
+Name[mk]=Моаре2
+Name[nds]=Moire 2
+Name[ne]=मोइर २
+Name[pt_BR]=Moire 2
+Name[ro]=Moar 2
+Name[ru]=Муар 2
+Name[sr]=Мутно 2
+Name[sr@Latn]=Mutno 2
+Name[sv]=Moaré 2
+Name[ta]=மொயà¯à®°à¯2
+Name[tg]=Парниё2
+Name[uk]=Муар2
+Name[zh_CN]=干涉波纹2
+Name[zh_TW]=波紋2
+
+[Desktop Action Setup]
+Exec=kxsconfig moire2
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun moire2 -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun moire2 -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/molecule.desktop b/tdescreensaver/kxsconfig/ScreenSavers/molecule.desktop
new file mode 100644
index 00000000..dc454830
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/molecule.desktop
@@ -0,0 +1,243 @@
+[Desktop Entry]
+Exec=molecule
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Molecule
+Name[af]=Molekule
+Name[bg]=Молекула
+Name[ca]=Molècula
+Name[cs]=Molekula
+Name[cy]=Moleciwl
+Name[da]=Molekyle
+Name[de]=Molekül
+Name[el]=ΜόÏιο
+Name[es]=Molécula
+Name[et]=Molekul
+Name[eu]=Molekula
+Name[fa]=مولکول
+Name[fi]=Molekyyli
+Name[fr]=Molécule
+Name[fy]=Molekule
+Name[gl]=Molécula
+Name[he]=מולקולה
+Name[hi]=अणॠ- रचना
+Name[hu]=Molekulák
+Name[is]=Mólekúl
+Name[it]=Molecola
+Name[ja]=分å­
+Name[ka]=მáƒáƒšáƒ”კულáƒ
+Name[mk]=Молекула
+Name[ms]=Molekul
+Name[nb]=Molekyl
+Name[nds]=Molekööl
+Name[ne]=मोलिकà¥à¤¯à¥‚ल
+Name[nn]=Molekyl
+Name[pl]=CzÄ…steczka
+Name[pt]=Molécula
+Name[pt_BR]=Molécula
+Name[ro]=Moleculă
+Name[ru]=Молекула
+Name[sl]=Molekula
+Name[sr]=Молекул
+Name[sr@Latn]=Molekul
+Name[sv]=Molekyl
+Name[ta]=மூலகà¯à®•à¯‚à®±à¯
+Name[tg]=Молекула
+Name[th]=โมเลà¸à¸¸à¸¥
+Name[tr]=Molekül
+Name[uk]=Молекула
+Name[uz]=Molekula
+Name[uz@cyrillic]=Молекула
+Name[vi]=Phân tử
+Name[zh_CN]=分å­
+Name[zh_TW]=分å­
+Name[zu]=Ucezu
+
+[Desktop Action Setup]
+Exec=kxsconfig molecule
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun molecule -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun molecule -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/morph3d.desktop b/tdescreensaver/kxsconfig/ScreenSavers/morph3d.desktop
new file mode 100644
index 00000000..4d035c6e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/morph3d.desktop
@@ -0,0 +1,223 @@
+[Desktop Entry]
+Exec=morph3d
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Morph3D
+Name[af]=Morf3d
+Name[cy]=Morff3D
+Name[de]=Stachelballon
+Name[el]=ΜοÏφοποίηση 3D
+Name[eu]=Transformazioa3D
+Name[fr]=Transformation3D
+Name[gl]=Morfoloxia 3D
+Name[he]=צורה משתנה
+Name[hi]=मॉरà¥à¤«3डी
+Name[it]=Trasformazioni 3D
+Name[ja]=モルフ 3D
+Name[ka]=გáƒáƒ áƒ“áƒáƒ¡áƒáƒ®áƒ•áƒ
+Name[mk]=Морф3Д
+Name[nb]=Morf 3D
+Name[nds]=Metamorphoos-3D
+Name[ne]=तà¥à¤°à¤¿-आयामिक आकार
+Name[nn]=Morf 3D
+Name[pt_BR]=Morph 3D
+Name[ru]=ПревращениÑ
+Name[sl]=Morf3D
+Name[sr]=Морф 3Д
+Name[sr@Latn]=Morf 3D
+Name[sv]=Morf 3D
+Name[ta]=மாறà¯à®±à¯3டி
+Name[tg]=Табдил додан
+Name[th]=à¹à¸›à¸¥à¸‡à¸ à¸²à¸ž 3 มิติ
+Name[uk]=ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ 3D
+Name[vi]=Biến dạng 3 chiá»u
+Name[zh_CN]=立体å˜å½¢
+
+[Desktop Action Setup]
+Exec=kxsconfig morph3d
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun morph3d -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun morph3d -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/mountain.desktop b/tdescreensaver/kxsconfig/ScreenSavers/mountain.desktop
new file mode 100644
index 00000000..10e03039
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/mountain.desktop
@@ -0,0 +1,247 @@
+[Desktop Entry]
+Exec=mountain
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Mountain
+Name[bg]=Планина
+Name[br]=Menez
+Name[ca]=Muntanya
+Name[cs]=Hora
+Name[cy]=Mynydd
+Name[da]=Bjerg
+Name[de]=Berge
+Name[el]=Βουνό
+Name[es]=Montaña
+Name[et]=Mägi
+Name[eu]=Mendia
+Name[fa]=کوه
+Name[fi]=Vuori
+Name[fo]=Fjall
+Name[fr]=Montagne
+Name[fy]=Berch
+Name[gl]=Montaña
+Name[he]=הרי×
+Name[hi]=परà¥à¤µà¤¤
+Name[hu]=Hegység
+Name[is]=Fjöll
+Name[it]=Montagna
+Name[ja]=雪山
+Name[ka]=მთáƒ
+Name[mk]=Планина
+Name[ms]=Gunung
+Name[nb]=Fjell
+Name[nds]=Bargen
+Name[ne]=हिमाल
+Name[nl]=Berg
+Name[nn]=Fjell
+Name[pa]=ਪਹਾੜੀ
+Name[pl]=Góry
+Name[pt]=Montanha
+Name[pt_BR]=Montanha
+Name[ro]=Munte
+Name[ru]=Гора
+Name[sl]=Gora
+Name[sr]=Планина
+Name[sr@Latn]=Planina
+Name[sv]=Fjäll
+Name[ta]=மலை
+Name[tg]=Кӯҳ
+Name[th]=ภูเขา
+Name[tr]=DaÄŸ
+Name[uk]=Гора
+Name[uz]=TogÊ»
+Name[uz@cyrillic]=Тоғ
+Name[ven]=Thavha
+Name[vi]=Núi
+Name[xh]=Intaba
+Name[zh_CN]=山峰
+Name[zh_TW]=å±±
+Name[zu]=Intaba
+
+[Desktop Action Setup]
+Exec=kxsconfig mountain
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun mountain -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun mountain -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/munch.desktop b/tdescreensaver/kxsconfig/ScreenSavers/munch.desktop
new file mode 100644
index 00000000..7ce9dd43
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/munch.desktop
@@ -0,0 +1,220 @@
+[Desktop Entry]
+Exec=munch
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Munch
+Name[cy]=Cnoi
+Name[de]=Mampfen
+Name[et]=Mugimine
+Name[fa]=با سر و صدا جویدن
+Name[fi]=Mutustus
+Name[he]=ריבועי×
+Name[hi]=चबाना
+Name[ja]=ã‚€ã—ゃむã—ゃ
+Name[ka]=სáƒáƒ¦áƒ”ჭი
+Name[mk]=Ðвакање
+Name[nb]=Mumse
+Name[nds]=Opfreten
+Name[ne]=मनà¥à¤š
+Name[nn]=Mums
+Name[pt_BR]=Mastigação
+Name[ru]=Жвачка
+Name[sl]=ŽveÄenje
+Name[sr]=Манч
+Name[sr@Latn]=ManÄ
+Name[sv]=Mumsa
+Name[ta]=தினà¯à®©à¯
+Name[tg]=Кавша
+Name[uk]=Жуйка
+Name[vi]=Nhai
+Name[zh_CN]=咀嚼
+Name[zh_TW]=咀嚼
+Name[zu]=Hlafuna
+
+[Desktop Action Setup]
+Exec=kxsconfig munch
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun munch -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun munch -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/nerverot.desktop b/tdescreensaver/kxsconfig/ScreenSavers/nerverot.desktop
new file mode 100644
index 00000000..f3007efd
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/nerverot.desktop
@@ -0,0 +1,219 @@
+[Desktop Entry]
+Exec=nerverot
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Rapid Motion
+Name=NerveRot
+Name[bg]=Кълбо от нерви
+Name[cy]=NerfBydredd
+Name[de]=Nervös rotierende Schnörkel
+Name[et]=Närvid Läbi
+Name[fa]=چرخش عصب
+Name[fr]=Nervure tournante
+Name[he]=×©×¨×‘×•×˜×™× ×¨×•×˜×˜×™×
+Name[hi]=नरà¥à¤µ-राट
+Name[is]=Taugarót
+Name[ka]=ნერვული კვáƒáƒœáƒ«áƒ˜
+Name[mk]=Уништени нерви
+Name[nb]=Nerveråte
+Name[nds]=Jibbel-Dreih
+Name[ne]=नरà¥à¤­à¤°à¥‹à¤Ÿ
+Name[nn]=Nerveråte
+Name[pt_BR]=Nerverot
+Name[ru]=Комок нервов
+Name[sl]=ŽivÄni zlom
+Name[sr]=Ðервни Ñлом
+Name[sr@Latn]=Nervni slom
+Name[sv]=Roterande nerv
+Name[tg]=Лӯндаи аÑабҳо
+Name[uk]=Жмут нервів
+Name[vi]=Dây Thần kinh
+Name[zh_CN]=神ç»é”™ä¹±
+Name[zh_TW]=神經錯亂
+
+[Desktop Action Setup]
+Exec=kxsconfig nerverot
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun nerverot -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun nerverot -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/noof.desktop b/tdescreensaver/kxsconfig/ScreenSavers/noof.desktop
new file mode 100644
index 00000000..d63b91a3
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/noof.desktop
@@ -0,0 +1,205 @@
+[Desktop Entry]
+Exec=noof
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=Noof
+Name[fr]=Noof (GL)
+Name[hi]=नूफ
+Name[ka]=მბრუნáƒáƒ•áƒ”ბი
+Name[mk]=Ротирачки шеми
+Name[nb]=Nuffe
+Name[nds]=Seegörken
+Name[ne]=नूफ
+Name[ru]=ВращающиеÑÑ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ‹
+Name[sr]=Ðуф
+Name[sr@Latn]=Nuf
+Name[tg]=Қолиби тобхуранда
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig noof
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun noof -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun noof -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/noseguy.desktop b/tdescreensaver/kxsconfig/ScreenSavers/noseguy.desktop
new file mode 100644
index 00000000..2aa060aa
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/noseguy.desktop
@@ -0,0 +1,232 @@
+[Desktop Entry]
+Exec=noseguy
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Miscellaneous
+X-TDE-Type=Fortune
+Name=Noseguy
+Name[br]=Fri
+Name[ca]=Narigut
+Name[cs]=Nosatý chlapík
+Name[cy]=Boitrwyn
+Name[da]=Næsefyr
+Name[de]=Typ mit großer Nase
+Name[es]=Narizotas
+Name[et]=Jutunina
+Name[eu]=SudurGizona
+Name[fi]=Nenätyyppi
+Name[fr]=Nez
+Name[gl]=Narición
+Name[he]=מר ××£
+Name[hi]=नोज़-गाई
+Name[hu]=Hosszú orrú
+Name[is]=Nefkall
+Name[ja]=ノーズガイ
+Name[ka]=ცხვირáƒ
+Name[mk]=ÐоÑко
+Name[nb]=Nesestøver
+Name[nds]=Neeskeerl
+Name[ne]=नोजगाई
+Name[nn]=Nasefyr
+Name[pl]=Facet z nosem
+Name[pt_BR]=Home Nariz
+Name[ro]=Năsosul
+Name[ru]=ÐоÑатый человек
+Name[sl]=Nosan
+Name[sr]=ÐоÑоња
+Name[sr@Latn]=Nosonja
+Name[sv]=Näsgubbe
+Name[ta]=மூகà¯à®•à¯à®ªà¯à®ªà¯ˆà®¯à®©à¯
+Name[tg]=ШахÑи бинидароз
+Name[uk]=ÐоÑань
+Name[ven]=Muthu wa ningo
+Name[vi]=Gã mũi to
+Name[zh_CN]=大鼻头
+Name[zh_TW]=大鼻å­å‚¢ä¼™
+
+[Desktop Action Setup]
+Exec=kxsconfig noseguy
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun noseguy -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun noseguy -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/pacman.desktop b/tdescreensaver/kxsconfig/ScreenSavers/pacman.desktop
new file mode 100644
index 00000000..a5ab084d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/pacman.desktop
@@ -0,0 +1,206 @@
+[Desktop Entry]
+Exec=pacman
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Miscellaneous
+Name=Pacman
+Name[el]=Πάκμαν
+Name[he]=פקמן
+Name[hi]=पेकमेन
+Name[ja]=パックマン
+Name[ka]=ქვáƒáƒ­áƒáƒ›áƒ˜áƒ
+Name[mk]=Пакман
+Name[ne]=पेसमà¥à¤¯à¤¾à¤¨
+Name[ru]=Пожиратель
+Name[sr]=Пекмен
+Name[sr@Latn]=Pekmen
+Name[tg]=ҒаламуÑ
+Name[uk]=Проглот
+Name[zh_TW]=å°ç²¾éˆ
+
+[Desktop Action Setup]
+Exec=kxsconfig pacman
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun pacman -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun pacman -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/pedal.desktop b/tdescreensaver/kxsconfig/ScreenSavers/pedal.desktop
new file mode 100644
index 00000000..69a0780b
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/pedal.desktop
@@ -0,0 +1,218 @@
+[Desktop Entry]
+Exec=pedal
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Pedal
+Name[el]=Πετάλι
+Name[et]=Pedaal
+Name[eu]=Pedala
+Name[fa]=پدال
+Name[fi]=Pedaali
+Name[fr]=Pédale
+Name[he]=תמונות ×’×™×ומטריות
+Name[hi]=पैडल
+Name[is]=Pedali
+Name[it]=Pedale
+Name[ja]=ペダル
+Name[ka]=ნáƒáƒ™áƒ•áƒáƒšáƒ”ვი
+Name[mk]=Вртење
+Name[ne]=पेडल
+Name[pa]=ਪੈਡਲ
+Name[ro]=Pedală
+Name[ru]=Отпечатки лап
+Name[sr]=Педал
+Name[ta]=காலà¯à®®à®¿à®¤à®¿
+Name[tg]=Изи панҷа
+Name[ven]=Zwau kandelela
+Name[vi]=Bàn đạp
+Name[zh_CN]=è„šè¸è½®
+Name[zh_TW]=è¸æ¿
+Name[zu]=Ukugwedla
+
+[Desktop Action Setup]
+Exec=kxsconfig pedal
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun pedal -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun pedal -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/penetrate.desktop b/tdescreensaver/kxsconfig/ScreenSavers/penetrate.desktop
new file mode 100644
index 00000000..54b6bfd2
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/penetrate.desktop
@@ -0,0 +1,235 @@
+[Desktop Entry]
+Exec=penetrate
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Penetrate
+Name[bg]=Проникване
+Name[ca]=Penetrar
+Name[cs]=Pronikání
+Name[cy]=Treiddio
+Name[da]=Gennemtræng
+Name[de]=Raketenabwehr
+Name[el]=Διείσδυση
+Name[es]=Penetrar
+Name[et]=Tulistaja
+Name[fa]=Ù†Ùوذ کردن
+Name[fi]=Tunkeutuminen
+Name[fr]=Percer
+Name[gl]=Penetrar
+Name[he]=טילי×
+Name[hi]=घà¥à¤¸à¥à¤¸à¤¾ - घà¥à¤¸à¥à¤¸à¥€
+Name[hu]=Behatolás
+Name[it]=Penetrazione
+Name[ja]=侵入
+Name[ka]=შეღწევáƒ
+Name[mk]=Пробивање
+Name[ms]=Tembus
+Name[nb]=Gjennomtreng
+Name[nds]=Dörkamen
+Name[ne]=पेनिटà¥à¤°à¥‡à¤Ÿ
+Name[nn]=Gjennom
+Name[pl]=Penetracja
+Name[pt]=Penetração
+Name[pt_BR]=Penetração
+Name[ro]=Penetrare
+Name[ru]=Проникновение
+Name[sl]=Prodiranje
+Name[sr]=Продирање
+Name[sr@Latn]=Prodiranje
+Name[sv]=Genomträng
+Name[ta]=ஊடà¯à®°à¯à®µà¯
+Name[tg]=Дохил шудан
+Name[uk]=ПроникненнÑ
+Name[ven]=U dzhenela
+Name[vi]=Chui vào
+Name[zh_CN]=导弹防御
+Name[zh_TW]=入侵
+Name[zu]=Ngenisa
+
+[Desktop Action Setup]
+Exec=kxsconfig penetrate
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun penetrate -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun penetrate -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/penrose.desktop b/tdescreensaver/kxsconfig/ScreenSavers/penrose.desktop
new file mode 100644
index 00000000..431740a7
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/penrose.desktop
@@ -0,0 +1,209 @@
+[Desktop Entry]
+Exec=penrose
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Visit to Flatland
+Name=Penrose
+Name[eo]=Penrozo
+Name[fi]=Penrose tiilet
+Name[he]=מרצפות
+Name[hi]=पेनरोज़
+Name[ja]=ペンローズ
+Name[ka]=პენრáƒáƒ£áƒ–ი
+Name[mk]=Пенроуз
+Name[ne]=पेनरोज
+Name[ru]=Пенроуз
+Name[sr]=Пенроуз
+Name[sr@Latn]=Penrouz
+Name[ta]=பெனà¯à®°à¯‹à®¸à¯
+Name[tg]=Пенроуз
+Name[uk]=Пенровз
+Name[xh]=Intyatyambo entle egcinwe ekumda othile
+Name[zu]=Ipeni eliyimbali yerosi
+
+[Desktop Action Setup]
+Exec=kxsconfig penrose
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun penrose -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun penrose -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/petri.desktop b/tdescreensaver/kxsconfig/ScreenSavers/petri.desktop
new file mode 100644
index 00000000..e7c79de7
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/petri.desktop
@@ -0,0 +1,212 @@
+[Desktop Entry]
+Exec=petri
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Petri
+Name[de]=Petrischale
+Name[et]=Petri Tass
+Name[fa]=پتری
+Name[fi]=Petrimalja
+Name[fr]=Pétri
+Name[fy]=Petry
+Name[he]=צלחת פטרי
+Name[hi]=पेटà¥à¤°à¥€
+Name[ja]=ペトリ
+Name[ka]=პეტრის ჭურჭელი
+Name[mk]=Петри
+Name[nds]=Petrikumm
+Name[ne]=पेटà¥à¤°à¥€
+Name[ru]=Чашка Петри
+Name[sr]=Петри
+Name[ta]=பெடà¯à®±à®¿
+Name[tg]=ÐимкоÑаи Петри
+Name[uk]=Петрі
+Name[vi]=Peri
+
+[Desktop Action Setup]
+Exec=kxsconfig petri
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun petri -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun petri -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/phosphor.desktop b/tdescreensaver/kxsconfig/ScreenSavers/phosphor.desktop
new file mode 100644
index 00000000..1380399d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/phosphor.desktop
@@ -0,0 +1,246 @@
+[Desktop Entry]
+Exec=phosphor
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Banners & Pictures
+X-TDE-Type=Fortune
+Name=Phosphor
+Name[af]=Fosfor
+Name[bg]=ФоÑфор
+Name[br]=Fosfor
+Name[ca]=Fòsfor
+Name[cs]=Fosfor
+Name[cy]=Ffosffor
+Name[da]=Fosfor
+Name[el]=ΦώσφοÏος
+Name[eo]=Fosforo
+Name[es]=Fósforo
+Name[et]=Fosfor
+Name[eu]=Fosforoa
+Name[fa]=ÙسÙر
+Name[fi]=Fosfori
+Name[fo]=Fosfor
+Name[fr]=Phosphore
+Name[fy]=Fosfor
+Name[gl]=Fósforo
+Name[he]=מסך זרחני
+Name[hi]=फ़ॉसà¥à¤«à¤¼à¤°
+Name[hu]=Foszfor
+Name[is]=Fosfór
+Name[it]=Fosforo
+Name[ja]=è›å…‰ä½“
+Name[ka]=ფáƒáƒ¡áƒ¤áƒáƒ áƒ˜
+Name[lt]=Fosforas
+Name[lv]=Fosfors
+Name[mk]=ФоÑфор
+Name[ms]=Fosfor
+Name[mt]=Fosfru
+Name[nb]=Fosfor
+Name[ne]=फोसà¥à¤«à¥‹à¤°
+Name[nn]=Fosfor
+Name[pa]=ਫਾਸਫੋਰਸ
+Name[pl]=Fosfor
+Name[pt]=Fósforo
+Name[pt_BR]=Fósforo
+Name[ro]=Fosfor
+Name[ru]=Монохромный терминал
+Name[sk]=Fosfor
+Name[sl]=Fosfor
+Name[sr]=ФоÑфор
+Name[sr@Latn]=Fosfor
+Name[sv]=Fosfor
+Name[ta]=பாஸà¯à®ªà®°à¯
+Name[tg]=ИÑтилоҳи Ñкранг
+Name[th]=สารฟอสเฟอร์
+Name[tr]=Fosfor
+Name[uk]=ФоÑфор
+Name[vi]=Phốt pho
+Name[zh_CN]=è§å…‰ç»ˆç«¯
+Name[zh_TW]=晨星
+
+[Desktop Action Setup]
+Exec=kxsconfig phosphor
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun phosphor -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun phosphor -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/photopile.desktop b/tdescreensaver/kxsconfig/ScreenSavers/photopile.desktop
new file mode 100644
index 00000000..9addfbe8
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/photopile.desktop
@@ -0,0 +1,25 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=photopile
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Photopile
+
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig photopile
+Name=Setup...
+
+[Desktop Action InWindow]
+Exec=kxsrun photopile -- -window-id %w
+Name=Display in Specified Window
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun photopile -- -root
+Name=Display in Root Window
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/piecewise.desktop b/tdescreensaver/kxsconfig/ScreenSavers/piecewise.desktop
new file mode 100644
index 00000000..80c8e15d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/piecewise.desktop
@@ -0,0 +1,225 @@
+[Desktop Entry]
+Exec=piecewise
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Visit to Flatland
+Name=Piecewise
+Name[ca]=A trossos
+Name[cy]=Tameidiog
+Name[de]=Ãœberschneidende Kreise
+Name[eo]=Pec-po-pec'
+Name[es]=Pieza clave
+Name[et]=Tükikaupa
+Name[fa]=تکه‌ای
+Name[fr]=Petits morceaux
+Name[fy]=Stikje by bytsje
+Name[gl]=Peza chave
+Name[hi]=टà¥à¤•à¤¡à¤¼à¥‡ हज़ार
+Name[hu]=Darabkák
+Name[ja]=ピースワイズ
+Name[ka]=ნáƒáƒ¬áƒ˜áƒšáƒáƒ™áƒ”ბი
+Name[mk]=Ðиз парчиња
+Name[nb]=Stykkevis
+Name[nds]=Stückwies
+Name[ne]=पिस वाइज
+Name[nl]=Stuksgewijs
+Name[nn]=Stykkevis
+Name[pt]=Por Peças
+Name[pt_BR]=Fatia Sensata
+Name[ru]=ЧаÑтицы
+Name[sl]=Podrobnost
+Name[sr]=Подеоно
+Name[sr@Latn]=Podeono
+Name[sv]=Styckvis
+Name[ta]=தூளà¯à®µà®¾à®°à®¿à®¯à®¾à®•
+Name[tg]=ҲиÑÑачаҳо
+Name[uk]=ЧаÑтинки
+Name[vi]=Từng mảnh
+Name[zh_CN]=分段
+
+[Desktop Action Setup]
+Exec=kxsconfig piecewise
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun piecewise -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun piecewise -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/pinion.desktop b/tdescreensaver/kxsconfig/ScreenSavers/pinion.desktop
new file mode 100644
index 00000000..2047ee40
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/pinion.desktop
@@ -0,0 +1,210 @@
+[Desktop Entry]
+Exec=pinion
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Pinion
+Name[ca]=Pinyó
+Name[de]=Zahnräder
+Name[es]=Piñón
+Name[et]=Hammasrattakesed
+Name[eu]=Pinoia
+Name[fa]=چرخ‌دندانۀ کوچک
+Name[fr]=Pignons
+Name[ja]=翼
+Name[ka]=ფრთებშეკვეცáƒ
+Name[mk]=Запчаници
+Name[nds]=Pi-Drift
+Name[ne]=पिनिअन
+Name[ru]=Редуктор
+Name[sr]=Пинион
+Name[sv]=Vingspets
+Name[uk]=ШеÑтірнÑ
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig pinion
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun pinion -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun pinion -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/pipes.desktop b/tdescreensaver/kxsconfig/ScreenSavers/pipes.desktop
new file mode 100644
index 00000000..e4bfae45
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/pipes.desktop
@@ -0,0 +1,251 @@
+[Desktop Entry]
+Exec=pipes
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Pipes - another (GL)
+Name[af]=Pype - nog 'n (Gl)
+Name[br]=Korzennoù - un all (GL)
+Name[ca]=Canonades - un altre (GL)
+Name[cs]=Roury - jiné (GL)
+Name[cy]=Pibellau - un arall (GL)
+Name[da]=Rør - en anden (GL)
+Name[de]=Röhren 2
+Name[el]=Σωλήνες - άλλο (GL)
+Name[eo]=Tuboj aliaj (graf. bibl.)
+Name[es]=Tuberías - otro (GL)
+Name[et]=Torud - veel üks (GL)
+Name[eu]=Hodiak - beste bat (GL)
+Name[fa]=لوله‌ها - (GL) دیگر
+Name[fi]=Putket (GL)
+Name[fo]=Fleiri rør
+Name[fr]=Tubes - un autre (GL)
+Name[fy]=Buizen (GL)
+Name[ga]=Pipes - ceann eile (GL)
+Name[gl]=Canos - outro (GL)
+Name[he]=עוד צינורות (GL)
+Name[hi]=पाइप - दर - पाइप - अनà¥à¤¯ (जीà¤à¤²)
+Name[hu]=Csövek, új variáció (OpenGL)
+Name[is]=Pípur - annar (GL)
+Name[it]=Tubi - un altro (GL)
+Name[ja]=パイプ ãã® 2 (GL)
+Name[ka]=მილები II (GL)
+Name[lt]=Vamzdžiai - kitaip (GL)
+Name[lv]=Caurules - cita (GL)
+Name[mk]=Цевки - други (GL)
+Name[ms]=Pipes - satu lagi (GL)
+Name[mt]=Katusi - ieħor (GL)
+Name[nb]=Andre rør (GL)
+Name[nds]=Röhren 2 (GL)
+Name[ne]=पाइप - अरà¥à¤•à¥‹ (GL)
+Name[nl]=Buizen (GL)
+Name[nn]=Røyr – endå ein (GL)
+Name[pl]=Rury - następny (GL)
+Name[pt]=Canos - outro (GL)
+Name[pt_BR]=Canos - outro (GL)
+Name[ro]=Alte ţevi (GL)
+Name[ru]=Трубы II (GL)
+Name[sk]=Fajky - iné (GL)
+Name[sl]=Cevi - Å¡e ena (GL)
+Name[sr]=Цевке - још једном (GL)
+Name[sr@Latn]=Cevke - još jednom (GL)
+Name[sv]=Andra rör (GL)
+Name[ta]=கà¯à®´à®¾à®¯à¯à®•à®³à¯ - மறà¯à®±à®¤à¯ (GL)
+Name[tg]=Қубурҳои П(GL)
+Name[th]=ท่อน้ำ - อื่นๆ (GL)
+Name[tr]=BaÅŸka borular (GL)
+Name[uk]=Інші труби (GL)
+Name[ven]=Dziphaiphi - dzinwe (GL)
+Name[vi]=á»ng khác (GL)
+Name[xh]=Imibhobho - enye (GL)
+Name[zh_CN]=ç®¡é“ - å¦ä¸€ä¸ª(GL)
+Name[zh_TW]=水管 - another (GL)
+Name[zu]=Amapayipi - okunye (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig pipes
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun pipes -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun pipes -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/pixmaps.desktop b/tdescreensaver/kxsconfig/ScreenSavers/pixmaps.desktop
new file mode 100644
index 00000000..237cb746
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/pixmaps.desktop
@@ -0,0 +1,233 @@
+[Desktop Entry]
+Exec=pixmaps
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Banners & Pictures
+Name=pixmaps
+Name[af]=pix-kaarte
+Name[br]=skeudennoù
+Name[ca]=Mapes de píxels
+Name[cs]=pixmapy
+Name[cy]=picsfapiau
+Name[de]=Bilder
+Name[es]=Pixmaps
+Name[et]=pildid
+Name[eu]=Pixmap-ak
+Name[fa]=نگاشت تصویردانه‌ای
+Name[fi]=kuvakartat
+Name[fr]=Images
+Name[gl]=Mapas de pixeis
+Name[he]=תמונות
+Name[hi]=पिकà¥à¤¸à¤®à¥‡à¤ªà¥à¤¸
+Name[hu]=Pixmapek
+Name[it]=Immagini pixmap
+Name[ja]=ピクスマップ
+Name[ka]=რáƒáƒ¡áƒ¢áƒ áƒ£áƒšáƒ˜ ნáƒáƒ®áƒáƒ¢áƒ”ბი
+Name[mk]=пикÑмапи
+Name[mt]=stampi
+Name[nb]=Bildekart
+Name[nds]=Pixelbiller
+Name[ne]=पिकà¥à¤¸à¤®à¥à¤¯à¤¾à¤ª
+Name[nn]=Bilete
+Name[pl]=Piksmapy
+Name[pt]=Imagens
+Name[ro]=Imagini
+Name[ru]=ИзображениÑ
+Name[sl]=slike
+Name[sr]=ПикÑмапе
+Name[sr@Latn]=Piksmape
+Name[sv]=Bildtoppar
+Name[ta]=படதà¯à®¤à¯à®£à¯à®•à¯à®•à¯
+Name[tg]=ТаÑвир
+Name[th]=à¹à¸Ÿà¹‰à¸¡à¸ à¸²à¸ž
+Name[uk]=ЗображеннÑ
+Name[vi]=ảnh điểm
+Name[zh_CN]=åƒç´ å›¾
+Name[zu]=ama-pixmap
+
+[Desktop Action Setup]
+Exec=kxsconfig pixmaps
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun pixmaps -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun pixmaps -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/polyhedra.desktop b/tdescreensaver/kxsconfig/ScreenSavers/polyhedra.desktop
new file mode 100644
index 00000000..8a22f9d4
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/polyhedra.desktop
@@ -0,0 +1,226 @@
+[Desktop Entry]
+Exec=polyhedra
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=Polyhedra
+Name[de]=Vielflächer
+Name[el]=ΠολÏεδÏα
+Name[eo]=Multedroj
+Name[et]=Polüheeder
+Name[eu]=Poliedroa
+Name[fa]=چند وجهی
+Name[fr]=Polyèdre
+Name[gl]=Poliedro
+Name[he]=תמונות ×’×™×ומטריות
+Name[hi]=बहà¥à¤«à¤²à¤•
+Name[hu]=Poliéder
+Name[it]=Poliedro
+Name[ka]=მრáƒáƒ•áƒáƒšáƒ¬áƒáƒ®áƒœáƒáƒ’áƒ
+Name[mk]=Полиедри
+Name[ms]=Polihedra
+Name[nb]=Polyedre
+Name[nds]=Veelflagen
+Name[ne]=पोलिहेडà¥à¤°à¤¾
+Name[pt]=Poliedro
+Name[pt_BR]=Poliedro
+Name[ro]=Poliedru
+Name[ru]=ÐžÐ±ÑŠÑ‘Ð¼Ð½Ð°Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ
+Name[sl]=Polihedra
+Name[sr]=Полиедри
+Name[sr@Latn]=Poliedri
+Name[sv]=Polyhedrar
+Name[tg]=Ҳаҷми геометриÑ
+Name[tr]=Polihedra
+Name[uk]=Об'ємні фігури
+Name[vi]=Äa diện
+Name[zh_CN]=多é¢ä½“
+Name[zh_TW]=多é¢é«”
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig polyhedra
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun polyhedra -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun polyhedra -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/polyominoes.desktop b/tdescreensaver/kxsconfig/ScreenSavers/polyominoes.desktop
new file mode 100644
index 00000000..7f551d49
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/polyominoes.desktop
@@ -0,0 +1,223 @@
+[Desktop Entry]
+Exec=polyominoes
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Miscellaneous
+Name=Polyominoes
+Name[ca]=Polidomis
+Name[cy]=Poliominôs
+Name[de]=Polyomino
+Name[es]=Polidomios
+Name[et]=Polüoominod
+Name[eu]=Polinomioak
+Name[gl]=Polidómios
+Name[he]=מילוי צורות
+Name[hi]=पॉलीमिनोस
+Name[hu]=Poliominók
+Name[it]=Polinomi
+Name[ja]=ãƒãƒªã‚ªãƒŸãƒŽ
+Name[ka]=მრáƒáƒ•áƒáƒšáƒ™áƒ£áƒ—ხáƒ
+Name[mk]=Полиомини
+Name[nb]=Polyominoer
+Name[nds]=Polyominos
+Name[ne]=पोलिमाइनोज
+Name[pt]=Poliónimos
+Name[pt_BR]=Polinômios
+Name[ru]=Многоугольники
+Name[sl]=Mnogokotniki
+Name[sr]=Полиомине
+Name[sr@Latn]=Poliomine
+Name[sv]=Polyominos
+Name[ta]=பலசதà¯à®° ஒடà¯à®Ÿà¯
+Name[tg]=БиÑёркунҷҳо
+Name[uk]=Головоломка
+Name[vi]=CỠđôminô đa giác
+Name[zh_CN]=多è”骨牌
+Name[zh_TW]=多方塊
+
+[Desktop Action Setup]
+Exec=kxsconfig polyominoes
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun polyominoes -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun polyominoes -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/polytopes.desktop b/tdescreensaver/kxsconfig/ScreenSavers/polytopes.desktop
new file mode 100644
index 00000000..81c42987
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/polytopes.desktop
@@ -0,0 +1,237 @@
+[Desktop Entry]
+Exec=polytopes
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=Regular 4D Polytopes
+Name[ca]=Polítops Regulars 4D
+Name[cs]=Pravidelné 4D polytopy
+Name[cy]=Politopau 4D Rheolaidd
+Name[da]=Regulære 4D Polytoper
+Name[de]=Reguläre Polytope (vierdimensional)
+Name[el]=Κανονικά 4D πολÏτοπα
+Name[es]=Politopos regulares 4D
+Name[et]=Korrapärased 4D polütoobid
+Name[eu]=4D politopo erregularrak
+Name[fa]=Polytopes منظم چهار بعدی
+Name[fi]=Säännölliset 4D-polytoopit
+Name[fr]=Polygones 4D
+Name[fy]=Regelmjittige 4D-polytopen
+Name[gl]=Politopos regulares 4D
+Name[he]=×¤×•×œ×™×˜×•×¤×™× ×¨×’×™×œ×™× ×‘×¢×œ×™ 4 מימדי×
+Name[hi]=चतà¥à¤°à¥à¤¯à¤¾à¤®à¥€ तारा
+Name[hu]=Politópok 4D
+Name[is]=Venjulegar 4D Polytopes
+Name[it]=Politopi regolari 4D
+Name[ka]=ჰიპერფიგურáƒ
+Name[mk]=Регуларни 4Д полиедри
+Name[ms]=Politop 4D Biasa
+Name[nb]=Regulære 4D Polytoper
+Name[nds]=Symmetersch 4D-Polytopen
+Name[ne]=नियमित चौ-आयामिक पोलिटप
+Name[nl]=Regelmatige 4D-polytopen
+Name[nn]=Vanlege 4D-polytopar
+Name[pl]=Czterowymiarowy wielokÄ…t regularny
+Name[pt]=Polítopos Regulares 4D
+Name[pt_BR]=Poli 4D Regular
+Name[ru]=Гиперфигура
+Name[sk]=Pravidelné 4D polytopy
+Name[sl]=Pravilni 4D mnogotopi
+Name[sr]=Обични 4Д политопи
+Name[sr@Latn]=ObiÄni 4D politopi
+Name[sv]=Vanliga 4D polytoper
+Name[ta]=வழகà¯à®•à®®à®¾à®© 4டி பாலிடோபà¯à®•à®³à¯
+Name[tg]=Гиперфигура
+Name[tr]=4D Politop
+Name[uk]=Многогранник 4D
+Name[vi]=Äa diện Ä‘á»u 4 chiá»u
+Name[zh_CN]=规则 4D 多é¢ä½“
+Name[zh_TW]=æ­£è¦ 4D 多胞形
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig polytopes
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun polytopes -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun polytopes -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/pong.desktop b/tdescreensaver/kxsconfig/ScreenSavers/pong.desktop
new file mode 100644
index 00000000..969f50e1
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/pong.desktop
@@ -0,0 +1,208 @@
+[Desktop Entry]
+Exec=pong
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Miscellaneous
+Name=Pong
+Name[el]=Πονγκ
+Name[es]=Peste
+Name[fa]=بوی گند
+Name[he]=פונג
+Name[hi]=पॉग
+Name[ja]=ãƒãƒ³
+Name[ka]=პინგ-პáƒáƒœáƒ’ი
+Name[mk]=Понг
+Name[ne]=पोङ
+Name[ru]=Пинг-понг
+Name[sr]=Понг
+Name[tg]=Пинг-понг
+Name[tr]=Koku
+Name[uk]=Пінг-понг
+Name[zh_CN]=乓
+
+[Desktop Action Setup]
+Exec=kxsconfig pong
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun pong -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun pong -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/popsquares.desktop b/tdescreensaver/kxsconfig/ScreenSavers/popsquares.desktop
new file mode 100644
index 00000000..b9b3682c
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/popsquares.desktop
@@ -0,0 +1,226 @@
+[Desktop Entry]
+Exec=popsquares
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=Visit to Flatland
+Name=Popsquares
+Name[ca]=Quadrats Pop
+Name[cy]=SgwariauPop
+Name[de]=Tanzboden
+Name[eo]=KrevKvadroj
+Name[es]=Cuadrados Pop
+Name[et]=Hüpikruudud
+Name[eu]=Pop karratuak
+Name[fr]=Carrés pops
+Name[fy]=Popfjouwerkanten
+Name[gl]=Cadrados Pop
+Name[he]=×ž×œ×‘× ×™× ×¦×‘×¢×•× ×™×™×
+Name[hi]=पॉपसà¥à¤•à¥à¤µà¥‡à¤…रà¥à¤¸
+Name[hu]=Négyzetek
+Name[ja]=ãƒãƒƒãƒ—スクウェア
+Name[ka]=კვáƒáƒ“რáƒáƒ¢áƒ”ბი
+Name[mk]=Скок-квадрати
+Name[nb]=Pop-kvadrater
+Name[nds]=Popveerecks
+Name[ne]=पपसà¥à¤•à¥à¤µà¤¾à¤¯à¤°
+Name[nl]=Popvierkanten
+Name[nn]=Pop-kvadrat
+Name[pl]=Popkwadraty
+Name[pt]=Quadrados Pop
+Name[pt_BR]=Quadrados Pop
+Name[ru]=Цветомузыка
+Name[sl]=Kvadrati
+Name[sr]=Поп-квадрати
+Name[sr@Latn]=Pop-kvadrati
+Name[sv]=Uppdykande fyrkanter
+Name[ta]=பிதà¯à®™à¯à®•à¯à®šà®¤à¯à®°à®™à¯à®•à®³à¯
+Name[tg]=ГулмуÑиқӣ
+Name[uk]=Світломузика
+Name[zh_CN]=跳跳方
+
+[Desktop Action Setup]
+Exec=kxsconfig popsquares
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun popsquares -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun popsquares -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/providence.desktop b/tdescreensaver/kxsconfig/ScreenSavers/providence.desktop
new file mode 100644
index 00000000..5f1c3c10
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/providence.desktop
@@ -0,0 +1,221 @@
+[Desktop Entry]
+Exec=providence
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=Providence
+Name[br]=Provideñs
+Name[de]=Fürsorge
+Name[el]=ΠÏόνοια
+Name[eo]=Providenco
+Name[es]=Providencia
+Name[et]=Providentsia
+Name[eu]=Probidentzia
+Name[fa]=آینده‌نگری
+Name[gl]=Providéncia
+Name[hi]=विधाता
+Name[it]=Provvidenza
+Name[ka]=ჭვრეტáƒ
+Name[mk]=Провидение
+Name[nb]=Forsyn
+Name[nds]=Schicksal
+Name[ne]=पूरà¥à¤µà¤¦à¥ƒà¤·à¥à¤Ÿà¤¿
+Name[pt_BR]=Providência
+Name[ro]=Providenţă
+Name[ru]=Провидение
+Name[sr]=Провиђење
+Name[sr@Latn]=Proviđenje
+Name[sv]=Försyn
+Name[tg]=Гузарондан
+Name[tr]=Öngörü
+Name[uk]=ПровидіннÑ
+Name[vi]=Dự phòng
+Name[zh_CN]=上å¸
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig providence
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun providence -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun providence -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/pulsar.desktop b/tdescreensaver/kxsconfig/ScreenSavers/pulsar.desktop
new file mode 100644
index 00000000..e0572d4c
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/pulsar.desktop
@@ -0,0 +1,229 @@
+[Desktop Entry]
+Exec=pulsar
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Pulsar (GL)
+Name[af]=Pulsar (Gl)
+Name[bg]=ПулÑар (GL)
+Name[ca]=Polsar (GL)
+Name[cs]=Radar (GL)
+Name[cy]=Curiadydd (GL)
+Name[de]=Pulsar
+Name[el]=Î Î¬Î»ÏƒÎ±Ï (GL)
+Name[eo]=Pulsanta stelo (graf. bibl.)
+Name[es]=Púlsar (GL)
+Name[eu]=Pulsarra (GL)
+Name[fa]=پولسار (GL)
+Name[fi]=Pulsari (GL)
+Name[gl]=Púlsar (GL)
+Name[he]=×ž×™×©×•×¨×™× ×ž×¡×ª×•×‘×‘×™× (GL)
+Name[hi]=इंदà¥à¤° फलक (जीà¤à¤²)
+Name[hu]=Pulzár (OpenGL)
+Name[ja]=パルサー (GL)
+Name[ka]=პულსáƒáƒ áƒ˜ (GL)
+Name[lv]=LÄzeris (GL)
+Name[mk]=ПулÑар (GL)
+Name[mt]=Pulsari (GL)
+Name[nds]=Pulsaar (GL)
+Name[ne]=पलà¥à¤¸à¤° (GL)
+Name[ru]=ПульÑар (GL)
+Name[sl]=Pulzar (GL)
+Name[sr]=ПулÑар (GL)
+Name[ta]=பலà¯à®šà®¾à®°à¯(GL)
+Name[tg]=ПульÑар (GL)
+Name[th]=ชีพจร (GL)
+Name[tr]=Atıcı (GL)
+Name[uk]=ПульÑар (GL)
+Name[vi]= Ẩn tinh (GL)
+Name[xh]=Icebo lokwandisa amaza kanomathotholo (GL)
+Name[zh_CN]=脉冲星(GL)
+Name[zh_TW]=Plusar (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig pulsar
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun pulsar -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun pulsar -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/pyro.desktop b/tdescreensaver/kxsconfig/ScreenSavers/pyro.desktop
new file mode 100644
index 00000000..8d23b0b3
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/pyro.desktop
@@ -0,0 +1,232 @@
+[Desktop Entry]
+Exec=pyro
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Pyro
+Name[br]=Tan-arvest
+Name[ca]=Focs
+Name[cs]=Ohňostroj
+Name[de]=Feuerwerk
+Name[eo]=Piroteknikaĵo
+Name[es]=Pirotecnia
+Name[et]=Püro
+Name[eu]=Piroteknia
+Name[fa]=پیرو
+Name[fi]=Ilotulitus
+Name[fr]=Feu d'artifice
+Name[gl]=Pirotécnia
+Name[he]=זיקוקי×
+Name[hi]=आतिशबाज़ी
+Name[hu]=Tűzijáték
+Name[it]=Fuochi d'artificio
+Name[ja]=花ç«
+Name[ka]=პირáƒáƒ¢áƒ”ქნიკáƒ
+Name[mk]=Пиротехника
+Name[mt]=Murtali
+Name[nds]=Füerwark
+Name[ne]=पाइरो
+Name[nn]=Fyrverkeri
+Name[pl]=Piro
+Name[pt_BR]=Piro
+Name[ro]=Piroman
+Name[ru]=Салют
+Name[sl]=Piro
+Name[sr]=Пиро
+Name[sr@Latn]=Piro
+Name[ta]=நெரà¯à®ªà¯à®ªà®¾à®©
+Name[tg]=Салют
+Name[th]=ยิงพลุ
+Name[tr]=AteÅŸli
+Name[uk]=Салют
+Name[xh]=iPyro
+Name[zh_CN]=ç„°ç«
+Name[zh_TW]=ç„°ç«
+Name[zu]=iPyro
+
+[Desktop Action Setup]
+Exec=kxsconfig pyro
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun pyro -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun pyro -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/qix.desktop b/tdescreensaver/kxsconfig/ScreenSavers/qix.desktop
new file mode 100644
index 00000000..ea4dce9d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/qix.desktop
@@ -0,0 +1,204 @@
+[Desktop Entry]
+Exec=qix
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Rapid Motion
+Name=Qix
+Name[he]=×§×•×•×™× ×ž×˜×™×™×œ×™×
+Name[hi]=हड़बड़िया
+Name[ka]=მáƒáƒ«áƒ áƒáƒ•áƒ˜ ხáƒáƒ–ები
+Name[mk]=КикÑ
+Name[ne]=कà¥à¤µà¤¿à¤•à¥à¤¸
+Name[ru]=Живые линии
+Name[sr]=КикÑ
+Name[sr@Latn]=Kiks
+Name[tg]=Рахҳои зинда
+Name[uk]=Швидкі лінії
+Name[zh_CN]=跳动的线æ¡
+
+[Desktop Action Setup]
+Exec=kxsconfig qix
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun qix -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun qix -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/queens.desktop b/tdescreensaver/kxsconfig/ScreenSavers/queens.desktop
new file mode 100644
index 00000000..56d92015
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/queens.desktop
@@ -0,0 +1,240 @@
+[Desktop Entry]
+Exec=queens
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Queens
+Name[bg]=Кралици
+Name[br]=Rouanezed
+Name[ca]=Reines
+Name[cs]=Královny
+Name[cy]=Brenhinesau
+Name[da]=Dronninger
+Name[de]=Königinnen
+Name[el]=Βασίλισσες
+Name[es]=Reinas
+Name[et]=Malelipud
+Name[eu]=Erreginak
+Name[fa]=ملکه‌ها
+Name[fi]=Kuningattaret
+Name[fo]=Drotningar
+Name[fr]=Reines
+Name[fy]=Keninginnen
+Name[gl]=Raiñas
+Name[he]=מלכות
+Name[hi]=मोहरे
+Name[it]=Regine
+Name[ja]=クィーン
+Name[ka]=დედáƒáƒ¤áƒšáƒ”ბი
+Name[mk]=Кралици
+Name[ms]=Ratu
+Name[nb]=Dronninger
+Name[nds]=Königinnen
+Name[ne]=रानी
+Name[nn]=Dronningar
+Name[pa]=ਰਾਣੀਆਂ
+Name[pt]=Rainhas
+Name[pt_BR]=Rainhas
+Name[ro]=Regine
+Name[ru]=Королевы
+Name[sl]=Kraljice
+Name[sr]=Краљице
+Name[sr@Latn]=Kraljice
+Name[sv]=Drottningar
+Name[ta]=ராணிகளà¯
+Name[tg]=Маликаҳо
+Name[tr]=Kraliçeler
+Name[uk]=Королеви
+Name[ven]=Magombagomba
+Name[vi]=Hoàng hậu
+Name[zh_CN]=皇åŽ
+Name[zh_TW]=皇åŽ
+Name[zu]=Izindlovukazi
+
+[Desktop Action Setup]
+Exec=kxsconfig queens
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun queens -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun queens -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/rd-bomb.desktop b/tdescreensaver/kxsconfig/ScreenSavers/rd-bomb.desktop
new file mode 100644
index 00000000..8195f857
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/rd-bomb.desktop
@@ -0,0 +1,232 @@
+[Desktop Entry]
+Exec=rd-bomb
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=RD-Bomb
+Name[ca]=Bomba-RD
+Name[cy]=RD-Bom
+Name[da]=RD-bombe
+Name[de]=RD-Bomben
+Name[el]=RD-βόμβα
+Name[es]=Bomba-RD
+Name[et]=RD-pomm
+Name[eu]=RD-Lehergailua
+Name[fa]=بمب - RD
+Name[fi]=RD-pommi
+Name[fr]=Bombe RD
+Name[fy]=RD-Bom
+Name[gl]=Bomba-RD
+Name[he]=צורות מתפשטות
+Name[hi]=आरडी-बम
+Name[hu]=RD-bomba
+Name[it]=Bomba RD
+Name[ja]=RD-ボム
+Name[ka]=RD-ბáƒáƒ›áƒ‘ი
+Name[mk]=РД-бомба
+Name[nb]=RD-bombe
+Name[ne]=RD-बमà¥à¤¬
+Name[nn]=RD-bombe
+Name[pl]=Bomba RD
+Name[pt]=Bomba RD
+Name[pt_BR]=Bomba RD
+Name[ru]=РД-Бомба
+Name[sl]=RD-bomba
+Name[sr]=РД-бомба
+Name[sr@Latn]=RD-bomba
+Name[sv]=RD-bomb
+Name[ta]=RD-வெடிகà¯à®£à¯à®Ÿà¯
+Name[tg]=РД-Бомба
+Name[uk]=РД-бомба
+Name[ven]=RD-Bomo
+Name[vi]=Bom-RD
+Name[zh_CN]=炸弹
+Name[zh_TW]=RD-炸彈
+Name[zu]=RD-Ibomu
+
+[Desktop Action Setup]
+Exec=kxsconfig rd-bomb
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun rd-bomb -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun rd-bomb -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/ripples.desktop b/tdescreensaver/kxsconfig/ScreenSavers/ripples.desktop
new file mode 100644
index 00000000..9b6cebc0
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/ripples.desktop
@@ -0,0 +1,237 @@
+[Desktop Entry]
+Exec=ripples
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Type=ManipulateScreen
+X-TDE-Category=Gadgets & Simulations
+Name=Ripples
+Name[ca]=Rínxols
+Name[cs]=Vlnky
+Name[cy]=Crychdonni
+Name[de]=Kräuselungen
+Name[el]=ΘÏοÎσματα
+Name[es]=Rizos
+Name[et]=Säbrutus
+Name[eu]=Txirikordak
+Name[fa]=موجها
+Name[fi]=Väreet
+Name[fr]=Ondulations
+Name[gl]=Rizos
+Name[he]=טיפות
+Name[hi]=लहरें
+Name[is]=Bylgjur
+Name[it]=Ondulazioni
+Name[ja]=ã•ã–æ³¢
+Name[ka]=წვიმის წვეთები
+Name[mk]=Бранување
+Name[ms]=Berombak
+Name[mt]=Mewġ żgħar
+Name[nb]=Krusninger
+Name[nds]=Riffeln
+Name[ne]=रिपल
+Name[nn]=Småbølgjer
+Name[pl]=Plusk
+Name[pt]=Ondas
+Name[pt_BR]=Ondulações
+Name[ro]=Unde
+Name[ru]=Капли дождÑ
+Name[sl]=Valovanje
+Name[sr]=ТалаÑићи
+Name[sr@Latn]=Talasići
+Name[sv]=Krusningar
+Name[ta]=அலைகளà¯
+Name[tg]=Чакраи борон
+Name[tr]=Dalgacık
+Name[uk]=Брижі
+Name[ven]=U bvisa
+Name[vi]=Sóng lăn tăn
+Name[zh_CN]=雨打å±å¹•
+Name[zh_TW]=漣漪
+Name[zu]=Okuntantayo
+
+[Desktop Action Setup]
+Exec=kxsconfig ripples
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun ripples -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun ripples -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/rocks.desktop b/tdescreensaver/kxsconfig/ScreenSavers/rocks.desktop
new file mode 100644
index 00000000..95ce1b81
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/rocks.desktop
@@ -0,0 +1,244 @@
+[Desktop Entry]
+Exec=rocks
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Flying Things
+Name=Rocks
+Name[af]=Klippe
+Name[bg]=Камъни
+Name[ca]=Roques
+Name[cs]=Kameny
+Name[cy]=Creigiau
+Name[da]=Klipper
+Name[de]=Asteroidenflug
+Name[el]=Î’Ïάχοι
+Name[es]=Rocas
+Name[et]=Rahnud
+Name[eu]=Harkaitzak
+Name[fa]=صخره‌ها
+Name[fi]=Kivet
+Name[fo]=Steinar
+Name[fr]=Roches
+Name[fy]=Rotsen
+Name[gl]=Rochas
+Name[he]=×סטרו×ידי×
+Name[hi]=चटà¥à¤Ÿà¤¾à¤¨à¥‡à¤‚
+Name[hu]=Sziklák
+Name[is]=Steinar
+Name[it]=Rocce
+Name[ja]=岩
+Name[ka]=áƒáƒ¡áƒ¢áƒ”რáƒáƒ˜áƒ“ები
+Name[mk]=Карпи
+Name[ms]=Batuan
+Name[mt]=Blat
+Name[nb]=Steiner
+Name[nds]=Steenfeld
+Name[ne]=चटà¥à¤Ÿà¤¾à¤¨
+Name[nl]=Rotsen
+Name[nn]=Stein
+Name[pl]=Skały
+Name[pt]=Rochas
+Name[pt_BR]=Pedras
+Name[ro]=Pietre
+Name[ru]=ÐÑтероиды
+Name[sl]=Skale
+Name[sr]=Стене
+Name[sr@Latn]=Stene
+Name[sv]=Stenbumling
+Name[ta]=பாறைகளà¯
+Name[tg]=ÐÑтероидҳо
+Name[th]=หิน
+Name[tr]=Mücevher
+Name[uk]=ÐÑтероїди
+Name[ven]=Matombo
+Name[vi]=Äá
+Name[zh_CN]=陨石
+Name[zh_TW]=岩石
+Name[zu]=Amatshe
+
+[Desktop Action Setup]
+Exec=kxsconfig rocks
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun rocks -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun rocks -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/rorschach.desktop b/tdescreensaver/kxsconfig/ScreenSavers/rorschach.desktop
new file mode 100644
index 00000000..ef483d6b
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/rorschach.desktop
@@ -0,0 +1,207 @@
+[Desktop Entry]
+Exec=rorschach
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Rorschach
+Name[el]=Κηλίδες
+Name[he]=מבחן רורש×ך
+Name[hi]=रॉरà¥à¤¸à¤šà¤¾à¤•à¥
+Name[ja]=ロールシャッãƒ
+Name[ka]=რáƒáƒ áƒ¨áƒáƒ®áƒ˜
+Name[mk]=Роршах
+Name[ne]=रोरà¥à¤¸à¤šà¥à¤¯à¤¾à¤š
+Name[ru]=Роршах
+Name[sr]=Роршах
+Name[sr@Latn]=Roršah
+Name[ta]=ரொரà¯à®¸à®¾à®šà¯
+Name[tg]=Роршах
+Name[uk]=Роршах
+Name[zh_CN]=墨迹
+
+[Desktop Action Setup]
+Exec=kxsconfig rorschach
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun rorschach -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun rorschach -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/rotor.desktop b/tdescreensaver/kxsconfig/ScreenSavers/rotor.desktop
new file mode 100644
index 00000000..4158f7b9
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/rotor.desktop
@@ -0,0 +1,215 @@
+[Desktop Entry]
+Exec=rotor
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Flying Things
+Name=Rotor
+Name[bg]=Ротор
+Name[el]=ΣτÏοφέας
+Name[et]=Keerutaja
+Name[eu]=Errotorea
+Name[fa]=روتور
+Name[fi]=Roottori
+Name[he]=רוטור
+Name[hi]=रोटर
+Name[it]=Rotore
+Name[ja]=ローター
+Name[ka]=რáƒáƒ¢áƒáƒ áƒ˜
+Name[mk]=Ротор
+Name[ne]=रोटर
+Name[pa]=ਰੋਟਰ
+Name[ru]=Ротор
+Name[sr]=Ротор
+Name[tg]=Ротор
+Name[uk]=Ротор
+Name[uz@cyrillic]=Ротор
+Name[vi]=Äá»™ng cÆ¡ quay
+Name[zh_CN]=转动
+Name[zh_TW]=轉動
+
+[Desktop Action Setup]
+Exec=kxsconfig rotor
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun rotor -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun rotor -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/rotzoomer.desktop b/tdescreensaver/kxsconfig/ScreenSavers/rotzoomer.desktop
new file mode 100644
index 00000000..86f09bad
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/rotzoomer.desktop
@@ -0,0 +1,216 @@
+[Desktop Entry]
+Exec=rotzoomer
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=RotZoomer
+Name[cy]=PydrChwyddydd
+Name[de]=Rotieren und Vergrößern
+Name[et]=Pöörlev Suurendus
+Name[fa]=بزرگ‌نماکنندۀ چرخش
+Name[fi]=Rototarkennin
+Name[he]=זו×
+Name[hi]=रॉट-ज़ूमर
+Name[ja]=ロットズーマー
+Name[ka]=მცდáƒáƒ áƒ˜ ლუპáƒ
+Name[mk]=Зумирано раÑпаѓање
+Name[nb]=Roterende zoom
+Name[nds]=Gröttdreihen
+Name[ne]=रोटजूमर
+Name[nn]=Roterande skalering
+Name[ru]=Ð’Ð·Ð´Ð¾Ñ€Ð½Ð°Ñ Ð»ÑƒÐ¿Ð°
+Name[sl]=Vrtilni poveÄevalnik
+Name[sr]=Рот-зумер
+Name[sr@Latn]=Rot-zumer
+Name[sv]=Roterade zoom
+Name[tg]=Шишаи муҳаддаб кашида боло бардошта шуда
+Name[uk]=Дивна лупа
+Name[zh_CN]=转动缩放
+
+[Desktop Action Setup]
+Exec=kxsconfig rotzoomer
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun rotzoomer -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun rotzoomer -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/rubik.desktop b/tdescreensaver/kxsconfig/ScreenSavers/rubik.desktop
new file mode 100644
index 00000000..9e252612
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/rubik.desktop
@@ -0,0 +1,248 @@
+[Desktop Entry]
+Exec=rubik
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Rubik Cube (GL)
+Name[af]=Rubik Kubus (Gl)
+Name[bg]=Кубчето на Рубик (GL)
+Name[br]=Diñs Rubik (GL)
+Name[ca]=Cub de Rubik (GL)
+Name[cs]=Rubikova kostka (GL)
+Name[cy]=Ciwb Rubik (GL)
+Name[da]=Rubiks kubus (GL)
+Name[de]=Rubiks Würfel
+Name[el]=ΚÏβος του ΡοÏμπικ (GL)
+Name[eo]=Rubikkubo (graf. bibl.)
+Name[es]=Cubo de Rubick (GL)
+Name[et]=Rubiku kuubik (GL)
+Name[eu]=Rubik kuboa (GL)
+Name[fa]=مکعب Rubik (GL)
+Name[fi]=Rubikin kuutio (GL)
+Name[fo]=Rubiks terningur (GL)
+Name[ga]=Ciúb Rubik (GL)
+Name[gl]=Cubo de Rubick (GL)
+Name[he]=קוביה הונגרית (GL)
+Name[hi]=रूबिक कà¥à¤¯à¥‚ब (जीà¤à¤²)
+Name[hu]=Bűvös kocka (OpenGL)
+Name[is]=Rubiksteningur (GL)
+Name[it]=Cubo di Rubik (GL)
+Name[ja]=ルービックキューブ (GL)
+Name[ka]=რუბიკის კუბიკი (GL)
+Name[lt]=Rubiko Kubas (GL)
+Name[lv]=Kubiks Rubiks (GL)
+Name[mk]=Рубикова коцка (GL)
+Name[ms]=Kiub Rubik (GL)
+Name[mt]=Kubu ta' Rubik (GL)
+Name[nb]=Rubiks kube (GL)
+Name[nds]=Rubik-Wörpel (GL)
+Name[ne]=रà¥à¤¬à¤¿à¤• घन (GL)
+Name[nn]=Rubiks kube (GL)
+Name[pl]=Kostka Rubika (GL)
+Name[pt]=Cubo de Rubik (GL)
+Name[pt_BR]=Cubo de Rubik (GL)
+Name[ro]=Cub Rubik (GL)
+Name[ru]=Кубик Рубика (GL)
+Name[sk]=Rubikova kocka (GL)
+Name[sl]=Rubikova kocka (GL)
+Name[sr]=Рубикова коцка (GL)
+Name[sr@Latn]=Rubikova kocka (GL)
+Name[sv]=Rubiks kub (GL)
+Name[ta]=ரூபிக௠படà¯à®Ÿà®•à®®à¯ (GL)
+Name[tg]=Кубики Рубик(GL)
+Name[th]=à¸à¸¥à¹ˆà¸­à¸‡à¸£à¸¹à¸šà¸´à¸„ (GL)
+Name[tr]=Rubik Küp (GL)
+Name[uk]=Кубик Рубіка (GL)
+Name[vi]=Khối Ru bíc (GL)
+Name[xh]=Umbhobho we Rubik (GL)
+Name[zh_CN]=魔方(GL)
+Name[zh_TW]=魔術方塊 (GL)
+Name[zu]=Iqhezu le-Rbik (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig rubik
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun rubik -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun rubik -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/sballs.desktop b/tdescreensaver/kxsconfig/ScreenSavers/sballs.desktop
new file mode 100644
index 00000000..310df622
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/sballs.desktop
@@ -0,0 +1,223 @@
+[Desktop Entry]
+Exec=sballs
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Sballs
+Name[ca]=Pilotes lluents
+Name[cy]=Sbelli
+Name[de]=Rotierende Bälle
+Name[es]=BolasS
+Name[et]=Keerdpallid
+Name[eu]=Spilotak
+Name[fr]=Boules S
+Name[fy]=Sballen
+Name[gl]=BolasS
+Name[he]=×›×“×•×¨×™× ×ž×¨×—×¤×™×
+Name[hi]=à¤à¤¸-बॉलà¥à¤¸
+Name[ja]=Sボール
+Name[ka]=შეშლილი ბურთები
+Name[mk]=Стопки
+Name[nb]=S-baller
+Name[nds]=Ruumbäll
+Name[nn]=S-ballar
+Name[pt_BR]=Bolas S
+Name[ru]=СумаÑшедшие мÑчики
+Name[sl]=VrteÄe žoge
+Name[sr]=С-лопте
+Name[sr@Latn]=S-lopte
+Name[sv]=S-bollar
+Name[ta]=Sபநà¯à®¤à¯à®•à¯à®•à®³à¯
+Name[tg]=Тӯпҳои девона
+Name[uk]=Божевільні м'Ñчі
+Name[vi]=Bóng S
+Name[zh_CN]=旋转çƒ
+Name[zh_TW]=旋轉çƒ
+
+[Desktop Action Setup]
+Exec=kxsconfig sballs
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun sballs -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun sballs -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/shadebobs.desktop b/tdescreensaver/kxsconfig/ScreenSavers/shadebobs.desktop
new file mode 100644
index 00000000..8c036597
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/shadebobs.desktop
@@ -0,0 +1,218 @@
+[Desktop Entry]
+Exec=shadebobs
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=ShadeBobs
+Name[ca]=Amaga pilotes
+Name[cy]=SiglauCysgod
+Name[et]=Varjujoad
+Name[fa]=بالا Ùˆ پایین رÙتن سایه
+Name[fi]=ShadeBobit
+Name[he]=× ×™×ון
+Name[hi]=शेड-बॉबà¥à¤¸
+Name[ja]=シェイドボブ
+Name[ka]=მáƒáƒœáƒáƒ—áƒáƒ‘ელი კვáƒáƒšáƒ˜
+Name[mk]=ÐеонÑки траги
+Name[nb]=Skygger
+Name[ne]=सेडबबà¥à¤¸
+Name[nn]=Skuggar
+Name[pt_BR]=Shadebobs
+Name[ru]=СветÑщийÑÑ Ñлед
+Name[sl]=SenÄni dotiki
+Name[sr]=Ðеонке
+Name[sr@Latn]=Neonke
+Name[sv]=Skuggor
+Name[ta]=நிழலà¯à®ªà®¾à®ªà¯à®•à®³à¯
+Name[tg]=Равшаннокии пай
+Name[uk]=Сліди з Ñвітла
+Name[vi]=Bóng râm Quả lắc
+Name[zh_CN]=霓虹ç¯ç®¡
+Name[zh_TW]=霓虹燈管
+
+[Desktop Action Setup]
+Exec=kxsconfig shadebobs
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun shadebobs -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun shadebobs -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/sierpinski.desktop b/tdescreensaver/kxsconfig/ScreenSavers/sierpinski.desktop
new file mode 100644
index 00000000..70273575
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/sierpinski.desktop
@@ -0,0 +1,208 @@
+[Desktop Entry]
+Exec=sierpinski
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Sierpinski
+Name[fy]=Sierpinsky
+Name[he]=משולש סירפינסקי
+Name[hi]=सायरपिंसà¥à¤•à¥€
+Name[ja]=シェルピンスキー
+Name[ka]=სერპინსკის მრუდი
+Name[mk]=СиерпинÑки
+Name[ne]=सिरपिनà¥à¤¸à¥à¤•à¥€
+Name[pl]=Sierpiński
+Name[ru]=СерпинÑкий
+Name[sr]=СјерпинÑки
+Name[sr@Latn]=Sjerpinski
+Name[ta]=செரà¯à®ªà®¿à®©à¯à®¸à¯à®•à®¿
+Name[tg]=Серпинӣ
+Name[uk]=СерпинÑький
+Name[zh_CN]=Sierpinski 三角形
+
+[Desktop Action Setup]
+Exec=kxsconfig sierpinski
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun sierpinski -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun sierpinski -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/sierpinski3d.desktop b/tdescreensaver/kxsconfig/ScreenSavers/sierpinski3d.desktop
new file mode 100644
index 00000000..f317d9c9
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/sierpinski3d.desktop
@@ -0,0 +1,220 @@
+[Desktop Entry]
+Exec=sierpinski3d
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Sierpinski3D
+Name[de]=Sierpinski 3D
+Name[fo]=3D Sierpinski
+Name[fy]=Sierpinsky3D
+Name[he]=משולש סירפינסקי תלת־מימדי
+Name[hi]=सायरपिंसà¥à¤•à¥€3डी
+Name[it]=Sierpinski 3D
+Name[ja]=シェルピンスキー 3D
+Name[ka]=სერპინსკი (3D)
+Name[mk]=СиерпинÑки3Д
+Name[nb]=Sierpinski 3D
+Name[nds]=Sierpinski 3D
+Name[ne]=तà¥à¤°à¤¿-आयामिक सिरपिनà¥à¤¸à¥à¤•à¥€
+Name[nn]=Sierpinski 3D
+Name[pl]=Sierpiński 3D
+Name[pt_BR]=Sierpinski 3D
+Name[ro]=Sierpinski 3D
+Name[ru]=СерпинÑкий (3D)
+Name[sl]=Sierpinski 3D
+Name[sr]=СјерпинÑки 3Д
+Name[sr@Latn]=Sjerpinski 3D
+Name[sv]=Sierpinski 3D
+Name[ta]=செரà¯à®ªà®¿à®©à¯à®¸à¯à®•à®¿3டி
+Name[tg]=Серпинӣ (3D)
+Name[uk]=СерпинÑький (3D)
+Name[vi]=Sierpinski 3 chiá»u
+Name[zh_CN]=Sierpinski 立体三角锥
+
+[Desktop Action Setup]
+Exec=kxsconfig sierpinski3d
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun sierpinski3d -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun sierpinski3d -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/skytentacles.desktop b/tdescreensaver/kxsconfig/ScreenSavers/skytentacles.desktop
new file mode 100644
index 00000000..1eeb9631
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/skytentacles.desktop
@@ -0,0 +1,25 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=skytentacles
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=SkyTentacles
+
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+
+[Desktop Action Setup]
+Exec=kxsconfig skytentacles
+Name=Setup...
+
+[Desktop Action InWindow]
+Exec=kxsrun skytentacles -- -window-id %w
+Name=Display in Specified Window
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun skytentacles -- -root
+Name=Display in Root Window
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/slidescreen.desktop b/tdescreensaver/kxsconfig/ScreenSavers/slidescreen.desktop
new file mode 100644
index 00000000..86a6d465
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/slidescreen.desktop
@@ -0,0 +1,241 @@
+[Desktop Entry]
+Exec=slidescreen
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=SlideScreen
+Name[af]=Skyfieskerm
+Name[br]=RuzSkramm
+Name[ca]=Trencaclosques deslliçant
+Name[cy]=LlithroSgrîn
+Name[da]=Glideskærm
+Name[de]=Schiebepuzzle
+Name[el]=Οθόνη σλάιντ
+Name[es]=Rompecabezas deslizante
+Name[et]=Ekraanipusle
+Name[eu]=Puzzle-pantaila
+Name[fa]=پردۀ لغزش
+Name[fi]=LiukuNäyttö
+Name[fr]=Taquin
+Name[fy]=Diaskerm
+Name[gl]=Pantalla deslizante
+Name[he]=תצרף מסך
+Name[hi]=चौखटा-दर-चौखटा
+Name[hu]=Puzzle
+Name[is]=Renna skjá
+Name[it]=Tessere scorrevoli
+Name[ja]=スライドスクリーン
+Name[ka]=სლáƒáƒ˜áƒ“ები
+Name[mk]=Слајд-екран
+Name[ms]=Skrin Leret
+Name[nb]=Skyfle skjermen
+Name[nds]=Schirmschuven
+Name[ne]=सà¥à¤²à¤¾à¤‡à¤¡ सà¥à¤•à¥à¤°à¤¿à¤¨
+Name[nl]=Diascherm
+Name[nn]=Skyv skjermen
+Name[pl]=Slajdy
+Name[pt]=Ecrã Deslizante
+Name[pt_BR]=Tela Deslizante
+Name[ro]=Ecran alunecător
+Name[ru]=Слайды на Ñкране
+Name[sl]=DrseÄi zaslon
+Name[sr]=Клизање екрана
+Name[sr@Latn]=Klizanje ekrana
+Name[sv]=Skyffla skärmen
+Name[ta]=ஸà¯à®²à¯ˆà®Ÿà¯à®¤à®¿à®°à¯ˆ
+Name[tg]=Слайдҳо дар Ñкран
+Name[th]=เลื่อนหน้าจอ
+Name[uk]=ЗÑув екрана
+Name[ven]=Tshikirini tsho peamaho
+Name[vi]=Màn hình Trượt
+Name[zh_CN]=滑动å±å¹•æ‹¼å›¾
+Name[zh_TW]=滑動螢幕
+Name[zu]=Isikrini Sokushibilikayo
+
+[Desktop Action Setup]
+Exec=kxsconfig slidescreen
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun slidescreen -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun slidescreen -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/slip.desktop b/tdescreensaver/kxsconfig/ScreenSavers/slip.desktop
new file mode 100644
index 00000000..d761d2c6
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/slip.desktop
@@ -0,0 +1,234 @@
+[Desktop Entry]
+Exec=slip
+Icon=tdescreensaver
+Type=Application
+
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Rapid Motion
+Name=Slip
+Name[br]=Stlejal
+Name[ca]=Deslliçament
+Name[cy]=Llithro
+Name[eo]=Ĉifonoj
+Name[es]=Deslizamiento
+Name[et]=Libistaja
+Name[eu]=Irristadura
+Name[fa]=لغزش
+Name[fi]=Liutus
+Name[fr]=Glissement
+Name[gl]=Deslizamento
+Name[he]=מנוע סילון
+Name[hi]=सà¥à¤²à¤¿à¤ª
+Name[hu]=Csúszós
+Name[it]=Tessere colorate
+Name[ja]=スリップ
+Name[ka]=ჩáƒáƒ›áƒáƒªáƒ£áƒ áƒ”ბáƒ
+Name[lv]=Slīdošs
+Name[mk]=Лизгање
+Name[ms]=Gelincir
+Name[nb]=Glid
+Name[nds]=Afglitscht
+Name[ne]=सà¥à¤²à¤¿à¤ª
+Name[pt]=Deslizamento
+Name[ru]=Сползание
+Name[sl]=Zdrs
+Name[sr]=Проклизавање
+Name[sr@Latn]=Proklizavanje
+Name[sv]=Glid
+Name[ta]=வழà¯à®•à¯à®•à®¿
+Name[tg]=ОҳиÑта фуромадан
+Name[th]=ลื่นไถล
+Name[tr]=Kayma
+Name[uk]=КовзаннÑ
+Name[ven]=Suvha
+Name[vi]=Trượt
+Name[xh]=Chwechwa ungabonwa
+Name[zh_CN]=滑动å±å¹•
+Name[zh_TW]=滑動
+Name[zu]=Faka ngocezu
+
+[Desktop Action Setup]
+Exec=kxsconfig slip
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun slip -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun slip -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/sonar.desktop b/tdescreensaver/kxsconfig/ScreenSavers/sonar.desktop
new file mode 100644
index 00000000..6b8f0aea
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/sonar.desktop
@@ -0,0 +1,221 @@
+[Desktop Entry]
+Exec=sonar
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Sonar
+Name[bg]=Сонар
+Name[ca]=Sònar
+Name[el]=ΣόναÏ
+Name[eo]=Sonoro
+Name[et]=Radar
+Name[eu]=Sonarra
+Name[fa]=سونار
+Name[fi]=Tutka
+Name[he]=סונ×ר
+Name[hi]=सोनार
+Name[is]=Sónar
+Name[ja]=ソナー
+Name[ka]=სáƒáƒœáƒáƒ áƒ˜
+Name[lt]=Sonaras
+Name[lv]=Saules
+Name[mk]=Сонар
+Name[ne]=सोनार
+Name[ru]=Сонар
+Name[sr]=Сонар
+Name[ta]=சோனாரà¯
+Name[tg]=Сонар
+Name[th]=โซนาร์
+Name[uk]=Ехолот
+Name[vi]=Âm thanh
+Name[xh]=Isandi esiphezulu sokufumana izinto eziphantsi kwamanzi
+Name[zh_CN]=声纳
+Name[zh_TW]=è²ç´
+Name[zu]=Isona
+
+[Desktop Action Setup]
+Exec=kxsconfig sonar
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun sonar -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun sonar -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/speedmine.desktop b/tdescreensaver/kxsconfig/ScreenSavers/speedmine.desktop
new file mode 100644
index 00000000..053c36c4
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/speedmine.desktop
@@ -0,0 +1,224 @@
+[Desktop Entry]
+Exec=speedmine
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=SpeedMine
+Name[cy]=FfrwydonCyflymder
+Name[de]=Tunnelfahrt
+Name[et]=Kiirus kaevanduses
+Name[eu]=MeatzeAzkarra
+Name[fi]=NopeusKaivos
+Name[fr]=Mine rapide
+Name[he]=מנהרה
+Name[hi]=नव गति
+Name[hu]=Speedmine
+Name[ja]=スピードマイン
+Name[ka]=გვირáƒáƒ‘ი
+Name[mk]=Брзо копање
+Name[nb]=Hurtigminer
+Name[nds]=Hoge Fohrt
+Name[ne]=सà¥à¤ªà¤¿à¤¡à¤®à¤¾à¤‡à¤¨
+Name[nn]=Snøggminer
+Name[pl]=Zjazd w kopalni
+Name[pt]=Minas
+Name[pt_BR]=Minas velozes
+Name[ru]=Шахта
+Name[sl]=Hitri rudnik
+Name[sr]=БрзинÑки рудник
+Name[sr@Latn]=Brzinski rudnik
+Name[sv]=Snabbgruva
+Name[ta]=வேககà¯à®•à®£à¯à®£à®¿
+Name[tg]=Тунел
+Name[uk]=Тунель
+Name[ven]=Mugodi wa luvhilo
+Name[vi]=Äồng hồ Tốc Ä‘á»™
+Name[xh]=Isantya Somgodi
+Name[zh_CN]=æžé€ŸçŸ¿äº•
+
+[Desktop Action Setup]
+Exec=kxsconfig speedmine
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun speedmine -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun speedmine -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/sphere.desktop b/tdescreensaver/kxsconfig/ScreenSavers/sphere.desktop
new file mode 100644
index 00000000..d0a5feb8
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/sphere.desktop
@@ -0,0 +1,244 @@
+[Desktop Entry]
+Exec=sphere
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Illusions of Depth
+Name=Sphere
+Name[af]=Sfeer
+Name[bg]=Сфера
+Name[br]=Boull
+Name[ca]=Esfera
+Name[cs]=Koule
+Name[cy]=Sffêr
+Name[da]=Kugle
+Name[de]=Sphäre
+Name[el]=ΣφαίÏα
+Name[es]=Esfera
+Name[et]=Kera
+Name[eu]=Esfera
+Name[fa]=کره
+Name[fi]=Pallo
+Name[fo]=Kúla
+Name[fr]=Sphère
+Name[fy]=Sphear
+Name[gl]=Esfera
+Name[he]=×›×“×•×¨×™× ×¦×‘×¢×•× ×™×™×
+Name[hi]=गोला
+Name[hu]=Gömb
+Name[is]=Hnöttur
+Name[it]=Sfera
+Name[ja]=çƒä½“
+Name[ka]=სფერáƒáƒ”ბი
+Name[mk]=Сфера
+Name[ms]=Sfera
+Name[mt]=Sfera
+Name[nb]=Sfære
+Name[nds]=Kugel
+Name[ne]=गोला
+Name[nn]=Sfære
+Name[pl]=Sfera
+Name[pt]=Esfera
+Name[pt_BR]=Esfera
+Name[ro]=Sferă
+Name[ru]=Сфера
+Name[sl]=Sfera
+Name[sr]=Сфера
+Name[sr@Latn]=Sfera
+Name[sv]=Klot
+Name[ta]=கோளமà¯
+Name[tg]=Кура
+Name[tr]=Küre
+Name[uk]=КулÑ
+Name[uz]=Sfera
+Name[uz@cyrillic]=Сфера
+Name[vi]=Quả cầu
+Name[zh_CN]=çƒä½“
+Name[zh_TW]=çƒé«”
+Name[zu]=Umkhathi
+
+[Desktop Action Setup]
+Exec=kxsconfig sphere
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun sphere -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun sphere -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/spheremonics.desktop b/tdescreensaver/kxsconfig/ScreenSavers/spheremonics.desktop
new file mode 100644
index 00000000..7769cc53
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/spheremonics.desktop
@@ -0,0 +1,226 @@
+[Desktop Entry]
+Exec=spheremonics
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Spheremonics
+Name[ca]=Esferamonics
+Name[cy]=Sfferemonics
+Name[de]=Sphärenharmonie
+Name[el]=ΣφαιÏικές ΑÏμονικές
+Name[es]=Esferamonics
+Name[et]=Sfääride harmoonia
+Name[eu]=Esferemoniakoak
+Name[gl]=Esferamonics
+Name[he]=×›×“×•×¨×™× ×”×¨×ž×•× ×™×™×
+Name[hi]=गोल बंद
+Name[hu]=Szferomónia
+Name[ja]=スフィアモニック
+Name[ka]=სფერული ჰáƒáƒ áƒ›áƒáƒœáƒ˜áƒ™áƒ”ბი
+Name[mk]=Сферомоници
+Name[mt]=Sferamoniċi
+Name[nb]=Sfæreharmonier
+Name[nds]=Kugelharmonien
+Name[ne]=सà¥à¤«à¥‡à¤¯à¤°à¤®à¥‹à¤¨à¤¿à¤•à¥à¤¸
+Name[nn]=Sfæreharmoniar
+Name[pl]=Sferomonia
+Name[pt]=Esferemónicos
+Name[pt_BR]=Esférico
+Name[ru]=СферичеÑкие гармоники
+Name[sl]=Sferemonija
+Name[sr]=Сферомоници
+Name[sr@Latn]=Sferomonici
+Name[sv]=Sfärharmonier
+Name[ta]=கோளாதாரமà¯
+Name[tg]=Кураҳои гармоникӣ
+Name[uk]=СферономіÑ
+Name[zh_CN]=çƒä½“è°æ³¢
+Name[zh_TW]=çƒå½¢æ³¢
+
+[Desktop Action Setup]
+Exec=kxsconfig spheremonics
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun spheremonics -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun spheremonics -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/spiral.desktop b/tdescreensaver/kxsconfig/ScreenSavers/spiral.desktop
new file mode 100644
index 00000000..43a50bf3
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/spiral.desktop
@@ -0,0 +1,237 @@
+[Desktop Entry]
+Exec=spiral
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Illusions of Depth
+Name=Spiral
+Name[bg]=Спирала
+Name[ca]=Espiral
+Name[cs]=Spirála
+Name[cy]=Troelliad
+Name[de]=Spirale
+Name[el]=ΣπειÏοειδής
+Name[es]=Espiral
+Name[et]=Spiraal
+Name[eu]=Espirala
+Name[fa]=حلزونی
+Name[fi]=Spiraali
+Name[fo]=Spiralur
+Name[fr]=Spirale
+Name[gl]=Espiral
+Name[he]=ספירלה
+Name[hi]=सरà¥à¤ªà¤¿à¤²
+Name[hu]=Spirál
+Name[is]=Spírall
+Name[it]=Spirale
+Name[ja]=スパイラル
+Name[ka]=სპირáƒáƒšáƒ˜
+Name[mk]=Спирала
+Name[ms]=Pilin
+Name[mt]=Spirali
+Name[nds]=Spiraal
+Name[ne]=घà¥à¤®à¤¾à¤‰à¤°à¥‹
+Name[pl]=Spirala
+Name[pt]=Espiral
+Name[pt_BR]=Espiral
+Name[ro]=Spirală
+Name[ru]=Спираль
+Name[sl]=Spirala
+Name[sr]=Спирала
+Name[sr@Latn]=Spirala
+Name[ta]=à®®à¯à®±à¯à®•à¯à®•à¯
+Name[tg]=Илтиво
+Name[th]=เà¸à¸¥à¸µà¸¢à¸§
+Name[uk]=Спіральний
+Name[ven]=Zwo songanaho
+Name[vi]=Xoắn ốc
+Name[xh]=Ujijeko
+Name[zh_CN]=螺旋
+Name[zh_TW]=螺旋
+Name[zu]=Okuyindilinga
+
+[Desktop Action Setup]
+Exec=kxsconfig spiral
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun spiral -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun spiral -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/spotlight.desktop b/tdescreensaver/kxsconfig/ScreenSavers/spotlight.desktop
new file mode 100644
index 00000000..79250736
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/spotlight.desktop
@@ -0,0 +1,236 @@
+[Desktop Entry]
+Exec=spotlight
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=Spotlight
+Name[ca]=Focus
+Name[cy]=GolauSbot
+Name[de]=Scheinwerferlicht
+Name[el]=Σημειακός Ï€Ïοβολέας
+Name[es]=Foco
+Name[et]=Valgusvihk
+Name[eu]=Fokua
+Name[fa]=نور نقطه‌ای
+Name[fi]=Kohdevalo
+Name[fo]=Ljóskastari
+Name[fr]=Projecteur
+Name[fy]=Spotsje
+Name[gl]=Foco
+Name[he]=זרקור
+Name[hi]=सà¥à¤ªà¥‰à¤Ÿà¤²à¤¾à¤‡à¤Ÿ
+Name[hu]=Reflektor
+Name[is]=Kastljós
+Name[ja]=スãƒãƒƒãƒˆãƒ©ã‚¤ãƒˆ
+Name[ka]=ფáƒáƒœáƒáƒ áƒ˜
+Name[mk]=Рефлектор
+Name[ms]=Lampu Sorot
+Name[nds]=Lichtstrahler
+Name[ne]=सà¥à¤ªà¤Ÿà¤²à¤¾à¤‡à¤Ÿ
+Name[nn]=Punktlys
+Name[pl]=Światło punktowe
+Name[pt]=Luz Pontual
+Name[pt_BR]=Holofote
+Name[ro]=Reflector
+Name[ru]=Фонарик
+Name[sl]=Žaromet
+Name[sr]=Рефлектор
+Name[sr@Latn]=Reflektor
+Name[ta]=இடஒளி
+Name[tg]=ФонуÑчаи киÑагин
+Name[tr]=Işık
+Name[uk]=Прожектор
+Name[ven]=Luvhone
+Name[vi]=Äèn sân khấu
+Name[xh]=Ukukhanya
+Name[zh_CN]=èšå…‰ç¯
+Name[zh_TW]=探照燈
+Name[zu]=Ilambu lokukhanyisa
+
+[Desktop Action Setup]
+Exec=kxsconfig spotlight
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun spotlight -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun spotlight -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/sproingies.desktop b/tdescreensaver/kxsconfig/ScreenSavers/sproingies.desktop
new file mode 100644
index 00000000..14a50be2
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/sproingies.desktop
@@ -0,0 +1,217 @@
+[Desktop Entry]
+Exec=sproingies
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Sproingies (GL)
+Name[af]=Sproingies (Gl)
+Name[cy]=Sionceiddiau (GL)
+Name[de]=Treppenabstieg
+Name[eo]=Sprojngoj (graf. bibl.)
+Name[et]=Sproingyd (GL)
+Name[fi]=Jouset (GL)
+Name[he]=×§×¤×™×¦×™× (GL)
+Name[hi]=पतनशील (जीà¤à¤²)
+Name[hu]=Sproingies (OpenGL)
+Name[is]=Gormur (GL)
+Name[ka]=ხტუნიები (GL)
+Name[mk]=Федерчиња (GL)
+Name[mt]=Molol (GL)
+Name[ne]=सà¥à¤ªà¥à¤°à¥‹à¤‡à¤™à¥à¤—िस (GL)
+Name[nn]=Sproing (GL)
+Name[pt_BR]=Molas (GL)
+Name[ru]=Перевёртыши на леÑтнице (GL)
+Name[sr]=Завојнице (GL)
+Name[sr@Latn]=Zavojnice (GL)
+Name[ta]=ஸà¯à®ªà¯à®°à¯Šà®¯à¯à®žà¯à®šà®¿à®¸à¯ (GL)
+Name[tg]=Чаппашавӣ дар Ð·Ð¸Ð½Ð°Ð¿Ð¾Ñ (GL)
+Name[th]=ฟองน้ำน่ารัภ(GL)
+Name[uk]=Стрибунці (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig sproingies
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun sproingies -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun sproingies -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/squiral.desktop b/tdescreensaver/kxsconfig/ScreenSavers/squiral.desktop
new file mode 100644
index 00000000..ae4e005a
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/squiral.desktop
@@ -0,0 +1,211 @@
+[Desktop Entry]
+Exec=squiral
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Squiral
+Name[cy]=Sgwoellyn
+Name[et]=Spiruut
+Name[he]=ספירלות ריבועיות
+Name[hi]=सà¥à¤•à¥à¤µà¤¿à¤°à¤²
+Name[ka]=კვáƒáƒ“რáƒáƒ¢áƒ£áƒšáƒ˜ სპირáƒáƒšáƒ˜
+Name[mk]=КвадроÑпирали
+Name[nds]=Spiraat
+Name[ne]=सà¥à¤•à¥à¤µà¤¾à¤‡à¤°à¤²
+Name[pt]=Remoinho
+Name[ru]=Квадратные Ñпирали
+Name[sr]=Квирала
+Name[sr@Latn]=Kvirala
+Name[ta]=அணிலà¯
+Name[tg]=Илтивоҳҳои квадратӣ
+Name[uk]=Квадратні Ñпіралі
+Name[vi]=Bạch tuộc
+Name[zh_CN]=方螺旋
+Name[zh_TW]=方形螺旋
+
+[Desktop Action Setup]
+Exec=kxsconfig squiral
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun squiral -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun squiral -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/stairs.desktop b/tdescreensaver/kxsconfig/ScreenSavers/stairs.desktop
new file mode 100644
index 00000000..097fc82b
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/stairs.desktop
@@ -0,0 +1,251 @@
+[Desktop Entry]
+Exec=stairs
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Stairs (GL)
+Name[af]=Trappe (Gl)
+Name[br]=Diri (GL)
+Name[ca]=Escales (GL)
+Name[cs]=Schody (GL)
+Name[cy]=Grisiau (GL)
+Name[da]=Trapper (GL)
+Name[de]=Treppenstufen
+Name[el]=Σκάλες (GL)
+Name[eo]=Åœtupoj (graf. bibl.)
+Name[es]=Escaleras (GL)
+Name[et]=Astmed (GL)
+Name[eu]=Izarrak (GL)
+Name[fa]=پلکان (GL)
+Name[fi]=Portaat (GL)
+Name[fo]=Trappur (GL)
+Name[fr]=Escaliers (GL)
+Name[fy]=Treppens (GL)
+Name[gl]=Escadas (GL)
+Name[he]=מדרגות ×ינסופיות (GL)
+Name[hi]=सीढ़ियाठ(जीà¤à¤²)
+Name[hu]=Lépcső (OpenGL)
+Name[is]=Stigar (GL)
+Name[it]=Scale (GL)
+Name[ja]=階段 (GL)
+Name[ka]=სáƒáƒ¤áƒ”ხურები (GL)
+Name[lt]=Laiptai (GL)
+Name[lv]=PakÄpieni (GL)
+Name[mk]=Скали (GL)
+Name[ms]=Tangga (GL)
+Name[mt]=Taraġ (GL)
+Name[nb]=Trapper (GL)
+Name[nds]=Trappstopen (GL)
+Name[ne]=भरà¥à¤¯à¤¾à¤™ (GL)
+Name[nn]=Trapper (GL)
+Name[pl]=Schody (GL)
+Name[pt]=Escadas (GL)
+Name[pt_BR]=Degraus (GL)
+Name[ro]=Trepte (GL)
+Name[ru]=Ступени (GL)
+Name[sk]=Schody (GL)
+Name[sl]=Stopnice (GL)
+Name[sr]=Степенице (GL)
+Name[sr@Latn]=Stepenice (GL)
+Name[sv]=Trappor (GL)
+Name[ta]=படிகளà¯(GL)
+Name[tg]=Зина (GL)
+Name[th]=ขั้นบันได (GL)
+Name[tr]=Basamaklar (GL)
+Name[uk]=Сходинки (GL)
+Name[uz]=Zina (GL)
+Name[uz@cyrillic]=Зина (GL)
+Name[ven]=Zwitepisi (GL)
+Name[vi]=Cầu thang (GL)
+Name[xh]=Amanqwanqwa (GL)
+Name[zh_CN]=楼梯(GL)
+Name[zh_TW]=階梯 (GL)
+Name[zu]=Izitembisi (GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig stairs
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun stairs -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun stairs -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/starfish.desktop b/tdescreensaver/kxsconfig/ScreenSavers/starfish.desktop
new file mode 100644
index 00000000..48e606d5
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/starfish.desktop
@@ -0,0 +1,245 @@
+[Desktop Entry]
+Exec=starfish
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Starfish
+Name[af]=Seester
+Name[br]=Steredenn-vor
+Name[ca]=Estrella de mar
+Name[cs]=Hvězdice
+Name[cy]=Seren y Môr
+Name[da]=Stjernefisk
+Name[de]=Seestern
+Name[eo]=Marstelo
+Name[es]=Estrella de mar
+Name[et]=Meritäht
+Name[eu]=Itsasizarra
+Name[fa]=ستارۀ دریایی
+Name[fi]=Tähtikala
+Name[fr]=Étoile de mer
+Name[fy]=Stjerfisk
+Name[gl]=Estrela de mar
+Name[he]=כוכבי×
+Name[hi]=तारामछली
+Name[hu]=Csillaghal
+Name[is]=Krossfiskur
+Name[it]=Pesce stellare
+Name[ja]=ヒトデ
+Name[ka]=ზღვის ვáƒáƒ áƒ¡áƒ™áƒ•áƒšáƒáƒ•áƒ˜
+Name[lt]=Jūros žvaigždė
+Name[lv]=JÅ«ras zvaigzne
+Name[mk]=МорÑка ѕвезда
+Name[ms]=Tapak Sulaiman
+Name[mt]=Stilla tal-Baħar
+Name[nb]=Sjøstjerne
+Name[nds]=Seesteern
+Name[ne]=सà¥à¤Ÿà¤¾à¤°à¤«à¤¿à¤¸
+Name[nn]=Stjernefisk
+Name[pa]=ਤਾਰਾ ਮੱਛੀ
+Name[pt]=Peixe Estrela
+Name[pt_BR]=Estrela-do-mar
+Name[ru]=Звезда
+Name[sk]=Morská hviezdica
+Name[sl]=Morska zvezda
+Name[sr]=МорÑка звезда
+Name[sr@Latn]=Morska zvezda
+Name[sv]=Sjöstjärna
+Name[ta]=நடà¯à®šà®¤à¯à®¤à®¿à®°à®®à¯€à®©à¯
+Name[tg]=Ситора
+Name[th]=ปลาดาว
+Name[tr]=Deniz Yıldızı
+Name[uk]=МорÑька зірка
+Name[ven]=Khovhe ya Vhukoni
+Name[vi]=Sao biển
+Name[xh]=Intlanzi emilise okwenkwenkwezi
+Name[zh_CN]=海星
+Name[zh_TW]=海星
+Name[zu]=Ufishi oyinkanyezi
+
+[Desktop Action Setup]
+Exec=kxsconfig starfish
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun starfish -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun starfish -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/starwars.desktop b/tdescreensaver/kxsconfig/ScreenSavers/starwars.desktop
new file mode 100644
index 00000000..4992c52e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/starwars.desktop
@@ -0,0 +1,232 @@
+[Desktop Entry]
+Exec=starwars
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Banners & Pictures
+#it doesn't feel slow
+#X-TDE-Type=OpenGL
+X-TDE-Type=Fortune
+Name=StarWars
+Name[bg]=Междузвездни войни
+Name[br]=Brezel ar steredenn
+Name[cs]=Hvězdné války
+Name[de]=Krieg der Sterne
+Name[et]=Tähesõjad
+Name[fa]=جنگ ستارگان
+Name[fo]=Stjørnukríggj
+Name[fr]=Guerre des étoiles
+Name[he]=מלחמת הכוכבי×
+Name[hi]=नकà¥à¤·à¤¤à¥à¤° यà¥à¤¦à¥à¤§
+Name[hu]=Csillagok háborúja
+Name[is]=Stjörnustríð
+Name[it]=Guerre Stellari
+Name[ja]=スターウォーズ
+Name[ka]=ვáƒáƒ áƒ¡áƒ™áƒ•áƒšáƒáƒ•áƒ£áƒ áƒ˜ áƒáƒ›áƒ”ბი
+Name[mk]=Војна на ѕвездите
+Name[nds]=Krieg vun de Steerns
+Name[ne]=सà¥à¤Ÿà¤¾à¤°à¤µà¤¾à¤°
+Name[nn]=Stjernekrig
+Name[pl]=Gwiezdne Wojny
+Name[pt]=Guerra das Estrelas
+Name[pt_BR]=Guerra nas Estrelas
+Name[ro]=Star Wars
+Name[ru]=Звёздные войны
+Name[sl]=Vojna zvezd
+Name[sr]=Ратови звезда
+Name[sr@Latn]=Ratovi zvezda
+Name[sv]=Stjärnornas krig
+Name[ta]=நடà¯à®šà®¤à¯à®¤à®¿à®°à®ªà¯‹à®°à¯à®•à®³à¯
+Name[tg]=Ҷанговарони Ñиторагин
+Name[th]=สงครามà¹à¸«à¹ˆà¸‡à¸”วงดาว
+Name[uk]=ЗорÑні війни
+Name[ven]=Dzinnda dza naledzi
+Name[vi]=Chiến tranh giữa các Vì sao
+Name[zh_CN]=星çƒå¤§æˆ˜
+Name[zh_TW]=星際大戰
+
+[Desktop Action Setup]
+Exec=kxsconfig starwars
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun starwars -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun starwars -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/stonerview.desktop b/tdescreensaver/kxsconfig/ScreenSavers/stonerview.desktop
new file mode 100644
index 00000000..7f308d90
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/stonerview.desktop
@@ -0,0 +1,218 @@
+[Desktop Entry]
+Exec=stonerview
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=StonerView
+Name[de]=Steinplatten
+Name[et]=Pilgutarretaja
+Name[fr]=Fletteuse
+Name[he]=×¨×™×‘×•×¢×™× ×ž×¨×§×“×™×
+Name[hi]=सà¥à¤Ÿà¥‹à¤¨à¤°-वà¥à¤¯à¥‚
+Name[hu]=Kőbe vésve
+Name[ja]=ストーンビュー
+Name[ka]=კვáƒáƒ“რáƒáƒ¢áƒ£áƒšáƒ˜ ტáƒáƒšáƒ¦áƒ”ბი
+Name[mk]=ЖивопиÑен поглед
+Name[nb]=Steinvisning
+Name[nds]=Danzen Steen
+Name[ne]=सà¥à¤Ÿà¥‹à¤¨à¤° दृशà¥à¤¯
+Name[nn]=Steinvising
+Name[pt_BR]=Visão das Rochas
+Name[ru]=Волны квадратов
+Name[sl]=Zadetkov pogled
+Name[sr]=Стонеров поглед
+Name[sr@Latn]=Stonerov pogled
+Name[sv]=Stenvisning
+Name[ta]=தெளிவிலà¯à®²à®¾à®¤ பாரà¯à®µà¯ˆ
+Name[tg]=Мавҷҳои квадрат
+Name[uk]=Спіраль з квадратів
+Name[ven]=Mbonalelo ya muposi wa tombo
+Name[zh_CN]=è—å®å›¾
+
+[Desktop Action Setup]
+Exec=kxsconfig stonerview
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun stonerview -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun stonerview -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/strange.desktop b/tdescreensaver/kxsconfig/ScreenSavers/strange.desktop
new file mode 100644
index 00000000..68617aaa
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/strange.desktop
@@ -0,0 +1,250 @@
+[Desktop Entry]
+Exec=strange
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Strange
+Name[af]=Vreemd
+Name[br]=Iskis
+Name[ca]=Estrany
+Name[cy]=Rhyfedd
+Name[da]=Mærkelig
+Name[de]=Seltsam
+Name[el]=ΠεÏίεÏγο
+Name[eo]=Strangaĵo
+Name[es]=Extraño
+Name[et]=Kummastav
+Name[eu]=Arraroa
+Name[fa]=ناشناس
+Name[fi]=Kummallinen
+Name[fo]=Løgið
+Name[fr]=Étrange
+Name[fy]=Frjemd
+Name[gl]=Extrano
+Name[he]=שדות מתפתלי×
+Name[hi]=विलकà¥à¤·à¤£
+Name[hu]=Furcsa
+Name[is]=Undarlegt
+Name[it]=Strano
+Name[ja]=ストレンジ
+Name[ka]=უცნáƒáƒ£áƒ áƒ˜
+Name[lt]=Svetimas
+Name[lv]=DÄ«vains
+Name[mk]=Чудни атрактори
+Name[ms]=Pelik
+Name[mt]=Stramb
+Name[nb]=Underlig
+Name[nds]=Snaaksch
+Name[ne]=अनौठो
+Name[nn]=Rar
+Name[pa]=ਵਿਲੱਖਣ
+Name[pl]=Dziwny
+Name[pt]=Estranho
+Name[pt_BR]=Estranho
+Name[ro]=Ciudat
+Name[ru]=СтранноÑти
+Name[sk]=Cudzí
+Name[sl]=ÄŒudno
+Name[sr]=Чудно
+Name[sr@Latn]=ÄŒudno
+Name[sv]=Magisk
+Name[ta]=பà¯à®¤à®¿à®¯
+Name[tg]=Ðҷибҳо
+Name[th]=à¹à¸›à¸¥à¸
+Name[tr]=Sıradışı
+Name[uk]=Дивний
+Name[uz]=Gʻalati
+Name[uz@cyrillic]=Ғалати
+Name[ven]=Zwisadivhei
+Name[vi]=Kỳ lạ
+Name[xh]=Engaqhelekanga
+Name[zh_CN]=奇异å¸å¼•å­
+Name[zh_TW]=奇異
+Name[zu]=Engajwayelekanga
+
+[Desktop Action Setup]
+Exec=kxsconfig strange
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun strange -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun strange -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/substrate.desktop b/tdescreensaver/kxsconfig/ScreenSavers/substrate.desktop
new file mode 100644
index 00000000..78f19dd1
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/substrate.desktop
@@ -0,0 +1,224 @@
+[Desktop Entry]
+Exec=substrate
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Substrate
+Name[bg]=СубÑтрат
+Name[ca]=Substrat
+Name[cs]=Substrát
+Name[de]=Kristallsubstrat
+Name[el]=ΥπόστÏωμα
+Name[eo]=Subtavolo
+Name[es]=Substrato
+Name[et]=Substraat
+Name[eu]=Sustratua
+Name[fa]=زیربنا
+Name[fi]=Substraatti
+Name[fr]=Substrat
+Name[hu]=Szubsztrát
+Name[it]=Substrato
+Name[ja]=基盤
+Name[ka]=ღáƒáƒ áƒ˜áƒ‘ი კვáƒáƒ áƒ¢áƒšáƒ”ბი
+Name[mk]=СупÑтрат
+Name[ms]=Substrat
+Name[nb]=Substrat
+Name[nds]=Wassbodden
+Name[ne]=सबसà¥à¤Ÿà¥à¤°à¥‡à¤Ÿ
+Name[nn]=Substrat
+Name[pt]=Substrato
+Name[ru]=ГородÑкие кварталы
+Name[sl]=Substrat
+Name[sr]=СупÑтрат
+Name[sr@Latn]=Supstrat
+Name[sv]=Substrat
+Name[tr]=Alt Tabaka
+Name[uk]=МіÑькі квартали
+Name[vi]=Chất ná»n
+
+X-TDE-Category=Gadgets & Simulations
+
+[Desktop Action Setup]
+Exec=kxsconfig substrate
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun substrate -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun substrate -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/superquadrics.desktop b/tdescreensaver/kxsconfig/ScreenSavers/superquadrics.desktop
new file mode 100644
index 00000000..7d821a46
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/superquadrics.desktop
@@ -0,0 +1,234 @@
+[Desktop Entry]
+Exec=superquadrics
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Superquadrics (GL)
+Name[af]=Superkwadrate (Gl)
+Name[cs]=Superkvádříky (GL)
+Name[da]=Superkvadrat (GL)
+Name[de]=Superquadriken
+Name[eo]=Superkvadrato (graf. bibl.)
+Name[es]=Supercuádricas (GL)
+Name[et]=Supernelinurk (GL)
+Name[eu]=Superkuadrikoak (GL)
+Name[fa]=درجه دوم قوی (GL)
+Name[fi]=Matemaattisia kuvioita (GL)
+Name[fr]=Super quadriques (GL)
+Name[gl]=Supercuádricas (GL)
+Name[he]=×¡×•×¤×¨Ö¾×ž×¨×•×‘×¢×™× (GL)
+Name[hi]=विविधाकार (जीà¤à¤²)
+Name[hu]=Szuperkvadrátok (GL)
+Name[it]=Superquadriche (GL)
+Name[ja]=超楕円体 (GL)
+Name[ka]=სუპერცილინდრი (GL)
+Name[lt]=Superkvadrika
+Name[mt]=Superkwadriċi (GL)
+Name[nb]=Superkvadratisk (GL)
+Name[nds]=Överquadersche (GL)
+Name[ne]=सà¥à¤ªà¤°à¤•à¥à¤µà¤¾à¤¡à¥à¤°à¤¿à¤•à¥à¤¸ (GL)
+Name[pt]=Super-quadráticas (GL)
+Name[pt_BR]=Superquadros (GL)
+Name[ro]=Supercuadrice (GL)
+Name[ru]=Суперцилиндр (GL)
+Name[sk]=Super-kvadratický (GL)
+Name[sl]=SuperkvadriÄno (GL)
+Name[sr]=Суперквадрици (GL)
+Name[sr@Latn]=Superkvadrici (GL)
+Name[sv]=Superkvadrater (GL)
+Name[ta]=சிறபà¯à®ªà¯ கà¯à®µà®¾à®Ÿà¯à®°à®¿à®•à¯à®¸à¯
+Name[tg]=Суперцилиндр (GL)
+Name[tr]=Süperdörtgenler (GL)
+Name[uk]=Суперквадрат (GL)
+Name[ven]=Dzikwadirakakhulwane (GL)
+Name[vi]=Siêu bình phương (GL)
+Name[xh]=Izinto ezibuxande ezingaphezulu (GL)
+Name[zh_CN]=超二次曲é¢(GL)
+
+[Desktop Action Setup]
+Exec=kxsconfig superquadrics
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun superquadrics -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun superquadrics -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/swirl.desktop b/tdescreensaver/kxsconfig/ScreenSavers/swirl.desktop
new file mode 100644
index 00000000..1e0c194d
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/swirl.desktop
@@ -0,0 +1,244 @@
+[Desktop Entry]
+Exec=swirl
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Swirl
+Name[af]=Warrel
+Name[br]=Avel-dro
+Name[ca]=Remolí
+Name[cs]=Vír
+Name[cy]=Chwyrlïad
+Name[da]=Rotér
+Name[de]=Wirbel
+Name[el]=ΣτÏόβιλος
+Name[eo]=Kirlo
+Name[es]=Remolino
+Name[et]=Keeris
+Name[eu]=Zurrunbiloa
+Name[fa]=چرخش
+Name[fi]=Värikuvioita
+Name[fr]=Spirale
+Name[fy]=Kolk
+Name[gl]=Remuiño
+Name[he]=מערבולת
+Name[hi]=भंवर
+Name[hu]=Méhraj
+Name[is]=Sveimur
+Name[it]=Vortice
+Name[ja]=渦巻
+Name[ka]=მáƒáƒ áƒ”ვი
+Name[lt]=Sukūrys
+Name[lv]=Virpulis
+Name[mk]=Вител
+Name[ms]=Pusar
+Name[mt]=Vortiċi
+Name[nb]=Virvel
+Name[nds]=Küsel
+Name[ne]=सà¥à¤µà¤¿à¤°à¥à¤²
+Name[pl]=Wir
+Name[pt]=Remoinho
+Name[pt_BR]=Redemoinho
+Name[ru]=Завиток
+Name[sk]=Vír
+Name[sl]=Zvitek
+Name[sr]=Вртлог
+Name[sr@Latn]=Vrtlog
+Name[sv]=Virvel
+Name[ta]=சà¯à®´à®±à¯à®±à¯
+Name[tg]=Каҷак
+Name[th]=น้ำวน
+Name[tr]=Girdap
+Name[uk]=Завиток
+Name[vi]=Nước xoáy
+Name[xh]=Intshukumo ejikojiko
+Name[zh_CN]=漩涡
+Name[zh_TW]=旋渦
+Name[zu]=Ukunyakaza olwandle
+
+[Desktop Action Setup]
+Exec=kxsconfig swirl
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun swirl -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun swirl -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/t3d.desktop b/tdescreensaver/kxsconfig/ScreenSavers/t3d.desktop
new file mode 100644
index 00000000..1af41768
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/t3d.desktop
@@ -0,0 +1,250 @@
+[Desktop Entry]
+Exec=t3d
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=Time 3D
+Name[af]=Tyd 3d
+Name[br]=Eur 3D
+Name[ca]=Temps 3D
+Name[cs]=3D hodiny
+Name[cy]=Amser 3D
+Name[da]=Tid 3D
+Name[de]=Zeit (dreidimensional)
+Name[el]=ÎÏα 3D
+Name[eo]=Tempo 3D
+Name[es]=Tiempo 3D
+Name[et]=3D kell
+Name[eu]=Ordua 3D
+Name[fa]=زمان سه بعدی
+Name[fi]=Aika 3D
+Name[fo]=3D ur
+Name[fr]=Temps 3D
+Name[fy]=Tiid 3D
+Name[gl]=Tempo 3D
+Name[he]=שעון בועות
+Name[hi]=तà¥à¤°à¤¿à¤•à¤¾à¤²
+Name[hu]=3D idő
+Name[is]=Tími 3D
+Name[it]=Tempo 3D
+Name[ja]=タイム 3D
+Name[ka]=დრáƒ
+Name[lt]=Laikas 3D
+Name[lv]=Laiks 3D
+Name[mk]=3Д-чаÑовник
+Name[mt]=Ħin 3D
+Name[nb]=Tid 3D
+Name[nds]=Tiet 3D
+Name[ne]=समय तà¥à¤°à¤¿-आयामिक
+Name[nn]=Tid 3D
+Name[pa]=ਸਮਾਂ 3D
+Name[pl]=Czas 3D
+Name[pt]=Hora 3D
+Name[pt_BR]=Hora 3D
+Name[ro]=Timp 3D
+Name[ru]=ВремÑ
+Name[sk]=ÄŒas 3D
+Name[sl]=3D Äas
+Name[sr]=Време 3Д
+Name[sr@Latn]=Vreme 3D
+Name[sv]=Tid 3D
+Name[ta]=நேரம௠3டி
+Name[tg]=Вақт
+Name[th]=เวลา 3 มิติ
+Name[tr]=Üç Boyutlu Zaman
+Name[uk]=Тривимірний чаÑ
+Name[uz]=Vaqt 3D
+Name[uz@cyrillic]=Вақт 3D
+Name[ven]=Tshifhinga tsha 3D
+Name[vi]=Thá»i gian 3 chiá»u
+Name[xh]=Ixesha 3D
+Name[zh_CN]=立体时钟
+Name[zh_TW]=3D 時é˜
+Name[zu]=Isikhathi 3D
+
+[Desktop Action Setup]
+Exec=kxsconfig t3d
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun t3d -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun t3d -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/tangram.desktop b/tdescreensaver/kxsconfig/ScreenSavers/tangram.desktop
new file mode 100644
index 00000000..3a5ed370
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/tangram.desktop
@@ -0,0 +1,204 @@
+[Desktop Entry]
+Exec=tangram
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Tangram
+Name[eo]=Tangramo
+Name[fa]=معمای چینی
+Name[ja]=タングラム
+Name[ka]=ტáƒáƒœáƒ’რáƒáƒ›áƒ˜
+Name[mk]=Танграм
+Name[ne]=टà¥à¤¯à¤¾à¤¨à¤—à¥à¤°à¤¾à¤®
+Name[ru]=КитайÑÐºÐ°Ñ Ð³Ð¾Ð»Ð¾Ð²Ð¾Ð»Ð¾Ð¼ÐºÐ°
+Name[sr]=Танграм
+Name[tr]=Çin Bulmacası
+Name[uk]=Танграма
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig tangram
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun tangram -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun tangram -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/thornbird.desktop b/tdescreensaver/kxsconfig/ScreenSavers/thornbird.desktop
new file mode 100644
index 00000000..d3e06e1f
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/thornbird.desktop
@@ -0,0 +1,224 @@
+[Desktop Entry]
+Exec=thornbird
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Thornbird
+Name[cy]=AderynMieri
+Name[de]=Dornenvogel
+Name[es]=Pájaro espino
+Name[et]=Torklind
+Name[eu]=Arantza-txoria
+Name[fr]=Oiseau épineux
+Name[gl]=Paxaro espino
+Name[he]=ציפור בשיח קוצני
+Name[hi]=थॉरà¥à¤¨-बरà¥à¤¡
+Name[is]=Þyrnifuglar
+Name[ka]=ბულბული დრვáƒáƒ áƒ“ი
+Name[mk]=Птица на трн
+Name[nb]=Tornefugl
+Name[nds]=Doornvagel
+Name[ne]=थोरà¥à¤¨à¤¬à¤°à¥à¤¡
+Name[nn]=Tornefugl
+Name[pl]=Ptak w ciernistych krzewach
+Name[pt_BR]=Pássaro
+Name[ru]=Птица в колючках
+Name[sl]=Trnavi ptiÄ
+Name[sr]=Трноптица
+Name[sr@Latn]=Trnoptica
+Name[sv]=Törnfågel
+Name[ta]=à®®à¯à®³à¯à®ªà®±à®µà¯ˆ
+Name[tg]=Парранда бо хорҳо
+Name[uk]=Колючки
+Name[ven]=Tshinoni tsha mupfa
+Name[vi]=Tiếng chim hót trong bụi mận gai
+Name[xh]=Intaka yemeva
+Name[zh_CN]=è†æ£˜é¸Ÿ
+Name[zh_TW]=刺鳥
+
+[Desktop Action Setup]
+Exec=kxsconfig thornbird
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun thornbird -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun thornbird -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/timetunnel.desktop b/tdescreensaver/kxsconfig/ScreenSavers/timetunnel.desktop
new file mode 100644
index 00000000..9b5fbbdc
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/timetunnel.desktop
@@ -0,0 +1,228 @@
+[Desktop Entry]
+Exec=timetunnel
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Timetunnel
+Name[bg]=Тунел на времето
+Name[ca]=Túnel del temps
+Name[cs]=Časový tunel
+Name[de]=Zeittunnel
+Name[eo]=TempTunelo
+Name[es]=Tunel temporal
+Name[et]=Ajatunnel
+Name[eu]=Denbora-tunela
+Name[fi]=Aikatunneli
+Name[fr]=Tunnel temporel
+Name[fy]=Tiidtunnel
+Name[gl]=Tunel no tempo
+Name[he]=מנהרת הזמן
+Name[hu]=Időalagút
+Name[is]=Tímagöng
+Name[it]=Tunnel temporale
+Name[ja]=タイムトンãƒãƒ«
+Name[ka]=დრáƒáƒ˜áƒ¡ გვირáƒáƒ‘ი
+Name[mk]=ВременÑки тунел
+Name[nb]=Tidstunnel
+Name[nds]=Tiettunnel
+Name[ne]=टाइम टनेल
+Name[nn]=Tidstunnel
+Name[pt]=Túnel Temporal
+Name[pt_BR]=Túnel do Tempo
+Name[ru]=СиÑющий туннель
+Name[sl]=ÄŒasovni predor
+Name[sr]=ВременÑки тунел
+Name[sr@Latn]=Vremenski tunel
+Name[sv]=Tidstunnel
+Name[tr]=Zaman Tüneli
+Name[uk]=ЧаÑовий тунель
+Name[vi]=ÄÆ°á»ng hầm thá»i gian
+Name[zh_TW]=時光隧é“
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig timetunnel
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun timetunnel -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun timetunnel -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/topblock.desktop b/tdescreensaver/kxsconfig/ScreenSavers/topblock.desktop
new file mode 100644
index 00000000..20fc3370
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/topblock.desktop
@@ -0,0 +1,204 @@
+[Desktop Entry]
+Exec=topblock
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=topBlock
+Name[ca]=Bloc a dalt
+Name[fr]=Chute de blocs
+Name[it]=Massima sicurezza
+Name[nds]=Böverblock
+Name[pl]=Blok
+Name[ru]=КонÑтруктор Лего
+Name[sk]=hornýBlok
+Name[sr]=Горњи блок
+Name[sr@Latn]=Gornji blok
+Name[sv]=Toppbitar
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig topblock
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun topblock -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun topblock -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/triangle.desktop b/tdescreensaver/kxsconfig/ScreenSavers/triangle.desktop
new file mode 100644
index 00000000..3ea40420
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/triangle.desktop
@@ -0,0 +1,250 @@
+[Desktop Entry]
+Exec=triangle
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Illusions of Depth
+Name=Triangle
+Name[af]=Driehoek
+Name[bg]=Триъгълник
+Name[br]=Tric'horn
+Name[cs]=Trojúhelník
+Name[cy]=Triongl
+Name[da]=Trekant
+Name[de]=Dreieck
+Name[el]=ΤÏίγωνο
+Name[eo]=Triangulo
+Name[es]=Triángulo
+Name[et]=Kolmnurk
+Name[eu]=Triangelua
+Name[fa]=مثلث
+Name[fi]=Kolmio
+Name[fo]=Trýkantur
+Name[fy]=Triangel
+Name[gl]=Triángulo
+Name[he]=רכס הרי×
+Name[hi]=तà¥à¤°à¤¿à¤­à¥à¤œ
+Name[hu]=Háromszög
+Name[is]=Þríhyrningur
+Name[it]=Triangolo
+Name[ja]=三角形
+Name[ka]=სáƒáƒ›áƒ™áƒ£áƒ—ხედი
+Name[lt]=Trikampis
+Name[lv]=Trīsstūris
+Name[mk]=Триаголник
+Name[ms]=Segi Tiga
+Name[mt]=Triangolu
+Name[nb]=Triangel
+Name[nds]=Dre'eck
+Name[ne]=तà¥à¤°à¤¿à¤­à¥à¤œ
+Name[nn]=Triangel
+Name[pa]=ਤਿਕੋਣ
+Name[pl]=Trójkąt
+Name[pt]=Triângulo
+Name[pt_BR]=Triângulo
+Name[ro]=Triunghi
+Name[ru]=Треугольник
+Name[sk]=Trojuholník
+Name[sl]=Trikotnik
+Name[sr]=Троугао
+Name[sr@Latn]=Trougao
+Name[sv]=Triangel
+Name[ta]=à®®à¯à®•à¯à®•à¯‹à®£à®®à¯
+Name[tg]=Секунҷа
+Name[th]=สามเหลี่ยม
+Name[tr]=Üçgen
+Name[uk]=Трикутник
+Name[uz]=Uchburchak
+Name[uz@cyrillic]=Учбурчак
+Name[ven]=Tshitandeledzi tharu
+Name[vi]=Tam giác
+Name[xh]=Nxanthathu
+Name[zh_CN]=三角形
+Name[zh_TW]=三角形
+Name[zu]=Unxantathu
+
+[Desktop Action Setup]
+Exec=kxsconfig triangle
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun triangle -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun triangle -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/truchet.desktop b/tdescreensaver/kxsconfig/ScreenSavers/truchet.desktop
new file mode 100644
index 00000000..a1c5c731
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/truchet.desktop
@@ -0,0 +1,207 @@
+[Desktop Entry]
+Exec=truchet
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=Truchet
+Name[he]=תבניות ריצוף
+Name[hi]=टà¥à¤°à¥‚शे
+Name[ka]=ლáƒáƒ‘ირინთი II
+Name[mk]=Труше
+Name[ne]=टà¥à¤°à¤šà¥‡à¤Ÿ
+Name[ru]=Лабиринт II
+Name[sl]=IzloÄek
+Name[sr]=Треше
+Name[sr@Latn]=Treše
+Name[ta]=டà¯à®°à¯‚சà¯à®šà®Ÿà¯
+Name[tg]=Лабиринт II
+Name[uk]=Труше
+Name[zh_CN]=拼接线æ¡
+
+[Desktop Action Setup]
+Exec=kxsconfig truchet
+X-TDE-Category=Miscellaneous
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun truchet -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun truchet -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/twang.desktop b/tdescreensaver/kxsconfig/ScreenSavers/twang.desktop
new file mode 100644
index 00000000..2c6b21e3
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/twang.desktop
@@ -0,0 +1,217 @@
+[Desktop Entry]
+Exec=twang
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=Twang
+Name[ca]=Vibrant
+Name[de]=Klangschwingung
+Name[es]=Vibrante
+Name[et]=Plõnn
+Name[fa]=صدای( دینگ)
+Name[he]=תולש מסך
+Name[hi]=à¤à¤‚कार
+Name[ka]=ჭღáƒáƒ áƒ£áƒœáƒ˜
+Name[mk]=Тванг
+Name[nds]=Sproing
+Name[ne]=à¤à¤¨à¥à¤•à¤¾à¤°
+Name[pt_BR]=Vibração
+Name[ru]=Бренчание
+Name[sk]=Brnknutie
+Name[sl]=Brnenje
+Name[sr]=Тванг
+Name[sr@Latn]=Tvang
+Name[ta]=டà¯à®µà®¾à®™à¯
+Name[tg]=Тинг-тинг
+Name[uk]=ПодрібненнÑ
+Name[xh]=Isandi esiphakamileyo esishukumayo
+Name[zh_CN]=拨弄å±å¹•ç¢Žå—
+Name[zh_TW]=ç °
+
+[Desktop Action Setup]
+Exec=kxsconfig twang
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun twang -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun twang -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/vermiculate.desktop b/tdescreensaver/kxsconfig/ScreenSavers/vermiculate.desktop
new file mode 100644
index 00000000..62324317
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/vermiculate.desktop
@@ -0,0 +1,227 @@
+[Desktop Entry]
+Exec=vermiculate
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Illusions of Depth
+Name=Vermiculate
+Name[ca]=Vermiculat
+Name[cy]=Llyngyrol
+Name[de]=Wurmförmig
+Name[el]=Σκωληκοειδής
+Name[es]=Vermiculado
+Name[et]=Usjas
+Name[fa]=موج‌دار
+Name[fr]=Vermiculé
+Name[gl]=Vermiculado
+Name[he]=פיתולי תולעת
+Name[hi]=कृमियाà¤
+Name[ka]=ჭიáƒáƒ§áƒ”ლები
+Name[mk]=Црвчиња
+Name[ms]=Vermiculat
+Name[mt]=Vermiculazzjoni
+Name[nb]=Markibulere
+Name[nds]=Verwormen
+Name[ne]=भरà¥à¤®à¤¿à¤•à¥à¤²à¥‡à¤Ÿ
+Name[nn]=Maskeformar
+Name[pl]=Robaczki
+Name[pt]=Vermicular
+Name[pt_BR]=Vermiculado
+Name[ro]=Viermuieli
+Name[ru]=Черви
+Name[sl]=Razjedanje
+Name[sr]=Црволико
+Name[sr@Latn]=Crvoliko
+Name[sv]=Maskformer
+Name[ta]=பà¯à®´à¯à®¨à¯†à®³à®¿à®•à¯à®•à®ªà¯à®ªà®Ÿà¯à®¤à®²à¯
+Name[tg]=Кирмҳо
+Name[uk]=Хробаки
+Name[vi]=Sâu má»t
+Name[zh_CN]=蠕虫窜动
+Name[zh_TW]=蠕蟲竄動
+
+[Desktop Action Setup]
+Exec=kxsconfig vermiculate
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun vermiculate -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun vermiculate -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/vidwhacker.desktop b/tdescreensaver/kxsconfig/ScreenSavers/vidwhacker.desktop
new file mode 100644
index 00000000..03d47b48
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/vidwhacker.desktop
@@ -0,0 +1,223 @@
+[Desktop Entry]
+Exec=vidwhacker
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=vidwhacker
+Name[ca]=VideoPirata
+Name[cy]=fid-darydd
+Name[de]=Videoprügler
+Name[es]=VideoHacker
+Name[et]=Videonikerdaja
+Name[gl]=VideoHacker
+Name[he]=מסנן ויד×ו
+Name[hi]=विडवà¥à¤¹à¥ˆà¤•à¤°
+Name[hu]=Vidwhacker
+Name[ka]=ვიდეáƒ
+Name[mk]=Видеохакер
+Name[nb]=Bankeskjerm
+Name[nds]=Video verdaakst
+Name[ne]=भिडहà¥à¤¯à¤¾à¤•à¤°
+Name[nn]=Bankeskjerm
+Name[pl]=Wideomagik
+Name[pt_BR]=Hacker
+Name[ro]=Vidwhacker
+Name[ru]=Видео
+Name[sl]=Video heker
+Name[sr]=Умлаћивач видеа
+Name[sr@Latn]=UmlaćivaÄ videa
+Name[sv]=Banka skärm
+Name[ta]=விட௠அடிபà¯à®ªà®¾à®©à¯
+Name[tg]=Видео
+Name[uk]=Відео
+Name[vi]=Chia phần Video
+Name[zh_CN]=视频混排
+
+[Desktop Action Setup]
+Exec=kxsconfig vidwhacker
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun vidwhacker -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun vidwhacker -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/vines.desktop b/tdescreensaver/kxsconfig/ScreenSavers/vines.desktop
new file mode 100644
index 00000000..db725e5a
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/vines.desktop
@@ -0,0 +1,241 @@
+[Desktop Entry]
+Exec=vines
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Vines
+Name[af]=Ranke
+Name[bg]=Лози
+Name[br]=Gwiniegi
+Name[ca]=Vinyes
+Name[cs]=Úponky
+Name[cy]=Gwinwyddenau
+Name[da]=Vinranker
+Name[de]=Reben
+Name[el]=ΠεÏικοκλάδες
+Name[es]=Viñas
+Name[et]=Väädid
+Name[eu]=Mahastuak
+Name[fa]=تاکها
+Name[fi]=Lehdet
+Name[fr]=Vignes
+Name[gl]=Viñedos
+Name[he]=שיחי×
+Name[hi]=बेलें
+Name[hu]=Indák
+Name[it]=Tralci
+Name[ja]=ブドウ
+Name[ka]=ვáƒáƒ–ი
+Name[lt]=Vijoklis
+Name[lv]=Vīteņaugi
+Name[mk]=Ползавци
+Name[ms]=Pokok Anggur
+Name[mt]=Dwieli
+Name[nb]=Vinranker
+Name[nds]=Wientelgen
+Name[ne]=लहरा
+Name[pl]=Winorośle
+Name[pt]=Trepadeiras
+Name[ru]=Виноградные лозы
+Name[sk]=Réva
+Name[sl]=Ovijalke
+Name[sr]=Живице
+Name[sr@Latn]=Živice
+Name[sv]=Vinrankor
+Name[ta]=கொடிகளà¯
+Name[tg]=Буттабедҳои ангур
+Name[th]=เถาวัลย์
+Name[tr]=Sarmaşıklar
+Name[uk]=Виноградні лози
+Name[vi]=Nho
+Name[xh]=Imidiliya
+Name[zh_CN]=爬藤
+Name[zh_TW]=藤蔓
+Name[zu]=Imidiliya
+
+[Desktop Action Setup]
+Exec=kxsconfig vines
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun vines -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun vines -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/voronoi.desktop b/tdescreensaver/kxsconfig/ScreenSavers/voronoi.desktop
new file mode 100644
index 00000000..b14a70c9
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/voronoi.desktop
@@ -0,0 +1,198 @@
+[Desktop Entry]
+Exec=voronoi
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=Voronoi
+Name[nds]=Voronen
+Name[ru]=ПоверхноÑти
+Name[sr]=Вороној
+Name[sr@Latn]=Voronoj
+
+X-TDE-Type=OpenGL
+X-TDE-Category=OpenGL Screen Savers
+
+[Desktop Action Setup]
+Exec=kxsconfig voronoi
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun voronoi -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun voronoi -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/wander.desktop b/tdescreensaver/kxsconfig/ScreenSavers/wander.desktop
new file mode 100644
index 00000000..9bbb669e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/wander.desktop
@@ -0,0 +1,232 @@
+[Desktop Entry]
+Exec=wander
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Wander
+Name[af]=Wandel
+Name[ca]=Errar
+Name[cs]=Pochod
+Name[cy]=Crwydro
+Name[de]=Umherwandern
+Name[el]=ΠεÏιπλάνηση
+Name[es]=Errar
+Name[et]=Rändamine
+Name[eu]=Erratu
+Name[fa]=سرگردان
+Name[fi]=Samoilija
+Name[fr]=Louvoyage
+Name[gl]=Errar
+Name[he]=×ž×¡×œ×•×œ×™× ×קר××™×™×
+Name[hi]=भटकन
+Name[ja]=ã•ã¾ã‚ˆã†
+Name[ka]=ხეტიáƒáƒšáƒ˜
+Name[mk]=Прошетка
+Name[ms]=Rayau
+Name[mt]=Ippassiġġja
+Name[nb]=Vandrer
+Name[nds]=Rümbuttjern
+Name[ne]=वनà¥à¤¡à¤°
+Name[nn]=Vandrar
+Name[pl]=Wędrówka
+Name[pt]=Vaguear
+Name[pt_BR]=Passeio
+Name[ru]=Блуждание
+Name[sl]=Tavanje
+Name[sr]=Лутање
+Name[sr@Latn]=Lutanje
+Name[sv]=Vandra
+Name[ta]=அலை
+Name[tg]=Роҳ гум кардан
+Name[uk]=БлуканнÑ
+Name[vi]=Lang thang
+Name[xh]=Ukuzula
+Name[zh_CN]=徘徊
+Name[zh_TW]=漫步
+
+[Desktop Action Setup]
+Exec=kxsconfig wander
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun wander -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun wander -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/webcollage.desktop b/tdescreensaver/kxsconfig/ScreenSavers/webcollage.desktop
new file mode 100644
index 00000000..eba65609
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/webcollage.desktop
@@ -0,0 +1,235 @@
+[Desktop Entry]
+Exec=webcollage
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Banners & Pictures
+Name=Web Collage
+Name[bg]=Уеб колаж
+Name[ca]=Collage web
+Name[cy]=Gludwaith Gwê
+Name[da]=Webcollage
+Name[de]=Web-Kollage
+Name[et]=Veebikollaaž
+Name[eu]=Web Collage-a
+Name[fa]=اختلاط رنگهای وب
+Name[fi]=Web kokoelma
+Name[fr]=Collage Web
+Name[fy]=Web Kollaazje
+Name[he]=קול××–' ×ינטרנט
+Name[hi]=वेब कोलॉज
+Name[is]=Web safn
+Name[it]=Collage Web
+Name[ja]=ウェブコラージュ
+Name[ka]=ვებ გვერდები
+Name[mk]=Веб-колаж
+Name[ms]=Kolaj Web
+Name[mt]=Taħlita Web
+Name[nb]=Nett-collage
+Name[nds]=Nett-Tosamenstellen
+Name[ne]=वेब कलेज
+Name[nn]=Vevblanding
+Name[pa]=ਵੈੱਬ ਕਾਲਜ
+Name[pl]=Kolaż WWW
+Name[pt]=Colagem Web
+Name[ro]=Colaj web
+Name[ru]=Коллаж веб-Ñтраниц
+Name[sl]=Spletni kolaž
+Name[sr]=Веб колаж
+Name[sr@Latn]=Veb kolaž
+Name[sv]=Webbcollage
+Name[ta]=இணைய Collage
+Name[tg]=Веб-Ñаҳифаи Коллаж
+Name[uk]=Веб-колаж
+Name[vi]=Cắt dán Mạng
+Name[xh]=Uncamathelo le Web
+Name[zh_CN]=网页拼贴画
+Name[zh_TW]=網é æ‹¼è²¼
+Name[zu]=Umdwebo wezithombe ze-Web
+
+[Desktop Action Setup]
+Exec=kxsconfig webcollage
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun webcollage -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun webcollage -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/whirlwindwarp.desktop b/tdescreensaver/kxsconfig/ScreenSavers/whirlwindwarp.desktop
new file mode 100644
index 00000000..c4862b64
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/whirlwindwarp.desktop
@@ -0,0 +1,225 @@
+[Desktop Entry]
+Exec=whirlwindwarp
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Flying Things
+Name=WhirlwindWarp
+Name[ca]=Terbolí
+Name[cy]=AnffurfChwyrlwynt
+Name[de]=Wirbelwind
+Name[es]=Torbellino
+Name[et]=Kõver tuulispask
+Name[eu]=Zurrunbilo hodia
+Name[fa]=انحرا٠گردبادی
+Name[fr]=Vents tourbillonnants
+Name[gl]=Remoiño
+Name[he]=קפיצת חלל
+Name[hi]=चकà¥à¤°à¤µà¤¾à¤¤-आवरण
+Name[hu]=Örvény az örvényben
+Name[it]=Turbine Deformato
+Name[ka]=უდáƒáƒ‘ნáƒáƒ¡ შტáƒáƒ áƒ›áƒ˜
+Name[mk]=Виорни ѕвезди
+Name[nb]=Virvelvind
+Name[nds]=Küselwind-Vertarren
+Name[nn]=Kvervelvind
+Name[pt]=Remoinho 2
+Name[pt_BR]=Furacão
+Name[ru]=Безумный вихрь пеÑчинок
+Name[sl]=VrtinÄast zavoj
+Name[sr]=Окретно изобличавање
+Name[sr@Latn]=Okretno izobliÄavanje
+Name[sv]=Virvelvind
+Name[ta]=சà¯à®´à®±à¯à®•à®¾à®±à¯à®±à¯à®šà¯à®šà®¿à®±à¯ˆ
+Name[tg]=Гирдоби девонаи регрезагин
+Name[uk]=Піщаний вихор
+Name[vi]=Gió cuốn Bao bá»c
+Name[xh]=Jikelezisa
+Name[zh_CN]=旋风
+Name[zh_TW]=旋風
+
+[Desktop Action Setup]
+Exec=kxsconfig whirlwindwarp
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun whirlwindwarp -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun whirlwindwarp -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/whirlygig.desktop b/tdescreensaver/kxsconfig/ScreenSavers/whirlygig.desktop
new file mode 100644
index 00000000..021e080a
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/whirlygig.desktop
@@ -0,0 +1,216 @@
+[Desktop Entry]
+Exec=whirlygig
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Illusions of Depth
+Name=WhirlyGig
+Name[cy]=Chwyrligwgan
+Name[de]=Bälle auf der Welle
+Name[et]=Karussell
+Name[he]=שרשר×ות
+Name[hi]=भंवरमा
+Name[ka]=სიáƒáƒ›áƒ˜áƒ¡ ბურთები
+Name[mk]=Вртлива забава
+Name[nb]=Virveldans
+Name[nds]=Küselbäll
+Name[nn]=Kverveldans
+Name[pl]=Kołowrót
+Name[pt]=Ondulação
+Name[pt_BR]=Rodopio
+Name[ru]=Ðеразлучные шарики
+Name[sl]=Vrtinec pik
+Name[sr]=Коло лопти
+Name[sr@Latn]=Kolo lopti
+Name[sv]=Virveldans
+Name[tg]=Кураҳои ҷудонашаванда
+Name[uk]=ВеÑелі кульки
+Name[vi]=Cuộn xoáy lớn
+Name[xh]=I Gig Ejijekayo
+Name[zh_CN]=旋转点阵
+
+[Desktop Action Setup]
+Exec=kxsconfig whirlygig
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun whirlygig -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun whirlygig -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/worm.desktop b/tdescreensaver/kxsconfig/ScreenSavers/worm.desktop
new file mode 100644
index 00000000..266faa6b
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/worm.desktop
@@ -0,0 +1,250 @@
+[Desktop Entry]
+Exec=worm
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Flying Things
+Name=Worm
+Name[af]=Wurm
+Name[bg]=Червей
+Name[br]=Buzug
+Name[ca]=Cuc
+Name[cs]=ÄŒerv
+Name[cy]=Abwydyn
+Name[da]=Orm
+Name[de]=Wurm
+Name[el]=Σκουλήκι
+Name[es]=Gusano
+Name[et]=Ussike
+Name[eu]=Harra
+Name[fa]=کرم
+Name[fi]=Mato
+Name[fo]=Ormur
+Name[fr]=Ver
+Name[fy]=Wjirm
+Name[gl]=Miñoca
+Name[he]=תולעי×
+Name[hi]=कृमि
+Name[hu]=Kukac
+Name[is]=Ormur
+Name[it]=Verme
+Name[ja]=ワーム
+Name[ka]=ჭიáƒáƒ§áƒ”ლáƒ
+Name[lt]=Kirminas
+Name[lv]=TÄrps
+Name[mk]=Црв
+Name[ms]=Cacing
+Name[mt]=Dudu
+Name[nb]=Mark
+Name[ne]=वरà¥à¤®
+Name[nn]=Orm
+Name[pa]=ਕੀੜਾ
+Name[pl]=Robak
+Name[pt]=Lagarta
+Name[pt_BR]=Verme
+Name[ro]=Vierme
+Name[ru]=ЧервÑчки
+Name[sk]=Červík
+Name[sl]=ÄŒrv
+Name[sr]=Црв
+Name[sr@Latn]=Crv
+Name[sv]=Mask
+Name[ta]=பà¯à®´à¯
+Name[tg]=Кирмчаҳакҳо
+Name[th]=หนอน
+Name[tr]=Solucan
+Name[uk]=Хробак
+Name[uz]=Chuvalchang
+Name[uz@cyrillic]=Чувалчанг
+Name[ven]=Tshivhungu
+Name[vi]=Giun
+Name[xh]=Intshulube
+Name[zh_CN]=蠕虫
+Name[zh_TW]=蟲
+Name[zu]=Isikelemu
+
+[Desktop Action Setup]
+Exec=kxsconfig worm
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun worm -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun worm -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/wormhole.desktop b/tdescreensaver/kxsconfig/ScreenSavers/wormhole.desktop
new file mode 100644
index 00000000..6dbd6a84
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/wormhole.desktop
@@ -0,0 +1,235 @@
+[Desktop Entry]
+Exec=wormhole
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=Wormhole
+Name[bg]=КоÑмичеÑки тунел
+Name[br]=Toull buzug
+Name[ca]=Forat de cucs
+Name[cs]=Červí díra
+Name[de]=Wurmloch
+Name[el]=ΣκουληκότÏυπα
+Name[eo]=VermTruo
+Name[es]=Carcoma
+Name[et]=Ussiauk
+Name[eu]=Har-zuloa
+Name[fa]=کرم خوردگی
+Name[fi]=Madonreikä
+Name[fr]=Tunnel spatial
+Name[fy]=Wjirmgat
+Name[gl]=Buraco do verme
+Name[he]=חור טולעת
+Name[hi]=कृमि-छिदà¥à¤°
+Name[is]=Ormagöng
+Name[it]=Buco nero
+Name[ja]=ワームホール
+Name[ka]=სáƒáƒ›áƒ§áƒáƒ áƒáƒ¡ გვირáƒáƒ‘ი
+Name[mk]=Црвја дупка
+Name[ms]=Lubang Cacing
+Name[nb]=Markhull
+Name[nds]=Wormlock
+Name[ne]=वोरà¥à¤®à¤¹à¥‹à¤²
+Name[nn]=Ormehol
+Name[pl]=Dziura z robakami
+Name[pt]=Buraco de Lagarta
+Name[pt_BR]=Buraco de Vermes
+Name[ro]=Gaură de vierme
+Name[ru]=Туннели Ð’Ñеленной
+Name[sl]=ÄŒrvja luknja
+Name[sr]=Црвоточина
+Name[sr@Latn]=CrvotoÄina
+Name[sv]=Maskhål
+Name[tg]=Тунели коинот
+Name[tr]=SolucandeliÄŸi
+Name[uk]=Хробакова дірка
+Name[vi]=Hố giun
+Name[zh_CN]=虫洞
+Name[zh_TW]=蟲洞
+X-TDE-Category=Rapid Motion
+
+[Desktop Action Setup]
+Exec=kxsconfig wormhole
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun wormhole -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun wormhole -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/xanalogtv.desktop b/tdescreensaver/kxsconfig/ScreenSavers/xanalogtv.desktop
new file mode 100644
index 00000000..7a54197c
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/xanalogtv.desktop
@@ -0,0 +1,213 @@
+[Desktop Entry]
+Exec=xanalogtv
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow,Root,Setup;
+Name=XAnalogTV
+Name[de]=Analog-TV-Bildstörungen
+Name[el]=Αναλογική τηλεόÏαση X
+Name[es]=Televisión analógica
+Name[fr]=Vieille TV
+Name[gl]=X TV analóxica
+Name[he]=טלויזיה ×× ×לוגית
+Name[hi]=à¤à¤•à¥à¤¸-à¤à¤¨à¥‰à¤²à¤¾à¤—-टीवी
+Name[it]=TV analogica
+Name[ka]=ძველი ტელევიზáƒáƒ áƒ˜
+Name[mk]=X-аналогно ТВ
+Name[nds]=XOolFeernsehn
+Name[ro]=TV analogic
+Name[ru]=Старенький телевизор
+Name[sr]=X аналогни ТВ
+Name[sr@Latn]=X analogni TV
+Name[sv]=X-analogtv
+Name[tg]=Оинаи нилгуни кӯҳна
+Name[uk]=Старий телевізор (X)
+Name[vi]=Tivi TÆ°Æ¡ng tá»± X
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+
+[Desktop Action Setup]
+Exec=kxsconfig xanalogtv
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun xanalogtv -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun xanalogtv -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/xflame.desktop b/tdescreensaver/kxsconfig/ScreenSavers/xflame.desktop
new file mode 100644
index 00000000..4389f275
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/xflame.desktop
@@ -0,0 +1,239 @@
+[Desktop Entry]
+Exec=xflame
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Gadgets & Simulations
+Name=XFlame
+Name[af]=Xvlam
+Name[br]=XFlamm
+Name[ca]=XFlama
+Name[cs]=Plamen
+Name[cy]=XFflam
+Name[da]=XFlamme
+Name[de]=Flamme
+Name[el]=X φλόγα
+Name[es]=XLlama
+Name[et]=XLeek
+Name[eu]=XSugarra
+Name[fi]=XLiekki
+Name[fo]=Flammur
+Name[fr]=X-Flamme
+Name[fy]=XFlam
+Name[gl]=XLapa
+Name[he]=×ש בוערת
+Name[hi]=à¤à¤•à¥à¤¸-लपटें
+Name[hu]=X-láng
+Name[is]=X Logar
+Name[it]=XFiamma
+Name[ka]=áƒáƒšáƒ˜ (Ð¥)
+Name[lv]=XLiesma
+Name[mk]=X-Оган
+Name[mt]=XFjamma
+Name[nb]=Xflamme
+Name[nds]=XFlamm
+Name[nn]=XFlamme
+Name[pt]=Chama
+Name[ro]=Flăcări
+Name[ru]=ÐŸÐ»Ð°Ð¼Ñ (Ð¥)
+Name[sk]=Xplameň
+Name[sl]=XOgenj
+Name[sr]=X племен
+Name[sr@Latn]=X plemen
+Name[sv]=X-flamma
+Name[ta]=Xதீ பிழமà¯à®ªà¯
+Name[tg]=Шӯълаи (Х)
+Name[th]=เปลวไฟ X
+Name[tr]=X Alevi
+Name[uk]=Полум'Ñ (X)
+Name[ven]=Khavhu ya X
+Name[vi]=Ngá»n lá»­a X
+Name[xh]=Idangatye le X
+Name[zh_CN]=ç«ç„°
+Name[zu]=X Ilangabi
+
+[Desktop Action Setup]
+Exec=kxsconfig xflame
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun xflame -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun xflame -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/xjack.desktop b/tdescreensaver/kxsconfig/ScreenSavers/xjack.desktop
new file mode 100644
index 00000000..309a2d6c
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/xjack.desktop
@@ -0,0 +1,213 @@
+[Desktop Entry]
+Exec=xjack
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Banners & Pictures
+Name=XJack
+Name[af]=Xjack
+Name[de]=Tipper
+Name[he]=הניצוץ
+Name[hi]=à¤à¤•à¥à¤¸-जेक
+Name[hu]=X-Jack
+Name[is]=X Jack
+Name[ka]=ჯეკი (Х)
+Name[mk]=X-Ðек
+Name[nn]=XKnekt
+Name[pt]=Jack
+Name[ru]=Джек
+Name[sl]=XJaka
+Name[sr]=X Ðек
+Name[sr@Latn]=X Džek
+Name[sv]=X-jack
+Name[tg]=Джек
+Name[uk]=Джек (X)
+Name[vi]=Giác cắm X
+Name[xh]=Isixhobo sokuphakamisa into enzima sika X (umzekelo:imoto)
+Name[zh_CN]=ç–¯å­
+
+[Desktop Action Setup]
+Exec=kxsconfig xjack
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun xjack -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun xjack -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/xlyap.desktop b/tdescreensaver/kxsconfig/ScreenSavers/xlyap.desktop
new file mode 100644
index 00000000..1237627f
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/xlyap.desktop
@@ -0,0 +1,209 @@
+[Desktop Entry]
+Exec=xlyap
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Fractals
+Name=Xlyap
+Name[de]=Lyapunov
+Name[et]=Xljap
+Name[fo]=Lyapunov
+Name[he]=מעריכי לי×פונוב
+Name[hi]=à¤à¤•à¥à¤¸-लायप
+Name[hu]=X-Lyap
+Name[ka]=თრთვილი (Х)
+Name[mk]=X-Љапунов
+Name[nds]=XLjapunow
+Name[ru]=Морозные узоры
+Name[sr]=X Љапунов
+Name[sr@Latn]=X Ljapunov
+Name[sv]=X-lyap
+Name[ta]=Xலயபà¯
+Name[tg]=Ðақшу нигори хунукӣ
+Name[uk]=Візерунки морозу (X)
+
+[Desktop Action Setup]
+Exec=kxsconfig xlyap
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun xlyap -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun xlyap -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/xmatrix.desktop b/tdescreensaver/kxsconfig/ScreenSavers/xmatrix.desktop
new file mode 100644
index 00000000..188b1ede
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/xmatrix.desktop
@@ -0,0 +1,236 @@
+[Desktop Entry]
+Exec=xmatrix
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Banners & Pictures
+Name=The Matrix
+Name[af]=Die Matrix
+Name[bg]=Матрицата
+Name[br]=Ar Mammog
+Name[cs]=Matrix
+Name[cy]=Y Matrics
+Name[de]=Matrix
+Name[eo]=La Matrico
+Name[es]=Matrix
+Name[et]=Matrix
+Name[eu]=Matrix
+Name[fa]=ماتریس
+Name[fi]=Matrix
+Name[fr]=Matrix
+Name[he]=מטריקס
+Name[hi]=द मेटà¥à¤°à¤¿à¤•à¥à¤¸
+Name[hu]=A Mátrix
+Name[is]=Matrix
+Name[it]=Matrix
+Name[ja]=マトリックス
+Name[ka]=მáƒáƒ¢áƒ áƒ˜áƒªáƒ
+Name[lt]=Matrica
+Name[lv]=Matrix
+Name[mk]=МатрикÑ
+Name[nds]=De Matrix
+Name[ne]=मà¥à¤¯à¤¾à¤Ÿà¥à¤°à¤¿à¤•à¥à¤¸
+Name[pl]=Matriks
+Name[pt]=A Matriz
+Name[pt_BR]=Matrix
+Name[ru]=Матрица
+Name[sl]=Matrica
+Name[sr]=Матрица
+Name[sr@Latn]=Matrica
+Name[sv]=Matrix
+Name[ta]= The Matrix
+Name[tg]=Матрица
+Name[th]=เดอะเมตริà¸à¸‹à¹Œ
+Name[uk]=МатрицÑ
+Name[ven]=Vhubvo
+Name[vi]=Phim Ma trận
+Name[xh]=Indawo apho into ibhekiswa phambili
+Name[zh_CN]=黑客å¸å›½
+Name[zh_TW]=駭客任務
+Name[zu]=Indawo lapho kubhekiswa khona phambili ikusasa
+
+[Desktop Action Setup]
+Exec=kxsconfig xmatrix
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun xmatrix -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun xmatrix -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/xrayswarm.desktop b/tdescreensaver/kxsconfig/ScreenSavers/xrayswarm.desktop
new file mode 100644
index 00000000..23dd238f
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/xrayswarm.desktop
@@ -0,0 +1,225 @@
+[Desktop Entry]
+Exec=xrayswarm
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Flying Things
+Name=XRaySwarm
+Name[ca]=Eixam de llamps X
+Name[cy]=HaidPelydrX
+Name[da]=Røntgensværm
+Name[de]=Schwarm am Röntgenschirm
+Name[el]=Σμήνος ακτίνων Χ
+Name[es]=Enjambre de rayos X
+Name[et]=XKiiresülem
+Name[fr]=Essaim de rayons
+Name[gl]=Enxame de raios X
+Name[he]=נחיל ×¢× ×¢×§×‘×•×ª
+Name[hi]=à¤à¤•à¥à¤¸-रे-à¤à¥à¤‚ड
+Name[hu]=X-sugarak
+Name[is]=X-geisla-sveimur
+Name[it]=Sciame a raggi X
+Name[ja]=X-線スワーム
+Name[ka]=მáƒáƒœáƒáƒ—áƒáƒ‘ელი გუნდი
+Name[mk]=X-Роеви
+Name[nb]=Røntgensverm
+Name[nds]=XStrahlSwarm
+Name[nn]=Røntgensverm
+Name[pt]=Enxame
+Name[pt_BR]=Enxame
+Name[ru]=СветÑщийÑÑ Ñ€Ð¾Ð¹
+Name[sl]=XRojÄŒrt
+Name[sr]=X рој зракова
+Name[sr@Latn]=X roj zrakova
+Name[sv]=Röntgensvärm
+Name[ta]=Xகதிரà¯à®ªà¯à®¯à®²à¯
+Name[tg]=Оилаи равшанкунанда
+Name[uk]=Рій (X)
+Name[vi]=Bầy X
+Name[zh_CN]=闪光飞行虫
+
+[Desktop Action Setup]
+Exec=kxsconfig xrayswarm
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun xrayswarm -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun xrayswarm -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/xscreensaver.template b/tdescreensaver/kxsconfig/ScreenSavers/xscreensaver.template
new file mode 100644
index 00000000..d7689927
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/xscreensaver.template
@@ -0,0 +1,24 @@
+[Desktop Entry]
+Encoding=UTF-8
+Exec=@NAME@
+Icon=tdescreensaver
+Type=Application
+Actions=InWindow,Root,Setup
+Name=@LABEL@
+@GL1@
+@GL2@
+
+[Desktop Action Setup]
+Exec=kxsconfig @NAME@
+Name=Setup...
+
+[Desktop Action InWindow]
+Exec=kxsrun @NAME@ -- -window-id %w
+Name=Display in Specified Window
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun @NAME@ -- -root
+Name=Display in Root Window
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/xspirograph.desktop b/tdescreensaver/kxsconfig/ScreenSavers/xspirograph.desktop
new file mode 100644
index 00000000..469df6e4
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/xspirograph.desktop
@@ -0,0 +1,221 @@
+[Desktop Entry]
+Exec=xspirograph
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Visit to Flatland
+Name=XSpiroGraph
+Name[ca]=Espirograf X
+Name[cy]=XSbirograff
+Name[de]=Spirograph
+Name[es]=XEspirografo
+Name[et]=XMustrijoonistaja
+Name[eu]=XEspirografoa
+Name[gl]=XEspirografo
+Name[he]=ספירוגרף
+Name[hi]=à¤à¤•à¥à¤¸-सà¥à¤ªà¤¾à¤¯à¤°à¥‹-गà¥à¤°à¤¾à¤«
+Name[hu]=X-Spirograph
+Name[ja]=Xスピログラフ
+Name[ka]=სპირáƒáƒ’რáƒáƒ¤áƒ˜ (Ð¥)
+Name[mk]=X-Спирограф
+Name[mt]=XSpiroGraff
+Name[nb]=X-spirograf
+Name[nds]=XSpirograaf
+Name[nn]=X-spirograf
+Name[pt]=Gráfico Espiral
+Name[pt_BR]=Gráfico em espiral
+Name[ru]=Спирограф
+Name[sr]=X Ñпирограф
+Name[sr@Latn]=X spirograf
+Name[sv]=X-spirograf
+Name[tg]=Спирограф
+Name[uk]=Спірограф (X)
+Name[vi]=Máy đo hơi thở X
+Name[xh]=Umzobo we XSpiro
+Name[zh_CN]=旋转圆弧花纹
+
+[Desktop Action Setup]
+Exec=kxsconfig xspirograph
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun xspirograph -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun xspirograph -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/xsublim.desktop b/tdescreensaver/kxsconfig/ScreenSavers/xsublim.desktop
new file mode 100644
index 00000000..7ab42ab8
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/xsublim.desktop
@@ -0,0 +1,220 @@
+[Desktop Entry]
+Exec=xsublim
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=xsublim
+Name[cy]=xisganfyddol
+Name[de]=Sublimieren
+Name[es]=XSublim
+Name[et]=XSublim
+Name[eu]=Xsublim
+Name[gl]=XSublim
+Name[he]=×ž×¡×¨×™× ×ª×ªÖ¾×”×›×¨×ª×™×™×
+Name[hi]=à¤à¤•à¥à¤¸-सबलाइम
+Name[hu]=Xsublim
+Name[ja]=Xサブリミナル
+Name[ka]=ქვეცნáƒáƒ‘იერი
+Name[mk]=X-Сублимирање
+Name[nb]=X-sublim
+Name[nds]=XSublimeren
+Name[nn]=X-sublim
+Name[pt_BR]=Sublime
+Name[ro]=Xsublim
+Name[ru]=ПодÑознание
+Name[sr]=X Ñублимација
+Name[sr@Latn]=X sublimacija
+Name[sv]=X-sublim
+Name[ta]=xகà¯à®±à¯ˆà®¨à¯à®¤
+Name[tg]=ТаÑÑавуроти норавшан
+Name[uk]=ПідÑвідоміÑÑ‚ÑŒ (X)
+Name[vi]=Thăng hoa X
+
+[Desktop Action Setup]
+Exec=kxsconfig xsublim
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kxsrun xsublim -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun xsublim -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/xteevee.desktop b/tdescreensaver/kxsconfig/ScreenSavers/xteevee.desktop
new file mode 100644
index 00000000..6d7e3c47
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/xteevee.desktop
@@ -0,0 +1,216 @@
+[Desktop Entry]
+Exec=xteevee
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=XTeeVee
+Name[cy]=XTiFi
+Name[de]=Fernsehstörungen
+Name[et]=XTV
+Name[fo]=Sjónvarp
+Name[he]=מסך טלוויזיה
+Name[hi]=à¤à¤•à¥à¤¸-टी-वी
+Name[hu]=X-TeeVee
+Name[ka]=ტელესიგნáƒáƒšáƒ”ბი
+Name[mk]=X-ТеВе
+Name[mt]=XTiVi
+Name[nb]=X-teve
+Name[nds]=XFlimmerkist
+Name[nn]=X-teve
+Name[ru]=Телевизионные помехи
+Name[sr]=X те-ве
+Name[sr@Latn]=X te-ve
+Name[sv]=X-teve
+Name[ta]=Xடீவீ
+Name[tg]=Монеаи телевизионӣ
+Name[uk]=Телевізор з перешкодами (X)
+Name[vi]=Ti Vi X
+Name[zh_CN]=电视故障
+
+[Desktop Action Setup]
+Exec=kxsconfig xteevee
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun xteevee -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun xteevee -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/ScreenSavers/zoom.desktop b/tdescreensaver/kxsconfig/ScreenSavers/zoom.desktop
new file mode 100644
index 00000000..8d15ad9c
--- /dev/null
+++ b/tdescreensaver/kxsconfig/ScreenSavers/zoom.desktop
@@ -0,0 +1,232 @@
+[Desktop Entry]
+Exec=zoom
+Icon=tdescreensaver
+Type=Application
+
+Actions=InWindow;Root;Setup;
+X-TDE-Category=Desktop Distortions
+X-TDE-Type=ManipulateScreen
+Name=Zoom
+Name[af]=Zoem
+Name[cs]=Lupa
+Name[cy]=Chwyddo
+Name[el]=Μεγέθυνση
+Name[et]=Suurendus
+Name[eu]=Zoom-a
+Name[fa]=بزرگ‌نمایی
+Name[fi]=Suurennus
+Name[fo]=Surr
+Name[gl]=Ampliación
+Name[he]=מצלמת זו×
+Name[hi]=ज़ूम
+Name[hu]=Nagyítás
+Name[is]=Stækkun
+Name[ja]=ズーム
+Name[ka]=მáƒáƒ¡áƒ¨áƒ¢áƒáƒ‘ირებáƒ
+Name[mk]=Зум
+Name[ms]=Zum
+Name[nds]=Ansichtgrött
+Name[ne]=जूम
+Name[nn]=Skalering
+Name[pa]=ਜ਼ੂਮ
+Name[pl]=Powiększenie
+Name[pt]=Ampliação
+Name[ro]=Scalare
+Name[ru]=БлизорукоÑÑ‚ÑŒ
+Name[sr]=Увећање
+Name[sr@Latn]=Uvećanje
+Name[ta]=பெரிதà¯à®ªà®Ÿà¯à®¤à¯à®¤à¯
+Name[tg]=Ðаздикбинӣ
+Name[tr]=Odakla
+Name[uk]=МаÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ ÐµÐºÑ€Ð°Ð½Ð°
+Name[ven]=Tolela
+Name[vi]=Phóng to thu nhá»
+Name[xh]=Sondeza
+Name[zh_CN]=超级放大
+Name[zh_TW]=放大
+Name[zu]=Sondeza
+
+[Desktop Action Setup]
+Exec=kxsconfig zoom
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+
+[Desktop Action InWindow]
+Exec=kxsrun zoom -- -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kxsrun zoom -- -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
+
diff --git a/tdescreensaver/kxsconfig/XScreenSaver_ad.h b/tdescreensaver/kxsconfig/XScreenSaver_ad.h
new file mode 100644
index 00000000..42452482
--- /dev/null
+++ b/tdescreensaver/kxsconfig/XScreenSaver_ad.h
@@ -0,0 +1,439 @@
+"#error Do not run app-defaults files through xrdb!",
+"#error That does not do what you might expect.",
+"#error Put this file in /usr/lib/X11/app-defaults/XScreenSaver instead.",
+"*timeout: 0:10:00",
+"*cycle: 0:10:00",
+"*lockTimeout: 0:00:00",
+"*passwdTimeout: 0:00:30",
+"*dpmsEnabled: False",
+"*dpmsStandby: 2:00:00",
+"*dpmsSuspend: 2:00:00",
+"*dpmsOff: 4:00:00",
+"*grabDesktopImages: True",
+"*grabVideoFrames: False",
+"*chooseRandomImages: False",
+"*imageDirectory: ",
+"*nice: 10",
+"*memoryLimit: 0",
+"*lock: False",
+"*lockVTs: True",
+"*verbose: False",
+"*timestamp: True",
+"*fade: True",
+"*unfade: False",
+"*fadeSeconds: 0:00:03",
+"*fadeTicks: 20",
+"*splash: True",
+"*splashDuration: 0:00:05",
+"*visualID: default",
+"*captureStderr: True",
+"*overlayTextForeground: #FFFF00",
+"*overlayTextBackground: #000000",
+"*overlayStderr: True",
+"*font: *-medium-r-*-140-*-m-*",
+"*sgiSaverExtension: True",
+"*mitSaverExtension: False",
+"*xidleExtension: True",
+"*procInterrupts: True",
+"*demoCommand: xscreensaver-demo",
+"*prefsCommand: xscreensaver-demo -prefs",
+"*helpURL: http://www.jwz.org/xscreensaver/man.html",
+"*loadURL: netscape -remote 'openURL(%s)' || netscape '%s'",
+"*manualCommand: xterm +sb -fg black -bg gray75 -T '%s manual' \
+ -e /bin/sh -c 'man \"%s\" || read foo'",
+"*dateFormat: %d-%b-%y (%a); %I:%M %p",
+"*installColormap: True",
+"*programs: \
+ \"Qix (solid)\" qix -root -solid -segments 100 \\n\
+ \"Qix (transparent)\" qix -root -count 4 -solid -transparent \\n\
+ \"Qix (linear)\" qix -root -count 5 -solid -transparent \
+ -linear -segments 250 -size 100 \\n\
+- mono: \"Qix (xor)\" qix -root -linear -count 5 -size 200 \
+ -spread 30 -segments 75 -solid -xor \\n\
+ \
+ \"Attraction (balls)\" attraction -root -mode balls \\n\
+ \"Attraction (lines)\" attraction -root -mode lines -points 3 \
+ -segments 200 \\n\
+- \"Attraction (poly)\" attraction -root -mode polygons \\n\
+ \"Attraction (splines)\" attraction -root -mode splines -segments \
+ 300 \\n\
+ \"Attraction (orbital)\" attraction -root -mode lines -radius 300 \
+ -orbit -vmult 0.5 \\n\
+ \
+ pyro -root \\n\
+ rocks -root \\n\
+ helix -root \\n\
+ pedal -root \\n\
+ rorschach -root -offset 7 \\n\
+ hopalong -root \\n\
+ greynetic -root \\n\
+ imsmap -root \\n\
+ slidescreen -root \\n\
+ decayscreen -root \\n\
+ jigsaw -root \\n\
+ blitspin -root -grab \\n\
+ slip -root \\n\
+ distort -root \\n\
+ spotlight -root \\n\
+ \"Ripples (oily)\" ripples -root -oily -light 2 \\n\
+ \"Ripples (stir)\" ripples -root -oily -light 2 -stir \\n\
+ \"Ripples (desktop)\" ripples -root -water -light 6 \\n\
+ hypercube -root \\n\
+ hyperball -root \\n\
+ halo -root \\n\
+ maze -root \\n\
+ noseguy -root \\n\
+ flame -root \\n\
+ lmorph -root \\n\
+ deco -root \\n\
+ moire -root \\n\
+ moire2 -root \\n\
+ lightning -root \\n\
+ strange -root \\n\
+ spiral -root \\n\
+ laser -root \\n\
+ grav -root \\n\
+ \"Grav (trails)\" grav -root -trail -decay \\n\
+ drift -root \\n\
+ ifs -root \\n\
+ julia -root \\n\
+ penrose -root \\n\
+ sierpinski -root \\n\
+ braid -root \\n\
+ galaxy -root \\n\
+ bouboule -root \\n\
+ swirl -root \\n\
+ flag -root \\n\
+ sphere -root \\n\
+ forest -root \\n\
+ lisa -root \\n\
+ lissie -root \\n\
+ goop -root -max-velocity 0.5 -elasticity \
+ 0.9 \\n\
+ starfish -root \\n\
+ \"Starfish (blob)\" starfish -root -blob \\n\
+ munch -root \\n\
+ fadeplot -root \\n\
+ coral -root -delay 0 \\n\
+ mountain -root \\n\
+ triangle -root -delay 1 \\n\
+ worm -root \\n\
+ rotor -root \\n\
+ ant -root \\n\
+ demon -root \\n\
+ loop -root \\n\
+ vines -root \\n\
+ kaleidescope -root \\n\
+ xjack -root \\n\
+ xlyap -root -randomize \\n\
+ cynosure -root \\n\
+ flow -root \\n\
+ epicycle -root \\n\
+ interference -root \\n\
+ truchet -root -randomize \\n\
+ bsod -root \\n\
+ crystal -root \\n\
+ discrete -root \\n\
+ kumppa -root \\n\
+ rd-bomb -root \\n\
+ \"RD-Bomb (mobile)\" rd-bomb -root -speed 1 -size 0.1 \\n\
+ sonar -root \\n\
+ t3d -root \\n\
+ penetrate -root \\n\
+ deluxe -root \\n\
+ compass -root \\n\
+ squiral -root \\n\
+ xflame -root \\n\
+ wander -root \\n\
+ \"Wander (spots)\" wander -root -advance 0 -size 10 -circles \
+ -length 10000 -reset 100000 \\n\
+ critical -root \\n\
+ phosphor -root \\n\
+ xmatrix -root \\n\
+ petri -root -size 2 -count 20 \\n\
+ \"Petri 2\" petri -root -minlifespeed 0.02 \
+ -maxlifespeed 0.03 -minlifespan 1 \
+ -maxlifespan 1 -instantdeathchan 0 \
+ -minorchan 0 -anychan 0.3 \\n\
+ shadebobs -root \\n\
+ ccurve -root \\n\
+ blaster -root \\n\
+ bumps -root \\n\
+ xteevee -root \\n\
+ xspirograph -root \\n\
+ nerverot -root \\n\
+- \"NerveRot (dense)\" nerverot -root -count 1000 \\n\
+- \"NerveRot (thick)\" nerverot -root -count 100 -line-width 4 \
+ -max-nerve-radius 0.8 -nervousness 0.5 -db \\n\
+ xrayswarm -root \\n\
+- \"Zoom (Fatbits)\" zoom -root \\n\
+ \"Zoom (Lenses)\" zoom -root -lenses \\n\
+ rotzoomer -root \\n\
+- \"RotZoomer (mobile)\" rotzoomer -root -move \\n\
+- \"RotZoomer (sweep)\" rotzoomer -root -sweep \\n\
+ whirlwindwarp -root \\n\
+ \"WhirlyGig\" whirlygig -root \\n\
+ \"SpeedMine\" speedmine -root \\n\
+ \"SpeedWorm\" speedmine -root -worm \\n\
+ vermiculate -root \\n\
+ twang -root \\n\
+ apollonian -root \\n\
+ euler2d -root \\n\
+ \"Euler2d (dense)\" euler2d -root -count 4000 -eulertail 400 \
+ -ncolors 230 \\n\
+- juggle -root \\n\
+ polyominoes -root \\n\
+- thornbird -root \\n\
+ fluidballs -root \\n\
+ anemone -root \\n\
+ color: bubbles -root \\n\
+- default-n: webcollage -root \\n\
+- default-n: \"WebCollage (whacked)\" \
+ webcollage -root -filter \
+ 'vidwhacker -stdin -stdout' \\n\
+- default-n: vidwhacker -root \\n\
+ \
+ GL: gears -root \\n\
+ GL: \"Gears (planetary)\" gears -root -planetary \\n\
+ GL: superquadrics -root \\n\
+ GL: morph3d -root \\n\
+ GL: cage -root \\n\
+ GL: moebius -root \\n\
+ GL: stairs -root \\n\
+ GL: pipes -root \\n\
+ GL: sproingies -root \\n\
+ GL: rubik -root \\n\
+ GL: atlantis -root \\n\
+ GL: lament -root \\n\
+ GL: bubble3d -root \\n\
+ GL: glplanet -root \\n\
+ GL: pulsar -root \\n\
+- GL: \"Pulsar (textures)\" \
+ pulsar -root -texture -mipmap \
+ -texture_quality -light -fog \\n\
+ GL: extrusion -root \\n\
+ GL: sierpinski3d -root \\n\
+ GL: menger -root \\n\
+ GL: \"GFlux\" gflux -root \\n\
+ GL: \"GFlux (grab)\" gflux -root -mode grab \\n\
+ GL: stonerview -root \\n\
+ GL: starwars -root \\n\
+ GL: gltext -root \\n\
+ GL: \"GLText (clock)\" gltext -text \"%A%n%d %b %Y%n%r\" -root \\n\
+ GL: \"Molecule\" molecule -root \\n\
+ GL: \"Molecule (lumpy)\" molecule -root -no-bonds -no-labels \\n\
+ GL: dangerball -root \\n\
+ GL: circuit -root \\n\
+ GL: engine -root \\n\
+ GL: flipscreen3d -root \\n\
+ GL: glsnake -root \\n\
+ GL: boxed -root \\n\
+ GL: glforestfire -root \\n\
+ GL: sballs -root \\n\
+ GL: cubenetic -root \\n\
+ GL: spheremonics -root \\n\
+ GL: lavalite -root \\n\
+ GL: queens -root \\n\
+ GL: endgame -root \\n\
+ \
+- xdaliclock -root -builtin3 -cycle \\n\
+- default-n: xearth -nofork -nostars -ncolors 50 \
+ -night 3 -wait 0 -timewarp 400.0 -pos \
+ sunrel/38/-30 \\n\
+- xplanetbg -xscreensaver -moonside \
+ -markerfile earth -wait 1 -timewarp 400 \\n\
+- xmountains -b -M -Z 0 -r 1 \\n\
+- \"XMountains (top)\" xmountains -b -M -Z 0 -r 1 -m \\n\
+- xaos -fullscreen -autopilot \
+ -incoloring -1 -outcoloring -1 \\n\
+- xfishtank -d -s \\n\
+- xsnow \\n\
+- goban -root \\n\
+- electricsheep \\n\
+- cosmos -root \\n\
+- GL: sphereEversion --root \\n",
+"XScreenSaver.pointerPollTime: 0:00:05",
+"XScreenSaver.initialDelay: 0:00:00",
+"XScreenSaver.windowCreationTimeout: 0:00:30",
+"XScreenSaver.bourneShell: /bin/sh",
+"*Dialog.headingFont: *-times-bold-r-*-*-*-180-*-*-*-iso8859-1",
+"*Dialog.bodyFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
+"*Dialog.labelFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
+"*Dialog.buttonFont: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
+"*Dialog.dateFont: *-courier-medium-r-*-*-*-80-*-*-*-iso8859-1",
+"*Dialog.foreground: #000000",
+"*Dialog.background: #D6D6D6",
+"*Dialog.Button.foreground: #000000",
+"*Dialog.Button.background: #EAEAEA",
+"*Dialog.text.foreground: #000000",
+"*Dialog.text.background: #FFFFFF",
+"*passwd.thermometer.foreground: #FF0000",
+"*passwd.thermometer.background: #FFFFFF",
+"*Dialog.topShadowColor: #FFFFFF",
+"*Dialog.bottomShadowColor: #666666",
+"*Dialog.logo.width: 210",
+"*Dialog.logo.height: 210",
+"*Dialog.internalBorderWidth: 30",
+"*Dialog.borderWidth: 1",
+"*Dialog.shadowThickness: 2",
+"*passwd.heading.label: XScreenSaver %s",
+"*passwd.body.label: This display is locked.",
+"*passwd.user.label: User:",
+"*passwd.passwd.label: Password:",
+"*passwd.passwdFont: *-courier-medium-r-*-*-*-140-*-*-*-iso8859-1",
+"*passwd.thermometer.width: 8",
+"*splash.heading.label: XScreenSaver %s",
+"*splash.body.label: Copyright © 1991-2002 by",
+"*splash.body2.label: Jamie Zawinski <jwz@jwz.org>",
+"*splash.demo.label: Settings",
+"*splash.help.label: Help",
+"*fontList: *-helvetica-medium-r-*-*-*-120-*-*-*-iso8859-1",
+"*demoDialog*label1.fontList: *-helvetica-medium-r-*-*-*-140-*-*-*-iso8859-1",
+"*cmdText.fontList: *-courier-medium-r-*-*-*-120-*-*-*-iso8859-1",
+"*label0.fontList: *-helvetica-bold-r-*-*-*-140-*-*-*-iso8859-1",
+"XScreenSaver*doc.fontList: *-helvetica-medium-r-*-*-*-100-*-*-*-iso8859-1",
+"*foreground: #000000",
+"*background: #C0C0C0",
+"*XmTextField.foreground: #000000",
+"*XmTextField.background: #FFFFFF",
+"*list.foreground: #000000",
+"*list.background: #FFFFFF",
+"*ApplicationShell.title: XScreenSaver",
+"*warning.title: XScreenSaver",
+"*warning_popup.title: XScreenSaver",
+"*allowShellResize: True",
+"*autoUnmanage: False",
+"*menubar*file.labelString: File",
+"*menubar*file.mnemonic: F",
+"*file.blank.labelString: Blank Screen Now",
+"*file.blank.mnemonic: B",
+"*file.lock.labelString: Lock Screen Now",
+"*file.lock.mnemonic: L",
+"*file.kill.labelString: Kill Daemon",
+"*file.kill.mnemonic: K",
+"*file.restart.labelString: Restart Daemon",
+"*file.restart.mnemonic: R",
+"*file.exit.labelString: Exit",
+"*file.exit.mnemonic: E",
+"*menubar*edit.labelString: Edit",
+"*menubar*edit.mnemonic: E",
+"*edit.cut.labelString: Cut",
+"*edit.cut.mnemonic: u",
+"*edit.copy.labelString: Copy",
+"*edit.copy.mnemonic: C",
+"*edit.paste.labelString: Paste",
+"*edit.paste.mnemonic: P",
+"*menubar*help.labelString: Help",
+"*menubar*help.mnemonic: H",
+"*help.about.labelString: About...",
+"*help.about.mnemonic: A",
+"*help.docMenu.labelString: Documentation...",
+"*help.docMenu.mnemonic: D",
+"*demoTab.marginWidth: 10",
+"*optionsTab.marginWidth: 10",
+"*XmScrolledWindow.topOffset: 10",
+"*XmScrolledWindow.leftOffset: 10",
+"*demoTab.topOffset: 4",
+"*form1.bottomOffset: 10",
+"*form3.leftOffset: 10",
+"*form3.rightOffset: 10",
+"*frame.topOffset: 10",
+"*frame.bottomOffset: 10",
+"*enabled.topOffset: 10",
+"*visLabel.topOffset: 10",
+"*combo.topOffset: 10",
+"*form4.bottomOffset: 4",
+"*hr.bottomOffset: 4",
+"*XmComboBox.marginWidth: 0",
+"*XmComboBox.marginHeight: 0",
+"*demo.marginWidth: 30",
+"*demo.marginHeight: 4",
+"*man.marginWidth: 10",
+"*man.marginHeight: 4",
+"*down.leftOffset: 40",
+"*down.marginWidth: 4",
+"*down.marginHeight: 4",
+"*up.marginWidth: 4",
+"*up.marginHeight: 4",
+"*frame.traversalOn: False",
+"*list.automaticSelection: True",
+"*list.visibleItemCount: 20",
+"*doc.columns: 60",
+"*combo.columns: 11",
+"*demoTab.labelString: Graphics Demos",
+"*optionsTab.labelString: Screensaver Options",
+"*down.labelString: \\\\/ ",
+"*up.labelString: /\\\\ ",
+"*frameLabel.labelString: ",
+"*cmdLabel.labelString: Command Line:",
+"*cmdLabel.alignment: ALIGNMENT_BEGINNING",
+"*enabled.labelString: Enabled",
+"*visLabel.labelString: Visual:",
+"*visLabel.alignment: ALIGNMENT_END",
+"*visLabel.leftOffset: 20",
+"*demo.labelString: Demo",
+"*man.labelString: Documentation...",
+"*done.labelString: Quit",
+"*preferencesLabel.labelString: XScreenSaver Parameters",
+"*timeoutLabel.labelString: Saver Timeout",
+"*cycleLabel.labelString: Cycle Timeout",
+"*fadeSecondsLabel.labelString: Fade Duration",
+"*fadeTicksLabel.labelString: Fade Ticks",
+"*lockLabel.labelString: Lock Timeout",
+"*passwdLabel.labelString: Password Timeout",
+"*preferencesForm*XmTextField.columns: 8",
+"*verboseToggle.labelString: Verbose",
+"*cmapToggle.labelString: Install Colormap",
+"*fadeToggle.labelString: Fade Colormap",
+"*unfadeToggle.labelString: Unfade Colormap",
+"*lockToggle.labelString: Require Password",
+"*OK.marginWidth: 30",
+"*OK.marginHeight: 4",
+"*OK.leftOffset: 10",
+"*OK.bottomOffset: 10",
+"*Cancel.marginWidth: 30",
+"*Cancel.marginHeight: 4",
+"*Cancel.rightOffset: 10",
+"*Cancel.bottomOffset: 10",
+"*hacks.imsmap.name: IMSmap",
+"*hacks.slidescreen.name: SlideScreen",
+"*hacks.decayscreen.name: DecayScreen",
+"*hacks.blitspin.name: BlitSpin",
+"*hacks.lmorph.name: LMorph",
+"*hacks.ifs.name: IFS",
+"*hacks.fadeplot.name: FadePlot",
+"*hacks.bsod.name: BSOD",
+"*hacks.rd-bomb.name: RD-Bomb",
+"*hacks.t3d.name: T3D",
+"*hacks.shadebobs.name: ShadeBobs",
+"*hacks.ccurve.name: C Curve",
+"*hacks.xteevee.name: XTeeVee",
+"*hacks.xspirograph.name: XSpiroGraph",
+"*hacks.nerverot.name: NerveRot",
+"*hacks.webcollage.name: WebCollage",
+"*hacks.vidwhacker.name: VidWhacker",
+"*hacks.morph3d.name: Morph3D",
+"*hacks.bubble3d.name: Bubble3D",
+"*hacks.glplanet.name: GLPlanet",
+"*hacks.sierpinski3d.name: Sierpinski3D",
+"*hacks.gflux.name: GFlux",
+"*hacks.xrayswarm.name: XRaySwarm",
+"*hacks.whirlwindwarp.name: WhirlwindWarp",
+"*hacks.rotzoomer.name: RotZoomer",
+"*hacks.stonerview.name: StonerView",
+"*hacks.starwars.name: StarWars",
+"*hacks.gltext.name: GLText",
+"*hacks.dangerball.name: DangerBall",
+"*hacks.whirlygig.name: WhirlyGig",
+"*hacks.speedmine.name: SpeedMine",
+"*hacks.glsnake.name: GLSnake",
+"*hacks.glforestfire.name: GLForestFire",
+"*hacks.sballs.name: SBalls",
+"*hacks.xdaliclock.name: XDaliClock",
+"*hacks.xplanetbg.name: XPlanet",
+"*hacks.xaos.name: XaoS",
+"*hacks.xfishtank.name: XFishTank",
+"*hacks.electricsheep.name: ElectricSheep",
+"*hacks.sphereEversion.name: SphereEversion",
+"*hacks.fluidballs.name: FluidBalls",
+"*hacks.documentation.isInstalled: True",
diff --git a/tdescreensaver/kxsconfig/configure.in.bot b/tdescreensaver/kxsconfig/configure.in.bot
new file mode 100644
index 00000000..d35afee0
--- /dev/null
+++ b/tdescreensaver/kxsconfig/configure.in.bot
@@ -0,0 +1,9 @@
+if test "x$with_xscreensaver" = xcheck && test "$XSCREENSAVER" = "NO"; then
+ echo ""
+ echo "xscreensaver could not be detected on your system."
+ echo "Check www.jwz.org/xscreensaver if you're loving to"
+ echo "have tons of screensavers in KDE"
+ echo ""
+ all_tests=bad
+fi
+
diff --git a/tdescreensaver/kxsconfig/configure.in.in b/tdescreensaver/kxsconfig/configure.in.in
new file mode 100644
index 00000000..ede852c7
--- /dev/null
+++ b/tdescreensaver/kxsconfig/configure.in.in
@@ -0,0 +1,70 @@
+AC_DEFUN([KDE_CHECK_XSREENSAVER],
+[
+ XSCREENSAVER_CONFIG=NO
+ AC_FIND_FILE($1/flame.xml, [ $xscreensaver_prefixes ], XSCREENSAVER_CONFIG)
+ if test "$XSCREENSAVER_CONFIG" != NO; then
+ XSCREENSAVER_CONFIG="$XSCREENSAVER_CONFIG/$1"
+ fi
+])
+
+
+xscreensaver_prefixes="$exec_prefix $prefix /usr /usr/local /opt/local /usr/X11R6 /usr/X11R6 /opt/kde /opt/trinity /usr/kde /usr/local/kde /usr/local/xscreensaver /usr/openwin/lib/xscreensaver /etc"
+
+old_IFS=$IFS
+IFS=:
+for path in $PATH; do
+ case $path in
+ */bin)
+ path=`echo $path | sed -e 's,/bin$,,'`
+ xscreensaver_prefixes="$path $xscreensaver_prefixes"
+ ;;
+ esac
+done
+IFS=$old_IFS
+
+AC_ARG_WITH(xscreensaver,
+ [AC_HELP_STRING(--with-xscreensaver,
+ [enable support for xscreensaver @<:@default=check@:>@])],
+ [], with_xscreensaver=check)
+
+XSCREENSAVER=''
+echo "Searching in $xscreensaver_prefixes"
+if test "x$with_xscreensaver" != xno; then
+ for xsdir in lib$tdelibsuff/xscreensaver lib/xscreensaver \
+ lib$tdelibsuff/misc/xscreensaver lib/misc/xscreensaver \
+ libexec$tdelibsuff/xscreensaver libexec/xscreensaver \
+ bin/xscreensaver-hacks hacks; do
+ test -n "$XSCREENSAVER" && break
+ KDE_FIND_PATH("$xsdir/flame", XSCREENSAVER, [ $xscreensaver_prefixes ])
+ done
+
+ if test "x$with_xscreensaver" != xcheck && test "x$XSCREENSAVER" = x; then
+ AC_MSG_ERROR([--with-xscreensaver was given, but test for xscreensaver failed])
+ fi
+fi
+
+XSCREENSAVER_HACKS_DIR=
+
+if test -n "$XSCREENSAVER"; then
+ XSCREENSAVER_HACKS_DIR=`echo $XSCREENSAVER | sed -e 's,/flame$,,'`
+ AC_DEFINE_UNQUOTED(XSCREENSAVER_HACKS_DIR, "$XSCREENSAVER_HACKS_DIR", [Defines where xscreensaver stores its graphic hacks])
+
+ AC_MSG_CHECKING([for flame.xml])
+ for subdir in lib/xscreensaver/config \
+ lib/X11/xscreensaver/config \
+ share/control-center/screensavers \
+ share/xscreensaver/config \
+ xscreensaver \
+ config/control-center-2.0; do
+ KDE_CHECK_XSREENSAVER($subdir)
+ if test "$XSCREENSAVER_CONFIG" != NO; then
+ break
+ fi
+ done
+ AC_MSG_RESULT([$XSCREENSAVER_CONFIG])
+ AC_DEFINE_UNQUOTED(XSCREENSAVER_CONFIG_DIR, "$XSCREENSAVER_CONFIG",
+ [Defines where xscreensaver stores it's config files])
+fi
+
+AM_CONDITIONAL(include_XSCREENSAVER, test -n "$XSCREENSAVER")
+AC_SUBST(XSCREENSAVER_HACKS_DIR)
diff --git a/tdescreensaver/kxsconfig/hacks.pot b/tdescreensaver/kxsconfig/hacks.pot
new file mode 100644
index 00000000..e73681a1
--- /dev/null
+++ b/tdescreensaver/kxsconfig/hacks.pot
@@ -0,0 +1,4319 @@
+#: hacks/config/ant.xml.h:1
+msgid ""
+"A cellular automaton that is really a two-dimensional Turing machine: as the "
+"heads (``ants'') walk along the screen, they change pixel values in their "
+"path. Then, as they pass over changed pixels, their behavior is influenced. "
+"Written by David Bagley."
+msgstr ""
+
+#: hacks/config/ant.xml.h:2
+msgid "Ant"
+msgstr ""
+
+#: hacks/config/ant.xml.h:3
+msgid "Ant Size"
+msgstr ""
+
+#: hacks/config/ant.xml.h:4
+msgid "Ants Count"
+msgstr ""
+
+#: hacks/config/ant.xml.h:5 hacks/config/apollonian.xml.h:5
+#: hacks/config/atlantis.xml.h:4 hacks/config/attraction.xml.h:8
+#: hacks/config/blaster.xml.h:3 hacks/config/blitspin.xml.h:4
+#: hacks/config/bouboule.xml.h:3 hacks/config/boxed.xml.h:4
+#: hacks/config/braid.xml.h:4 hacks/config/bubble3d.xml.h:3
+#: hacks/config/bubbles.xml.h:8 hacks/config/bumps.xml.h:3
+#: hacks/config/cage.xml.h:2 hacks/config/circuit.xml.h:4
+#: hacks/config/compass.xml.h:3 hacks/config/coral.xml.h:7
+#: hacks/config/critical.xml.h:3 hacks/config/crystal.xml.h:6
+#: hacks/config/cubenetic.xml.h:8 hacks/config/cynosure.xml.h:4
+#: hacks/config/dangerball.xml.h:3 hacks/config/decayscreen.xml.h:2
+#: hacks/config/deluxe.xml.h:4 hacks/config/demon.xml.h:4
+#: hacks/config/discrete.xml.h:2 hacks/config/distort.xml.h:4
+#: hacks/config/drift.xml.h:3 hacks/config/engine.xml.h:3
+#: hacks/config/epicycle.xml.h:5 hacks/config/euler2d.xml.h:3
+#: hacks/config/extrusion.xml.h:3 hacks/config/fadeplot.xml.h:4
+#: hacks/config/flag.xml.h:2 hacks/config/flame.xml.h:6
+#: hacks/config/flipscreen3d.xml.h:1 hacks/config/flow.xml.h:4
+#: hacks/config/fluidballs.xml.h:3 hacks/config/forest.xml.h:1
+#: hacks/config/galaxy.xml.h:3 hacks/config/gears.xml.h:2
+#: hacks/config/gflux.xml.h:6 hacks/config/glforestfire.xml.h:4
+#: hacks/config/glplanet.xml.h:2 hacks/config/glsnake.xml.h:5
+#: hacks/config/gltext.xml.h:3 hacks/config/goop.xml.h:4
+#: hacks/config/grav.xml.h:2 hacks/config/greynetic.xml.h:1
+#: hacks/config/halo.xml.h:2 hacks/config/hopalong.xml.h:9
+#: hacks/config/hyperball.xml.h:2 hacks/config/hypercube.xml.h:2
+#: hacks/config/ifs.xml.h:1 hacks/config/interference.xml.h:5
+#: hacks/config/jigsaw.xml.h:3 hacks/config/juggle.xml.h:3
+#: hacks/config/julia.xml.h:2 hacks/config/kaleidescope.xml.h:2
+#: hacks/config/kumppa.xml.h:3 hacks/config/lament.xml.h:2
+#: hacks/config/laser.xml.h:3 hacks/config/lightning.xml.h:1
+#: hacks/config/lisa.xml.h:2 hacks/config/lissie.xml.h:3
+#: hacks/config/lmorph.xml.h:3 hacks/config/loop.xml.h:1
+#: hacks/config/maze.xml.h:4 hacks/config/menger.xml.h:3
+#: hacks/config/moebius.xml.h:3 hacks/config/moire2.xml.h:2
+#: hacks/config/molecule.xml.h:10 hacks/config/morph3d.xml.h:3
+#: hacks/config/mountain.xml.h:2 hacks/config/munch.xml.h:3
+#: hacks/config/nerverot.xml.h:9 hacks/config/penetrate.xml.h:3
+#: hacks/config/penrose.xml.h:6 hacks/config/petri.xml.h:5
+#: hacks/config/phosphor.xml.h:3 hacks/config/pipes.xml.h:5
+#: hacks/config/polyominoes.xml.h:2 hacks/config/pulsar.xml.h:11
+#: hacks/config/pyro.xml.h:4 hacks/config/qix.xml.h:7
+#: hacks/config/rd-bomb.xml.h:9 hacks/config/ripples.xml.h:4
+#: hacks/config/rocks.xml.h:4 hacks/config/rotor.xml.h:3
+#: hacks/config/rubik.xml.h:3 hacks/config/sballs.xml.h:4
+#: hacks/config/shadebobs.xml.h:3 hacks/config/sierpinski.xml.h:2
+#: hacks/config/sierpinski3d.xml.h:2 hacks/config/slidescreen.xml.h:2
+#: hacks/config/slip.xml.h:2 hacks/config/speedmine.xml.h:3
+#: hacks/config/sphere.xml.h:2 hacks/config/spheremonics.xml.h:5
+#: hacks/config/spiral.xml.h:3 hacks/config/spotlight.xml.h:2
+#: hacks/config/sproingies.xml.h:2 hacks/config/squiral.xml.h:4
+#: hacks/config/stairs.xml.h:1 hacks/config/starfish.xml.h:3
+#: hacks/config/starwars.xml.h:6 hacks/config/strange.xml.h:2
+#: hacks/config/superquadrics.xml.h:3 hacks/config/swirl.xml.h:2
+#: hacks/config/t3d.xml.h:6 hacks/config/thornbird.xml.h:2
+#: hacks/config/triangle.xml.h:1 hacks/config/truchet.xml.h:1
+#: hacks/config/twang.xml.h:3 hacks/config/vines.xml.h:1
+#: hacks/config/webcollage.xml.h:4 hacks/config/worm.xml.h:3
+#: hacks/config/xearth.xml.h:7 hacks/config/xfishtank.xml.h:3
+#: hacks/config/xflame.xml.h:4 hacks/config/xjack.xml.h:1
+#: hacks/config/xmatrix.xml.h:4 hacks/config/xmountains.xml.h:1
+#: hacks/config/xrayswarm.xml.h:2 hacks/config/zoom.xml.h:2
+msgid "Fast"
+msgstr ""
+
+#: hacks/config/ant.xml.h:6
+msgid "Four Sided Cells"
+msgstr ""
+
+#: hacks/config/ant.xml.h:7 hacks/config/attraction.xml.h:13
+#: hacks/config/cubenetic.xml.h:11 hacks/config/demon.xml.h:5
+#: hacks/config/discrete.xml.h:3 hacks/config/distort.xml.h:5
+#: hacks/config/fadeplot.xml.h:5 hacks/config/flag.xml.h:4
+#: hacks/config/flow.xml.h:7 hacks/config/fluidballs.xml.h:12
+#: hacks/config/hopalong.xml.h:13 hacks/config/interference.xml.h:8
+#: hacks/config/julia.xml.h:5 hacks/config/lissie.xml.h:4
+#: hacks/config/loop.xml.h:2 hacks/config/moire.xml.h:4
+#: hacks/config/rd-bomb.xml.h:11 hacks/config/rorschach.xml.h:5
+#: hacks/config/rubik.xml.h:4 hacks/config/sierpinski.xml.h:3
+#: hacks/config/slip.xml.h:3
+msgid "Large"
+msgstr ""
+
+#: hacks/config/ant.xml.h:8 hacks/config/apollonian.xml.h:7
+#: hacks/config/attraction.xml.h:18 hacks/config/blaster.xml.h:6
+#: hacks/config/bouboule.xml.h:5 hacks/config/braid.xml.h:7
+#: hacks/config/coral.xml.h:9 hacks/config/critical.xml.h:4
+#: hacks/config/crystal.xml.h:8 hacks/config/cubenetic.xml.h:13
+#: hacks/config/cynosure.xml.h:6 hacks/config/deco.xml.h:5
+#: hacks/config/deluxe.xml.h:6 hacks/config/demon.xml.h:6
+#: hacks/config/discrete.xml.h:4 hacks/config/drift.xml.h:9
+#: hacks/config/epicycle.xml.h:8 hacks/config/euler2d.xml.h:8
+#: hacks/config/fadeplot.xml.h:6 hacks/config/flag.xml.h:5
+#: hacks/config/flame.xml.h:11 hacks/config/flow.xml.h:8
+#: hacks/config/fluidballs.xml.h:13 hacks/config/forest.xml.h:3
+#: hacks/config/galaxy.xml.h:6 hacks/config/grav.xml.h:4
+#: hacks/config/halo.xml.h:4 hacks/config/hopalong.xml.h:15
+#: hacks/config/ifs.xml.h:3 hacks/config/imsmap.xml.h:9
+#: hacks/config/interference.xml.h:11 hacks/config/julia.xml.h:6
+#: hacks/config/kaleidescope.xml.h:5 hacks/config/laser.xml.h:6
+#: hacks/config/lightning.xml.h:3 hacks/config/lisa.xml.h:5
+#: hacks/config/lissie.xml.h:6 hacks/config/loop.xml.h:4
+#: hacks/config/moire.xml.h:5 hacks/config/moire2.xml.h:3
+#: hacks/config/mountain.xml.h:4 hacks/config/nerverot.xml.h:15
+#: hacks/config/pedal.xml.h:6 hacks/config/penrose.xml.h:7
+#: hacks/config/petri.xml.h:11 hacks/config/polyominoes.xml.h:5
+#: hacks/config/qix.xml.h:14 hacks/config/rd-bomb.xml.h:12
+#: hacks/config/ripples.xml.h:7 hacks/config/rocks.xml.h:5
+#: hacks/config/rotor.xml.h:6 hacks/config/shadebobs.xml.h:5
+#: hacks/config/sierpinski.xml.h:4 hacks/config/slip.xml.h:4
+#: hacks/config/sphere.xml.h:3 hacks/config/spiral.xml.h:6
+#: hacks/config/squiral.xml.h:9 hacks/config/starfish.xml.h:5
+#: hacks/config/strange.xml.h:5 hacks/config/swirl.xml.h:3
+#: hacks/config/thornbird.xml.h:4 hacks/config/triangle.xml.h:3
+#: hacks/config/vines.xml.h:2 hacks/config/whirlwindwarp.xml.h:4
+#: hacks/config/worm.xml.h:4 hacks/config/xearth.xml.h:12
+#: hacks/config/xfishtank.xml.h:8
+msgid "Many"
+msgstr ""
+
+#: hacks/config/ant.xml.h:9
+msgid "Nine Sided Cells"
+msgstr ""
+
+#: hacks/config/ant.xml.h:10 hacks/config/apollonian.xml.h:8
+#: hacks/config/attraction.xml.h:19 hacks/config/bouboule.xml.h:6
+#: hacks/config/braid.xml.h:9 hacks/config/critical.xml.h:5
+#: hacks/config/crystal.xml.h:10 hacks/config/cynosure.xml.h:7
+#: hacks/config/deco.xml.h:8 hacks/config/deluxe.xml.h:7
+#: hacks/config/demon.xml.h:7 hacks/config/discrete.xml.h:6
+#: hacks/config/drift.xml.h:10 hacks/config/epicycle.xml.h:9
+#: hacks/config/euler2d.xml.h:9 hacks/config/fadeplot.xml.h:7
+#: hacks/config/flag.xml.h:6 hacks/config/flame.xml.h:12
+#: hacks/config/flow.xml.h:9 hacks/config/forest.xml.h:4
+#: hacks/config/galaxy.xml.h:7 hacks/config/grav.xml.h:5
+#: hacks/config/halo.xml.h:6 hacks/config/hopalong.xml.h:17
+#: hacks/config/ifs.xml.h:4 hacks/config/imsmap.xml.h:10
+#: hacks/config/interference.xml.h:12 hacks/config/julia.xml.h:7
+#: hacks/config/laser.xml.h:8 hacks/config/lightning.xml.h:4
+#: hacks/config/lisa.xml.h:6 hacks/config/lissie.xml.h:7
+#: hacks/config/loop.xml.h:5 hacks/config/moire.xml.h:7
+#: hacks/config/moire2.xml.h:5 hacks/config/mountain.xml.h:6
+#: hacks/config/penrose.xml.h:8 hacks/config/polyominoes.xml.h:6
+#: hacks/config/rd-bomb.xml.h:13 hacks/config/rocks.xml.h:6
+#: hacks/config/rotor.xml.h:7 hacks/config/shadebobs.xml.h:6
+#: hacks/config/sierpinski.xml.h:5 hacks/config/slip.xml.h:5
+#: hacks/config/sphere.xml.h:4 hacks/config/spiral.xml.h:8
+#: hacks/config/squiral.xml.h:10 hacks/config/starfish.xml.h:6
+#: hacks/config/strange.xml.h:6 hacks/config/swirl.xml.h:5
+#: hacks/config/thornbird.xml.h:5 hacks/config/triangle.xml.h:4
+#: hacks/config/vines.xml.h:3 hacks/config/worm.xml.h:5
+#: hacks/config/xearth.xml.h:17 hacks/config/xfishtank.xml.h:9
+msgid "Number of Colors"
+msgstr ""
+
+#: hacks/config/ant.xml.h:11
+msgid "Random Cell Shape"
+msgstr ""
+
+#: hacks/config/ant.xml.h:12 hacks/config/speedmine.xml.h:11
+msgid "Sharp Turns"
+msgstr ""
+
+#: hacks/config/ant.xml.h:13
+msgid "Six Sided Cells"
+msgstr ""
+
+#: hacks/config/ant.xml.h:14 hacks/config/apollonian.xml.h:11
+#: hacks/config/atlantis.xml.h:13 hacks/config/attraction.xml.h:26
+#: hacks/config/blaster.xml.h:8 hacks/config/blitspin.xml.h:7
+#: hacks/config/bouboule.xml.h:8 hacks/config/boxed.xml.h:6
+#: hacks/config/braid.xml.h:11 hacks/config/bubble3d.xml.h:5
+#: hacks/config/bubbles.xml.h:10 hacks/config/bumps.xml.h:4
+#: hacks/config/cage.xml.h:4 hacks/config/circuit.xml.h:10
+#: hacks/config/compass.xml.h:4 hacks/config/coral.xml.h:12
+#: hacks/config/critical.xml.h:6 hacks/config/crystal.xml.h:11
+#: hacks/config/cubenetic.xml.h:22 hacks/config/cynosure.xml.h:9
+#: hacks/config/dangerball.xml.h:5 hacks/config/decayscreen.xml.h:17
+#: hacks/config/deluxe.xml.h:8 hacks/config/demon.xml.h:8
+#: hacks/config/discrete.xml.h:7 hacks/config/distort.xml.h:11
+#: hacks/config/drift.xml.h:12 hacks/config/engine.xml.h:5
+#: hacks/config/epicycle.xml.h:10 hacks/config/euler2d.xml.h:14
+#: hacks/config/extrusion.xml.h:11 hacks/config/fadeplot.xml.h:8
+#: hacks/config/flag.xml.h:7 hacks/config/flame.xml.h:14
+#: hacks/config/flipscreen3d.xml.h:6 hacks/config/flow.xml.h:13
+#: hacks/config/fluidballs.xml.h:18 hacks/config/forest.xml.h:5
+#: hacks/config/galaxy.xml.h:10 hacks/config/gears.xml.h:7
+#: hacks/config/gflux.xml.h:12 hacks/config/glforestfire.xml.h:14
+#: hacks/config/glplanet.xml.h:6 hacks/config/glsnake.xml.h:12
+#: hacks/config/gltext.xml.h:13 hacks/config/goop.xml.h:10
+#: hacks/config/grav.xml.h:8 hacks/config/greynetic.xml.h:3
+#: hacks/config/halo.xml.h:9 hacks/config/hopalong.xml.h:21
+#: hacks/config/hyperball.xml.h:8 hacks/config/hypercube.xml.h:7
+#: hacks/config/ifs.xml.h:5 hacks/config/interference.xml.h:14
+#: hacks/config/jigsaw.xml.h:5 hacks/config/juggle.xml.h:7
+#: hacks/config/julia.xml.h:8 hacks/config/kaleidescope.xml.h:7
+#: hacks/config/kumppa.xml.h:8 hacks/config/lament.xml.h:6
+#: hacks/config/laser.xml.h:10 hacks/config/lightning.xml.h:5
+#: hacks/config/lisa.xml.h:8 hacks/config/lissie.xml.h:9
+#: hacks/config/lmorph.xml.h:11 hacks/config/loop.xml.h:7
+#: hacks/config/maze.xml.h:14 hacks/config/menger.xml.h:16
+#: hacks/config/moebius.xml.h:7 hacks/config/moire2.xml.h:6
+#: hacks/config/molecule.xml.h:22 hacks/config/morph3d.xml.h:6
+#: hacks/config/mountain.xml.h:7 hacks/config/munch.xml.h:7
+#: hacks/config/nerverot.xml.h:20 hacks/config/penetrate.xml.h:6
+#: hacks/config/penrose.xml.h:11 hacks/config/petri.xml.h:23
+#: hacks/config/phosphor.xml.h:6 hacks/config/pipes.xml.h:15
+#: hacks/config/polyominoes.xml.h:10 hacks/config/pulsar.xml.h:15
+#: hacks/config/pyro.xml.h:13 hacks/config/qix.xml.h:19
+#: hacks/config/rd-bomb.xml.h:17 hacks/config/ripples.xml.h:11
+#: hacks/config/rocks.xml.h:9 hacks/config/rotor.xml.h:11
+#: hacks/config/rubik.xml.h:9 hacks/config/sballs.xml.h:13
+#: hacks/config/shadebobs.xml.h:9 hacks/config/sierpinski.xml.h:7
+#: hacks/config/sierpinski3d.xml.h:8 hacks/config/slidescreen.xml.h:6
+#: hacks/config/slip.xml.h:7 hacks/config/speedmine.xml.h:13
+#: hacks/config/sphere.xml.h:5 hacks/config/spheremonics.xml.h:19
+#: hacks/config/spiral.xml.h:9 hacks/config/spotlight.xml.h:4
+#: hacks/config/sproingies.xml.h:6 hacks/config/squiral.xml.h:14
+#: hacks/config/stairs.xml.h:3 hacks/config/starfish.xml.h:8
+#: hacks/config/starwars.xml.h:12 hacks/config/strange.xml.h:7
+#: hacks/config/superquadrics.xml.h:7 hacks/config/swirl.xml.h:6
+#: hacks/config/t3d.xml.h:11 hacks/config/thornbird.xml.h:7
+#: hacks/config/triangle.xml.h:5 hacks/config/truchet.xml.h:2
+#: hacks/config/twang.xml.h:9 hacks/config/vines.xml.h:4
+#: hacks/config/webcollage.xml.h:7 hacks/config/worm.xml.h:7
+#: hacks/config/xearth.xml.h:22 hacks/config/xfishtank.xml.h:10
+#: hacks/config/xflame.xml.h:5 hacks/config/xjack.xml.h:2
+#: hacks/config/xmatrix.xml.h:13 hacks/config/xmountains.xml.h:4
+#: hacks/config/xrayswarm.xml.h:3 hacks/config/zoom.xml.h:6
+msgid "Slow"
+msgstr ""
+
+#: hacks/config/ant.xml.h:15 hacks/config/attraction.xml.h:27
+#: hacks/config/cubenetic.xml.h:23 hacks/config/demon.xml.h:9
+#: hacks/config/discrete.xml.h:8 hacks/config/distort.xml.h:12
+#: hacks/config/fadeplot.xml.h:9 hacks/config/flag.xml.h:8
+#: hacks/config/flow.xml.h:15 hacks/config/fluidballs.xml.h:19
+#: hacks/config/hopalong.xml.h:22 hacks/config/interference.xml.h:15
+#: hacks/config/julia.xml.h:9 hacks/config/lissie.xml.h:10
+#: hacks/config/loop.xml.h:8 hacks/config/moire.xml.h:9
+#: hacks/config/rd-bomb.xml.h:18 hacks/config/rorschach.xml.h:8
+#: hacks/config/rubik.xml.h:10 hacks/config/sierpinski.xml.h:8
+#: hacks/config/slip.xml.h:8
+msgid "Small"
+msgstr ""
+
+#: hacks/config/ant.xml.h:16 hacks/config/apollonian.xml.h:12
+#: hacks/config/attraction.xml.h:28 hacks/config/blaster.xml.h:9
+#: hacks/config/bouboule.xml.h:9 hacks/config/braid.xml.h:12
+#: hacks/config/bubble3d.xml.h:6 hacks/config/bubbles.xml.h:11
+#: hacks/config/bumps.xml.h:5 hacks/config/cage.xml.h:6
+#: hacks/config/circuit.xml.h:11 hacks/config/compass.xml.h:5
+#: hacks/config/coral.xml.h:14 hacks/config/critical.xml.h:7
+#: hacks/config/crystal.xml.h:12 hacks/config/cubenetic.xml.h:24
+#: hacks/config/cynosure.xml.h:10 hacks/config/dangerball.xml.h:6
+#: hacks/config/decayscreen.xml.h:18 hacks/config/deluxe.xml.h:9
+#: hacks/config/demon.xml.h:10 hacks/config/discrete.xml.h:9
+#: hacks/config/distort.xml.h:13 hacks/config/drift.xml.h:13
+#: hacks/config/engine.xml.h:6 hacks/config/epicycle.xml.h:11
+#: hacks/config/euler2d.xml.h:15 hacks/config/extrusion.xml.h:13
+#: hacks/config/fadeplot.xml.h:10 hacks/config/flag.xml.h:9
+#: hacks/config/flame.xml.h:15 hacks/config/flipscreen3d.xml.h:7
+#: hacks/config/flow.xml.h:16 hacks/config/fluidballs.xml.h:20
+#: hacks/config/forest.xml.h:6 hacks/config/galaxy.xml.h:11
+#: hacks/config/glforestfire.xml.h:15 hacks/config/glplanet.xml.h:8
+#: hacks/config/gltext.xml.h:15 hacks/config/goop.xml.h:11
+#: hacks/config/grav.xml.h:9 hacks/config/greynetic.xml.h:4
+#: hacks/config/halo.xml.h:10 hacks/config/hopalong.xml.h:23
+#: hacks/config/hyperball.xml.h:9 hacks/config/hypercube.xml.h:8
+#: hacks/config/ifs.xml.h:6 hacks/config/jigsaw.xml.h:7
+#: hacks/config/juggle.xml.h:8 hacks/config/julia.xml.h:10
+#: hacks/config/kaleidescope.xml.h:8 hacks/config/kumppa.xml.h:9
+#: hacks/config/lament.xml.h:7 hacks/config/laser.xml.h:11
+#: hacks/config/lightning.xml.h:6 hacks/config/lisa.xml.h:9
+#: hacks/config/lissie.xml.h:11 hacks/config/lmorph.xml.h:12
+#: hacks/config/loop.xml.h:9 hacks/config/menger.xml.h:18
+#: hacks/config/moebius.xml.h:10 hacks/config/moire2.xml.h:7
+#: hacks/config/molecule.xml.h:24 hacks/config/morph3d.xml.h:7
+#: hacks/config/mountain.xml.h:8 hacks/config/munch.xml.h:9
+#: hacks/config/nerverot.xml.h:22 hacks/config/penrose.xml.h:12
+#: hacks/config/petri.xml.h:25 hacks/config/phosphor.xml.h:7
+#: hacks/config/pipes.xml.h:16 hacks/config/polyominoes.xml.h:11
+#: hacks/config/pulsar.xml.h:17 hacks/config/qix.xml.h:22
+#: hacks/config/rotor.xml.h:12 hacks/config/rubik.xml.h:11
+#: hacks/config/sballs.xml.h:14 hacks/config/shadebobs.xml.h:10
+#: hacks/config/sierpinski.xml.h:9 hacks/config/sierpinski3d.xml.h:10
+#: hacks/config/slidescreen.xml.h:7 hacks/config/slip.xml.h:9
+#: hacks/config/speedmine.xml.h:15 hacks/config/sphere.xml.h:6
+#: hacks/config/spheremonics.xml.h:22 hacks/config/spiral.xml.h:10
+#: hacks/config/spotlight.xml.h:5 hacks/config/sproingies.xml.h:8
+#: hacks/config/squiral.xml.h:16 hacks/config/stairs.xml.h:5
+#: hacks/config/starfish.xml.h:9 hacks/config/strange.xml.h:8
+#: hacks/config/superquadrics.xml.h:9 hacks/config/swirl.xml.h:7
+#: hacks/config/t3d.xml.h:13 hacks/config/thornbird.xml.h:8
+#: hacks/config/triangle.xml.h:6 hacks/config/truchet.xml.h:3
+#: hacks/config/twang.xml.h:10 hacks/config/vines.xml.h:5
+#: hacks/config/webcollage.xml.h:8 hacks/config/whirlygig.xml.h:4
+#: hacks/config/worm.xml.h:8 hacks/config/xearth.xml.h:25
+#: hacks/config/xflame.xml.h:6 hacks/config/xjack.xml.h:3
+#: hacks/config/xmatrix.xml.h:16 hacks/config/xmountains.xml.h:5
+#: hacks/config/xrayswarm.xml.h:4 hacks/config/zoom.xml.h:7
+msgid "Speed"
+msgstr ""
+
+#: hacks/config/ant.xml.h:17
+msgid "Three Sided Cells"
+msgstr ""
+
+#: hacks/config/ant.xml.h:18 hacks/config/demon.xml.h:12
+#: hacks/config/discrete.xml.h:10 hacks/config/fadeplot.xml.h:11
+#: hacks/config/flag.xml.h:12 hacks/config/flow.xml.h:17
+#: hacks/config/lissie.xml.h:12 hacks/config/loop.xml.h:11
+#: hacks/config/rubik.xml.h:12 hacks/config/sierpinski.xml.h:11
+#: hacks/config/slip.xml.h:11
+msgid "Timeout"
+msgstr ""
+
+#: hacks/config/ant.xml.h:19
+msgid "Truchet Lines"
+msgstr ""
+
+#: hacks/config/ant.xml.h:20
+msgid "Twelve Sided Cells"
+msgstr ""
+
+#: hacks/config/ant.xml.h:21 hacks/config/apollonian.xml.h:13
+#: hacks/config/attraction.xml.h:32 hacks/config/bouboule.xml.h:11
+#: hacks/config/braid.xml.h:13 hacks/config/critical.xml.h:8
+#: hacks/config/crystal.xml.h:13 hacks/config/cynosure.xml.h:11
+#: hacks/config/deco.xml.h:10 hacks/config/deluxe.xml.h:14
+#: hacks/config/demon.xml.h:13 hacks/config/discrete.xml.h:11
+#: hacks/config/drift.xml.h:14 hacks/config/epicycle.xml.h:13
+#: hacks/config/euler2d.xml.h:17 hacks/config/fadeplot.xml.h:12
+#: hacks/config/flag.xml.h:13 hacks/config/flame.xml.h:16
+#: hacks/config/flow.xml.h:18 hacks/config/forest.xml.h:8
+#: hacks/config/galaxy.xml.h:13 hacks/config/grav.xml.h:11
+#: hacks/config/halo.xml.h:12 hacks/config/hopalong.xml.h:25
+#: hacks/config/ifs.xml.h:8 hacks/config/imsmap.xml.h:15
+#: hacks/config/interference.xml.h:16 hacks/config/julia.xml.h:12
+#: hacks/config/laser.xml.h:12 hacks/config/lightning.xml.h:8
+#: hacks/config/lisa.xml.h:12 hacks/config/lissie.xml.h:13
+#: hacks/config/loop.xml.h:12 hacks/config/moire.xml.h:11
+#: hacks/config/moire2.xml.h:9 hacks/config/mountain.xml.h:9
+#: hacks/config/nerverot.xml.h:23 hacks/config/penrose.xml.h:13
+#: hacks/config/polyominoes.xml.h:12 hacks/config/rd-bomb.xml.h:20
+#: hacks/config/rocks.xml.h:12 hacks/config/rotor.xml.h:13
+#: hacks/config/shadebobs.xml.h:12 hacks/config/sierpinski.xml.h:12
+#: hacks/config/slip.xml.h:12 hacks/config/sphere.xml.h:8
+#: hacks/config/spiral.xml.h:12 hacks/config/squiral.xml.h:18
+#: hacks/config/starfish.xml.h:14 hacks/config/strange.xml.h:11
+#: hacks/config/swirl.xml.h:9 hacks/config/thornbird.xml.h:13
+#: hacks/config/triangle.xml.h:8 hacks/config/vines.xml.h:7
+#: hacks/config/worm.xml.h:9 hacks/config/xearth.xml.h:28
+#: hacks/config/xfishtank.xml.h:11
+msgid "Two"
+msgstr ""
+
+#: hacks/config/apollonian.xml.h:1
+msgid "Apollonian"
+msgstr ""
+
+#: hacks/config/apollonian.xml.h:2
+msgid "Deep"
+msgstr ""
+
+#: hacks/config/apollonian.xml.h:3
+msgid "Depth"
+msgstr ""
+
+#: hacks/config/apollonian.xml.h:4
+msgid "Draw Labels"
+msgstr ""
+
+#: hacks/config/apollonian.xml.h:6
+msgid "Include Alternate Geometries"
+msgstr ""
+
+#: hacks/config/apollonian.xml.h:9
+msgid ""
+"Packs a large circle with smaller circles, demonstrating the Descartes "
+"Circle Theorem. Written by Allan R. Wilks and David Bagley."
+msgstr ""
+
+#: hacks/config/apollonian.xml.h:10
+msgid "Shallow"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:1
+msgid "Agressive"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:2
+msgid "Atlantis"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:3
+msgid "Clear Water"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:5
+msgid "Flat Background"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:6
+msgid "Gradient Background"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:7
+msgid "Number of Sharks"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:8
+msgid "Shark Proximity"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:9
+msgid "Shark Speed"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:10
+msgid "Shimmering Water"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:11 hacks/config/boxed.xml.h:5
+#: hacks/config/bubble3d.xml.h:4 hacks/config/cage.xml.h:3
+#: hacks/config/circuit.xml.h:9 hacks/config/cubenetic.xml.h:21
+#: hacks/config/dangerball.xml.h:4 hacks/config/engine.xml.h:4
+#: hacks/config/extrusion.xml.h:10 hacks/config/flipscreen3d.xml.h:5
+#: hacks/config/fluidballs.xml.h:17 hacks/config/gears.xml.h:6
+#: hacks/config/gflux.xml.h:11 hacks/config/glforestfire.xml.h:13
+#: hacks/config/glplanet.xml.h:5 hacks/config/glsnake.xml.h:10
+#: hacks/config/gltext.xml.h:12 hacks/config/lament.xml.h:5
+#: hacks/config/menger.xml.h:15 hacks/config/moebius.xml.h:6
+#: hacks/config/molecule.xml.h:21 hacks/config/morph3d.xml.h:5
+#: hacks/config/pipes.xml.h:14 hacks/config/pulsar.xml.h:14
+#: hacks/config/rubik.xml.h:6 hacks/config/sballs.xml.h:12
+#: hacks/config/sierpinski3d.xml.h:6 hacks/config/spheremonics.xml.h:18
+#: hacks/config/sproingies.xml.h:4 hacks/config/stairs.xml.h:2
+#: hacks/config/starwars.xml.h:11 hacks/config/superquadrics.xml.h:6
+msgid "Show Frames-per-Second"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:12
+msgid "Shy"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:14 hacks/config/boxed.xml.h:7
+#: hacks/config/cage.xml.h:5 hacks/config/extrusion.xml.h:12
+#: hacks/config/gears.xml.h:8 hacks/config/glplanet.xml.h:7
+#: hacks/config/glsnake.xml.h:13 hacks/config/gltext.xml.h:14
+#: hacks/config/menger.xml.h:17 hacks/config/molecule.xml.h:23
+#: hacks/config/munch.xml.h:8 hacks/config/sierpinski3d.xml.h:9
+#: hacks/config/speedmine.xml.h:14 hacks/config/spheremonics.xml.h:21
+#: hacks/config/sproingies.xml.h:7 hacks/config/stairs.xml.h:4
+#: hacks/config/stonerview.xml.h:2 hacks/config/superquadrics.xml.h:8
+msgid "Solid"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:15
+msgid ""
+"This is xfishtank writ large: a GL animation of a number of sharks, "
+"dolphins, and whales. The swimming motions are great. Originally written by "
+"Mark Kilgard."
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:16
+msgid "Whale Speed"
+msgstr ""
+
+#: hacks/config/atlantis.xml.h:17 hacks/config/boxed.xml.h:8
+#: hacks/config/cage.xml.h:8 hacks/config/dangerball.xml.h:11
+#: hacks/config/extrusion.xml.h:19 hacks/config/gears.xml.h:11
+#: hacks/config/glforestfire.xml.h:20 hacks/config/glplanet.xml.h:11
+#: hacks/config/glsnake.xml.h:16 hacks/config/gltext.xml.h:18
+#: hacks/config/lament.xml.h:9 hacks/config/menger.xml.h:21
+#: hacks/config/moebius.xml.h:11 hacks/config/molecule.xml.h:26
+#: hacks/config/pulsar.xml.h:20 hacks/config/sballs.xml.h:18
+#: hacks/config/sierpinski3d.xml.h:12 hacks/config/speedmine.xml.h:18
+#: hacks/config/spheremonics.xml.h:26 hacks/config/sproingies.xml.h:10
+#: hacks/config/stairs.xml.h:7 hacks/config/stonerview.xml.h:4
+#: hacks/config/superquadrics.xml.h:11
+msgid "Wireframe"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:1
+msgid "Attraction"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:2
+msgid "Ball Count"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:3
+msgid "Ball Mass"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:4 hacks/config/fluidballs.xml.h:2
+msgid "Balls"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:5
+msgid "Bounce Off Walls"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:6 hacks/config/hopalong.xml.h:1
+#: hacks/config/interference.xml.h:3 hacks/config/qix.xml.h:2
+#: hacks/config/wander.xml.h:3
+msgid "Color Contrast"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:7
+msgid "Environmental Viscosity"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:9
+msgid "Filled Splines"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:10 hacks/config/ccurve.xml.h:9
+#: hacks/config/cubenetic.xml.h:10 hacks/config/euler2d.xml.h:5
+#: hacks/config/flame.xml.h:9 hacks/config/goop.xml.h:6
+#: hacks/config/hopalong.xml.h:10 hacks/config/hyperball.xml.h:3
+#: hacks/config/hypercube.xml.h:3 hacks/config/interference.xml.h:6
+#: hacks/config/kumppa.xml.h:4 hacks/config/nerverot.xml.h:11
+#: hacks/config/petri.xml.h:8 hacks/config/pyro.xml.h:5
+#: hacks/config/qix.xml.h:10 hacks/config/speedmine.xml.h:5
+#: hacks/config/spheremonics.xml.h:6 hacks/config/spiral.xml.h:4
+#: hacks/config/squiral.xml.h:6 hacks/config/strange.xml.h:3
+#: hacks/config/superquadrics.xml.h:4 hacks/config/t3d.xml.h:7
+#: hacks/config/twang.xml.h:5 hacks/config/wander.xml.h:8
+msgid "High"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:11
+msgid "Ignore Screen Edges"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:12
+msgid "Inward"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:14
+msgid ""
+"Like qix, this uses a simple simple motion model to generate many different "
+"display modes. The control points attract each other up to a certain "
+"distance, and then begin to repel each other. The attraction/repulsion is "
+"proportional to the distance between any two particles, similar to the "
+"strong and weak nuclear forces. One of the most interesting ways to watch "
+"this hack is simply as bouncing balls, because their motions and "
+"interactions with each other are so odd. Sometimes two balls will get into a "
+"tight orbit around each other, to be interrupted later by a third, or by the "
+"edge of the screen. It looks quite chaotic. Written by Jamie Zawinski, based "
+"on Lisp code by John Pezaris."
+msgstr ""
+
+#: hacks/config/attraction.xml.h:15 hacks/config/deluxe.xml.h:5
+#: hacks/config/lmorph.xml.h:7 hacks/config/pedal.xml.h:5
+#: hacks/config/starfish.xml.h:4 hacks/config/whirlygig.xml.h:3
+msgid "Lines"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:16 hacks/config/braid.xml.h:6
+#: hacks/config/cynosure.xml.h:5 hacks/config/drift.xml.h:8
+#: hacks/config/euler2d.xml.h:6 hacks/config/galaxy.xml.h:5
+#: hacks/config/juggle.xml.h:5 hacks/config/laser.xml.h:5
+#: hacks/config/menger.xml.h:4 hacks/config/munch.xml.h:4
+#: hacks/config/nerverot.xml.h:13 hacks/config/petri.xml.h:9
+#: hacks/config/polyominoes.xml.h:4 hacks/config/rotor.xml.h:5
+#: hacks/config/shadebobs.xml.h:4 hacks/config/sierpinski3d.xml.h:3
+#: hacks/config/spheremonics.xml.h:7 hacks/config/wander.xml.h:10
+#: hacks/config/whirlwindwarp.xml.h:3
+msgid "Long"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:17 hacks/config/ccurve.xml.h:10
+#: hacks/config/cubenetic.xml.h:12 hacks/config/euler2d.xml.h:7
+#: hacks/config/flame.xml.h:10 hacks/config/goop.xml.h:7
+#: hacks/config/hopalong.xml.h:14 hacks/config/hyperball.xml.h:6
+#: hacks/config/hypercube.xml.h:5 hacks/config/interference.xml.h:9
+#: hacks/config/kumppa.xml.h:6 hacks/config/nerverot.xml.h:14
+#: hacks/config/petri.xml.h:10 hacks/config/pyro.xml.h:7
+#: hacks/config/qix.xml.h:13 hacks/config/speedmine.xml.h:6
+#: hacks/config/spheremonics.xml.h:8 hacks/config/spiral.xml.h:5
+#: hacks/config/squiral.xml.h:8 hacks/config/strange.xml.h:4
+#: hacks/config/superquadrics.xml.h:5 hacks/config/t3d.xml.h:8
+#: hacks/config/twang.xml.h:7 hacks/config/wander.xml.h:11
+msgid "Low"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:20
+msgid "Orbital Mode"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:21
+msgid "Outward"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:22
+msgid "Polygons"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:23 hacks/config/spotlight.xml.h:3
+msgid "Radius"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:24
+msgid "Repulsion Threshold"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:25 hacks/config/braid.xml.h:10
+#: hacks/config/cynosure.xml.h:8 hacks/config/drift.xml.h:11
+#: hacks/config/euler2d.xml.h:12 hacks/config/galaxy.xml.h:8
+#: hacks/config/laser.xml.h:9 hacks/config/menger.xml.h:14
+#: hacks/config/munch.xml.h:6 hacks/config/nerverot.xml.h:19
+#: hacks/config/petri.xml.h:22 hacks/config/polyominoes.xml.h:9
+#: hacks/config/rotor.xml.h:9 hacks/config/shadebobs.xml.h:8
+#: hacks/config/sierpinski3d.xml.h:5 hacks/config/spheremonics.xml.h:17
+#: hacks/config/wander.xml.h:12 hacks/config/whirlwindwarp.xml.h:6
+msgid "Short"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:29
+msgid "Splines"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:30
+msgid "Tails"
+msgstr ""
+
+#: hacks/config/attraction.xml.h:31 hacks/config/euler2d.xml.h:16
+#: hacks/config/juggle.xml.h:9
+msgid "Trail Length"
+msgstr ""
+
+#: hacks/config/blaster.xml.h:1
+msgid "Blaster"
+msgstr ""
+
+#: hacks/config/blaster.xml.h:2
+msgid ""
+"Draws a simulation of flying space-combat robots (cleverly disguised as "
+"colored circles) doing battle in front of a moving star field. Written by "
+"Jonathan Lin."
+msgstr ""
+
+#: hacks/config/blaster.xml.h:4 hacks/config/bouboule.xml.h:4
+#: hacks/config/coral.xml.h:8 hacks/config/cubenetic.xml.h:9
+#: hacks/config/euler2d.xml.h:4 hacks/config/flame.xml.h:7
+#: hacks/config/fluidballs.xml.h:4 hacks/config/kaleidescope.xml.h:3
+#: hacks/config/lisa.xml.h:3 hacks/config/pedal.xml.h:4
+#: hacks/config/petri.xml.h:7 hacks/config/qix.xml.h:8
+#: hacks/config/thornbird.xml.h:3 hacks/config/whirlwindwarp.xml.h:1
+#: hacks/config/xfishtank.xml.h:4
+msgid "Few"
+msgstr ""
+
+#: hacks/config/blaster.xml.h:5 hacks/config/penetrate.xml.h:4
+msgid "Lasers"
+msgstr ""
+
+#: hacks/config/blaster.xml.h:7
+msgid "Robots"
+msgstr ""
+
+#: hacks/config/blaster.xml.h:10
+msgid "Stars"
+msgstr ""
+
+#: hacks/config/blitspin.xml.h:1
+msgid "90° Rotation Speed"
+msgstr ""
+
+#: hacks/config/blitspin.xml.h:2
+msgid "Bitmap to rotate"
+msgstr ""
+
+#: hacks/config/blitspin.xml.h:3
+msgid "BlitSpin"
+msgstr ""
+
+#: hacks/config/blitspin.xml.h:5
+msgid "Fuzzy Rotation Speed"
+msgstr ""
+
+#: hacks/config/blitspin.xml.h:6
+msgid "Grab Screen"
+msgstr ""
+
+#: hacks/config/blitspin.xml.h:8
+msgid ""
+"The ``blitspin'' hack repeatedly rotates a bitmap by 90 degrees by using "
+"logical operations: the bitmap is divided into quadrants, and the quadrants "
+"are shifted clockwise. Then the same thing is done again with progressively "
+"smaller quadrants, except that all sub-quadrants of a given size are rotated "
+"in parallel. Written by Jamie Zawinski based on some cool SmallTalk code "
+"seen in in Byte Magazine in 1981. As you watch it, the image appears to "
+"dissolve into static and then reconstitute itself, but rotated. You can "
+"provide the image to use, as an XBM or XPM file, or tell it to grab a screen "
+"image and rotate that."
+msgstr ""
+
+#: hacks/config/bouboule.xml.h:1
+msgid "Bouboule"
+msgstr ""
+
+#: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3
+msgid "Do Red/Blue 3D seperation"
+msgstr ""
+
+#: hacks/config/bouboule.xml.h:7
+msgid "Number of Spots"
+msgstr ""
+
+#: hacks/config/bouboule.xml.h:10
+msgid ""
+"This draws what looks like a spinning, deforming baloon with varying-sized "
+"spots painted on its invisible surface. Written by Jeremie Petit."
+msgstr ""
+
+#: hacks/config/boxed.xml.h:1 hacks/config/gears.xml.h:1
+#: hacks/config/gflux.xml.h:1 hacks/config/pyro.xml.h:1
+#: hacks/config/rd-bomb.xml.h:6 hacks/config/rocks.xml.h:1
+#: hacks/config/starwars.xml.h:1 hacks/config/xfishtank.xml.h:1
+msgid "Animation Speed"
+msgstr ""
+
+#: hacks/config/boxed.xml.h:2
+msgid "Boxed"
+msgstr ""
+
+#: hacks/config/boxed.xml.h:3
+msgid ""
+"Draws a box full of 3D bouncing balls that explode. Written by Sander van "
+"Grieken."
+msgstr ""
+
+#: hacks/config/braid.xml.h:1
+msgid "Braid"
+msgstr ""
+
+#: hacks/config/braid.xml.h:2
+msgid ""
+"Draws random color-cycling inter-braided concentric circles. Written by John "
+"Neil."
+msgstr ""
+
+#: hacks/config/braid.xml.h:3 hacks/config/bsod.xml.h:8
+#: hacks/config/ccurve.xml.h:7 hacks/config/coral.xml.h:6
+#: hacks/config/cynosure.xml.h:3 hacks/config/deco.xml.h:4
+#: hacks/config/drift.xml.h:2 hacks/config/epicycle.xml.h:3
+#: hacks/config/euler2d.xml.h:1 hacks/config/flame.xml.h:5
+#: hacks/config/galaxy.xml.h:2 hacks/config/glsnake.xml.h:4
+#: hacks/config/helix.xml.h:3 hacks/config/hopalong.xml.h:2
+#: hacks/config/imsmap.xml.h:6 hacks/config/laser.xml.h:2
+#: hacks/config/menger.xml.h:2 hacks/config/moire.xml.h:3
+#: hacks/config/molecule.xml.h:9 hacks/config/munch.xml.h:2
+#: hacks/config/nerverot.xml.h:8 hacks/config/pedal.xml.h:3
+#: hacks/config/penrose.xml.h:5 hacks/config/polyominoes.xml.h:1
+#: hacks/config/rorschach.xml.h:3 hacks/config/rotzoomer.xml.h:5
+#: hacks/config/shadebobs.xml.h:2 hacks/config/sierpinski3d.xml.h:1
+#: hacks/config/spheremonics.xml.h:4 hacks/config/starfish.xml.h:2
+#: hacks/config/vidwhacker.xml.h:3 hacks/config/wander.xml.h:7
+#: hacks/config/xspirograph.xml.h:3
+msgid "Duration"
+msgstr ""
+
+#: hacks/config/braid.xml.h:5 hacks/config/epicycle.xml.h:7
+#: hacks/config/nerverot.xml.h:12
+msgid "Line Thickness"
+msgstr ""
+
+#: hacks/config/braid.xml.h:8
+msgid "Max Rings"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:1 hacks/config/molecule.xml.h:1
+#: hacks/config/vidwhacker.xml.h:1 hacks/config/webcollage.xml.h:1
+msgid "2 minutes"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:2 hacks/config/molecule.xml.h:2
+msgid "5 seconds"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:3
+msgid "AmigaDOS"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:4
+msgid "Atari"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:5
+msgid "BSD"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:6
+msgid "BSOD"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:7
+msgid ""
+"BSOD stands for ``Blue Screen of Death.'' The finest in personal computer "
+"emulation, this hack simulates popular screen savers from a number of less "
+"robust operating systems. Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/bsod.xml.h:9
+msgid "Mac Bomb"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:10
+msgid "MacsBug"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:11
+msgid "NCD X Terminal"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:12
+msgid "SCO"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:13
+msgid "Sad Mac"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:14
+msgid "Solaris"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:15
+msgid "Sparc Linux"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:16
+msgid "Windows"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:17
+msgid "Windows 2000"
+msgstr ""
+
+#: hacks/config/bsod.xml.h:18
+msgid "Windows NT"
+msgstr ""
+
+#: hacks/config/bubble3d.xml.h:1
+msgid "Bubble3D"
+msgstr ""
+
+#: hacks/config/bubble3d.xml.h:2
+msgid ""
+"Draws a stream of rising, undulating 3D bubbles, rising toward the top of "
+"the screen, with nice specular reflections. Written by Richard Jones."
+msgstr ""
+
+#: hacks/config/bubbles.xml.h:1 hacks/config/xfishtank.xml.h:2
+msgid "Bubbles"
+msgstr ""
+
+#: hacks/config/bubbles.xml.h:2
+msgid "Bubbles Fall"
+msgstr ""
+
+#: hacks/config/bubbles.xml.h:3
+msgid "Bubbles Float"
+msgstr ""
+
+#: hacks/config/bubbles.xml.h:4
+msgid "Bubbles Rise"
+msgstr ""
+
+#: hacks/config/bubbles.xml.h:5
+msgid "Bubbles exist in three dimensions"
+msgstr ""
+
+#: hacks/config/bubbles.xml.h:6
+msgid "Don't hide bubbles when they pop"
+msgstr ""
+
+#: hacks/config/bubbles.xml.h:7
+msgid "Draw circles instead of pixmap bubbles"
+msgstr ""
+
+#: hacks/config/bubbles.xml.h:9
+msgid "Leave Trails"
+msgstr ""
+
+#: hacks/config/bubbles.xml.h:12
+msgid ""
+"This simulates the kind of bubble formation that happens when water boils:"
+"small bubbles appear, and as they get closer to each other, they combine to "
+"form larger bubbles, which eventually pop. Written by James Macnicol."
+msgstr ""
+
+#: hacks/config/bumps.xml.h:1
+msgid ""
+"A bit like `Spotlight', except that instead of merely exposing part of your "
+"desktop, it creates a bump map from it. Basically, it 3D-izes a roaming "
+"section of your desktop, based on color intensity. Written by Shane Smit."
+msgstr ""
+
+#: hacks/config/bumps.xml.h:2
+msgid "Bumps"
+msgstr ""
+
+#: hacks/config/cage.xml.h:1
+msgid "Cage"
+msgstr ""
+
+#: hacks/config/cage.xml.h:7
+msgid ""
+"This draws Escher's ``Impossible Cage,'' a 3d analog of a moebius strip, and "
+"rotates it in three dimensions. Written by Marcelo Vianna."
+msgstr ""
+
+#: hacks/config/ccurve.xml.h:1
+msgid "0 seconds"
+msgstr ""
+
+#: hacks/config/ccurve.xml.h:2 hacks/config/epicycle.xml.h:1
+msgid "1 minute"
+msgstr ""
+
+#: hacks/config/ccurve.xml.h:3 hacks/config/epicycle.xml.h:2
+msgid "1 second"
+msgstr ""
+
+#: hacks/config/ccurve.xml.h:4
+msgid "C Curve"
+msgstr ""
+
+#: hacks/config/ccurve.xml.h:5
+msgid "Delay"
+msgstr ""
+
+#: hacks/config/ccurve.xml.h:6 hacks/config/coral.xml.h:5
+#: hacks/config/imsmap.xml.h:5 hacks/config/kumppa.xml.h:1
+#: hacks/config/qix.xml.h:6 hacks/config/squiral.xml.h:2
+#: hacks/config/wander.xml.h:4
+msgid "Density"
+msgstr ""
+
+#: hacks/config/ccurve.xml.h:8
+msgid ""
+"Generates self-similar linear fractals, including the classic ``C Curve.'' "
+"Written by Rick Campbell."
+msgstr ""
+
+#: hacks/config/circuit.xml.h:1
+msgid "Animates a number of 3D electronic components. Written by Ben Buxton."
+msgstr ""
+
+#: hacks/config/circuit.xml.h:2
+msgid "Circuit"
+msgstr ""
+
+#: hacks/config/circuit.xml.h:3 hacks/config/gflux.xml.h:4
+#: hacks/config/pulsar.xml.h:2
+msgid "Directional Lighting"
+msgstr ""
+
+#: hacks/config/circuit.xml.h:5
+msgid "Flat Coloring"
+msgstr ""
+
+#: hacks/config/circuit.xml.h:6
+msgid "Parts"
+msgstr ""
+
+#: hacks/config/circuit.xml.h:7 hacks/config/flipscreen3d.xml.h:4
+msgid "Rotate"
+msgstr ""
+
+#: hacks/config/circuit.xml.h:8
+msgid "Rotation Speed"
+msgstr ""
+
+#: hacks/config/circuit.xml.h:12 hacks/config/dangerball.xml.h:9
+#: hacks/config/engine.xml.h:7
+msgid "Spin"
+msgstr ""
+
+#: hacks/config/compass.xml.h:1
+msgid "Compass"
+msgstr ""
+
+#: hacks/config/compass.xml.h:2 hacks/config/deluxe.xml.h:3
+#: hacks/config/interference.xml.h:4 hacks/config/kumppa.xml.h:2
+#: hacks/config/nerverot.xml.h:6 hacks/config/pipes.xml.h:4
+msgid "Double Buffer"
+msgstr ""
+
+#: hacks/config/compass.xml.h:6
+msgid ""
+"This draws a compass, with all elements spinning about randomly, for that "
+"``lost and nauseous'' feeling. Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/coral.xml.h:1 hacks/config/deco.xml.h:1
+#: hacks/config/helix.xml.h:1 hacks/config/imsmap.xml.h:1
+#: hacks/config/jigsaw.xml.h:2 hacks/config/moire.xml.h:1
+#: hacks/config/pedal.xml.h:1 hacks/config/rorschach.xml.h:1
+#: hacks/config/rotzoomer.xml.h:2 hacks/config/wander.xml.h:2
+#: hacks/config/xspirograph.xml.h:1
+msgid "1 Minute"
+msgstr ""
+
+#: hacks/config/coral.xml.h:2 hacks/config/deco.xml.h:2
+#: hacks/config/helix.xml.h:2 hacks/config/imsmap.xml.h:2
+#: hacks/config/moire.xml.h:2 hacks/config/pedal.xml.h:2
+#: hacks/config/penrose.xml.h:1 hacks/config/rorschach.xml.h:2
+#: hacks/config/xspirograph.xml.h:2
+msgid "1 Second"
+msgstr ""
+
+#: hacks/config/coral.xml.h:3
+msgid "Coral"
+msgstr ""
+
+#: hacks/config/coral.xml.h:4 hacks/config/gflux.xml.h:3
+#: hacks/config/imsmap.xml.h:4 hacks/config/pyro.xml.h:2
+#: hacks/config/qix.xml.h:5 hacks/config/squiral.xml.h:1
+#: hacks/config/xearth.xml.h:4
+msgid "Dense"
+msgstr ""
+
+#: hacks/config/coral.xml.h:10 hacks/config/squiral.xml.h:13
+msgid "Seeds"
+msgstr ""
+
+#: hacks/config/coral.xml.h:11
+msgid ""
+"Simulates coral growth, albeit somewhat slowly. This image doesn't really do "
+"it justice. Written by Frederick Roeber."
+msgstr ""
+
+#: hacks/config/coral.xml.h:13 hacks/config/gflux.xml.h:13
+#: hacks/config/imsmap.xml.h:13 hacks/config/pyro.xml.h:14
+#: hacks/config/qix.xml.h:21 hacks/config/squiral.xml.h:15
+#: hacks/config/xearth.xml.h:24 hacks/config/xmatrix.xml.h:15
+msgid "Sparse"
+msgstr ""
+
+#: hacks/config/cosmos.xml.h:1
+msgid "Cosmos"
+msgstr ""
+
+#: hacks/config/cosmos.xml.h:2
+msgid ""
+"Draws fireworks and zooming, fading flares. By Tom Campbell. You can find it "
+"at &lt;http://cosmos.dnsalias.net/cosmos/&gt;"
+msgstr ""
+
+#: hacks/config/critical.xml.h:1
+msgid "Critical"
+msgstr ""
+
+#: hacks/config/critical.xml.h:2
+msgid ""
+"Draws a system of self-organizing lines. It starts out as random squiggles, "
+"but after a few iterations, order begins to appear. Written by Martin Pool."
+msgstr ""
+
+#: hacks/config/crystal.xml.h:1
+msgid "Center on Screen"
+msgstr ""
+
+#: hacks/config/crystal.xml.h:2 hacks/config/deluxe.xml.h:1
+#: hacks/config/fadeplot.xml.h:1 hacks/config/flow.xml.h:3
+#: hacks/config/galaxy.xml.h:1 hacks/config/glforestfire.xml.h:1
+#: hacks/config/grav.xml.h:1 hacks/config/julia.xml.h:1
+#: hacks/config/laser.xml.h:1 hacks/config/lisa.xml.h:1
+#: hacks/config/lissie.xml.h:2 hacks/config/morph3d.xml.h:2
+#: hacks/config/mountain.xml.h:1 hacks/config/qix.xml.h:4
+#: hacks/config/rocks.xml.h:2 hacks/config/rotor.xml.h:2
+#: hacks/config/rubik.xml.h:1 hacks/config/shadebobs.xml.h:1
+#: hacks/config/sierpinski.xml.h:1 hacks/config/slip.xml.h:1
+#: hacks/config/spiral.xml.h:1 hacks/config/sproingies.xml.h:1
+#: hacks/config/superquadrics.xml.h:1 hacks/config/swirl.xml.h:1
+#: hacks/config/worm.xml.h:2
+msgid "Count"
+msgstr ""
+
+#: hacks/config/crystal.xml.h:3
+msgid "Crystal"
+msgstr ""
+
+#: hacks/config/crystal.xml.h:4
+msgid "Draw Cell"
+msgstr ""
+
+#: hacks/config/crystal.xml.h:5 hacks/config/spheremonics.xml.h:3
+#: hacks/config/xearth.xml.h:6
+msgid "Draw Grid"
+msgstr ""
+
+#: hacks/config/crystal.xml.h:7
+msgid "Horizontal Symmetries"
+msgstr ""
+
+#: hacks/config/crystal.xml.h:9
+msgid ""
+"Moving polygons, similar to a kaleidescope (more like a kaleidescope than "
+"the hack called `kaleid,' actually.) This one by Jouk Jansen."
+msgstr ""
+
+#: hacks/config/crystal.xml.h:14
+msgid "Vertical Symmetries"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:1
+msgid "Boxes"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:2
+msgid "Cubenetic"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:3
+msgid "Display Solid Colors"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:4
+msgid "Display Surface Patterns"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:5
+msgid "Display Wireframe"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:6 hacks/config/gltext.xml.h:2
+#: hacks/config/menger.xml.h:1 hacks/config/molecule.xml.h:4
+#: hacks/config/spheremonics.xml.h:1
+msgid "Don't Rotate"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:7
+msgid ""
+"Draws a pulsating set of overlapping boxes with ever-chaning blobby patterns "
+"undulating across their surfaces. It's sort of a cubist Lavalite. Written by "
+"Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:14 hacks/config/gltext.xml.h:5
+#: hacks/config/menger.xml.h:7 hacks/config/molecule.xml.h:14
+#: hacks/config/spheremonics.xml.h:10
+msgid "Rotate around X and Y axes"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:15 hacks/config/gltext.xml.h:6
+#: hacks/config/menger.xml.h:8 hacks/config/molecule.xml.h:15
+#: hacks/config/spheremonics.xml.h:11
+msgid "Rotate around X and Z axes"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:16 hacks/config/gltext.xml.h:7
+#: hacks/config/menger.xml.h:9 hacks/config/molecule.xml.h:16
+#: hacks/config/spheremonics.xml.h:12
+msgid "Rotate around X axis"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:17 hacks/config/gltext.xml.h:8
+#: hacks/config/menger.xml.h:10 hacks/config/molecule.xml.h:17
+#: hacks/config/spheremonics.xml.h:13
+msgid "Rotate around Y and Z axes"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:18 hacks/config/gltext.xml.h:9
+#: hacks/config/menger.xml.h:11 hacks/config/molecule.xml.h:18
+#: hacks/config/spheremonics.xml.h:14
+msgid "Rotate around Y axis"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:19 hacks/config/gltext.xml.h:10
+#: hacks/config/menger.xml.h:12 hacks/config/molecule.xml.h:19
+#: hacks/config/spheremonics.xml.h:15
+msgid "Rotate around Z axis"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:20 hacks/config/gltext.xml.h:11
+#: hacks/config/menger.xml.h:13 hacks/config/molecule.xml.h:20
+#: hacks/config/spheremonics.xml.h:16
+msgid "Rotate around all three axes"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:25
+msgid "Surface Pattern Complexity"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:26
+msgid "Surface Pattern Overlap"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:27
+msgid "Surface Pattern Speed"
+msgstr ""
+
+#: hacks/config/cubenetic.xml.h:28 hacks/config/dangerball.xml.h:10
+#: hacks/config/engine.xml.h:8 hacks/config/glforestfire.xml.h:19
+#: hacks/config/gltext.xml.h:17 hacks/config/menger.xml.h:20
+#: hacks/config/molecule.xml.h:25 hacks/config/spheremonics.xml.h:25
+#: hacks/config/wander.xml.h:15
+msgid "Wander"
+msgstr ""
+
+#: hacks/config/cynosure.xml.h:1
+msgid ""
+"A hack similar to `greynetic', but less frenetic. The first implementation "
+"was by Stephen Linhart; then Ozymandias G. Desiderata wrote a Java applet "
+"clone. That clone was discovered by Jamie Zawinski, and ported to C for "
+"inclusion here."
+msgstr ""
+
+#: hacks/config/cynosure.xml.h:2
+msgid "Cynosure"
+msgstr ""
+
+#: hacks/config/dangerball.xml.h:1
+msgid "DangerBall"
+msgstr ""
+
+#: hacks/config/dangerball.xml.h:2
+msgid ""
+"Draws a ball that periodically extrudes many random spikes. Ouch! Written by "
+"Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/dangerball.xml.h:7
+msgid "Spike Count"
+msgstr ""
+
+#: hacks/config/dangerball.xml.h:8
+msgid "Spike Growth"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:1
+msgid "DecayScreen"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:3
+msgid "Fuzzy Melt"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:4
+msgid "Melt Away From Center"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:5
+msgid "Melt Down"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:6
+msgid "Melt Down, Left"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:7
+msgid "Melt Down, Right"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:8
+msgid "Melt Left"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:9
+msgid "Melt Right"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:10
+msgid "Melt Towards Center"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:11
+msgid "Melt Up"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:12
+msgid "Melt Up, Left"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:13
+msgid "Melt Up, Right"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:14
+msgid "Melty Melt"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:15
+msgid "Random Melt Style"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:16
+msgid "Shuffle Melt"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:19
+msgid "Stretchy Melt"
+msgstr ""
+
+#: hacks/config/decayscreen.xml.h:20
+msgid ""
+"This takes an image and makes it melt. You've no doubt seen this effect "
+"before, but no screensaver would really be complete without it. It works "
+"best if there's something colorful visible. Warning, if the effect continues "
+"after the screen saver is off, seek medical attention. Written by David Wald "
+"and Vivek Khera."
+msgstr ""
+
+#: hacks/config/deco.xml.h:3
+msgid "Deco"
+msgstr ""
+
+#: hacks/config/deco.xml.h:6 hacks/config/menger.xml.h:5
+#: hacks/config/sierpinski3d.xml.h:4
+msgid "Max Depth"
+msgstr ""
+
+#: hacks/config/deco.xml.h:7
+msgid "Min Size"
+msgstr ""
+
+#: hacks/config/deco.xml.h:9
+msgid ""
+"This one subdivides and colors rectangles randomly. It looks kind of like "
+"Brady-Bunch-era rec-room wall paneling. (Raven says: ``this screensaver is "
+"ugly enough to peel paint.'') Written by Jamie Zawinski, inspired by Java "
+"code by Michael Bayne."
+msgstr ""
+
+#: hacks/config/deco.xml.h:11 hacks/config/rd-bomb.xml.h:23
+#: hacks/config/whirlygig.xml.h:7 hacks/config/xearth.xml.h:33
+#: hacks/config/zoom.xml.h:10
+msgid "x"
+msgstr ""
+
+#: hacks/config/deluxe.xml.h:2
+msgid "Deluxe"
+msgstr ""
+
+#: hacks/config/deluxe.xml.h:10 hacks/config/lmorph.xml.h:13
+#: hacks/config/starfish.xml.h:11 hacks/config/thornbird.xml.h:9
+msgid "Thick"
+msgstr ""
+
+#: hacks/config/deluxe.xml.h:11 hacks/config/lmorph.xml.h:14
+#: hacks/config/starfish.xml.h:12 hacks/config/thornbird.xml.h:11
+msgid "Thin"
+msgstr ""
+
+#: hacks/config/deluxe.xml.h:12
+msgid ""
+"This draws a pulsing sequence of stars, circles, and lines. It would look "
+"better if it was faster, but as far as I can tell, there is no way to make "
+"this be both: fast, and flicker-free. Yet another reason X sucks. Written by "
+"Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/deluxe.xml.h:13
+msgid "Transparency"
+msgstr ""
+
+#: hacks/config/demon.xml.h:1
+msgid ""
+"A cellular automaton that starts with a random field, and organizes it into "
+"stripes and spirals. Written by David Bagley."
+msgstr ""
+
+#: hacks/config/demon.xml.h:2 hacks/config/petri.xml.h:1
+msgid "Cell Size"
+msgstr ""
+
+#: hacks/config/demon.xml.h:3
+msgid "Demon"
+msgstr ""
+
+#: hacks/config/demon.xml.h:11
+msgid "States"
+msgstr ""
+
+#: hacks/config/discrete.xml.h:1
+msgid "Discrete"
+msgstr ""
+
+#: hacks/config/discrete.xml.h:5
+msgid ""
+"More ``discrete map'' systems, including new variants of Hopalong and Julia, "
+"and a few others. Written by Tim Auckland."
+msgstr ""
+
+#: hacks/config/distort.xml.h:1
+msgid "Black Hole"
+msgstr ""
+
+#: hacks/config/distort.xml.h:2
+msgid "Bounce"
+msgstr ""
+
+#: hacks/config/distort.xml.h:3
+msgid "Distort"
+msgstr ""
+
+#: hacks/config/distort.xml.h:6
+msgid "Lens Count"
+msgstr ""
+
+#: hacks/config/distort.xml.h:7
+msgid "Lens Size"
+msgstr ""
+
+#: hacks/config/distort.xml.h:8
+msgid "Magnify"
+msgstr ""
+
+#: hacks/config/distort.xml.h:9 hacks/config/glforestfire.xml.h:10
+#: hacks/config/lament.xml.h:4 hacks/config/sballs.xml.h:6
+msgid "Normal"
+msgstr ""
+
+#: hacks/config/distort.xml.h:10
+msgid "Reflect"
+msgstr ""
+
+#: hacks/config/distort.xml.h:14
+msgid "Swamp Thing"
+msgstr ""
+
+#: hacks/config/distort.xml.h:15
+msgid ""
+"This hack grabs an image of the screen, and then lets a transparent lens "
+"wander around the screen, magnifying whatever is underneath. Written by "
+"Jonas Munsin."
+msgstr ""
+
+#: hacks/config/distort.xml.h:16 hacks/config/moire.xml.h:12
+#: hacks/config/rd-bomb.xml.h:21 hacks/config/ripples.xml.h:15
+#: hacks/config/rotzoomer.xml.h:10 hacks/config/swirl.xml.h:10
+#: hacks/config/twang.xml.h:15 hacks/config/xflame.xml.h:7
+msgid "Use Shared Memory"
+msgstr ""
+
+#: hacks/config/distort.xml.h:17
+msgid "Vortex"
+msgstr ""
+
+#: hacks/config/drift.xml.h:1
+msgid "Drift"
+msgstr ""
+
+#: hacks/config/drift.xml.h:4
+msgid "Fractal Growth"
+msgstr ""
+
+#: hacks/config/drift.xml.h:5
+msgid "High Dimensional Sphere"
+msgstr ""
+
+#: hacks/config/drift.xml.h:6
+msgid ""
+"How could one possibly describe this except as ``drifting recursive fractal "
+"cosmic flames?'' Another fine hack from the Scott Draves collection of fine "
+"hacks."
+msgstr ""
+
+#: hacks/config/drift.xml.h:7
+msgid "Lissojous Figures"
+msgstr ""
+
+#: hacks/config/electricsheep.xml.h:1
+msgid "ElectricSheep"
+msgstr ""
+
+#: hacks/config/electricsheep.xml.h:2
+msgid ""
+"ElectricSheep is an xscreensaver module that displays mpeg video of an "
+"animated fractal flame. In the background, it contributes render cycles to "
+"the next animation. Periodically it uploades completed frames to the server, "
+"where they are compressed for distribution to all clients. This program is "
+"recommended only if you have a high bandwidth connection to the Internet. By "
+"Scott Draves. You can find it at &lt;http://www.electricsheep.org/&gt;. See "
+"that web site for configuration information."
+msgstr ""
+
+#: hacks/config/engine.xml.h:1
+msgid ""
+"Draws a simple four-stroke engine that floats around the screen. Written by "
+"Ben Buxton."
+msgstr ""
+
+#: hacks/config/engine.xml.h:2
+msgid "Engine"
+msgstr ""
+
+#: hacks/config/epicycle.xml.h:4
+msgid "Epicycle"
+msgstr ""
+
+#: hacks/config/epicycle.xml.h:6
+msgid "Harmonics"
+msgstr ""
+
+#: hacks/config/epicycle.xml.h:12
+msgid ""
+"This program draws the path traced out by a point on the edge of a circle. "
+"That circle rotates around a point on the rim of another circle, and so on, "
+"several times. These were the basis for the pre-heliocentric model of "
+"planetary motion. Written by James Youngman."
+msgstr ""
+
+#: hacks/config/euler2d.xml.h:2
+msgid "Euler2d"
+msgstr ""
+
+#: hacks/config/euler2d.xml.h:10 hacks/config/whirlwindwarp.xml.h:5
+msgid "Particles"
+msgstr ""
+
+#: hacks/config/euler2d.xml.h:11
+msgid "Power"
+msgstr ""
+
+#: hacks/config/euler2d.xml.h:13
+msgid ""
+"Simulates two dimensional Incompressible Inviscid Fluid Flow. Written by "
+"Stephen Montgomery-Smith."
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:1
+msgid ""
+"Draws various rotating extruded shapes that twist around, lengthen, and turn "
+"inside out. Created by David Konerding from the samples that come with the "
+"GL Extrusion library by Linas Vepstas."
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:2
+msgid "Extrusion"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:4
+msgid "Helix 2"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:5
+msgid "Helix 3"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:6
+msgid "Helix 4"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:7
+msgid "Join Offset"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:8
+msgid "Random Object"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:9
+msgid "Screw"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:14
+msgid "Taper"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:15
+msgid "Texture Image"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:16
+msgid "Twistoid"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:17 hacks/config/glplanet.xml.h:9
+#: hacks/config/pulsar.xml.h:19
+msgid "Use Flat Coloring"
+msgstr ""
+
+#: hacks/config/extrusion.xml.h:18 hacks/config/glplanet.xml.h:10
+msgid "Use Lighting"
+msgstr ""
+
+#: hacks/config/fadeplot.xml.h:2
+msgid ""
+"Draws what looks like a waving ribbon following a sinusoidal path. Written "
+"by Bas van Gaalen and Charles Vidal."
+msgstr ""
+
+#: hacks/config/fadeplot.xml.h:3
+msgid "FadePlot"
+msgstr ""
+
+#: hacks/config/flag.xml.h:1
+msgid "Bitmap for Flag"
+msgstr ""
+
+#: hacks/config/flag.xml.h:3
+msgid "Flag"
+msgstr ""
+
+#: hacks/config/flag.xml.h:10
+msgid "Text for Flag"
+msgstr ""
+
+#: hacks/config/flag.xml.h:11
+msgid ""
+"This draws a waving colored flag, that undulates its way around the screen. "
+"The trick is the flag can contain arbitrary text and images. By default, it "
+"displays either the current system name and OS type, or a picture of "
+"``Bob,'' but you can replace the text or the image with a command-line "
+"option. Written by Charles Vidal and Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/flame.xml.h:1 hacks/config/jigsaw.xml.h:1
+#: hacks/config/maze.xml.h:1 hacks/config/rotzoomer.xml.h:1
+#: hacks/config/wander.xml.h:1
+msgid "0 Seconds"
+msgstr ""
+
+#: hacks/config/flame.xml.h:2 hacks/config/maze.xml.h:2
+msgid "10 Seconds"
+msgstr ""
+
+#: hacks/config/flame.xml.h:3
+msgid "Another iterative fractal generator. Written by Scott Draves."
+msgstr ""
+
+#: hacks/config/flame.xml.h:4
+msgid "Complexity"
+msgstr ""
+
+#: hacks/config/flame.xml.h:8
+msgid "Flame"
+msgstr ""
+
+#: hacks/config/flame.xml.h:13
+msgid "Number of Fractals"
+msgstr ""
+
+#: hacks/config/flipscreen3d.xml.h:2
+msgid "Flipscreen3d"
+msgstr ""
+
+#: hacks/config/flipscreen3d.xml.h:3
+msgid ""
+"Grabs an image of the desktop, turns it into a GL texture map, and spins it "
+"around and deforms it in various ways. Written by Ben Buxton."
+msgstr ""
+
+#: hacks/config/flow.xml.h:1
+msgid "Allow 2D Attractors"
+msgstr ""
+
+#: hacks/config/flow.xml.h:2
+msgid ""
+"Another series of strange attractors: a flowing series of points, making "
+"strange rotational shapes. Written by Jeff Butterworth."
+msgstr ""
+
+#: hacks/config/flow.xml.h:5
+msgid "Flow"
+msgstr ""
+
+#: hacks/config/flow.xml.h:6
+msgid "Freeze Some Bees"
+msgstr ""
+
+#: hacks/config/flow.xml.h:10
+msgid "Ride a Trained Bee"
+msgstr ""
+
+#: hacks/config/flow.xml.h:11
+msgid "Rotate Around Attractor"
+msgstr ""
+
+#: hacks/config/flow.xml.h:12
+msgid "Show Bounding Box"
+msgstr ""
+
+#: hacks/config/flow.xml.h:14
+msgid "Slow Bees with Antifreeze"
+msgstr ""
+
+#: hacks/config/flow.xml.h:19
+msgid "Zoom In and Out"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:1
+msgid "Ball Size"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:5
+msgid "FluidBalls"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:6
+msgid "Freefall"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:7 hacks/config/twang.xml.h:4
+msgid "Friction"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:8
+msgid "Glass"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:9 hacks/config/qix.xml.h:9
+#: hacks/config/speedmine.xml.h:4
+msgid "Gravity"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:10
+msgid "Hurricane"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:11
+msgid "Jupiter"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:14
+msgid ""
+"Models the physics of bouncing balls, or of particles in a gas or fluid, "
+"depending on the settings. If \"Shake Box\" is selected, then every now and "
+"then, the box will be rotated, changing which direction is down (in order to "
+"keep the settled balls in motion.)"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:15
+msgid "Sandpaper"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:16
+msgid "Shake Box"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:21 hacks/config/glforestfire.xml.h:16
+msgid "Still"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:22
+msgid "Various Ball Sizes"
+msgstr ""
+
+#: hacks/config/fluidballs.xml.h:23
+msgid "Wind"
+msgstr ""
+
+#: hacks/config/forest.xml.h:2 hacks/config/glforestfire.xml.h:6
+msgid "Forest"
+msgstr ""
+
+#: hacks/config/forest.xml.h:7
+msgid ""
+"This draws fractal trees. Written by Peter Baumung. Everybody loves "
+"fractals, right?"
+msgstr ""
+
+#: hacks/config/galaxy.xml.h:4
+msgid "Galaxy"
+msgstr ""
+
+#: hacks/config/galaxy.xml.h:9 hacks/config/lisa.xml.h:7
+#: hacks/config/lissie.xml.h:8 hacks/config/loop.xml.h:6
+#: hacks/config/penrose.xml.h:10 hacks/config/rotor.xml.h:10
+#: hacks/config/rubik.xml.h:8 hacks/config/sproingies.xml.h:5
+#: hacks/config/wander.xml.h:13 hacks/config/worm.xml.h:6
+msgid "Size"
+msgstr ""
+
+#: hacks/config/galaxy.xml.h:12
+msgid ""
+"This draws spinning galaxies, which then collide and scatter their stars to "
+"the, uh, four winds or something. Originally an Amiga program by Uli "
+"Siegmund."
+msgstr ""
+
+#: hacks/config/gears.xml.h:3
+msgid "Gears"
+msgstr ""
+
+#: hacks/config/gears.xml.h:4
+msgid "Planetary Gear System"
+msgstr ""
+
+#: hacks/config/gears.xml.h:5 hacks/config/goop.xml.h:9
+msgid "Rotational Speed"
+msgstr ""
+
+#: hacks/config/gears.xml.h:9
+msgid ""
+"This draws sets of turning, interlocking gears, rotating in three "
+"dimensions. Another GL hack, by Danny Sung, Brian Paul, Ed Mackey, and Jamie "
+"Zawinski."
+msgstr ""
+
+#: hacks/config/gears.xml.h:10
+msgid "Three Gear System"
+msgstr ""
+
+#: hacks/config/gflux.xml.h:2
+msgid "Checkerboard"
+msgstr ""
+
+#: hacks/config/gflux.xml.h:5
+msgid ""
+"Draws a rippling waves on a rotating wireframe grid, using GL. Written by "
+"Josiah Pease."
+msgstr ""
+
+#: hacks/config/gflux.xml.h:7
+msgid "Flat Lighting"
+msgstr ""
+
+#: hacks/config/gflux.xml.h:8
+msgid "GFlux"
+msgstr ""
+
+#: hacks/config/gflux.xml.h:9
+msgid "Mesh Density"
+msgstr ""
+
+#: hacks/config/gflux.xml.h:10
+msgid "Screen Image"
+msgstr ""
+
+#: hacks/config/gflux.xml.h:14 hacks/config/interference.xml.h:18
+msgid "Wave Speed"
+msgstr ""
+
+#: hacks/config/gflux.xml.h:15
+msgid "Waves"
+msgstr ""
+
+#: hacks/config/gflux.xml.h:16
+msgid "Wire Mesh"
+msgstr ""
+
+#: hacks/config/glforestfire.xml.h:2
+msgid "Desert"
+msgstr ""
+
+#: hacks/config/glforestfire.xml.h:3
+msgid ""
+"Draws an animation of sprinkling fire-like 3D triangles in a landscape "
+"filled with trees. Requires OpenGL, and a machine with fast hardware support "
+"for texture maps. Written by Eric Lassauge &lt;lassauge@mail.dotcom.fr&gt;."
+msgstr ""
+
+#: hacks/config/glforestfire.xml.h:5
+msgid "Fog"
+msgstr ""
+
+#: hacks/config/glforestfire.xml.h:7
+msgid "GLForestFire"
+msgstr ""
+
+#: hacks/config/glforestfire.xml.h:8
+msgid "Huge Fire"
+msgstr ""
+
+#: hacks/config/glforestfire.xml.h:9
+msgid "No shadow"
+msgstr ""
+
+#: hacks/config/glforestfire.xml.h:11
+msgid "Number of trees"
+msgstr ""
+
+#: hacks/config/glforestfire.xml.h:12
+msgid "Rain"
+msgstr ""
+
+#: hacks/config/glforestfire.xml.h:17
+msgid "Track mouse"
+msgstr ""
+
+#: hacks/config/glforestfire.xml.h:18 hacks/config/lament.xml.h:8
+#: hacks/config/sballs.xml.h:17
+msgid "Untextured"
+msgstr ""
+
+#: hacks/config/glplanet.xml.h:1
+msgid ""
+"Draws a planet bouncing around in space. Written by David Konerding. The "
+"built-in image is a map of the earth (extracted from `xearth'), but you can "
+"wrap any texture around the sphere, e.g., the planetary textures that come "
+"with `ssystem'."
+msgstr ""
+
+#: hacks/config/glplanet.xml.h:3
+msgid "GLPlanet"
+msgstr ""
+
+#: hacks/config/glplanet.xml.h:4
+msgid "Image File"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:1
+msgid "1"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:2 hacks/config/penrose.xml.h:2
+msgid "30 Seconds"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:3
+msgid ""
+"Draws a simulation of the Rubik's Snake puzzle. Written by Jamie Wilkinson, "
+"Andrew Bennetts, and Peter Aylett."
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:6
+msgid "GlSnake"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:7
+msgid "Loose"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:8
+msgid "Packing"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:9
+msgid "Scary Colors"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:11
+msgid "Show Labels"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:14
+msgid "Tight"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:15 hacks/config/rocks.xml.h:13
+msgid "Velocity"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:17
+msgid "Y Rotation"
+msgstr ""
+
+#: hacks/config/glsnake.xml.h:18
+msgid "Z Rotation"
+msgstr ""
+
+#: hacks/config/gltext.xml.h:1
+msgid ""
+"Displays a few lines of text spinning around in a solid 3D font. Written by "
+"Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/gltext.xml.h:4
+msgid "GLText"
+msgstr ""
+
+#: hacks/config/gltext.xml.h:16 hacks/config/noseguy.xml.h:5
+msgid "Text"
+msgstr ""
+
+#: hacks/config/goban.xml.h:1
+msgid "Goban"
+msgstr ""
+
+#: hacks/config/goban.xml.h:2
+msgid ""
+"Replays historical games of go (aka wei-chi and baduk) on the screen. By "
+"Scott Draves. You can find it at &lt;http://www.draves.org/goban/&gt;."
+msgstr ""
+
+#: hacks/config/goop.xml.h:1
+msgid "Additive Colors (reflected light)"
+msgstr ""
+
+#: hacks/config/goop.xml.h:2
+msgid "Blob Count"
+msgstr ""
+
+#: hacks/config/goop.xml.h:3
+msgid "Elasticity"
+msgstr ""
+
+#: hacks/config/goop.xml.h:5
+msgid "Goop"
+msgstr ""
+
+#: hacks/config/goop.xml.h:8
+msgid "Opaque Blobs"
+msgstr ""
+
+#: hacks/config/goop.xml.h:12
+msgid "Speed Limit"
+msgstr ""
+
+#: hacks/config/goop.xml.h:13
+msgid "Subtractive Colors (transmitted light)"
+msgstr ""
+
+#: hacks/config/goop.xml.h:14
+msgid ""
+"This draws set of animating, transparent, amoeba-like blobs. The blobs "
+"change shape as they wander around the screen, and they are translucent, so "
+"you can see the lower blobs through the higher ones, and when one passes "
+"over another, their colors merge. Written by Jamie Zawinski. I got the idea "
+"for this from a cool mouse pad I have, which achieves the same kind of "
+"effect in real life by having several layers plastic with colored oil "
+"between them. Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/goop.xml.h:15
+msgid "Transparent Blobs"
+msgstr ""
+
+#: hacks/config/goop.xml.h:16
+msgid "XOR Blobs"
+msgstr ""
+
+#: hacks/config/grav.xml.h:3
+msgid "Grav"
+msgstr ""
+
+#: hacks/config/grav.xml.h:6
+msgid "Object Trails"
+msgstr ""
+
+#: hacks/config/grav.xml.h:7
+msgid "Orbital Decay"
+msgstr ""
+
+#: hacks/config/grav.xml.h:10
+msgid ""
+"This program draws a simple orbital simulation. If you turn on trails, it "
+"looks kind of like a cloud-chamber photograph. Written by Greg Bowering."
+msgstr ""
+
+#: hacks/config/greynetic.xml.h:2
+msgid "Greynetic"
+msgstr ""
+
+#: hacks/config/greynetic.xml.h:5
+msgid ""
+"This draws random colored and stippled rectangles. Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/halo.xml.h:1
+msgid "Animate Circles"
+msgstr ""
+
+#: hacks/config/halo.xml.h:3
+msgid "Halo"
+msgstr ""
+
+#: hacks/config/halo.xml.h:5
+msgid "Number of Circles"
+msgstr ""
+
+#: hacks/config/halo.xml.h:7 hacks/config/imsmap.xml.h:11
+msgid "Random Mode"
+msgstr ""
+
+#: hacks/config/halo.xml.h:8
+msgid "Seuss Mode"
+msgstr ""
+
+#: hacks/config/halo.xml.h:11
+msgid ""
+"This draws trippy psychedelic circular patterns that hurt to look at. It can "
+"also animate the control-points, but that takes a lot of CPU and bandwidth. "
+"Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/helix.xml.h:4
+msgid "Helix"
+msgstr ""
+
+#: hacks/config/helix.xml.h:5
+msgid ""
+"This repeatedly generates spirally string-art-ish patterns. Written by Jamie "
+"Zawinski."
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:3
+msgid "EJK1"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:4
+msgid "EJK2"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:5
+msgid "EJK3"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:6
+msgid "EJK4"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:7
+msgid "EJK5"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:8
+msgid "EJK6"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:11
+msgid "Hopalong"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:12
+msgid "Jong"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:16
+msgid "Martin"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:18
+msgid "Popcorn"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:19
+msgid "RR"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:20
+msgid "Sine"
+msgstr ""
+
+#: hacks/config/hopalong.xml.h:24
+msgid ""
+"This draws lacy fractal patterns, based on iteration in the imaginary plane, "
+"from a 1986 Scientific American article. Mostly written by Patrick Naughton."
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:1 hacks/config/hypercube.xml.h:1
+msgid "Far"
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:4
+msgid "Hyperball"
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:5
+msgid ""
+"Hyperball is to hypercube as dodecahedron is to cube: this displays a 2D "
+"projection of the sequence of 3D objects which are the projections of the 4D "
+"analog to the dodecahedron. Written by Joe Keane."
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:7 hacks/config/hypercube.xml.h:6
+msgid "Near"
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:10 hacks/config/hypercube.xml.h:10
+msgid "XW Rotation"
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:11 hacks/config/hypercube.xml.h:11
+msgid "XY Rotation"
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:12 hacks/config/hypercube.xml.h:12
+msgid "XZ Rotation"
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:13 hacks/config/hypercube.xml.h:13
+msgid "YW Rotation"
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:14 hacks/config/hypercube.xml.h:14
+msgid "YZ Rotation"
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:15 hacks/config/hypercube.xml.h:15
+msgid "ZW Rotation"
+msgstr ""
+
+#: hacks/config/hyperball.xml.h:16 hacks/config/hypercube.xml.h:16
+#: hacks/config/zoom.xml.h:8
+msgid "Zoom"
+msgstr ""
+
+#: hacks/config/hypercube.xml.h:4
+msgid "Hypercube"
+msgstr ""
+
+#: hacks/config/hypercube.xml.h:9
+msgid ""
+"This displays 2D projections of the sequence of 3D objects which are the "
+"projections of the 4D analog to the cube: as a square is composed of four "
+"lines, each touching two others; and a cube is composed of six squares, each "
+"touching four others; a hypercube is composed of eight cubes, each touching "
+"six others. To make it easier to visualize the rotation, it uses a different "
+"color for the edges of each face. Don't think about it too long, or your "
+"brain will melt. Written by Joe Keane, Fritz Mueller, and Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/ifs.xml.h:2
+msgid "IFS"
+msgstr ""
+
+#: hacks/config/ifs.xml.h:7
+msgid ""
+"This one draws spinning, colliding iterated-function-system images. Written "
+"by Massimino Pascal."
+msgstr ""
+
+#: hacks/config/imsmap.xml.h:3
+msgid "Brightness Gradients"
+msgstr ""
+
+#: hacks/config/imsmap.xml.h:7
+msgid "Hue Gradients"
+msgstr ""
+
+#: hacks/config/imsmap.xml.h:8
+msgid "IMSmap"
+msgstr ""
+
+#: hacks/config/imsmap.xml.h:12
+msgid "Saturation Gradients"
+msgstr ""
+
+#: hacks/config/imsmap.xml.h:14
+msgid ""
+"This generates random cloud-like patterns. It looks quite different in "
+"monochrome and color. The basic idea is to take four points on the edge of "
+"the image, and assign each a random ``elevation''. Then find the point "
+"between them, and give it a value which is the average of the other four, "
+"plus some small random offset. Then coloration is done based on elevation. "
+"The color selection is done by binding the elevation to either hue, "
+"saturation, or brightness, and assigning random values to the others. The "
+"``brightness'' mode tends to yield cloudlike patterns, and the others tend "
+"to generate images that look like heat-maps or CAT-scans. Written by Juergen "
+"Nickelsen and Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/interference.xml.h:1
+msgid "Anim Speed"
+msgstr ""
+
+#: hacks/config/interference.xml.h:2
+msgid ""
+"Another color-field hack, this one works by computing decaying sinusoidal "
+"waves, and allowing them to interfere with each other as their origins move. "
+"Written by Hannu Mallat."
+msgstr ""
+
+#: hacks/config/interference.xml.h:7
+msgid "Interference"
+msgstr ""
+
+#: hacks/config/interference.xml.h:10 hacks/config/t3d.xml.h:9
+#: hacks/config/xearth.xml.h:11 hacks/config/zoom.xml.h:5
+msgid "Magnification"
+msgstr ""
+
+#: hacks/config/interference.xml.h:13
+msgid "Number of Waves"
+msgstr ""
+
+#: hacks/config/interference.xml.h:17
+msgid "Wave Size"
+msgstr ""
+
+#: hacks/config/jigsaw.xml.h:4
+msgid "Jigsaw"
+msgstr ""
+
+#: hacks/config/jigsaw.xml.h:6
+msgid "Solved Duration"
+msgstr ""
+
+#: hacks/config/jigsaw.xml.h:8
+msgid ""
+"This grabs a screen image, carves it up into a jigsaw puzzle, shuffles it, "
+"and then solves the puzzle. This works especially well when you feed it an "
+"external video signal instead of letting it grab the screen image (actually, "
+"I guess this is generally true...) When it is grabbing a video image, it is "
+"sometimes pretty hard to guess what the image is going to look like once the "
+"puzzle is solved. Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/juggle.xml.h:1
+msgid "Checkered Balls"
+msgstr ""
+
+#: hacks/config/juggle.xml.h:2
+msgid "Draws a juggling stick-man. Written by Tim Auckland."
+msgstr ""
+
+#: hacks/config/juggle.xml.h:4
+msgid "Juggle"
+msgstr ""
+
+#: hacks/config/juggle.xml.h:6 hacks/config/pipes.xml.h:10
+msgid "None"
+msgstr ""
+
+#: hacks/config/julia.xml.h:3 hacks/config/rorschach.xml.h:4
+msgid "Iterations"
+msgstr ""
+
+#: hacks/config/julia.xml.h:4
+msgid "Julia"
+msgstr ""
+
+#: hacks/config/julia.xml.h:11
+msgid ""
+"This one draws spinning, animating (are you detecting a pattern here yet?) "
+"explorations of the Julia set. You've probably seen static images of this "
+"fractal form before, but it's a lot of fun to watch in motion as well. One "
+"interesting thing is that there is a small swinging dot passing in front of "
+"the image, which indicates the control point from which the rest of the "
+"image was generated. Written by Sean McCullough."
+msgstr ""
+
+#: hacks/config/kaleidescope.xml.h:1
+msgid ""
+"Another clone of an ancient meme, consisting largely of frenetic rotational "
+"motion of colored lines. This one is by Ron Tapia. The motion is nice, but I "
+"think it needs more solids, or perhaps just brighter colors. More variations "
+"in the rotational speed might help, too."
+msgstr ""
+
+#: hacks/config/kaleidescope.xml.h:4
+msgid "Kaleidescope"
+msgstr ""
+
+#: hacks/config/kaleidescope.xml.h:6 hacks/config/qix.xml.h:18
+msgid "Segments"
+msgstr ""
+
+#: hacks/config/kaleidescope.xml.h:9
+msgid "Symmetry"
+msgstr ""
+
+#: hacks/config/kaleidescope.xml.h:10
+msgid "Trails"
+msgstr ""
+
+#: hacks/config/kumppa.xml.h:5
+msgid "Kumppa"
+msgstr ""
+
+#: hacks/config/kumppa.xml.h:7
+msgid "Randomize"
+msgstr ""
+
+#: hacks/config/kumppa.xml.h:10
+msgid ""
+"Spiraling, spinning, and very, very fast splashes of color rush toward the "
+"screen. Written by Teemu Suutari."
+msgstr ""
+
+#: hacks/config/lament.xml.h:1
+msgid ""
+"Animates a simulation of Lemarchand's Box, repeatedly solving itself. "
+"Requires OpenGL, and a machine with fast hardware support for texture maps. "
+"Warning: occasionally opens doors. Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/lament.xml.h:3
+msgid "Lament"
+msgstr ""
+
+#: hacks/config/laser.xml.h:4
+msgid "Laser"
+msgstr ""
+
+#: hacks/config/laser.xml.h:7
+msgid ""
+"Moving radiating lines, that look vaguely like scanning laser beams. Written "
+"by Pascal Pensa. (Frankie say: relax.)"
+msgstr ""
+
+#: hacks/config/lightning.xml.h:2
+msgid "Lightning"
+msgstr ""
+
+#: hacks/config/lightning.xml.h:7
+msgid ""
+"This one draws crackling fractal lightning bolts. It's simple, direct, and "
+"to the point. If only it had sound... Written by Keith Romberg."
+msgstr ""
+
+#: hacks/config/lisa.xml.h:4
+msgid "Lisa"
+msgstr ""
+
+#: hacks/config/lisa.xml.h:10
+msgid "Steps"
+msgstr ""
+
+#: hacks/config/lisa.xml.h:11
+msgid ""
+"This draws Lisajous loops, by Caleb Cullen. Remember that device they had "
+"the Phantom Zone prisoners in during their trial in Superman? I think that "
+"was one of these."
+msgstr ""
+
+#: hacks/config/lissie.xml.h:1
+msgid ""
+"Another Lissajous figure. This one draws the progress of circular shapes "
+"along a path. Written by Alexander Jolk."
+msgstr ""
+
+#: hacks/config/lissie.xml.h:5
+msgid "Lissie"
+msgstr ""
+
+#: hacks/config/lmorph.xml.h:1
+msgid "Closed Figures"
+msgstr ""
+
+#: hacks/config/lmorph.xml.h:2
+msgid "Control Points"
+msgstr ""
+
+#: hacks/config/lmorph.xml.h:4
+msgid "Interpolation Steps"
+msgstr ""
+
+#: hacks/config/lmorph.xml.h:5
+msgid "LMorph"
+msgstr ""
+
+#: hacks/config/lmorph.xml.h:6
+msgid "Less"
+msgstr ""
+
+#: hacks/config/lmorph.xml.h:8
+msgid "More"
+msgstr ""
+
+#: hacks/config/lmorph.xml.h:9
+msgid "Open Figures"
+msgstr ""
+
+#: hacks/config/lmorph.xml.h:10
+msgid "Open and Closed Figures"
+msgstr ""
+
+#: hacks/config/lmorph.xml.h:15
+msgid ""
+"This generates random spline-ish line drawings and morphs between them. "
+"Written by Sverre H. Huseby and Glenn T. Lines."
+msgstr ""
+
+#: hacks/config/loop.xml.h:3
+msgid "Loop"
+msgstr ""
+
+#: hacks/config/loop.xml.h:10
+msgid ""
+"This one produces loop-shaped colonies that spawn, age, and eventually die. "
+"Written by David Bagley."
+msgstr ""
+
+#: hacks/config/maze.xml.h:3
+msgid "Backtracking Generator"
+msgstr ""
+
+#: hacks/config/maze.xml.h:5 hacks/config/slidescreen.xml.h:3
+msgid "Grid Size"
+msgstr ""
+
+#: hacks/config/maze.xml.h:6
+msgid "Head Toward Exit"
+msgstr ""
+
+#: hacks/config/maze.xml.h:7
+msgid "Ignorant of Exit Direction"
+msgstr ""
+
+#: hacks/config/maze.xml.h:8
+msgid "Joining Generator"
+msgstr ""
+
+#: hacks/config/maze.xml.h:9
+msgid "Maze"
+msgstr ""
+
+#: hacks/config/maze.xml.h:10
+msgid "Post-Solve Delay"
+msgstr ""
+
+#: hacks/config/maze.xml.h:11
+msgid "Pre-Solve Delay"
+msgstr ""
+
+#: hacks/config/maze.xml.h:12
+msgid "Random Generator"
+msgstr ""
+
+#: hacks/config/maze.xml.h:13
+msgid "Seeding Generator"
+msgstr ""
+
+#: hacks/config/maze.xml.h:15
+msgid "Solve Speed"
+msgstr ""
+
+#: hacks/config/maze.xml.h:16
+msgid ""
+"This is the ancient X maze demo, modified to work with xscreensaver. It "
+"generates a random maze, then solves it with visual feedback. Originally by "
+"Jim Randell; modified by a cast of thousands."
+msgstr ""
+
+#: hacks/config/menger.xml.h:6
+msgid "Menger"
+msgstr ""
+
+#: hacks/config/menger.xml.h:19
+msgid ""
+"This draws the three-dimensional variant of the recursive Menger Gasket, a "
+"cube-based fractal object analagous to the Sierpinski Tetrahedron. Written "
+"by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/moebius.xml.h:1
+msgid ""
+"Another M. C. Escher hack by Marcelo Vianna, this one draws ``Moebius Strip "
+"II,'' a GL image of ants walking along the surface of a moebius strip."
+msgstr ""
+
+#: hacks/config/moebius.xml.h:2
+msgid "Draw Ants"
+msgstr ""
+
+#: hacks/config/moebius.xml.h:4
+msgid "Mesh Floor"
+msgstr ""
+
+#: hacks/config/moebius.xml.h:5
+msgid "Moebius"
+msgstr ""
+
+#: hacks/config/moebius.xml.h:8
+msgid "Solid Floor"
+msgstr ""
+
+#: hacks/config/moebius.xml.h:9 hacks/config/qix.xml.h:20
+msgid "Solid Objects"
+msgstr ""
+
+#: hacks/config/moire.xml.h:6
+msgid "Moire"
+msgstr ""
+
+#: hacks/config/moire.xml.h:8 hacks/config/rorschach.xml.h:6
+msgid "Offset"
+msgstr ""
+
+#: hacks/config/moire.xml.h:10
+msgid ""
+"This one draws cool circular interference patterns. Most of the circles you "
+"see aren't explicitly rendered, but show up as a result of interactions "
+"between the other pixels that were drawn. Written by Jamie Zawinski, "
+"inspired by Java code by Michael Bayne. As he pointed out, the beauty of "
+"this one is that the heart of the display algorithm can be expressed with "
+"just a pair of loops and a handful of arithmetic, giving it a high ``display "
+"hack metric''."
+msgstr ""
+
+#: hacks/config/moire2.xml.h:1
+msgid ""
+"Another example of the fun you can have with moire interference patterns; "
+"this hack generates fields of concentric circles or ovals, and combines the "
+"planes with various operations. The planes are moving independently of one "
+"another, causing the interference lines to ``spray.'' Written by Jamie "
+"Zawinski."
+msgstr ""
+
+#: hacks/config/moire2.xml.h:4
+msgid "Moire2"
+msgstr ""
+
+#: hacks/config/moire2.xml.h:8 hacks/config/thornbird.xml.h:10
+msgid "Thickness"
+msgstr ""
+
+#: hacks/config/molecule.xml.h:3
+msgid "Describe Molecule"
+msgstr ""
+
+#: hacks/config/molecule.xml.h:5
+msgid "Draw Atomic Bonds"
+msgstr ""
+
+#: hacks/config/molecule.xml.h:6
+msgid "Draw Atoms"
+msgstr ""
+
+#: hacks/config/molecule.xml.h:7 hacks/config/spheremonics.xml.h:2
+msgid "Draw Bounding Box"
+msgstr ""
+
+#: hacks/config/molecule.xml.h:8
+msgid ""
+"Draws several different representations of molecules. Some common molecules "
+"are built in, and it can also read PDB (Protein Data Base) files as input. "
+"Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/molecule.xml.h:11
+msgid "Label Atoms"
+msgstr ""
+
+#: hacks/config/molecule.xml.h:12
+msgid "Molecule"
+msgstr ""
+
+#: hacks/config/molecule.xml.h:13
+msgid "PDB File"
+msgstr ""
+
+#: hacks/config/morph3d.xml.h:1
+msgid ""
+"Another 3d shape-changing GL hack, by Marcelo Vianna. It has the same shiny-"
+"plastic feel as Superquadrics, as many computer-generated objects do..."
+msgstr ""
+
+#: hacks/config/morph3d.xml.h:4
+msgid "Morph3D"
+msgstr ""
+
+#: hacks/config/mountain.xml.h:3
+msgid ""
+"Generates random 3d plots that look vaguely mountainous. Written by Pascal "
+"Pensa."
+msgstr ""
+
+#: hacks/config/mountain.xml.h:5
+msgid "Mountain"
+msgstr ""
+
+#: hacks/config/munch.xml.h:1
+msgid ""
+"DATAI 2 ADDB 1,2 ROTC 2,-22 XOR 1,2 JRST .-4 As reported by HAKMEM, in 1962, "
+"Jackson Wright wrote the above PDP-1 code. That code still lives on in this "
+"screenhack, some 35 years later. The number of lines of enclosing code has "
+"increased substantially, however. This version is by Tim Showalter."
+msgstr ""
+
+#: hacks/config/munch.xml.h:5
+msgid "Munch"
+msgstr ""
+
+#: hacks/config/munch.xml.h:10 hacks/config/qix.xml.h:26
+msgid "XOR"
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:1
+msgid "Blot Count"
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:2
+msgid "Calm"
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:3
+msgid "Changes"
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:4
+msgid "Colors"
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:5
+msgid "Crunchiness"
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:7
+msgid ""
+"Draws different shapes composed of nervously vibrating squiggles, as if seen "
+"through a camera operated by a monkey on crack. By Dan Bornstein."
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:10
+msgid "Frequent"
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:16
+msgid "NerveRot"
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:17
+msgid "Nervousness"
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:18 hacks/config/pyro.xml.h:12
+msgid "Seldom"
+msgstr ""
+
+#: hacks/config/nerverot.xml.h:21
+msgid "Spastic"
+msgstr ""
+
+#: hacks/config/noseguy.xml.h:1
+msgid ""
+"A little man with a big nose wanders around your screen saying things. The "
+"things which he says can come from a file, or from an external program like "
+"`zippy' or `fortune'. This was extracted from `xnlock' by Dan Heller. "
+"Colorized by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/noseguy.xml.h:2
+msgid "Get Text from File"
+msgstr ""
+
+#: hacks/config/noseguy.xml.h:3
+msgid "Get Text from Program"
+msgstr ""
+
+#: hacks/config/noseguy.xml.h:4
+msgid "Noseguy"
+msgstr ""
+
+#: hacks/config/noseguy.xml.h:6
+msgid "Text File"
+msgstr ""
+
+#: hacks/config/noseguy.xml.h:7 hacks/config/phosphor.xml.h:8
+#: hacks/config/starwars.xml.h:17
+msgid "Text Program"
+msgstr ""
+
+#: hacks/config/noseguy.xml.h:8
+msgid "Use Text Below"
+msgstr ""
+
+#: hacks/config/pedal.xml.h:7
+msgid "Pedal"
+msgstr ""
+
+#: hacks/config/pedal.xml.h:8
+msgid ""
+"This is sort of a combination spirograph/string-art. It generates a large, "
+"complex polygon, and lets the X server do the bulk of the work by giving it "
+"an even/odd winding rule. Written by Dale Moore, based on some ancient PDP-"
+"11 code."
+msgstr ""
+
+#: hacks/config/penetrate.xml.h:1
+msgid "Always play well"
+msgstr ""
+
+#: hacks/config/penetrate.xml.h:2
+msgid "Explosions"
+msgstr ""
+
+#: hacks/config/penetrate.xml.h:5
+msgid "Penetrate"
+msgstr ""
+
+#: hacks/config/penetrate.xml.h:7
+msgid "Start badly, but learn"
+msgstr ""
+
+#: hacks/config/penetrate.xml.h:8
+msgid ""
+"This hack simulates the classic arcade game Missile Command. Written by Adam "
+"Miller."
+msgstr ""
+
+#: hacks/config/penrose.xml.h:3
+msgid "Draw Ammann Lines"
+msgstr ""
+
+#: hacks/config/penrose.xml.h:4
+msgid ""
+"Draws quasiperiodic tilings; think of the implications on modern formica "
+"technology. Written by Timo Korvola. In April 1997, Sir Roger Penrose, a "
+"British math professor who has worked with Stephen Hawking on such topics as "
+"relativity, black holes, and whether time has a beginning, filed a copyright-"
+"infringement lawsuit against the Kimberly-Clark Corporation, which Penrose "
+"said copied a pattern he created (a pattern demonstrating that ``a "
+"nonrepeating pattern could exist in nature'') for its Kleenex quilted toilet "
+"paper. Penrose said he doesn't like litigation but, ``When it comes to the "
+"population of Great Britain being invited by a multinational to wipe their "
+"bottoms on what appears to be the work of a Knight of the Realm, then a last "
+"stand must be taken.'' As reported by News of the Weird #491, 4-jul-1997."
+msgstr ""
+
+#: hacks/config/penrose.xml.h:9
+msgid "Penrose"
+msgstr ""
+
+#: hacks/config/petri.xml.h:2
+msgid "Colony Shape"
+msgstr ""
+
+#: hacks/config/petri.xml.h:3
+msgid "Death Comes"
+msgstr ""
+
+#: hacks/config/petri.xml.h:4
+msgid "Diamond"
+msgstr ""
+
+#: hacks/config/petri.xml.h:6
+msgid "Fertility"
+msgstr ""
+
+#: hacks/config/petri.xml.h:12
+msgid "Maxium Lifespan"
+msgstr ""
+
+#: hacks/config/petri.xml.h:13
+msgid "Maxium Rate of Death"
+msgstr ""
+
+#: hacks/config/petri.xml.h:14
+msgid "Maxium Rate of Growth"
+msgstr ""
+
+#: hacks/config/petri.xml.h:15
+msgid "Minium Lifespan"
+msgstr ""
+
+#: hacks/config/petri.xml.h:16
+msgid "Minium Rate of Death"
+msgstr ""
+
+#: hacks/config/petri.xml.h:17
+msgid "Minium Rate of Growth"
+msgstr ""
+
+#: hacks/config/petri.xml.h:18
+msgid "Mold Varieties"
+msgstr ""
+
+#: hacks/config/petri.xml.h:19
+msgid "Offspring"
+msgstr ""
+
+#: hacks/config/petri.xml.h:20
+msgid "Petri"
+msgstr ""
+
+#: hacks/config/petri.xml.h:21
+msgid "Quickly"
+msgstr ""
+
+#: hacks/config/petri.xml.h:24
+msgid "Slowly"
+msgstr ""
+
+#: hacks/config/petri.xml.h:26
+msgid "Square"
+msgstr ""
+
+#: hacks/config/petri.xml.h:27
+msgid ""
+"This simulates colonies of mold growing in a petri dish. Growing colored "
+"circles overlap and leave spiral interference in their wake. Written by Dan "
+"Bornstein."
+msgstr ""
+
+#: hacks/config/phosphor.xml.h:1
+msgid ""
+"Draws a simulation of an old terminal, with large pixels and long-sustain "
+"phosphor. It can run any program as a source of the text it displays. "
+"Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/phosphor.xml.h:2
+msgid "Fade"
+msgstr ""
+
+#: hacks/config/phosphor.xml.h:4
+msgid "Phosphor"
+msgstr ""
+
+#: hacks/config/phosphor.xml.h:5
+msgid "Scale"
+msgstr ""
+
+#: hacks/config/pipes.xml.h:1
+msgid "Allow Tight Turns"
+msgstr ""
+
+#: hacks/config/pipes.xml.h:2
+msgid "Ball Joints"
+msgstr ""
+
+#: hacks/config/pipes.xml.h:3
+msgid "Curved Pipes"
+msgstr ""
+
+#: hacks/config/pipes.xml.h:6
+msgid "Fisheye Lens"
+msgstr ""
+
+#: hacks/config/pipes.xml.h:7
+msgid "Gadgetry"
+msgstr ""
+
+#: hacks/config/pipes.xml.h:8
+msgid ""
+"If you've ever been in the same room with a Windows NT machine, you've "
+"probably seen this GL hack. This version is by Marcelo Vianna."
+msgstr ""
+
+#: hacks/config/pipes.xml.h:9
+msgid "Lots"
+msgstr ""
+
+#: hacks/config/pipes.xml.h:11
+msgid "Number of Pipe Systems"
+msgstr ""
+
+#: hacks/config/pipes.xml.h:12
+msgid "Pipe Fittings"
+msgstr ""
+
+#: hacks/config/pipes.xml.h:13
+msgid "Pipes"
+msgstr ""
+
+#: hacks/config/pipes.xml.h:17
+msgid "System Length"
+msgstr ""
+
+#: hacks/config/polyominoes.xml.h:3
+msgid "Identical Pieces"
+msgstr ""
+
+#: hacks/config/polyominoes.xml.h:7
+msgid "Polyominoes"
+msgstr ""
+
+#: hacks/config/polyominoes.xml.h:8
+msgid ""
+"Repeatedly attempts to completely fill a rectangle with irregularly-shaped "
+"puzzle pieces. Written by Stephen Montgomery-Smith."
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:1
+msgid "Anti-alias Lines"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:3
+msgid ""
+"Draws some intersecting planes, making use of alpha blending, fog, textures, "
+"and mipmaps, plus a ``frames per second'' meter so that you can tell how "
+"fast your graphics card is... Requires OpenGL. Written by David Konerding."
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:4
+msgid "Enable Blending"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:5
+msgid "Enable Depth Buffer"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:6
+msgid "Enable Fog"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:7
+msgid "Enable Lighting"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:8
+msgid "Enable Texture Filtering"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:9
+msgid "Enable Texture Mipmaps"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:10
+msgid "Enable Texturing"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:12
+msgid "Pulsar"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:13
+msgid "Quad Count"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:16
+msgid "Solid Surface"
+msgstr ""
+
+#: hacks/config/pulsar.xml.h:18
+msgid "Texture PPM File"
+msgstr ""
+
+#: hacks/config/pyro.xml.h:3
+msgid "Explosive Yield"
+msgstr ""
+
+#: hacks/config/pyro.xml.h:6
+msgid "Launch Frequency"
+msgstr ""
+
+#: hacks/config/pyro.xml.h:8
+msgid "Often"
+msgstr ""
+
+#: hacks/config/pyro.xml.h:9
+msgid "Particle Density"
+msgstr ""
+
+#: hacks/config/pyro.xml.h:10
+msgid "Pyro"
+msgstr ""
+
+#: hacks/config/pyro.xml.h:11
+msgid ""
+"Pyro draws exploding fireworks. Blah blah blah. Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/qix.xml.h:1
+msgid "Additive Colors"
+msgstr ""
+
+#: hacks/config/qix.xml.h:3
+msgid "Corners"
+msgstr ""
+
+#: hacks/config/qix.xml.h:11
+msgid "Line Segments"
+msgstr ""
+
+#: hacks/config/qix.xml.h:12
+msgid "Linear Motion"
+msgstr ""
+
+#: hacks/config/qix.xml.h:15
+msgid "Max Size"
+msgstr ""
+
+#: hacks/config/qix.xml.h:16
+msgid "Qix"
+msgstr ""
+
+#: hacks/config/qix.xml.h:17
+msgid "Random Motion"
+msgstr ""
+
+#: hacks/config/qix.xml.h:23
+msgid "Subtractive Colors"
+msgstr ""
+
+#: hacks/config/qix.xml.h:24
+msgid ""
+"This is the swiss army chainsaw of qix programs. It bounces a series of line "
+"segments around the screen, and uses variations on this basic motion pattern "
+"to produce all sorts of different presentations: line segments, filled "
+"polygons, overlapping translucent areas... Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/qix.xml.h:25
+msgid "Transparent"
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:1
+msgid "/"
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:3
+#, no-c-format
+msgid "1%"
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:5
+#, no-c-format
+msgid "100%"
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:7
+msgid ""
+"Another variation of the `Bomb' program by Scott Draves. This draws a grid "
+"of growing square-like shapes that, once they overtake each other, react in "
+"unpredictable ways. ``RD'' stands for reaction-diffusion."
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:8
+msgid "Epoch"
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:10
+msgid "Fill Screen"
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:14
+msgid "RD-Bomb"
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:15
+msgid "Reaction/Difusion"
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:16
+msgid "Seed Radius"
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:19 hacks/config/twang.xml.h:12
+msgid "Tile Size"
+msgstr ""
+
+#: hacks/config/rd-bomb.xml.h:22
+msgid "Wander Speed"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:1
+msgid "Big Drops"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:2
+msgid "Colors Two"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:3
+msgid "Drizzle"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:5
+msgid "Grab Screen Image"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:6
+msgid "Lighting Effect"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:8
+msgid "Moving Splashes"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:9
+msgid "Psychedelic Colors"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:10
+msgid "Ripples"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:12
+msgid "Small Drops"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:13
+msgid "Storm"
+msgstr ""
+
+#: hacks/config/ripples.xml.h:14
+msgid ""
+"This draws rippling interference patterns like splashing water. With the -"
+"water option, it manipulates your desktop image to look like something is "
+"dripping into it. Written by Tom Hammersley."
+msgstr ""
+
+#: hacks/config/rocks.xml.h:7
+msgid "Rocks"
+msgstr ""
+
+#: hacks/config/rocks.xml.h:8
+msgid "Rotation"
+msgstr ""
+
+#: hacks/config/rocks.xml.h:10
+msgid "Steering"
+msgstr ""
+
+#: hacks/config/rocks.xml.h:11
+msgid ""
+"This draws an animation of flight through an asteroid field, with changes in "
+"rotation and direction. It can also display 3D separations for red/blue "
+"glasses! Mostly written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/rorschach.xml.h:7
+msgid "Rorschach"
+msgstr ""
+
+#: hacks/config/rorschach.xml.h:9
+msgid ""
+"This generates random inkblot patterns. The algorithm is deceptively simple "
+"for how well it works; it merely walks a dot around the screen randomly, and "
+"then reflects the image horizontally, vertically, or both. Any deep-seated "
+"neurotic tendencies which this program reveals are your own problem. Written "
+"by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/rorschach.xml.h:10
+msgid "With X Symmetry"
+msgstr ""
+
+#: hacks/config/rorschach.xml.h:11
+msgid "With Y Symmetry"
+msgstr ""
+
+#: hacks/config/rotor.xml.h:1
+msgid ""
+"Another ancient xlock demo, this one by Tom Lawrence. It draws a line "
+"segment moving along a complex spiraling curve. I tweaked this to generate "
+"curvier lines, but still frames of it don't look like much."
+msgstr ""
+
+#: hacks/config/rotor.xml.h:4 hacks/config/wander.xml.h:9
+msgid "Length"
+msgstr ""
+
+#: hacks/config/rotor.xml.h:8
+msgid "Rotor"
+msgstr ""
+
+#: hacks/config/rotzoomer.xml.h:3
+msgid "Animate"
+msgstr ""
+
+#: hacks/config/rotzoomer.xml.h:4
+msgid ""
+"Creates a collage of rotated and scaled portions of the screen. Written by "
+"Claudio Matsuoka."
+msgstr ""
+
+#: hacks/config/rotzoomer.xml.h:6
+msgid "Rectangle Count"
+msgstr ""
+
+#: hacks/config/rotzoomer.xml.h:7
+msgid "RotZoomer"
+msgstr ""
+
+#: hacks/config/rotzoomer.xml.h:8
+msgid "Stationary Rectangles"
+msgstr ""
+
+#: hacks/config/rotzoomer.xml.h:9
+msgid "Sweeping Arcs"
+msgstr ""
+
+#: hacks/config/rotzoomer.xml.h:11
+msgid "Wandering Rectangles"
+msgstr ""
+
+#: hacks/config/rubik.xml.h:2
+msgid ""
+"Draws a Rubik's Cube that rotates in three dimensions and repeatedly "
+"shuffles and solves itself. Another fine GL hack by Marcelo Vianna."
+msgstr ""
+
+#: hacks/config/rubik.xml.h:5
+msgid "Rubik"
+msgstr ""
+
+#: hacks/config/rubik.xml.h:7
+msgid "Show Shuffling"
+msgstr ""
+
+#: hacks/config/sballs.xml.h:1
+msgid "Cube"
+msgstr ""
+
+#: hacks/config/sballs.xml.h:2
+msgid "Dodecahedron"
+msgstr ""
+
+#: hacks/config/sballs.xml.h:3
+msgid ""
+"Draws an animation of textured balls spinning like crazy in GL. Requires "
+"OpenGL, and a machine with fast hardware support for texture maps. Written "
+"by Eric Lassauge &lt;lassauge@mail.dotcom.fr&gt;."
+msgstr ""
+
+#: hacks/config/sballs.xml.h:5
+msgid "Icosahedron"
+msgstr ""
+
+#: hacks/config/sballs.xml.h:7
+msgid "Octahedron"
+msgstr ""
+
+#: hacks/config/sballs.xml.h:8
+msgid "Plane"
+msgstr ""
+
+#: hacks/config/sballs.xml.h:9
+msgid "Pyramid"
+msgstr ""
+
+#: hacks/config/sballs.xml.h:10
+msgid "Random"
+msgstr ""
+
+#: hacks/config/sballs.xml.h:11
+msgid "Sballs"
+msgstr ""
+
+#: hacks/config/sballs.xml.h:15
+msgid "Star"
+msgstr ""
+
+#: hacks/config/sballs.xml.h:16
+msgid "Tetrahedron"
+msgstr ""
+
+#: hacks/config/shadebobs.xml.h:7
+msgid "ShadeBobs"
+msgstr ""
+
+#: hacks/config/shadebobs.xml.h:11
+msgid ""
+"This draws smoothly-shaded oscilating oval patterns, that look something "
+"like vapor trails or neon tubes. Written by Shane Smit."
+msgstr ""
+
+#: hacks/config/sierpinski.xml.h:6
+msgid "Sierpinski"
+msgstr ""
+
+#: hacks/config/sierpinski.xml.h:10
+msgid ""
+"This draws the two-dimensional variant of the recursive Sierpinski triangle "
+"fractal. Written by Desmond Daignault."
+msgstr ""
+
+#: hacks/config/sierpinski3d.xml.h:7
+msgid "Sierpinski3D"
+msgstr ""
+
+#: hacks/config/sierpinski3d.xml.h:11
+msgid ""
+"This draws the three-dimensional variant of the recursive Sierpinski "
+"triangle fractal, using GL. Written by Tim Robinson and Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/slidescreen.xml.h:1 hacks/config/twang.xml.h:1
+#: hacks/config/zoom.xml.h:1
+msgid "Border Width"
+msgstr ""
+
+#: hacks/config/slidescreen.xml.h:4
+msgid "Slide Speed"
+msgstr ""
+
+#: hacks/config/slidescreen.xml.h:5
+msgid "SlideScreen"
+msgstr ""
+
+#: hacks/config/slidescreen.xml.h:8
+msgid ""
+"This takes an image, divides it into a grid, and then randomly shuffles the "
+"squares around as if it was one of those annoying ``16-puzzle'' games, where "
+"there is a grid of squares, one of which is missing. I hate trying to solve "
+"those puzzles, but watching one permute itself is more amusing. Written by "
+"Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/slip.xml.h:6
+msgid "Slip"
+msgstr ""
+
+#: hacks/config/slip.xml.h:10
+msgid ""
+"This program throws some random bits on the screen, then sucks them through "
+"a jet engine and spews them out the other side. To avoid turning the image "
+"completely to mush, every now and then it will and then it interjects some "
+"splashes of color into the scene, or go into a spin cycle, or stretch the "
+"image like taffy, or (this is my addition) grab an image of your current "
+"desktop to chew on. Originally written by Scott Draves; whacked on by Jamie "
+"Zawinski."
+msgstr ""
+
+#: hacks/config/sonar.xml.h:1
+msgid "Ping Subnet"
+msgstr ""
+
+#: hacks/config/sonar.xml.h:2
+msgid "Simulation Team Members"
+msgstr ""
+
+#: hacks/config/sonar.xml.h:3
+msgid "Sonar"
+msgstr ""
+
+#: hacks/config/sonar.xml.h:4
+msgid "Team A Name"
+msgstr ""
+
+#: hacks/config/sonar.xml.h:5
+msgid "Team B Name"
+msgstr ""
+
+#: hacks/config/sonar.xml.h:6
+msgid ""
+"This program draws a simulation of a sonar screen. Written by default, it "
+"displays a random assortment of ``bogies'' on the screen, but if compiled "
+"properly, it can ping (pun intended) your local network, and actually plot "
+"the proximity of the other hosts on your network to you. It would be easy to "
+"make it monitor other sources of data, too. (Processes? Active network "
+"connections? CPU usage per user?) Written by Stephen Martin."
+msgstr ""
+
+#: hacks/config/sonar.xml.h:7
+msgid "vs."
+msgstr ""
+
+#: hacks/config/speedmine.xml.h:1
+msgid "Allow Wall Collisions"
+msgstr ""
+
+#: hacks/config/speedmine.xml.h:2
+msgid "Display Crosshair"
+msgstr ""
+
+#: hacks/config/speedmine.xml.h:7
+msgid "Max Velocity"
+msgstr ""
+
+#: hacks/config/speedmine.xml.h:8
+msgid "Mine Shaft"
+msgstr ""
+
+#: hacks/config/speedmine.xml.h:9
+msgid "Present Bonuses"
+msgstr ""
+
+#: hacks/config/speedmine.xml.h:10
+msgid "Rocky Walls"
+msgstr ""
+
+#: hacks/config/speedmine.xml.h:12
+msgid ""
+"Simulates speeding down a rocky mineshaft, or a funky dancing worm. Written "
+"by Conrad Parker."
+msgstr ""
+
+#: hacks/config/speedmine.xml.h:16
+msgid "SpeedMine"
+msgstr ""
+
+#: hacks/config/speedmine.xml.h:17
+msgid "Thrust"
+msgstr ""
+
+#: hacks/config/speedmine.xml.h:19 hacks/config/worm.xml.h:10
+msgid "Worm"
+msgstr ""
+
+#: hacks/config/sphere.xml.h:1
+msgid ""
+"Another of the classic screenhacks of the distant past, this one draws "
+"shaded spheres in multiple colors. This hack traces its lineage back to Tom "
+"Duff in 1982."
+msgstr ""
+
+#: hacks/config/sphere.xml.h:7
+msgid "Sphere"
+msgstr ""
+
+#: hacks/config/sphereEversion.xml.h:1
+msgid "SphereEversion"
+msgstr ""
+
+#: hacks/config/sphereEversion.xml.h:2
+msgid ""
+"SphereEversion draws an animation of a sphere being turned inside out. A "
+"sphere can be turned inside out, without any tears, sharp creases or "
+"discontinuities, if the surface of the sphere is allowed to intersect "
+"itself. This program animates what is known as the Thurston Eversion. "
+"Written by Nathaniel Thurston and Michael McGuffin. This program is not "
+"included with the XScreenSaver package, but if you don't have it already, "
+"you can find it at &lt;http://www.dgp.utoronto.ca/~mjmcguff/eversion/&gt;."
+msgstr ""
+
+#: hacks/config/spheremonics.xml.h:9
+msgid "Resolution"
+msgstr ""
+
+#: hacks/config/spheremonics.xml.h:20
+msgid "Smoothed Lines"
+msgstr ""
+
+#: hacks/config/spheremonics.xml.h:23
+msgid "Spheremonics"
+msgstr ""
+
+#: hacks/config/spheremonics.xml.h:24
+msgid ""
+"These closed objects are commonly called spherical harmonics, although they "
+"are only remotely related to the mathematical definition found in the "
+"solution to certain wave functions, most notable the eigenfunctions of "
+"angular momentum operators. Written by Paul Bourke and Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/spiral.xml.h:2
+msgid "Cycles"
+msgstr ""
+
+#: hacks/config/spiral.xml.h:7
+msgid ""
+"Moving circular patterns, by Peter Schmitzberger. Moving circular patterns "
+"means moire; interference patterns, of course."
+msgstr ""
+
+#: hacks/config/spiral.xml.h:11
+msgid "Spiral"
+msgstr ""
+
+#: hacks/config/spotlight.xml.h:1
+msgid ""
+"Draws a spotlight scanning across a black screen, illumnating the underlying "
+"desktop when it passes. Written by Rick Schultz."
+msgstr ""
+
+#: hacks/config/spotlight.xml.h:6
+msgid "Spotlight"
+msgstr ""
+
+#: hacks/config/sproingies.xml.h:3
+msgid "Q-Bert meets Marble Madness! Written by Ed Mackey."
+msgstr ""
+
+#: hacks/config/sproingies.xml.h:9
+msgid "Sproingies"
+msgstr ""
+
+#: hacks/config/squiral.xml.h:3
+msgid ""
+"Draws a set of interacting, square-spiral-producing automata. The spirals "
+"grow outward until they hit something, then they go around it. Written by "
+"Jeff Epler."
+msgstr ""
+
+#: hacks/config/squiral.xml.h:5
+msgid "Handedness"
+msgstr ""
+
+#: hacks/config/squiral.xml.h:7
+msgid "Left"
+msgstr ""
+
+#: hacks/config/squiral.xml.h:11 hacks/config/twang.xml.h:8
+msgid "Randomness"
+msgstr ""
+
+#: hacks/config/squiral.xml.h:12
+msgid "Right"
+msgstr ""
+
+#: hacks/config/squiral.xml.h:17
+msgid "Squiral"
+msgstr ""
+
+#: hacks/config/ssystem.xml.h:1
+msgid "SSystem"
+msgstr ""
+
+#: hacks/config/ssystem.xml.h:2
+msgid ""
+"SSystem is a GL Solar System simulator. It simulates flybys of Sun, the nine "
+"planets and a few major satellites, with four camera modes. Written by Raul "
+"Alonso. This is not included with the XScreenSaver package, but is packaged "
+"separately. Note: SSystem does not work as a screen saver on all systems, "
+"because it doesn't communicate with xscreensaver properly. It happens to "
+"work with some window managers, but not with others, so your mileage may "
+"vary. SSystem was once available at &lt;http://www1.las.es/~amil/ssystem/"
+"&gt;, but is now gone. You may still be able to find copies elsewhere. "
+"SSystem has since evolved into two different programs: OpenUniverse (http://"
+"openuniverse.sourceforge.net/) and Celestia (http://www.shatters.net/"
+"celestia/). Sadly, neither of these programs work with xscreensaver at all. "
+"You are encouraged to nag their authors into adding xscreensaver support!"
+msgstr ""
+
+#: hacks/config/stairs.xml.h:6
+msgid "Stairs"
+msgstr ""
+
+#: hacks/config/stairs.xml.h:8
+msgid ""
+"by Marcelo Vianna's third Escher GL hack, this one draws an ``infinite'' "
+"staircase."
+msgstr ""
+
+#: hacks/config/starfish.xml.h:1
+msgid "Color Gradients"
+msgstr ""
+
+#: hacks/config/starfish.xml.h:7
+msgid "Pulsating Blob"
+msgstr ""
+
+#: hacks/config/starfish.xml.h:10
+msgid "Starfish"
+msgstr ""
+
+#: hacks/config/starfish.xml.h:13
+msgid ""
+"This generates a sequence of undulating, throbbing, star-like patterns which "
+"pulsate, rotate, and turn inside out. Another display mode uses these shapes "
+"to lay down a field of colors, which are then cycled. The motion is very "
+"organic. Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/starwars.xml.h:2
+msgid "Anti-aliased Lines"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:3
+msgid "Centered Text"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:4
+msgid ""
+"Draws a stream of text slowly scrolling into the distance at an angle, over "
+"a star field, like at the beginning of the movie of the same name. Written "
+"by Jamie Zawinski and Claudio Matauoka."
+msgstr ""
+
+#: hacks/config/starwars.xml.h:5
+msgid "Fade Out"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:7
+msgid "Flush Left Text"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:8
+msgid "Flush Right Text"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:9
+msgid "Font Point Size"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:10
+msgid "Scroll Speed"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:13
+msgid "Star Rotation Speed"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:14
+msgid "StarWars"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:15
+msgid "Text Columns"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:16
+msgid "Text Lines"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:18
+msgid "Thick Lines"
+msgstr ""
+
+#: hacks/config/starwars.xml.h:19
+msgid "Wrap Long Lines"
+msgstr ""
+
+#: hacks/config/stonerview.xml.h:1
+msgid ""
+"Chains of colorful squares dance around each other in complex spiral "
+"patterns. Written by Andrew Plotkin, based on SGI's `electropaint' "
+"screensaver."
+msgstr ""
+
+#: hacks/config/stonerview.xml.h:3
+msgid "StonerView"
+msgstr ""
+
+#: hacks/config/strange.xml.h:1
+msgid "Curviness"
+msgstr ""
+
+#: hacks/config/strange.xml.h:9
+msgid "Strange"
+msgstr ""
+
+#: hacks/config/strange.xml.h:10
+msgid ""
+"This draws strange attractors: it's a colorful, unpredictably-animating "
+"field of dots that swoops and twists around. The motion is very nice. "
+"Written by Massimino Pascal."
+msgstr ""
+
+#: hacks/config/superquadrics.xml.h:2
+msgid ""
+"Ed Mackey reports that he wrote the first version of this program in BASIC "
+"on a Commodore 64 in 1987, as a 320x200 black and white wireframe. Now it is "
+"GL and has specular reflections."
+msgstr ""
+
+#: hacks/config/superquadrics.xml.h:10
+msgid "Superquadrics"
+msgstr ""
+
+#: hacks/config/swirl.xml.h:4
+msgid ""
+"More flowing, swirly patterns. This version is by M. Dobie and R. Taylor, "
+"but you might have seen a Mac program similar to this called FlowFazer. "
+"There is also a cool Java applet of a similar concept."
+msgstr ""
+
+#: hacks/config/swirl.xml.h:8
+msgid "Swirl"
+msgstr ""
+
+#: hacks/config/t3d.xml.h:1
+msgid "0°"
+msgstr ""
+
+#: hacks/config/t3d.xml.h:2
+msgid "5 Minute Tick Marks"
+msgstr ""
+
+#: hacks/config/t3d.xml.h:3
+msgid "90°"
+msgstr ""
+
+#: hacks/config/t3d.xml.h:4
+msgid "Bigger"
+msgstr ""
+
+#: hacks/config/t3d.xml.h:5
+msgid "Cycle Seconds"
+msgstr ""
+
+#: hacks/config/t3d.xml.h:10
+msgid "Minute Tick Marks"
+msgstr ""
+
+#: hacks/config/t3d.xml.h:12
+msgid "Smaller"
+msgstr ""
+
+#: hacks/config/t3d.xml.h:14
+msgid "T3D"
+msgstr ""
+
+#: hacks/config/t3d.xml.h:15
+msgid ""
+"This draws a working analog clock composed of floating, throbbing bubbles. "
+"Written by Bernd Paysan."
+msgstr ""
+
+#: hacks/config/t3d.xml.h:16
+msgid "Turn Side-to-Side"
+msgstr ""
+
+#: hacks/config/t3d.xml.h:17
+msgid "Wobbliness"
+msgstr ""
+
+#: hacks/config/thornbird.xml.h:1
+msgid ""
+"Displays a view of the ``Bird in a Thornbush'' fractal. Written by Tim "
+"Auckland."
+msgstr ""
+
+#: hacks/config/thornbird.xml.h:6
+msgid "Points"
+msgstr ""
+
+#: hacks/config/thornbird.xml.h:12
+msgid "Thornbird"
+msgstr ""
+
+#: hacks/config/triangle.xml.h:2
+msgid ""
+"Generates random mountain ranges using iterative subdivision of triangles. "
+"Written by Tobias Gloth."
+msgstr ""
+
+#: hacks/config/triangle.xml.h:7
+msgid "Triangle"
+msgstr ""
+
+#: hacks/config/truchet.xml.h:4
+msgid ""
+"This draws line- and arc-based Truchet patterns that tile the screen. "
+"Written by Adrian Likins."
+msgstr ""
+
+#: hacks/config/truchet.xml.h:5
+msgid "Truchet"
+msgstr ""
+
+#: hacks/config/twang.xml.h:2
+msgid ""
+"Divides the screen into a grid, and plucks them. Written by Dan Bornstein."
+msgstr ""
+
+#: hacks/config/twang.xml.h:6
+msgid "Jumpy"
+msgstr ""
+
+#: hacks/config/twang.xml.h:11
+msgid "Springiness"
+msgstr ""
+
+#: hacks/config/twang.xml.h:13
+msgid "Transference"
+msgstr ""
+
+#: hacks/config/twang.xml.h:14
+msgid "Twang"
+msgstr ""
+
+#: hacks/config/vermiculate.xml.h:1
+msgid "Draws squiggly worm-like paths. Written by Tyler Pierce."
+msgstr ""
+
+#: hacks/config/vermiculate.xml.h:2
+msgid "Vermiculate"
+msgstr ""
+
+#: hacks/config/vidwhacker.xml.h:2 hacks/config/webcollage.xml.h:2
+msgid "2 seconds"
+msgstr ""
+
+#: hacks/config/vidwhacker.xml.h:4
+msgid "Image Directory"
+msgstr ""
+
+#: hacks/config/vidwhacker.xml.h:5
+msgid ""
+"This is actually just a shell script that grabs a frame of video from the "
+"system's video input, and then uses some PBM filters (chosen at random) to "
+"manipulate and recombine the video frame in various ways (edge detection, "
+"subtracting the image from a rotated version of itself, etc.) Then it "
+"displays that image for a few seconds, and does it again. This works really "
+"well if you just feed broadcast television into it."
+msgstr ""
+
+#: hacks/config/vidwhacker.xml.h:6
+msgid "VidWhacker"
+msgstr ""
+
+#: hacks/config/vines.xml.h:6
+msgid ""
+"This one generates a continuous sequence of small, curvy geometric patterns. "
+"It scatters them around your screen until it fills up, then it clears the "
+"screen and starts over. Written by Tracy Camp and David Hansen."
+msgstr ""
+
+#: hacks/config/vines.xml.h:8
+msgid "Vines"
+msgstr ""
+
+#: hacks/config/wander.xml.h:5
+msgid "Draw Spots"
+msgstr ""
+
+#: hacks/config/wander.xml.h:6
+msgid ""
+"Draws a colorful random-walk, in various forms. Written by Rick Campbell."
+msgstr ""
+
+#: hacks/config/wander.xml.h:14
+msgid "Sustain"
+msgstr ""
+
+#: hacks/config/webcollage.xml.h:3
+msgid "Dictionary File"
+msgstr ""
+
+#: hacks/config/webcollage.xml.h:5
+msgid "Overall Filter Program"
+msgstr ""
+
+#: hacks/config/webcollage.xml.h:6
+msgid "Per-Image Filter Program"
+msgstr ""
+
+#: hacks/config/webcollage.xml.h:9
+msgid ""
+"This program makes collages out of random images pulled off of the World "
+"Wide Web. It finds these images by doing random web searches, and then "
+"extracting images from the returned pages. It can also be set up to filter "
+"the images through the `VidWhacker' program, above, which looks really "
+"great. (Note that most of the images it finds are text, and not pictures. "
+"This is because most of the web is pictures of text. Which is pretty sad.) "
+"Written by Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/webcollage.xml.h:10
+msgid "URL Timeout"
+msgstr ""
+
+#: hacks/config/webcollage.xml.h:11
+msgid "WebCollage"
+msgstr ""
+
+#: hacks/config/whirlwindwarp.xml.h:2
+msgid ""
+"Floating stars are acted upon by a mixture of simple 2D forcefields. The "
+"strength of each forcefield changes continuously, and it is also switched on "
+"and off at random. By Paul 'Joey' Clark."
+msgstr ""
+
+#: hacks/config/whirlwindwarp.xml.h:7
+msgid "Trail Size"
+msgstr ""
+
+#: hacks/config/whirlwindwarp.xml.h:8
+msgid "WhirlwindWarp"
+msgstr ""
+
+#: hacks/config/whirlygig.xml.h:1
+msgid "Amplitude"
+msgstr ""
+
+#: hacks/config/whirlygig.xml.h:2
+msgid "Draws zooming chains of sinusoidal spots. Written by Ashton Trey Belew."
+msgstr ""
+
+#: hacks/config/whirlygig.xml.h:5
+msgid "Whirlies"
+msgstr ""
+
+#: hacks/config/whirlygig.xml.h:6
+msgid "WhirlyGig"
+msgstr ""
+
+#: hacks/config/worm.xml.h:1
+msgid ""
+"An ancient xlock hack that draws multicolored worms that crawl around the "
+"screen. Written by Brad Taylor, Dave Lemke, Boris Putanec, and Henrik "
+"Theiling."
+msgstr ""
+
+#: hacks/config/xaos.xml.h:1
+msgid "XaoS"
+msgstr ""
+
+#: hacks/config/xaos.xml.h:2
+msgid ""
+"XaoS generates fast fly-through animations of the Mandelbrot and other "
+"fractal sets. Written by Thomas Marsh and Jan Hubicka. This is not included "
+"with the XScreenSaver package, but if you don't have it already, you can "
+"find it at &lt;http://limax.paru.cas.cz/~hubicka/XaoS/&gt;."
+msgstr ""
+
+#: hacks/config/xdaliclock.xml.h:1
+msgid "12-Hour Time"
+msgstr ""
+
+#: hacks/config/xdaliclock.xml.h:2
+msgid "24-Hour Time"
+msgstr ""
+
+#: hacks/config/xdaliclock.xml.h:3
+msgid "Cycle Colors"
+msgstr ""
+
+#: hacks/config/xdaliclock.xml.h:4
+msgid "Display Seconds"
+msgstr ""
+
+#: hacks/config/xdaliclock.xml.h:5
+msgid "Huge Font"
+msgstr ""
+
+#: hacks/config/xdaliclock.xml.h:6 hacks/config/xmatrix.xml.h:8
+msgid "Large Font"
+msgstr ""
+
+#: hacks/config/xdaliclock.xml.h:7
+msgid "Medium Font"
+msgstr ""
+
+#: hacks/config/xdaliclock.xml.h:8 hacks/config/xmatrix.xml.h:14
+msgid "Small Font"
+msgstr ""
+
+#: hacks/config/xdaliclock.xml.h:9
+msgid "XDaliClock"
+msgstr ""
+
+#: hacks/config/xdaliclock.xml.h:10
+msgid ""
+"XDaliClock draws a large digital clock, the numbers of which change by "
+"``melting'' into their new shapes. Written by Jamie Zawinski. This is not "
+"included with the XScreenSaver package, but if you don't have it already, "
+"you can find it at &lt;http://www.jwz.org/xdaliclock/&gt;."
+msgstr ""
+
+#: hacks/config/xearth.xml.h:1
+msgid "Bright"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:2
+msgid "Date/Time Stamp"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:3
+msgid "Day Dim"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:5
+msgid "Display Stars"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:8
+msgid "Label Cities"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:9
+msgid "Lower Left"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:10
+msgid "Lower Right"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:13
+msgid "Mercator Projection"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:14
+msgid "Night Dim"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:15
+msgid "No Stars"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:16
+msgid "North/South Rotation"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:18
+msgid "Orthographic Projection"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:19
+msgid "Real Time"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:20
+msgid "Shaded Image"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:21
+msgid "Sharp"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:23
+msgid "Spacing"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:26
+msgid "Terminator Blurry"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:27
+msgid "Time Warp"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:29
+msgid "Upper Left"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:30
+msgid "Upper Right"
+msgstr ""
+
+#: hacks/config/xearth.xml.h:31
+msgid ""
+"XEarth draws an image of the Earth, as seen from your favorite vantage point "
+"in space, correctly shaded for the current position of the Sun. Written by "
+"Kirk Johnson. This is not included with the XScreenSaver package, but if you "
+"don't have it already, you can find it at &lt;http://www.cs.colorado.edu/"
+"~tuna/xearth/&gt;."
+msgstr ""
+
+#: hacks/config/xearth.xml.h:32
+msgid "Xearth"
+msgstr ""
+
+#: hacks/config/xfishtank.xml.h:5
+msgid "Fish"
+msgstr ""
+
+#: hacks/config/xfishtank.xml.h:6
+msgid "Fish Speed"
+msgstr ""
+
+#: hacks/config/xfishtank.xml.h:7
+msgid ""
+"Fish! This is not included with the XScreenSaver package, but if you don't "
+"have it already, you can find it at &lt;http://metalab.unc.edu/pub/Linux/X11/"
+"demos/&gt;."
+msgstr ""
+
+#: hacks/config/xfishtank.xml.h:12
+msgid "XFishTank"
+msgstr ""
+
+#: hacks/config/xflame.xml.h:1
+msgid "Bitmap File"
+msgstr ""
+
+#: hacks/config/xflame.xml.h:2
+msgid ""
+"Draws a simulation of pulsing fire. It can also take an arbitrary image and "
+"set it on fire too. Written by Carsten Haitzler, hacked on by many others."
+msgstr ""
+
+#: hacks/config/xflame.xml.h:3
+msgid "Enable Blooming"
+msgstr ""
+
+#: hacks/config/xflame.xml.h:8
+msgid "Xflame"
+msgstr ""
+
+#: hacks/config/xjack.xml.h:4
+msgid ""
+"This program behaves schizophrenically and makes a lot of typos. Written by "
+"Jamie Zawinski. If you haven't seen Stanley Kubrick's masterpiece, ``The "
+"Shining,'' you won't get it. Those who have describe this hack as "
+"``inspired.''"
+msgstr ""
+
+#: hacks/config/xjack.xml.h:5
+msgid "Xjack"
+msgstr ""
+
+#: hacks/config/xlyap.xml.h:1
+msgid ""
+"This generates pretty fractal pictures by doing funky math involving the "
+"``Lyapunov exponent.'' It has a cool interactive mode, too. Written by Ron "
+"Record."
+msgstr ""
+
+#: hacks/config/xlyap.xml.h:2
+msgid "Xlyap"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:1
+msgid ""
+"A rendition of the text scrolls seen in the movie ``The Matrix.'' Written by "
+"Jamie Zawinski."
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:2
+msgid "Binary Encoding"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:3
+msgid "Expansion Algorithm"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:5
+msgid "Full"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:6
+msgid "Genetic Encoding"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:7
+msgid "Hexadecimal Encoding"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:9
+msgid "Matrix Encoding"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:10
+msgid "Phone Number"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:11
+msgid "Run Trace Program"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:12
+msgid "Slider Algorithm"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:17
+msgid "Synergistic Algorithm"
+msgstr ""
+
+#: hacks/config/xmatrix.xml.h:18
+msgid "Xmatrix"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:2
+msgid "Reflections"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:3
+msgid "Side View"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:6
+msgid "Top View"
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:7
+msgid ""
+"XMountains generates realistic-looking fractal terrains of snow-capped "
+"mountains near water, with either a top view or a side view. Written by "
+"Stephen Booth. This is not included with the XScreenSaver package, but if "
+"you don't have it already, you can find it at &lt;http://www.epcc.ed.ac.uk/"
+"~spb/xmountains/&gt;. Be sure to compile it with -DVROOT or it won't work "
+"right when launched by the xscreensaver daemon."
+msgstr ""
+
+#: hacks/config/xmountains.xml.h:8
+msgid "Xmountains"
+msgstr ""
+
+#: hacks/config/xrayswarm.xml.h:1
+msgid ""
+"Draws a few swarms of critters flying around the screen, with nicely faded "
+"color trails behind them. Written by Chris Leger."
+msgstr ""
+
+#: hacks/config/xrayswarm.xml.h:5
+msgid "XRaySwarm"
+msgstr ""
+
+#: hacks/config/xsnow.xml.h:1
+msgid ""
+"Draws falling snow and the occasional tiny Santa. By Rick Jansen. You can "
+"find it at &lt;http://www.euronet.nl/~rja/Xsnow/&gt;."
+msgstr ""
+
+#: hacks/config/xsnow.xml.h:2
+msgid "Xsnow"
+msgstr ""
+
+#: hacks/config/xspirograph.xml.h:4
+msgid "Layers"
+msgstr ""
+
+#: hacks/config/xspirograph.xml.h:5
+msgid ""
+"Simulates that pen-in-nested-plastic-gears toy from your childhood. By Rohit "
+"Singh."
+msgstr ""
+
+#: hacks/config/xspirograph.xml.h:6
+msgid "XSpiroGraph"
+msgstr ""
+
+#: hacks/config/xteevee.xml.h:1
+msgid "Color Bars Enabled"
+msgstr ""
+
+#: hacks/config/xteevee.xml.h:2
+msgid "Cycle Through Modes"
+msgstr ""
+
+#: hacks/config/xteevee.xml.h:3
+msgid "Rolling Enabled"
+msgstr ""
+
+#: hacks/config/xteevee.xml.h:4
+msgid "Static Enabled"
+msgstr ""
+
+#: hacks/config/xteevee.xml.h:5
+msgid "XTeeVee"
+msgstr ""
+
+#: hacks/config/xteevee.xml.h:6
+msgid ""
+"XTeeVee simulates various television problems, including static, loss of "
+"vertical hold, and a test pattern. By Greg Knauss."
+msgstr ""
+
+#: hacks/config/zoom.xml.h:3
+msgid "Lens Offset"
+msgstr ""
+
+#: hacks/config/zoom.xml.h:4
+msgid "Lenses"
+msgstr ""
+
+#: hacks/config/zoom.xml.h:9
+msgid ""
+"Zooms in on a part of the screen and then moves around. With the -lenses "
+"option the result is like looking through many overlapping lenses rather "
+"than just a simple zoom. Written by James Macnicol."
+msgstr ""
diff --git a/tdescreensaver/kxsconfig/kxsconfig.cpp b/tdescreensaver/kxsconfig/kxsconfig.cpp
new file mode 100644
index 00000000..dbe3ea91
--- /dev/null
+++ b/tdescreensaver/kxsconfig/kxsconfig.cpp
@@ -0,0 +1,388 @@
+//-----------------------------------------------------------------------------
+//
+// KDE xscreensaver configuration dialog
+//
+// Copyright (c) Martin R. Jones <mjones@kde.org> 1999
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation;
+// version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; see the file COPYING. If not, write to
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// This file contains code copied from xscreensaver. The xscreensaver
+// copyright notice follows.
+
+/*
+ * xscreensaver, Copyright (c) 1993-2002 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#include <config.h>
+
+#include <stdlib.h>
+#include <tqlayout.h>
+#include <tqtimer.h>
+#include <tqvbox.h>
+#include <tqlabel.h>
+#include <tqfileinfo.h>
+
+#include <kdebug.h>
+#include <kapplication.h>
+#include <kconfig.h>
+#include <kdialogbase.h>
+#include <kprocess.h>
+#include <kstandarddirs.h>
+#include <klocale.h>
+#include <kcmdlineargs.h>
+#include <kmessagebox.h>
+
+#include "kxsconfig.h"
+#include "kxscontrol.h"
+#include "kxsxml.h"
+
+template class TQPtrList<KXSConfigItem>;
+
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/IntrinsicP.h>
+#include <X11/ShellP.h>
+
+int ignoreXError(Display *, XErrorEvent *);
+
+//===========================================================================
+
+const uint widgetEventMask = // X event mask
+(uint)(
+ ExposureMask |
+ PropertyChangeMask |
+ StructureNotifyMask
+ );
+
+KXSConfigDialog::KXSConfigDialog(const TQString &filename, const TQString &name)
+ : KDialogBase(Plain, name, Ok| Cancel, Ok, 0, 0, false),
+ mFilename(filename), mPreviewProc(0), mKilled(true)
+{
+ int slash = filename.findRev('/');
+ if (slash >= 0)
+ mConfigFile = filename.mid(slash+1);
+ else
+ mConfigFile = filename;
+
+ mExeName = mConfigFile;
+ mConfigFile += "rc";
+}
+
+bool KXSConfigDialog::create()
+{
+ TQVBoxLayout *topLayout = new TQVBoxLayout(plainPage(), spacingHint());
+ TQHBoxLayout *layout = new TQHBoxLayout(topLayout, spacingHint());
+ TQVBox *controlLayout = new TQVBox(plainPage());
+ controlLayout->setSpacing(spacingHint());
+ layout->addWidget(controlLayout);
+ ((TQBoxLayout*)controlLayout->layout())->addStrut(120);
+
+ TDEConfig config(mConfigFile);
+
+ TQString xmlFile = "/doesntexist";
+#ifdef XSCREENSAVER_CONFIG_DIR
+ xmlFile = XSCREENSAVER_CONFIG_DIR;
+#endif
+
+ xmlFile += "/" + mExeName + ".xml";
+ if ( TQFile::exists( xmlFile ) ) {
+ // We can use the xscreensaver xml config files.
+ KXSXml xmlParser(controlLayout);
+ xmlParser.parse( xmlFile );
+ mConfigItemList = *xmlParser.items();
+ TQWidget *spacer = new TQWidget(controlLayout);
+ controlLayout->setStretchFactor(spacer, 1 );
+ TQString descr = xmlParser.description();
+ if ( !descr.isEmpty() ) {
+ descr.replace('\n',' ');
+ descr = descr.simplifyWhiteSpace();
+ TQLabel *l = new TQLabel( i18n( descr.utf8() ), plainPage() );
+ l->setAlignment ( WordBreak );
+ topLayout->addWidget( l );
+ }
+ } else {
+ // fall back to KDE's old config files.
+ int idx = 0;
+ while (true) {
+ TQString group = TQString("Arg%1").arg(idx);
+ if (config.hasGroup(group)) {
+ config.setGroup(group);
+ TQString type = config.readEntry("Type");
+ if (type == "Range") {
+ KXSRangeControl *rc = new KXSRangeControl(controlLayout, group, config);
+ mConfigItemList.append(rc);
+ } else if (type == "DoubleRange") {
+ KXSDoubleRangeControl *rc =
+ new KXSDoubleRangeControl(controlLayout, group, config);
+ mConfigItemList.append(rc);
+ } else if (type == "Check") {
+ KXSCheckBoxControl *cc = new KXSCheckBoxControl(controlLayout, group,
+ config);
+ mConfigItemList.append(cc);
+ } else if (type == "DropList") {
+ KXSDropListControl *dl = new KXSDropListControl(controlLayout, group,
+ config);
+ mConfigItemList.append(dl);
+ }
+ } else {
+ break;
+ }
+ idx++;
+ }
+ if ( idx == 0 )
+ return false;
+ }
+
+ TQPtrListIterator<KXSConfigItem> it( mConfigItemList );
+ KXSConfigItem *item;
+ while ( (item = it.current()) != 0 ) {
+ ++it;
+ item->read( config );
+ TQWidget *i = dynamic_cast<TQWidget*>(item);
+ if (i) {
+ connect( i, TQT_SIGNAL(changed()), TQT_SLOT(slotChanged()) );
+ }
+ }
+
+ mPreviewProc = new TDEProcess;
+ connect(mPreviewProc, TQT_SIGNAL(processExited(TDEProcess *)),
+ TQT_SLOT(slotPreviewExited(TDEProcess *)));
+
+ mPreviewTimer = new TQTimer(this);
+ connect(mPreviewTimer, TQT_SIGNAL(timeout()), TQT_SLOT(slotNewPreview()));
+
+ mPreview = new TQWidget(plainPage());
+ mPreview->setFixedSize(250, 200);
+ // mPreview->setBackgroundMode(TQWidget::NoBackground);
+ mPreview->setBackgroundColor(TQt::black);
+
+ layout->add(mPreview);
+ show();
+
+ // So that hacks can XSelectInput ButtonPressMask
+ XSelectInput(tqt_xdisplay(), mPreview->winId(), widgetEventMask );
+
+ slotPreviewExited(0);
+ return true;
+}
+
+//---------------------------------------------------------------------------
+KXSConfigDialog::~KXSConfigDialog()
+{
+ if (mPreviewProc && mPreviewProc->isRunning()) {
+ int pid = mPreviewProc->pid();
+ mPreviewProc->kill();
+ waitpid(pid, (int *)0, 0);
+ delete mPreviewProc;
+ }
+}
+
+//---------------------------------------------------------------------------
+TQString KXSConfigDialog::command()
+{
+ TQString cmd;
+ KXSConfigItem *item;
+
+ for (item = mConfigItemList.first(); item != 0; item = mConfigItemList.next())
+ {
+ cmd += " " + item->command();
+ }
+
+ return cmd;
+}
+
+//---------------------------------------------------------------------------
+void KXSConfigDialog::slotPreviewExited(TDEProcess *)
+{
+ if ( mKilled ) {
+ mKilled = false;
+ mPreviewProc->clearArguments();
+ TQString saver;
+ saver.sprintf( "%s -window-id 0x%lX", mFilename.latin1(), long(mPreview->winId()) );
+ saver += command();
+ kdDebug() << "Command: " << saver << endl;
+
+ unsigned int i = 0;
+ TQString word;
+ saver = saver.stripWhiteSpace();
+ while ( !saver[i].isSpace() ) word += saver[i++];
+ //work around a KStandarDirs::findExe() "feature" where it looks in $TDEDIR/bin first no matter what and sometimes finds the wrong executable
+ TQFileInfo checkExe;
+ TQString saverdir = TQString("%1/%2").arg(XSCREENSAVER_HACKS_DIR).arg(word);
+ TQString path;
+ checkExe.setFile(saverdir);
+ if (checkExe.exists() && checkExe.isExecutable() && checkExe.isFile())
+ {
+ path = saverdir;
+ }
+ if (!path.isEmpty()) {
+ (*mPreviewProc) << path;
+
+ bool inQuotes = false;
+ while ( i < saver.length() ) {
+ word = "";
+ while ( saver[i].isSpace() && i < saver.length() ) i++;
+ while ( (!saver[i].isSpace() || inQuotes) && i < saver.length() ) {
+ if ( saver[i] == '\"' ) {
+ inQuotes = !inQuotes;
+ } else {
+ word += saver[i];
+ }
+ i++;
+ }
+ if (!word.isEmpty()) {
+ (*mPreviewProc) << word;
+ }
+ }
+
+ mPreviewProc->start();
+ }
+ } else {
+ // stops us from spawning the hack really fast, but still not the best
+ TQString path = KStandardDirs::findExe(mFilename, XSCREENSAVER_HACKS_DIR);
+ if ( TQFile::exists(path) ) {
+ mKilled = true;
+ slotChanged();
+ }
+ }
+}
+
+//---------------------------------------------------------------------------
+void KXSConfigDialog::slotNewPreview()
+{
+ if (mPreviewProc->isRunning()) {
+ mKilled = true;
+ mPreviewProc->kill(); // restarted in slotPreviewExited()
+ } else {
+ slotPreviewExited(0);
+ }
+}
+
+//---------------------------------------------------------------------------
+void KXSConfigDialog::slotChanged()
+{
+ if (mPreviewTimer->isActive())
+ mPreviewTimer->changeInterval(1000);
+ else
+ mPreviewTimer->start(1000, true);
+}
+
+//---------------------------------------------------------------------------
+void KXSConfigDialog::slotOk()
+{
+ KXSConfigItem *item;
+ TDEConfig config(mConfigFile);
+
+ for (item = mConfigItemList.first(); item != 0; item = mConfigItemList.next())
+ {
+ item->save(config);
+ }
+
+ kapp->quit();
+}
+
+//---------------------------------------------------------------------------
+void KXSConfigDialog::slotCancel()
+{
+ kapp->quit();
+}
+
+
+//===========================================================================
+
+static const char appName[] = "kxsconfig";
+
+static const char description[] = I18N_NOOP("TDE X Screen Saver Configuration tool");
+
+static const char version[] = "3.0.0";
+
+static const KCmdLineOptions options[] =
+{
+ {"+screensaver", I18N_NOOP("Filename of the screen saver to configure"), 0},
+ {"+[savername]", I18N_NOOP("Optional screen saver name used in messages"), 0},
+ KCmdLineLastOption
+};
+
+static const char *defaults[] = {
+#include "XScreenSaver_ad.h"
+ 0
+};
+
+const char *progname = 0;
+const char *progclass = "XScreenSaver";
+XrmDatabase db;
+
+int main(int argc, char *argv[])
+{
+ TDECmdLineArgs::init(argc, argv, appName, I18N_NOOP("KXSConfig"), description, version);
+
+ TDECmdLineArgs::addCmdLineOptions(options);
+
+ TDEApplication app;
+
+ TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
+ if(args->count()==0)
+ exit(1);
+
+ /* We must read exactly the same resources as xscreensaver.
+ That means we must have both the same progclass *and* progname,
+ at least as far as the resource database is concerned. So,
+ put "xscreensaver" in argv[0] while initializing Xt.
+ */
+ const char *dummyargs[] = { "xscreensaver" };
+ int dummyargc = 1;
+ progname = dummyargs[0];
+
+ // Teach Xt to use the Display that TQt has already opened.
+ XtToolkitInitialize ();
+ XtAppContext xtApp = XtCreateApplicationContext ();
+ Display *dpy = tqt_xdisplay();
+ XtAppSetFallbackResources (xtApp, const_cast<char**>(defaults));
+ XtDisplayInitialize (xtApp, dpy, progname, progclass, 0, 0,
+ &dummyargc,
+ const_cast<char**>(dummyargs));
+ Widget toplevel_shell = XtAppCreateShell (progname, progclass,
+ applicationShellWidgetClass,
+ dpy, 0, 0);
+ dpy = XtDisplay (toplevel_shell);
+ db = XtDatabase (dpy);
+ XtGetApplicationNameAndClass (dpy, const_cast<char**>(&progname),
+ const_cast<char**>(&progclass));
+
+ TQString name = TQString::fromLocal8Bit(args->arg(args->count() - 1));
+ KXSConfigDialog *dialog=new KXSConfigDialog(args->arg(0), name);
+ if ( dialog->create() ) {
+ dialog->show();
+ app.setMainWidget(dialog);
+ app.exec();
+ } else {
+ KMessageBox::sorry(0,
+ i18n("No configuration available for %1").arg(name),
+ name );
+ }
+
+ delete dialog;
+}
+
+#include "kxsconfig.moc"
diff --git a/tdescreensaver/kxsconfig/kxsconfig.h b/tdescreensaver/kxsconfig/kxsconfig.h
new file mode 100644
index 00000000..daf3c9f8
--- /dev/null
+++ b/tdescreensaver/kxsconfig/kxsconfig.h
@@ -0,0 +1,60 @@
+//-----------------------------------------------------------------------------
+//
+// KDE xscreensaver configuration dialog
+//
+// Copyright (c) Martin R. Jones <mjones@kde.org> 1999
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation;
+// version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; see the file COPYING. If not, write to
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#ifndef __KXSCONFIG_H__
+#define __KXSCONFIG_H__
+
+#include <kdialogbase.h>
+#include "kxsitem.h"
+
+class TDEProcess;
+class TQLabel;
+
+class KXSConfigDialog : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ KXSConfigDialog(const TQString &file, const TQString &name);
+ ~KXSConfigDialog();
+
+ bool create();
+ TQString command();
+
+protected slots:
+ void slotPreviewExited(TDEProcess *);
+ void slotNewPreview();
+ void slotChanged();
+ virtual void slotOk();
+ virtual void slotCancel();
+
+protected:
+ TQString mFilename;
+ TQString mExeName;
+ TQString mConfigFile;
+ TDEProcess *mPreviewProc;
+ TQWidget *mPreview;
+ TQTimer *mPreviewTimer;
+ TQPtrList<KXSConfigItem> mConfigItemList;
+ bool mKilled;
+};
+
+#endif
diff --git a/tdescreensaver/kxsconfig/kxscontrol.cpp b/tdescreensaver/kxsconfig/kxscontrol.cpp
new file mode 100644
index 00000000..08f9b55c
--- /dev/null
+++ b/tdescreensaver/kxsconfig/kxscontrol.cpp
@@ -0,0 +1,321 @@
+//-----------------------------------------------------------------------------
+//
+// KDE xscreensaver configuration dialog
+//
+// Copyright (c) Martin R. Jones <mjones@kde.org> 1999
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation;
+// version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; see the file COPYING. If not, write to
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tqlabel.h>
+#include <tqslider.h>
+#include <tqlayout.h>
+#include <tqcombobox.h>
+#include <tqlineedit.h>
+#include <tqspinbox.h>
+#include <tqpushbutton.h>
+#include <tqxml.h>
+#include <klocale.h>
+#include <kfiledialog.h>
+#include "kxscontrol.h"
+
+//===========================================================================
+KXSRangeControl::KXSRangeControl(TQWidget *parent, const TQString &name,
+ TDEConfig &config)
+ : TQWidget(parent), KXSRangeItem(name, config), mSlider(0), mSpinBox(0)
+{
+ TQVBoxLayout *l = new TQVBoxLayout(this);
+ TQLabel *label = new TQLabel(mLabel, this);
+ l->add(label);
+ mSlider = new TQSlider(mMinimum, mMaximum, 10, mValue, Qt::Horizontal, this);
+ connect(mSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotValueChanged(int)));
+ l->add(mSlider);
+}
+
+KXSRangeControl::KXSRangeControl(TQWidget *parent, const TQString &name,
+ const TQXmlAttributes &attr )
+ : TQWidget(parent), KXSRangeItem(name, attr), mSlider(0), mSpinBox(0)
+{
+ if (attr.value("type") == "spinbutton" ) {
+ TQHBoxLayout *hb = new TQHBoxLayout(this);
+ if (!mLabel.isEmpty()) {
+ TQLabel *l = new TQLabel(i18n(mLabel.utf8()), this);
+ hb->add(l);
+ }
+ mSpinBox = new TQSpinBox(mMinimum, mMaximum, 1, this);
+ mSpinBox->setValue(mValue);
+ connect(mSpinBox, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotValueChanged(int)));
+ hb->add(mSpinBox);
+ } else {
+ TQString lowLabel = attr.value("_low-label");
+ TQString highLabel = attr.value("_high-label");
+ TQVBoxLayout *vb = new TQVBoxLayout(this);
+ if (!mLabel.isEmpty()) {
+ TQLabel *l = new TQLabel(i18n(mLabel.utf8()), this);
+ vb->add(l);
+ }
+ TQHBoxLayout *hb = new TQHBoxLayout(vb);
+ if (!lowLabel.isEmpty()) {
+ TQLabel *l = new TQLabel(i18n(lowLabel.utf8()), this);
+ hb->addWidget(l);
+ }
+ mSlider = new TQSlider(mMinimum, mMaximum, 10, mValue, Qt::Horizontal, this);
+ connect(mSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotValueChanged(int)));
+ hb->add(mSlider);
+ if (!highLabel.isEmpty()){
+ TQLabel *l = new TQLabel(i18n(highLabel.utf8()), this);
+ hb->addWidget(l);
+ }
+ }
+}
+
+void KXSRangeControl::slotValueChanged(int value)
+{
+ mValue = value;
+ emit changed();
+}
+
+void KXSRangeControl::read(TDEConfig &config)
+{
+ KXSRangeItem::read(config);
+ if ( mSpinBox )
+ mSpinBox->setValue(mValue);
+ else
+ mSlider->setValue(mValue);
+}
+
+//===========================================================================
+KXSDoubleRangeControl::KXSDoubleRangeControl(TQWidget *parent,
+ const TQString &name, TDEConfig &config)
+ : TQWidget(parent), KXSDoubleRangeItem(name, config)
+{
+ TQVBoxLayout *l = new TQVBoxLayout(this);
+ TQLabel *label = new TQLabel(mLabel, this);
+ l->add(label);
+
+ int value = int((mValue - mMinimum) * 100 / (mMaximum - mMinimum));
+
+ mSlider = new TQSlider(0, 100, 10, value, Qt::Horizontal, this);
+ connect(mSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotValueChanged(int)));
+ l->add(mSlider);
+}
+
+KXSDoubleRangeControl::KXSDoubleRangeControl(TQWidget *parent,
+ const TQString &name, const TQXmlAttributes &attr)
+ : TQWidget(parent), KXSDoubleRangeItem(name, attr)
+{
+ TQString lowLabel = attr.value("_low-label");
+ TQString highLabel = attr.value("_high-label");
+ TQVBoxLayout *vb = new TQVBoxLayout(this);
+ if (!mLabel.isEmpty()) {
+ TQLabel *l = new TQLabel(i18n(mLabel.utf8()), this);
+ vb->add(l);
+ }
+ TQHBoxLayout *hb = new TQHBoxLayout(vb);
+ if (!lowLabel.isEmpty()) {
+ TQLabel *l = new TQLabel(i18n(lowLabel.utf8()), this);
+ hb->addWidget(l);
+ }
+ int value = int((mValue - mMinimum) * 100 / (mMaximum - mMinimum));
+ mSlider = new TQSlider(0, 100, 10, value, Qt::Horizontal, this);
+ connect(mSlider, TQT_SIGNAL(valueChanged(int)), TQT_SLOT(slotValueChanged(int)));
+ hb->add(mSlider);
+ if (!highLabel.isEmpty()){
+ TQLabel *l = new TQLabel(i18n(highLabel.utf8()), this);
+ hb->addWidget(l);
+ }
+}
+
+void KXSDoubleRangeControl::slotValueChanged(int value)
+{
+ mValue = mMinimum + value * (mMaximum - mMinimum) / 100.0;
+ emit changed();
+}
+
+void KXSDoubleRangeControl::read(TDEConfig &config)
+{
+ KXSDoubleRangeItem::read(config);
+ mSlider->setValue((int)((mValue - mMinimum) * 100.0 /
+ (mMaximum - mMinimum) + 0.5));
+}
+
+//===========================================================================
+KXSCheckBoxControl::KXSCheckBoxControl(TQWidget *parent, const TQString &name,
+ TDEConfig &config)
+ : TQCheckBox(parent), KXSBoolItem(name, config)
+{
+ setText(mLabel);
+ setChecked(mValue);
+ connect(this, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotToggled(bool)));
+}
+
+KXSCheckBoxControl::KXSCheckBoxControl(TQWidget *parent, const TQString &name,
+ const TQXmlAttributes &attr)
+ : TQCheckBox(parent), KXSBoolItem(name, attr)
+{
+ setText(i18n(mLabel.utf8()));
+ setChecked(mValue);
+ connect(this, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotToggled(bool)));
+}
+
+void KXSCheckBoxControl::slotToggled(bool state)
+{
+ mValue = state;
+ emit changed();
+}
+
+void KXSCheckBoxControl::read(TDEConfig &config)
+{
+ KXSBoolItem::read(config);
+ setChecked(mValue);
+}
+
+//===========================================================================
+KXSDropListControl::KXSDropListControl(TQWidget *parent, const TQString &name,
+ TDEConfig &config)
+ : TQWidget(parent), KXSSelectItem(name, config)
+{
+ TQVBoxLayout *l = new TQVBoxLayout(this);
+ TQLabel *label = new TQLabel(mLabel, this);
+ l->add(label);
+ mCombo = new TQComboBox(this);
+ for(uint i=0; i < mOptions.count(); i++)
+ mCombo->insertItem( i18n(mOptions[i].utf8()) );
+ mCombo->setCurrentItem(mValue);
+ connect(mCombo, TQT_SIGNAL(activated(int)), TQT_SLOT(slotActivated(int)));
+ l->add(mCombo);
+}
+
+KXSDropListControl::KXSDropListControl(TQWidget *parent, const TQString &name,
+ const TQXmlAttributes &attr)
+ : TQWidget(parent), KXSSelectItem(name, attr)
+{
+ TQVBoxLayout *l = new TQVBoxLayout(this);
+ TQLabel *label = new TQLabel(i18n(mLabel.utf8()), this);
+ l->add(label);
+ mCombo = new TQComboBox(this);
+ connect(mCombo, TQT_SIGNAL(activated(int)), TQT_SLOT(slotActivated(int)));
+ l->add(mCombo);
+}
+
+void KXSDropListControl::addOption(const TQXmlAttributes &attr)
+{
+ KXSSelectItem::addOption( attr );
+ mCombo->insertItem( i18n(mOptions[mOptions.count()-1].utf8()) );
+ if ( (unsigned)mValue == mOptions.count()-1 )
+ mCombo->setCurrentItem(mOptions.count()-1);
+}
+
+void KXSDropListControl::slotActivated(int indx)
+{
+ mValue = indx;
+ emit changed();
+}
+
+void KXSDropListControl::read(TDEConfig &config)
+{
+ KXSSelectItem::read(config);
+ mCombo->setCurrentItem(mValue);
+}
+
+//===========================================================================
+KXSLineEditControl::KXSLineEditControl(TQWidget *parent, const TQString &name,
+ TDEConfig &config)
+ : TQWidget(parent), KXSStringItem(name, config)
+{
+ TQVBoxLayout *l = new TQVBoxLayout(this);
+ TQLabel *label = new TQLabel(mLabel, this);
+ l->add(label);
+ mEdit = new TQLineEdit(this);
+ connect(mEdit, TQT_SIGNAL(textChanged(const TQString &)), TQT_SLOT(textChanged(const TQString &)));
+ l->add(mEdit);
+}
+
+KXSLineEditControl::KXSLineEditControl(TQWidget *parent, const TQString &name,
+ const TQXmlAttributes &attr )
+ : TQWidget(parent), KXSStringItem(name, attr)
+{
+ TQVBoxLayout *l = new TQVBoxLayout(this);
+ TQLabel *label = new TQLabel(i18n(mLabel.utf8()), this);
+ l->add(label);
+ mEdit = new TQLineEdit(this);
+ connect(mEdit, TQT_SIGNAL(textChanged(const TQString &)), TQT_SLOT(textChanged(const TQString &)));
+ l->add(mEdit);
+}
+
+void KXSLineEditControl::textChanged( const TQString &text )
+{
+ mValue = text;
+ emit changed();
+}
+
+void KXSLineEditControl::read(TDEConfig &config)
+{
+ KXSStringItem::read(config);
+ mEdit->setText(mValue);
+}
+
+//===========================================================================
+KXSFileControl::KXSFileControl(TQWidget *parent, const TQString &name,
+ TDEConfig &config)
+ : TQWidget(parent), KXSStringItem(name, config)
+{
+ TQVBoxLayout *l = new TQVBoxLayout(this);
+ TQLabel *label = new TQLabel(mLabel, this);
+ l->add(label);
+ mEdit = new TQLineEdit(this);
+ connect(mEdit, TQT_SIGNAL(textChanged(const TQString &)), TQT_SLOT(textChanged(const TQString &)));
+ l->add(mEdit);
+}
+
+KXSFileControl::KXSFileControl(TQWidget *parent, const TQString &name,
+ const TQXmlAttributes &attr )
+ : TQWidget(parent), KXSStringItem(name, attr)
+{
+ TQVBoxLayout *l = new TQVBoxLayout(this);
+ TQLabel *label = new TQLabel(i18n(mLabel.utf8()), this);
+ l->add(label);
+ TQHBoxLayout *hb = new TQHBoxLayout(l);
+ mEdit = new TQLineEdit(this);
+ connect(mEdit, TQT_SIGNAL(textChanged(const TQString &)), TQT_SLOT(textChanged(const TQString &)));
+ hb->add(mEdit);
+ TQPushButton *pb = new TQPushButton( "...", this );
+ connect( pb, TQT_SIGNAL(clicked()), this, TQT_SLOT(selectFile()) );
+ hb->addWidget(pb);
+}
+
+void KXSFileControl::textChanged( const TQString &text )
+{
+ mValue = text;
+ emit changed();
+}
+
+void KXSFileControl::selectFile()
+{
+ TQString f = KFileDialog::getOpenFileName();
+ if ( !f.isEmpty() ) {
+ mValue = f;
+ mEdit->setText(mValue);
+ emit changed();
+ }
+}
+
+void KXSFileControl::read(TDEConfig &config)
+{
+ KXSStringItem::read(config);
+ mEdit->setText(mValue);
+}
+
+#include "kxscontrol.moc"
diff --git a/tdescreensaver/kxsconfig/kxscontrol.h b/tdescreensaver/kxsconfig/kxscontrol.h
new file mode 100644
index 00000000..acd1a664
--- /dev/null
+++ b/tdescreensaver/kxsconfig/kxscontrol.h
@@ -0,0 +1,166 @@
+//-----------------------------------------------------------------------------
+//
+// KDE xscreensaver configuration dialog
+//
+// Copyright (c) Martin R. Jones <mjones@kde.org> 1999
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation;
+// version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; see the file COPYING. If not, write to
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#ifndef __KXSCONTROL_H__
+#define __KXSCONTROL_H__
+
+#include <tqwidget.h>
+#include <tqcheckbox.h>
+
+#include "kxsitem.h"
+
+class TQLabel;
+class TQSlider;
+class TQSpinBox;
+class TQComboBox;
+class TQLineEdit;
+
+//===========================================================================
+class KXSRangeControl : public TQWidget, public KXSRangeItem
+{
+ Q_OBJECT
+
+public:
+ KXSRangeControl(TQWidget *parent, const TQString &name, TDEConfig &config);
+ KXSRangeControl(TQWidget *parent, const TQString &name, const TQXmlAttributes &attr );
+
+ virtual void read(TDEConfig &config);
+
+signals:
+ void changed();
+
+protected slots:
+ void slotValueChanged(int value);
+
+protected:
+ TQSlider *mSlider;
+ TQSpinBox *mSpinBox;
+};
+
+//===========================================================================
+class KXSDoubleRangeControl : public TQWidget, public KXSDoubleRangeItem
+{
+ Q_OBJECT
+
+public:
+ KXSDoubleRangeControl(TQWidget *parent, const TQString &name, TDEConfig &config);
+ KXSDoubleRangeControl(TQWidget *parent, const TQString &name, const TQXmlAttributes &attr );
+
+ virtual void read(TDEConfig &config);
+
+signals:
+ void changed();
+
+protected slots:
+ void slotValueChanged(int value);
+
+protected:
+ TQSlider *mSlider;
+ double mStep;
+};
+
+//===========================================================================
+class KXSCheckBoxControl : public TQCheckBox, public KXSBoolItem
+{
+ Q_OBJECT
+
+public:
+ KXSCheckBoxControl(TQWidget *parent, const TQString &name, TDEConfig &config);
+ KXSCheckBoxControl(TQWidget *parent, const TQString &name, const TQXmlAttributes &attr );
+
+ virtual void read(TDEConfig &config);
+
+signals:
+ void changed();
+
+protected slots:
+ void slotToggled(bool);
+};
+
+//===========================================================================
+class KXSDropListControl : public TQWidget, public KXSSelectItem
+{
+ Q_OBJECT
+
+public:
+ KXSDropListControl(TQWidget *parent, const TQString &name, TDEConfig &config);
+ KXSDropListControl(TQWidget *parent, const TQString &name, const TQXmlAttributes &attr );
+
+ virtual void read(TDEConfig &config);
+
+ virtual void addOption( const TQXmlAttributes &attr );
+
+signals:
+ void changed();
+
+protected slots:
+ void slotActivated(int);
+
+protected:
+ TQComboBox *mCombo;
+};
+
+//===========================================================================
+class KXSLineEditControl : public TQWidget, public KXSStringItem
+{
+ Q_OBJECT
+
+public:
+ KXSLineEditControl(TQWidget *parent, const TQString &name, TDEConfig &config);
+ KXSLineEditControl(TQWidget *parent, const TQString &name, const TQXmlAttributes &attr );
+
+ virtual void read(TDEConfig &config);
+
+signals:
+ void changed();
+
+protected slots:
+ void textChanged(const TQString &);
+
+protected:
+ TQLineEdit *mEdit;
+};
+
+//===========================================================================
+class KXSFileControl : public TQWidget, public KXSStringItem
+{
+ Q_OBJECT
+
+public:
+ KXSFileControl(TQWidget *parent, const TQString &name, TDEConfig &config);
+ KXSFileControl(TQWidget *parent, const TQString &name, const TQXmlAttributes &attr );
+
+ virtual void read(TDEConfig &config);
+
+signals:
+ void changed();
+
+protected slots:
+ void textChanged(const TQString &);
+ void selectFile();
+
+protected:
+ TQLineEdit *mEdit;
+
+};
+
+#endif
+
diff --git a/tdescreensaver/kxsconfig/kxsitem.cpp b/tdescreensaver/kxsconfig/kxsitem.cpp
new file mode 100644
index 00000000..96e20758
--- /dev/null
+++ b/tdescreensaver/kxsconfig/kxsitem.cpp
@@ -0,0 +1,251 @@
+//-----------------------------------------------------------------------------
+//
+// KDE xscreensaver configuration dialog
+//
+// Copyright (c) Martin R. Jones <mjones@kde.org> 1999
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation;
+// version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; see the file COPYING. If not, write to
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include "kxsconfig.h"
+#include <klocale.h>
+#include <tqxml.h>
+
+//===========================================================================
+KXSConfigItem::KXSConfigItem(const TQString &name, TDEConfig &config)
+ : mName(name)
+{
+ config.setGroup(name);
+ mLabel = i18n(config.readEntry("Label").utf8());
+}
+
+KXSConfigItem::KXSConfigItem(const TQString &name, const TQXmlAttributes &attr )
+ : mName(name)
+{
+ mLabel = attr.value("_label");
+}
+
+//===========================================================================
+KXSRangeItem::KXSRangeItem(const TQString &name, TDEConfig &config)
+ : KXSConfigItem(name, config), mInvert(false)
+{
+ mMinimum = config.readNumEntry("Minimum");
+ mMaximum = config.readNumEntry("Maximum");
+ mValue = config.readNumEntry("Value");
+ mSwitch = config.readEntry("Switch");
+}
+
+KXSRangeItem::KXSRangeItem(const TQString &name, const TQXmlAttributes &attr )
+ : KXSConfigItem(name, attr), mInvert(false)
+{
+ mMinimum = attr.value("low").toInt();
+ mMaximum = attr.value("high").toInt();
+ mValue = attr.value("default").toInt();
+ mSwitch = attr.value("arg");
+ int pos = mSwitch.find( '%' );
+ if (pos >= 0)
+ mSwitch.insert(pos+1, '1');
+ if ( attr.value("convert") == "invert" )
+ mInvert = true;
+ if (mInvert)
+ mValue = mMaximum-(mValue-mMinimum);
+}
+
+TQString KXSRangeItem::command()
+{
+ return mSwitch.arg(mInvert?mMaximum-(mValue-mMinimum):mValue);
+}
+
+void KXSRangeItem::read(TDEConfig &config)
+{
+ config.setGroup(mName);
+ if (config.hasKey("Value"))
+ mValue = config.readNumEntry("Value");
+}
+
+void KXSRangeItem::save(TDEConfig &config)
+{
+ config.setGroup(mName);
+ config.writeEntry("Value", mValue);
+}
+
+//===========================================================================
+KXSDoubleRangeItem::KXSDoubleRangeItem(const TQString &name, TDEConfig &config)
+ : KXSConfigItem(name, config), mInvert(false)
+{
+ mMinimum = config.readDoubleNumEntry("Minimum");
+ mMaximum = config.readDoubleNumEntry("Maximum");
+ mValue = config.readDoubleNumEntry("Value");
+ mSwitch = config.readEntry("Switch");
+}
+
+KXSDoubleRangeItem::KXSDoubleRangeItem(const TQString &name, const TQXmlAttributes &attr)
+ : KXSConfigItem(name, attr), mInvert(false)
+{
+ mMinimum = attr.value("low").toDouble();
+ mMaximum = attr.value("high").toDouble();
+ mValue = attr.value("default").toDouble();
+ mSwitch = attr.value("arg");
+ int pos = mSwitch.find( '%' );
+ if (pos >= 0)
+ mSwitch.insert(pos+1, '1');
+ if ( attr.value("convert") == "invert" )
+ mInvert = true;
+ if (mInvert)
+ mValue = mMaximum-(mValue-mMinimum);
+}
+
+TQString KXSDoubleRangeItem::command()
+{
+ return mSwitch.arg(mInvert?mMaximum-(mValue-mMinimum):mValue);
+}
+
+void KXSDoubleRangeItem::read(TDEConfig &config)
+{
+ config.setGroup(mName);
+ if (config.hasKey("Value"))
+ mValue = config.readDoubleNumEntry("Value");
+}
+
+void KXSDoubleRangeItem::save(TDEConfig &config)
+{
+ config.setGroup(mName);
+ config.writeEntry("Value", mValue);
+}
+
+
+//===========================================================================
+KXSBoolItem::KXSBoolItem(const TQString &name, TDEConfig &config)
+ : KXSConfigItem(name, config)
+{
+ mValue = config.readBoolEntry("Value");
+ mSwitchOn = config.readEntry("SwitchOn");
+ mSwitchOff = config.readEntry("SwitchOff");
+}
+
+KXSBoolItem::KXSBoolItem(const TQString &name, const TQXmlAttributes &attr )
+ : KXSConfigItem(name, attr)
+{
+ mSwitchOn = attr.value("arg-set");
+ mSwitchOff = attr.value("arg-unset");
+ mValue = mSwitchOn.isEmpty() ? true : false;
+}
+
+TQString KXSBoolItem::command()
+{
+ return mValue ? mSwitchOn : mSwitchOff;
+}
+
+void KXSBoolItem::read(TDEConfig &config)
+{
+ config.setGroup(mName);
+ if (config.hasKey("Value"))
+ mValue = config.readBoolEntry("Value");
+}
+
+void KXSBoolItem::save(TDEConfig &config)
+{
+ config.setGroup(mName);
+ config.writeEntry("Value", mValue);
+}
+
+//===========================================================================
+KXSSelectItem::KXSSelectItem(const TQString &name, TDEConfig &config)
+ : KXSConfigItem(name, config)
+{
+ mOptions = config.readListEntry("Options");
+ mSwitches = config.readListEntry("Switches");
+ mValue = config.readNumEntry("Value");
+}
+
+KXSSelectItem::KXSSelectItem(const TQString &name, const TQXmlAttributes &attr )
+ : KXSConfigItem(name, attr), mValue(0)
+{
+}
+
+void KXSSelectItem::addOption( const TQXmlAttributes &attr )
+{
+ TQString opt = attr.value("_label");
+ TQString arg = attr.value("arg-set");
+ if ( arg.isEmpty() )
+ mValue = mSwitches.count();
+ mOptions += opt;
+ mSwitches += arg;
+}
+
+TQString KXSSelectItem::command()
+{
+ TQStringList::Iterator it = mSwitches.at(mValue);
+ return (*it);
+}
+
+void KXSSelectItem::read(TDEConfig &config)
+{
+ config.setGroup(mName);
+ if (config.hasKey("Value"))
+ mValue = config.readNumEntry("Value");
+}
+
+void KXSSelectItem::save(TDEConfig &config)
+{
+ config.setGroup(mName);
+ config.writeEntry("Value", mValue);
+}
+
+
+//===========================================================================
+KXSStringItem::KXSStringItem(const TQString &name, TDEConfig &config)
+ : KXSConfigItem(name, config)
+{
+ mValue = config.readEntry("Value");
+ mSwitch = config.readEntry("Switch");
+ int pos = mSwitch.find( '%' );
+ if (pos >= 0) {
+ mSwitch.insert(pos+1, "\"");
+ mSwitch.insert(pos, "\"");
+ }
+}
+
+KXSStringItem::KXSStringItem(const TQString &name, const TQXmlAttributes &attr )
+ : KXSConfigItem(name, attr)
+{
+ mSwitch = attr.value("arg");
+ int pos = mSwitch.find( '%' );
+ if (pos >= 0) {
+ mSwitch.insert(pos+1, "1\"");
+ mSwitch.insert(pos, "\"");
+ }
+}
+
+TQString KXSStringItem::command()
+{
+ if (!mValue.isEmpty())
+ return mSwitch.arg(mValue);
+ return "";
+}
+
+void KXSStringItem::read(TDEConfig &config)
+{
+ config.setGroup(mName);
+ if (config.hasKey("Value"))
+ mValue = config.readEntry("Value");
+}
+
+void KXSStringItem::save(TDEConfig &config)
+{
+ config.setGroup(mName);
+ config.writeEntry("Value", mValue);
+}
+
diff --git a/tdescreensaver/kxsconfig/kxsitem.h b/tdescreensaver/kxsconfig/kxsitem.h
new file mode 100644
index 00000000..9e4bed3e
--- /dev/null
+++ b/tdescreensaver/kxsconfig/kxsitem.h
@@ -0,0 +1,132 @@
+//-----------------------------------------------------------------------------
+//
+// KDE xscreensaver configuration dialog
+//
+// Copyright (c) Martin R. Jones <mjones@kde.org> 1999
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation;
+// version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; see the file COPYING. If not, write to
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#ifndef __KXSITEM_H__
+#define __KXSITEM_H__
+
+#include <kconfig.h>
+
+class TQXmlAttributes;
+
+class KXSConfigItem
+{
+public:
+ KXSConfigItem(const TQString &name, TDEConfig &config);
+ KXSConfigItem(const TQString &name, const TQXmlAttributes &attr);
+ virtual ~KXSConfigItem() {}
+
+ virtual TQString command() = 0;
+ virtual void save(TDEConfig &config) = 0;
+ virtual void read(TDEConfig &config) = 0;
+
+protected:
+ TQString mName;
+ TQString mLabel;
+};
+
+class KXSRangeItem : public KXSConfigItem
+{
+public:
+ KXSRangeItem(const TQString &name, TDEConfig &config);
+ KXSRangeItem(const TQString &name, const TQXmlAttributes &attr);
+
+ virtual TQString command();
+ virtual void save(TDEConfig &config);
+ virtual void read(TDEConfig &config);
+
+protected:
+ TQString mSwitch;
+ int mMinimum;
+ int mMaximum;
+ int mValue;
+ bool mInvert;
+};
+
+class KXSDoubleRangeItem : public KXSConfigItem
+{
+public:
+ KXSDoubleRangeItem(const TQString &name, TDEConfig &config);
+ KXSDoubleRangeItem(const TQString &name, const TQXmlAttributes &attr);
+
+ virtual TQString command();
+ virtual void read(TDEConfig &config);
+ virtual void save(TDEConfig &config);
+
+protected:
+ TQString mSwitch;
+ double mMinimum;
+ double mMaximum;
+ double mValue;
+ bool mInvert;
+};
+
+class KXSBoolItem : public KXSConfigItem
+{
+public:
+ KXSBoolItem(const TQString &name, TDEConfig &config);
+ KXSBoolItem(const TQString &name, const TQXmlAttributes &attr);
+
+ virtual TQString command();
+ virtual void read(TDEConfig &config);
+ virtual void save(TDEConfig &config);
+
+protected:
+ TQString mSwitchOn;
+ TQString mSwitchOff;
+ bool mValue;
+};
+
+class KXSSelectItem : public KXSConfigItem
+{
+public:
+ KXSSelectItem(const TQString &name, TDEConfig &config);
+ KXSSelectItem(const TQString &name, const TQXmlAttributes &attr);
+
+ virtual void addOption(const TQXmlAttributes &attr);
+
+ virtual TQString command();
+
+ virtual void read(TDEConfig &config);
+ virtual void save(TDEConfig &config);
+
+protected:
+ TQStringList mOptions;
+ TQStringList mSwitches;
+ int mValue;
+};
+
+class KXSStringItem : public KXSConfigItem
+{
+public:
+ KXSStringItem(const TQString &name, TDEConfig &config);
+ KXSStringItem(const TQString &name, const TQXmlAttributes &attr);
+
+ virtual TQString command();
+ virtual void save(TDEConfig &config);
+ virtual void read(TDEConfig &config);
+
+protected:
+ TQString mSwitch;
+ TQString mValue;
+};
+
+#endif
+
diff --git a/tdescreensaver/kxsconfig/kxsrun.cpp b/tdescreensaver/kxsconfig/kxsrun.cpp
new file mode 100644
index 00000000..6ffa1b15
--- /dev/null
+++ b/tdescreensaver/kxsconfig/kxsrun.cpp
@@ -0,0 +1,195 @@
+//-----------------------------------------------------------------------------
+//
+// KDE xscreensaver launcher
+//
+// Copyright (c) Martin R. Jones <mjones@kde.org> 1999
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation;
+// version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; see the file COPYING. If not, write to
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <config.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+
+#include <tqptrlist.h>
+#include <tqfile.h>
+#include <tqfileinfo.h>
+
+#include <kdebug.h>
+#include <kapplication.h>
+#include <kconfig.h>
+#include <kstandarddirs.h>
+#include <klocale.h>
+#include <kcmdlineargs.h>
+
+#include "kxsitem.h"
+#include "kxsxml.h"
+
+#define MAX_ARGS 30
+
+template class TQPtrList<KXSConfigItem>;
+
+//===========================================================================
+static const char appName[] = "kxsrun";
+
+static const char description[] = I18N_NOOP("TDE X Screen Saver Launcher");
+
+static const char version[] = "3.0.0";
+
+static const KCmdLineOptions options[] =
+{
+ {"+screensaver", I18N_NOOP("Filename of the screen saver to start"), 0},
+ {"+-- [options]", I18N_NOOP("Extra options to pass to the screen saver"), 0},
+ KCmdLineLastOption
+};
+
+int main(int argc, char *argv[])
+{
+ KLocale::setMainCatalogue("kxsconfig");
+ TDECmdLineArgs::init(argc, argv, appName, I18N_NOOP("KXSRun"), description, version);
+
+ TDECmdLineArgs::addCmdLineOptions(options);
+
+ TDEApplication app( false, false );
+
+ TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
+
+ if ( !args->count() )
+ exit( 1 );
+
+ TQString filename = args->arg(0);
+ TQString configFile(filename);
+
+ // Get the config filename
+ int slash = filename.findRev('/');
+ if (slash >= 0)
+ configFile = filename.mid(slash+1);
+
+ TQString exeName = configFile;
+ configFile += "rc";
+
+ // read configuration args
+ TDEConfig config(configFile);
+
+ TQPtrList<KXSConfigItem> configItemList;
+
+ TQString xmlFile = "/doesntexist";
+#ifdef XSCREENSAVER_CONFIG_DIR
+ xmlFile = XSCREENSAVER_CONFIG_DIR;
+#endif
+ xmlFile += "/" + exeName + ".xml";
+ if ( TQFile::exists( xmlFile ) ) {
+ // We can use the xscreensaver xml config files.
+ KXSXml xmlParser(0);
+ xmlParser.parse(xmlFile);
+ configItemList = *xmlParser.items();
+ TQPtrListIterator<KXSConfigItem> it( configItemList );
+ KXSConfigItem *item;
+ while ( (item = it.current()) != 0 ) {
+ ++it;
+ item->read( config );
+ }
+ } else {
+ // fall back to KDE's old config files.
+ int idx = 0;
+ while (true)
+ {
+ TQString group = TQString("Arg%1").arg(idx);
+ if (config.hasGroup(group)) {
+ config.setGroup(group);
+ TQString type = config.readEntry("Type");
+ if (type == "Range") {
+ KXSRangeItem *rc = new KXSRangeItem(group, config);
+ configItemList.append(rc);
+ } else if (type == "DoubleRange") {
+ KXSDoubleRangeItem *rc = new KXSDoubleRangeItem(group, config);
+ configItemList.append(rc);
+ } else if (type == "Check") {
+ KXSBoolItem *cc = new KXSBoolItem(group, config);
+ configItemList.append(cc);
+ } else if (type == "DropList") {
+ KXSSelectItem *si = new KXSSelectItem(group, config);
+ configItemList.append(si);
+ }
+ } else {
+ break;
+ }
+ idx++;
+ }
+ }
+
+ // find the xscreensaver executable
+ //work around a KStandarDirs::findExe() "feature" where it looks in $TDEDIR/bin first no matter what and sometimes finds the wrong executable
+ TQFileInfo checkExe;
+ TQString saverdir = TQString("%1/%2").arg(XSCREENSAVER_HACKS_DIR).arg(filename);
+ kdDebug() << "saverdir is" << saverdir << endl;
+ TQString exeFile;
+ checkExe.setFile(saverdir);
+ if (checkExe.exists() && checkExe.isExecutable() && checkExe.isFile())
+ {
+ exeFile = saverdir;
+ }
+
+
+ if (!exeFile.isEmpty()) {
+ char *sargs[MAX_ARGS];
+ sargs[0] = new char [strlen(filename.ascii())+1];
+ strcpy(sargs[0], filename.ascii());
+
+ // add the command line options
+ TQString cmd;
+ unsigned int i;
+ for (i = 1; i < (unsigned)args->count(); i++)
+ cmd += " " + TQString(args->arg(i));
+
+ // add the config options
+ KXSConfigItem *item;
+ for (item = configItemList.first(); item != 0; item = configItemList.next()) {
+ cmd += " " + item->command();
+ }
+
+ // put into char * array for execv
+ TQString word;
+ int si = 1;
+ i = 0;
+ bool inQuotes = false;
+ while (i < cmd.length() && si < MAX_ARGS-1) {
+ word = "";
+ while ( cmd[i].isSpace() && i < cmd.length() ) i++;
+ while ( (!cmd[i].isSpace() || inQuotes) && i < cmd.length() ) {
+ if ( cmd[i] == '\"' ) {
+ inQuotes = !inQuotes;
+ } else {
+ word += cmd[i];
+ }
+ i++;
+ }
+ if (!word.isEmpty()) {
+ sargs[si] = new char [strlen(word.ascii())+1];
+ strcpy(sargs[si], word.ascii());
+ si++;
+ }
+ }
+
+ sargs[si] = 0;
+
+ // here goes...
+ execv(exeFile.ascii(), sargs);
+ }
+}
+
+
diff --git a/tdescreensaver/kxsconfig/kxsxml.cpp b/tdescreensaver/kxsconfig/kxsxml.cpp
new file mode 100644
index 00000000..6ea0c7b7
--- /dev/null
+++ b/tdescreensaver/kxsconfig/kxsxml.cpp
@@ -0,0 +1,157 @@
+//-----------------------------------------------------------------------------
+//
+// KDE xscreensaver configuration dialog
+//
+// Copyright (c) Martin R. Jones <mjones@kde.org> 2002
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation;
+// version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; see the file COPYING. If not, write to
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include "kxsxml.h"
+#include "kxscontrol.h"
+#include <tqobject.h>
+#include <tqfile.h>
+#include <tqvbox.h>
+#include <tqhbox.h>
+#include <stdio.h>
+
+KXSXml::KXSXml( TQWidget *p )
+ : parent(p), handler(0)
+{
+}
+
+bool KXSXml::parse( const TQString &filename )
+{
+ TQFile file( filename );
+ handler = new KXSXmlHandler( parent );
+ TQXmlInputSource source( TQT_TQIODEVICE(&file) );
+ TQXmlSimpleReader reader;
+ reader.setContentHandler( handler );
+ if ( !reader.parse( &source, FALSE ) )
+ return FALSE;
+
+ return true;
+}
+
+const TQPtrList<KXSConfigItem> *KXSXml::items() const
+{
+ if ( handler )
+ return handler->items();
+ return 0;
+}
+
+TQString KXSXml::description() const
+{
+ if ( handler )
+ return handler->description();
+ return TQString();
+}
+
+//===========================================================================
+
+KXSXmlHandler::KXSXmlHandler( TQWidget *p )
+ : TQXmlDefaultHandler(), parent(p), selItem(0), inDesc(false)
+{
+ mParentStack.push( p );
+}
+
+bool KXSXmlHandler::startDocument()
+{
+ return true;
+}
+
+bool KXSXmlHandler::startElement( const TQString&, const TQString&,
+ const TQString& qName,
+ const TQXmlAttributes &atts )
+{
+ KXSConfigItem *i = 0;
+ TQString id = atts.value("id");
+ if ( qName == "number" ) {
+ TQString sLow = atts.value( "low" );
+ TQString sHigh = atts.value( "high" );
+ if ( sLow.contains( '.' ) || sHigh.contains( '.' ) ) {
+ if ( parent )
+ i = new KXSDoubleRangeControl( parent, id, atts );
+ else
+ i = new KXSDoubleRangeItem( id, atts );
+ } else {
+ if ( parent )
+ i = new KXSRangeControl( parent, id, atts );
+ else
+ i = new KXSRangeItem( id, atts );
+ }
+ } else if ( qName == "boolean" ) {
+ if ( parent )
+ i = new KXSCheckBoxControl( parent, id, atts );
+ else
+ i = new KXSBoolItem( id, atts );
+ } else if ( qName == "string" ) {
+ if ( parent )
+ i = new KXSLineEditControl( parent, id, atts );
+ else
+ i = new KXSStringItem( id, atts );
+ } else if ( qName == "file" ) {
+ if ( parent )
+ i = new KXSFileControl( parent, id, atts );
+ else
+ i = new KXSStringItem( id, atts );
+ } else if ( qName == "_description" ) {
+ inDesc = true;
+ } else if ( qName == "select" ) {
+ if ( parent )
+ selItem = new KXSDropListControl( parent, id, atts );
+ else
+ selItem = new KXSSelectItem( id, atts );
+ i = selItem;
+ } else if ( qName == "option" && selItem ) {
+ selItem->addOption( atts );
+ } else if ( qName == "hgroup" && parent ) {
+ TQHBox *hb = new TQHBox( parent );
+ mParentStack.push( hb );
+ parent = hb;
+ } else if ( qName == "vgroup" && parent ) {
+ TQVBox *vb = new TQVBox( parent );
+ mParentStack.push( vb );
+ parent = vb;
+ }
+
+ if ( i )
+ mConfigItemList.append( i );
+
+ return true;
+}
+
+bool KXSXmlHandler::endElement( const TQString&, const TQString&, const TQString &qName )
+{
+ if ( qName == "select" ) {
+ selItem = 0;
+ } else if ( qName == "_description" ) {
+ inDesc = false;
+ } else if ( (qName == "hgroup" || qName == "vgroup") && parent ) {
+ if ( mParentStack.count() > 1 ) {
+ mParentStack.pop();
+ parent = mParentStack.top();
+ }
+ }
+ return true;
+}
+
+bool KXSXmlHandler::characters( const TQString &ch )
+{
+ if ( inDesc )
+ desc += ch;
+ return true;
+}
+
diff --git a/tdescreensaver/kxsconfig/kxsxml.h b/tdescreensaver/kxsconfig/kxsxml.h
new file mode 100644
index 00000000..4f02a33c
--- /dev/null
+++ b/tdescreensaver/kxsconfig/kxsxml.h
@@ -0,0 +1,69 @@
+//-----------------------------------------------------------------------------
+//
+// KDE xscreensaver configuration dialog
+//
+// Copyright (c) Martin R. Jones <mjones@kde.org> 2002
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public
+// License as published by the Free Software Foundation;
+// version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; see the file COPYING. If not, write to
+// the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#ifndef KXSXML_H
+#define KXSXML_H
+
+#include "kxsconfig.h"
+#include <tqxml.h>
+#include <tqptrstack.h>
+
+class KXSXmlHandler;
+
+class KXSXml
+{
+public:
+ KXSXml( TQWidget *p );
+
+ bool parse( const TQString &filename );
+ const TQPtrList<KXSConfigItem> *items() const;
+ TQString description() const;
+
+private:
+ TQWidget *parent;
+ KXSXmlHandler *handler;
+};
+
+class KXSXmlHandler : public TQXmlDefaultHandler
+{
+public:
+ KXSXmlHandler( TQWidget *p );
+
+ bool startDocument();
+ bool startElement( const TQString&, const TQString&, const TQString& ,
+ const TQXmlAttributes& );
+ bool endElement( const TQString&, const TQString&, const TQString& );
+ bool characters( const TQString & );
+
+ const TQPtrList<KXSConfigItem> *items() const { return &mConfigItemList; }
+ const TQString &description() const { return desc; }
+
+private:
+ TQWidget *parent;
+ KXSSelectItem *selItem;
+ bool inDesc;
+ TQString desc;
+ TQPtrList<KXSConfigItem> mConfigItemList;
+ TQPtrStack<TQWidget> mParentStack;
+};
+
+#endif // KXSXML_H
+
diff --git a/tdescreensaver/kxsconfig/update_hacks.sh b/tdescreensaver/kxsconfig/update_hacks.sh
new file mode 100755
index 00000000..2f88d1f2
--- /dev/null
+++ b/tdescreensaver/kxsconfig/update_hacks.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+scsvs=`cd /usr/lib/xscreensaver/ && ls -1 | grep -v config`
+echo $scsvs
+for name in $scsvs; do
+ if test -f /usr/lib/xscreensaver/$name && test -f /usr/share/xscreensaver/config/$name.xml && test ! -f ScreenSavers/$name.desktop; then
+ echo "name: $name"
+ label=`grep '<screensaver.*_label' /usr/share/xscreensaver/config/$name.xml | sed -e 's#^.*_label=\"\(.*\)\".*$#\1#'`
+ echo "label: $label"
+ f=ScreenSavers/$name.desktop
+ sed -e "s#@NAME@#$name#; s#@LABEL@#$label#" ScreenSavers/xscreensaver.template > $f
+ if ldd /usr/lib/xscreensaver/$name 2>&1 | grep libGL; then
+ sed -e "s,@GL1@,X-TDE-Category=OpenGL Screen Savers,; s,@GL2@,X-TDE-Type=OpenGL," $f > $f.new
+ else
+ grep -v @GL $f > $f.new
+ fi
+ mv $f.new $f
+ fi
+done
diff --git a/tdescreensaver/tdepartsaver/CMakeLists.txt b/tdescreensaver/tdepartsaver/CMakeLists.txt
new file mode 100644
index 00000000..e4259969
--- /dev/null
+++ b/tdescreensaver/tdepartsaver/CMakeLists.txt
@@ -0,0 +1,33 @@
+#################################################
+#
+# (C) 2011 Golubev Alexander
+# fatzer2 (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${TDE_INCLUDE_DIR}
+ ${TQT_INCLUDE_DIRS}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
+
+##### desktop files #############################
+
+install( FILES tdepartsaver.desktop
+ DESTINATION ${APPS_INSTALL_DIR}/System/ScreenSavers )
+
+##### kpart_cde ##################################
+
+tde_add_executable( tdepartsaver.kss AUTOMOC
+ SOURCES tdepartsaver.cpp configwidget.ui
+ LINK tdescreensaver-shared kio-shared
+ DESTINATION ${BIN_INSTALL_DIR}
+)
diff --git a/tdescreensaver/tdepartsaver/Makefile.am b/tdescreensaver/tdepartsaver/Makefile.am
new file mode 100644
index 00000000..0e759e7e
--- /dev/null
+++ b/tdescreensaver/tdepartsaver/Makefile.am
@@ -0,0 +1,14 @@
+bin_PROGRAMS = tdepartsaver.kss
+INCLUDES = $(all_includes)
+
+tdepartsaver_kss_SOURCES = tdepartsaver.cpp configwidget.ui
+tdepartsaver_kss_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_KIO) -ltdetexteditor
+tdepartsaver_kss_LDADD = $(LIB_KFILE) $(LIB_KPARTS) -ltdescreensaver
+
+METASOURCES = AUTO
+
+desktop_DATA = tdepartsaver.desktop
+desktopdir = $(kde_appsdir)/System/ScreenSavers
+
+messages: rc.cpp
+ $(XGETTEXT) *.cpp -o $(podir)/tdepartsaver.pot
diff --git a/tdescreensaver/tdepartsaver/configwidget.ui b/tdescreensaver/tdepartsaver/configwidget.ui
new file mode 100644
index 00000000..a246d8f4
--- /dev/null
+++ b/tdescreensaver/tdepartsaver/configwidget.ui
@@ -0,0 +1,299 @@
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>ConfigWidget</class>
+<author>Stefan Schimanski &lt;1Stein@gmx.de&gt;</author>
+<widget class="TQDialog">
+ <property name="name">
+ <cstring>ConfigWidget</cstring>
+ </property>
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>463</width>
+ <height>376</height>
+ </rect>
+ </property>
+ <property name="caption">
+ <string>Media Screen Saver</string>
+ </property>
+ <vbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQGroupBox">
+ <property name="name">
+ <cstring>GroupBox1</cstring>
+ </property>
+ <property name="title">
+ <string>Files</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQListBox" row="0" column="0" rowspan="2" colspan="1">
+ <property name="name">
+ <cstring>m_files</cstring>
+ </property>
+ </widget>
+ <widget class="TQLayoutWidget" row="0" column="1">
+ <property name="name">
+ <cstring>Layout2</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQPushButton" row="2" column="1">
+ <property name="name">
+ <cstring>m_down</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Down</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="2" column="0">
+ <property name="name">
+ <cstring>m_up</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Up</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>m_add</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Add...</string>
+ </property>
+ </widget>
+ <widget class="TQPushButton" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>m_remove</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>&amp;Remove</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer row="1" column="1">
+ <property name="name">
+ <cstring>Spacer2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ </spacer>
+ </grid>
+ </widget>
+ <widget class="TQButtonGroup">
+ <property name="name">
+ <cstring>ButtonGroup1</cstring>
+ </property>
+ <property name="title">
+ <string>Settings</string>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>11</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQRadioButton" row="0" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>m_single</cstring>
+ </property>
+ <property name="text">
+ <string>Only show one randomly chosen medium</string>
+ </property>
+ </widget>
+ <spacer row="2" column="0">
+ <property name="name">
+ <cstring>Spacer4</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Fixed</enum>
+ </property>
+ <property name="sizeHint">
+ <size>
+ <width>20</width>
+ <height>21</height>
+ </size>
+ </property>
+ </spacer>
+ <widget class="TQRadioButton" row="1" column="0" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>m_multiple</cstring>
+ </property>
+ <property name="text">
+ <string>Switch to another medium after a delay</string>
+ </property>
+ </widget>
+ <widget class="TQLayoutWidget" row="2" column="1">
+ <property name="name">
+ <cstring>Layout4</cstring>
+ </property>
+ <grid>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <widget class="TQLabel" row="0" column="0">
+ <property name="name">
+ <cstring>m_delayLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Delay:</string>
+ </property>
+ </widget>
+ <widget class="TQSpinBox" row="0" column="1">
+ <property name="name">
+ <cstring>m_delay</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="TQCheckBox" row="1" column="0" rowspan="1" colspan="3">
+ <property name="name">
+ <cstring>m_random</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Choose next medium randomly</string>
+ </property>
+ </widget>
+ <widget class="TQLabel" row="0" column="2">
+ <property name="name">
+ <cstring>m_secondsLabel</cstring>
+ </property>
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>seconds</string>
+ </property>
+ </widget>
+ </grid>
+ </widget>
+ <spacer row="2" column="2">
+ <property name="name">
+ <cstring>Spacer16</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ </spacer>
+ </grid>
+ </widget>
+ <widget class="TQLayoutWidget">
+ <property name="name">
+ <cstring>Layout1</cstring>
+ </property>
+ <hbox>
+ <property name="name">
+ <cstring>unnamed</cstring>
+ </property>
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <property name="spacing">
+ <number>6</number>
+ </property>
+ <spacer>
+ <property name="name">
+ <cstring>Horizontal Spacing2</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
+ </property>
+ </spacer>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>m_ok</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;OK</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget class="TQPushButton">
+ <property name="name">
+ <cstring>m_cancel</cstring>
+ </property>
+ <property name="text">
+ <string>&amp;Cancel</string>
+ </property>
+ <property name="autoDefault">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </hbox>
+ </widget>
+ </vbox>
+</widget>
+<includes>
+ <include location="global" impldecl="in declaration">klocale.h</include>
+</includes>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>
diff --git a/tdescreensaver/tdepartsaver/tdepartsaver.cpp b/tdescreensaver/tdepartsaver/tdepartsaver.cpp
new file mode 100644
index 00000000..a2c0cc40
--- /dev/null
+++ b/tdescreensaver/tdepartsaver/tdepartsaver.cpp
@@ -0,0 +1,387 @@
+/*
+ * Copyright (C) 2001 Stefan Schimanski <1Stein@gmx.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <stdlib.h>
+#include <signal.h>
+#include <unistd.h>
+#include <time.h>
+
+#include <tqwidget.h>
+#include <tqdialog.h>
+#include <tqtimer.h>
+#include <tqstring.h>
+#include <tqvaluelist.h>
+#include <tqpushbutton.h>
+#include <tqradiobutton.h>
+#include <tqspinbox.h>
+#include <tqcheckbox.h>
+#include <tqlabel.h>
+
+#include <klocale.h>
+#include <kapplication.h>
+#include <kdebug.h>
+#include <klibloader.h>
+#include <kconfig.h>
+#include <kfiledialog.h>
+#include <kurl.h>
+#include <tdeparts/part.h>
+#include <ktrader.h>
+#include <kio/jobclasses.h>
+#include <kio/job.h>
+#include <kmimetype.h>
+
+#include <tdescreensaver.h>
+
+#include "configwidget.h"
+#include "tdepartsaver.h"
+#include <kiconloader.h>
+
+
+TQPtrList<KPartSaver> g_savers;
+bool g_inited = false;
+
+
+extern "C"
+{
+ KDE_EXPORT const char *kss_applicationName = "tdepartsaver";
+ KDE_EXPORT const char *kss_description = I18N_NOOP( "KPart Screen Saver" );
+ KDE_EXPORT const char *kss_version = "1.0";
+
+ KDE_EXPORT KScreenSaver *kss_create( WId d )
+ {
+ TDEGlobal::locale()->insertCatalogue("tdepartsaver");
+ return new KPartSaver( d );
+ }
+
+ KDE_EXPORT TQDialog *kss_setup()
+ {
+ kdDebug() << "kss_setup" << endl;
+ TDEGlobal::locale()->insertCatalogue("tdepartsaver");
+ return new SaverConfig;
+ }
+}
+
+
+void exitHandler( int )
+{
+ kdDebug() << "exitHandler" << endl;
+ g_savers.clear();
+ KLibLoader::self()->cleanUp();
+ exit(0);
+}
+
+
+KPartSaver::KPartSaver( WId id )
+ : KScreenSaver( id ), m_timer(), m_part(0), m_current(-1), m_back(0)
+{
+ // install signal handlers to make sure that nspluginviewer is shutdown correctly
+ // move this into the nspluginviewer kpart code
+ if( !g_inited ) {
+ g_inited = true;
+ g_savers.setAutoDelete( true );
+
+ srand( time(0) );
+
+ // install signal handler
+ signal( SIGINT, exitHandler ); // Ctrl-C will cause a clean exit...
+ signal( SIGTERM, exitHandler ); // "kill"...
+ signal( SIGHUP, exitHandler ); // "kill -HUP" (hangup)...
+ signal( SIGKILL, exitHandler ); // "kill -KILL"
+ //atexit( ( void (*)(void) ) exitHandler );
+ }
+
+ g_savers.append( this );
+
+ closeURL();
+
+ // load config
+ TDEConfig *cfg = kapp->config();
+ cfg->setGroup( "Misc" );
+
+ m_single = cfg->readBoolEntry( "Single", true );
+ m_delay = cfg->readNumEntry( "Delay", 60 );
+ m_random = cfg->readBoolEntry( "Random", false );
+ m_files = cfg->readListEntry( "Files" );
+
+ if( m_files.count()==0 ) {
+
+ // create background widget
+ m_back = new TQLabel( i18n("The screen saver is not configured yet."), this );
+
+ m_back->setAlignment( AlignCenter );
+ embed( m_back );
+ m_back->show();
+
+ } else {
+
+ // queue files
+ for( unsigned int n=0; n<m_files.count(); n++ )
+ queue( KURL::fromPathOrURL( m_files[n] ) );
+
+ // play files
+ if( m_single )
+ next( m_random );
+ else {
+ next( m_random );
+ m_timer = new TQTimer( this );
+ m_timer->start( m_delay*1000, true );
+ connect( m_timer, TQT_SIGNAL(timeout()), TQT_SLOT(timeout()) );
+ }
+ }
+}
+
+
+KPartSaver::~KPartSaver()
+{
+ g_savers.take( g_savers.findRef( this ));
+ closeURL();
+}
+
+
+void KPartSaver::closeURL()
+{
+ if( m_part ) {
+ m_part->closeURL();
+ delete m_part;
+ m_part = 0;
+ }
+}
+
+
+bool KPartSaver::openURL( KURL url )
+{
+ closeURL();
+
+ // find mime type
+ TQString mime = KMimeType::findByURL( url )->name();
+
+ // find fitting tdeparts
+ KTrader::OfferList offers;
+ offers = KTrader::self()->query( mime, "'KParts/ReadOnlyPart' in ServiceTypes" );
+ if( offers.count()==0 ) {
+ kdDebug() << "Can't find proper kpart for " << mime << endl;
+ return false;
+ }
+
+ // load kpart library
+ TQString lib = offers.first()->library();
+ KLibFactory *factory = KLibLoader::self()->factory( lib.latin1() );
+ if( !factory ) {
+ kdDebug() << "Library " << lib << " not found." << endl;
+ return false;
+ }
+
+ // create kpart
+ m_part = (KParts::ReadOnlyPart *)factory->create( TQT_TQOBJECT(this), "kpart", "KParts::ReadOnlyPart" );
+ if( !m_part ) {
+ kdDebug() << "Part for " << url.url() << " can't be constructed" << endl;
+ return false;
+ } else
+ embed( m_part->widget() );
+
+ // show kpart
+ delete m_back;
+ m_back = 0;
+
+ show();
+ m_part->widget()->show();
+
+ // load url
+ if( !m_part->openURL( url ) ) {
+ kdDebug() << "Can't load " << url.url() << endl;
+ closeURL();
+ return false;
+ }
+
+
+
+ return true;
+}
+
+
+void KPartSaver::queue( KURL url )
+{
+ Medium medium;
+ medium.url = url;
+ medium.failed = false;
+ m_media.append( medium );
+}
+
+
+void KPartSaver::timeout()
+{
+ next( m_random );
+ m_timer->start( m_delay*1000, true );
+}
+
+
+void KPartSaver::next( bool random )
+{
+ // try to find working media
+ while( m_media.count()>0 ) {
+
+ if( random )
+ m_current = rand() % m_media.count();
+ else
+ m_current++;
+
+ if( m_current>=(int)m_media.count() )
+ m_current = 0;
+
+ kdDebug() << "Trying medium " << m_media[m_current].url.url() << endl;
+
+ // either start immediately or start mimejob first
+ if( !openURL( m_media[m_current].url ) ) {
+ m_media.remove( m_media.at(m_current) );
+ m_current--;
+ } else
+ return;
+
+ }
+
+ // create background widget
+ m_back = new TQLabel( i18n("All of your files are unsupported"), this );
+
+ m_back->setAlignment( AlignCenter );
+ embed( m_back );
+ m_back->show();
+
+ // nothing found, set to invalid
+ m_current = -1;
+}
+
+
+/*******************************************************************************/
+
+
+SaverConfig::SaverConfig( TQWidget* parent, const char* name )
+ : ConfigWidget( parent, name, true )
+{
+ connect( m_ok, TQT_SIGNAL(clicked()), TQT_SLOT(apply()) );
+ connect( m_ok, TQT_SIGNAL(clicked()), TQT_SLOT(accept()) );
+ connect( m_cancel, TQT_SIGNAL(clicked()), TQT_SLOT(reject()) );
+
+ connect( m_multiple, TQT_SIGNAL(toggled(bool)), m_delayLabel, TQT_SLOT(setEnabled(bool)) );
+ connect( m_multiple, TQT_SIGNAL(toggled(bool)), m_delay, TQT_SLOT(setEnabled(bool)) );
+ connect( m_multiple, TQT_SIGNAL(toggled(bool)), m_secondsLabel, TQT_SLOT(setEnabled(bool)) );
+ connect( m_multiple, TQT_SIGNAL(toggled(bool)), m_random, TQT_SLOT(setEnabled(bool)) );
+
+ connect( m_files, TQT_SIGNAL(selectionChanged()), TQT_SLOT(select()) );
+ connect( m_add, TQT_SIGNAL(clicked()), TQT_SLOT(add()) );
+ connect( m_remove, TQT_SIGNAL(clicked()), TQT_SLOT(remove()) );
+ connect( m_up, TQT_SIGNAL(clicked()), TQT_SLOT(up()) );
+ connect( m_down, TQT_SIGNAL(clicked()), TQT_SLOT(down()) );
+
+ m_up->setIconSet( SmallIconSet("up") );
+ m_down->setIconSet( SmallIconSet("down") );
+
+ // load config
+ TDEConfig *cfg = kapp->config();
+ cfg->setGroup( "Misc" );
+
+ bool single = cfg->readBoolEntry( "Single", true );
+ m_single->setChecked( single );
+ m_multiple->setChecked( !single );
+ m_delay->setMinValue( 1 );
+ m_delay->setMaxValue( 10000 );
+ m_delay->setValue( cfg->readNumEntry( "Delay", 60 ) );
+ m_random->setChecked( cfg->readBoolEntry( "Random", false ) );
+ m_files->insertStringList( cfg->readListEntry( "Files" ) );
+
+ // update buttons
+ select();
+}
+
+
+SaverConfig::~SaverConfig()
+{
+}
+
+
+void SaverConfig::apply()
+{
+ kdDebug() << "apply" << endl;
+
+ TDEConfig *cfg = kapp->config();
+ cfg->setGroup( "Misc" );
+
+ cfg->writeEntry( "Single", m_single->isChecked() );
+ cfg->writeEntry( "Delay", m_delay->value() );
+ cfg->writeEntry( "Random", m_random->isChecked() );
+
+ int num = m_files->count();
+ TQStringList files;
+ for( int n=0; n<num; n++ )
+ files << m_files->text(n);
+
+ cfg->writeEntry( "Files", files );
+
+ cfg->sync();
+}
+
+
+void SaverConfig::add()
+{
+ KURL::List files = KFileDialog::getOpenURLs( TQString(), TQString(),
+ this, i18n("Select Media Files") );
+ for( unsigned int n=0; n<files.count(); n++ )
+ m_files->insertItem( files[n].prettyURL(), -1 );
+}
+
+
+void SaverConfig::remove()
+{
+ int current = m_files->currentItem();
+ if( current!=-1 )
+ m_files->removeItem( current );
+}
+
+
+void SaverConfig::select()
+{
+ bool enabled = m_files->currentItem()!=-1;
+ m_remove->setEnabled( enabled );
+ m_up->setEnabled( enabled && m_files->currentItem()!=0 );
+ m_down->setEnabled( enabled && m_files->currentItem()!=(int)m_files->count()-1 );
+}
+
+
+void SaverConfig::up()
+{
+ int current = m_files->currentItem();
+ if ( current>0 ) {
+ TQString txt = m_files->currentText();
+ m_files->removeItem( current );
+ m_files->insertItem( txt, current-1 );
+ m_files->setCurrentItem( current-1 );
+ }
+}
+
+
+void SaverConfig::down()
+{
+ int current = m_files->currentItem();
+ if ( current!=-1 && current<(int)m_files->count()-1 ) {
+ TQString txt = m_files->currentText();
+ m_files->removeItem( current );
+ m_files->insertItem( txt, current+1 );
+ m_files->setCurrentItem( current+1 );
+ }
+}
+
+#include "tdepartsaver.moc"
diff --git a/tdescreensaver/tdepartsaver/tdepartsaver.desktop b/tdescreensaver/tdepartsaver/tdepartsaver.desktop
new file mode 100644
index 00000000..82564b1c
--- /dev/null
+++ b/tdescreensaver/tdepartsaver/tdepartsaver.desktop
@@ -0,0 +1,247 @@
+[Desktop Entry]
+X-TDE-Category=Banners & Pictures
+Name=Media Screen Saver
+Name[af]=Media Skerm Bewaarder
+Name[bg]=МедиÑ
+Name[br]=Damanter skramm media
+Name[bs]=Media screen saver
+Name[ca]=Salvapantalles multimèdia
+Name[cs]=Å etÅ™iÄ obrazovky Media
+Name[cy]=Arbedydd Sgrîn efo Cyfryngau
+Name[da]=Mediepauseskærm
+Name[de]=Medien-Bildschirmschoner
+Name[el]=ΠÏοφÏλαξη οθόνης πολυμέσων
+Name[es]=Salvapantallas multimedia
+Name[et]=Meedia-ekraanisäästja
+Name[eu]=Multimedia pantaila babeslea
+Name[fa]=محاÙظ صÙحه نمایش رسانه
+Name[fi]=Media näytönsäästäjä
+Name[fr]=Écran de veille multidocument
+Name[fy]=Media skermbefeiliging
+Name[ga]=Spárálaí Scáileáin Meáin
+Name[gl]=Protector de Pantalla multimédia
+Name[he]=מולטימדיה
+Name[hi]=मीडिया सà¥à¤•à¥à¤°à¥€à¤¨ सेवर
+Name[hu]=Média képernyővédő
+Name[is]=Miðilsskjásvæfa
+Name[it]=Salva schermo multimediale
+Name[ja]=メディアスクリーンセーãƒãƒ¼
+Name[ka]=მულტიმედირეკრáƒáƒœáƒ›áƒ–áƒáƒ’ი
+Name[mk]=Мултимедијален екранÑки чувар
+Name[ms]=Screen Saver Media
+Name[mt]=Screensaver tal-media
+Name[nb]=Media pauseskjerm
+Name[nds]=Medien-Pausschirm
+Name[ne]=मिडिया सà¥à¤•à¥à¤°à¤¿à¤¨ सेभर
+Name[nl]=Media schermbeveiliging
+Name[nn]=Mediepauseskjerm
+Name[nso]=Seboloki sa Pontsho ya Media
+Name[pl]=Multimedia
+Name[pt]=Protector de Ecrã Media
+Name[pt_BR]=Protetor de Tela
+Name[ro]=Protecţie de ecran multimedia
+Name[ru]=ПроÑмотр мультимедиа
+Name[sk]=Å etriÄ obrazovky Media
+Name[sl]=VeÄpredstavnostni ohranjevalnik zaslona
+Name[sr]=Медија чувар екрана
+Name[sr@Latn]=Medija Äuvar ekrana
+Name[sv]=Mediaskärmsläckare
+Name[ta]=ஊடக திரை காபà¯à®ªà®¾à®³à®°à¯
+Name[tg]=Ðз назар гузарондани мултимедиÑ
+Name[tr]=Ekran Koruyucu
+Name[uk]=Мультимедійний зберігач екрана
+Name[ven]=Tshivhulungi tsha tshikirini tsha Media
+Name[vi]=Nêm=Hình ảnh Bảo vệ Màn hình
+Name[zh_CN]=媒体å±å¹•ä¿æŠ¤ç¨‹åº
+Name[zh_TW]=媒體螢幕ä¿è­·ç¨‹å¼
+Name[zu]=Umgcini Wesikrini Somculo
+
+Type=Application
+Exec=tdepartsaver.kss
+Icon=tdescreensaver
+Actions=Setup;InWindow;Root;
+
+[Desktop Action Setup]
+Exec=tdepartsaver.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=tdepartsaver.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=tdepartsaver.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/tdepartsaver/tdepartsaver.h b/tdescreensaver/tdepartsaver/tdepartsaver.h
new file mode 100644
index 00000000..5c53e773
--- /dev/null
+++ b/tdescreensaver/tdepartsaver/tdepartsaver.h
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2001 Stefan Schimanski <1Stein@gmx.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef KPARTSAVER_H_INCLUDED
+#define KPARTSAVER_H_INCLUDED
+
+
+#include <tqwidget.h>
+#include <tqtimer.h>
+#include <tqstring.h>
+#include <tqvaluelist.h>
+#include <tqdialog.h>
+#include <tqpushbutton.h>
+#include <tqradiobutton.h>
+#include <tqspinbox.h>
+#include <tqcheckbox.h>
+#include <tqlabel.h>
+
+#include <klocale.h>
+#include <kapplication.h>
+#include <kdebug.h>
+#include <kconfig.h>
+#include <kfiledialog.h>
+#include <kurl.h>
+#include <tdeparts/part.h>
+#include <ktrader.h>
+#include <kio/jobclasses.h>
+#include <kio/job.h>
+#include <kmimetype.h>
+
+#include <tdescreensaver.h>
+
+#include "configwidget.h"
+
+
+class SaverConfig : public ConfigWidget {
+Q_OBJECT
+
+
+ public:
+ SaverConfig( TQWidget* parent = 0, const char* name = 0 );
+ ~SaverConfig();
+
+ protected slots:
+ void apply();
+ void add();
+ void remove();
+ void select();
+ void up();
+ void down();
+};
+
+
+class KPartSaver : public KScreenSaver {
+Q_OBJECT
+
+
+ public:
+ KPartSaver( WId id=0 );
+ virtual ~KPartSaver();
+
+ public slots:
+ void next( bool random );
+ void queue( KURL url );
+ void timeout();
+ void closeURL();
+
+ protected:
+ struct Medium {
+ KURL url;
+ bool failed;
+ };
+
+ bool openURL( KURL url );
+
+ TQValueList<Medium> m_media;
+ TQTimer *m_timer;
+ KParts::ReadOnlyPart *m_part;
+ int m_current;
+
+ bool m_single;
+ bool m_random;
+ int m_delay;
+ TQStringList m_files;
+ TQLabel *m_back;
+};
+
+#endif
diff --git a/tdescreensaver/xsavers/CMakeLists.txt b/tdescreensaver/xsavers/CMakeLists.txt
new file mode 100644
index 00000000..e636ac18
--- /dev/null
+++ b/tdescreensaver/xsavers/CMakeLists.txt
@@ -0,0 +1,52 @@
+#################################################
+#
+# (C) 2011 Golubev Alexander
+# fatzer2 (AT) gmail.com
+#
+# Improvements and feedback are welcome
+#
+# This file is released under GPL >= 2
+#
+#################################################
+
+include_directories(
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}
+ ${TQT_INCLUDE_DIRS}
+ ${TDE_INCLUDE_DIR}
+)
+
+link_directories(
+ ${TQT_LIBRARY_DIRS}
+)
+
+##### shared source ##########################
+
+set( BASE_SRCS main.cpp demowin.cpp saver.cpp helpers.cpp )
+set( XL_SRCS xlock.cpp )
+
+##### kswarm #################################
+
+tde_add_executable( kswarm.kss AUTOMOC
+ SOURCES swarm.cpp ${BASE_SRCS} ${XL_SRCS}
+ LINK tdeui-shared
+ DESTINATION ${BIN_INSTALL_DIR}
+)
+
+install( FILES KSwarm.desktop DESTINATION ${APPS_INSTALL_DIR}/System/ScreenSavers )
+
+##### kswarm #################################
+
+if( WITH_OPENGL )
+ include_directories( ${OPENGL_INCLUDE_DIRS} )
+ link_directories( ${OPENGL_LIBRARY_DIRS} )
+ tde_add_executable( kspace.kss AUTOMOC
+ SOURCES space.cpp ${BASE_SRCS} ${XL_SRCS}
+ LINK tdeui-shared ${OPENGL_LIBRARIES}
+ DESTINATION ${BIN_INSTALL_DIR}
+ )
+
+ install( FILES KSpace.desktop DESTINATION ${APPS_INSTALL_DIR}/System/ScreenSavers )
+endif( WITH_OPENGL )
+
+
diff --git a/tdescreensaver/xsavers/KSpace.desktop b/tdescreensaver/xsavers/KSpace.desktop
new file mode 100644
index 00000000..40d91dda
--- /dev/null
+++ b/tdescreensaver/xsavers/KSpace.desktop
@@ -0,0 +1,250 @@
+[Desktop Entry]
+Exec=kspace.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=OpenGL Screen Savers
+X-TDE-Type=OpenGL
+Name=Space (GL)
+Name[af]=Spasie (Gl)
+Name[bg]=КоÑÐ¼Ð¾Ñ (GL)
+Name[br]=Egor (GL)
+Name[ca]=Espai (GL)
+Name[cs]=Vesmír (GL)
+Name[cy]=Gofod (GL)
+Name[da]=Rum (GL)
+Name[de]=Weltraum
+Name[el]=Διάστημα (GL)
+Name[es]=Espacio (GL)
+Name[et]=Kosmos (GL)
+Name[eu]=Espazioa (GL)
+Name[fa]=Ùاصله (GL)
+Name[fi]=Avaruus (GL)
+Name[fo]=Rúmd (GL)
+Name[fr]=Espace (GL)
+Name[fy]=Romte (GL)
+Name[gl]=Espazo (GL)
+Name[he]=חלל (GL)
+Name[hi]=अंतरिकà¥à¤· (जीà¤à¤²)
+Name[hu]=Világűr (OpenGL)
+Name[is]=Geimur (GL)
+Name[it]=Spazio (GL)
+Name[ja]=宇宙 (GL)
+Name[ka]=კáƒáƒ¡áƒ›áƒáƒ¡áƒ˜ (GL)
+Name[lt]=Visata (GL)
+Name[lv]=Kosmoss (GL)
+Name[mk]=Ð’Ñелена (GL)
+Name[mt]=Spazju (GL)
+Name[nb]=Rommet (GL)
+Name[nds]=Weltruum (GL)
+Name[ne]=खाली ठाउठ(GL)
+Name[nl]=Ruimte (GL)
+Name[nn]=Rom (GL)
+Name[pl]=Przestrzeń (GL)
+Name[pt]=Espaço (GL)
+Name[pt_BR]=Espaço (GL)
+Name[ro]=Spaţiu (GL)
+Name[ru]=КоÑÐ¼Ð¾Ñ (GL)
+Name[sk]=Vesmír (GL)
+Name[sl]=Vesolje (GL)
+Name[sr]=Свемир (GL)
+Name[sr@Latn]=Svemir (GL)
+Name[sv]=Rymden (GL)
+Name[ta]=வெறà¯à®±à¯(GL)
+Name[tg]=Кайҳон (GL)
+Name[th]=อวà¸à¸²à¸¨ (GL)
+Name[tr]=Uzay (GL)
+Name[uk]=Ð’ÑеÑвіт (GL)
+Name[uz]=Koinot (GL)
+Name[uz@cyrillic]=Коинот (GL)
+Name[ven]=Tshikhala (GL)
+Name[vi]=Vũ trụ (GL)
+Name[xh]=Isithuba (GL)
+Name[zh_CN]=星际空间(GL)
+Name[zh_TW]=太空 (GL)
+Name[zu]=Isikhala (GL)
+
+[Desktop Action Setup]
+Exec=kspace.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kspace.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kspace.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/xsavers/KSwarm.desktop b/tdescreensaver/xsavers/KSwarm.desktop
new file mode 100644
index 00000000..b9ba1b38
--- /dev/null
+++ b/tdescreensaver/xsavers/KSwarm.desktop
@@ -0,0 +1,245 @@
+[Desktop Entry]
+Exec=kswarm.kss
+Icon=tdescreensaver
+Type=Application
+Actions=Setup;InWindow;Root;
+X-TDE-Category=Flying Things
+Name=Swarm
+Name[af]=Swerm
+Name[bg]=РоÑк
+Name[br]=Hed-gwenan
+Name[bs]=Roj
+Name[ca]=Eixam
+Name[cs]=Roj
+Name[cy]=Haid
+Name[da]=Sværm
+Name[de]=Schwarm
+Name[el]=Σμήνος
+Name[es]=Enjambre
+Name[et]=Sülem
+Name[eu]=Erlekumea
+Name[fa]=ازدحام
+Name[fi]=Hyönteiset
+Name[fr]=Fourmillement
+Name[fy]=Swaarm
+Name[gl]=Enxame
+Name[he]=נחיל דבורי×
+Name[hi]=मतà¥à¤¸à¥à¤¯ गà¥à¤šà¥à¤›
+Name[hu]=Méhraj
+Name[is]=Sveimur
+Name[it]=Sciame
+Name[ja]=スワーム
+Name[ka]=ფუტკრის ნáƒáƒ§áƒáƒ áƒ˜
+Name[lt]=SpieÄius
+Name[lv]=Spiets
+Name[mk]=Рој
+Name[ms]=Paya
+Name[mt]=Ferħ naħal
+Name[nb]=Sverm
+Name[ne]=सà¥à¤µà¤¾à¤°à¥à¤®
+Name[nl]=Zwermen
+Name[nn]=Sverm
+Name[pl]=Rój
+Name[pt]=Enxame
+Name[pt_BR]=Enxame
+Name[ro]=Roi
+Name[ru]=Пчелиный рой
+Name[sl]=Roj
+Name[sr]=Рој
+Name[sr@Latn]=Roj
+Name[sv]=Svärm
+Name[ta]=பà¯à®¯à®²à¯
+Name[tg]=Оилаи занбурони аÑал
+Name[th]=หนอนผึ้ง
+Name[tr]=Sürü
+Name[uk]=Рій
+Name[ven]=Gogo
+Name[vi]=Bầy ong
+Name[xh]=Unyuko usebenzisa imilenze neengalo
+Name[zh_CN]=蜂群
+Name[zh_TW]=蜂群
+
+[Desktop Action Setup]
+Exec=kswarm.kss -setup
+Name=Setup...
+Name[af]=Opstelling...
+Name[bg]=ÐаÑтройки...
+Name[br]=Kefluniadur ...
+Name[bs]=Postavke...
+Name[ca]=Arranjament...
+Name[cs]=Nastavení...
+Name[cy]=Gosod ...
+Name[da]=Opsætning...
+Name[de]=Einrichtung ...
+Name[el]=ΡÏθμιση...
+Name[eo]=Agordo...
+Name[es]=Configuración...
+Name[et]=Seadistamine...
+Name[eu]=Konfiguratu...
+Name[fa]=برپایی...
+Name[fi]=Asetukset...
+Name[fo]=Uppseting...
+Name[fr]=Configuration...
+Name[fy]=Opset...
+Name[ga]=Cumraigh...
+Name[gl]=Configuración...
+Name[he]=הגדרות...
+Name[hi]=सेटअप...
+Name[hu]=Beállítás...
+Name[is]=Stillingar...
+Name[it]=Impostazioni...
+Name[ja]=設定...
+Name[ka]=გáƒáƒ›áƒáƒ áƒ—ვáƒ...
+Name[lt]=SÄ…ranka ...
+Name[lv]=UzstÄdÄ«Å¡ana...
+Name[mk]=ПоÑтавување...
+Name[ms]=Setkan...
+Name[mt]=Konfigurazzjoni...
+Name[nb]=Innstillinger …
+Name[nds]=Instellen...
+Name[ne]=सेटअप...
+Name[nl]=Instellingen...
+Name[nn]=Oppsett …
+Name[nso]=Beakanya...
+Name[pa]=ਸੈਟਅੱਪ...
+Name[pl]=Ustawienia...
+Name[pt]=Configurar...
+Name[pt_BR]=Configurar...
+Name[ro]=Setează...
+Name[ru]=ÐаÑтройка...
+Name[rw]=Iboneza...
+Name[sk]=Nastavenie...
+Name[sl]=Nastavi ...
+Name[sr]=ПодеÑи...
+Name[sr@Latn]=Podesi...
+Name[sv]=Inställningar...
+Name[ta]=அமைபà¯à®ªà¯...
+Name[tg]=БарпоÑозӣ...
+Name[th]=ติดตั้ง...
+Name[tr]=Kurulum...
+Name[uk]=Ð’Ñтановити...
+Name[uz]=Oʻrnatish
+Name[uz@cyrillic]=Ўрнатиш
+Name[ven]=Vhekanya...
+Name[vi]=Thiết lập...
+Name[xh]=Iyacwangciswa...
+Name[zh_CN]=设置...
+Name[zh_TW]=設定...
+Name[zu]=Iyalungiselela...
+Icon=tdescreensaver
+
+[Desktop Action InWindow]
+Exec=kswarm.kss -window-id %w
+Name=Display in Specified Window
+Name[bg]=Стартиране в избран прозорец
+Name[br]=Diskwel er prenestr spisaet
+Name[bs]=Prikaži u navedenom prozoru
+Name[ca]=Mostra a la finestra especificada
+Name[cs]=Zobrazit v urÄeném oknÄ›
+Name[cy]=Dangos mewn Ffenestr Benodol
+Name[da]=Visning i angivet vindue
+Name[de]=In bestimmten Fenster anzeigen
+Name[el]=ΠÏοβολή στο καθοÏισμένο παÏάθυÏο
+Name[eo]=Montri en indikita fenestro
+Name[es]=Mostrar en la ventana especificada
+Name[et]=Määratud aknas näitamine
+Name[eu]=Bistaratu zehaztutako lehioan
+Name[fa]=نمایش در پنجرۀ مشخص‌شده
+Name[fi]=Näytä määrätyssä ikkunassa
+Name[fr]=Affichage dans la fenêtre spécifiée
+Name[fy]=Werjefte yn in definiearre finster
+Name[ga]=Taispeáin san Fhuinneog Sonraithe
+Name[gl]=Mostrar na fiestra indicada
+Name[he]=הצג בחלון המצוין
+Name[hi]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a megadott ablakban
+Name[is]=Birta í völdum glugga
+Name[it]=Mostra nella finestra specificata
+Name[ja]=特定ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã§è¡¨ç¤º
+Name[ka]=ჩვენებრმითითებულ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti nurodytame lange
+Name[mk]=Прикажи во наведениот прозорец
+Name[ms]=Papar dalam Tetingkap Yang Dinyatakan
+Name[nb]=Vis i angitt vindu
+Name[nds]=In utsöcht Finster wiesen
+Name[ne]=निरà¥à¤¦à¤¿à¤·à¥à¤Ÿ सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in een opgegeven venster
+Name[nn]=Vis i oppgjeve vindauge
+Name[pa]=ਦੱਸੇ à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w zadanym oknie
+Name[pt]=Mostrar na Janela Indicada
+Name[pt_BR]=Mostrar em janela especificada
+Name[ro]=Afişează în fereastra specificată
+Name[ru]=Показывать в указанном окне
+Name[rw]=Kwerekana mu Idirishya Ryihariye
+Name[sk]=Zobraziť v zadanom okne
+Name[sl]=Prikaz v doloÄenemu oknu
+Name[sr]=Прикажи у наведеном прозору
+Name[sr@Latn]=Prikaži u navedenom prozoru
+Name[sv]=Visa i angivet fönster
+Name[ta]=கà¯à®±à®¿à®¤à¯à®¤ சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи нишондода намоиш намоед
+Name[tr]=Belirtilen Pencerede Göster
+Name[uk]=Відобразити у вказаному вікні
+Name[vi]=Hiển thị trong Cá»­a sổ Äã định
+Name[zh_CN]=在指定的窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在指定的視窗中顯示
+NoDisplay=true
+
+[Desktop Action Root]
+Exec=kswarm.kss -root
+Name=Display in Root Window
+Name[bg]=Стартиране в Ð³Ð»Ð°Ð²Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð·Ð¾Ñ€ÐµÑ†
+Name[br]=Diskwel er prenestr gwrizienn
+Name[bs]=Prikaži u korijenskom prozoru
+Name[ca]=Mostra a la finestra arrel
+Name[cs]=Zobrazit na pozadí plochy
+Name[cy]=Dangos mewn Ffenestr Wraidd
+Name[da]=Visning i root-vindue
+Name[de]=In Hintergrundfenster anzeigen
+Name[el]=ΠÏοβολή στο βασικό παÏάθυÏο
+Name[eo]=Montri en radika fenestro
+Name[es]=Mostrar en la ventana raíz
+Name[et]=Juuraknas näitamine
+Name[eu]=Bistaratu erro lehioan
+Name[fa]=نمایش در پنجرۀ ریشه
+Name[fi]=Näytä juuri-ikkunassa
+Name[fr]=Affichage dans la fenêtre racine
+Name[fy]=Werjefte yn haadfinster
+Name[ga]=Taispeáin sa bhFréamhfhuinneog
+Name[gl]=Mostrar na fiestra raiz
+Name[he]=הצג בחלון השורש
+Name[hi]=रूट विंडो में पà¥à¤°à¤¦à¤°à¥à¤¶à¤¿à¤¤ करें
+Name[hu]=Megjelenítés a gyökérablakban
+Name[is]=Birta í rótarglugganum
+Name[it]=Mostra sullo sfondo
+Name[ja]=ルートウィンドウã§è¡¨ç¤º
+Name[ka]=ჩვენებრძირითáƒáƒ“ ფáƒáƒœáƒ¯áƒáƒ áƒáƒ¨áƒ˜
+Name[lt]=Rodyti root lange
+Name[mk]=Прикажи во коренÑкиот прозорец
+Name[ms]=Papar dalam Tetingkap Root
+Name[nb]=Vis i root-vindu
+Name[nds]=In Hööftfinster wiesen
+Name[ne]=मूल सञà¥à¤à¥à¤¯à¤¾à¤²à¤®à¤¾ पà¥à¤°à¤¦à¤°à¥à¤¶à¤¨
+Name[nl]=Weergeven in hoofdvenster
+Name[nn]=Vis i rotvindauget
+Name[pa]=Root à¨à¨°à©‹à¨–ੇ ਵਿੱਚ ਵੇਖਾਓ
+Name[pl]=Wyświetl w oknie głównym
+Name[pt]=Mostrar na Janela de Fundo
+Name[pt_BR]=Mostrar na janela raiz
+Name[ro]=Afişează în fereastra rădăcină
+Name[ru]=Показывать в корневом окне
+Name[rw]=Kwerekana mu Idirishya Umuzi
+Name[sk]=Zobraziť v koreňovom okne
+Name[sl]=Prikaz v korenskem oknu
+Name[sr]=Прикажи у главном (root) прозору
+Name[sr@Latn]=Prikaži u glavnom (root) prozoru
+Name[sv]=Visa i rotfönstret
+Name[ta]=ஆரமà¯à®ª சாளரதà¯à®¤à®¿à®²à¯ காடà¯à®Ÿà¯
+Name[tg]=Дар тирезаи решагӣ намоиш намоед
+Name[tr]=Kök Pencerede Göster
+Name[uk]=Відобразити в кореневому вікні
+Name[vi]=Hiển thị trong Cửa sổ Gốc
+Name[zh_CN]=在根窗å£ä¸­æ˜¾ç¤º
+Name[zh_TW]=在根視窗中顯示
+NoDisplay=true
diff --git a/tdescreensaver/xsavers/Makefile.am b/tdescreensaver/xsavers/Makefile.am
new file mode 100644
index 00000000..6510fd32
--- /dev/null
+++ b/tdescreensaver/xsavers/Makefile.am
@@ -0,0 +1,36 @@
+AM_CPPFLAGS = -UQT_NO_ASCII_CAST -DQT_CLEAN_NAMESPACE
+
+INCLUDES = $(all_includes) $(GLINC)
+AM_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(LIB_QT) -lDCOP $(LIB_TDECORE) $(LIB_TDEUI) -ltdefx $(LIB_KIO) -ltdetexteditor
+
+if COMPILE_GL_XSAVERS
+GL_XSAVERS=kspace.kss
+endif
+
+bin_PROGRAMS = kswarm.kss $(GL_XSAVERS)
+
+BASE_SRCS = main.cpp demowin.cpp saver.cpp helpers.cpp
+
+XS_SRCS = xs_colors.c xs_hsv.c xs_visual.c
+XL_SRCS = xlock.cpp
+
+kswarm_kss_SOURCES = swarm.cpp $(BASE_SRCS) $(XL_SRCS)
+kswarm_kss_LDADD = $(LIB_TDEUI) -lm
+
+kspace_kss_SOURCES = space.cpp $(BASE_SRCS) $(XL_SRCS)
+kspace_kss_LDADD = $(LIB_TDEUI) $(GLLIB) -lm
+
+METASOURCES = AUTO
+
+noinst_HEADERS = saver.h demowin.h xlock.h swarm.h space.h \
+ xlockmore.h mode.h helpers.h \
+ xs_colors.h xs_hsv.h xs_yarandom.h xs_utils.h \
+ xs_visual.h
+
+########## Meta objects ##########
+
+desktop_DATA = KSpace.desktop KSwarm.desktop
+desktopdir = $(kde_appsdir)/System/ScreenSavers
+
+EXTRA_DIST = $(desktop_DATA)
+
diff --git a/tdescreensaver/xsavers/demowin.cpp b/tdescreensaver/xsavers/demowin.cpp
new file mode 100644
index 00000000..893885be
--- /dev/null
+++ b/tdescreensaver/xsavers/demowin.cpp
@@ -0,0 +1,11 @@
+//-----------------------------------------------------------------------------
+//
+// Screen savers for KDE
+//
+// Copyright (c) Martin R. Jones 1999
+//
+
+#include "demowin.h"
+#include "demowin.moc"
+
+
diff --git a/tdescreensaver/xsavers/demowin.h b/tdescreensaver/xsavers/demowin.h
new file mode 100644
index 00000000..6a09b7c3
--- /dev/null
+++ b/tdescreensaver/xsavers/demowin.h
@@ -0,0 +1,45 @@
+//-----------------------------------------------------------------------------
+//
+// Screen savers for KDE
+//
+// Copyright (c) Martin R. Jones 1999
+//
+
+#ifndef __DEMOWIN_H__
+#define __DEMOWIN_H__
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <klocale.h>
+#include <kconfig.h>
+#include <kstandarddirs.h>
+#include <kapplication.h>
+
+//----------------------------------------------------------------------------
+
+class DemoWindow : public TQWidget
+{
+ Q_OBJECT
+
+public:
+ DemoWindow() : TQWidget()
+ {
+ setFixedSize(600, 420);
+ }
+
+protected:
+ virtual void keyPressEvent(TQKeyEvent *e)
+ {
+ if (e->ascii() == 'q')
+ {
+ kapp->quit();
+ }
+ }
+};
+
+#endif
+
diff --git a/tdescreensaver/xsavers/helpers.cpp b/tdescreensaver/xsavers/helpers.cpp
new file mode 100644
index 00000000..e55cf98c
--- /dev/null
+++ b/tdescreensaver/xsavers/helpers.cpp
@@ -0,0 +1,38 @@
+#include "helpers.h"
+
+#include <kapplication.h>
+
+void min_width(TQWidget *w) {
+ w->setMinimumWidth(w->sizeHint().width());
+}
+
+void fixed_width(TQWidget *w) {
+ w->setFixedWidth(w->sizeHint().width());
+}
+
+void min_height(TQWidget *w) {
+ w->setMinimumHeight(w->sizeHint().height());
+}
+
+void fixed_height(TQWidget *w) {
+ w->setFixedHeight(w->sizeHint().height());
+}
+
+void min_size(TQWidget *w) {
+ w->setMinimumSize(w->sizeHint());
+}
+
+void fixed_size(TQWidget *w) {
+ w->setFixedSize(w->sizeHint());
+}
+
+TDEConfig *klock_config()
+{
+ TQString name( kapp->argv()[0] );
+ int slash = name.findRev( '/' );
+ if ( slash )
+ name = name.mid( slash+1 );
+
+ return new TDEConfig( name + "rc" );
+}
+
diff --git a/tdescreensaver/xsavers/helpers.h b/tdescreensaver/xsavers/helpers.h
new file mode 100644
index 00000000..e4125709
--- /dev/null
+++ b/tdescreensaver/xsavers/helpers.h
@@ -0,0 +1,23 @@
+#ifndef __HELPERS__H__
+#define __HELPERS__H__
+
+#include <tqwidget.h>
+#include <kconfig.h>
+
+void min_width(TQWidget *);
+void fixed_width(TQWidget *);
+void min_height(TQWidget *);
+void fixed_height(TQWidget *);
+void min_size(TQWidget *);
+void fixed_size(TQWidget *);
+
+/*
+ * Use this to get a TDEConfig object that uses a reasonable config filename.
+ * TDEGlobal::config() will use the klockrc config file.
+ *
+ * Caller must delete the object when finished.
+ */
+TDEConfig *klock_config();
+
+#endif
+
diff --git a/tdescreensaver/xsavers/main.cpp b/tdescreensaver/xsavers/main.cpp
new file mode 100644
index 00000000..d7f76dcd
--- /dev/null
+++ b/tdescreensaver/xsavers/main.cpp
@@ -0,0 +1,108 @@
+//-----------------------------------------------------------------------------
+//
+// Screen savers for KDE
+//
+// Copyright (c) Martin R. Jones 1999
+//
+
+#include <config.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+
+#include <tqcolor.h>
+
+#include <klocale.h>
+#include <kconfig.h>
+#include <kstandarddirs.h>
+#include <kdebug.h>
+#include <kapplication.h>
+#include <kcmdlineargs.h>
+#include <kcrash.h>
+
+#include "demowin.h"
+#include "saver.h"
+
+static const char appName[] = "klock";
+static const char description[] = I18N_NOOP("TDE Screen Lock/Saver");
+static const char version[] = "2.0.0";
+
+static const KCmdLineOptions options[] =
+{
+ { "setup", I18N_NOOP("Setup screen saver"), 0 },
+ { "window-id wid", I18N_NOOP("Run in the specified XWindow"), 0 },
+ { "root", I18N_NOOP("Run in the root XWindow"), 0 },
+ { "demo", I18N_NOOP("Start screen saver in demo mode"), "default"},
+ KCmdLineLastOption
+};
+
+static void crashHandler( int /*sig*/ )
+{
+#ifdef SIGABRT
+ signal ( SIGABRT, SIG_DFL );
+#endif
+ abort();
+}
+
+//----------------------------------------------------------------------------
+
+int main(int argc, char *argv[])
+{
+ TDECmdLineArgs::init(argc, argv, appName, I18N_NOOP("KLock"), description, version);
+
+ TDECmdLineArgs::addCmdLineOptions(options);
+
+ TDEApplication app;
+
+ KCrash::setCrashHandler( crashHandler );
+
+ DemoWindow *demoWidget = 0;
+ Window saveWin = 0;
+
+ TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
+
+ if (args->isSet("setup"))
+ {
+ setupScreenSaver();
+ exit(0);
+ }
+
+ if (args->isSet("window-id"))
+ {
+ saveWin = atol(args->getOption("window-id"));
+ }
+
+ if (args->isSet("root"))
+ {
+ saveWin = TQApplication::desktop()->handle();
+ }
+
+ if (args->isSet("demo"))
+ {
+ saveWin = 0;
+ }
+
+ if (saveWin == 0)
+ {
+ demoWidget = new DemoWindow();
+ demoWidget->setBackgroundMode(TQWidget::NoBackground);
+// demoWidget->setBackgroundColor(TQt::black);
+ demoWidget->show();
+ saveWin = demoWidget->winId();
+ app.setMainWidget(demoWidget);
+ app.processEvents();
+ }
+
+ startScreenSaver(saveWin);
+ app.exec();
+ stopScreenSaver();
+
+ if (demoWidget)
+ {
+ delete demoWidget;
+ }
+
+ return 0;
+}
+
diff --git a/tdescreensaver/xsavers/mode.h b/tdescreensaver/xsavers/mode.h
new file mode 100644
index 00000000..c2bc7f1d
--- /dev/null
+++ b/tdescreensaver/xsavers/mode.h
@@ -0,0 +1,692 @@
+
+#ifndef __XLOCK_MODE_H__
+#define __XLOCK_MODE_H__
+
+/*-
+ * @(#)mode.h 4.00 97/01/01 xlockmore
+ *
+ * mode.h - mode management for xlock, the X Window System lockscreen.
+ *
+ * Copyright (c) 1991 by Patrick J. Naughton.
+ *
+ * See xlock.c for copying information.
+ *
+ * Revision History:
+ *
+ * Changes of David Bagley (bagleyd@bigfoot.com)
+ * 18-Mar-96: Ron Hitchens <ron@idiom.com>
+ * Extensive revision to define new data types for
+ * the new mode calling scheme.
+ * 02-Jun-95: Extracted out of resource.c.
+ *
+ */
+
+/*
+ * Declare external interface routines for supported screen savers.
+ */
+
+/* -------------------------------------------------------------------- */
+
+struct LockStruct_s;
+struct ModeInfo_s;
+
+typedef void (ModeHook) (struct ModeInfo_s *);
+typedef void (HookProc) (struct LockStruct_s *, struct ModeInfo_s *);
+
+typedef struct LockStruct_s {
+ char *cmdline_arg; /* mode name */
+ ModeHook *init_hook; /* func to init a mode */
+ ModeHook *callback_hook; /* func to run (tick) a mode */
+ ModeHook *release_hook; /* func to shutdown a mode */
+ ModeHook *refresh_hook; /* tells mode to repaint */
+ ModeHook *change_hook; /* user wants mode to change */
+ ModeHook *unused_hook; /* for future expansion */
+ ModeSpecOpt *msopt; /* this mode's def resources */
+ int def_delay; /* default delay for mode */
+ int def_batchcount;
+ int def_cycles;
+ int def_size;
+ float def_saturation;
+ char *desc; /* text description of mode */
+ unsigned int flags; /* state flags for this mode */
+ void *userdata; /* for use by the mode */
+} LockStruct;
+
+#define LS_FLAG_INITED 1
+
+typedef struct {
+ Display *display; /* handle to X display */
+ Screen *screenptr; /* ptr to screen info */
+ int screen; /* number of current screen */
+ int real_screen; /* for debugging */
+ int num_screens; /* number screens locked */
+ int max_screens; /* max # active screens */
+ Window window; /* handle to current window */
+ int win_width; /* width of current window */
+ int win_height; /* height of current window */
+ int win_depth; /* depth of current window */
+ Visual *visual; /* visual of current window */
+ Colormap colormap; /* default colormap of current window */
+ unsigned long black_pixel; /* pixel value for black */
+ unsigned long white_pixel; /* pixel value for white */
+ unsigned int flags; /* xlock window flags */
+ float delta3d;
+} WindowInfo;
+
+#define WI_FLAG_INFO_INITTED 0x001 /* private state flag */
+#define WI_FLAG_ICONIC 0x002
+#define WI_FLAG_MONO 0x004
+#define WI_FLAG_INWINDOW 0x008
+#define WI_FLAG_INROOT 0x010
+#define WI_FLAG_NOLOCK 0x020
+#define WI_FLAG_INSTALL 0x040
+#define WI_FLAG_DEBUG 0x080
+#define WI_FLAG_USE3D 0x100
+#define WI_FLAG_VERBOSE 0x200
+#define WI_FLAG_FULLRANDOM 0x400
+#define WI_FLAG_WIREFRAME 0x800
+#define WI_FLAG_JUST_INITTED 0x1000 /* private state flag */
+
+typedef struct {
+ long pause; /* output, set by mode */
+ long delay; /* inputs, current settings */
+ long batchcount;
+ long cycles;
+ long size;
+ float saturation;
+} RunInfo;
+
+typedef struct ModeInfo_s {
+ WindowInfo windowinfo;
+ perscreen *screeninfo;
+ RunInfo runinfo;
+ struct LockStruct_s *lockstruct;
+} ModeInfo;
+
+/* -------------------------------------------------------------------- */
+
+/*
+ * These are the public interfaces that a mode should use to obtain
+ * information about the display and other environmental parameters.
+ * Everything hangs off a ModeInfo pointer. A mode should NOT cache
+ * a ModeInfo pointer, the struct it points to is volatile. The mode
+ * can safely make a copy of the data it points to, however. But it
+ * is recommended the mode make use of the passed-in pointer and pass
+ * it along to functions it calls.
+ * Use these macros, don't look at the fields directly. The insides
+ * of the ModeInfo struct are certain to change in the future.
+ */
+
+#define MODE_IS_INITED(ls) ((ls)->flags & LS_FLAG_INITED)
+#define MODE_NOT_INITED(ls) ( ! MODE_IS_INITED(ls))
+
+#define MI_DISPLAY(mi) ((mi)->windowinfo.display)
+#define MI_SCREEN(mi) ((mi)->windowinfo.screen)
+#define MI_SCREENPTR(mi) ((mi)->windowinfo.screenptr)
+#define MI_REAL_SCREEN(mi) ((mi)->windowinfo.real_screen)
+#define MI_NUM_SCREENS(mi) ((mi)->windowinfo.num_screens)
+#define MI_MAX_SCREENS(mi) ((mi)->windowinfo.max_screens)
+#define MI_WINDOW(mi) ((mi)->windowinfo.window)
+#define MI_WIN_WIDTH(mi) ((mi)->windowinfo.win_width)
+#define MI_WIN_HEIGHT(mi) ((mi)->windowinfo.win_height)
+#define MI_WIN_DEPTH(mi) ((mi)->windowinfo.win_depth)
+#define MI_VISUAL(mi) ((mi)->windowinfo.visual)
+#define MI_COLORMAP(mi) ((mi)->windowinfo.colormap)
+#define MI_WIN_BLACK_PIXEL(mi) ((mi)->windowinfo.black_pixel)
+#define MI_WIN_WHITE_PIXEL(mi) ((mi)->windowinfo.white_pixel)
+#define MI_DELTA3D(mi) ((mi)->windowinfo.delta3d)
+#define MI_WIN_FLAGS(mi) ((mi)->windowinfo.flags)
+#define MI_WIN_SET_FLAG_STATE(mi,f,bool) ((mi)->windowinfo.flags = \
+ (bool) ? (mi)->windowinfo.flags | f \
+ : (mi)->windowinfo.flags & ~(f))
+#define MI_WIN_FLAG_IS_SET(mi,f) ((mi)->windowinfo.flags & f)
+#define MI_WIN_FLAG_NOT_SET(mi,f) ( ! MI_WIN_FLAG_IS_SET(mi,f))
+#define MI_WIN_IS_ICONIC(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_ICONIC))
+#define MI_WIN_IS_MONO(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_MONO))
+#define MI_WIN_IS_INWINDOW(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INWINDOW))
+#define MI_WIN_IS_INROOT(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INROOT))
+#define MI_WIN_IS_NOLOCK(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_NOLOCK))
+#define MI_WIN_IS_INSTALL(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_INSTALL))
+#define MI_WIN_IS_DEBUG(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_DEBUG))
+#define MI_WIN_IS_USE3D(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_USE3D))
+#define MI_WIN_IS_VERBOSE(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_VERBOSE))
+#define MI_WIN_IS_FULLRANDOM(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_FULLRANDOM))
+#define MI_WIN_IS_WIREFRAME(mi) (MI_WIN_FLAG_IS_SET (mi, WI_FLAG_WIREFRAME))
+
+#define MI_PERSCREEN(mi) ((mi)->screeninfo)
+#define MI_GC(mi) ((mi)->screeninfo->gc)
+#define MI_NPIXELS(mi) ((mi)->screeninfo->npixels)
+#define MI_CMAP(mi) ((mi)->screeninfo->cmap)
+#define MI_PIXELS(mi) ((mi)->screeninfo->pixels)
+#define MI_PIXEL(mi,n) ((mi)->screeninfo->pixels[n])
+
+/* are these of interest to modes? */
+#define MI_BG_COLOR(mi) ((mi)->screeninfo->bgcol)
+#define MI_FG_COLOR(mi) ((mi)->screeninfo->fgcol)
+#define MI_NONE_COLOR(mi) ((mi)->screeninfo->nonecol) /* -install */
+#define MI_RIGHT_COLOR(mi) ((mi)->screeninfo->rightcol)
+#define MI_LEFT_COLOR(mi) ((mi)->screeninfo->leftcol)
+
+#define MI_PAUSE(mi) ((mi)->runinfo.pause)
+#define MI_DELAY(mi) ((mi)->runinfo.delay)
+#define MI_BATCHCOUNT(mi) ((mi)->runinfo.batchcount)
+#define MI_CYCLES(mi) ((mi)->runinfo.cycles)
+#define MI_SIZE(mi) ((mi)->runinfo.size)
+#define MI_SATURATION(mi) ((mi)->runinfo.saturation)
+
+#define MI_LOCKSTRUCT(mi) ((mi)->lockstruct)
+#define MI_DEFDELAY(mi) ((mi)->lockstruct->def_delay)
+#define MI_DEFBATCHCOUNT(mi) ((mi)->lockstruct->def_batchcount)
+#define MI_DEFCYCLES(mi) ((mi)->lockstruct->def_cycles)
+#define MI_DEFSIZE(mi) ((mi)->lockstruct->def_size)
+#define MI_DEFSATURATION(mi) ((mi)->lockstruct->def_saturation)
+
+#define MI_NAME(mi) ((mi)->lockstruct->cmdline_arg)
+#define MI_DESC(mi) ((mi)->lockstruct->desc)
+#define MI_USERDATA(mi) ((mi)->lockstruct->userdata)
+
+/* -------------------------------------------------------------------- */
+
+extern HookProc call_init_hook;
+extern HookProc call_callback_hook;
+extern HookProc call_release_hook;
+extern HookProc call_refresh_hook;
+extern HookProc call_change_hook;
+
+extern void set_default_mode(LockStruct *);
+extern void release_last_mode(ModeInfo *);
+
+/* -------------------------------------------------------------------- */
+
+extern ModeHook init_ant;
+extern ModeHook draw_ant;
+extern ModeHook release_ant;
+extern ModeHook refresh_ant;
+extern ModeSpecOpt ant_opts;
+
+extern ModeHook init_ball;
+extern ModeHook draw_ball;
+extern ModeHook release_ball;
+extern ModeHook refresh_ball;
+extern ModeSpecOpt ball_opts;
+
+extern ModeHook init_bat;
+extern ModeHook draw_bat;
+extern ModeHook release_bat;
+extern ModeHook refresh_bat;
+extern ModeSpecOpt bat_opts;
+
+extern ModeHook init_blot;
+extern ModeHook draw_blot;
+extern ModeHook release_blot;
+extern ModeHook refresh_blot;
+extern ModeSpecOpt blot_opts;
+
+extern ModeHook init_bouboule;
+extern ModeHook draw_bouboule;
+extern ModeHook release_bouboule;
+extern ModeHook refresh_bouboule;
+extern ModeSpecOpt bouboule_opts;
+
+extern ModeHook init_bounce;
+extern ModeHook draw_bounce;
+extern ModeHook release_bounce;
+extern ModeHook refresh_bounce;
+extern ModeSpecOpt bounce_opts;
+
+extern ModeHook init_braid;
+extern ModeHook draw_braid;
+extern ModeHook release_braid;
+extern ModeHook refresh_braid;
+extern ModeSpecOpt braid_opts;
+
+extern ModeHook init_bug;
+extern ModeHook draw_bug;
+extern ModeHook release_bug;
+extern ModeHook refresh_bug;
+extern ModeSpecOpt bug_opts;
+
+extern ModeHook init_clock;
+extern ModeHook draw_clock;
+extern ModeHook release_clock;
+extern ModeHook refresh_clock;
+extern ModeSpecOpt clock_opts;
+
+extern ModeHook init_daisy;
+extern ModeHook draw_daisy;
+extern ModeHook release_daisy;
+extern ModeHook refresh_daisy;
+extern ModeSpecOpt daisy_opts;
+
+extern ModeHook init_dclock;
+extern ModeHook draw_dclock;
+extern ModeHook release_dclock;
+extern ModeHook refresh_dclock;
+extern ModeSpecOpt dclock_opts;
+
+extern ModeHook init_demon;
+extern ModeHook draw_demon;
+extern ModeHook release_demon;
+extern ModeHook refresh_demon;
+extern ModeSpecOpt demon_opts;
+
+extern ModeHook init_drift;
+extern ModeHook draw_drift;
+extern ModeHook release_drift;
+extern ModeHook refresh_drift;
+extern ModeSpecOpt drift_opts;
+
+extern ModeHook init_eyes;
+extern ModeHook draw_eyes;
+extern ModeHook release_eyes;
+extern ModeHook refresh_eyes;
+extern ModeSpecOpt eyes_opts;
+
+extern ModeHook init_flag;
+extern ModeHook draw_flag;
+extern ModeHook release_flag;
+extern ModeHook refresh_flag;
+extern ModeSpecOpt flag_opts;
+
+extern ModeHook init_flame;
+extern ModeHook draw_flame;
+extern ModeHook release_flame;
+extern ModeHook refresh_flame;
+extern ModeSpecOpt flame_opts;
+
+extern ModeHook init_forest;
+extern ModeHook draw_forest;
+extern ModeHook release_forest;
+extern ModeHook refresh_forest;
+extern ModeHook refresh_forest;
+extern ModeSpecOpt forest_opts;
+
+extern ModeHook init_fract;
+extern ModeHook draw_fract;
+extern ModeHook release_fract;
+extern ModeHook refresh_fract;
+extern ModeSpecOpt fract_opts;
+
+extern ModeHook init_galaxy;
+extern ModeHook draw_galaxy;
+extern ModeHook release_galaxy;
+extern ModeHook refresh_galaxy;
+extern ModeSpecOpt galaxy_opts;
+
+extern ModeHook init_geometry;
+extern ModeHook draw_geometry;
+extern ModeHook release_geometry;
+extern ModeHook refresh_geometry;
+extern ModeSpecOpt geometry_opts;
+
+extern ModeHook init_grav;
+extern ModeHook draw_grav;
+extern ModeHook release_grav;
+extern ModeHook refresh_grav;
+extern ModeSpecOpt grav_opts;
+
+extern ModeHook init_helix;
+extern ModeHook draw_helix;
+extern ModeHook release_helix;
+extern ModeHook refresh_helix;
+extern ModeSpecOpt helix_opts;
+
+extern ModeHook init_hop;
+extern ModeHook draw_hop;
+extern ModeHook release_hop;
+extern ModeHook refresh_hop;
+extern ModeSpecOpt hop_opts;
+
+extern ModeHook init_hyper;
+extern ModeHook draw_hyper;
+extern ModeHook release_hyper;
+extern ModeHook refresh_hyper;
+extern ModeSpecOpt hyper_opts;
+
+extern ModeHook init_ico;
+extern ModeHook draw_ico;
+extern ModeHook release_ico;
+extern ModeHook refresh_ico;
+extern ModeHook change_ico;
+extern ModeSpecOpt ico_opts;
+
+extern ModeHook init_ifs;
+extern ModeHook draw_ifs;
+extern ModeHook release_ifs;
+extern ModeSpecOpt ifs_opts;
+
+extern ModeHook init_image;
+extern ModeHook draw_image;
+extern ModeHook release_image;
+extern ModeHook refresh_image;
+extern ModeSpecOpt image_opts;
+
+extern ModeHook init_julia;
+extern ModeHook draw_julia;
+extern ModeHook release_julia;
+extern ModeHook refresh_julia;
+extern ModeSpecOpt julia_opts;
+
+extern ModeHook init_kaleid;
+extern ModeHook draw_kaleid;
+extern ModeHook release_kaleid;
+extern ModeHook refresh_kaleid;
+extern ModeSpecOpt kaleid_opts;
+
+extern ModeHook init_laser;
+extern ModeHook draw_laser;
+extern ModeHook release_laser;
+extern ModeHook refresh_laser;
+extern ModeSpecOpt laser_opts;
+
+extern ModeHook init_life;
+extern ModeHook draw_life;
+extern ModeHook release_life;
+extern ModeHook refresh_life;
+extern ModeHook change_life;
+extern ModeSpecOpt life_opts;
+
+extern ModeHook init_life1d;
+extern ModeHook draw_life1d;
+extern ModeHook release_life1d;
+extern ModeHook refresh_life1d;
+extern ModeSpecOpt life1d_opts;
+
+extern ModeHook init_life3d;
+extern ModeHook draw_life3d;
+extern ModeHook release_life3d;
+extern ModeHook refresh_life3d;
+extern ModeHook change_life3d;
+extern ModeSpecOpt life3d_opts;
+
+extern ModeHook init_lightning;
+extern ModeHook draw_lightning;
+extern ModeHook release_lightning;
+extern ModeHook refresh_lightning;
+extern ModeSpecOpt lightning_opts;
+
+extern ModeHook init_lisa;
+extern ModeHook draw_lisa;
+extern ModeHook release_lisa;
+extern ModeHook refresh_lisa;
+extern ModeHook change_lisa;
+extern ModeSpecOpt lisa_opts;
+
+extern ModeHook init_lissie;
+extern ModeHook draw_lissie;
+extern ModeHook release_lissie;
+extern ModeHook refresh_lissie;
+extern ModeSpecOpt lissie_opts;
+
+extern ModeHook init_loop;
+extern ModeHook draw_loop;
+extern ModeHook release_loop;
+extern ModeHook refresh_loop;
+extern ModeSpecOpt loop_opts;
+
+extern ModeHook init_marquee;
+extern ModeHook draw_marquee;
+extern ModeHook release_marquee;
+extern ModeHook refresh_marquee;
+extern ModeSpecOpt marquee_opts;
+
+extern ModeHook init_maze;
+extern ModeHook draw_maze;
+extern ModeHook release_maze;
+extern ModeHook refresh_maze;
+extern ModeSpecOpt maze_opts;
+
+extern ModeHook init_mountain;
+extern ModeHook draw_mountain;
+extern ModeHook release_mountain;
+extern ModeHook refresh_mountain;
+extern ModeSpecOpt mountain_opts;
+
+extern ModeHook init_nose;
+extern ModeHook draw_nose;
+extern ModeHook release_nose;
+extern ModeHook refresh_nose;
+extern ModeSpecOpt nose_opts;
+
+extern ModeHook init_pacman;
+extern ModeHook draw_pacman;
+extern ModeHook release_pacman;
+extern ModeHook refresh_pacman;
+extern ModeSpecOpt pacman_opts;
+
+extern ModeHook init_penrose;
+extern ModeHook draw_penrose;
+extern ModeHook release_penrose;
+
+#if 0
+extern ModeHook refresh_penrose; /* Needed */
+
+#endif
+extern ModeSpecOpt penrose_opts;
+
+extern ModeHook init_petal;
+extern ModeHook draw_petal;
+extern ModeHook release_petal;
+extern ModeHook refresh_petal;
+extern ModeSpecOpt petal_opts;
+
+extern ModeHook init_puzzle;
+extern ModeHook draw_puzzle;
+extern ModeHook release_puzzle;
+
+#if 0
+extern ModeHook refresh_puzzle; /* Needed */
+
+#endif
+extern ModeSpecOpt puzzle_opts;
+
+extern ModeHook init_pyro;
+extern ModeHook draw_pyro;
+extern ModeHook release_pyro;
+extern ModeHook refresh_pyro;
+extern ModeSpecOpt pyro_opts;
+
+extern ModeHook init_qix;
+extern ModeHook draw_qix;
+extern ModeHook release_qix;
+extern ModeHook refresh_qix;
+extern ModeSpecOpt qix_opts;
+
+extern ModeHook init_roll;
+extern ModeHook draw_roll;
+extern ModeHook release_roll;
+extern ModeHook refresh_roll;
+extern ModeSpecOpt roll_opts;
+
+extern ModeHook init_rotor;
+extern ModeHook draw_rotor;
+extern ModeHook release_rotor;
+extern ModeHook refresh_rotor;
+extern ModeSpecOpt rotor_opts;
+
+extern ModeHook init_shape;
+extern ModeHook draw_shape;
+extern ModeHook release_shape;
+extern ModeHook refresh_shape;
+extern ModeSpecOpt shape_opts;
+
+extern ModeHook init_slip;
+extern ModeHook draw_slip;
+extern ModeHook release_slip;
+
+#if 0
+extern ModeHook refresh_slip; /* Probably not practical */
+
+#endif
+extern ModeSpecOpt slip_opts;
+
+extern ModeHook init_sphere;
+extern ModeHook draw_sphere;
+extern ModeHook release_sphere;
+extern ModeHook refresh_sphere;
+extern ModeSpecOpt sphere_opts;
+
+extern ModeHook init_spiral;
+extern ModeHook draw_spiral;
+extern ModeHook release_spiral;
+extern ModeHook refresh_spiral;
+extern ModeSpecOpt spiral_opts;
+
+extern ModeHook init_spline;
+extern ModeHook draw_spline;
+extern ModeHook release_spline;
+extern ModeHook refresh_spline;
+extern ModeSpecOpt spline_opts;
+
+extern ModeHook init_star;
+extern ModeHook draw_star;
+extern ModeHook release_star;
+extern ModeHook refresh_star;
+extern ModeSpecOpt star_opts;
+
+extern ModeHook init_strange;
+extern ModeHook draw_strange;
+extern ModeHook release_strange;
+extern ModeSpecOpt strange_opts;
+
+extern ModeHook init_swarm;
+extern ModeHook draw_swarm;
+extern ModeHook release_swarm;
+extern ModeHook refresh_swarm;
+extern ModeSpecOpt swarm_opts;
+
+extern ModeHook init_swirl;
+extern ModeHook draw_swirl;
+extern ModeHook release_swirl;
+extern ModeHook refresh_swirl;
+extern ModeSpecOpt swirl_opts;
+
+extern ModeHook init_tri;
+extern ModeHook draw_tri;
+extern ModeHook release_tri;
+extern ModeHook refresh_tri;
+extern ModeSpecOpt tri_opts;
+
+extern ModeHook init_triangle;
+extern ModeHook draw_triangle;
+extern ModeHook release_triangle;
+extern ModeHook refresh_triangle;
+extern ModeSpecOpt triangle_opts;
+
+extern ModeHook init_tube;
+extern ModeHook draw_tube;
+extern ModeHook release_tube;
+extern ModeHook refresh_tube;
+extern ModeSpecOpt tube_opts;
+
+extern ModeHook init_turtle;
+extern ModeHook draw_turtle;
+extern ModeHook release_turtle;
+extern ModeHook refresh_turtle;
+extern ModeSpecOpt turtle_opts;
+
+extern ModeHook init_wator;
+extern ModeHook draw_wator;
+extern ModeHook release_wator;
+extern ModeHook refresh_wator;
+extern ModeSpecOpt wator_opts;
+
+extern ModeHook init_wire;
+extern ModeHook draw_wire;
+extern ModeHook release_wire;
+extern ModeHook refresh_wire;
+extern ModeSpecOpt wire_opts;
+
+extern ModeHook init_world;
+extern ModeHook draw_world;
+extern ModeHook release_world;
+extern ModeHook refresh_world;
+extern ModeSpecOpt world_opts;
+
+extern ModeHook init_worm;
+extern ModeHook draw_worm;
+extern ModeHook release_worm;
+extern ModeHook refresh_worm;
+extern ModeSpecOpt worm_opts;
+
+#if defined( USE_XPM ) || defined( USE_XPMINC )
+extern ModeHook init_cartoon;
+extern ModeHook draw_cartoon;
+extern ModeHook release_cartoon;
+extern ModeSpecOpt cartoon_opts;
+
+#endif
+
+#ifdef USE_GL
+extern ModeHook init_gears;
+extern ModeHook draw_gears;
+extern ModeHook release_gears;
+extern ModeSpecOpt gears_opts;
+
+extern ModeHook init_morph3d;
+extern ModeHook draw_morph3d;
+extern ModeHook release_morph3d;
+extern ModeHook change_morph3d;
+extern ModeSpecOpt morph3d_opts;
+
+extern ModeHook init_pipes;
+extern ModeHook draw_pipes;
+extern ModeHook release_pipes;
+extern ModeHook refresh_pipes;
+extern ModeHook change_pipes;
+extern ModeSpecOpt pipes_opts;
+
+extern ModeHook init_superquadrics;
+extern ModeHook draw_superquadrics;
+extern ModeHook release_superquadrics;
+extern ModeHook refresh_superquadrics;
+extern ModeSpecOpt superquadrics_opts;
+
+#ifdef USE_SPROINGIES
+extern ModeHook init_sproingies;
+extern ModeHook draw_sproingies;
+extern ModeHook release_sproingies;
+extern ModeHook refresh_sproingies;
+extern ModeSpecOpt sproingies_opts;
+
+#endif
+#endif
+
+#ifdef USE_HACKERS
+extern ModeHook init_fadeplot;
+extern ModeHook draw_fadeplot;
+extern ModeHook release_fadeplot;
+extern ModeHook refresh_fadeplot;
+extern ModeSpecOpt fadeplot_opts;
+
+#endif
+
+extern ModeHook init_blank;
+extern ModeHook draw_blank;
+extern ModeHook release_blank;
+extern ModeHook refresh_blank;
+extern ModeSpecOpt blank_opts;
+
+#ifdef USE_BOMB
+extern ModeHook init_bomb;
+extern ModeHook draw_bomb;
+extern ModeHook release_bomb;
+extern ModeHook refresh_bomb;
+extern ModeHook change_bomb;
+extern ModeSpecOpt bomb_opts;
+
+#endif
+
+extern ModeHook init_random;
+extern ModeHook draw_random;
+extern ModeHook release_random;
+extern ModeHook refresh_random;
+extern ModeHook change_random;
+extern ModeSpecOpt random_opts;
+
+extern LockStruct LockProcs[];
+extern int numprocs;
+
+/* -------------------------------------------------------------------- */
+
+#endif /* __XLOCK_MODE_H__ */
diff --git a/tdescreensaver/xsavers/saver.cpp b/tdescreensaver/xsavers/saver.cpp
new file mode 100644
index 00000000..1c11fd73
--- /dev/null
+++ b/tdescreensaver/xsavers/saver.cpp
@@ -0,0 +1,31 @@
+#include <kapplication.h>
+#include <kglobal.h>
+#include <kprocess.h>
+#include <klocale.h>
+#include <kstandarddirs.h>
+#include <X11/Xlib.h>
+
+#include "saver.h"
+#include "saver.moc"
+
+//-----------------------------------------------------------------------------
+kScreenSaver::kScreenSaver(Drawable drawable) : TQObject()
+{
+ Window root;
+ int ai;
+ unsigned int au;
+
+ mDrawable = drawable;
+ mGc = XCreateGC(tqt_xdisplay(), mDrawable, 0, 0);
+ XGetGeometry(tqt_xdisplay(), mDrawable, &root, &ai, &ai,
+ &mWidth, &mHeight, &au, &au);
+}
+
+kScreenSaver::~kScreenSaver()
+{
+ XFreeGC(tqt_xdisplay(), mGc);
+}
+
+//-----------------------------------------------------------------------------
+
+
diff --git a/tdescreensaver/xsavers/saver.h b/tdescreensaver/xsavers/saver.h
new file mode 100644
index 00000000..598808bc
--- /dev/null
+++ b/tdescreensaver/xsavers/saver.h
@@ -0,0 +1,29 @@
+
+#ifndef __SAVER_H__
+#define __SAVER_H__
+
+#include <tqobject.h>
+#include <X11/Xlib.h>
+
+extern void startScreenSaver( Drawable d );
+extern void stopScreenSaver();
+extern int setupScreenSaver();
+
+//-----------------------------------------------------------------------------
+class kScreenSaver : public TQObject
+{
+ Q_OBJECT
+
+public:
+ kScreenSaver( Drawable drawable );
+ virtual ~kScreenSaver();
+
+protected:
+ Drawable mDrawable;
+ GC mGc;
+ unsigned mWidth;
+ unsigned mHeight;
+};
+
+#endif
+
diff --git a/tdescreensaver/xsavers/space.cpp b/tdescreensaver/xsavers/space.cpp
new file mode 100644
index 00000000..a15dd171
--- /dev/null
+++ b/tdescreensaver/xsavers/space.cpp
@@ -0,0 +1,735 @@
+/*
+ *
+ * kStart OpenGL screensave for KDE
+ *
+ * $Id$
+ *
+ * Copyright (C) 1998 Bernd Johannes Wuebben
+ * wuebben@math.cornell.edu
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Based on star.c:
+ *
+ * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that (i) the above copyright notices and this permission notice appear in
+ * all copies of the software and related documentation, and (ii) the name of
+ * Silicon Graphics may not be used in any advertising or
+ * publicity relating to the software without the specific, prior written
+ * permission of Silicon Graphics.
+ *
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF
+ * ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR
+ * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
+ * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+ * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
+ * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
+ * OF THIS SOFTWARE.
+ */
+
+#define LONG64
+//#define TQT_CLEAN_NAMESPACE
+
+#include <tqslider.h>
+#include <tqlayout.h>
+#include <kglobal.h>
+#include <kconfig.h>
+#include <krandomsequence.h>
+#include <kdebug.h>
+#include "xlock.h"
+#include "helpers.h"
+#ifdef HAVE_CONFIG_H
+#include "../../config.h"
+#endif
+
+#ifdef HAVE_GL
+
+#include <klocale.h>
+
+#undef index
+#include "space.h"
+#include <math.h>
+#include <X11/Intrinsic.h>
+#ifdef HAVE_GL_XMESA_H
+#include <GL/xmesa.h>
+#endif
+#include <GL/gl.h>
+#include <GL/glx.h>
+#ifdef HAVE_GL_GLUT_H
+// We don't need GLUT, but some BROKEN GLU implemenations, such as the one
+// used in SuSE Linux 6.3, do. :(
+#include <GL/glut.h>
+#endif
+#include <GL/glu.h>
+
+#ifndef PI
+#ifdef M_PI
+#define PI M_PI
+#else
+#define PI 3.141592657
+#endif
+#endif
+
+enum {
+ NORMAL = 0,
+ WEIRD = 1
+} flag = NORMAL;
+
+enum {
+ STREAK = 0,
+ CIRCLE = 1
+};
+
+#define MAXSTARS 400
+#define MAXPOS 10000
+#define MAXWARP1 10
+#define MAXANGLES 6000
+
+
+typedef struct _starRec {
+ GLint type;
+ float x[2], y[2], z[2];
+ float offsetX, offsetY, offsetR, rotation;
+} starRec;
+
+
+GLenum doubleBuffer, directRender;
+GLint windW, windH;
+
+GLint starCount = MAXSTARS / 2;
+float speed = 1.0;
+float warpinterval = 30000.0;
+GLint nitro = 0;
+starRec stars[MAXSTARS];
+float sinTable[MAXANGLES];
+
+static GLXContext glx_context;
+static KRandomSequence *rnd = 0;
+
+float Sin(float angle)
+{
+
+ return (sinTable[(GLint)angle]);
+}
+
+float Cos(float angle)
+{
+
+ return (sinTable[((GLint)angle+(MAXANGLES/4))%MAXANGLES]);
+}
+
+void NewStar(GLint n, GLint d)
+{
+
+ if (rnd->getLong(4) == 0) {
+ stars[n].type = CIRCLE;
+ } else {
+ stars[n].type = STREAK;
+ }
+ stars[n].x[0] = rnd->getDouble() * MAXPOS - MAXPOS / 2;
+ stars[n].y[0] = rnd->getDouble() * MAXPOS - MAXPOS / 2;
+ stars[n].z[0] = rnd->getDouble() * MAXPOS + d;
+ if (rnd->getLong(4) == 0 && flag == WEIRD) {
+ stars[n].offsetX = rnd->getDouble()* 100 - 100 / 2;
+ stars[n].offsetY = rnd->getDouble()* 100 - 100 / 2;
+ stars[n].offsetR = rnd->getDouble()* 25 - 25 / 2;
+ } else {
+ stars[n].offsetX = 0.0;
+ stars[n].offsetY = 0.0;
+ stars[n].offsetR = 0.0;
+ }
+}
+
+void RotatePoint(float *x, float *y, float rotation)
+{
+ float tmpX, tmpY;
+
+ tmpX = *x * Cos(rotation) - *y * Sin(rotation);
+ tmpY = *y * Cos(rotation) + *x * Sin(rotation);
+ *x = tmpX;
+ *y = tmpY;
+}
+
+void MoveStars(void)
+{
+ float offset;
+ GLint n;
+
+ offset = speed * 60.0;
+
+ for (n = 0; n < starCount; n++) {
+ stars[n].x[1] = stars[n].x[0];
+ stars[n].y[1] = stars[n].y[0];
+ stars[n].z[1] = stars[n].z[0];
+ stars[n].x[0] += stars[n].offsetX;
+ stars[n].y[0] += stars[n].offsetY;
+ stars[n].z[0] -= offset;
+ stars[n].rotation += stars[n].offsetR;
+ if (stars[n].rotation > MAXANGLES) {
+ stars[n].rotation = 0.0;
+ }
+ }
+}
+
+GLenum StarPoint(GLint n)
+{
+ float x0, y0, x1, y1, width;
+ GLint i;
+
+ x0 = stars[n].x[0] * windW / stars[n].z[0];
+ y0 = stars[n].y[0] * windH / stars[n].z[0];
+ RotatePoint(&x0, &y0, stars[n].rotation);
+ x0 += windW / 2.0;
+ y0 += windH / 2.0;
+
+ if (x0 >= 0.0 && x0 < windW && y0 >= 0.0 && y0 < windH) {
+ if (stars[n].type == STREAK) {
+ x1 = stars[n].x[1] * windW / stars[n].z[1];
+ y1 = stars[n].y[1] * windH / stars[n].z[1];
+ RotatePoint(&x1, &y1, stars[n].rotation);
+ x1 += windW / 2.0;
+ y1 += windH / 2.0;
+
+ glLineWidth(MAXPOS/100.0/stars[n].z[0]+1.0);
+ glColor3f((MAXWARP1-speed)/MAXWARP1, (MAXWARP1-speed)/MAXWARP1, .9);
+ if (fabs(x0-x1) < 1.0 && fabs(y0-y1) < 1.0) {
+ glBegin(GL_POINTS);
+ glVertex2f(x0, y0);
+ glEnd();
+ } else {
+ glBegin(GL_LINES);
+ glVertex2f(x0, y0);
+ glVertex2f(x1, y1);
+ glEnd();
+ }
+ } else {
+ width = MAXPOS / 10.0 / stars[n].z[0] + 1.0;
+ glColor3f(1.0, 0.0, 0.0);
+ glBegin(GL_POLYGON);
+ for (i = 0; i < 8; i++) {
+ float x = x0 + width * Cos((float)i*MAXANGLES/8.0);
+ float y = y0 + width * Sin((float)i*MAXANGLES/8.0);
+ glVertex2f(x, y);
+ };
+ glEnd();
+ }
+ return GL_TRUE;
+ } else {
+ return GL_FALSE;
+ }
+}
+
+void ShowStars(void)
+{
+ GLint n;
+
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ for (n = 0; n < starCount; n++) {
+ if (stars[n].z[0] > speed || (stars[n].z[0] > 0.0 && speed < MAXWARP1)) {
+ if (StarPoint(n) == GL_FALSE) {
+ NewStar(n, MAXPOS);
+ }
+ } else {
+ NewStar(n, MAXPOS);
+ }
+ }
+}
+
+static void Init(void)
+{
+ float angle;
+ GLint n;
+
+ for (n = 0; n < MAXSTARS; n++) {
+ NewStar(n, 100);
+ }
+
+ angle = 0.0;
+ for (n = 0; n < MAXANGLES ; n++) {
+ sinTable[n] = sin(angle);
+ angle += PI / (MAXANGLES / 2.0);
+ }
+
+ glClearColor(0.0, 0.0, 0.0, 0.0);
+
+ glDisable(GL_DITHER);
+}
+
+void reshape(int width, int height)
+{
+
+ windW = (GLint)width;
+ windH = (GLint)height;
+
+ glViewport(0, 0, windW, windH);
+
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluOrtho2D(-0.5, windW+0.5, -0.5, windH+0.5);
+ glMatrixMode(GL_MODELVIEW);
+
+}
+
+void Idle(void)
+{
+
+ MoveStars();
+ ShowStars();
+ if (nitro > 0) {
+ speed = (float)(nitro / 10) + 1.0;
+ if (speed > MAXWARP1) {
+ speed = MAXWARP1;
+ }
+ if (++nitro > MAXWARP1*10) {
+ nitro = -nitro;
+ }
+ } else if (nitro < 0) {
+ nitro++;
+ speed = (float)(-nitro / 10) + 1.0;
+ if (speed > MAXWARP1) {
+ speed = MAXWARP1;
+ }
+ }
+
+ glFlush();
+
+ /* if (doubleBuffer) {
+ tkSwapBuffers();
+ }*/
+}
+
+
+void
+drawSpace(Window /*window*/)
+{
+
+ /*
+ Display *display = dsp;
+ //glXMakeCurrent(display, window, mp->glx_context);
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glFlush();
+ glXSwapBuffers(display, window);
+ */
+
+ Idle();
+
+}
+
+
+void release_Space(){
+
+ glXDestroyContext(dsp, glx_context);
+
+}
+
+static XVisualInfo *glVis[MAXSCREENS];
+
+int
+getVisual(XVisualInfo * wantVis, int visual_count)
+{
+ Display *display = dsp;
+ static int first;
+ int i;
+
+ if (first) {
+ for (screen = 0; screen < MAXSCREENS; screen++)
+ glVis[screen] = NULL;
+ }
+
+ if (!glVis[screen]) {
+ if (mono) {
+ /* Monochrome display - use color index mode */
+ int attribList[] = {GLX_DOUBLEBUFFER, None};
+
+ glVis[screen] = glXChooseVisual(display, screen, attribList);
+ } else {
+ int attribList[] =
+ {GLX_RGBA, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 1, None};
+
+ glVis[screen] = glXChooseVisual(display, screen, attribList);
+ }
+ }
+ // Make sure we have a visual
+ if (!glVis[screen]) {
+ return (0);
+ }
+
+ /* check if GL can render into root window. */
+ for(i=0;i<visual_count;i++)
+ if ( (glVis[screen]->visual == (wantVis+i)->visual) )
+ return (1); // success
+
+ // The visual we received did not match one we asked for
+ return (0);
+}
+
+void
+initSpace(Window window)
+{
+ Display *display = dsp;
+ XWindowAttributes xwa;
+
+
+ (void) XGetWindowAttributes(dsp, window, &xwa);
+ int n;
+ XVisualInfo *wantVis, vTemplate;
+ int VisualClassWanted=-1;
+
+ vTemplate.screen = screen;
+ vTemplate.depth = xwa.depth;
+
+ if (VisualClassWanted == -1) {
+ vTemplate.c_class = DefaultVisual(display, screen)->c_class;
+ } else {
+ vTemplate.c_class = VisualClassWanted;
+ }
+
+ wantVis = XGetVisualInfo(display,
+ VisualScreenMask | VisualDepthMask | VisualClassMask,
+ &vTemplate, &n);
+
+ if (VisualClassWanted != -1 && n == 0) {
+ /* Wanted visual not found so use default */
+
+ vTemplate.c_class = DefaultVisual(display, screen)->c_class;
+
+ wantVis = XGetVisualInfo(display,
+ VisualScreenMask | VisualDepthMask | VisualClassMask,
+ &vTemplate, &n);
+ }
+ /* if User asked for color, try that first, then try mono */
+ /* if User asked for mono. Might fail on 16/24 bit displays,
+ so fall back on color, but keep the mono "look & feel". */
+
+ if (!getVisual(wantVis, n)) {
+ if (!getVisual(wantVis, n)) {
+ kdError() << i18n("GL can not render with root visual\n") << endl;
+ return;
+ }
+ }
+
+ /* PURIFY 3.0a on SunOS4 reports a 104 byte memory leak on the next line each
+ * time that morph3d mode is run in random mode. */
+
+ glx_context = glXCreateContext(display, wantVis, 0, True);
+
+ XFree((char *) wantVis);
+
+
+ glXMakeCurrent(display, window, glx_context);
+ glDrawBuffer(GL_FRONT);
+
+ if (mono) {
+ glIndexi(WhitePixel(display, screen));
+ glClearIndex(BlackPixel(display, screen));
+ }
+
+ reshape(xwa.width, xwa.height);
+ Init();
+}
+
+
+
+
+#endif
+
+#define MINSPEED 1
+#define MAXSPEED 100
+#define DEFSPEED 50
+#define MINWARP 1
+#define MAXWARP 30
+#define DEFWARP 2
+#define WARPFACTOR 100
+//-----------------------------------------------------------------------------
+
+#include <tqpushbutton.h>
+#include <tqcheckbox.h>
+#include <tqlabel.h>
+#include <tqcolor.h>
+
+#include <kmessagebox.h>
+
+#include "space.moc"
+
+#undef Below
+
+static kSpaceSaver *saver = NULL;
+
+void startScreenSaver( Drawable d )
+{
+ if ( saver )
+ return;
+ saver = new kSpaceSaver( d );
+}
+
+void stopScreenSaver()
+{
+ if ( saver )
+ delete saver;
+ saver = NULL;
+}
+
+int setupScreenSaver()
+{
+ kSpaceSetup dlg;
+
+ return dlg.exec();
+}
+
+//-----------------------------------------------------------------------------
+
+kSpaceSaver::kSpaceSaver( Drawable drawable ) : kScreenSaver( drawable )
+{
+ rnd = new KRandomSequence();
+ readSettings();
+ counter = (int)warpinterval *WARPFACTOR;
+
+ colorContext = TQColor::enterAllocContext();
+
+ initXLock( mGc );
+ initSpace( mDrawable );
+
+ timer.start( speed );
+ connect( &timer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotTimeout() ) );
+}
+
+kSpaceSaver::~kSpaceSaver()
+{
+ timer.stop();
+ release_Space();
+ TQColor::leaveAllocContext();
+ TQColor::destroyAllocContext( colorContext );
+ delete rnd; rnd = 0;
+}
+
+void kSpaceSaver::setSpeed( int spd )
+{
+ timer.stop();
+ speed = MAXSPEED - spd ;
+ // printf("speed %d\n",speed);
+ timer.stop();
+ timer.start( speed );
+}
+
+void kSpaceSaver::setWarp( int w )
+{
+ warpinterval = w;
+ counter = (int)warpinterval;
+ initSpace( mDrawable );
+}
+
+void kSpaceSaver::readSettings()
+{
+ TDEConfig *config = klock_config();
+ config->setGroup( "Settings" );
+
+ TQString str;
+
+ str = config->readEntry( "Speed" );
+ if ( !str.isNull() )
+ speed = MAXSPEED - str.toInt();
+ else
+ speed = DEFSPEED;
+
+ warpinterval = config->readNumEntry( "WarpInterval", 15 );
+ delete config;
+}
+
+void kSpaceSaver::slotTimeout()
+{
+ //printf("%d %d \n",(int)warpinterval, MAXWARP);
+ if(warpinterval != MAXWARP){
+ if(nitro == 0)
+ counter -= speed +1;
+
+ if(counter <= 0){
+ nitro = 1;
+ counter = (int) warpinterval *WARPFACTOR;
+ }
+ }
+ else
+ nitro = 0;
+
+ drawSpace( mDrawable );
+}
+
+//-----------------------------------------------------------------------------
+
+kSpaceSetup::kSpaceSetup( TQWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n("Setup Space Screen Saver"),
+ Ok|Cancel|Help, Ok, true )
+{
+ setButtonText( Help, i18n( "A&bout" ) );
+ readSettings();
+
+ TQWidget *page = new TQWidget( this );
+ setMainWidget( page );
+ TQHBoxLayout *hb = new TQHBoxLayout( page, 0, spacingHint() );
+ TQVBoxLayout *vb = new TQVBoxLayout( hb, spacingHint() );
+
+ TQLabel *label;
+ TQSlider *slider;
+
+ label = new TQLabel( i18n("Speed:"), page );
+ vb->addWidget( label );
+
+ slider = new TQSlider(MINSPEED, MAXSPEED, 10, speed, Qt::Horizontal,
+ page );
+ vb->addWidget( slider );
+ slider->setTickmarks(TQSlider::Below);
+ slider->setTickInterval(10);
+ connect( slider, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotSpeed( int ) ) );
+
+ label = new TQLabel( i18n("Warp interval:"), page );
+ vb->addWidget( label );
+
+ slider = new TQSlider(MINWARP, MAXWARP, 3, warpinterval,Qt::Horizontal, page );
+ vb->addWidget( slider );
+ slider->setTickmarks(TQSlider::Below);
+ slider->setTickInterval(3);
+ connect( slider, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotWarp( int ) ) );
+
+ vb->addStrut( 150 );
+ vb->addStretch();
+
+ preview = new TQWidget( page );
+ hb->addWidget( preview );
+ preview->setFixedSize( 220, 170 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ saver = new kSpaceSaver( preview->winId() );
+}
+
+void kSpaceSetup::readSettings()
+{
+ TDEConfig *config = klock_config();
+ config->setGroup( "Settings" );
+
+ speed = config->readNumEntry( "Speed", speed );
+
+ if ( speed > MAXSPEED )
+ speed = MAXSPEED;
+ else if ( speed < MINSPEED )
+ speed = MINSPEED;
+
+ warpinterval = config->readNumEntry( "WarpInterval", 15 );
+
+ delete config;
+}
+
+void kSpaceSetup::slotSpeed( int num )
+{
+ speed = num ;
+
+ if ( saver )
+ saver->setSpeed( speed );
+}
+
+void kSpaceSetup::slotWarp( int num )
+{
+ warpinterval = num;
+ if ( saver )
+ saver->setWarp( warpinterval );
+}
+
+void kSpaceSetup::slotOk()
+{
+ TDEConfig *config = klock_config();
+ config->setGroup( "Settings" );
+
+ TQString sspeed;
+ sspeed.setNum( speed );
+ config->writeEntry( "Speed", sspeed );
+
+ TQString interval;
+ interval.setNum( (int)warpinterval );
+ config->writeEntry( "WarpInterval", interval );
+
+ config->sync();
+ delete config;
+ accept();
+}
+
+void kSpaceSetup::slotHelp()
+{
+ KMessageBox::about(this,
+ i18n("KSpace\nCopyright (c) 1998\n"
+ "Bernd Johannes Wuebben <wuebben@kde.org>"));
+}
+
+
+/*
+static GLenum Args(int argc, char **argv)
+{
+ GLint i;
+
+ doubleBuffer = GL_FALSE;
+ directRender = GL_TRUE;
+
+ for (i = 1; i < argc; i++) {
+ if (strcmp(argv[i], "-sb") == 0) {
+ doubleBuffer = GL_FALSE;
+ } else if (strcmp(argv[i], "-db") == 0) {
+ doubleBuffer = GL_TRUE;
+ } else if (strcmp(argv[i], "-dr") == 0) {
+ directRender = GL_TRUE;
+ } else if (strcmp(argv[i], "-ir") == 0) {
+ directRender = GL_FALSE;
+ }
+ }
+ return GL_TRUE;
+}
+
+
+
+void main(int argc, char **argv)
+{
+ GLenum type;
+
+ if (Args(argc, argv) == GL_FALSE) {
+ tkQuit();
+ }
+
+ windW = 300;
+ windH = 300;
+ tkInitPosition(0, 0, 300, 300);
+
+ type = TK_RGB;
+ type |= (doubleBuffer) ? TK_DOUBLE : TK_SINGLE;
+ type |= (directRender) ? TK_DIRECT : TK_INDIRECT;
+ tkInitDisplayMode(type);
+
+ if (tkInitWindow("Stars") == GL_FALSE) {
+ tkQuit();
+ }
+
+ Init();
+
+ tkExposeFunc(Reshape);
+ tkReshapeFunc(Reshape);
+ tkKeyDownFunc(Key);
+ tkIdleFunc(Idle);
+ tkExec();
+}
+
+*/
diff --git a/tdescreensaver/xsavers/space.h b/tdescreensaver/xsavers/space.h
new file mode 100644
index 00000000..2b0cc1ef
--- /dev/null
+++ b/tdescreensaver/xsavers/space.h
@@ -0,0 +1,64 @@
+
+#ifndef __SPACE_H__
+#define __SPACE_H__
+
+#include <tqtimer.h>
+#include <tqptrlist.h>
+#include <kdialogbase.h>
+#include <tqlineedit.h>
+#include "saver.h"
+
+class kSpaceSaver : public kScreenSaver
+{
+ Q_OBJECT
+
+public:
+ kSpaceSaver( Drawable drawable );
+ virtual ~kSpaceSaver();
+
+ void setSpeed( int spd );
+ void setWarp( int l );
+ void setPoints( int p );
+
+protected:
+ void readSettings();
+
+protected slots:
+ void slotTimeout();
+
+protected:
+ TQTimer timer;
+ int colorContext;
+
+ int counter;
+ int speed;
+ int maxLevels;
+ int numPoints;
+};
+
+class kSpaceSetup : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ kSpaceSetup( TQWidget *parent = NULL, const char *name = NULL );
+
+protected:
+ void readSettings();
+
+private slots:
+ void slotSpeed( int );
+ void slotWarp( int );
+ void slotOk();
+ void slotHelp();
+
+private:
+ TQWidget *preview;
+ kSpaceSaver *saver;
+
+ int speed;
+ int warpinterval;
+};
+
+#endif
+
diff --git a/tdescreensaver/xsavers/swarm.cpp b/tdescreensaver/xsavers/swarm.cpp
new file mode 100644
index 00000000..b81920ba
--- /dev/null
+++ b/tdescreensaver/xsavers/swarm.cpp
@@ -0,0 +1,419 @@
+/*-
+ * swarm.c - swarm of bees for xlock, the X Window System lockscreen.
+ *
+ * Copyright (c) 1991 by Patrick J. Naughton.
+ *
+ * Revision History:
+ * 31-Aug-90: Adapted from xswarm by Jeff Butterworth. (butterwo@ncsc.org)
+ */
+
+/* Ported to tdescreensaver:
+ July 1997, Emanuel Pirker <epirker@edu.uni-klu.ac.at>
+ Contact me in case of problems, not the original author!
+ Last revised: 10-Jul-97
+*/
+// layout management added 1998/04/19 by Mario Weilguni <mweilguni@kde.org>
+
+#define MAXSPEED 100
+#define MINSPEED 0
+#define DEFSPEED 50
+#define MAXBATCH 200
+#define MINBATCH 0
+#define DEFBATCH 20
+
+#include <tqslider.h>
+#include <kglobal.h>
+#include <kconfig.h>
+#include <krandomsequence.h>
+#include "xlock.h"
+
+#undef index
+
+#define TIMES 4 /* number of time positions recorded */
+#define BEEACC 2 /* acceleration of bees */
+#define WASPACC 5 /* maximum acceleration of wasp */
+#define BEEVEL 12 /* maximum bee velocity */
+#define WASPVEL 10 /* maximum wasp velocity */
+
+/* Macros */
+#define X(t,b) (sp->x[(t)*sp->beecount+(b)])
+#define Y(t,b) (sp->y[(t)*sp->beecount+(b)])
+#define balance_rand(v) (rnd.getLong(v)-((v)/2)) /* random number around 0 */
+
+//ModeSpecOpt swarm_opts = {0, NULL, NULL, NULL};
+
+typedef struct {
+ int pix;
+ int width;
+ int height;
+ int border; /* wasp won't go closer than this to the edge */
+ int beecount; /* number of bees */
+ XSegment segs[MAXBATCH]; /* bee lines */
+ XSegment old_segs[MAXBATCH]; /* old bee lines */
+ short x[MAXBATCH*TIMES];
+ short y[MAXBATCH*TIMES]; /* bee positions x[time][bee#] */
+ short xv[MAXBATCH];
+ short yv[MAXBATCH]; /* bee velocities xv[bee#] */
+ short wx[3];
+ short wy[3];
+ short wxv;
+ short wyv;
+} swarmstruct;
+
+static swarmstruct swarms[MAXSCREENS];
+
+void
+initswarm(Window win, KRandomSequence &rnd)
+{
+ swarmstruct *sp = &swarms[screen];
+ int b;
+ XWindowAttributes xwa;
+
+ sp->beecount = batchcount;
+ (void) XGetWindowAttributes(dsp, win, &xwa);
+ sp->width = xwa.width;
+ sp->height = xwa.height;
+
+ sp->border = (sp->width + sp->height) / 50;
+
+ /* Clear the background. */
+ XSetForeground(dsp, Scr[screen].gc, BlackPixel(dsp, screen));
+ XFillRectangle(dsp, win, Scr[screen].gc, 0, 0, sp->width, sp->height);
+
+ /* Now static data structures. epirker */
+ //if (!sp->segs) {
+ //sp->segs = (XSegment *) malloc(sizeof (XSegment) * sp->beecount);
+ //sp->old_segs = (XSegment *) malloc(sizeof (XSegment) * sp->beecount);
+ //sp->x = (short *) malloc(sizeof (short) * sp->beecount * TIMES);
+ //sp->y = (short *) malloc(sizeof (short) * sp->beecount * TIMES);
+ //sp->xv = (short *) malloc(sizeof (short) * sp->beecount);
+ //sp->yv = (short *) malloc(sizeof (short) * sp->beecount);
+ //}
+ /* Initialize point positions, velocities, etc. */
+
+ /* wasp */
+ sp->wx[0] = sp->border + rnd.getLong(sp->width - 2 * sp->border);
+ sp->wy[0] = sp->border + rnd.getLong(sp->height - 2 * sp->border);
+ sp->wx[1] = sp->wx[0];
+ sp->wy[1] = sp->wy[0];
+ sp->wxv = 0;
+ sp->wyv = 0;
+
+ /* bees */
+ for (b = 0; b < sp->beecount; b++) {
+ X(0, b) = rnd.getLong(sp->width);
+ X(1, b) = X(0, b);
+ Y(0, b) = rnd.getLong(sp->height);
+ Y(1, b) = Y(0, b);
+ sp->xv[b] = balance_rand(7);
+ sp->yv[b] = balance_rand(7);
+ }
+}
+
+
+
+void
+drawswarm(Window win, KRandomSequence &rnd)
+{
+ swarmstruct *sp = &swarms[screen];
+ int b;
+
+ /* <=- Wasp -=> */
+ /* Age the arrays. */
+ sp->wx[2] = sp->wx[1];
+ sp->wx[1] = sp->wx[0];
+ sp->wy[2] = sp->wy[1];
+ sp->wy[1] = sp->wy[0];
+ /* Accelerate */
+ sp->wxv += balance_rand(WASPACC);
+ sp->wyv += balance_rand(WASPACC);
+
+ /* Speed Limit Checks */
+ if (sp->wxv > WASPVEL)
+ sp->wxv = WASPVEL;
+ if (sp->wxv < -WASPVEL)
+ sp->wxv = -WASPVEL;
+ if (sp->wyv > WASPVEL)
+ sp->wyv = WASPVEL;
+ if (sp->wyv < -WASPVEL)
+ sp->wyv = -WASPVEL;
+
+ /* Move */
+ sp->wx[0] = sp->wx[1] + sp->wxv;
+ sp->wy[0] = sp->wy[1] + sp->wyv;
+
+ /* Bounce Checks */
+ if ((sp->wx[0] < sp->border) || (sp->wx[0] > sp->width - sp->border - 1)) {
+ sp->wxv = -sp->wxv;
+ sp->wx[0] += sp->wxv;
+ }
+ if ((sp->wy[0] < sp->border) || (sp->wy[0] > sp->height - sp->border - 1)) {
+ sp->wyv = -sp->wyv;
+ sp->wy[0] += sp->wyv;
+ }
+ /* Don't let things settle down. */
+ sp->xv[rnd.getLong(sp->beecount)] += balance_rand(3);
+ sp->yv[rnd.getLong(sp->beecount)] += balance_rand(3);
+
+ /* <=- Bees -=> */
+ for (b = 0; b < sp->beecount; b++) {
+ int distance, dx, dy;
+
+ /* Age the arrays. */
+ X(2, b) = X(1, b);
+ X(1, b) = X(0, b);
+ Y(2, b) = Y(1, b);
+ Y(1, b) = Y(0, b);
+
+ /* Accelerate */
+ dx = sp->wx[1] - X(1, b);
+ dy = sp->wy[1] - Y(1, b);
+ distance = abs(dx) + abs(dy); /* approximation */
+ if (distance == 0)
+ distance = 1;
+ sp->xv[b] += (dx * BEEACC) / distance;
+ sp->yv[b] += (dy * BEEACC) / distance;
+
+ /* Speed Limit Checks */
+ if (sp->xv[b] > BEEVEL)
+ sp->xv[b] = BEEVEL;
+ if (sp->xv[b] < -BEEVEL)
+ sp->xv[b] = -BEEVEL;
+ if (sp->yv[b] > BEEVEL)
+ sp->yv[b] = BEEVEL;
+ if (sp->yv[b] < -BEEVEL)
+ sp->yv[b] = -BEEVEL;
+
+ /* Move */
+ X(0, b) = X(1, b) + sp->xv[b];
+ Y(0, b) = Y(1, b) + sp->yv[b];
+
+ /* Fill the segment lists. */
+ sp->segs[b].x1 = X(0, b);
+ sp->segs[b].y1 = Y(0, b);
+ sp->segs[b].x2 = X(1, b);
+ sp->segs[b].y2 = Y(1, b);
+ sp->old_segs[b].x1 = X(1, b);
+ sp->old_segs[b].y1 = Y(1, b);
+ sp->old_segs[b].x2 = X(2, b);
+ sp->old_segs[b].y2 = Y(2, b);
+ }
+
+ XSetForeground(dsp, Scr[screen].gc, BlackPixel(dsp, screen));
+ XDrawLine(dsp, win, Scr[screen].gc,
+ sp->wx[1], sp->wy[1], sp->wx[2], sp->wy[2]);
+ XDrawSegments(dsp, win, Scr[screen].gc, sp->old_segs, sp->beecount);
+
+ XSetForeground(dsp, Scr[screen].gc, WhitePixel(dsp, screen));
+ XDrawLine(dsp, win, Scr[screen].gc,
+ sp->wx[0], sp->wy[0], sp->wx[1], sp->wy[1]);
+ if (!mono && Scr[screen].npixels > 2) {
+ XSetForeground(dsp, Scr[screen].gc, Scr[screen].pixels[sp->pix]);
+ if (++sp->pix >= Scr[screen].npixels)
+ sp->pix = 0;
+ }
+ XDrawSegments(dsp, win, Scr[screen].gc, sp->segs, sp->beecount);
+}
+
+//-----------------------------------------------------------------------------
+
+#include <tqcheckbox.h>
+#include <tqlabel.h>
+#include <tqcolor.h>
+#include <tqlayout.h>
+
+#include <klocale.h>
+#include <kmessagebox.h>
+
+#include "swarm.h"
+#include "swarm.moc"
+#include "helpers.h"
+
+#undef Below
+
+static kSwarmSaver *saver = NULL;
+
+void startScreenSaver( Drawable d )
+{
+ if ( saver )
+ return;
+ saver = new kSwarmSaver( d );
+}
+
+void stopScreenSaver()
+{
+ if ( saver )
+ delete saver;
+ saver = NULL;
+}
+
+int setupScreenSaver()
+{
+ kSwarmSetup dlg;
+
+ return dlg.exec();
+}
+
+//-----------------------------------------------------------------------------
+
+kSwarmSaver::kSwarmSaver( Drawable drawable ) : kScreenSaver( drawable )
+{
+ readSettings();
+
+ // Clear to background colour when exposed
+ XSetWindowBackground(tqt_xdisplay(), mDrawable,
+ BlackPixel(tqt_xdisplay(), tqt_xscreen()));
+
+ colorContext = TQColor::enterAllocContext();
+
+ batchcount = maxLevels;
+
+ initXLock( mGc );
+ initswarm( mDrawable, rnd );
+
+ timer.start( speed );
+ connect( &timer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotTimeout() ) );
+}
+
+kSwarmSaver::~kSwarmSaver()
+{
+ timer.stop();
+ TQColor::leaveAllocContext();
+ TQColor::destroyAllocContext( colorContext );
+}
+
+void kSwarmSaver::setSpeed( int spd )
+{
+ timer.stop();
+ speed = MAXSPEED - spd;
+ timer.start( speed );
+}
+
+void kSwarmSaver::setLevels( int l )
+{
+ batchcount = maxLevels = l;
+ initswarm( mDrawable, rnd );
+}
+
+void kSwarmSaver::readSettings()
+{
+ TDEConfig *config = klock_config();
+ config->setGroup( "Settings" );
+
+ speed = MAXSPEED - config->readNumEntry( "Speed", MAXSPEED - DEFSPEED );
+ maxLevels = config->readNumEntry( "MaxLevels", DEFBATCH );
+
+ delete config;
+}
+
+void kSwarmSaver::slotTimeout()
+{
+ drawswarm( mDrawable, rnd );
+}
+
+//-----------------------------------------------------------------------------
+
+kSwarmSetup::kSwarmSetup( TQWidget *parent, const char *name )
+ : KDialogBase( parent, name, true, i18n( "Setup Swarm Screen Saver" ),
+ Ok|Cancel|Help, Ok, true )
+{
+ readSettings();
+
+ setButtonText( Help, i18n( "A&bout" ) );
+ TQWidget *main = makeMainWidget();
+
+ TQHBoxLayout *top = new TQHBoxLayout( main, 0, spacingHint() );
+ TQVBoxLayout *left = new TQVBoxLayout(top, spacingHint());
+
+ TQLabel *label = new TQLabel( i18n("Speed:"), main );
+ min_size(label);
+ left->addWidget(label);
+
+ TQSlider *slider = new TQSlider(MINSPEED, MAXSPEED, 10, speed,
+ Qt::Horizontal, main );
+ slider->setMinimumSize( 120, 20 );
+ slider->setTickmarks(TQSlider::Below);
+ slider->setTickInterval(10);
+ connect( slider, TQT_SIGNAL( valueChanged( int ) ),
+ TQT_SLOT( slotSpeed( int ) ) );
+ left->addWidget(slider);
+
+ label = new TQLabel( i18n("Number of bees:"), main );
+ min_size(label);
+ left->addWidget(label);
+
+ slider = new TQSlider(MINBATCH, MAXBATCH, 20, maxLevels,Qt::Horizontal, main );
+ slider->setMinimumSize( 120, 20 );
+ slider->setTickmarks(TQSlider::Below);
+ slider->setTickInterval(20);
+ connect( slider, TQT_SIGNAL( valueChanged( int ) ),
+ TQT_SLOT( slotLevels( int ) ) );
+ left->addWidget(slider);
+ left->addStretch();
+
+ preview = new TQWidget( main );
+ preview->setFixedSize( 220, 170 );
+ preview->setBackgroundColor( black );
+ preview->show(); // otherwise saver does not get correct size
+ saver = new kSwarmSaver( preview->winId() );
+ top->addWidget(preview);
+
+ top->addStretch();
+}
+
+void kSwarmSetup::readSettings()
+{
+ TDEConfig *config = klock_config();
+ config->setGroup( "Settings" );
+
+ speed = config->readNumEntry( "Speed", speed );
+
+ if ( speed > MAXSPEED )
+ speed = MAXSPEED;
+ else if ( speed < MINSPEED )
+ speed = MINSPEED;
+
+ maxLevels = config->readNumEntry( "MaxLevels", DEFBATCH );
+ delete config;
+}
+
+void kSwarmSetup::slotSpeed( int num )
+{
+ speed = num;
+
+ if ( saver )
+ saver->setSpeed( speed );
+}
+
+void kSwarmSetup::slotLevels( int num )
+{
+ maxLevels = num;
+
+ if ( saver )
+ saver->setLevels( maxLevels );
+}
+
+void kSwarmSetup::slotOk()
+{
+ TDEConfig *config = klock_config();
+ config->setGroup( "Settings" );
+
+ TQString sspeed;
+ sspeed.setNum( speed );
+ config->writeEntry( "Speed", sspeed );
+
+ TQString slevels;
+ slevels.setNum( maxLevels );
+ config->writeEntry( "MaxLevels", slevels );
+
+ config->sync();
+ delete config;
+ accept();
+}
+
+void kSwarmSetup::slotHelp()
+{
+ KMessageBox::information(this,
+ i18n("Swarm\n\nCopyright (c) 1991 by Patrick J. Naughton\n\nPorted to tdescreensaver by Emanuel Pirker."),
+ i18n("About Swarm"));
+}
diff --git a/tdescreensaver/xsavers/swarm.h b/tdescreensaver/xsavers/swarm.h
new file mode 100644
index 00000000..d8cca36c
--- /dev/null
+++ b/tdescreensaver/xsavers/swarm.h
@@ -0,0 +1,67 @@
+//-----------------------------------------------------------------------------
+//
+// kswarm - port of "swarm" from xlock
+//
+
+#ifndef __SWARM_H__
+#define __SWARM_H__
+
+#include <tqtimer.h>
+
+#include <kdialogbase.h>
+#include "saver.h"
+
+
+class kSwarmSaver : public kScreenSaver
+{
+ Q_OBJECT
+
+public:
+ kSwarmSaver( Drawable drawable );
+ virtual ~kSwarmSaver();
+
+ void setSpeed( int spd );
+ void setLevels( int l );
+
+protected:
+ void readSettings();
+
+protected slots:
+ void slotTimeout();
+
+protected:
+ KRandomSequence rnd;
+ TQTimer timer;
+ int colorContext;
+
+ int speed;
+ int maxLevels;
+};
+
+class kSwarmSetup : public KDialogBase
+{
+ Q_OBJECT
+
+public:
+ kSwarmSetup( TQWidget *parent = NULL, const char *name = NULL );
+
+protected:
+ void readSettings();
+
+private slots:
+ void slotSpeed( int );
+ void slotLevels( int );
+
+ void slotOk();
+ void slotHelp();
+
+private:
+ TQWidget *preview;
+ kSwarmSaver *saver;
+
+ int speed;
+ int maxLevels;
+};
+
+#endif
+
diff --git a/tdescreensaver/xsavers/xlock.cpp b/tdescreensaver/xsavers/xlock.cpp
new file mode 100644
index 00000000..7b826158
--- /dev/null
+++ b/tdescreensaver/xsavers/xlock.cpp
@@ -0,0 +1,86 @@
+//----------------------------------------------------------------------------
+// This module contains code to interface original xlock savers to
+// kscreensave
+//
+
+#include <time.h>
+#include <tqapplication.h>
+#include "xlock.h"
+
+
+int screen;
+Display *dsp;
+perscreen Scr[MAXSCREENS];
+int batchcount = 100;
+int cycles = 100;
+Bool mono = 0;
+//Bool allowroot = 0;
+char *ProgramName;
+/*
+Dr. Park's algorithm published in the Oct. '88 ACM
+"Random Number Generators: Good Ones Are Hard To Find"
+His version available at ftp://cs.wm.edu/pub/rngs.tar
+Present form by many authors.
+*/
+
+static int Seed = 1; /* This is required to be 32 bits long */
+
+/*
+ * Given an integer, this routine initializes the RNG seed.
+ */
+void SetRNG(long s)
+{
+ Seed = (int) s;
+}
+
+/*
+ * Returns an integer between 0 and 2147483647, inclusive.
+ */
+long LongRNG()
+{
+ if ((Seed = Seed % 44488 * 48271 - Seed / 44488 * 3399) < 0)
+ Seed += 2147483647;
+ return (long) (Seed - 1);
+}
+
+unsigned long
+allocpixel(Colormap cmap, const char *name, const char *def)
+{
+ XColor col;
+ XColor tmp;
+ XParseColor(dsp, cmap, name, &col);
+ if (!XAllocColor(dsp, cmap, &col))
+ {
+ fprintf(stderr, "couldn't allocate: %s, using %s instead\n", name, def);
+ XAllocNamedColor(dsp, cmap, def, &col, &tmp);
+ }
+
+ return col.pixel;
+}
+
+void initXLock( GC gc )
+{
+ SetRNG( time(NULL) );
+
+ dsp = tqt_xdisplay();
+ screen = tqt_xscreen();
+
+ Screen *scr = ScreenOfDisplay(dsp, screen);
+
+ Scr[0].gc = gc;
+ Scr[0].npixels = NUMCOLORS;
+ Scr[0].cmap = None;
+
+ Colormap cmap = DefaultColormapOfScreen(scr);
+ Scr[0].bgcol = allocpixel(cmap, "background", "White");
+ Scr[0].bgcol = allocpixel(cmap, "foreground", "Black");
+
+ TQColor color;
+
+ for ( int i = 0; i < NUMCOLORS; i++ )
+ {
+ color.setHsv( i * 360 / NUMCOLORS, 255, 255 );
+ Scr[0].pixels[i] = color.alloc();
+ }
+}
+
diff --git a/tdescreensaver/xsavers/xlock.h b/tdescreensaver/xsavers/xlock.h
new file mode 100644
index 00000000..77530a9f
--- /dev/null
+++ b/tdescreensaver/xsavers/xlock.h
@@ -0,0 +1,229 @@
+#ifndef __XLOCK_H__
+#define __XLOCK_H__
+
+/*-
+ * @(#)xlock.h 3.3 95/09/24 xlockmore
+ *
+ * xlock.h - external interfaces for new modes and SYSV OS defines.
+ *
+ * Copyright (c) 1991 by Patrick J. Naughton.
+ *
+ * See xlock.c for copying information.
+ *
+ * Revision History:
+ *
+ * Changes of David Bagley <bagleyd@source.asset.com>
+ * 12-May-95: Added defines for SunOS's Adjunct password file
+ * Dale A. Harris <rodmur@ecst.csuchico.edu>
+ * 18-Nov-94: Modified for TQNX 4.2 w/ Metrolink X server from Brian Campbell
+ * <brianc@qnx.com>.
+ * 11-Jul-94: added Bool flag: inwindow, which tells xlock to run in a
+ * window from Greg Bowering <greg@cs.adelaide.edu.au>
+ * 11-Jul-94: patch for Solaris SYR4 from Chris P. Ross <cross@eng.umd.edu>
+ * 28-Jun-94: Reorganized shadow stuff
+ * 24-Jun-94: Reorganized
+ * 22-Jun-94: Modified for VMS
+ * <Anthony.D.Clarke@Support.Hatfield.Raytheon.bae.eurokom.ie>
+ * 17-Jun-94: patched shadow passwords and bcopy and bzero for SYSV from
+ * <reggers@julian.uwo.ca>
+ * 21-Mar-94: patched the patch for AIXV3 and HP from
+ * <R.K.Lloyd@csc.liv.ac.uk>.
+ * 01-Dec-93: added patch for AIXV3 from
+ * (Tom McConnell, tmcconne@sedona.intel.com) also added a patch
+ * for HP-UX 8.0.
+ *
+ */
+
+#include <tqapplication.h> // hack for qt-1.2
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xos.h>
+#include <X11/Xresource.h>
+
+// added for kscreensave
+void initXLock( GC gc );
+
+
+#define MAXSCREENS 1
+#define NUMCOLORS 64
+#ifndef KERBEROS
+#define PASSLENGTH 64
+#else
+#define PASSLENGTH 120
+#endif
+#define FALLBACK_FONTNAME "fixed"
+#ifndef DEF_MFONT
+#define DEF_MFONT "-*-times-*-*-*-*-18-*-*-*-*-*-*-*"
+#endif
+#ifndef DEF_PROGRAM /* Try the -o option ;) */
+#define DEF_PROGRAM "fortune -s"
+#endif
+
+#define ICONW 64
+#define ICONH 64
+
+#if defined VMS || defined __TQNX__
+#ifdef VMS
+/*#define VMS_PLAY*/
+#include <unixlib.h>
+#endif
+#endif
+
+#include <math.h>
+
+#ifndef M_E
+#define M_E 2.7182818284590452354
+#endif
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+#ifndef M_PI_2
+#define M_PI_2 1.57079632679489661923
+#endif
+
+#if !defined (news1800) && !defined (sun386)
+#include <stdlib.h>
+#if !defined (apollo) && !defined (VMS)
+#include <unistd.h>
+#include <memory.h>
+#endif
+#endif
+#include <stdio.h>
+#include <string.h>
+
+typedef struct {
+ GC gc; /* graphics context for animation */
+ int npixels; /* number of valid entries in pixels */
+ Colormap cmap; /* current colormap */
+ unsigned long pixels[NUMCOLORS]; /* pixel values in the colormap */
+ unsigned long bgcol, fgcol; /* background and foreground pixel values */
+} perscreen;
+
+/* This stuff moved here from resource.c for the mode-specific options. */
+#define t_String 0
+#define t_Float 1
+#define t_Int 2
+#define t_Bool 3
+
+typedef struct {
+ caddr_t *var;
+ char *name;
+ char *arg_class;
+ char *def;
+ int type;
+} argtype;
+
+typedef struct {
+ char *opt;
+ char *desc;
+} OptionStruct;
+
+typedef struct {
+ int numopts;
+ XrmOptionDescRec *opts;
+ argtype *vars;
+ OptionStruct *desc;
+} ModeSpecOpt;
+/* End moved from resource.c */
+
+extern perscreen Scr[MAXSCREENS];
+extern Display *dsp;
+extern int screen;
+
+extern char *ProgramName;
+extern char *fontname;
+extern char *background;
+extern char *foreground;
+extern char *text_name;
+extern char *text_pass;
+extern char *text_info;
+extern char *text_valid;
+extern char *text_invalid;
+extern char *geometry;
+extern float saturation;
+extern int nicelevel;
+extern int delay;
+extern int batchcount;
+extern int cycles;
+extern int timeout;
+extern int lockdelay;
+#if defined(HAS_RPLAY) || defined(VMS_PLAY)
+extern char *locksound;
+extern char *infosound;
+extern char *validsound;
+/*extern char *invalidsound;*/
+#endif
+#ifdef AUTO_LOGOUT
+extern int forceLogout;
+#endif
+#ifdef LOGOUT_BUTTON
+extern int enable_button;
+extern char *logoutButtonLabel;
+extern char *logoutButtonHelp;
+extern char *logoutFailedString;
+#endif
+extern Bool usefirst;
+extern Bool mono;
+extern Bool nolock;
+extern Bool allowroot;
+extern Bool enablesaver;
+extern Bool allowaccess;
+extern Bool grabmouse;
+extern Bool echokeys;
+extern Bool verbose;
+extern Bool inwindow;
+extern Bool inroot;
+extern Bool timeelapsed;
+extern Bool install;
+extern int onepause;
+
+/* For modes with text, marquee & nose */
+extern char *program;
+extern char *messagesfile;
+extern char *messagefile;
+extern char *message;
+extern char *mfont;
+
+extern void (*callback) ();
+extern void (*init) ();
+
+extern void GetResources();
+extern void set_colormap();
+extern void fix_colormap();
+#ifdef __STDC__
+extern void error(char *, ...);
+#else
+extern void error();
+#endif
+extern void alarm_ctl();
+extern long seconds();
+
+/* For modes with text, marquee & nose */
+extern XFontStruct *get_font();
+extern char *get_words();
+extern void init_words();
+extern int is_ribbon();
+
+#ifdef LESS_THAN_AIX3_2
+#undef NULL
+#define NULL 0
+#endif /* LESS_THAN_AIX3_2 */
+
+#ifdef VMS
+#define OLD_EVENT_LOOP
+#endif
+
+#if defined(__STDC__) && (defined(__hpux) && defined(_PA_RISC1_1))
+#define MATHF
+#endif
+#ifdef MATHF
+#define SINF(n) sinf(n)
+#define COSF(n) cosf(n)
+#define FABSF(n) fabsf(n)
+#else
+#define SINF(n) ((float)sin((double)(n)))
+#define COSF(n) ((float)cos((double)(n)))
+#define FABSF(n) ((float)fabs((double)(n)))
+#endif
+
+#endif /* __XLOCK_H__ */
diff --git a/tdescreensaver/xsavers/xlockmore.h b/tdescreensaver/xsavers/xlockmore.h
new file mode 100644
index 00000000..277783ae
--- /dev/null
+++ b/tdescreensaver/xsavers/xlockmore.h
@@ -0,0 +1,261 @@
+#ifndef __XLOCK_XLOCK_H__
+#define __XLOCK_XLOCK_H__
+
+/*-
+ * @(#)xlock.h 4.00 97/01/01 xlockmore
+ *
+ * xlock.h - external interfaces for new modes and SYSV OS defines.
+ *
+ * Copyright (c) 1991 by Patrick J. Naughton.
+ *
+ * See xlock.c for copying information.
+ *
+ * Revision History:
+ *
+ * Changes of David Bagley <bagleyd@bigfoot.com>
+ * 12-May-95: Added defines for SunOS's Adjunct password file
+ * Dale A. Harris <rodmur@ecst.csuchico.edu>
+ * 18-Nov-94: Modified for TQNX 4.2 w/ Metrolink X server from Brian Campbell
+ * <brianc@qnx.com>.
+ * 11-Jul-94: added Bool flag: inwindow, which tells xlock to run in a
+ * window from Greg Bowering <greg@cs.adelaide.edu.au>
+ * 11-Jul-94: patch for Solaris SYR4 from Chris P. Ross <cross@eng.umd.edu>
+ * 28-Jun-94: Reorganized shadow stuff
+ * 24-Jun-94: Reorganized
+ * 22-Jun-94: Modified for VMS
+ * <Anthony.D.Clarke@Support.Hatfield.Raytheon.bae.eurokom.ie>
+ * 17-Jun-94: patched shadow passwords and bcopy and bzero for SYSV from
+ * <reggers@julian.uwo.ca>
+ * 21-Mar-94: patched the patch for AIXV3 and HP from
+ * <R.K.Lloyd@csc.liv.ac.uk>.
+ * 01-Dec-93: added patch for AIXV3 from
+ * (Tom McConnell, tmcconne@sedona.intel.com) also added a patch
+ * for HP-UX 8.0.
+ *
+ */
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xos.h>
+#include <X11/Xresource.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+/* out of main.cpp */
+#define MODE_NONE 0
+#define MODE_INSTALL 1
+#define MODE_SETUP 2
+#define MODE_PREVIEW 3
+#define MODE_TEST 4
+
+
+#ifndef MAXSCREENS
+#define MAXSCREENS 3
+#endif
+#ifndef NUMCOLORS
+#define NUMCOLORS 64
+#endif
+#ifndef MESSAGELINES
+#define MESSAGELINES 40
+#endif
+#define PASSLENGTH 120
+#define FALLBACK_FONTNAME "fixed"
+#ifndef DEF_MFONT
+#define DEF_MFONT "-*-times-*-*-*-*-18-*-*-*-*-*-*-*"
+#endif
+#ifndef DEF_PROGRAM /* Try the -o option ;) */
+#define DEF_PROGRAM "fortune -s"
+#endif
+
+#ifndef DEF_NONE3D
+#define DEF_NONE3D "Black"
+#endif
+#ifndef DEF_RIGHT3D
+#define DEF_RIGHT3D "Red"
+#endif
+#ifndef DEF_LEFT3D
+#define DEF_LEFT3D "Blue"
+#endif
+#ifndef DEF_BOTH3D
+#define DEF_BOTH3D "Magenta"
+#endif
+
+#ifndef DEF_ICONW
+#define DEF_ICONW 64 /* Age old default */
+#endif
+#ifndef DEF_ICONH
+#define DEF_ICONH 64
+#endif
+
+#define MINICONW 1 /* Will not see much */
+#define MINICONH 1
+
+#ifndef MAXICONW
+#define MAXICONW 256 /* Want users to know the screen is locked */
+#endif
+#ifndef MAXICONH
+#define MAXICONH 256 /* by a particular user */
+#endif
+
+#ifndef MIN
+#define MIN(a,b) (((a)<(b))?(a):(b))
+#endif
+
+#ifndef MAX
+#define MAX(a,b) (((a)>(b))?(a):(b))
+#endif
+
+#ifndef ABS
+#define ABS(a) ((a<0)?(-(a)):(a))
+#endif
+
+#include <math.h>
+#ifndef M_E
+#define M_E 2.7182818284590452354
+#endif
+#ifndef M_PI
+#define M_PI 3.14159265358979323846
+#endif
+#ifndef M_PI_2
+#define M_PI_2 1.57079632679489661923
+#endif
+#if VMS
+#include <unixlib.h>
+#endif
+#include <sys/types.h>
+#if 0
+#ifndef uid_t
+#define uid_t int
+#endif
+#ifndef gid_t
+#define gid_t int
+#endif
+#ifndef pid_t
+#define pid_t int
+#endif
+#ifndef size_t
+#define size_t unsigned
+#endif
+#endif
+#include <unistd.h>
+#if HAVE_MEMORY_H
+#include <memory.h>
+#endif
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#if HAVE_DIRENT_H
+#ifdef USE_XVMSUTILS
+#if 0
+#include "../xvmsutils/unix_types.h"
+#include "../xvmsutils/dirent.h"
+#else
+#include <X11/unix_types.h>
+#include <X11/dirent.h>
+#endif
+#else /* !USE_XVMSUTILS */
+#include <dirent.h>
+#endif /* !USE_XVMSUTILS */
+#else
+#define dirent direct
+#define NAMELEN(dirent) (dirent)->d_namelen
+#if HAVE_SYS_NDIR_H
+#include <sys/ndir.h>
+#endif
+#if HAVE_SYS_DIR_H
+#include <sys/dir.h>
+#endif
+#if HAVE_NDIR_H
+#include <ndir.h>
+#endif
+#endif
+#ifndef MAXNAMLEN
+#define MAXNAMLEN 256 /* maximum filename length */
+#endif
+#ifndef DIRBUF
+#define DIRBUF 512 /* buffer size for fs-indep. dirs */
+#endif
+
+typedef struct {
+ GC gc; /* graphics context for animation */
+ int npixels; /* number of valid entries in pixels */
+ Colormap cmap; /* current colormap */
+ unsigned long pixels[NUMCOLORS]; /* pixel values in the colormap */
+ unsigned long bgcol, fgcol; /* background and foreground pixel values */
+ unsigned long rightcol, leftcol; /* 3D color pixel values */
+ unsigned long nonecol, bothcol;
+} perscreen;
+
+#define t_String 0
+#define t_Float 1
+#define t_Int 2
+#define t_Bool 3
+
+typedef struct {
+ caddr_t *var;
+ char *name;
+ char *classname;
+ char *def;
+ int type;
+} argtype;
+
+typedef struct {
+ char *opt;
+ char *desc;
+} OptionStruct;
+
+typedef struct {
+ int numopts;
+ XrmOptionDescRec *opts;
+ int numvarsdesc;
+ argtype *vars;
+ OptionStruct *desc;
+} ModeSpecOpt;
+
+/* this must follow definition of ModeSpecOpt */
+#include "mode.h"
+
+#define IS_XBMDONE 1 /* Only need one mono image */
+#define IS_XBM 2
+#define IS_XBMFILE 3
+#define IS_XPM 4
+#define IS_XPMFILE 5
+#define IS_RASTERFILE 6
+
+extern void getResources(int argc, char **argv);
+extern unsigned long allocPixel(Display * display, Colormap cmap,
+ char *name, char *def);
+extern void setColormap(Display * display, Window window, Colormap map,
+ Bool inwindow);
+extern void reserveColors(ModeInfo * mi, Colormap cmap,
+ unsigned long *blackpix, unsigned long *whitepix);
+extern void fixColormap(Display * display, Window window,
+ int screen, float saturation,
+ Bool mono, Bool install, Bool inroot, Bool inwindow, Bool verbose);
+extern int visualClassFromName(char *name);
+extern void showVisualInfo(XVisualInfo * wantVis);
+#ifdef USE_GL
+extern int getVisual(ModeInfo * mi, XVisualInfo * wantVis, int mono);
+#endif
+
+extern unsigned long seconds(void);
+extern void finish(void);
+extern void error(char *s1,...);
+extern void warning(char *s1,...);
+
+#ifndef HAVE_STRDUP
+extern char *strdup(char *);
+#endif
+
+#ifdef MATHF
+#define SINF(n) sinf(n)
+#define COSF(n) cosf(n)
+#define FABSF(n) fabsf(n)
+#else
+#define SINF(n) ((float)sin((double)(n)))
+#define COSF(n) ((float)cos((double)(n)))
+#define FABSF(n) ((float)fabs((double)(n)))
+#endif
+
+#endif /* __XLOCK_XLOCK_H__ */
diff --git a/tdescreensaver/xsavers/xs_colors.c b/tdescreensaver/xsavers/xs_colors.c
new file mode 100644
index 00000000..2c77cf22
--- /dev/null
+++ b/tdescreensaver/xsavers/xs_colors.c
@@ -0,0 +1,693 @@
+/* xscreensaver, Copyright (c) 1997 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/* This file contains some utility routines for randomly picking the colors
+ to hack the screen with.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <math.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <X11/Xos.h>
+#include <X11/Xresource.h>
+
+#include "xs_visual.h"
+#include "xs_yarandom.h"
+#include "xs_hsv.h"
+#include "xs_colors.h"
+
+/* extern char *progname; */
+
+void
+free_colors(Display *dpy, Colormap cmap, XColor *colors, int ncolors)
+{
+ int i;
+ if (ncolors > 0)
+ {
+ unsigned long *pixels = (unsigned long *)
+ malloc(sizeof(*pixels) * ncolors);
+ for (i = 0; i < ncolors; i++)
+ pixels[i] = colors[i].pixel;
+ XFreeColors (dpy, cmap, pixels, ncolors, 0L);
+ free(pixels);
+ }
+}
+
+
+void
+allocate_writable_colors (Display *dpy, Colormap cmap,
+ unsigned long *pixels, int *ncolorsP)
+{
+ int desired = *ncolorsP;
+ int got = 0;
+ int requested = desired;
+ unsigned long *new_pixels = pixels;
+
+ *ncolorsP = 0;
+ while (got < desired
+ && requested > 0)
+ {
+ if (desired - got < requested)
+ requested = desired - got;
+
+ if (XAllocColorCells (dpy, cmap, False, 0, 0, new_pixels, requested))
+ {
+ /* Got all the pixels we asked for. */
+ new_pixels += requested;
+ got += requested;
+ }
+ else
+ {
+ /* We didn't get all/any of the pixels we asked for. This time, ask
+ for half as many. (If we do get all that we ask for, we ask for
+ the same number again next time, so we only do O(log(n)) server
+ roundtrips.)
+ */
+ requested = requested / 2;
+ }
+ }
+ *ncolorsP += got;
+}
+
+
+
+void
+make_color_ramp (Display *dpy, Colormap cmap,
+ int h1, double s1, double v1, /* 0-360, 0-1.0, 0-1.0 */
+ int h2, double s2, double v2, /* 0-360, 0-1.0, 0-1.0 */
+ XColor *colors, int *ncolorsP,
+ Bool closed_p,
+ Bool allocate_p,
+ Bool writable_p)
+{
+ int i;
+ int ncolors = *ncolorsP;
+ double dh, ds, dv; /* deltas */
+
+ AGAIN:
+
+ memset (colors, 0, (*ncolorsP) * sizeof(*colors));
+
+ if (closed_p)
+ ncolors = (ncolors / 2) + 1;
+
+ /* Note: unlike other routines in this module, this function assumes that
+ if h1 and h2 are more than 180 degrees apart, then the desired direction
+ is always from h1 to h2 (rather than the shorter path.) make_uniform
+ depends on this.
+ */
+ dh = ((double)h2 - (double)h1) / ncolors;
+ ds = (s2 - s1) / ncolors;
+ dv = (v2 - v1) / ncolors;
+
+ for (i = 0; i < ncolors; i++)
+ {
+ colors[i].flags = DoRed|DoGreen|DoBlue;
+ hsv_to_rgb ((int) (h1 + (i*dh)), (s1 + (i*ds)), (v1 + (i*dv)),
+ &colors[i].red, &colors[i].green, &colors[i].blue);
+ }
+
+ if (closed_p)
+ for (i = ncolors; i < *ncolorsP; i++)
+ colors[i] = colors[(*ncolorsP)-i];
+
+ if (!allocate_p)
+ return;
+
+ if (writable_p)
+ {
+ unsigned long *pixels = (unsigned long *)
+ malloc(sizeof(*pixels) * ((*ncolorsP) + 1));
+
+ /* allocate_writable_colors() won't do here, because we need exactly this
+ number of cells, or the color sequence we've chosen won't fit. */
+ if (! XAllocColorCells(dpy, cmap, False, 0, 0, pixels, *ncolorsP))
+ {
+ free(pixels);
+ goto FAIL;
+ }
+
+ for (i = 0; i < *ncolorsP; i++)
+ colors[i].pixel = pixels[i];
+ free (pixels);
+
+ XStoreColors (dpy, cmap, colors, *ncolorsP);
+ }
+ else
+ {
+ for (i = 0; i < *ncolorsP; i++)
+ {
+ XColor color;
+ color = colors[i];
+ if (XAllocColor (dpy, cmap, &color))
+ {
+ colors[i].pixel = color.pixel;
+ }
+ else
+ {
+ free_colors (dpy, cmap, colors, i);
+ goto FAIL;
+ }
+ }
+ }
+
+ return;
+
+ FAIL:
+ /* we weren't able to allocate all the colors we wanted;
+ decrease the requested number and try again.
+ */
+ ncolors = (ncolors > 170 ? ncolors - 20 :
+ ncolors > 100 ? ncolors - 10 :
+ ncolors > 75 ? ncolors - 5 :
+ ncolors > 25 ? ncolors - 3 :
+ ncolors > 10 ? ncolors - 2 :
+ ncolors > 2 ? ncolors - 1 :
+ 0);
+ *ncolorsP = ncolors;
+ if (ncolors > 0)
+ goto AGAIN;
+}
+
+
+#define MAXPOINTS 50 /* yeah, so I'm lazy */
+
+
+static void
+make_color_path (Display *dpy, Colormap cmap,
+ int npoints, int *h, double *s, double *v,
+ XColor *colors, int *ncolorsP,
+ Bool allocate_p,
+ Bool writable_p)
+{
+ int i, j, k;
+ int total_ncolors = *ncolorsP;
+
+ int ncolors[MAXPOINTS]; /* number of pixels per edge */
+ double dh[MAXPOINTS]; /* distance between pixels, per edge (0 - 360.0) */
+ double ds[MAXPOINTS]; /* distance between pixels, per edge (0 - 1.0) */
+ double dv[MAXPOINTS]; /* distance between pixels, per edge (0 - 1.0) */
+
+ if (npoints == 0)
+ {
+ *ncolorsP = 0;
+ return;
+ }
+ else if (npoints == 2) /* using make_color_ramp() will be faster */
+ {
+ make_color_ramp (dpy, cmap,
+ h[0], s[0], v[0], h[1], s[1], v[1],
+ colors, ncolorsP,
+ True, /* closed_p */
+ allocate_p, writable_p);
+ return;
+ }
+ else if (npoints >= MAXPOINTS)
+ {
+ npoints = MAXPOINTS-1;
+ }
+
+ AGAIN:
+
+ {
+ double DH[MAXPOINTS]; /* Distance between H values in the shortest
+ direction around the circle, that is, the
+ distance between 10 and 350 is 20.
+ (Range is 0 - 360.0.)
+ */
+ double edge[MAXPOINTS]; /* lengths of edges in unit HSV space. */
+ double ratio[MAXPOINTS]; /* proportions of the edges (total 1.0) */
+ double circum = 0;
+ double one_point_oh = 0; /* (debug) */
+
+ for (i = 0; i < npoints; i++)
+ {
+ int j = (i+1) % npoints;
+ double d = ((double) (h[i] - h[j])) / 360;
+ if (d < 0) d = -d;
+ if (d > 0.5) d = 0.5 - (d - 0.5);
+ DH[i] = d;
+ }
+
+ for (i = 0; i < npoints; i++)
+ {
+ int j = (i+1) % npoints;
+ edge[i] = sqrt((DH[i] * DH[j]) +
+ ((s[j] - s[i]) * (s[j] - s[i])) +
+ ((v[j] - v[i]) * (v[j] - v[i])));
+ circum += edge[i];
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\ncolors:");
+ for (i=0; i < npoints; i++)
+ fprintf(stderr, " (%d, %.3f, %.3f)", h[i], s[i], v[i]);
+ fprintf(stderr, "\nlengths:");
+ for (i=0; i < npoints; i++)
+ fprintf(stderr, " %.3f", edge[i]);
+#endif /* DEBUG */
+
+ if (circum < 0.0001)
+ goto FAIL;
+
+ for (i = 0; i < npoints; i++)
+ {
+ ratio[i] = edge[i] / circum;
+ one_point_oh += ratio[i];
+ }
+
+#ifdef DEBUG
+ fprintf(stderr, "\nratios:");
+ for (i=0; i < npoints; i++)
+ fprintf(stderr, " %.3f", ratio[i]);
+#endif /* DEBUG */
+
+ if (one_point_oh < 0.99999 || one_point_oh > 1.00001)
+ abort();
+
+ /* space the colors evenly along the circumference -- that means that the
+ number of pixels on a edge is proportional to the length of that edge
+ (relative to the lengths of the other edges.)
+ */
+ for (i = 0; i < npoints; i++)
+ ncolors[i] = total_ncolors * ratio[i];
+
+
+#ifdef DEBUG
+ fprintf(stderr, "\npixels:");
+ for (i=0; i < npoints; i++)
+ fprintf(stderr, " %d", ncolors[i]);
+ fprintf(stderr, " (%d)\n", total_ncolors);
+#endif /* DEBUG */
+
+ for (i = 0; i < npoints; i++)
+ {
+ int j = (i+1) % npoints;
+
+ if (ncolors[i] > 0)
+ {
+ dh[i] = 360 * (DH[i] / ncolors[i]);
+ ds[i] = (s[j] - s[i]) / ncolors[i];
+ dv[i] = (v[j] - v[i]) / ncolors[i];
+ }
+ }
+ }
+
+ memset (colors, 0, (*ncolorsP) * sizeof(*colors));
+
+ k = 0;
+ for (i = 0; i < npoints; i++)
+ {
+ int distance, direction;
+ distance = h[(i+1) % npoints] - h[i];
+ direction = (distance >= 0 ? -1 : 1);
+
+ if (distance > 180)
+ distance = 180 - (distance - 180);
+ else if (distance < -180)
+ distance = -(180 - ((-distance) - 180));
+ else
+ direction = -direction;
+
+#ifdef DEBUG
+ fprintf (stderr, "point %d: %3d %.2f %.2f\n",
+ i, h[i], s[i], v[i]);
+ fprintf(stderr, " h[i]=%d dh[i]=%.2f ncolors[i]=%d\n",
+ h[i], dh[i], ncolors[i]);
+#endif /* DEBUG */
+ for (j = 0; j < ncolors[i]; j++, k++)
+ {
+ double hh = (h[i] + (j * dh[i] * direction));
+ if (hh < 0) hh += 360;
+ else if (hh > 360) hh -= 0;
+ colors[k].flags = DoRed|DoGreen|DoBlue;
+ hsv_to_rgb ((int)
+ hh,
+ (s[i] + (j * ds[i])),
+ (v[i] + (j * dv[i])),
+ &colors[k].red, &colors[k].green, &colors[k].blue);
+#ifdef DEBUG
+ fprintf (stderr, "point %d+%d: %.2f %.2f %.2f %04X %04X %04X\n",
+ i, j,
+ hh,
+ (s[i] + (j * ds[i])),
+ (v[i] + (j * dv[i])),
+ colors[k].red, colors[k].green, colors[k].blue);
+#endif /* DEBUG */
+ }
+ }
+
+ /* Floating-point round-off can make us decide to use fewer colors. */
+ if (k < *ncolorsP)
+ {
+ *ncolorsP = k;
+ if (k <= 0)
+ return;
+ }
+
+ if (!allocate_p)
+ return;
+
+ if (writable_p)
+ {
+ unsigned long *pixels = (unsigned long *)
+ malloc(sizeof(*pixels) * ((*ncolorsP) + 1));
+
+ /* allocate_writable_colors() won't do here, because we need exactly this
+ number of cells, or the color sequence we've chosen won't fit. */
+ if (! XAllocColorCells(dpy, cmap, False, 0, 0, pixels, *ncolorsP))
+ {
+ free(pixels);
+ goto FAIL;
+ }
+
+ for (i = 0; i < *ncolorsP; i++)
+ colors[i].pixel = pixels[i];
+ free (pixels);
+
+ XStoreColors (dpy, cmap, colors, *ncolorsP);
+ }
+ else
+ {
+ for (i = 0; i < *ncolorsP; i++)
+ {
+ XColor color;
+ color = colors[i];
+ if (XAllocColor (dpy, cmap, &color))
+ {
+ colors[i].pixel = color.pixel;
+ }
+ else
+ {
+ free_colors (dpy, cmap, colors, i);
+ goto FAIL;
+ }
+ }
+ }
+
+ return;
+
+ FAIL:
+ /* we weren't able to allocate all the colors we wanted;
+ decrease the requested number and try again.
+ */
+ total_ncolors = (total_ncolors > 170 ? total_ncolors - 20 :
+ total_ncolors > 100 ? total_ncolors - 10 :
+ total_ncolors > 75 ? total_ncolors - 5 :
+ total_ncolors > 25 ? total_ncolors - 3 :
+ total_ncolors > 10 ? total_ncolors - 2 :
+ total_ncolors > 2 ? total_ncolors - 1 :
+ 0);
+ *ncolorsP = total_ncolors;
+ if (total_ncolors > 0)
+ goto AGAIN;
+}
+
+
+void
+make_color_loop (Display *dpy, Colormap cmap,
+ int h0, double s0, double v0, /* 0-360, 0-1.0, 0-1.0 */
+ int h1, double s1, double v1, /* 0-360, 0-1.0, 0-1.0 */
+ int h2, double s2, double v2, /* 0-360, 0-1.0, 0-1.0 */
+ XColor *colors, int *ncolorsP,
+ Bool allocate_p,
+ Bool writable_p)
+{
+ int h[3];
+ double s[3], v[3];
+ h[0] = h0; h[1] = h1; h[2] = h2;
+ s[0] = s0; s[1] = s1; s[2] = s2;
+ v[0] = v0; v[1] = v1; v[2] = v2;
+ make_color_path(dpy, cmap,
+ 3, h, s, v,
+ colors, ncolorsP,
+ allocate_p, writable_p);
+}
+
+
+static void
+complain (int wanted_colors, int got_colors,
+ Bool wanted_writable, Bool got_writable)
+{
+ if (wanted_writable && !got_writable)
+ fprintf(stderr,
+ "%s: wanted %d writable colors; got %d read-only colors.\n",
+ "colors (tdescreensaver)", wanted_colors, got_colors);
+
+ else if (wanted_colors > (got_colors + 10))
+ /* don't bother complaining if we're within ten pixels. */
+ fprintf(stderr, "%s: wanted %d%s colors; got %d.\n",
+ "colors (tdescreensaver)", wanted_colors, (got_writable ? " writable" : ""),
+ got_colors);
+}
+
+
+void
+make_smooth_colormap (Display *dpy, Visual *visual, Colormap cmap,
+ XColor *colors, int *ncolorsP,
+ Bool allocate_p,
+ Bool *writable_pP,
+ Bool verbose_p)
+{
+ int npoints;
+ int ncolors = *ncolorsP;
+ Bool wanted_writable = (allocate_p && writable_pP && *writable_pP);
+ int i;
+ int h[MAXPOINTS];
+ double s[MAXPOINTS];
+ double v[MAXPOINTS];
+ double total_s = 0;
+ double total_v = 0;
+ Screen *screen = DefaultScreenOfDisplay(dpy); /* #### WRONG! */
+
+ if (*ncolorsP <= 0) return;
+
+ {
+ int n = random() % 20;
+ if (n <= 5) npoints = 2; /* 30% of the time */
+ else if (n <= 15) npoints = 3; /* 50% of the time */
+ else if (n <= 18) npoints = 4; /* 15% of the time */
+ else npoints = 5; /* 5% of the time */
+ }
+
+ REPICK_ALL_COLORS:
+ for (i = 0; i < npoints; i++)
+ {
+ REPICK_THIS_COLOR:
+ h[i] = random() % 360;
+ s[i] = frand(1.0);
+ v[i] = frand(0.8) + 0.2;
+
+ /* Make sure that no two adjascent colors are *too* close together.
+ If they are, try again.
+ */
+ if (i > 0)
+ {
+ int j = (i+1 == npoints) ? 0 : (i-1);
+ double hi = ((double) h[i]) / 360;
+ double hj = ((double) h[j]) / 360;
+ double dh = hj - hi;
+ double distance;
+ if (dh < 0) dh = -dh;
+ if (dh > 0.5) dh = 0.5 - (dh - 0.5);
+ distance = sqrt ((dh * dh) +
+ ((s[j] - s[i]) * (s[j] - s[i])) +
+ ((v[j] - v[i]) * (v[j] - v[i])));
+ if (distance < 0.2)
+ goto REPICK_THIS_COLOR;
+ }
+ total_s += s[i];
+ total_v += v[i];
+ }
+
+ /* If the average saturation or intensity are too low, repick the colors,
+ so that we don't end up with a black-and-white or too-dark map.
+ */
+ if (total_s / npoints < 0.2)
+ goto REPICK_ALL_COLORS;
+ if (total_v / npoints < 0.3)
+ goto REPICK_ALL_COLORS;
+
+ /* If this visual doesn't support writable cells, don't bother trying.
+ */
+ if (wanted_writable && !has_writable_cells(screen, visual))
+ *writable_pP = False;
+
+ RETRY_NON_WRITABLE:
+ make_color_path (dpy, cmap, npoints, h, s, v, colors, &ncolors,
+ allocate_p, (writable_pP && *writable_pP));
+
+ /* If we tried for writable cells and got none, try for non-writable. */
+ if (allocate_p && *ncolorsP == 0 && *writable_pP)
+ {
+ *writable_pP = False;
+ goto RETRY_NON_WRITABLE;
+ }
+
+ if (verbose_p)
+ complain(*ncolorsP, ncolors, wanted_writable,
+ wanted_writable && *writable_pP);
+
+ *ncolorsP = ncolors;
+}
+
+
+void
+make_uniform_colormap (Display *dpy, Visual *visual, Colormap cmap,
+ XColor *colors, int *ncolorsP,
+ Bool allocate_p,
+ Bool *writable_pP,
+ Bool verbose_p)
+{
+ int ncolors = *ncolorsP;
+ Bool wanted_writable = (allocate_p && writable_pP && *writable_pP);
+ Screen *screen = DefaultScreenOfDisplay(dpy); /* #### WRONG! */
+
+ double S = ((double) (random() % 34) + 66) / 100.0; /* range 66%-100% */
+ double V = ((double) (random() % 34) + 66) / 100.0; /* range 66%-100% */
+
+ if (*ncolorsP <= 0) return;
+
+ /* If this visual doesn't support writable cells, don't bother trying. */
+ if (wanted_writable && !has_writable_cells(screen, visual))
+ *writable_pP = False;
+
+ RETRY_NON_WRITABLE:
+ make_color_ramp(dpy, cmap,
+ 0, S, V,
+ 359, S, V,
+ colors, &ncolors,
+ False, True, wanted_writable);
+
+ /* If we tried for writable cells and got none, try for non-writable. */
+ if (allocate_p && *ncolorsP == 0 && writable_pP && *writable_pP)
+ {
+ ncolors = *ncolorsP;
+ *writable_pP = False;
+ goto RETRY_NON_WRITABLE;
+ }
+
+ if (verbose_p)
+ complain(*ncolorsP, ncolors, wanted_writable,
+ wanted_writable && *writable_pP);
+
+ *ncolorsP = ncolors;
+}
+
+
+void
+make_random_colormap (Display *dpy, Visual *visual, Colormap cmap,
+ XColor *colors, int *ncolorsP,
+ Bool bright_p,
+ Bool allocate_p,
+ Bool *writable_pP,
+ Bool verbose_p)
+{
+ Bool wanted_writable = (allocate_p && writable_pP && *writable_pP);
+ int ncolors = *ncolorsP;
+ int i;
+ Screen *screen = DefaultScreenOfDisplay(dpy); /* #### WRONG! */
+
+ if (*ncolorsP <= 0) return;
+
+ /* If this visual doesn't support writable cells, don't bother trying. */
+ if (wanted_writable && !has_writable_cells(screen, visual))
+ *writable_pP = False;
+
+ for (i = 0; i < ncolors; i++)
+ {
+ colors[i].flags = DoRed|DoGreen|DoBlue;
+ if (bright_p)
+ {
+ int H = random() % 360; /* range 0-360 */
+ double S = ((double) (random()%70) + 30)/100.0; /* range 30%-100% */
+ double V = ((double) (random()%34) + 66)/100.0; /* range 66%-100% */
+ hsv_to_rgb (H, S, V,
+ &colors[i].red, &colors[i].green, &colors[i].blue);
+ }
+ else
+ {
+ colors[i].red = random() % 0xFFFF;
+ colors[i].green = random() % 0xFFFF;
+ colors[i].blue = random() % 0xFFFF;
+ }
+ }
+
+ if (!allocate_p)
+ return;
+
+ RETRY_NON_WRITABLE:
+ if (writable_pP && *writable_pP)
+ {
+ unsigned long *pixels = (unsigned long *)
+ malloc(sizeof(*pixels) * (ncolors + 1));
+
+ allocate_writable_colors (dpy, cmap, pixels, &ncolors);
+ if (ncolors > 0)
+ for (i = 0; i < ncolors; i++)
+ colors[i].pixel = pixels[i];
+ free (pixels);
+ if (ncolors > 0)
+ XStoreColors (dpy, cmap, colors, ncolors);
+ }
+ else
+ {
+ for (i = 0; i < ncolors; i++)
+ {
+ XColor color;
+ color = colors[i];
+ if (!XAllocColor (dpy, cmap, &color))
+ break;
+ colors[i].pixel = color.pixel;
+ }
+ ncolors = i;
+ }
+
+ /* If we tried for writable cells and got none, try for non-writable. */
+ if (allocate_p && ncolors == 0 && writable_pP && *writable_pP)
+ {
+ ncolors = *ncolorsP;
+ *writable_pP = False;
+ goto RETRY_NON_WRITABLE;
+ }
+
+ if (verbose_p)
+ complain(*ncolorsP, ncolors, wanted_writable,
+ wanted_writable && *writable_pP);
+
+ *ncolorsP = ncolors;
+}
+
+
+void
+rotate_colors (Display *dpy, Colormap cmap,
+ XColor *colors, int ncolors, int distance)
+{
+ int i;
+ XColor *colors2 = (XColor *) malloc(sizeof(*colors2) * ncolors);
+ if (ncolors < 2) return;
+ distance = distance % ncolors;
+ for (i = 0; i < ncolors; i++)
+ {
+ int j = i - distance;
+ if (j >= ncolors) j -= ncolors;
+ if (j < 0) j += ncolors;
+ colors2[i] = colors[j];
+ colors2[i].pixel = colors[i].pixel;
+ }
+ XStoreColors (dpy, cmap, colors2, ncolors);
+ XFlush(dpy);
+ memcpy(colors, colors2, sizeof(*colors) * ncolors);
+ free(colors2);
+}
diff --git a/tdescreensaver/xsavers/xs_colors.h b/tdescreensaver/xsavers/xs_colors.h
new file mode 100644
index 00000000..61421cf5
--- /dev/null
+++ b/tdescreensaver/xsavers/xs_colors.h
@@ -0,0 +1,140 @@
+/* xscreensaver, Copyright (c) 1992, 1997 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __COLORS_H__
+#define __COLORS_H__
+
+/* Like XFreeColors, but works on `XColor *' instead of `unsigned long *'
+ */
+extern void free_colors (Display *, Colormap, XColor *, int ncolors);
+
+
+/* Allocates writable, non-contiguous color cells. The number requested is
+ passed in *ncolorsP, and the number actually allocated is returned there.
+ (Unlike XAllocColorCells(), this will allocate as many as it can, instead
+ of failing if they can't all be allocated.)
+ */
+extern void allocate_writable_colors (Display *dpy, Colormap cmap,
+ unsigned long *pixels, int *ncolorsP);
+
+
+/* Generates a sequence of colors evenly spaced between the given pair
+ of HSV coordinates.
+
+ If closed_p is true, the colors will go from the first point to the
+ second then back to the first.
+
+ If allocate_p is true, the colors will be allocated from the map;
+ if enough colors can't be allocated, we will try for less, and the
+ result will be returned to ncolorsP.
+
+ If writable_p is true, writable color cells will be allocated;
+ otherwise, read-only cells will be allocated.
+ */
+extern void make_color_ramp (Display *dpy, Colormap cmap,
+ int h1, double s1, double v1,
+ int h2, double s2, double v2,
+ XColor *colors, int *ncolorsP,
+ Bool closed_p,
+ Bool allocate_p,
+ Bool writable_p);
+
+/* Generates a sequence of colors evenly spaced around the triangle
+ indicated by the thee HSV coordinates.
+
+ If allocate_p is true, the colors will be allocated from the map;
+ if enough colors can't be allocated, we will try for less, and the
+ result will be returned to ncolorsP.
+
+ If writable_p is true, writable color cells will be allocated;
+ otherwise, read-only cells will be allocated.
+ */
+extern void make_color_loop (Display *, Colormap,
+ int h1, double s1, double v1,
+ int h2, double s2, double v2,
+ int h3, double s3, double v3,
+ XColor *colors, int *ncolorsP,
+ Bool allocate_p,
+ Bool writable_p);
+
+
+/* Allocates a hopefully-interesting colormap, which will be a closed loop
+ without any sudden transitions.
+
+ If allocate_p is true, the colors will be allocated from the map;
+ if enough colors can't be allocated, we will try for less, and the
+ result will be returned to ncolorsP. An error message will be
+ printed on stderr (if verbose_p).
+
+ If *writable_pP is true, writable color cells will be allocated;
+ otherwise, read-only cells will be allocated. If no writable cells
+ cannot be allocated, we will try to allocate unwritable cells
+ instead, and print a message on stderr to that effect (if verbose_p).
+ */
+extern void make_smooth_colormap (Display *dpy, Visual *visual,
+ Colormap cmap,
+ XColor *colors, int *ncolorsP,
+ Bool allocate_p,
+ Bool *writable_pP,
+ Bool verbose_p);
+
+/* Allocates a uniform colormap which touches each hue of the spectrum,
+ evenly spaced. The saturation and intensity are chosen randomly, but
+ will be high enough to be visible.
+
+ If allocate_p is true, the colors will be allocated from the map;
+ if enough colors can't be allocated, we will try for less, and the
+ result will be returned to ncolorsP. An error message will be
+ printed on stderr (if verbose_p).
+
+ If *writable_pP is true, writable color cells will be allocated;
+ otherwise, read-only cells will be allocated. If no writable cells
+ cannot be allocated, we will try to allocate unwritable cells
+ instead, and print a message on stderr to that effect (if verbose_p).
+ */
+extern void make_uniform_colormap (Display *dpy, Visual *visual,
+ Colormap cmap,
+ XColor *colors, int *ncolorsP,
+ Bool allocate_p,
+ Bool *writable_pP,
+ Bool verbose_p);
+
+/* Allocates a random colormap (the colors are unrelated to one another.)
+ If `bright_p' is false, the colors will be completely random; if it is
+ true, all of the colors will be bright enough to see on a black background.
+
+ If allocate_p is true, the colors will be allocated from the map;
+ if enough colors can't be allocated, we will try for less, and the
+ result will be returned to ncolorsP. An error message will be
+ printed on stderr (if verbose_p).
+
+ If *writable_pP is true, writable color cells will be allocated;
+ otherwise, read-only cells will be allocated. If no writable cells
+ cannot be allocated, we will try to allocate unwritable cells
+ instead, and print a message on stderr to that effect (if verbose_p).
+ */
+extern void make_random_colormap (Display *dpy, Visual *visual,
+ Colormap cmap,
+ XColor *colors, int *ncolorsP,
+ Bool bright_p,
+ Bool allocate_p,
+ Bool *writable_pP,
+ Bool verbose_p);
+
+
+/* Assuming that the array of colors indicates the current state of a set
+ of writable color cells, this rotates the contents of the array by
+ `distance' steps, moving the colors of cell N to cell (N - distance).
+ */
+extern void rotate_colors (Display *, Colormap,
+ XColor *, int ncolors, int distance);
+
+#endif /* __COLORS_H__ */
diff --git a/tdescreensaver/xsavers/xs_hsv.c b/tdescreensaver/xsavers/xs_hsv.c
new file mode 100644
index 00000000..51385d00
--- /dev/null
+++ b/tdescreensaver/xsavers/xs_hsv.c
@@ -0,0 +1,81 @@
+/* xscreensaver, Copyright (c) 1992, 1997 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/* This file contains some utility routines for randomly picking the colors
+ to hack the screen with.
+ */
+
+/* #include "utils.h" */
+#include "xs_hsv.h"
+
+void
+hsv_to_rgb (int h, double s, double v,
+ unsigned short *r, unsigned short *g, unsigned short *b)
+{
+ double H, S, V, R, G, B;
+ double p1, p2, p3;
+ double f;
+ int i;
+
+ if (s < 0) s = 0;
+ if (v < 0) v = 0;
+ if (s > 1) s = 1;
+ if (v > 1) v = 1;
+
+ S = s; V = v;
+ H = (h % 360) / 60.0;
+ i = H;
+ f = H - i;
+ p1 = V * (1 - S);
+ p2 = V * (1 - (S * f));
+ p3 = V * (1 - (S * (1 - f)));
+ if (i == 0) { R = V; G = p3; B = p1; }
+ else if (i == 1) { R = p2; G = V; B = p1; }
+ else if (i == 2) { R = p1; G = V; B = p3; }
+ else if (i == 3) { R = p1; G = p2; B = V; }
+ else if (i == 4) { R = p3; G = p1; B = V; }
+ else { R = V; G = p1; B = p2; }
+ *r = R * 65535;
+ *g = G * 65535;
+ *b = B * 65535;
+}
+
+void
+rgb_to_hsv (unsigned short r, unsigned short g, unsigned short b,
+ int *h, double *s, double *v)
+{
+ double R, G, B, H, S, V;
+ double cmax, cmin;
+ double cmm;
+ int imax;
+ R = ((double) r) / 65535.0;
+ G = ((double) g) / 65535.0;
+ B = ((double) b) / 65535.0;
+ cmax = R; cmin = G; imax = 1;
+ if ( cmax < G ) { cmax = G; cmin = R; imax = 2; }
+ if ( cmax < B ) { cmax = B; imax = 3; }
+ if ( cmin > B ) { cmin = B; }
+ cmm = cmax - cmin;
+ V = cmax;
+ if (cmm == 0)
+ S = H = 0;
+ else
+ {
+ S = cmm / cmax;
+ if (imax == 1) H = (G - B) / cmm;
+ else if (imax == 2) H = 2.0 + (B - R) / cmm;
+ else /*if (imax == 3)*/ H = 4.0 + (R - G) / cmm;
+ if (H < 0) H += 6.0;
+ }
+ *h = (H * 60.0);
+ *s = S;
+ *v = V;
+}
diff --git a/tdescreensaver/xsavers/xs_hsv.h b/tdescreensaver/xsavers/xs_hsv.h
new file mode 100644
index 00000000..e0fdfb0f
--- /dev/null
+++ b/tdescreensaver/xsavers/xs_hsv.h
@@ -0,0 +1,27 @@
+/* xscreensaver, Copyright (c) 1992, 1997 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __HSV_H__
+#define __HSV_H__
+
+/* Converts between RGB and HSV color spaces.
+ R, G, and B are in the range 0 - 65535;
+ H is in the range 0 - 360;
+ S and V are in the range 0.0 - 1.0.
+ */
+extern void hsv_to_rgb (int h, double s, double v,
+ unsigned short *r,
+ unsigned short *g,
+ unsigned short *b);
+extern void rgb_to_hsv (unsigned short r, unsigned short g, unsigned short b,
+ int *h, double *s, double *v);
+
+#endif /* __HSV_H__ */
diff --git a/tdescreensaver/xsavers/xs_utils.h b/tdescreensaver/xsavers/xs_utils.h
new file mode 100644
index 00000000..284bb86d
--- /dev/null
+++ b/tdescreensaver/xsavers/xs_utils.h
@@ -0,0 +1,22 @@
+/* xscreensaver, Copyright (c) 1997 Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <math.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xos.h>
diff --git a/tdescreensaver/xsavers/xs_visual.c b/tdescreensaver/xsavers/xs_visual.c
new file mode 100644
index 00000000..bc8d31f7
--- /dev/null
+++ b/tdescreensaver/xsavers/xs_visual.c
@@ -0,0 +1,473 @@
+/* xscreensaver, Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998
+ * by Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+/* This file contains some code for intelligently picking the best visual
+ (where "best" is biased in the direction of either: high color counts;
+ or: having writable color cells...)
+ */
+
+#include "xs_utils.h"
+
+#include "xs_visual.h"
+
+#include <X11/Xutil.h>
+
+/* extern char *progname; */
+
+
+#ifndef isupper
+# define isupper(c) ((c) >= 'A' && (c) <= 'Z')
+#endif
+#ifndef _tolower
+# define _tolower(c) ((c) - 'A' + 'a')
+#endif
+
+
+static Visual *pick_best_visual (Screen *, Bool, Bool);
+static Visual *pick_mono_visual (Screen *);
+static Visual *pick_best_visual_of_class (Screen *, int);
+static Visual *id_to_visual (Screen *, int);
+static Visual *id_to_visual (Screen *screen, int id);
+
+
+#define DEFAULT_VISUAL -1
+#define BEST_VISUAL -2
+#define MONO_VISUAL -3
+#define GRAY_VISUAL -4
+#define COLOR_VISUAL -5
+#define SPECIFIC_VISUAL -6
+
+Visual *
+get_visual (Screen *screen, const char *string, Bool prefer_writable_cells,
+ Bool verbose_p)
+{
+ char *v = (string ? strdup(string) : 0);
+ char c, *tmp;
+ int vclass;
+ unsigned long id;
+ Visual *result = 0;
+
+ if (v)
+ for (tmp = v; *tmp; tmp++)
+ if (isupper (*tmp)) *tmp = _tolower (*tmp);
+
+ if (!v) vclass = BEST_VISUAL;
+ else if (!strcmp (v, "default")) vclass = DEFAULT_VISUAL;
+ else if (!strcmp (v, "best")) vclass = BEST_VISUAL;
+ else if (!strcmp (v, "mono")) vclass = MONO_VISUAL;
+ else if (!strcmp (v, "monochrome")) vclass = MONO_VISUAL;
+ else if (!strcmp (v, "gray")) vclass = GRAY_VISUAL;
+ else if (!strcmp (v, "grey")) vclass = GRAY_VISUAL;
+ else if (!strcmp (v, "color")) vclass = COLOR_VISUAL;
+ else if (!strcmp (v, "staticgray")) vclass = StaticGray;
+ else if (!strcmp (v, "staticcolor")) vclass = StaticColor;
+ else if (!strcmp (v, "truecolor")) vclass = TrueColor;
+ else if (!strcmp (v, "grayscale")) vclass = GrayScale;
+ else if (!strcmp (v, "greyscale")) vclass = GrayScale;
+ else if (!strcmp (v, "pseudocolor")) vclass = PseudoColor;
+ else if (!strcmp (v, "directcolor")) vclass = DirectColor;
+ else if (1 == sscanf (v, " %ld %c", &id, &c)) vclass = SPECIFIC_VISUAL;
+ else if (1 == sscanf (v, " 0x%lx %c", &id, &c)) vclass = SPECIFIC_VISUAL;
+ else
+ {
+ fprintf (stderr, "%s: unrecognized visual \"%s\".\n", "tdescreensaver", v);
+ vclass = DEFAULT_VISUAL;
+ }
+
+ if (vclass == DEFAULT_VISUAL)
+ result = DefaultVisualOfScreen (screen);
+ else if (vclass == BEST_VISUAL)
+ result = pick_best_visual (screen, prefer_writable_cells, False);
+ else if (vclass == MONO_VISUAL)
+ {
+ result = pick_mono_visual (screen);
+ if (!result && verbose_p)
+ fprintf (stderr, "%s: no monochrome visuals.\n", "tdescreensaver");
+ }
+ else if (vclass == GRAY_VISUAL)
+ {
+ if (prefer_writable_cells)
+ result = pick_best_visual_of_class (screen, GrayScale);
+ if (!result)
+ result = pick_best_visual_of_class (screen, StaticGray);
+ if (!result)
+ result = pick_best_visual_of_class (screen, GrayScale);
+ if (!result && verbose_p)
+ fprintf (stderr, "%s: no GrayScale or StaticGray visuals.\n",
+ "tdescreensaver");
+ }
+ else if (vclass == COLOR_VISUAL)
+ {
+ int class;
+ /* First see if the default visual will do. */
+ result = DefaultVisualOfScreen (screen);
+ class = visual_class(screen, result);
+ if (class != TrueColor &&
+ class != PseudoColor &&
+ class != DirectColor &&
+ class != StaticColor)
+ result = 0;
+ if (result && visual_depth(screen, result) <= 1)
+ result = 0;
+
+ /* Else, find the best non-default color visual */
+ if (!result)
+ result = pick_best_visual (screen, prefer_writable_cells, True);
+
+ if (!result && verbose_p)
+ fprintf (stderr, "%s: no color visuals.\n", "tdescreensaver");
+ }
+ else if (vclass == SPECIFIC_VISUAL)
+ {
+ result = id_to_visual (screen, id);
+ if (!result && verbose_p)
+ fprintf (stderr, "%s: no visual with id 0x%x.\n", "tdescreensaver",
+ (unsigned int) id);
+ }
+ else
+ {
+ Visual *visual = pick_best_visual_of_class (screen, vclass);
+ if (visual)
+ result = visual;
+ else if (verbose_p)
+ fprintf (stderr, "%s: no visual of class %s.\n", "tdescreensaver", v);
+ }
+
+ if (v) free (v);
+ return result;
+}
+
+Visual *
+get_visual_resource (Screen *screen, char *name, char *class,
+ Bool prefer_writable_cells)
+{
+/*
+ char *string = get_string_resource (name, class);
+ Visual *v = get_visual (screen, string, prefer_writable_cells, True);
+ if (string)
+ free(string);
+ if (v)
+ return v;
+ else
+*/
+ return DefaultVisualOfScreen (screen);
+}
+
+
+static Visual *
+pick_best_visual (Screen *screen, Bool prefer_writable_cells, Bool color_only)
+{
+ Visual *visual;
+
+ if (!prefer_writable_cells)
+ {
+ /* If we don't prefer writable cells, then the "best" visual is the one
+ on which we can allocate the largest range and number of colors.
+
+ Therefore, a TrueColor visual which is at least 16 bits deep is best.
+ (The assumption here being that a TrueColor of less than 16 bits is
+ really just a PseudoColor visual with a pre-allocated color cube.)
+
+ The next best thing is a PseudoColor visual of any type. After that
+ come the non-colormappable visuals, and non-color visuals.
+ */
+ if ((visual = pick_best_visual_of_class (screen, TrueColor)) &&
+ visual_depth (screen, visual) >= 16)
+ return visual;
+ }
+
+#define TRY_CLASS(CLASS) \
+ if ((visual = pick_best_visual_of_class (screen, CLASS)) && \
+ (!color_only || visual_depth(screen, visual) > 1)) \
+ return visual
+ TRY_CLASS(PseudoColor);
+ TRY_CLASS(TrueColor);
+ TRY_CLASS(DirectColor);
+ TRY_CLASS(StaticColor);
+ if (!color_only)
+ {
+ TRY_CLASS(GrayScale);
+ TRY_CLASS(StaticGray);
+ }
+#undef TRY_CLASS
+
+ visual = DefaultVisualOfScreen (screen);
+ if (!color_only || visual_depth(screen, visual) > 1)
+ return visual;
+ else
+ return 0;
+}
+
+static Visual *
+pick_mono_visual (Screen *screen)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ XVisualInfo vi_in, *vi_out;
+ int out_count;
+
+ vi_in.depth = 1;
+ vi_in.screen = screen_number (screen);
+ vi_out = XGetVisualInfo (dpy, (VisualDepthMask | VisualScreenMask),
+ &vi_in, &out_count);
+ if (vi_out)
+ {
+ Visual *v = (out_count > 0 ? vi_out [0].visual : 0);
+ if (v && vi_out[0].depth != 1)
+ v = 0;
+ XFree ((char *) vi_out);
+ return v;
+ }
+ else
+ return 0;
+}
+
+
+static Visual *
+pick_best_visual_of_class (Screen *screen, int visual_class)
+{
+ /* The best visual of a class is the one which on which we can allocate
+ the largest range and number of colors, which means the one with the
+ greatest depth and number of cells.
+
+ (But actually, for XDaliClock, all visuals of the same class are
+ probably equivalent - either we have writable cells or we don't.)
+ */
+ Display *dpy = DisplayOfScreen (screen);
+ XVisualInfo vi_in, *vi_out;
+ int out_count;
+
+ vi_in.class = visual_class;
+ vi_in.screen = screen_number (screen);
+ vi_out = XGetVisualInfo (dpy, (VisualClassMask | VisualScreenMask),
+ &vi_in, &out_count);
+ if (vi_out)
+ {
+ /* choose the 'best' one, if multiple */
+ int i, best;
+ Visual *visual;
+ for (i = 0, best = 0; i < out_count; i++)
+ /* It's better if it's deeper, or if it's the same depth with
+ more cells (does that ever happen? Well, it could...) */
+ if ((vi_out [i].depth > vi_out [best].depth) ||
+ ((vi_out [i].depth == vi_out [best].depth) &&
+ (vi_out [i].colormap_size > vi_out [best].colormap_size)))
+ best = i;
+ visual = (best < out_count ? vi_out [best].visual : 0);
+ XFree ((char *) vi_out);
+ return visual;
+ }
+ else
+ return 0;
+}
+
+static Visual *
+id_to_visual (Screen *screen, int id)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ XVisualInfo vi_in, *vi_out;
+ int out_count;
+ vi_in.screen = screen_number (screen);
+ vi_in.visualid = id;
+ vi_out = XGetVisualInfo (dpy, (VisualScreenMask | VisualIDMask),
+ &vi_in, &out_count);
+ if (vi_out)
+ {
+ Visual *v = vi_out[0].visual;
+ XFree ((char *) vi_out);
+ return v;
+ }
+ return 0;
+}
+
+int
+visual_depth (Screen *screen, Visual *visual)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ XVisualInfo vi_in, *vi_out;
+ int out_count, d;
+ vi_in.screen = screen_number (screen);
+ vi_in.visualid = XVisualIDFromVisual (visual);
+ vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask,
+ &vi_in, &out_count);
+ if (! vi_out) abort ();
+ d = vi_out [0].depth;
+ XFree ((char *) vi_out);
+ return d;
+}
+
+
+#if 0
+/* You very probably don't want to be using this.
+ Pixmap depth doesn't refer to the depths of pixmaps, but rather, to
+ the depth of protocol-level on-the-wire pixmap data, that is, XImages.
+ To get this info, you should be looking at XImage->bits_per_pixel
+ instead. (And allocating the data for your XImage structures by
+ multiplying ximage->bytes_per_line by ximage->height.)
+ */
+int
+visual_pixmap_depth (Screen *screen, Visual *visual)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ int vdepth = visual_depth (screen, visual);
+ int pdepth = vdepth;
+ int i, pfvc = 0;
+ XPixmapFormatValues *pfv = XListPixmapFormats (dpy, &pfvc);
+
+ /* Return the first matching depth in the pixmap formats. If there are no
+ matching pixmap formats (which shouldn't be able to happen at all) then
+ return the visual depth instead. */
+ for (i = 0; i < pfvc; i++)
+ if (pfv[i].depth == vdepth)
+ {
+ pdepth = pfv[i].bits_per_pixel;
+ break;
+ }
+ if (pfv)
+ XFree (pfv);
+ return pdepth;
+}
+#endif /* 0 */
+
+
+int
+visual_class (Screen *screen, Visual *visual)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ XVisualInfo vi_in, *vi_out;
+ int out_count, c;
+ vi_in.screen = screen_number (screen);
+ vi_in.visualid = XVisualIDFromVisual (visual);
+ vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask,
+ &vi_in, &out_count);
+ if (! vi_out) abort ();
+ c = vi_out [0].class;
+ XFree ((char *) vi_out);
+ return c;
+}
+
+Bool
+has_writable_cells (Screen *screen, Visual *visual)
+{
+ switch (visual_class (screen, visual))
+ {
+ case GrayScale: /* Mappable grays. */
+ case PseudoColor: /* Mappable colors. */
+ return True;
+ case StaticGray: /* Fixed grays. */
+ case TrueColor: /* Fixed colors. */
+ case StaticColor: /* (What's the difference again?) */
+ case DirectColor: /* DirectColor visuals are like TrueColor, but have
+ three colormaps - one for each component of RGB.
+ Screw it. */
+ return False;
+ default:
+ abort();
+ }
+}
+
+void
+describe_visual (FILE *f, Screen *screen, Visual *visual, Bool private_cmap_p)
+{
+ char n[10];
+ Display *dpy = DisplayOfScreen (screen);
+ XVisualInfo vi_in, *vi_out;
+ int out_count;
+ vi_in.screen = screen_number (screen);
+ vi_in.visualid = XVisualIDFromVisual (visual);
+ vi_out = XGetVisualInfo (dpy, (VisualScreenMask | VisualIDMask),
+ &vi_in, &out_count);
+ if (! vi_out) abort ();
+ if (private_cmap_p)
+ sprintf(n, "%3d", vi_out->colormap_size);
+ else
+ strcpy(n, "default");
+
+ fprintf (f, "0x%02x (%s depth: %2d, cmap: %s)\n",
+ (unsigned int) vi_out->visualid,
+ (vi_out->class == StaticGray ? "StaticGray, " :
+ vi_out->class == StaticColor ? "StaticColor," :
+ vi_out->class == TrueColor ? "TrueColor, " :
+ vi_out->class == GrayScale ? "GrayScale, " :
+ vi_out->class == PseudoColor ? "PseudoColor," :
+ vi_out->class == DirectColor ? "DirectColor," :
+ "UNKNOWN: "),
+ vi_out->depth, n);
+ XFree ((char *) vi_out);
+}
+
+int
+screen_number (Screen *screen)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ int i;
+ for (i = 0; i < ScreenCount (dpy); i++)
+ if (ScreenOfDisplay (dpy, i) == screen)
+ return i;
+ abort ();
+}
+
+int
+visual_cells (Screen *screen, Visual *visual)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ XVisualInfo vi_in, *vi_out;
+ int out_count, c;
+ vi_in.screen = screen_number (screen);
+ vi_in.visualid = XVisualIDFromVisual (visual);
+ vi_out = XGetVisualInfo (dpy, VisualScreenMask|VisualIDMask,
+ &vi_in, &out_count);
+ if (! vi_out) abort ();
+ c = vi_out [0].colormap_size;
+ XFree ((char *) vi_out);
+ return c;
+}
+
+Visual *
+find_similar_visual(Screen *screen, Visual *old_visual)
+{
+ Display *dpy = DisplayOfScreen (screen);
+ XVisualInfo vi_in, *vi_out;
+ Visual *result = 0;
+ int out_count;
+
+ vi_in.screen = screen_number (screen);
+ vi_in.class = visual_class (screen, old_visual);
+ vi_in.depth = visual_depth (screen, old_visual);
+
+ /* Look for a visual of the same class and depth.
+ */
+ vi_out = XGetVisualInfo (dpy, (VisualScreenMask | VisualClassMask |
+ VisualDepthMask),
+ &vi_in, &out_count);
+ if (vi_out && out_count > 0)
+ result = vi_out[0].visual;
+ if (vi_out) XFree (vi_out);
+ vi_out = 0;
+
+ /* Failing that, look for a visual of the same class.
+ */
+ if (!result)
+ {
+ vi_out = XGetVisualInfo (dpy, (VisualScreenMask | VisualClassMask),
+ &vi_in, &out_count);
+ if (vi_out && out_count > 0)
+ result = vi_out[0].visual;
+ if (vi_out) XFree (vi_out);
+ vi_out = 0;
+ }
+
+ /* Failing that, return the default visual. */
+ if (!result)
+ result = DefaultVisualOfScreen (screen);
+
+ return result;
+}
diff --git a/tdescreensaver/xsavers/xs_visual.h b/tdescreensaver/xsavers/xs_visual.h
new file mode 100644
index 00000000..2a0b3534
--- /dev/null
+++ b/tdescreensaver/xsavers/xs_visual.h
@@ -0,0 +1,27 @@
+/* xscreensaver, Copyright (c) 1993-1998 by Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __VISUAL_H__
+#define __VISUAL_H__
+
+extern Visual *get_visual (Screen *, const char *name, Bool, Bool);
+extern Visual *get_visual_resource (Screen *, char *, char *, Bool);
+extern int visual_depth (Screen *, Visual *);
+/* extern int visual_pixmap_depth (Screen *, Visual *); */
+extern int visual_class (Screen *, Visual *);
+extern int visual_cells (Screen *, Visual *);
+extern int screen_number (Screen *);
+extern Visual *find_similar_visual (Screen *, Visual *old);
+extern void describe_visual (FILE *f, Screen *, Visual *, Bool private_cmap_p);
+extern Visual *get_overlay_visual (Screen *, unsigned long *pixel_return);
+extern Bool has_writable_cells (Screen *screen, Visual *visual);
+
+#endif /* __VISUAL_H__ */
diff --git a/tdescreensaver/xsavers/xs_yarandom.h b/tdescreensaver/xsavers/xs_yarandom.h
new file mode 100644
index 00000000..f803d23c
--- /dev/null
+++ b/tdescreensaver/xsavers/xs_yarandom.h
@@ -0,0 +1,52 @@
+/* xscreensaver, Copyright (c) 1997 by Jamie Zawinski <jwz@jwz.org>
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation. No representations are made about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ */
+
+#ifndef __YARANDOM_H__
+#define __YARANDOM_H__
+
+#undef random
+#undef rand
+#undef drand48
+#undef srandom
+#undef srand
+#undef srand48
+#undef frand
+
+#ifdef VMS
+# include "vms-gtod.h"
+#endif
+
+/* #define random() ya_random()
+ #define srandom(i) ya_rand_init(0) */
+
+extern unsigned int ya_random (void);
+extern void ya_rand_init (unsigned int);
+
+
+#if defined (__GNUC__) && (__GNUC__ >= 2)
+ /* Implement frand using GCC's statement-expression extension. */
+
+# define frand(f) \
+ ({ double tmp = (((double) random()) / \
+ (((double) ((unsigned int)~0)) / ((double) (f)))); \
+ tmp < 0 ? (-tmp) : tmp; })
+
+#else /* not GCC2 - implement frand using a global variable.*/
+
+static double _frand_tmp_;
+# define frand(f) \
+ (_frand_tmp_ = (((double) random()) / \
+ (((double) ((unsigned int)~0)) / ((double) (f)))), \
+ _frand_tmp_ < 0 ? (-_frand_tmp_) : _frand_tmp_)
+
+#endif /* not GCC2 */
+
+#endif /* __YARANDOM_H__ */