From ae2a03c2941bf92573f89b88ef73f8aa842bea0a Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: [PATCH] Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdetoys@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- AUTHORS | 4 + COPYING | 346 + COPYING-DOCS | 397 + INSTALL | 176 + Makefile.am.in | 6 + Makefile.cvs | 14 + README | 47 + amor/AmorIface.h | 49 + amor/Makefile.am | 38 + amor/TODO | 15 + amor/amor.cpp | 1024 +++ amor/amor.desktop | 74 + amor/amor.h | 164 + amor/amoranim.cpp | 254 + amor/amoranim.h | 117 + amor/amorbubble.cpp | 250 + amor/amorbubble.h | 81 + amor/amorconfig.cpp | 83 + amor/amorconfig.h | 58 + amor/amordialog.cpp | 285 + amor/amordialog.h | 107 + amor/amorpm.cpp | 94 + amor/amorpm.h | 64 + amor/amortips.cpp | 181 + amor/amortips.h | 60 + amor/amorwidget.cpp | 125 + amor/amorwidget.h | 67 + amor/configure.in.in | 3 + amor/data/Makefile.am | 14 + amor/data/billyrc | 129 + amor/data/blobrc | 312 + amor/data/bonhommerc | 193 + amor/data/bsdrc | 128 + amor/data/eyesrc | 232 + amor/data/ghostrc | 183 + amor/data/nekorc | 202 + amor/data/pics/Makefile.am | 1 + amor/data/pics/animated/Makefile.am | 1 + amor/data/pics/animated/blob/Makefile.am | 82 + amor/data/pics/animated/blob/blob.png | Bin 0 -> 556 bytes .../pics/animated/blob/blob_BeamDown1.png | Bin 0 -> 186 bytes .../pics/animated/blob/blob_BeamDown2.png | Bin 0 -> 247 bytes .../pics/animated/blob/blob_BeamDown3.png | Bin 0 -> 465 bytes .../pics/animated/blob/blob_BeamDown4.png | Bin 0 -> 720 bytes .../pics/animated/blob/blob_BeamDown5.png | Bin 0 -> 662 bytes .../pics/animated/blob/blob_BeamDown6.png | Bin 0 -> 727 bytes .../pics/animated/blob/blob_BeamDown7.png | Bin 0 -> 879 bytes .../pics/animated/blob/blob_BeamDown8.png | Bin 0 -> 924 bytes .../pics/animated/blob/blob_BeamDown9.png | Bin 0 -> 689 bytes amor/data/pics/animated/blob/blob_BeamUp1.png | Bin 0 -> 646 bytes .../data/pics/animated/blob/blob_BeamUp10.png | Bin 0 -> 345 bytes amor/data/pics/animated/blob/blob_BeamUp2.png | Bin 0 -> 648 bytes amor/data/pics/animated/blob/blob_BeamUp3.png | Bin 0 -> 713 bytes amor/data/pics/animated/blob/blob_BeamUp4.png | Bin 0 -> 787 bytes amor/data/pics/animated/blob/blob_BeamUp5.png | Bin 0 -> 615 bytes amor/data/pics/animated/blob/blob_BeamUp6.png | Bin 0 -> 581 bytes amor/data/pics/animated/blob/blob_BeamUp7.png | Bin 0 -> 582 bytes amor/data/pics/animated/blob/blob_BeamUp8.png | Bin 0 -> 701 bytes amor/data/pics/animated/blob/blob_BeamUp9.png | Bin 0 -> 611 bytes amor/data/pics/animated/blob/blob_b1.png | Bin 0 -> 511 bytes amor/data/pics/animated/blob/blob_b2.png | Bin 0 -> 431 bytes amor/data/pics/animated/blob/blob_e1.png | Bin 0 -> 618 bytes amor/data/pics/animated/blob/blob_ex1.png | Bin 0 -> 580 bytes amor/data/pics/animated/blob/blob_f1.png | Bin 0 -> 478 bytes amor/data/pics/animated/blob/blob_f2.png | Bin 0 -> 388 bytes amor/data/pics/animated/blob/blob_f3.png | Bin 0 -> 272 bytes amor/data/pics/animated/blob/blob_fire10.png | Bin 0 -> 235 bytes amor/data/pics/animated/blob/blob_fire11.png | Bin 0 -> 166 bytes amor/data/pics/animated/blob/blob_fire2.png | Bin 0 -> 594 bytes amor/data/pics/animated/blob/blob_fire3.png | Bin 0 -> 651 bytes amor/data/pics/animated/blob/blob_fire4.png | Bin 0 -> 681 bytes amor/data/pics/animated/blob/blob_fire5.png | Bin 0 -> 600 bytes amor/data/pics/animated/blob/blob_fire6.png | Bin 0 -> 627 bytes amor/data/pics/animated/blob/blob_fire7.png | Bin 0 -> 574 bytes amor/data/pics/animated/blob/blob_fire8.png | Bin 0 -> 391 bytes amor/data/pics/animated/blob/blob_fire9.png | Bin 0 -> 243 bytes amor/data/pics/animated/blob/blob_g1.png | Bin 0 -> 593 bytes amor/data/pics/animated/blob/blob_g2.png | Bin 0 -> 573 bytes amor/data/pics/animated/blob/blob_gl1.png | Bin 0 -> 587 bytes amor/data/pics/animated/blob/blob_gl2.png | Bin 0 -> 587 bytes amor/data/pics/animated/blob/blob_gl3.png | Bin 0 -> 468 bytes amor/data/pics/animated/blob/blob_h1.png | Bin 0 -> 606 bytes amor/data/pics/animated/blob/blob_h2.png | Bin 0 -> 617 bytes amor/data/pics/animated/blob/blob_h3.png | Bin 0 -> 623 bytes amor/data/pics/animated/blob/blob_jet1.png | Bin 0 -> 559 bytes amor/data/pics/animated/blob/blob_jet2.png | Bin 0 -> 574 bytes amor/data/pics/animated/blob/blob_jet3.png | Bin 0 -> 608 bytes amor/data/pics/animated/blob/blob_jet4.png | Bin 0 -> 638 bytes amor/data/pics/animated/blob/blob_l_jet1.png | Bin 0 -> 556 bytes amor/data/pics/animated/blob/blob_l_jet2.png | Bin 0 -> 566 bytes amor/data/pics/animated/blob/blob_l_jet3.png | Bin 0 -> 603 bytes amor/data/pics/animated/blob/blob_l_jet4.png | Bin 0 -> 637 bytes amor/data/pics/animated/blob/blob_l_turn1.png | Bin 0 -> 605 bytes amor/data/pics/animated/blob/blob_l_turn2.png | Bin 0 -> 526 bytes amor/data/pics/animated/blob/blob_l_turn3.png | Bin 0 -> 482 bytes amor/data/pics/animated/blob/blob_l_turn4.png | Bin 0 -> 472 bytes amor/data/pics/animated/blob/blob_r135.png | Bin 0 -> 633 bytes amor/data/pics/animated/blob/blob_r180.png | Bin 0 -> 574 bytes amor/data/pics/animated/blob/blob_r225.png | Bin 0 -> 656 bytes amor/data/pics/animated/blob/blob_r270.png | Bin 0 -> 553 bytes amor/data/pics/animated/blob/blob_r315.png | Bin 0 -> 639 bytes amor/data/pics/animated/blob/blob_r45.png | Bin 0 -> 649 bytes amor/data/pics/animated/blob/blob_r90.png | Bin 0 -> 559 bytes amor/data/pics/animated/blob/blob_r_turn1.png | Bin 0 -> 594 bytes amor/data/pics/animated/blob/blob_r_turn2.png | Bin 0 -> 505 bytes amor/data/pics/animated/blob/blob_r_turn3.png | Bin 0 -> 475 bytes amor/data/pics/animated/blob/blob_r_turn4.png | Bin 0 -> 465 bytes amor/data/pics/animated/blob/blob_s1.png | Bin 0 -> 586 bytes amor/data/pics/animated/blob/blob_s2.png | Bin 0 -> 605 bytes amor/data/pics/animated/blob/blob_s3.png | Bin 0 -> 610 bytes amor/data/pics/animated/blob/blob_sl1.png | Bin 0 -> 511 bytes amor/data/pics/animated/blob/blob_sl2.png | Bin 0 -> 498 bytes amor/data/pics/animated/blob/blob_sl3.png | Bin 0 -> 487 bytes amor/data/pics/animated/blob/blob_sl4.png | Bin 0 -> 454 bytes amor/data/pics/animated/blob/blob_z1.png | Bin 0 -> 400 bytes amor/data/pics/animated/blob/blob_z2.png | Bin 0 -> 251 bytes amor/data/pics/animated/blob/blob_z3.png | Bin 0 -> 222 bytes amor/data/pics/animated/bonhomme/Makefile.am | 46 + amor/data/pics/animated/bonhomme/b-f.png | Bin 0 -> 276 bytes amor/data/pics/animated/bonhomme/b-f2.png | Bin 0 -> 285 bytes amor/data/pics/animated/bonhomme/b1-r.png | Bin 0 -> 325 bytes amor/data/pics/animated/bonhomme/b1.png | Bin 0 -> 322 bytes amor/data/pics/animated/bonhomme/b2-r.png | Bin 0 -> 301 bytes amor/data/pics/animated/bonhomme/b2.png | Bin 0 -> 295 bytes amor/data/pics/animated/bonhomme/b3-r.png | Bin 0 -> 238 bytes amor/data/pics/animated/bonhomme/b3.png | Bin 0 -> 236 bytes amor/data/pics/animated/bonhomme/b4-r.png | Bin 0 -> 216 bytes amor/data/pics/animated/bonhomme/b4.png | Bin 0 -> 209 bytes amor/data/pics/animated/bonhomme/bcol1.png | Bin 0 -> 321 bytes amor/data/pics/animated/bonhomme/bcol2.png | Bin 0 -> 318 bytes amor/data/pics/animated/bonhomme/bdrib1.png | Bin 0 -> 289 bytes amor/data/pics/animated/bonhomme/bdrib2.png | Bin 0 -> 304 bytes amor/data/pics/animated/bonhomme/bdrib3.png | Bin 0 -> 302 bytes amor/data/pics/animated/bonhomme/bdrib4.png | Bin 0 -> 305 bytes amor/data/pics/animated/bonhomme/bdrib5.png | Bin 0 -> 307 bytes amor/data/pics/animated/bonhomme/bdrib6.png | Bin 0 -> 304 bytes amor/data/pics/animated/bonhomme/bdrib7.png | Bin 0 -> 298 bytes amor/data/pics/animated/bonhomme/bdrop.png | Bin 0 -> 321 bytes amor/data/pics/animated/bonhomme/bgo1.png | Bin 0 -> 270 bytes amor/data/pics/animated/bonhomme/bgo2.png | Bin 0 -> 250 bytes amor/data/pics/animated/bonhomme/bgo3.png | Bin 0 -> 244 bytes amor/data/pics/animated/bonhomme/bgo4.png | Bin 0 -> 231 bytes amor/data/pics/animated/bonhomme/bgo5.png | Bin 0 -> 223 bytes amor/data/pics/animated/bonhomme/bgo6.png | Bin 0 -> 197 bytes amor/data/pics/animated/bonhomme/bgo7.png | Bin 0 -> 157 bytes amor/data/pics/animated/bonhomme/bh1.png | Bin 0 -> 248 bytes amor/data/pics/animated/bonhomme/bpof1.png | Bin 0 -> 313 bytes amor/data/pics/animated/bonhomme/bpof2.png | Bin 0 -> 306 bytes amor/data/pics/animated/bonhomme/bpof3.png | Bin 0 -> 315 bytes amor/data/pics/animated/bonhomme/bpof4.png | Bin 0 -> 338 bytes amor/data/pics/animated/bonhomme/bpof5.png | Bin 0 -> 339 bytes amor/data/pics/animated/bonhomme/bpof6.png | Bin 0 -> 306 bytes amor/data/pics/animated/bonhomme/sa1.png | Bin 0 -> 310 bytes amor/data/pics/animated/bonhomme/sa2.png | Bin 0 -> 377 bytes amor/data/pics/animated/bonhomme/sa2a.png | Bin 0 -> 389 bytes amor/data/pics/animated/bonhomme/sa2b.png | Bin 0 -> 394 bytes amor/data/pics/animated/bonhomme/sa2c.png | Bin 0 -> 375 bytes amor/data/pics/animated/bonhomme/salut.png | Bin 0 -> 303 bytes amor/data/pics/animated/bonhomme/salut1.png | Bin 0 -> 269 bytes amor/data/pics/animated/eyes/Makefile.am | 31 + amor/data/pics/animated/eyes/eye_1.png | Bin 0 -> 241 bytes amor/data/pics/animated/eyes/eye_2.png | Bin 0 -> 202 bytes amor/data/pics/animated/eyes/eye_b.png | Bin 0 -> 254 bytes amor/data/pics/animated/eyes/eye_d.png | Bin 0 -> 231 bytes amor/data/pics/animated/eyes/eye_e.png | Bin 0 -> 241 bytes amor/data/pics/animated/eyes/eye_h1.png | Bin 0 -> 242 bytes amor/data/pics/animated/eyes/eye_h2.png | Bin 0 -> 251 bytes amor/data/pics/animated/eyes/eye_h3.png | Bin 0 -> 258 bytes amor/data/pics/animated/eyes/eye_h4.png | Bin 0 -> 252 bytes amor/data/pics/animated/eyes/eye_l.png | Bin 0 -> 244 bytes amor/data/pics/animated/eyes/eye_m1.png | Bin 0 -> 508 bytes amor/data/pics/animated/eyes/eye_m2.png | Bin 0 -> 525 bytes amor/data/pics/animated/eyes/eye_m3.png | Bin 0 -> 548 bytes amor/data/pics/animated/eyes/eye_m4.png | Bin 0 -> 430 bytes amor/data/pics/animated/eyes/eye_m5.png | Bin 0 -> 326 bytes amor/data/pics/animated/eyes/eye_m6.png | Bin 0 -> 220 bytes amor/data/pics/animated/eyes/eye_m7.png | Bin 0 -> 166 bytes amor/data/pics/animated/eyes/eye_s1.png | Bin 0 -> 285 bytes amor/data/pics/animated/eyes/eye_s2.png | Bin 0 -> 271 bytes amor/data/pics/animated/eyes/eye_s3.png | Bin 0 -> 274 bytes amor/data/pics/animated/eyes/eye_s4.png | Bin 0 -> 274 bytes amor/data/pics/animated/eyes/eye_u.png | Bin 0 -> 228 bytes amor/data/pics/animated/eyes/eye_z1.png | Bin 0 -> 273 bytes amor/data/pics/animated/eyes/eye_z2.png | Bin 0 -> 231 bytes amor/data/pics/animated/eyes/eye_z3.png | Bin 0 -> 269 bytes amor/data/pics/animated/eyes/eye_z4.png | Bin 0 -> 241 bytes amor/data/pics/animated/eyes/eye_z5.png | Bin 0 -> 202 bytes amor/data/pics/animated/ghost/Makefile.am | 19 + amor/data/pics/animated/ghost/ghost_1.png | Bin 0 -> 425 bytes amor/data/pics/animated/ghost/ghost_2.png | Bin 0 -> 407 bytes amor/data/pics/animated/ghost/ghost_e.png | Bin 0 -> 185 bytes amor/data/pics/animated/ghost/ghost_m1.png | Bin 0 -> 394 bytes amor/data/pics/animated/ghost/ghost_m2.png | Bin 0 -> 347 bytes amor/data/pics/animated/ghost/ghost_m3.png | Bin 0 -> 312 bytes amor/data/pics/animated/ghost/ghost_m4.png | Bin 0 -> 290 bytes amor/data/pics/animated/ghost/ghost_m5.png | Bin 0 -> 254 bytes amor/data/pics/animated/ghost/ghost_m6.png | Bin 0 -> 240 bytes amor/data/pics/animated/ghost/ghost_m7.png | Bin 0 -> 224 bytes amor/data/pics/animated/ghost/ghost_z1.png | Bin 0 -> 198 bytes amor/data/pics/animated/ghost/ghost_z2.png | Bin 0 -> 237 bytes amor/data/pics/animated/ghost/ghost_z3.png | Bin 0 -> 300 bytes amor/data/pics/animated/ghost/ghost_z4.png | Bin 0 -> 310 bytes amor/data/pics/animated/ghost/ghost_z5.png | Bin 0 -> 378 bytes amor/data/pics/animated/neko/Makefile.am | 31 + amor/data/pics/animated/neko/claw1.png | Bin 0 -> 327 bytes amor/data/pics/animated/neko/claw2.png | Bin 0 -> 322 bytes amor/data/pics/animated/neko/jump1.png | Bin 0 -> 351 bytes amor/data/pics/animated/neko/jump2.png | Bin 0 -> 359 bytes amor/data/pics/animated/neko/jump3.png | Bin 0 -> 355 bytes amor/data/pics/animated/neko/jump4.png | Bin 0 -> 341 bytes amor/data/pics/animated/neko/jumpl1.png | Bin 0 -> 336 bytes amor/data/pics/animated/neko/jumpl2.png | Bin 0 -> 363 bytes amor/data/pics/animated/neko/jumpl3.png | Bin 0 -> 361 bytes amor/data/pics/animated/neko/jumpl4.png | Bin 0 -> 344 bytes amor/data/pics/animated/neko/lick.png | Bin 0 -> 339 bytes amor/data/pics/animated/neko/lick2.png | Bin 0 -> 339 bytes amor/data/pics/animated/neko/run1.png | Bin 0 -> 351 bytes amor/data/pics/animated/neko/run2.png | Bin 0 -> 338 bytes amor/data/pics/animated/neko/run3.png | Bin 0 -> 351 bytes amor/data/pics/animated/neko/run4.png | Bin 0 -> 337 bytes amor/data/pics/animated/neko/scratch1.png | Bin 0 -> 343 bytes amor/data/pics/animated/neko/scratch2.png | Bin 0 -> 316 bytes amor/data/pics/animated/neko/scratch3.png | Bin 0 -> 331 bytes amor/data/pics/animated/neko/scratch4.png | Bin 0 -> 318 bytes amor/data/pics/animated/neko/sit.png | Bin 0 -> 315 bytes amor/data/pics/animated/neko/sitleft.png | Bin 0 -> 316 bytes amor/data/pics/animated/neko/sleep1.png | Bin 0 -> 323 bytes amor/data/pics/animated/neko/sleep2.png | Bin 0 -> 321 bytes amor/data/pics/animated/neko/surprise.png | Bin 0 -> 355 bytes amor/data/pics/animated/neko/tail.png | Bin 0 -> 321 bytes amor/data/pics/animated/neko/yawn.png | Bin 0 -> 338 bytes amor/data/pics/animated/pingu/Makefile.am | 104 + amor/data/pics/animated/pingu/bash_l1.png | Bin 0 -> 967 bytes amor/data/pics/animated/pingu/bash_l10.png | Bin 0 -> 1014 bytes amor/data/pics/animated/pingu/bash_l11.png | Bin 0 -> 1002 bytes amor/data/pics/animated/pingu/bash_l12.png | Bin 0 -> 1026 bytes amor/data/pics/animated/pingu/bash_l2.png | Bin 0 -> 894 bytes amor/data/pics/animated/pingu/bash_l3.png | Bin 0 -> 797 bytes amor/data/pics/animated/pingu/bash_l4.png | Bin 0 -> 638 bytes amor/data/pics/animated/pingu/bash_l5.png | Bin 0 -> 677 bytes amor/data/pics/animated/pingu/bash_l6.png | Bin 0 -> 745 bytes amor/data/pics/animated/pingu/bash_l7.png | Bin 0 -> 703 bytes amor/data/pics/animated/pingu/bash_l8.png | Bin 0 -> 862 bytes amor/data/pics/animated/pingu/bash_l9.png | Bin 0 -> 893 bytes amor/data/pics/animated/pingu/bash_r1.png | Bin 0 -> 954 bytes amor/data/pics/animated/pingu/bash_r10.png | Bin 0 -> 977 bytes amor/data/pics/animated/pingu/bash_r11.png | Bin 0 -> 981 bytes amor/data/pics/animated/pingu/bash_r12.png | Bin 0 -> 1029 bytes amor/data/pics/animated/pingu/bash_r2.png | Bin 0 -> 898 bytes amor/data/pics/animated/pingu/bash_r3.png | Bin 0 -> 797 bytes amor/data/pics/animated/pingu/bash_r4.png | Bin 0 -> 628 bytes amor/data/pics/animated/pingu/bash_r5.png | Bin 0 -> 679 bytes amor/data/pics/animated/pingu/bash_r6.png | Bin 0 -> 747 bytes amor/data/pics/animated/pingu/bash_r7.png | Bin 0 -> 694 bytes amor/data/pics/animated/pingu/bash_r8.png | Bin 0 -> 865 bytes amor/data/pics/animated/pingu/bash_r9.png | Bin 0 -> 907 bytes amor/data/pics/animated/pingu/blocker1.png | Bin 0 -> 1485 bytes amor/data/pics/animated/pingu/blocker2.png | Bin 0 -> 1450 bytes amor/data/pics/animated/pingu/blocker3.png | Bin 0 -> 1411 bytes amor/data/pics/animated/pingu/blocker4.png | Bin 0 -> 1477 bytes amor/data/pics/animated/pingu/blocker5.png | Bin 0 -> 1456 bytes amor/data/pics/animated/pingu/blocker6.png | Bin 0 -> 1421 bytes amor/data/pics/animated/pingu/bomber1.png | Bin 0 -> 964 bytes amor/data/pics/animated/pingu/bomber10.png | Bin 0 -> 952 bytes amor/data/pics/animated/pingu/bomber11.png | Bin 0 -> 852 bytes amor/data/pics/animated/pingu/bomber12.png | Bin 0 -> 753 bytes amor/data/pics/animated/pingu/bomber13.png | Bin 0 -> 756 bytes amor/data/pics/animated/pingu/bomber14.png | Bin 0 -> 324 bytes amor/data/pics/animated/pingu/bomber15.png | Bin 0 -> 262 bytes amor/data/pics/animated/pingu/bomber16.png | Bin 0 -> 162 bytes amor/data/pics/animated/pingu/bomber2.png | Bin 0 -> 964 bytes amor/data/pics/animated/pingu/bomber3.png | Bin 0 -> 964 bytes amor/data/pics/animated/pingu/bomber4.png | Bin 0 -> 1001 bytes amor/data/pics/animated/pingu/bomber5.png | Bin 0 -> 998 bytes amor/data/pics/animated/pingu/bomber6.png | Bin 0 -> 987 bytes amor/data/pics/animated/pingu/bomber7.png | Bin 0 -> 986 bytes amor/data/pics/animated/pingu/bomber8.png | Bin 0 -> 960 bytes amor/data/pics/animated/pingu/bomber9.png | Bin 0 -> 1101 bytes amor/data/pics/animated/pingu/digger1.png | Bin 0 -> 1332 bytes amor/data/pics/animated/pingu/digger10.png | Bin 0 -> 1298 bytes amor/data/pics/animated/pingu/digger11.png | Bin 0 -> 1394 bytes amor/data/pics/animated/pingu/digger12.png | Bin 0 -> 1324 bytes amor/data/pics/animated/pingu/digger13.png | Bin 0 -> 1364 bytes amor/data/pics/animated/pingu/digger14.png | Bin 0 -> 1324 bytes amor/data/pics/animated/pingu/digger2.png | Bin 0 -> 1310 bytes amor/data/pics/animated/pingu/digger3.png | Bin 0 -> 1324 bytes amor/data/pics/animated/pingu/digger4.png | Bin 0 -> 1319 bytes amor/data/pics/animated/pingu/digger5.png | Bin 0 -> 1351 bytes amor/data/pics/animated/pingu/digger6.png | Bin 0 -> 1320 bytes amor/data/pics/animated/pingu/digger7.png | Bin 0 -> 1314 bytes amor/data/pics/animated/pingu/digger8.png | Bin 0 -> 1297 bytes amor/data/pics/animated/pingu/digger9.png | Bin 0 -> 1390 bytes amor/data/pics/animated/pingu/faller1.png | Bin 0 -> 1032 bytes amor/data/pics/animated/pingu/faller2.png | Bin 0 -> 1002 bytes amor/data/pics/animated/pingu/faller3.png | Bin 0 -> 990 bytes amor/data/pics/animated/pingu/faller4.png | Bin 0 -> 926 bytes amor/data/pics/animated/pingu/faller5.png | Bin 0 -> 973 bytes amor/data/pics/animated/pingu/faller6.png | Bin 0 -> 1002 bytes amor/data/pics/animated/pingu/faller7.png | Bin 0 -> 1032 bytes amor/data/pics/animated/pingu/faller8.png | Bin 0 -> 1076 bytes amor/data/pics/animated/pingu/floater1.png | Bin 0 -> 960 bytes amor/data/pics/animated/pingu/floater2.png | Bin 0 -> 960 bytes amor/data/pics/animated/pingu/floater3.png | Bin 0 -> 961 bytes amor/data/pics/animated/pingu/floater4.png | Bin 0 -> 967 bytes amor/data/pics/animated/pingu/floater5.png | Bin 0 -> 960 bytes amor/data/pics/animated/pingu/floater6.png | Bin 0 -> 965 bytes amor/data/pics/animated/pingu/floater7.png | Bin 0 -> 959 bytes amor/data/pics/animated/pingu/floater8.png | Bin 0 -> 965 bytes amor/data/pics/animated/pingu/tumble1.png | Bin 0 -> 1319 bytes amor/data/pics/animated/pingu/tumble2.png | Bin 0 -> 873 bytes amor/data/pics/animated/pingu/tumble3.png | Bin 0 -> 847 bytes amor/data/pics/animated/pingu/tumble4.png | Bin 0 -> 587 bytes amor/data/pics/animated/pingu/tumble5.png | Bin 0 -> 764 bytes amor/data/pics/animated/pingu/tumble6.png | Bin 0 -> 693 bytes amor/data/pics/animated/pingu/tumble7.png | Bin 0 -> 725 bytes amor/data/pics/animated/pingu/tumble8.png | Bin 0 -> 1066 bytes amor/data/pics/animated/pingu/walk_l1.png | Bin 0 -> 869 bytes amor/data/pics/animated/pingu/walk_l2.png | Bin 0 -> 859 bytes amor/data/pics/animated/pingu/walk_l3.png | Bin 0 -> 927 bytes amor/data/pics/animated/pingu/walk_l4.png | Bin 0 -> 858 bytes amor/data/pics/animated/pingu/walk_l5.png | Bin 0 -> 842 bytes amor/data/pics/animated/pingu/walk_l6.png | Bin 0 -> 744 bytes amor/data/pics/animated/pingu/walk_l7.png | Bin 0 -> 909 bytes amor/data/pics/animated/pingu/walk_l8.png | Bin 0 -> 958 bytes amor/data/pics/animated/pingu/walk_r1.png | Bin 0 -> 1008 bytes amor/data/pics/animated/pingu/walk_r2.png | Bin 0 -> 868 bytes amor/data/pics/animated/pingu/walk_r3.png | Bin 0 -> 753 bytes amor/data/pics/animated/pingu/walk_r4.png | Bin 0 -> 844 bytes amor/data/pics/animated/pingu/walk_r5.png | Bin 0 -> 896 bytes amor/data/pics/animated/pingu/walk_r6.png | Bin 0 -> 959 bytes amor/data/pics/animated/pingu/walk_r7.png | Bin 0 -> 845 bytes amor/data/pics/animated/pingu/walk_r8.png | Bin 0 -> 848 bytes amor/data/pics/animated/tao/Makefile.am | 50 + amor/data/pics/animated/tao/yy-1.png | Bin 0 -> 1140 bytes amor/data/pics/animated/tao/yy-2.png | Bin 0 -> 1116 bytes amor/data/pics/animated/tao/yy-3.png | Bin 0 -> 1098 bytes amor/data/pics/animated/tao/yy-4.png | Bin 0 -> 1070 bytes amor/data/pics/animated/tao/yy-5.png | Bin 0 -> 985 bytes amor/data/pics/animated/tao/yy-6.png | Bin 0 -> 985 bytes amor/data/pics/animated/tao/yy-7.png | Bin 0 -> 953 bytes amor/data/pics/animated/tao/yy-8.png | Bin 0 -> 924 bytes amor/data/pics/animated/tao/yy-9.png | Bin 0 -> 887 bytes amor/data/pics/animated/tao/yy.png | Bin 0 -> 1156 bytes amor/data/pics/animated/tao/yy105.png | Bin 0 -> 1190 bytes amor/data/pics/animated/tao/yy120.png | Bin 0 -> 1283 bytes amor/data/pics/animated/tao/yy135.png | Bin 0 -> 1237 bytes amor/data/pics/animated/tao/yy15.png | Bin 0 -> 1114 bytes amor/data/pics/animated/tao/yy150.png | Bin 0 -> 1272 bytes amor/data/pics/animated/tao/yy165.png | Bin 0 -> 1218 bytes amor/data/pics/animated/tao/yy180.png | Bin 0 -> 1171 bytes amor/data/pics/animated/tao/yy195.png | Bin 0 -> 1122 bytes amor/data/pics/animated/tao/yy210.png | Bin 0 -> 1131 bytes amor/data/pics/animated/tao/yy225.png | Bin 0 -> 1205 bytes amor/data/pics/animated/tao/yy240.png | Bin 0 -> 1272 bytes amor/data/pics/animated/tao/yy255.png | Bin 0 -> 1241 bytes amor/data/pics/animated/tao/yy270.png | Bin 0 -> 1188 bytes amor/data/pics/animated/tao/yy285.png | Bin 0 -> 1196 bytes amor/data/pics/animated/tao/yy30.png | Bin 0 -> 1146 bytes amor/data/pics/animated/tao/yy300.png | Bin 0 -> 1206 bytes amor/data/pics/animated/tao/yy315.png | Bin 0 -> 1240 bytes amor/data/pics/animated/tao/yy330.png | Bin 0 -> 1239 bytes amor/data/pics/animated/tao/yy345.png | Bin 0 -> 1197 bytes amor/data/pics/animated/tao/yy45.png | Bin 0 -> 1188 bytes amor/data/pics/animated/tao/yy60.png | Bin 0 -> 1303 bytes amor/data/pics/animated/tao/yy75.png | Bin 0 -> 1266 bytes amor/data/pics/animated/tao/yy90.png | Bin 0 -> 1171 bytes amor/data/pics/animated/tao/yyx10.png | Bin 0 -> 332 bytes amor/data/pics/animated/tao/yyx12.png | Bin 0 -> 365 bytes amor/data/pics/animated/tao/yyx14.png | Bin 0 -> 485 bytes amor/data/pics/animated/tao/yyx16.png | Bin 0 -> 495 bytes amor/data/pics/animated/tao/yyx18.png | Bin 0 -> 647 bytes amor/data/pics/animated/tao/yyx20.png | Bin 0 -> 716 bytes amor/data/pics/animated/tao/yyx22.png | Bin 0 -> 743 bytes amor/data/pics/animated/tao/yyx24.png | Bin 0 -> 817 bytes amor/data/pics/animated/tao/yyx26.png | Bin 0 -> 913 bytes amor/data/pics/animated/tao/yyx28.png | Bin 0 -> 947 bytes amor/data/pics/animated/tao/yyx30.png | Bin 0 -> 1062 bytes amor/data/pics/animated/tao/yyx6.png | Bin 0 -> 206 bytes amor/data/pics/animated/tao/yyx8.png | Bin 0 -> 267 bytes amor/data/pics/animated/worm/Makefile.am | 40 + amor/data/pics/animated/worm/w-a1.png | Bin 0 -> 332 bytes amor/data/pics/animated/worm/w-a2.png | Bin 0 -> 339 bytes amor/data/pics/animated/worm/w-b1.png | Bin 0 -> 306 bytes amor/data/pics/animated/worm/w-b2.png | Bin 0 -> 304 bytes amor/data/pics/animated/worm/w-be1.png | Bin 0 -> 310 bytes amor/data/pics/animated/worm/w-be2.png | Bin 0 -> 305 bytes amor/data/pics/animated/worm/w-be3.png | Bin 0 -> 312 bytes amor/data/pics/animated/worm/w-be4.png | Bin 0 -> 325 bytes amor/data/pics/animated/worm/w-d1.png | Bin 0 -> 290 bytes amor/data/pics/animated/worm/w-d2.png | Bin 0 -> 259 bytes amor/data/pics/animated/worm/w-d3.png | Bin 0 -> 259 bytes amor/data/pics/animated/worm/w-d4.png | Bin 0 -> 241 bytes amor/data/pics/animated/worm/w-d5.png | Bin 0 -> 180 bytes amor/data/pics/animated/worm/w-dr1.png | Bin 0 -> 321 bytes amor/data/pics/animated/worm/w-e1.png | Bin 0 -> 293 bytes amor/data/pics/animated/worm/w-l1.png | Bin 0 -> 333 bytes amor/data/pics/animated/worm/w-l2.png | Bin 0 -> 335 bytes amor/data/pics/animated/worm/w-l3.png | Bin 0 -> 344 bytes amor/data/pics/animated/worm/w-ml0.png | Bin 0 -> 315 bytes amor/data/pics/animated/worm/w-ml1.png | Bin 0 -> 330 bytes amor/data/pics/animated/worm/w-ml2.png | Bin 0 -> 322 bytes amor/data/pics/animated/worm/w-ml3.png | Bin 0 -> 319 bytes amor/data/pics/animated/worm/w-mr0.png | Bin 0 -> 311 bytes amor/data/pics/animated/worm/w-mr1.png | Bin 0 -> 326 bytes amor/data/pics/animated/worm/w-mr2.png | Bin 0 -> 318 bytes amor/data/pics/animated/worm/w-mr3.png | Bin 0 -> 327 bytes amor/data/pics/animated/worm/w-s1.png | Bin 0 -> 235 bytes amor/data/pics/animated/worm/w-s2.png | Bin 0 -> 257 bytes amor/data/pics/animated/worm/w-s3.png | Bin 0 -> 251 bytes amor/data/pics/animated/worm/w-u1.png | Bin 0 -> 218 bytes amor/data/pics/animated/worm/w-u2.png | Bin 0 -> 260 bytes amor/data/pics/animated/worm/w-u3.png | Bin 0 -> 276 bytes amor/data/pics/animated/worm/w-wl1.png | Bin 0 -> 322 bytes amor/data/pics/animated/worm/w-wl2.png | Bin 0 -> 329 bytes amor/data/pics/animated/worm/w-wr1.png | Bin 0 -> 317 bytes amor/data/pics/animated/worm/w-wr2.png | Bin 0 -> 327 bytes amor/data/pics/preview/Makefile.am | 5 + amor/data/pics/preview/billy.png | Bin 0 -> 547 bytes amor/data/pics/preview/blob.png | Bin 0 -> 556 bytes amor/data/pics/preview/bonhomme.png | Bin 0 -> 296 bytes amor/data/pics/preview/bsd.png | Bin 0 -> 1329 bytes amor/data/pics/preview/eyes.png | Bin 0 -> 241 bytes amor/data/pics/preview/ghost.png | Bin 0 -> 425 bytes amor/data/pics/preview/neko.png | Bin 0 -> 315 bytes amor/data/pics/preview/tao.png | Bin 0 -> 1776 bytes amor/data/pics/preview/tux.png | Bin 0 -> 605 bytes amor/data/pics/preview/worm.png | Bin 0 -> 311 bytes amor/data/pics/static/Makefile.am | 5 + amor/data/pics/static/billy.png | Bin 0 -> 824 bytes amor/data/pics/static/bsd.png | Bin 0 -> 2321 bytes amor/data/pics/static/tux.png | Bin 0 -> 1694 bytes amor/data/pingurc | 167 + amor/data/taorc | 148 + amor/data/tips-en | 39 + amor/data/tuxrc | 127 + amor/data/wormrc | 225 + amor/hi16-app-amor.png | Bin 0 -> 1012 bytes amor/hi22-app-amor.png | Bin 0 -> 1515 bytes amor/hi32-app-amor.png | Bin 0 -> 2680 bytes amor/hi48-app-amor.png | Bin 0 -> 4595 bytes amor/main.cpp | 70 + amor/preparetips | 45 + amor/version.h | 1 + configure.in.in | 6 + doc/Makefile.am | 5 + doc/amor/Makefile.am | 5 + doc/amor/billy.png | Bin 0 -> 824 bytes doc/amor/bonhomme.png | Bin 0 -> 271 bytes doc/amor/bsd.png | Bin 0 -> 2321 bytes doc/amor/eyes.png | Bin 0 -> 198 bytes doc/amor/ghost.png | Bin 0 -> 421 bytes doc/amor/index.docbook | 318 + doc/amor/man-amor.6.docbook | 72 + doc/amor/neko.png | Bin 0 -> 284 bytes doc/amor/pingus.png | Bin 0 -> 956 bytes doc/amor/spot.png | Bin 0 -> 575 bytes doc/amor/tao.png | Bin 0 -> 672 bytes doc/amor/tux.png | Bin 0 -> 1694 bytes doc/amor/worm.png | Bin 0 -> 316 bytes doc/kmoon/Makefile.am | 4 + doc/kmoon/carlosmail | 74 + doc/kmoon/index.docbook | 131 + doc/kodo/Makefile.am | 4 + doc/kodo/guide.png | Bin 0 -> 3141 bytes doc/kodo/index.docbook | 225 + doc/kteatime/Makefile.am | 4 + doc/kteatime/config.png | Bin 0 -> 19936 bytes doc/kteatime/index.docbook | 148 + doc/kweather/Makefile.am | 4 + doc/kweather/index.docbook | 260 + doc/kworldclock/Makefile.am | 4 + doc/kworldclock/index.docbook | 503 ++ doc/kworldclock/man-kworldclock.1.docbook | 92 + doc/kworldclock/screenshot-clock-dialog.png | Bin 0 -> 7734 bytes doc/kworldclock/screenshot-mlb.png | Bin 0 -> 73041 bytes .../screenshot-quairading-clock.png | Bin 0 -> 78700 bytes .../screenshot-quairading-dialog.png | Bin 0 -> 7885 bytes doc/kworldclock/screenshot-rmb-cities.png | Bin 0 -> 3560 bytes doc/kworldclock/screenshot-rmb-clock.png | Bin 0 -> 3432 bytes doc/kworldclock/screenshot-rmb-daylight.png | Bin 0 -> 3585 bytes doc/kworldclock/screenshot-rmb-flags.png | Bin 0 -> 3537 bytes doc/kworldclock/screenshot-withclocks.png | Bin 0 -> 79472 bytes doc/kworldclock/screenshot-withflags.png | Bin 0 -> 74907 bytes doc/kworldclock/screenshot.png | Bin 0 -> 20153 bytes eyesapplet/Makefile.am | 20 + eyesapplet/configure.in.in | 3 + eyesapplet/eyes.cpp | 202 + eyesapplet/eyes.h | 48 + eyesapplet/eyesapplet.desktop | 120 + fifteenapplet/Makefile.am | 19 + fifteenapplet/fifteenapplet.cpp | 321 + fifteenapplet/fifteenapplet.h | 84 + fifteenapplet/kfifteenapplet.desktop | 118 + fifteenapplet/qttableview.cpp | 2274 ++++++ fifteenapplet/qttableview.h | 251 + kdetoys.lsm | 11 + kmoon/AUTHORS | 10 + kmoon/Makefile.am | 20 + kmoon/hi16-app-kmoon.png | Bin 0 -> 332 bytes kmoon/hi32-app-kmoon.png | Bin 0 -> 2111 bytes kmoon/hi48-app-kmoon.png | Bin 0 -> 4120 bytes kmoon/kmoonapplet.cpp | 165 + kmoon/kmoonapplet.desktop | 109 + kmoon/kmoonapplet.h | 67 + kmoon/kmoondlg.cpp | 114 + kmoon/kmoondlg.h | 55 + kmoon/kmoonwidget.cpp | 369 + kmoon/kmoonwidget.h | 68 + kmoon/phases.cpp | 383 + kmoon/pics/Makefile.am | 13 + kmoon/pics/moon1.png | Bin 0 -> 3186 bytes kmoon/pics/moon10.png | Bin 0 -> 4770 bytes kmoon/pics/moon11.png | Bin 0 -> 4814 bytes kmoon/pics/moon12.png | Bin 0 -> 4809 bytes kmoon/pics/moon13.png | Bin 0 -> 4794 bytes kmoon/pics/moon14.png | Bin 0 -> 5496 bytes kmoon/pics/moon15.png | Bin 0 -> 4806 bytes kmoon/pics/moon16.png | Bin 0 -> 4818 bytes kmoon/pics/moon17.png | Bin 0 -> 4803 bytes kmoon/pics/moon18.png | Bin 0 -> 4836 bytes kmoon/pics/moon19.png | Bin 0 -> 4858 bytes kmoon/pics/moon2.png | Bin 0 -> 3186 bytes kmoon/pics/moon20.png | Bin 0 -> 4868 bytes kmoon/pics/moon21.png | Bin 0 -> 4786 bytes kmoon/pics/moon22.png | Bin 0 -> 4613 bytes kmoon/pics/moon23.png | Bin 0 -> 4317 bytes kmoon/pics/moon24.png | Bin 0 -> 4049 bytes kmoon/pics/moon25.png | Bin 0 -> 3768 bytes kmoon/pics/moon26.png | Bin 0 -> 3543 bytes kmoon/pics/moon27.png | Bin 0 -> 3341 bytes kmoon/pics/moon28.png | Bin 0 -> 3207 bytes kmoon/pics/moon29.png | Bin 0 -> 3186 bytes kmoon/pics/moon3.png | Bin 0 -> 3187 bytes kmoon/pics/moon4.png | Bin 0 -> 3349 bytes kmoon/pics/moon5.png | Bin 0 -> 3611 bytes kmoon/pics/moon6.png | Bin 0 -> 3859 bytes kmoon/pics/moon7.png | Bin 0 -> 4228 bytes kmoon/pics/moon8.png | Bin 0 -> 4497 bytes kmoon/pics/moon9.png | Bin 0 -> 4678 bytes kmoon/version.h | 1 + kodo/ChangeLog | 42 + kodo/Makefile.am | 22 + kodo/configure.in.in | 3 + kodo/hi16-app-kodo.png | Bin 0 -> 226 bytes kodo/hi32-app-kodo.png | Bin 0 -> 1698 bytes kodo/hi48-app-kodo.png | Bin 0 -> 2865 bytes kodo/kimagenumber.cpp | 79 + kodo/kimagenumber.h | 53 + kodo/kodo.desktop | 69 + kodo/kodometer.cpp | 600 ++ kodo/kodometer.h | 163 + kodo/main.cpp | 100 + kodo/numbers.png | Bin 0 -> 2372 bytes kteatime/ChangeLog | 105 + kteatime/Makefile.am | 27 + kteatime/TODO | 58 + kteatime/cr22-action-mug.png | Bin 0 -> 310 bytes kteatime/cr22-action-tea_anim1.png | Bin 0 -> 310 bytes kteatime/cr22-action-tea_anim2.png | Bin 0 -> 362 bytes kteatime/cr22-action-tea_not_ready.png | Bin 0 -> 441 bytes kteatime/eventsrc | 183 + kteatime/hi16-app-kteatime.png | Bin 0 -> 815 bytes kteatime/hi32-app-kteatime.png | Bin 0 -> 2287 bytes kteatime/hi48-app-kteatime.png | Bin 0 -> 4001 bytes kteatime/kteatime.desktop | 72 + kteatime/main.cpp | 60 + kteatime/tealist.cpp | 64 + kteatime/tealist.h | 37 + kteatime/timeedit.cpp | 146 + kteatime/timeedit.h | 72 + kteatime/toplevel.cpp | 856 +++ kteatime/toplevel.h | 124 + ktux/AUTHORS | 2 + ktux/Makefile.am | 38 + ktux/hi16-app-ktux.png | Bin 0 -> 628 bytes ktux/hi32-app-ktux.png | Bin 0 -> 1335 bytes ktux/ktux.desktop | 212 + ktux/sprite.cpp | 254 + ktux/sprite.h | 72 + ktux/spriteanim.cpp | 161 + ktux/spriteanim.h | 96 + ktux/spritemisc.cpp | 69 + ktux/spritemisc.h | 41 + ktux/spritepm.cpp | 176 + ktux/spritepm.h | 85 + ktux/sprites/Makefile.am | 8 + ktux/sprites/anim0001.png | Bin 0 -> 23517 bytes ktux/sprites/anim0002.png | Bin 0 -> 23245 bytes ktux/sprites/anim0003.png | Bin 0 -> 23646 bytes ktux/sprites/anim0004.png | Bin 0 -> 23725 bytes ktux/sprites/anim0005.png | Bin 0 -> 23541 bytes ktux/sprites/anim0006.png | Bin 0 -> 23573 bytes ktux/sprites/anim0007.png | Bin 0 -> 23537 bytes ktux/sprites/anim0008.png | Bin 0 -> 23680 bytes ktux/sprites/anim0009.png | Bin 0 -> 23642 bytes ktux/sprites/anim0010.png | Bin 0 -> 23257 bytes ktux/sprites/bg.png | Bin 0 -> 7799 bytes ktux/sprites/flare0001.png | Bin 0 -> 210 bytes ktux/sprites/flare0002.png | Bin 0 -> 325 bytes ktux/sprites/spriterc | 62 + ktux/sprites/star0001.png | Bin 0 -> 194 bytes ktux/sprites/star0002.png | Bin 0 -> 219 bytes kweather/AUTHORS | 2 + kweather/Makefile.am | 81 + kweather/configure.in.in | 1 + kweather/dockwidget.cpp | 467 ++ kweather/dockwidget.h | 74 + kweather/graphics/Makefile.am | 2 + kweather/graphics/cloudy1.png | Bin 0 -> 25863 bytes kweather/graphics/cloudy1_night.png | Bin 0 -> 12158 bytes kweather/graphics/cloudy2.png | Bin 0 -> 30104 bytes kweather/graphics/cloudy2_night.png | Bin 0 -> 15873 bytes kweather/graphics/cloudy3.png | Bin 0 -> 34246 bytes kweather/graphics/cloudy3_night.png | Bin 0 -> 23591 bytes kweather/graphics/cloudy4.png | Bin 0 -> 36185 bytes kweather/graphics/cloudy4_night.png | Bin 0 -> 22352 bytes kweather/graphics/cloudy5.png | Bin 0 -> 32965 bytes kweather/graphics/dunno.png | Bin 0 -> 30291 bytes kweather/graphics/fog.png | Bin 0 -> 24326 bytes kweather/graphics/fog_night.png | Bin 0 -> 10668 bytes kweather/graphics/hail.png | Bin 0 -> 16727 bytes kweather/graphics/light_rain.png | Bin 0 -> 15829 bytes kweather/graphics/mist.png | Bin 0 -> 20351 bytes kweather/graphics/mist_night.png | Bin 0 -> 10610 bytes kweather/graphics/overcast.png | Bin 0 -> 32965 bytes kweather/graphics/shower1.png | Bin 0 -> 24250 bytes kweather/graphics/shower1_night.png | Bin 0 -> 18561 bytes kweather/graphics/shower2.png | Bin 0 -> 20264 bytes kweather/graphics/shower2_night.png | Bin 0 -> 18310 bytes kweather/graphics/shower3.png | Bin 0 -> 16586 bytes kweather/graphics/sleet.png | Bin 0 -> 23754 bytes kweather/graphics/snow1.png | Bin 0 -> 24645 bytes kweather/graphics/snow1_night.png | Bin 0 -> 20625 bytes kweather/graphics/snow2.png | Bin 0 -> 21863 bytes kweather/graphics/snow2_night.png | Bin 0 -> 21216 bytes kweather/graphics/snow3.png | Bin 0 -> 22085 bytes kweather/graphics/snow3_night.png | Bin 0 -> 23235 bytes kweather/graphics/snow4.png | Bin 0 -> 21647 bytes kweather/graphics/snow5.png | Bin 0 -> 23920 bytes kweather/graphics/sunny.png | Bin 0 -> 20311 bytes kweather/graphics/sunny_night.png | Bin 0 -> 7803 bytes kweather/graphics/tstorm1.png | Bin 0 -> 24349 bytes kweather/graphics/tstorm1_night.png | Bin 0 -> 20512 bytes kweather/graphics/tstorm2.png | Bin 0 -> 21822 bytes kweather/graphics/tstorm2_night.png | Bin 0 -> 21538 bytes kweather/graphics/tstorm3.png | Bin 0 -> 20220 bytes kweather/hi16-app-kweather.png | Bin 0 -> 945 bytes kweather/hi32-app-kweather.png | Bin 0 -> 2603 bytes kweather/hi48-app-kweather.png | Bin 0 -> 4987 bytes kweather/kcmweather.cpp | 222 + kweather/kcmweather.desktop | 178 + kweather/kcmweather.h | 58 + kweather/kcmweatherservice.cpp | 72 + kweather/kcmweatherservice.desktop | 181 + kweather/kcmweatherservice.h | 46 + kweather/kweather.cpp | 425 ++ kweather/kweather.desktop | 113 + kweather/kweather.h | 90 + kweather/kweather.kdevprj | 296 + kweather/kweatherreport.desktop | 9 + kweather/kweatherservice.desktop | 88 + kweather/main.cpp | 35 + kweather/metar_parser.cpp | 871 +++ kweather/metar_parser.h | 123 + kweather/metar_parser_test.cpp | 218 + kweather/prefdialogdata.ui | 360 + kweather/reportmain.cpp | 63 + kweather/reportview.cpp | 185 + kweather/reportview.h | 47 + kweather/serviceconfigdata.ui | 258 + kweather/serviceconfigwidget.cpp | 239 + kweather/serviceconfigwidget.h | 58 + kweather/sidebarwidget.cpp | 49 + kweather/sidebarwidget.h | 43 + kweather/sidebarwidgetbase.ui | 112 + kweather/stationdatabase.cpp | 170 + kweather/stationdatabase.h | 54 + kweather/stationdatabase_test.cpp | 226 + kweather/stations.dat | 6615 +++++++++++++++++ kweather/sun.cpp | 462 ++ kweather/sun.h | 57 + kweather/sun_test.cpp | 84 + kweather/test.sh | 28 + kweather/weatherIface.h | 15 + kweather/weather_stations.desktop | 3112 ++++++++ kweather/weatherbar.cpp | 172 + kweather/weatherbar.desktop | 61 + kweather/weatherbar.h | 68 + kweather/weatherbar_add.desktop | 61 + kweather/weatherbutton.cpp | 161 + kweather/weatherbutton.h | 57 + kweather/weatherlib.cpp | 355 + kweather/weatherlib.h | 84 + kweather/weatherlog.sh | 8 + kweather/weatherservice.cpp | 343 + kweather/weatherservice.h | 107 + kweather/weathersig.sh | 14 + kworldwatch/Makefile.am | 42 + kworldwatch/about.ui | 217 + kworldwatch/applet.cpp | 122 + kworldwatch/applet.h | 70 + kworldwatch/astro.c | 166 + kworldwatch/astro.h | 42 + kworldwatch/cities.cpp | 208 + kworldwatch/cities.h | 87 + kworldwatch/clock.ui | 259 + kworldwatch/flags.cpp | 145 + kworldwatch/flags.h | 100 + kworldwatch/flow.cpp | 135 + kworldwatch/flow.h | 55 + kworldwatch/hi16-app-kworldclock.png | Bin 0 -> 933 bytes kworldwatch/hi22-app-kworldclock.png | Bin 0 -> 1544 bytes kworldwatch/hi32-app-kworldclock.png | Bin 0 -> 2651 bytes kworldwatch/hi48-app-kworldclock.png | Bin 0 -> 4825 bytes kworldwatch/kdeworld.desktop | 69 + kworldwatch/kworldclock.desktop | 80 + kworldwatch/kwwapplet.desktop | 107 + kworldwatch/main.cpp | 202 + kworldwatch/main.h | 85 + kworldwatch/maploader.cpp | 172 + kworldwatch/maploader.h | 81 + kworldwatch/maps/Makefile.am | 1 + kworldwatch/maps/README.maps | 10 + kworldwatch/maps/depths/400.jpg | Bin 0 -> 28526 bytes kworldwatch/maps/depths/800.jpg | Bin 0 -> 105465 bytes kworldwatch/maps/depths/Makefile.am | 2 + kworldwatch/maps/depths/depths.desktop | 64 + kworldwatch/maps/flatworld/1200.jpg | Bin 0 -> 89701 bytes kworldwatch/maps/flatworld/1600.jpg | Bin 0 -> 124709 bytes kworldwatch/maps/flatworld/200.jpg | Bin 0 -> 9330 bytes kworldwatch/maps/flatworld/400.jpg | Bin 0 -> 22751 bytes kworldwatch/maps/flatworld/800.jpg | Bin 0 -> 51623 bytes kworldwatch/maps/flatworld/Makefile.am | 2 + kworldwatch/maps/flatworld/flatworld.desktop | 53 + kworldwatch/mapwidget.cpp | 576 ++ kworldwatch/mapwidget.h | 161 + kworldwatch/pics/Makefile.am | 2 + kworldwatch/pics/flag-blue.png | Bin 0 -> 316 bytes kworldwatch/pics/flag-green.png | Bin 0 -> 314 bytes kworldwatch/pics/flag-mask.xpm | 21 + kworldwatch/pics/flag-red.png | Bin 0 -> 313 bytes kworldwatch/pics/flag.png | Bin 0 -> 289 bytes kworldwatch/pics/world2.png | Bin 0 -> 5132 bytes kworldwatch/sunclock.c | 164 + kworldwatch/sunclock.h | 98 + kworldwatch/zone.tab | 409 + kworldwatch/zoneclock.cpp | 287 + kworldwatch/zoneclock.h | 134 + 748 files changed, 39536 insertions(+) create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 COPYING-DOCS create mode 100644 INSTALL create mode 100644 Makefile.am.in create mode 100644 Makefile.cvs create mode 100644 README create mode 100644 amor/AmorIface.h create mode 100644 amor/Makefile.am create mode 100644 amor/TODO create mode 100644 amor/amor.cpp create mode 100644 amor/amor.desktop create mode 100644 amor/amor.h create mode 100644 amor/amoranim.cpp create mode 100644 amor/amoranim.h create mode 100644 amor/amorbubble.cpp create mode 100644 amor/amorbubble.h create mode 100644 amor/amorconfig.cpp create mode 100644 amor/amorconfig.h create mode 100644 amor/amordialog.cpp create mode 100644 amor/amordialog.h create mode 100644 amor/amorpm.cpp create mode 100644 amor/amorpm.h create mode 100644 amor/amortips.cpp create mode 100644 amor/amortips.h create mode 100644 amor/amorwidget.cpp create mode 100644 amor/amorwidget.h create mode 100644 amor/configure.in.in create mode 100644 amor/data/Makefile.am create mode 100644 amor/data/billyrc create mode 100644 amor/data/blobrc create mode 100644 amor/data/bonhommerc create mode 100644 amor/data/bsdrc create mode 100644 amor/data/eyesrc create mode 100644 amor/data/ghostrc create mode 100644 amor/data/nekorc create mode 100644 amor/data/pics/Makefile.am create mode 100644 amor/data/pics/animated/Makefile.am create mode 100644 amor/data/pics/animated/blob/Makefile.am create mode 100644 amor/data/pics/animated/blob/blob.png create mode 100644 amor/data/pics/animated/blob/blob_BeamDown1.png create mode 100644 amor/data/pics/animated/blob/blob_BeamDown2.png create mode 100644 amor/data/pics/animated/blob/blob_BeamDown3.png create mode 100644 amor/data/pics/animated/blob/blob_BeamDown4.png create mode 100644 amor/data/pics/animated/blob/blob_BeamDown5.png create mode 100644 amor/data/pics/animated/blob/blob_BeamDown6.png create mode 100644 amor/data/pics/animated/blob/blob_BeamDown7.png create mode 100644 amor/data/pics/animated/blob/blob_BeamDown8.png create mode 100644 amor/data/pics/animated/blob/blob_BeamDown9.png create mode 100644 amor/data/pics/animated/blob/blob_BeamUp1.png create mode 100644 amor/data/pics/animated/blob/blob_BeamUp10.png create mode 100644 amor/data/pics/animated/blob/blob_BeamUp2.png create mode 100644 amor/data/pics/animated/blob/blob_BeamUp3.png create mode 100644 amor/data/pics/animated/blob/blob_BeamUp4.png create mode 100644 amor/data/pics/animated/blob/blob_BeamUp5.png create mode 100644 amor/data/pics/animated/blob/blob_BeamUp6.png create mode 100644 amor/data/pics/animated/blob/blob_BeamUp7.png create mode 100644 amor/data/pics/animated/blob/blob_BeamUp8.png create mode 100644 amor/data/pics/animated/blob/blob_BeamUp9.png create mode 100644 amor/data/pics/animated/blob/blob_b1.png create mode 100644 amor/data/pics/animated/blob/blob_b2.png create mode 100644 amor/data/pics/animated/blob/blob_e1.png create mode 100644 amor/data/pics/animated/blob/blob_ex1.png create mode 100644 amor/data/pics/animated/blob/blob_f1.png create mode 100644 amor/data/pics/animated/blob/blob_f2.png create mode 100644 amor/data/pics/animated/blob/blob_f3.png create mode 100644 amor/data/pics/animated/blob/blob_fire10.png create mode 100644 amor/data/pics/animated/blob/blob_fire11.png create mode 100644 amor/data/pics/animated/blob/blob_fire2.png create mode 100644 amor/data/pics/animated/blob/blob_fire3.png create mode 100644 amor/data/pics/animated/blob/blob_fire4.png create mode 100644 amor/data/pics/animated/blob/blob_fire5.png create mode 100644 amor/data/pics/animated/blob/blob_fire6.png create mode 100644 amor/data/pics/animated/blob/blob_fire7.png create mode 100644 amor/data/pics/animated/blob/blob_fire8.png create mode 100644 amor/data/pics/animated/blob/blob_fire9.png create mode 100644 amor/data/pics/animated/blob/blob_g1.png create mode 100644 amor/data/pics/animated/blob/blob_g2.png create mode 100644 amor/data/pics/animated/blob/blob_gl1.png create mode 100644 amor/data/pics/animated/blob/blob_gl2.png create mode 100644 amor/data/pics/animated/blob/blob_gl3.png create mode 100644 amor/data/pics/animated/blob/blob_h1.png create mode 100644 amor/data/pics/animated/blob/blob_h2.png create mode 100644 amor/data/pics/animated/blob/blob_h3.png create mode 100644 amor/data/pics/animated/blob/blob_jet1.png create mode 100644 amor/data/pics/animated/blob/blob_jet2.png create mode 100644 amor/data/pics/animated/blob/blob_jet3.png create mode 100644 amor/data/pics/animated/blob/blob_jet4.png create mode 100644 amor/data/pics/animated/blob/blob_l_jet1.png create mode 100644 amor/data/pics/animated/blob/blob_l_jet2.png create mode 100644 amor/data/pics/animated/blob/blob_l_jet3.png create mode 100644 amor/data/pics/animated/blob/blob_l_jet4.png create mode 100644 amor/data/pics/animated/blob/blob_l_turn1.png create mode 100644 amor/data/pics/animated/blob/blob_l_turn2.png create mode 100644 amor/data/pics/animated/blob/blob_l_turn3.png create mode 100644 amor/data/pics/animated/blob/blob_l_turn4.png create mode 100644 amor/data/pics/animated/blob/blob_r135.png create mode 100644 amor/data/pics/animated/blob/blob_r180.png create mode 100644 amor/data/pics/animated/blob/blob_r225.png create mode 100644 amor/data/pics/animated/blob/blob_r270.png create mode 100644 amor/data/pics/animated/blob/blob_r315.png create mode 100644 amor/data/pics/animated/blob/blob_r45.png create mode 100644 amor/data/pics/animated/blob/blob_r90.png create mode 100644 amor/data/pics/animated/blob/blob_r_turn1.png create mode 100644 amor/data/pics/animated/blob/blob_r_turn2.png create mode 100644 amor/data/pics/animated/blob/blob_r_turn3.png create mode 100644 amor/data/pics/animated/blob/blob_r_turn4.png create mode 100644 amor/data/pics/animated/blob/blob_s1.png create mode 100644 amor/data/pics/animated/blob/blob_s2.png create mode 100644 amor/data/pics/animated/blob/blob_s3.png create mode 100644 amor/data/pics/animated/blob/blob_sl1.png create mode 100644 amor/data/pics/animated/blob/blob_sl2.png create mode 100644 amor/data/pics/animated/blob/blob_sl3.png create mode 100644 amor/data/pics/animated/blob/blob_sl4.png create mode 100644 amor/data/pics/animated/blob/blob_z1.png create mode 100644 amor/data/pics/animated/blob/blob_z2.png create mode 100644 amor/data/pics/animated/blob/blob_z3.png create mode 100644 amor/data/pics/animated/bonhomme/Makefile.am create mode 100644 amor/data/pics/animated/bonhomme/b-f.png create mode 100644 amor/data/pics/animated/bonhomme/b-f2.png create mode 100644 amor/data/pics/animated/bonhomme/b1-r.png create mode 100644 amor/data/pics/animated/bonhomme/b1.png create mode 100644 amor/data/pics/animated/bonhomme/b2-r.png create mode 100644 amor/data/pics/animated/bonhomme/b2.png create mode 100644 amor/data/pics/animated/bonhomme/b3-r.png create mode 100644 amor/data/pics/animated/bonhomme/b3.png create mode 100644 amor/data/pics/animated/bonhomme/b4-r.png create mode 100644 amor/data/pics/animated/bonhomme/b4.png create mode 100644 amor/data/pics/animated/bonhomme/bcol1.png create mode 100644 amor/data/pics/animated/bonhomme/bcol2.png create mode 100644 amor/data/pics/animated/bonhomme/bdrib1.png create mode 100644 amor/data/pics/animated/bonhomme/bdrib2.png create mode 100644 amor/data/pics/animated/bonhomme/bdrib3.png create mode 100644 amor/data/pics/animated/bonhomme/bdrib4.png create mode 100644 amor/data/pics/animated/bonhomme/bdrib5.png create mode 100644 amor/data/pics/animated/bonhomme/bdrib6.png create mode 100644 amor/data/pics/animated/bonhomme/bdrib7.png create mode 100644 amor/data/pics/animated/bonhomme/bdrop.png create mode 100644 amor/data/pics/animated/bonhomme/bgo1.png create mode 100644 amor/data/pics/animated/bonhomme/bgo2.png create mode 100644 amor/data/pics/animated/bonhomme/bgo3.png create mode 100644 amor/data/pics/animated/bonhomme/bgo4.png create mode 100644 amor/data/pics/animated/bonhomme/bgo5.png create mode 100644 amor/data/pics/animated/bonhomme/bgo6.png create mode 100644 amor/data/pics/animated/bonhomme/bgo7.png create mode 100644 amor/data/pics/animated/bonhomme/bh1.png create mode 100644 amor/data/pics/animated/bonhomme/bpof1.png create mode 100644 amor/data/pics/animated/bonhomme/bpof2.png create mode 100644 amor/data/pics/animated/bonhomme/bpof3.png create mode 100644 amor/data/pics/animated/bonhomme/bpof4.png create mode 100644 amor/data/pics/animated/bonhomme/bpof5.png create mode 100644 amor/data/pics/animated/bonhomme/bpof6.png create mode 100644 amor/data/pics/animated/bonhomme/sa1.png create mode 100644 amor/data/pics/animated/bonhomme/sa2.png create mode 100644 amor/data/pics/animated/bonhomme/sa2a.png create mode 100644 amor/data/pics/animated/bonhomme/sa2b.png create mode 100644 amor/data/pics/animated/bonhomme/sa2c.png create mode 100644 amor/data/pics/animated/bonhomme/salut.png create mode 100644 amor/data/pics/animated/bonhomme/salut1.png create mode 100644 amor/data/pics/animated/eyes/Makefile.am create mode 100644 amor/data/pics/animated/eyes/eye_1.png create mode 100644 amor/data/pics/animated/eyes/eye_2.png create mode 100644 amor/data/pics/animated/eyes/eye_b.png create mode 100644 amor/data/pics/animated/eyes/eye_d.png create mode 100644 amor/data/pics/animated/eyes/eye_e.png create mode 100644 amor/data/pics/animated/eyes/eye_h1.png create mode 100644 amor/data/pics/animated/eyes/eye_h2.png create mode 100644 amor/data/pics/animated/eyes/eye_h3.png create mode 100644 amor/data/pics/animated/eyes/eye_h4.png create mode 100644 amor/data/pics/animated/eyes/eye_l.png create mode 100644 amor/data/pics/animated/eyes/eye_m1.png create mode 100644 amor/data/pics/animated/eyes/eye_m2.png create mode 100644 amor/data/pics/animated/eyes/eye_m3.png create mode 100644 amor/data/pics/animated/eyes/eye_m4.png create mode 100644 amor/data/pics/animated/eyes/eye_m5.png create mode 100644 amor/data/pics/animated/eyes/eye_m6.png create mode 100644 amor/data/pics/animated/eyes/eye_m7.png create mode 100644 amor/data/pics/animated/eyes/eye_s1.png create mode 100644 amor/data/pics/animated/eyes/eye_s2.png create mode 100644 amor/data/pics/animated/eyes/eye_s3.png create mode 100644 amor/data/pics/animated/eyes/eye_s4.png create mode 100644 amor/data/pics/animated/eyes/eye_u.png create mode 100644 amor/data/pics/animated/eyes/eye_z1.png create mode 100644 amor/data/pics/animated/eyes/eye_z2.png create mode 100644 amor/data/pics/animated/eyes/eye_z3.png create mode 100644 amor/data/pics/animated/eyes/eye_z4.png create mode 100644 amor/data/pics/animated/eyes/eye_z5.png create mode 100644 amor/data/pics/animated/ghost/Makefile.am create mode 100644 amor/data/pics/animated/ghost/ghost_1.png create mode 100644 amor/data/pics/animated/ghost/ghost_2.png create mode 100644 amor/data/pics/animated/ghost/ghost_e.png create mode 100644 amor/data/pics/animated/ghost/ghost_m1.png create mode 100644 amor/data/pics/animated/ghost/ghost_m2.png create mode 100644 amor/data/pics/animated/ghost/ghost_m3.png create mode 100644 amor/data/pics/animated/ghost/ghost_m4.png create mode 100644 amor/data/pics/animated/ghost/ghost_m5.png create mode 100644 amor/data/pics/animated/ghost/ghost_m6.png create mode 100644 amor/data/pics/animated/ghost/ghost_m7.png create mode 100644 amor/data/pics/animated/ghost/ghost_z1.png create mode 100644 amor/data/pics/animated/ghost/ghost_z2.png create mode 100644 amor/data/pics/animated/ghost/ghost_z3.png create mode 100644 amor/data/pics/animated/ghost/ghost_z4.png create mode 100644 amor/data/pics/animated/ghost/ghost_z5.png create mode 100644 amor/data/pics/animated/neko/Makefile.am create mode 100644 amor/data/pics/animated/neko/claw1.png create mode 100644 amor/data/pics/animated/neko/claw2.png create mode 100644 amor/data/pics/animated/neko/jump1.png create mode 100644 amor/data/pics/animated/neko/jump2.png create mode 100644 amor/data/pics/animated/neko/jump3.png create mode 100644 amor/data/pics/animated/neko/jump4.png create mode 100644 amor/data/pics/animated/neko/jumpl1.png create mode 100644 amor/data/pics/animated/neko/jumpl2.png create mode 100644 amor/data/pics/animated/neko/jumpl3.png create mode 100644 amor/data/pics/animated/neko/jumpl4.png create mode 100644 amor/data/pics/animated/neko/lick.png create mode 100644 amor/data/pics/animated/neko/lick2.png create mode 100644 amor/data/pics/animated/neko/run1.png create mode 100644 amor/data/pics/animated/neko/run2.png create mode 100644 amor/data/pics/animated/neko/run3.png create mode 100644 amor/data/pics/animated/neko/run4.png create mode 100644 amor/data/pics/animated/neko/scratch1.png create mode 100644 amor/data/pics/animated/neko/scratch2.png create mode 100644 amor/data/pics/animated/neko/scratch3.png create mode 100644 amor/data/pics/animated/neko/scratch4.png create mode 100644 amor/data/pics/animated/neko/sit.png create mode 100644 amor/data/pics/animated/neko/sitleft.png create mode 100644 amor/data/pics/animated/neko/sleep1.png create mode 100644 amor/data/pics/animated/neko/sleep2.png create mode 100644 amor/data/pics/animated/neko/surprise.png create mode 100644 amor/data/pics/animated/neko/tail.png create mode 100644 amor/data/pics/animated/neko/yawn.png create mode 100644 amor/data/pics/animated/pingu/Makefile.am create mode 100644 amor/data/pics/animated/pingu/bash_l1.png create mode 100644 amor/data/pics/animated/pingu/bash_l10.png create mode 100644 amor/data/pics/animated/pingu/bash_l11.png create mode 100644 amor/data/pics/animated/pingu/bash_l12.png create mode 100644 amor/data/pics/animated/pingu/bash_l2.png create mode 100644 amor/data/pics/animated/pingu/bash_l3.png create mode 100644 amor/data/pics/animated/pingu/bash_l4.png create mode 100644 amor/data/pics/animated/pingu/bash_l5.png create mode 100644 amor/data/pics/animated/pingu/bash_l6.png create mode 100644 amor/data/pics/animated/pingu/bash_l7.png create mode 100644 amor/data/pics/animated/pingu/bash_l8.png create mode 100644 amor/data/pics/animated/pingu/bash_l9.png create mode 100644 amor/data/pics/animated/pingu/bash_r1.png create mode 100644 amor/data/pics/animated/pingu/bash_r10.png create mode 100644 amor/data/pics/animated/pingu/bash_r11.png create mode 100644 amor/data/pics/animated/pingu/bash_r12.png create mode 100644 amor/data/pics/animated/pingu/bash_r2.png create mode 100644 amor/data/pics/animated/pingu/bash_r3.png create mode 100644 amor/data/pics/animated/pingu/bash_r4.png create mode 100644 amor/data/pics/animated/pingu/bash_r5.png create mode 100644 amor/data/pics/animated/pingu/bash_r6.png create mode 100644 amor/data/pics/animated/pingu/bash_r7.png create mode 100644 amor/data/pics/animated/pingu/bash_r8.png create mode 100644 amor/data/pics/animated/pingu/bash_r9.png create mode 100644 amor/data/pics/animated/pingu/blocker1.png create mode 100644 amor/data/pics/animated/pingu/blocker2.png create mode 100644 amor/data/pics/animated/pingu/blocker3.png create mode 100644 amor/data/pics/animated/pingu/blocker4.png create mode 100644 amor/data/pics/animated/pingu/blocker5.png create mode 100644 amor/data/pics/animated/pingu/blocker6.png create mode 100644 amor/data/pics/animated/pingu/bomber1.png create mode 100644 amor/data/pics/animated/pingu/bomber10.png create mode 100644 amor/data/pics/animated/pingu/bomber11.png create mode 100644 amor/data/pics/animated/pingu/bomber12.png create mode 100644 amor/data/pics/animated/pingu/bomber13.png create mode 100644 amor/data/pics/animated/pingu/bomber14.png create mode 100644 amor/data/pics/animated/pingu/bomber15.png create mode 100644 amor/data/pics/animated/pingu/bomber16.png create mode 100644 amor/data/pics/animated/pingu/bomber2.png create mode 100644 amor/data/pics/animated/pingu/bomber3.png create mode 100644 amor/data/pics/animated/pingu/bomber4.png create mode 100644 amor/data/pics/animated/pingu/bomber5.png create mode 100644 amor/data/pics/animated/pingu/bomber6.png create mode 100644 amor/data/pics/animated/pingu/bomber7.png create mode 100644 amor/data/pics/animated/pingu/bomber8.png create mode 100644 amor/data/pics/animated/pingu/bomber9.png create mode 100644 amor/data/pics/animated/pingu/digger1.png create mode 100644 amor/data/pics/animated/pingu/digger10.png create mode 100644 amor/data/pics/animated/pingu/digger11.png create mode 100644 amor/data/pics/animated/pingu/digger12.png create mode 100644 amor/data/pics/animated/pingu/digger13.png create mode 100644 amor/data/pics/animated/pingu/digger14.png create mode 100644 amor/data/pics/animated/pingu/digger2.png create mode 100644 amor/data/pics/animated/pingu/digger3.png create mode 100644 amor/data/pics/animated/pingu/digger4.png create mode 100644 amor/data/pics/animated/pingu/digger5.png create mode 100644 amor/data/pics/animated/pingu/digger6.png create mode 100644 amor/data/pics/animated/pingu/digger7.png create mode 100644 amor/data/pics/animated/pingu/digger8.png create mode 100644 amor/data/pics/animated/pingu/digger9.png create mode 100644 amor/data/pics/animated/pingu/faller1.png create mode 100644 amor/data/pics/animated/pingu/faller2.png create mode 100644 amor/data/pics/animated/pingu/faller3.png create mode 100644 amor/data/pics/animated/pingu/faller4.png create mode 100644 amor/data/pics/animated/pingu/faller5.png create mode 100644 amor/data/pics/animated/pingu/faller6.png create mode 100644 amor/data/pics/animated/pingu/faller7.png create mode 100644 amor/data/pics/animated/pingu/faller8.png create mode 100644 amor/data/pics/animated/pingu/floater1.png create mode 100644 amor/data/pics/animated/pingu/floater2.png create mode 100644 amor/data/pics/animated/pingu/floater3.png create mode 100644 amor/data/pics/animated/pingu/floater4.png create mode 100644 amor/data/pics/animated/pingu/floater5.png create mode 100644 amor/data/pics/animated/pingu/floater6.png create mode 100644 amor/data/pics/animated/pingu/floater7.png create mode 100644 amor/data/pics/animated/pingu/floater8.png create mode 100644 amor/data/pics/animated/pingu/tumble1.png create mode 100644 amor/data/pics/animated/pingu/tumble2.png create mode 100644 amor/data/pics/animated/pingu/tumble3.png create mode 100644 amor/data/pics/animated/pingu/tumble4.png create mode 100644 amor/data/pics/animated/pingu/tumble5.png create mode 100644 amor/data/pics/animated/pingu/tumble6.png create mode 100644 amor/data/pics/animated/pingu/tumble7.png create mode 100644 amor/data/pics/animated/pingu/tumble8.png create mode 100644 amor/data/pics/animated/pingu/walk_l1.png create mode 100644 amor/data/pics/animated/pingu/walk_l2.png create mode 100644 amor/data/pics/animated/pingu/walk_l3.png create mode 100644 amor/data/pics/animated/pingu/walk_l4.png create mode 100644 amor/data/pics/animated/pingu/walk_l5.png create mode 100644 amor/data/pics/animated/pingu/walk_l6.png create mode 100644 amor/data/pics/animated/pingu/walk_l7.png create mode 100644 amor/data/pics/animated/pingu/walk_l8.png create mode 100644 amor/data/pics/animated/pingu/walk_r1.png create mode 100644 amor/data/pics/animated/pingu/walk_r2.png create mode 100644 amor/data/pics/animated/pingu/walk_r3.png create mode 100644 amor/data/pics/animated/pingu/walk_r4.png create mode 100644 amor/data/pics/animated/pingu/walk_r5.png create mode 100644 amor/data/pics/animated/pingu/walk_r6.png create mode 100644 amor/data/pics/animated/pingu/walk_r7.png create mode 100644 amor/data/pics/animated/pingu/walk_r8.png create mode 100644 amor/data/pics/animated/tao/Makefile.am create mode 100644 amor/data/pics/animated/tao/yy-1.png create mode 100644 amor/data/pics/animated/tao/yy-2.png create mode 100644 amor/data/pics/animated/tao/yy-3.png create mode 100644 amor/data/pics/animated/tao/yy-4.png create mode 100644 amor/data/pics/animated/tao/yy-5.png create mode 100644 amor/data/pics/animated/tao/yy-6.png create mode 100644 amor/data/pics/animated/tao/yy-7.png create mode 100644 amor/data/pics/animated/tao/yy-8.png create mode 100644 amor/data/pics/animated/tao/yy-9.png create mode 100644 amor/data/pics/animated/tao/yy.png create mode 100644 amor/data/pics/animated/tao/yy105.png create mode 100644 amor/data/pics/animated/tao/yy120.png create mode 100644 amor/data/pics/animated/tao/yy135.png create mode 100644 amor/data/pics/animated/tao/yy15.png create mode 100644 amor/data/pics/animated/tao/yy150.png create mode 100644 amor/data/pics/animated/tao/yy165.png create mode 100644 amor/data/pics/animated/tao/yy180.png create mode 100644 amor/data/pics/animated/tao/yy195.png create mode 100644 amor/data/pics/animated/tao/yy210.png create mode 100644 amor/data/pics/animated/tao/yy225.png create mode 100644 amor/data/pics/animated/tao/yy240.png create mode 100644 amor/data/pics/animated/tao/yy255.png create mode 100644 amor/data/pics/animated/tao/yy270.png create mode 100644 amor/data/pics/animated/tao/yy285.png create mode 100644 amor/data/pics/animated/tao/yy30.png create mode 100644 amor/data/pics/animated/tao/yy300.png create mode 100644 amor/data/pics/animated/tao/yy315.png create mode 100644 amor/data/pics/animated/tao/yy330.png create mode 100644 amor/data/pics/animated/tao/yy345.png create mode 100644 amor/data/pics/animated/tao/yy45.png create mode 100644 amor/data/pics/animated/tao/yy60.png create mode 100644 amor/data/pics/animated/tao/yy75.png create mode 100644 amor/data/pics/animated/tao/yy90.png create mode 100644 amor/data/pics/animated/tao/yyx10.png create mode 100644 amor/data/pics/animated/tao/yyx12.png create mode 100644 amor/data/pics/animated/tao/yyx14.png create mode 100644 amor/data/pics/animated/tao/yyx16.png create mode 100644 amor/data/pics/animated/tao/yyx18.png create mode 100644 amor/data/pics/animated/tao/yyx20.png create mode 100644 amor/data/pics/animated/tao/yyx22.png create mode 100644 amor/data/pics/animated/tao/yyx24.png create mode 100644 amor/data/pics/animated/tao/yyx26.png create mode 100644 amor/data/pics/animated/tao/yyx28.png create mode 100644 amor/data/pics/animated/tao/yyx30.png create mode 100644 amor/data/pics/animated/tao/yyx6.png create mode 100644 amor/data/pics/animated/tao/yyx8.png create mode 100644 amor/data/pics/animated/worm/Makefile.am create mode 100644 amor/data/pics/animated/worm/w-a1.png create mode 100644 amor/data/pics/animated/worm/w-a2.png create mode 100644 amor/data/pics/animated/worm/w-b1.png create mode 100644 amor/data/pics/animated/worm/w-b2.png create mode 100644 amor/data/pics/animated/worm/w-be1.png create mode 100644 amor/data/pics/animated/worm/w-be2.png create mode 100644 amor/data/pics/animated/worm/w-be3.png create mode 100644 amor/data/pics/animated/worm/w-be4.png create mode 100644 amor/data/pics/animated/worm/w-d1.png create mode 100644 amor/data/pics/animated/worm/w-d2.png create mode 100644 amor/data/pics/animated/worm/w-d3.png create mode 100644 amor/data/pics/animated/worm/w-d4.png create mode 100644 amor/data/pics/animated/worm/w-d5.png create mode 100644 amor/data/pics/animated/worm/w-dr1.png create mode 100644 amor/data/pics/animated/worm/w-e1.png create mode 100644 amor/data/pics/animated/worm/w-l1.png create mode 100644 amor/data/pics/animated/worm/w-l2.png create mode 100644 amor/data/pics/animated/worm/w-l3.png create mode 100644 amor/data/pics/animated/worm/w-ml0.png create mode 100644 amor/data/pics/animated/worm/w-ml1.png create mode 100644 amor/data/pics/animated/worm/w-ml2.png create mode 100644 amor/data/pics/animated/worm/w-ml3.png create mode 100644 amor/data/pics/animated/worm/w-mr0.png create mode 100644 amor/data/pics/animated/worm/w-mr1.png create mode 100644 amor/data/pics/animated/worm/w-mr2.png create mode 100644 amor/data/pics/animated/worm/w-mr3.png create mode 100644 amor/data/pics/animated/worm/w-s1.png create mode 100644 amor/data/pics/animated/worm/w-s2.png create mode 100644 amor/data/pics/animated/worm/w-s3.png create mode 100644 amor/data/pics/animated/worm/w-u1.png create mode 100644 amor/data/pics/animated/worm/w-u2.png create mode 100644 amor/data/pics/animated/worm/w-u3.png create mode 100644 amor/data/pics/animated/worm/w-wl1.png create mode 100644 amor/data/pics/animated/worm/w-wl2.png create mode 100644 amor/data/pics/animated/worm/w-wr1.png create mode 100644 amor/data/pics/animated/worm/w-wr2.png create mode 100644 amor/data/pics/preview/Makefile.am create mode 100644 amor/data/pics/preview/billy.png create mode 100644 amor/data/pics/preview/blob.png create mode 100644 amor/data/pics/preview/bonhomme.png create mode 100644 amor/data/pics/preview/bsd.png create mode 100644 amor/data/pics/preview/eyes.png create mode 100644 amor/data/pics/preview/ghost.png create mode 100644 amor/data/pics/preview/neko.png create mode 100644 amor/data/pics/preview/tao.png create mode 100644 amor/data/pics/preview/tux.png create mode 100644 amor/data/pics/preview/worm.png create mode 100644 amor/data/pics/static/Makefile.am create mode 100644 amor/data/pics/static/billy.png create mode 100644 amor/data/pics/static/bsd.png create mode 100644 amor/data/pics/static/tux.png create mode 100644 amor/data/pingurc create mode 100644 amor/data/taorc create mode 100644 amor/data/tips-en create mode 100644 amor/data/tuxrc create mode 100644 amor/data/wormrc create mode 100644 amor/hi16-app-amor.png create mode 100644 amor/hi22-app-amor.png create mode 100644 amor/hi32-app-amor.png create mode 100644 amor/hi48-app-amor.png create mode 100644 amor/main.cpp create mode 100644 amor/preparetips create mode 100644 amor/version.h create mode 100644 configure.in.in create mode 100644 doc/Makefile.am create mode 100644 doc/amor/Makefile.am create mode 100644 doc/amor/billy.png create mode 100644 doc/amor/bonhomme.png create mode 100644 doc/amor/bsd.png create mode 100644 doc/amor/eyes.png create mode 100644 doc/amor/ghost.png create mode 100644 doc/amor/index.docbook create mode 100644 doc/amor/man-amor.6.docbook create mode 100644 doc/amor/neko.png create mode 100644 doc/amor/pingus.png create mode 100644 doc/amor/spot.png create mode 100644 doc/amor/tao.png create mode 100644 doc/amor/tux.png create mode 100644 doc/amor/worm.png create mode 100644 doc/kmoon/Makefile.am create mode 100644 doc/kmoon/carlosmail create mode 100644 doc/kmoon/index.docbook create mode 100644 doc/kodo/Makefile.am create mode 100644 doc/kodo/guide.png create mode 100644 doc/kodo/index.docbook create mode 100644 doc/kteatime/Makefile.am create mode 100644 doc/kteatime/config.png create mode 100644 doc/kteatime/index.docbook create mode 100644 doc/kweather/Makefile.am create mode 100644 doc/kweather/index.docbook create mode 100644 doc/kworldclock/Makefile.am create mode 100644 doc/kworldclock/index.docbook create mode 100644 doc/kworldclock/man-kworldclock.1.docbook create mode 100644 doc/kworldclock/screenshot-clock-dialog.png create mode 100644 doc/kworldclock/screenshot-mlb.png create mode 100644 doc/kworldclock/screenshot-quairading-clock.png create mode 100644 doc/kworldclock/screenshot-quairading-dialog.png create mode 100644 doc/kworldclock/screenshot-rmb-cities.png create mode 100644 doc/kworldclock/screenshot-rmb-clock.png create mode 100644 doc/kworldclock/screenshot-rmb-daylight.png create mode 100644 doc/kworldclock/screenshot-rmb-flags.png create mode 100644 doc/kworldclock/screenshot-withclocks.png create mode 100644 doc/kworldclock/screenshot-withflags.png create mode 100644 doc/kworldclock/screenshot.png create mode 100644 eyesapplet/Makefile.am create mode 100644 eyesapplet/configure.in.in create mode 100644 eyesapplet/eyes.cpp create mode 100644 eyesapplet/eyes.h create mode 100644 eyesapplet/eyesapplet.desktop create mode 100644 fifteenapplet/Makefile.am create mode 100644 fifteenapplet/fifteenapplet.cpp create mode 100644 fifteenapplet/fifteenapplet.h create mode 100644 fifteenapplet/kfifteenapplet.desktop create mode 100644 fifteenapplet/qttableview.cpp create mode 100644 fifteenapplet/qttableview.h create mode 100644 kdetoys.lsm create mode 100644 kmoon/AUTHORS create mode 100644 kmoon/Makefile.am create mode 100644 kmoon/hi16-app-kmoon.png create mode 100644 kmoon/hi32-app-kmoon.png create mode 100644 kmoon/hi48-app-kmoon.png create mode 100644 kmoon/kmoonapplet.cpp create mode 100644 kmoon/kmoonapplet.desktop create mode 100644 kmoon/kmoonapplet.h create mode 100644 kmoon/kmoondlg.cpp create mode 100644 kmoon/kmoondlg.h create mode 100644 kmoon/kmoonwidget.cpp create mode 100644 kmoon/kmoonwidget.h create mode 100644 kmoon/phases.cpp create mode 100644 kmoon/pics/Makefile.am create mode 100644 kmoon/pics/moon1.png create mode 100644 kmoon/pics/moon10.png create mode 100644 kmoon/pics/moon11.png create mode 100644 kmoon/pics/moon12.png create mode 100644 kmoon/pics/moon13.png create mode 100644 kmoon/pics/moon14.png create mode 100644 kmoon/pics/moon15.png create mode 100644 kmoon/pics/moon16.png create mode 100644 kmoon/pics/moon17.png create mode 100644 kmoon/pics/moon18.png create mode 100644 kmoon/pics/moon19.png create mode 100644 kmoon/pics/moon2.png create mode 100644 kmoon/pics/moon20.png create mode 100644 kmoon/pics/moon21.png create mode 100644 kmoon/pics/moon22.png create mode 100644 kmoon/pics/moon23.png create mode 100644 kmoon/pics/moon24.png create mode 100644 kmoon/pics/moon25.png create mode 100644 kmoon/pics/moon26.png create mode 100644 kmoon/pics/moon27.png create mode 100644 kmoon/pics/moon28.png create mode 100644 kmoon/pics/moon29.png create mode 100644 kmoon/pics/moon3.png create mode 100644 kmoon/pics/moon4.png create mode 100644 kmoon/pics/moon5.png create mode 100644 kmoon/pics/moon6.png create mode 100644 kmoon/pics/moon7.png create mode 100644 kmoon/pics/moon8.png create mode 100644 kmoon/pics/moon9.png create mode 100644 kmoon/version.h create mode 100644 kodo/ChangeLog create mode 100644 kodo/Makefile.am create mode 100644 kodo/configure.in.in create mode 100644 kodo/hi16-app-kodo.png create mode 100644 kodo/hi32-app-kodo.png create mode 100644 kodo/hi48-app-kodo.png create mode 100644 kodo/kimagenumber.cpp create mode 100644 kodo/kimagenumber.h create mode 100644 kodo/kodo.desktop create mode 100644 kodo/kodometer.cpp create mode 100644 kodo/kodometer.h create mode 100644 kodo/main.cpp create mode 100644 kodo/numbers.png create mode 100644 kteatime/ChangeLog create mode 100644 kteatime/Makefile.am create mode 100644 kteatime/TODO create mode 100644 kteatime/cr22-action-mug.png create mode 100644 kteatime/cr22-action-tea_anim1.png create mode 100644 kteatime/cr22-action-tea_anim2.png create mode 100644 kteatime/cr22-action-tea_not_ready.png create mode 100644 kteatime/eventsrc create mode 100644 kteatime/hi16-app-kteatime.png create mode 100644 kteatime/hi32-app-kteatime.png create mode 100644 kteatime/hi48-app-kteatime.png create mode 100644 kteatime/kteatime.desktop create mode 100644 kteatime/main.cpp create mode 100644 kteatime/tealist.cpp create mode 100644 kteatime/tealist.h create mode 100644 kteatime/timeedit.cpp create mode 100644 kteatime/timeedit.h create mode 100644 kteatime/toplevel.cpp create mode 100644 kteatime/toplevel.h create mode 100644 ktux/AUTHORS create mode 100644 ktux/Makefile.am create mode 100644 ktux/hi16-app-ktux.png create mode 100644 ktux/hi32-app-ktux.png create mode 100644 ktux/ktux.desktop create mode 100644 ktux/sprite.cpp create mode 100644 ktux/sprite.h create mode 100644 ktux/spriteanim.cpp create mode 100644 ktux/spriteanim.h create mode 100644 ktux/spritemisc.cpp create mode 100644 ktux/spritemisc.h create mode 100644 ktux/spritepm.cpp create mode 100644 ktux/spritepm.h create mode 100644 ktux/sprites/Makefile.am create mode 100644 ktux/sprites/anim0001.png create mode 100644 ktux/sprites/anim0002.png create mode 100644 ktux/sprites/anim0003.png create mode 100644 ktux/sprites/anim0004.png create mode 100644 ktux/sprites/anim0005.png create mode 100644 ktux/sprites/anim0006.png create mode 100644 ktux/sprites/anim0007.png create mode 100644 ktux/sprites/anim0008.png create mode 100644 ktux/sprites/anim0009.png create mode 100644 ktux/sprites/anim0010.png create mode 100644 ktux/sprites/bg.png create mode 100644 ktux/sprites/flare0001.png create mode 100644 ktux/sprites/flare0002.png create mode 100644 ktux/sprites/spriterc create mode 100644 ktux/sprites/star0001.png create mode 100644 ktux/sprites/star0002.png create mode 100644 kweather/AUTHORS create mode 100644 kweather/Makefile.am create mode 100644 kweather/configure.in.in create mode 100644 kweather/dockwidget.cpp create mode 100644 kweather/dockwidget.h create mode 100644 kweather/graphics/Makefile.am create mode 100644 kweather/graphics/cloudy1.png create mode 100644 kweather/graphics/cloudy1_night.png create mode 100644 kweather/graphics/cloudy2.png create mode 100644 kweather/graphics/cloudy2_night.png create mode 100644 kweather/graphics/cloudy3.png create mode 100644 kweather/graphics/cloudy3_night.png create mode 100644 kweather/graphics/cloudy4.png create mode 100644 kweather/graphics/cloudy4_night.png create mode 100644 kweather/graphics/cloudy5.png create mode 100644 kweather/graphics/dunno.png create mode 100644 kweather/graphics/fog.png create mode 100644 kweather/graphics/fog_night.png create mode 100644 kweather/graphics/hail.png create mode 100644 kweather/graphics/light_rain.png create mode 100644 kweather/graphics/mist.png create mode 100644 kweather/graphics/mist_night.png create mode 100644 kweather/graphics/overcast.png create mode 100644 kweather/graphics/shower1.png create mode 100644 kweather/graphics/shower1_night.png create mode 100644 kweather/graphics/shower2.png create mode 100644 kweather/graphics/shower2_night.png create mode 100644 kweather/graphics/shower3.png create mode 100644 kweather/graphics/sleet.png create mode 100644 kweather/graphics/snow1.png create mode 100644 kweather/graphics/snow1_night.png create mode 100644 kweather/graphics/snow2.png create mode 100644 kweather/graphics/snow2_night.png create mode 100644 kweather/graphics/snow3.png create mode 100644 kweather/graphics/snow3_night.png create mode 100644 kweather/graphics/snow4.png create mode 100644 kweather/graphics/snow5.png create mode 100644 kweather/graphics/sunny.png create mode 100644 kweather/graphics/sunny_night.png create mode 100644 kweather/graphics/tstorm1.png create mode 100644 kweather/graphics/tstorm1_night.png create mode 100644 kweather/graphics/tstorm2.png create mode 100644 kweather/graphics/tstorm2_night.png create mode 100644 kweather/graphics/tstorm3.png create mode 100644 kweather/hi16-app-kweather.png create mode 100644 kweather/hi32-app-kweather.png create mode 100644 kweather/hi48-app-kweather.png create mode 100644 kweather/kcmweather.cpp create mode 100644 kweather/kcmweather.desktop create mode 100644 kweather/kcmweather.h create mode 100644 kweather/kcmweatherservice.cpp create mode 100644 kweather/kcmweatherservice.desktop create mode 100644 kweather/kcmweatherservice.h create mode 100644 kweather/kweather.cpp create mode 100644 kweather/kweather.desktop create mode 100644 kweather/kweather.h create mode 100644 kweather/kweather.kdevprj create mode 100644 kweather/kweatherreport.desktop create mode 100644 kweather/kweatherservice.desktop create mode 100644 kweather/main.cpp create mode 100644 kweather/metar_parser.cpp create mode 100644 kweather/metar_parser.h create mode 100644 kweather/metar_parser_test.cpp create mode 100644 kweather/prefdialogdata.ui create mode 100644 kweather/reportmain.cpp create mode 100644 kweather/reportview.cpp create mode 100644 kweather/reportview.h create mode 100644 kweather/serviceconfigdata.ui create mode 100644 kweather/serviceconfigwidget.cpp create mode 100644 kweather/serviceconfigwidget.h create mode 100644 kweather/sidebarwidget.cpp create mode 100644 kweather/sidebarwidget.h create mode 100644 kweather/sidebarwidgetbase.ui create mode 100644 kweather/stationdatabase.cpp create mode 100644 kweather/stationdatabase.h create mode 100644 kweather/stationdatabase_test.cpp create mode 100644 kweather/stations.dat create mode 100644 kweather/sun.cpp create mode 100644 kweather/sun.h create mode 100644 kweather/sun_test.cpp create mode 100755 kweather/test.sh create mode 100644 kweather/weatherIface.h create mode 100644 kweather/weather_stations.desktop create mode 100644 kweather/weatherbar.cpp create mode 100644 kweather/weatherbar.desktop create mode 100644 kweather/weatherbar.h create mode 100644 kweather/weatherbar_add.desktop create mode 100644 kweather/weatherbutton.cpp create mode 100644 kweather/weatherbutton.h create mode 100644 kweather/weatherlib.cpp create mode 100644 kweather/weatherlib.h create mode 100755 kweather/weatherlog.sh create mode 100644 kweather/weatherservice.cpp create mode 100644 kweather/weatherservice.h create mode 100644 kweather/weathersig.sh create mode 100644 kworldwatch/Makefile.am create mode 100644 kworldwatch/about.ui create mode 100644 kworldwatch/applet.cpp create mode 100644 kworldwatch/applet.h create mode 100644 kworldwatch/astro.c create mode 100644 kworldwatch/astro.h create mode 100644 kworldwatch/cities.cpp create mode 100644 kworldwatch/cities.h create mode 100644 kworldwatch/clock.ui create mode 100644 kworldwatch/flags.cpp create mode 100644 kworldwatch/flags.h create mode 100644 kworldwatch/flow.cpp create mode 100644 kworldwatch/flow.h create mode 100644 kworldwatch/hi16-app-kworldclock.png create mode 100644 kworldwatch/hi22-app-kworldclock.png create mode 100644 kworldwatch/hi32-app-kworldclock.png create mode 100644 kworldwatch/hi48-app-kworldclock.png create mode 100644 kworldwatch/kdeworld.desktop create mode 100644 kworldwatch/kworldclock.desktop create mode 100644 kworldwatch/kwwapplet.desktop create mode 100644 kworldwatch/main.cpp create mode 100644 kworldwatch/main.h create mode 100644 kworldwatch/maploader.cpp create mode 100644 kworldwatch/maploader.h create mode 100644 kworldwatch/maps/Makefile.am create mode 100644 kworldwatch/maps/README.maps create mode 100644 kworldwatch/maps/depths/400.jpg create mode 100644 kworldwatch/maps/depths/800.jpg create mode 100644 kworldwatch/maps/depths/Makefile.am create mode 100644 kworldwatch/maps/depths/depths.desktop create mode 100644 kworldwatch/maps/flatworld/1200.jpg create mode 100644 kworldwatch/maps/flatworld/1600.jpg create mode 100644 kworldwatch/maps/flatworld/200.jpg create mode 100644 kworldwatch/maps/flatworld/400.jpg create mode 100644 kworldwatch/maps/flatworld/800.jpg create mode 100644 kworldwatch/maps/flatworld/Makefile.am create mode 100644 kworldwatch/maps/flatworld/flatworld.desktop create mode 100644 kworldwatch/mapwidget.cpp create mode 100644 kworldwatch/mapwidget.h create mode 100644 kworldwatch/pics/Makefile.am create mode 100644 kworldwatch/pics/flag-blue.png create mode 100644 kworldwatch/pics/flag-green.png create mode 100644 kworldwatch/pics/flag-mask.xpm create mode 100644 kworldwatch/pics/flag-red.png create mode 100644 kworldwatch/pics/flag.png create mode 100644 kworldwatch/pics/world2.png create mode 100644 kworldwatch/sunclock.c create mode 100644 kworldwatch/sunclock.h create mode 100644 kworldwatch/zone.tab create mode 100644 kworldwatch/zoneclock.cpp create mode 100644 kworldwatch/zoneclock.h diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..5b67f26 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,4 @@ + +Look in the subdirs to get infos about the authors. + +The package is maintained by Stephan Kulow diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..5185fd3 --- /dev/null +++ b/COPYING @@ -0,0 +1,346 @@ +NOTE! The GPL below is copyrighted by the Free Software Foundation, but +the instance of code that it refers to (the kde programs) are copyrighted +by the authors who actually wrote it. + +--------------------------------------------------------------------------- + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + 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. + + 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; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/COPYING-DOCS b/COPYING-DOCS new file mode 100644 index 0000000..4a0fe1c --- /dev/null +++ b/COPYING-DOCS @@ -0,0 +1,397 @@ + GNU Free Documentation License + Version 1.2, November 2002 + + + Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall subject +(or to related matters) and contains nothing that could fall directly +within that overall subject. (Thus, if the Document is in part a +textbook of mathematics, a Secondary Section may not explain any +mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no other +conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to give +them a chance to provide you with an updated version of the Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section to be Entitled "Endorsements" + or to conflict in title with any Invariant Section. +O. Preserve any Warranty Disclaimers. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other documents +released under this License, and replace the individual copies of this +License in the various documents with a single copy that is included in +the collection, provided that you follow the rules of this License for +verbatim copying of each of the documents in all other respects. + +You may extract a single document from such a collection, and distribute +it individually under this License, provided you insert a copy of this +License into the extracted document, and follow this License in all +other respects regarding verbatim copying of that document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document except +as expressly provided for under this License. Any other attempt to +copy, modify, sublicense or distribute the Document is void, and will +automatically terminate your rights under this License. However, +parties who have received copies, or rights, from you under this +License will not have their licenses terminated so long as such +parties remain in full compliance. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions +of the GNU Free Documentation License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. See +http://www.gnu.org/copyleft/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.2 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..f8bad0c --- /dev/null +++ b/INSTALL @@ -0,0 +1,176 @@ +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes a while. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/kde/bin', `/usr/local/kde/lib', etc. You can specify an +installation prefix other than `/usr/local/kde' by giving `configure' +the option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. + diff --git a/Makefile.am.in b/Makefile.am.in new file mode 100644 index 0000000..df56ae0 --- /dev/null +++ b/Makefile.am.in @@ -0,0 +1,6 @@ +AUTOMAKE_OPTIONS = foreign 1.6.1 +DISTCLEANFILES = inst-apps + +MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 SUBDIRS +include admin/deps.am + diff --git a/Makefile.cvs b/Makefile.cvs new file mode 100644 index 0000000..be59a86 --- /dev/null +++ b/Makefile.cvs @@ -0,0 +1,14 @@ +all: + @echo "This Makefile is only for the CVS repository" + @echo "This will be deleted before making the distribution" + @echo "" + @if test ! -d admin; then \ + echo "Please recheckout this module!" ;\ + echo "for cvs: use checkout once and after that update again" ;\ + echo "for cvsup: checkout kde-common from cvsup and" ;\ + echo " link kde-common/admin to ./admin" ;\ + exit 1 ;\ + fi + $(MAKE) -f admin/Makefile.common cvs + +.SILENT: diff --git a/README b/README new file mode 100644 index 0000000..0f3eb1b --- /dev/null +++ b/README @@ -0,0 +1,47 @@ +In this file: + +* What it is +* Common Mistakes +* Debugging +* More Info + +What it is +---------- + +* amor: Amusing Misuse Of Resources put's comic figures above your windows +* eyesapplet: a kicker applet similar to XEyes +* fifteenapplet: kicker applet, order 15 pieces in a 4x4 square by moving them +* kaphorism: displays aphorisms +* kmoon: system tray applet showing the moon phase +* kodo: mouse movement meter +* kscore: kicker applet with a sports ticker +* kteatime: system tray applet that makes sure your tea doesn't get too strong +* ktux: Tux-in-a-Spaceship screen saver +* kweather: kicker applet that will display the current weather outside +* kworldwatch: application and kicker applet showing daylight area on the world + globe + +Common Mistakes +--------------- + +If configure claims Qt cannot be found, have a look at http://www.trolltech.com +to get the latest copy of Qt 3.3.x version. + +Debugging +--------- + +You can use --enable-debug with the configure script, if you want to have +debug code in your KDE apps and libs. I recommend to do this, since this +is alpha software and this makes debugging things a whole lot easier. + +More Info +--------- + +Have a look at the individual subdirectories, if you want to know, what +versions of apps are included. + +Please direct any bug reports to our bug list by visiting +http://bugs.kde.org. + +General KDE discussions should go to the KDE mailing list (kde@kde.org). + diff --git a/amor/AmorIface.h b/amor/AmorIface.h new file mode 100644 index 0000000..575d18d --- /dev/null +++ b/amor/AmorIface.h @@ -0,0 +1,49 @@ +/* AmorIface.h +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ + +#ifndef __AmorIface_h__ +#define __AmorIface_h__ + +#include + +class AmorIface : virtual public DCOPObject +{ + K_DCOP +public: + +k_dcop: + virtual void showTip(QString tip) = 0; + virtual void showMessage(QString message ) = 0; + virtual void showMessage(QString message, int msec ) = 0; + + virtual void screenSaverStopped() = 0; + virtual void screenSaverStarted() = 0; + +}; + +#endif + diff --git a/amor/Makefile.am b/amor/Makefile.am new file mode 100644 index 0000000..413c24e --- /dev/null +++ b/amor/Makefile.am @@ -0,0 +1,38 @@ + +# set the include path for X, qt and KDE +INCLUDES= $(all_includes) +# claim, which subdirectories you want to install +SUBDIRS = data + +####### This part is very amor specific +# you can add here more. This one gets installed +bin_PROGRAMS = amor + +# Which sources should be compiled for amor. +amor_SOURCES = amordialog.cpp amor.cpp amorwidget.cpp main.cpp amoranim.cpp amorpm.cpp\ + amorbubble.cpp amorconfig.cpp amortips.cpp AmorIface.skel + +include_HEADERS = AmorIface.h + +# the library search path +amor_LDFLAGS = $(all_libraries) $(KDE_RPATH) + +# the libraries to link against. Be aware of the order. First the libraries, +# that depend on the following ones. +amor_LDADD = $(LIB_KDEUI) + +# this option you can leave out. Just, if you use "make dist", you need it +noinst_HEADERS = amor.h amorwidget.h amoranim.h amorpm.h amordialog.h\ + amorbubble.h amorconfig.h amortips.h + +METASOURCES = AUTO + +messages: + perl ./preparetips > tips.cpp + $(XGETTEXT) tips.cpp *.cpp -o $(podir)/amor.pot + rm -f tips.cpp + +xdg_apps_DATA = amor.desktop + +KDE_ICON = amor + diff --git a/amor/TODO b/amor/TODO new file mode 100644 index 0000000..bc9c9f4 --- /dev/null +++ b/amor/TODO @@ -0,0 +1,15 @@ +As of 04/14/04... + + - find a way to use round bubbles without using Painter.drawRoundRect, +because you can only specify the relative roundness of the corners. The corners +should have a fixed radius. + + - What should be done about messages that arrive while the screensaver +is on?. + + - Clean up the messages queue. Why is the default timing for messages +and tips calculated in class queueItem instead of in class Amor? + + - Reduce the delay between a showMessage is received and the bubble is +actually shown. + diff --git a/amor/amor.cpp b/amor/amor.cpp new file mode 100644 index 0000000..9f98bb3 --- /dev/null +++ b/amor/amor.cpp @@ -0,0 +1,1024 @@ +/* amor.cpp +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include +#include +#include + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "amor.h" +#include "amor.moc" +#include "amorpm.h" +#include "amorbubble.h" +#include "amorwidget.h" +#include "amordialog.h" +#include "version.h" +#include +#include + +// #define DEBUG_AMOR + +#define SLEEP_TIMEOUT 180 // Animation sleeps after SLEEP_TIMEOUT seconds + // of mouse inactivity. +#define TIPS_FILE "tips" // Display tips in TIP_FILE-LANG, e.g "tips-en" +#define TIP_FREQUENCY 20 // Frequency tips are displayed small == more + // often. + +#define BUBBLE_TIME_STEP 250 + +// Standard animation groups +#define ANIM_BASE "Base" +#define ANIM_NORMAL "Sequences" +#define ANIM_FOCUS "Focus" +#define ANIM_BLUR "Blur" +#define ANIM_DESTROY "Destroy" +#define ANIM_SLEEP "Sleep" +#define ANIM_WAKE "Wake" + +//--------------------------------------------------------------------------- +// QueueItem +// Constructor +// + +QueueItem::QueueItem(itemType ty, QString te, int ti) +{ + // if the time field was not given, calculate one based on the type + // and length of the item + int effectiveLength = 0, nesting = 0; + + // discard html code from the lenght count + for (unsigned int i = 0; i < te.length(); i++) + { + if (te[i] == '<') nesting++; + else if (te[i] == '>') nesting--; + else if (!nesting) effectiveLength++; + } + if (nesting) // malformed html + { +#ifdef DEBUG_AMOR + kdDebug(10000) << "QueueItem::QueueItem(): Malformed HTML!" << endl; +#endif + effectiveLength = te.length(); + } + + if (ti == -1) + { + switch (ty) { + case Talk : // shorter times + ti = 1500 + 45 * effectiveLength; + break; + case Tip : // longer times + ti = 4000 + 30 * effectiveLength; + break; + } + } + + iType = ty; + iText = te; + iTime = ti; +} + +//--------------------------------------------------------------------------- +// AMOR +// Constructor +// +Amor::Amor() : DCOPObject( "AmorIface" ), QObject() +{ + mAmor = 0; + mBubble = 0; + mForceHideAmorWidget = false; + if (readConfig()) + { + mTargetWin = 0; + mNextTarget = 0; + mAmorDialog = 0; + mMenu = 0; + mCurrAnim = mBaseAnim; + mPosition = mCurrAnim->hotspot().x(); + mState = Normal; + + mWin = new KWinModule; + connect(mWin, SIGNAL(activeWindowChanged(WId)), + this, SLOT(slotWindowActivate(WId))); + connect(mWin, SIGNAL(windowRemoved(WId)), + this, SLOT(slotWindowRemove(WId))); + connect(mWin, SIGNAL(stackingOrderChanged()), + this, SLOT(slotStackingChanged())); + connect(mWin, SIGNAL(windowChanged(WId, const unsigned long *)), + this, SLOT(slotWindowChange(WId, const unsigned long *))); + connect(mWin, SIGNAL(currentDesktopChanged(int)), + this, SLOT(slotDesktopChange(int))); + + mAmor = new AmorWidget(); + connect(mAmor, SIGNAL(mouseClicked(const QPoint &)), + SLOT(slotMouseClicked(const QPoint &))); + connect(mAmor, SIGNAL(dragged(const QPoint &, bool)), + SLOT(slotWidgetDragged(const QPoint &, bool))); + mAmor->resize(mTheme.maximumSize()); + + mTimer = new QTimer(this); + connect(mTimer, SIGNAL(timeout()), SLOT(slotTimeout())); + + mStackTimer = new QTimer(this); + connect(mStackTimer, SIGNAL(timeout()), SLOT(restack())); + + mBubbleTimer = new QTimer(this); + connect(mBubbleTimer, SIGNAL(timeout()), SLOT(slotBubbleTimeout())); + + time(&mActiveTime); + mCursPos = QCursor::pos(); + mCursorTimer = new QTimer(this); + connect(mCursorTimer, SIGNAL(timeout()), SLOT(slotCursorTimeout())); + mCursorTimer->start( 500 ); + + if (mWin->activeWindow()) + { + mNextTarget = mWin->activeWindow(); + selectAnimation(Focus); + mTimer->start(0, true); + } + if (!connectDCOPSignal(0,0, "KDE_stop_screensaver()", "screenSaverStopped()",false)) + kdDebug(10000) << "Could not attach signal...KDE_stop_screensaver()" << endl; + else + kdDebug(10000) << "attached dcop signals..." << endl; + + if (!connectDCOPSignal(0,0, "KDE_start_screensaver()", "screenSaverStarted()",false)) + kdDebug(10000) << "Could not attach signal...KDE_start_screensaver()" << endl; + else + kdDebug(10000) << "attached dcop signals..." << endl; + + mTipsQueue.setAutoDelete(true); + + KStartupInfo::appStarted(); + } + else + { + kapp->quit(); + } +} + +//--------------------------------------------------------------------------- +// +// Destructor +// +Amor::~Amor() +{ + delete mWin; + delete mAmor; + delete mBubble; +} + +void Amor::screenSaverStopped() +{ +#ifdef DEBUG_AMOR + kdDebug(10000)<<"void Amor::screenSaverStopped() \n"; +#endif + + mAmor->show(); + mForceHideAmorWidget = false; + + mTimer->start(0, true); +} + +void Amor::screenSaverStarted() +{ +#ifdef DEBUG_AMOR + kdDebug(10000)<<"void Amor::screenSaverStarted() \n"; +#endif + + mAmor->hide(); + mTimer->stop(); + mForceHideAmorWidget = true; + + // GP: hide the bubble (if there's any) leaving any current message in the queue + hideBubble(); +} + +//--------------------------------------------------------------------------- +// +void Amor::showTip( QString tip ) +{ + if (mTipsQueue.count() < 5 && !mForceHideAmorWidget) // start dropping tips if the queue is too long + mTipsQueue.enqueue(new QueueItem(QueueItem::Tip, tip)); + + if (mState == Sleeping) + { + selectAnimation(Waking); // Set waking immediatedly + mTimer->start(0, true); + } +} + + +void Amor::showMessage( QString message ) +{ + showMessage(message, -1); +} + +void Amor::showMessage( QString message , int msec ) +{ + // FIXME: What should be done about messages and tips while the screensaver is on? + if (mForceHideAmorWidget) return; // do not show messages sent while in the screensaver + + mTipsQueue.enqueue(new QueueItem(QueueItem::Talk, message, msec)); + + if (mState == Sleeping) + { + selectAnimation(Waking); // Set waking immediatedly + mTimer->start(0, true); + } +} + + +//--------------------------------------------------------------------------- +// +// Clear existing theme and reload configuration +// +void Amor::reset() +{ + hideBubble(); + + mAmor->setPixmap(0L); // get rid of your old copy of the pixmap + + AmorPixmapManager::manager()->reset(); + mTips.reset(); + +// mTipsQueue.clear(); Why had I chosen to clean the tips queue? insane! + + readConfig(); + + mCurrAnim = mBaseAnim; + mPosition = mCurrAnim->hotspot().x(); + mState = Normal; + + mAmor->resize(mTheme.maximumSize()); + mCurrAnim->reset(); + + mTimer->start(0, true); +} + +//--------------------------------------------------------------------------- +// +// Read the selected theme. +// +bool Amor::readConfig() +{ + // Read user preferences + mConfig.read(); + + if (mConfig.mTips) + { + mTips.setFile(TIPS_FILE); + } + + // Select a random theme if user requested it + if (mConfig.mRandomTheme) + { + QStringList files; + + // Store relative paths into files to avoid storing absolute pathnames. + KGlobal::dirs()->findAllResources("appdata", "*rc", false, false, files); + int randomTheme = kapp->random() % files.count(); + mConfig.mTheme = (QString)*files.at(randomTheme); + } + + // read selected theme + if (!mTheme.setTheme(mConfig.mTheme)) + { + KMessageBox::error(0, i18n("Error reading theme: ") + mConfig.mTheme); + return false; + } + + if ( !mTheme.isStatic() ) + { + const char *groups[] = { ANIM_BASE, ANIM_NORMAL, ANIM_FOCUS, ANIM_BLUR, + ANIM_DESTROY, ANIM_SLEEP, ANIM_WAKE, 0 }; + + // Read all the standard animation groups + for (int i = 0; groups[i]; i++) + { + if (mTheme.readGroup(groups[i]) == false) + { + KMessageBox::error(0, i18n("Error reading group: ") + groups[i]); + return false; + } + } + } + else + { + if ( mTheme.readGroup( ANIM_BASE ) == false ) + { + KMessageBox::error(0, i18n("Error reading group: ") + ANIM_BASE); + return false; + } + } + + // Get the base animation + mBaseAnim = mTheme.random(ANIM_BASE); + + return true; +} + +//--------------------------------------------------------------------------- +// +// Show the bubble text +// +void Amor::showBubble() +{ + if (!mTipsQueue.isEmpty()) + { +#ifdef DEBUG_AMOR + kdDebug(10000) << "Amor::showBubble(): Displaying tips bubble." << endl; +#endif + + if (!mBubble) + { + mBubble = new AmorBubble; + } + + mBubble->setOrigin(mAmor->x()+mAmor->width()/2, + mAmor->y()+mAmor->height()/2); + mBubble->setMessage(mTipsQueue.head()->text()); + +// mBubbleTimer->start(mTipsQueue.head()->time(), true); + mBubbleTimer->start(BUBBLE_TIME_STEP, true); + } +} + +//--------------------------------------------------------------------------- +// +// Hide the bubble text if visible +// +void Amor::hideBubble(bool forceDequeue) +{ + if (mBubble) + { +#ifdef DEBUG_AMOR + kdDebug(10000) << "Amor::hideBubble(): Hiding tips bubble" << endl; +#endif + + // GP: stop mBubbleTimer to avoid deleting the first element, just in case we are changing windows + // or something before the tip was shown long enough + mBubbleTimer->stop(); + + // GP: the first message on the queue should be taken off for a + // number of reasons: a) forceDequeue == true, only when called + // from slotBubbleTimeout; b) the bubble is not visible ; c) + // the bubble is visible, but there's Tip being displayed. The + // latter is to keep backwards compatibility and because + // carrying around a tip bubble when switching windows quickly is really + // annoyying + if (forceDequeue || !mBubble->isVisible() || + (mTipsQueue.head()->type() == QueueItem::Tip)) /* there's always an item in the queue here */ + mTipsQueue.dequeue(); + + delete mBubble; + mBubble = 0; + } +} + +//--------------------------------------------------------------------------- +// +// Select a new animation appropriate for the current state. +// +void Amor::selectAnimation(State state) +{ + switch (state) + { + case Blur: + hideBubble(); + mCurrAnim = mTheme.random(ANIM_BLUR); + mState = Focus; + break; + + case Focus: + hideBubble(); + mCurrAnim = mTheme.random(ANIM_FOCUS); + mCurrAnim->reset(); + mTargetWin = mNextTarget; + if (mTargetWin != None) + { + mTargetRect = KWin::windowInfo(mTargetWin).frameGeometry(); + + // if the animation falls outside of the working area, + // then relocate it so that is inside the desktop again + QRect desktopArea = mWin->workArea(); + mInDesktopBottom = false; + + if (mTargetRect.y() - mCurrAnim->hotspot().y() + mConfig.mOffset < + desktopArea.y()) + { + // relocate the animation at the bottom of the screen + mTargetRect = QRect(desktopArea.x(), + desktopArea.y() + desktopArea.height(), + desktopArea.width(), 0); + + // we'll relocate the animation in the desktop + // frame, so do not add the offset to its vertical position + mInDesktopBottom = true; + } + + if ( mTheme.isStatic() ) + { + if ( mConfig.mStaticPos < 0 ) + mPosition = mTargetRect.width() + mConfig.mStaticPos; + else + mPosition = mConfig.mStaticPos; + if ( mPosition >= mTargetRect.width() ) + mPosition = mTargetRect.width()-1; + else if ( mPosition < 0 ) + mPosition = 0; + } + else + { + if (mCurrAnim->frame()) + { + if (mTargetRect.width() == mCurrAnim->frame()->width()) + mPosition = mCurrAnim->hotspot().x(); + else + mPosition = ( kapp->random() % + (mTargetRect.width() - mCurrAnim->frame()->width()) ) + + mCurrAnim->hotspot().x(); + } + else + { + mPosition = mTargetRect.width()/2; + } + } + } + else + { + // We don't want to do anything until a window comes into + // focus. + mTimer->stop(); + } + mAmor->hide(); + + restack(); + mState = Normal; + break; + + case Destroy: + hideBubble(); + mCurrAnim = mTheme.random(ANIM_DESTROY); + mState = Focus; + break; + + case Sleeping: + mCurrAnim = mTheme.random(ANIM_SLEEP); + break; + + case Waking: + mCurrAnim = mTheme.random(ANIM_WAKE); + mState = Normal; + break; + + default: + // Select a random normal animation if the current animation + // is not the base, otherwise select the base. This makes us + // alternate between the base animation and a random + // animination. + if (mCurrAnim == mBaseAnim && !mBubble) + { + mCurrAnim = mTheme.random(ANIM_NORMAL); + } + else + { + mCurrAnim = mBaseAnim; + } + break; + } + + if (mCurrAnim->totalMovement() + mPosition > mTargetRect.width() || + mCurrAnim->totalMovement() + mPosition < 0) + { + // The selected animation would end outside of this window's width + // We could randomly select a different one, but I prefer to just + // use the default animation. + mCurrAnim = mBaseAnim; + } + + mCurrAnim->reset(); +} + +//--------------------------------------------------------------------------- +// +// Set the animation's stacking order to be just above the target window's +// window decoration, or on top. +// +void Amor::restack() +{ + if (mTargetWin == None) + { + return; + } + + if (mConfig.mOnTop) + { + // simply raise the widget to the top + mAmor->raise(); + return; + } + +#ifdef DEBUG_AMOR + kdDebug(10000) << "restacking" << endl; +#endif + + Window sibling = mTargetWin; + Window dw, parent = None, *wins; + + do { + unsigned int nwins = 0; + + // We must use the target window's parent as our sibling. + // Is there a faster way to get parent window than XQueryTree? + if (XQueryTree(qt_xdisplay(), sibling, &dw, &parent, &wins, &nwins)) + { + if (nwins) + { + XFree(wins); + } + } + + if (parent != None && parent != dw ) + sibling = parent; + } while ( parent != None && parent != dw ); + + // Set animation's stacking order to be above the window manager's + // decoration of target window. + XWindowChanges values; + values.sibling = sibling; + values.stack_mode = Above; + XConfigureWindow(qt_xdisplay(), mAmor->winId(), CWSibling | CWStackMode, + &values); +} + +//--------------------------------------------------------------------------- +// +// The user clicked on our animation. +// +void Amor::slotMouseClicked(const QPoint &pos) +{ + bool restartTimer = mTimer->isActive(); + + // Stop the animation while the menu is open. + if (restartTimer) + { + mTimer->stop(); + } + + if (!mMenu) + { + KHelpMenu* help = new KHelpMenu(0, KGlobal::instance()->aboutData(), false); + KPopupMenu* helpMnu = help->menu(); + mMenu = new KPopupMenu(); + mMenu->insertTitle("Amor"); // I really don't want this i18n'ed + mMenu->insertItem(SmallIcon("configure"), i18n("&Configure..."), this, SLOT(slotConfigure())); + mMenu->insertSeparator(); + mMenu->insertItem(SmallIcon("help"), i18n("&Help"), helpMnu); + mMenu->insertItem(SmallIcon("exit"), i18n("&Quit"), kapp, SLOT(quit())); + } + + mMenu->exec(pos); + + if (restartTimer) + { + mTimer->start(1000, true); + } +} + +//--------------------------------------------------------------------------- +// +// Check cursor position +// +void Amor::slotCursorTimeout() +{ + QPoint currPos = QCursor::pos(); + QPoint diff = currPos - mCursPos; + time_t now = time(0); + + if (mForceHideAmorWidget) return; // we're hidden, do nothing + + if (abs(diff.x()) > 1 || abs(diff.y()) > 1) + { + if (mState == Sleeping) + { + // Set waking immediatedly + selectAnimation(Waking); + } + mActiveTime = now; + mCursPos = currPos; + } + else if (mState != Sleeping && now - mActiveTime > SLEEP_TIMEOUT) + { + // GP: can't go to sleep if there are tips in the queue + if (mTipsQueue.isEmpty()) + mState = Sleeping; // The next animation will become sleeping + } +} + +//--------------------------------------------------------------------------- +// +// Display the next frame or a new animation +// +void Amor::slotTimeout() +{ + if ( mForceHideAmorWidget ) + return; + + if (!mTheme.isStatic()) + mPosition += mCurrAnim->movement(); + mAmor->setPixmap(mCurrAnim->frame()); + mAmor->move(mTargetRect.x() + mPosition - mCurrAnim->hotspot().x(), + mTargetRect.y() - mCurrAnim->hotspot().y() + (!mInDesktopBottom?mConfig.mOffset:0)); + if (!mAmor->isVisible()) + { + mAmor->show(); + restack(); + } + + if (mCurrAnim == mBaseAnim && mCurrAnim->validFrame()) + { + // GP: Application tips/messages can be shown in any frame number; amor tips are + // only displayed on the first frame of mBaseAnim (the old way of doing this). + if ( !mTipsQueue.isEmpty() && !mBubble && mConfig.mAppTips) + showBubble(); + else if (kapp->random()%TIP_FREQUENCY == 1 && mConfig.mTips && !mBubble && !mCurrAnim->frameNum()) + { + mTipsQueue.enqueue(new QueueItem(QueueItem::Tip, mTips.tip())); + showBubble(); + } + } + + if (mTheme.isStatic()) + mTimer->start((mState == Normal) || (mState == Sleeping) ? 1000 : 100, true); + else + mTimer->start(mCurrAnim->delay(), true); + + if (!mCurrAnim->next()) + { + if ( mBubble ) + mCurrAnim->reset(); + else + selectAnimation(mState); + } +} + +//--------------------------------------------------------------------------- +// +// Display configuration dialog +// +void Amor::slotConfigure() +{ + if (!mAmorDialog) + { + mAmorDialog = new AmorDialog(); + connect(mAmorDialog, SIGNAL(changed()), SLOT(slotConfigChanged())); + connect(mAmorDialog, SIGNAL(offsetChanged(int)), + SLOT(slotOffsetChanged(int))); + } + + mAmorDialog->show(); +} + +//-------------------------------------------------------------------------- +// +// Configuration changed. +// +void Amor::slotConfigChanged() +{ + reset(); +} + +//--------------------------------------------------------------------------- +// +// Offset changed +// +void Amor::slotOffsetChanged(int off) +{ + mConfig.mOffset = off; + + if (mCurrAnim->frame()) + { + mAmor->move(mPosition + mTargetRect.x() - mCurrAnim->hotspot().x(), + mTargetRect.y() - mCurrAnim->hotspot().y() + (!mInDesktopBottom?mConfig.mOffset:0)); + } +} + +//--------------------------------------------------------------------------- +// +// Display About box +// +void Amor::slotAbout() +{ + QString about = i18n("Amor Version %1\n\n").arg(AMOR_VERSION) + + i18n("Amusing Misuse Of Resources\n\n") + + i18n("Copyright (c) 1999 Martin R. Jones \n\n") + + i18n("Original Author: Martin R. Jones \n") + + i18n("Current Maintainer: Gerardo Puga \n" ) + + "\nhttp://www.powerup.com.au/~mjones/amor/"; + KMessageBox::about(0, about, i18n("About Amor")); +} + +//--------------------------------------------------------------------------- +// +// Widget dragged +// +void Amor::slotWidgetDragged( const QPoint &delta, bool release ) +{ + if (mCurrAnim->frame()) + { + int newPosition = mPosition + delta.x(); + if (mCurrAnim->totalMovement() + newPosition > mTargetRect.width()) + newPosition = mTargetRect.width() - mCurrAnim->totalMovement(); + else if (mCurrAnim->totalMovement() + newPosition < 0) + newPosition = -mCurrAnim->totalMovement(); + mPosition = newPosition; + mAmor->move(mTargetRect.x() + mPosition - mCurrAnim->hotspot().x(), + mAmor->y()); + + if ( mTheme.isStatic() && release ) { + // static animations save the new position as preferred. + int savePos = mPosition; + if ( savePos > mTargetRect.width()/2 ) + savePos -= (mTargetRect.width()+1); + + mConfig.mStaticPos = savePos; + mConfig.write(); + } + } +} + +//--------------------------------------------------------------------------- +// +// Focus changed to a different window +// +void Amor::slotWindowActivate(WId win) +{ +#ifdef DEBUG_AMOR + kdDebug(10000) << "Window activated:" << win << endl; +#endif + + mTimer->stop(); + mNextTarget = win; + + // This is an active event that affects the target window + time(&mActiveTime); + + // A window gaining focus implies that the current window has lost + // focus. Initiate a blur event if there is a current active window. + if (mTargetWin) + { + // We are losing focus from the current window + selectAnimation(Blur); + mTimer->start(0, true); + } + else if (mNextTarget) + { + // We are setting focus to a new window + if (mState != Focus ) + selectAnimation(Focus); + mTimer->start(0, true); + } + else + { + // No action - We can get this when we switch between two empty + // desktops + mAmor->hide(); + } +} + +//--------------------------------------------------------------------------- +// +// Window removed +// +void Amor::slotWindowRemove(WId win) +{ +#ifdef DEBUG_AMOR + kdDebug(10000) << "Window removed" << endl; +#endif + + if (win == mTargetWin) + { + // This is an active event that affects the target window + time(&mActiveTime); + + selectAnimation(Destroy); + mTimer->stop(); + mTimer->start(0, true); + } +} + +//--------------------------------------------------------------------------- +// +// Window stacking changed +// +void Amor::slotStackingChanged() +{ +#ifdef DEBUG_AMOR + kdDebug(10000) << "Stacking changed" << endl; +#endif + + // This is an active event that affects the target window + time(&mActiveTime); + + // We seem to get this signal before the window has been restacked, + // so we just schedule a restack. + mStackTimer->start( 20, TRUE ); +} + +//--------------------------------------------------------------------------- +// +// Properties of a window changed +// +void Amor::slotWindowChange(WId win, const unsigned long * properties) +{ + + if (win != mTargetWin) + { + return; + } + + // This is an active event that affects the target window + time(&mActiveTime); + + KWin::Info info = KWin::info( mTargetWin ); + + if (info.isIconified() || + info.mappingState == NET::Withdrawn) + { +#ifdef DEBUG_AMOR + kdDebug(10000) << "Target window iconified" << endl; +#endif + + // The target window has been iconified + selectAnimation(Destroy); + mTargetWin = None; + mTimer->stop(); + mTimer->start(0, true); + + return; + } + + if (properties[0] & NET::WMGeometry) + { +#ifdef DEBUG_AMOR + kdDebug(10000) << "Target window moved or resized" << endl; +#endif + + QRect newTargetRect = KWin::windowInfo(mTargetWin).frameGeometry(); + + // if the change in the window caused the animation to fall + // out of the working area of the desktop, or if the animation + // didn't fall in the working area before but it does now, then + // refocus on the current window so that the animation is + // relocated. + QRect desktopArea = mWin->workArea(); + + bool fitsInWorkArea = !(newTargetRect.y() - mCurrAnim->hotspot().y() + mConfig.mOffset < desktopArea.y()); + if ((!fitsInWorkArea && !mInDesktopBottom) || (fitsInWorkArea && mInDesktopBottom)) + { + mNextTarget = mTargetWin; + selectAnimation(Blur); + mTimer->start(0, true); + + return; + } + + if (!mInDesktopBottom) + mTargetRect = newTargetRect; + + // make sure the animation is still on the window. + if (mCurrAnim->frame()) + { + hideBubble(); + if (mTheme.isStatic()) + { + if ( mConfig.mStaticPos < 0 ) + mPosition = mTargetRect.width() + mConfig.mStaticPos; + else + mPosition = mConfig.mStaticPos; + if ( mPosition >= mTargetRect.width() ) + mPosition = mTargetRect.width()-1; + else if ( mPosition < 0 ) + mPosition = 0; + } + else if (mPosition > mTargetRect.width() - + (mCurrAnim->frame()->width() - mCurrAnim->hotspot().x())) + { + mPosition = mTargetRect.width() - (mCurrAnim->frame()->width() - mCurrAnim->hotspot().x()); + } + mAmor->move(mTargetRect.x() + mPosition - mCurrAnim->hotspot().x(), + mTargetRect.y() - mCurrAnim->hotspot().y() + (!mInDesktopBottom?mConfig.mOffset:0)); + } + + return; + } +} + +//--------------------------------------------------------------------------- +// +// Changed to a different desktop +// +void Amor::slotDesktopChange(int desktop) +{ + // GP: signal currentDesktopChanged seems to be emitted even if you + // change to the very same desktop you are in. + if (mWin->currentDesktop() == desktop) + return; + +#ifdef DEBUG_AMOR + kdDebug(10000) << "Desktop change" << endl; +#endif + + mNextTarget = None; + mTargetWin = None; + selectAnimation( Normal ); + mTimer->stop(); + mAmor->hide(); +} + +// GP =========================================================================== + +void Amor::slotBubbleTimeout() +{ + // has the queue item been displayed for long enough? + QueueItem *first = mTipsQueue.head(); +#ifdef DEBUG_AMOR + if (!first) kdDebug(10000) << "Amor::slotBubbleTimeout(): empty queue!" << endl; +#endif + if ((first->time() > BUBBLE_TIME_STEP) && (mBubble->isVisible())) + { + first->setTime(first->time() - BUBBLE_TIME_STEP); + mBubbleTimer->start(BUBBLE_TIME_STEP, true); + return; + } + + // do not do anything if the mouse pointer is in the bubble + if (mBubble->mouseWithin()) + { + first->setTime(500); // show this item for another 500ms + mBubbleTimer->start(BUBBLE_TIME_STEP, true); + return; + } + + // are there any other tips pending? + if (mTipsQueue.count() > 1) + { + mTipsQueue.dequeue(); + showBubble(); // shows the next item in the queue + } else + hideBubble(true); // hideBubble calls dequeue() for itself. +} + +//=========================================================================== + +AmorSessionWidget::AmorSessionWidget() +{ + // the only function of this widget is to catch & forward the + // saveYourself() signal from the session manager + connect(kapp, SIGNAL(saveYourself()), SLOT(wm_saveyourself())); +} + +void AmorSessionWidget::wm_saveyourself() +{ + // no action required currently. +} + diff --git a/amor/amor.desktop b/amor/amor.desktop new file mode 100644 index 0000000..c8dfcea --- /dev/null +++ b/amor/amor.desktop @@ -0,0 +1,74 @@ +[Desktop Entry] +Name=AMOR +Name[af]=Amor +Name[ar]=برنامج AMOR +Name[bg]=Amor +Name[bn]=আমোর +Name[fi]=Amor +Name[fo]=Amor +Name[fr]=Amor +Name[hi]=एमोर +Name[pa]=ਅਮੋਰ +Name[sv]=Amor +Name[ta]= AMOR +Name[tr]=Amor +Name[zh_CN]=阿莫(AMOR) +Exec=amor +Icon=amor +Type=Application +DocPath=amor/index.html +GenericName=On-Screen Creature +GenericName[be]=Экранная жывёла +GenericName[bg]=Усмивка за работното място +GenericName[bn]=পর্দায় বসবাসকারী জন্তু +GenericName[ca]=Criatura a la pantalla +GenericName[cs]=Příšerka na obrazovce +GenericName[cy]=Creadur Ar-Sgrin +GenericName[da]=Skabning på skærmen +GenericName[de]=Maskottchen für die Arbeitsfläche +GenericName[el]=Πλάσμα στην οθόνη +GenericName[eo]=Surekrana kreaĵo +GenericName[es]=Criatura de la pantalla +GenericName[et]=Elajas töölaual +GenericName[eu]=Pantailako gizakia +GenericName[fa]=ایجاد‌کنندۀ روی پرده +GenericName[fi]=Näytönolento +GenericName[fr]=Créature sur l'écran +GenericName[ga]=Créatúr ar do scáileán +GenericName[gl]=Criatura no Escritório +GenericName[he]=יצור מסכי +GenericName[hr]=Kretura na zaslonu +GenericName[hu]=Animált figurák +GenericName[is]=Skjámyndataka +GenericName[it]=Creatura sullo schermo +GenericName[ja]=画面上の生物 +GenericName[km]=ការច្នៃ​ប្រឌិត​លើ​អេក្រង់ +GenericName[ko]=화면 위 생명체 +GenericName[lv]=Ekrāna dzīvnieks +GenericName[mk]=Креатура на екранот +GenericName[mt]=Annimal ta' fuq l-iskrin +GenericName[nb]=Vesen på skjermen +GenericName[nds]=Schriefdisch-Maskottje +GenericName[ne]=पर्दा क्रिएचर +GenericName[nl]=Schermvermaak +GenericName[nn]=Skjermvesen +GenericName[pa]=ਆਨ-ਸਕਰੀਨ ਲਵੋ +GenericName[pl]=Stworzenie ekranowe +GenericName[pt]=Criatura no Ecrã +GenericName[pt_BR]=Criatura na Tela +GenericName[ro]=Creatură pe ecran +GenericName[ru]=Экранные зверушки +GenericName[sk]=Stvorenie na obrazovke +GenericName[sl]=Zaslonska živalca +GenericName[sr]=Створење на екрану +GenericName[sr@Latn]=Stvorenje na ekranu +GenericName[sv]=Varelse på skärmen +GenericName[ta]=திரையில் உருவாக்கி +GenericName[tg]=Махлуқ дар экран +GenericName[tr]=Ekranda Gezinen Yaratık +GenericName[uk]=Екранна істота +GenericName[zh_CN]=屏幕涂鸦 +GenericName[zh_TW]=畫面擷取程式 +Terminal=false +X-DCOP-ServiceType=Unique +Categories=Qt;KDE;Utility;Amusement; diff --git a/amor/amor.h b/amor/amor.h new file mode 100644 index 0000000..a64486b --- /dev/null +++ b/amor/amor.h @@ -0,0 +1,164 @@ +/* amor.h +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef AMOR_H +#define AMOR_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include "amoranim.h" +#include "amortips.h" +#include "amorconfig.h" +#include "AmorIface.h" + +class AmorDialog; +class AmorBubble; +class AmorWidget; + +class QTimer; +class KWinModule; +class KPopupMenu; + +class QueueItem { +public: + + enum itemType { Talk , Tip }; + + QueueItem(itemType ty, QString te, int ti = -1); + + itemType type() { return iType; } + QString text() { return iText; }; + int time() { return iTime; }; + + void setTime(int newTime) { if (iTime > 0) iTime = newTime; }; + +private: + itemType iType; + QString iText; + int iTime; +}; + +//--------------------------------------------------------------------------- +// +// Amor handles window manager input and animation selection and updates. +// +class Amor : public QObject, virtual public AmorIface +{ + Q_OBJECT +public: + Amor(); + virtual ~Amor(); + + virtual void showTip(QString tip); + virtual void showMessage(QString message); + virtual void showMessage(QString message, int msec); + virtual void screenSaverStopped(); + virtual void screenSaverStarted(); + + void reset(); + +public slots: + void slotWindowActivate(WId); + void slotWindowRemove(WId); + void slotStackingChanged(); + void slotWindowChange(WId, const unsigned long * properties); + void slotDesktopChange(int); + +protected slots: + void slotMouseClicked(const QPoint &pos); + void slotTimeout(); + void slotCursorTimeout(); + void slotConfigure(); + void slotConfigChanged(); + void slotOffsetChanged(int); + void slotAbout(); + void slotWidgetDragged( const QPoint &delta, bool release ); + void restack(); + void hideBubble(bool forceDequeue = false); + + void slotBubbleTimeout(); + +protected: + enum State { Focus, Blur, Normal, Sleeping, Waking, Destroy }; + + bool readConfig(); + void readGroupConfig(KConfigBase &config, QPtrList &animList, + const char *seq); + void showBubble(); + AmorAnim *randomAnimation(QPtrList &animList); + void selectAnimation(State state=Normal); + void active(); + +private: + KWinModule *mWin; + WId mTargetWin; // The window that the animations sits on + QRect mTargetRect; // The goemetry of the target window + WId mNextTarget; // The window that will become the target + AmorWidget *mAmor; // The widget displaying the animation + AmorThemeManager mTheme; // Animations used by current theme + AmorAnim *mBaseAnim; // The base animation + AmorAnim *mCurrAnim; // The currently running animation + int mPosition; // The position of the animation + State mState; // The current state of the animation + QTimer *mTimer; // Frame timer + QTimer *mCursorTimer;// Cursor timer + QTimer *mStackTimer; // Restacking timer + QTimer *mBubbleTimer;// Bubble tip timer (GP: I didn't create this one, it had no use when I found it) + AmorDialog *mAmorDialog; // Setup dialog + KPopupMenu *mMenu; // Our menu + time_t mActiveTime; // The time an active event occurred + QPoint mCursPos; // The last recorded position of the pointer + QString mTipText; // Text to display in a bubble when possible + AmorBubble *mBubble; // Text bubble + AmorTips mTips; // Tips to display in the bubble + bool mInDesktopBottom; // the animation is not on top of the + // title bar, but at the bottom of the desktop + + AmorConfig mConfig; // Configuration parameters + bool mForceHideAmorWidget; + + QPtrQueue mTipsQueue; // GP: tips queue +}; + +//--------------------------------------------------------------------------- + +class AmorSessionWidget : public QWidget +{ + Q_OBJECT +public: + AmorSessionWidget(); + ~AmorSessionWidget() {}; +public slots: + void wm_saveyourself(); +}; + +#endif // AMOR_H + diff --git a/amor/amoranim.cpp b/amor/amoranim.cpp new file mode 100644 index 0000000..61447f1 --- /dev/null +++ b/amor/amoranim.cpp @@ -0,0 +1,254 @@ +/* amoranim.cpp +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include +#include +#include +#include "amoranim.h" +#include "amorpm.h" + +//--------------------------------------------------------------------------- +// +// Constructor +// +AmorAnim::AmorAnim(KConfigBase &config) + : mMaximumSize(0, 0) +{ + mCurrent = 0; + mTotalMovement = 0; + readConfig(config); +} + +//--------------------------------------------------------------------------- +// +// Destructor +// +AmorAnim::~AmorAnim() +{ +} + +//--------------------------------------------------------------------------- +// +// Get the Pixmap for the current frame. +// +const QPixmap *AmorAnim::frame() +{ + const QPixmap *pixmap = 0; + + if (validFrame()) + pixmap = AmorPixmapManager::manager()->pixmap(*mSequence.at(mCurrent)); + + return pixmap; +} + +//--------------------------------------------------------------------------- +// +// Read a single animation's parameters. The config class should already +// have its group set to the animation that is to be read. +// +void AmorAnim::readConfig(KConfigBase &config) +{ + // Read the list of frames to display and load them into the pixmap + // manager. + mSequence = config.readListEntry("Sequence"); + int frames = mSequence.count(); + for ( QStringList::Iterator it = mSequence.begin(); + it != mSequence.end(); + ++it ) + { + const QPixmap *pixmap = + AmorPixmapManager::manager()->load(*it); + if (pixmap) + mMaximumSize = mMaximumSize.expandedTo(pixmap->size()); + } + + // Read the delays between frames. + QStrList list; + int entries = config.readListEntry("Delay",list); + mDelay.resize(frames); + for (int i = 0; i < entries && i < frames; i++) + mDelay[i] = atoi(list.at(i)); + + // Read the distance to move between frames and calculate the total + // distance that this aniamtion moves from its starting position. + entries = config.readListEntry("Movement",list); + mMovement.resize(frames); + for (int i = 0; i < entries && i < frames; i++) + { + mMovement[i] = atoi(list.at(i)); + mTotalMovement += mMovement[i]; + } + + // Read the hotspot for each frame. + entries = config.readListEntry("HotspotX",list); + mHotspot.resize(frames); + for (int i = 0; i < entries && i < frames; i++) + mHotspot[i].setX(atoi(list.at(i))); + + entries = config.readListEntry("HotspotY",list); + for (int i = 0; i < entries && i < frames; i++) + mHotspot[i].setY(atoi(list.at(i))); + + // Add the overlap of the last frame to the total movement. + const QPoint &lastHotspot = mHotspot[mHotspot.size()-1]; + if (mTotalMovement > 0) + { + const QPixmap *lastFrame = + AmorPixmapManager::manager()->pixmap(mSequence.last()); + if (lastFrame) + { + mTotalMovement += (lastFrame->width() - lastHotspot.x()); + } + } + else if (mTotalMovement < 0) + { + mTotalMovement -= lastHotspot.x(); + } +} + +//=========================================================================== + +AmorThemeManager::AmorThemeManager() + : mMaximumSize(0, 0) +{ + mConfig = 0; + mAnimations.setAutoDelete(true); +} + +//--------------------------------------------------------------------------- +// +AmorThemeManager::~AmorThemeManager() +{ + delete mConfig; +} + +//--------------------------------------------------------------------------- +// +bool AmorThemeManager::setTheme(const QString & file) +{ + mPath = locate("appdata", file); + + delete mConfig; + + mConfig = new KSimpleConfig(mPath, true); + mConfig->setGroup("Config"); + + // Get the directory where the pixmaps are stored and tell the + // pixmap manager. + QString pixmapPath = mConfig->readPathEntry("PixmapPath"); + if (pixmapPath.isEmpty()) + return false; + + if (pixmapPath[0] == '/') + { + // absolute path to pixmaps + mPath = pixmapPath; + } + else + { + // relative to config file. + mPath.truncate(mPath.findRev('/')+1); + mPath += pixmapPath; + } + + mStatic = mConfig->readBoolEntry("Static", false); + + mMaximumSize.setWidth(0); + mMaximumSize.setHeight(0); + + mAnimations.clear(); + + return true; +} + +//--------------------------------------------------------------------------- +// +// Select an animimation randomly from a group +// +AmorAnim *AmorThemeManager::random(const QString & group) +{ + QString grp( group ); + + if (mStatic) + grp = "Base"; + + AmorAnimationGroup *animGroup = mAnimations.find(grp); + + if (animGroup) { + int idx = kapp->random()%animGroup->count(); + return animGroup->at( idx ); + } + + return 0; +} + +//--------------------------------------------------------------------------- +// +// Read an animation group. +// +bool AmorThemeManager::readGroup(const QString & seq) +{ + AmorPixmapManager::manager()->setPixmapDir(mPath); + + AmorAnimationGroup *animList = new AmorAnimationGroup; + animList->setAutoDelete(true); + + // Read the list of available animations. + mConfig->setGroup("Config"); + QStrList list; + int entries = mConfig->readListEntry(seq, list); + + // Read each individual animation + for (int i = 0; i < entries; i++) + { + mConfig->setGroup(list.at(i)); + AmorAnim *anim = new AmorAnim(*mConfig); + animList->append(anim); + mMaximumSize = mMaximumSize.expandedTo(anim->maximumSize()); + } + + // If no animations were available for this group, just add the base anim + if (entries == 0) + { + mConfig->setGroup("Base"); + AmorAnim *anim = new AmorAnim(*mConfig); + if (anim) + { + animList->append(anim); + mMaximumSize = mMaximumSize.expandedTo(anim->maximumSize()); + entries++; + } + } + + // Couldn't read any entries at all + if (entries == 0) + return false; + + mAnimations.insert(seq, animList); + + return true; +} + diff --git a/amor/amoranim.h b/amor/amoranim.h new file mode 100644 index 0000000..75341a1 --- /dev/null +++ b/amor/amoranim.h @@ -0,0 +1,117 @@ +/* amoranim.h +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef AMORANIM_H +#define AMORANIM_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include + +//--------------------------------------------------------------------------- +// +// AmorAnim contains the properties of a single animation +// +class AmorAnim +{ +public: + AmorAnim(KConfigBase &config); + virtual ~AmorAnim(); + + void reset() + { mCurrent = 0; } + bool next() + { return (++mCurrent < mSequence.count()); } + int frameNum() const + { return mCurrent; } + bool validFrame() const + { return (mCurrent < mSequence.count()); } + int totalMovement() const + { return mTotalMovement; } + QSize maximumSize() const + { return mMaximumSize; } + + int delay() const + { return (validFrame() ? mDelay[mCurrent] : 100); } + QPoint hotspot() const + { return (validFrame() ? mHotspot[mCurrent] : QPoint(16,16)); } + int movement() const + { return (validFrame() ? mMovement[mCurrent] : 0); } + const QPixmap *frame(); + +protected: + void readConfig(KConfigBase &config); + +protected: + unsigned int mCurrent; // current frame in sequence + QStringList mSequence; // sequence of images to display + QMemArray mDelay; // delay between frames + QMemArray mHotspot; // the hotspot in a frame + QMemArray mMovement; // the distance to move between frames + int mTotalMovement; // the total distance this animation moves + QSize mMaximumSize; // the maximum size of any frame +}; + +//--------------------------------------------------------------------------- +typedef QPtrList AmorAnimationGroup; + +//--------------------------------------------------------------------------- +// +// AmorThemeManager maintains an animation theme +// +class AmorThemeManager +{ +public: + AmorThemeManager(); + virtual ~AmorThemeManager(); + + bool setTheme(const QString & file); + bool readGroup(const QString & seq); + bool isStatic() const + { return mStatic; } + + AmorAnim *random(const QString & group); + + QSize maximumSize() const { return mMaximumSize; } + +protected: + QString mPath; + KSimpleConfig *mConfig; + QSize mMaximumSize; // The largest pixmap used + QDict mAnimations; // list of animation groups + bool mStatic; // static image +}; + +#endif // AMORANIM_H + diff --git a/amor/amorbubble.cpp b/amor/amorbubble.cpp new file mode 100644 index 0000000..a0c9f6b --- /dev/null +++ b/amor/amorbubble.cpp @@ -0,0 +1,250 @@ +/* amorbubble.cpp +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include "amorbubble.h" +#include "amorbubble.moc" +#include +#include +#include +#include +#include +#include +#include + +#define ARROW_WIDTH 10 +#define ARROW_HEIGHT 12 +#define BORDER_SIZE 4 +#define BUBBLE_OFFSET 16 +#define BUBBLE_TIMEOUT 4000 // Minimum milliseconds to display a tip + +//--------------------------------------------------------------------------- +// +// Constructor +// +AmorBubble::AmorBubble() + : QWidget(0, 0, WStyle_Customize | WStyle_NoBorder | WX11BypassWM ) +{ + mOriginX = 0; + mOriginY = 0; + mBrowser = new KTextBrowser( this ); + mBrowser->setFrameStyle( QFrame::NoFrame | QFrame::Plain ); + mBrowser->setMargin( 0 ); + + mBrowser->setWrapPolicy(QTextEdit::AtWordOrDocumentBoundary); // too long to fit in one line? + + QColorGroup clgrp = mBrowser->colorGroup(); + clgrp.setColor(QColorGroup::Text, Qt::black); + //Laurent QTextBrowser didn't have this function FIX me + //mBrowser->setPaperColorGroup( clgrp ); + mBrowser->setPaper( QToolTip::palette().active().brush( QColorGroup::Background ) ); + mBrowser->setVScrollBarMode( QTextBrowser::AlwaysOff ); + mBrowser->setHScrollBarMode( QTextBrowser::AlwaysOff ); + mBrowser->viewport()->installEventFilter( this ); + + mBrowser->mimeSourceFactory()->addFilePath(KGlobal::dirs()->findResourceDir("data", "kdewizard/pics")+"kdewizard/pics/"); + QStringList icons = KGlobal::dirs()->resourceDirs("icon"); + QStringList::Iterator it; + for (it = icons.begin(); it != icons.end(); ++it) + mBrowser->mimeSourceFactory()->addFilePath(*it); + + mMouseWithin = false; +} + +//--------------------------------------------------------------------------- +// +// Destructor +// +AmorBubble::~AmorBubble() +{ +} + +//--------------------------------------------------------------------------- +// +// Set the message to display in the bubble. Causes the geometry of the +// widget to be recalculated. +// +void AmorBubble::setMessage(const QString& message) +{ + mMessage = QString( "%1" ).arg( message ); + // hacks because heightForWidth() doesn't work. + setGeometry( -1000, 0, 300, 1000 ); + show(); + mBrowser->setGeometry( 0, 0, 250, 1000 ); + mBrowser->setText( mMessage ); + calcGeometry(); +} + +//--------------------------------------------------------------------------- +// +// Calculates the size, position and mask of the bubble +// +void AmorBubble::calcGeometry() +{ + mBound = QRect( 0, 0, 250, 0 ); +// mBound.setHeight( mBrowser->heightForWidth( mBound.width() ) ); + mBound.setHeight( mBrowser->contentsHeight() ); + mBound.moveBy(ARROW_WIDTH+BORDER_SIZE, BORDER_SIZE); + + // initialise the default geometry of the bubble + int w = mBound.width() + BORDER_SIZE * 2 + ARROW_WIDTH; + int h = mBound.height() + BORDER_SIZE * 2; + int xpos = mOriginX + BUBBLE_OFFSET; + int ypos = mOriginY - BORDER_SIZE - ARROW_HEIGHT / 2; + + mArrowVert = Top; + mArrowHorz = Left; + + // The actual position of the bubble may change if it is too close to + // the desktop boundary. + if (mOriginX + w > kapp->desktop()->width()) + { + // source on right + xpos = mOriginX - w - BUBBLE_OFFSET; + mArrowHorz = Right; + mBound.moveBy( -ARROW_WIDTH, 0 ); + } + + if (mOriginY + h > kapp->desktop()->height()) + { + // source at bottom + ypos = mOriginY - h + BORDER_SIZE + ARROW_HEIGHT / 2; + mArrowVert = Bottom; + } + + // Check for negative vertical bubble position (top of the screen) + if ( ypos < 0 ) + ypos = 0; + + setGeometry(xpos, ypos, w, h); + mBrowser->setGeometry( mBound ); + + // create and apply the shape mask + mMask.resize(w, h); + mMask.fill(color0); + QPainter maskPainter(&mMask); + maskPainter.setPen(color1); + maskPainter.setBrush(color1); + drawBubble(maskPainter); + XShapeCombineMask( x11Display(), winId(), ShapeBounding, 0, 0, + mMask.handle(), ShapeSet ); +} + +//--------------------------------------------------------------------------- +// +// Draw the bubble that text will be draw into using the current pen +// as the outline and the current brush as the fill. +// +void AmorBubble::drawBubble(QPainter &p) +{ + QPointArray pointArray(3); + + int left = ARROW_WIDTH; + + if (mArrowHorz == Left) + { + pointArray.setPoint(0, ARROW_WIDTH+1, 0); + pointArray.setPoint(1, 0, -3); + pointArray.setPoint(2, ARROW_WIDTH+1, ARROW_HEIGHT); + } + else + { + pointArray.setPoint(0, 0, 0); + pointArray.setPoint(1, ARROW_WIDTH+1, -3); + pointArray.setPoint(2, 0, ARROW_HEIGHT); + pointArray.translate(width() - ARROW_WIDTH - 1, 0); + left = 0; + } + + if (mArrowVert == Top) + { + pointArray.translate(0, BORDER_SIZE + ARROW_HEIGHT / 2); + } + else + { + pointArray.translate(0, height() - BORDER_SIZE - ARROW_HEIGHT / 2); + } + +// p.drawRoundRect(left, 0, width() - ARROW_WIDTH, height(), 10, 20); + p.drawRect(left, 0, width() - ARROW_WIDTH, height()); + + QPen pen(p.pen()); + p.setPen(NoPen); + p.drawPolygon(pointArray); + + p.setPen(pen); + p.drawPolyline(pointArray, 0, 3); +} + +//--------------------------------------------------------------------------- +// +// Draw the message in a bubble +// +void AmorBubble::paintEvent(QPaintEvent *) +{ + QPainter painter(this); + painter.setPen(black); + painter.setBrush( QToolTip::palette().active().brush( QColorGroup::Background ) ); + drawBubble(painter); +} + +//--------------------------------------------------------------------------- +// +// The user clicked on the widget +// +void AmorBubble::mouseReleaseEvent(QMouseEvent *) +{ + hide(); +} + +//--------------------------------------------------------------------------- +// +bool AmorBubble::eventFilter( QObject *, QEvent *e ) +{ + switch ( e->type() ) + { + +// GP case QEvent::Enter: +// GP mBubbleTimer->stop(); +// GP break; +// GP case QEvent::Leave: +// GP if ( isVisible() ) +// GP mBubbleTimer->start( 1000, true ); +// GP break; + case QEvent::Enter: + mMouseWithin = true; + break; + case QEvent::Leave: + mMouseWithin = false; + break; + case QEvent::MouseButtonRelease: + hide(); // GP This is the only reason a bubble might posibly be created but hidden + break; + default: + break; + } + + return false; +} diff --git a/amor/amorbubble.h b/amor/amorbubble.h new file mode 100644 index 0000000..722ec91 --- /dev/null +++ b/amor/amorbubble.h @@ -0,0 +1,81 @@ +/* amorbubble.h +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef AMORBUBBLE_H +#define AMORBUBBLE_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include + +class QTextBrowser; +class QTimer; + +//--------------------------------------------------------------------------- +// +// AmorBubble displays a message in a shaped window +// +class AmorBubble : public QWidget +{ + Q_OBJECT +public: + AmorBubble(); + virtual ~AmorBubble(); + + void setOrigin(int x, int y) { mOriginX = x; mOriginY = y; } + void setMessage(const QString& message); + + bool mouseWithin() { return mMouseWithin; } + +protected: + enum VertPos { Top, Bottom }; + enum HorzPos { Left, Right }; + + void calcGeometry(); + void drawBubble(QPainter &p); + virtual void paintEvent(QPaintEvent *); + virtual void mouseReleaseEvent(QMouseEvent *); + virtual bool eventFilter( QObject *, QEvent * ); + +protected: + QString mMessage; // message to display + int mOriginX; // X origin of bubble arrow + int mOriginY; // Y origin of bubble arrow + QRect mBound; // bounds of the text + QBitmap mMask; // shape mask + VertPos mArrowVert; // vertical position of the arrow + HorzPos mArrowHorz; // horizontal position of the arrow + QTextBrowser *mBrowser; // displays the message + + bool mMouseWithin; // the mouse pointer is inside the bubble +}; + +#endif // AMORBUBBLE_H + diff --git a/amor/amorconfig.cpp b/amor/amorconfig.cpp new file mode 100644 index 0000000..3a0c209 --- /dev/null +++ b/amor/amorconfig.cpp @@ -0,0 +1,83 @@ +/* amorconfig.cpp +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include +#include "amorconfig.h" +#include + +//--------------------------------------------------------------------------- +// +// Constructor +// +AmorConfig::AmorConfig() +{ + mOnTop = false; + mOffset = 0; + mTheme = "blobrc"; + mTips = false; + mAppTips = true; + mStaticPos = 20; +} + +//--------------------------------------------------------------------------- +// +// Read the configuration +// +void AmorConfig::read() +{ + KConfig *config = kapp->config(); + KConfigGroupSaver cs(config, "General"); + + mOnTop = config->readBoolEntry("OnTop", false); + mOffset = config->readNumEntry("Offset", 0); + mTheme = config->readEntry("Theme", "blobrc"); + mTips = config->readBoolEntry("Tips", false); + mRandomTheme = config->readBoolEntry("RandomTheme", false); + mAppTips = config->readBoolEntry("ApplicationTips", true); + mStaticPos = config->readNumEntry("StaticPosition", 20); +} + +//--------------------------------------------------------------------------- +// +// Write the configuration +// +void AmorConfig::write() +{ + KConfig *config = kapp->config(); + KConfigGroupSaver cs(config, "General"); + + config->writeEntry("OnTop", mOnTop); + config->writeEntry("Offset", mOffset); + config->writeEntry("Theme", mTheme); + config->writeEntry("Tips", mTips); + config->writeEntry("RandomTheme", mRandomTheme); + config->writeEntry("ApplicationTips", mAppTips); + config->writeEntry("StaticPosition", mStaticPos); + + config->sync(); +} + + diff --git a/amor/amorconfig.h b/amor/amorconfig.h new file mode 100644 index 0000000..9a93069 --- /dev/null +++ b/amor/amorconfig.h @@ -0,0 +1,58 @@ +/* amorconfig.h +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef AMORCONFIG_H +#define AMORCONFIG_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +//--------------------------------------------------------------------------- +// +// AmorConfig contains amor configuration parameters +// +class AmorConfig +{ +public: + AmorConfig(); + + void read(); + void write(); + + QString mTheme; + bool mOnTop; + int mOffset; + bool mTips; + bool mRandomTheme; + bool mAppTips; + int mStaticPos; +}; + +#endif // AMORCONFIG_H + diff --git a/amor/amordialog.cpp b/amor/amordialog.cpp new file mode 100644 index 0000000..36f2be3 --- /dev/null +++ b/amor/amordialog.cpp @@ -0,0 +1,285 @@ +/* amordialog.cpp +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ + +#include +#include +#include +#include +#include +#include +#include "amordialog.h" +#include "amordialog.moc" +#include "version.h" +#include +#include +#include + +//--------------------------------------------------------------------------- +// +// Constructor +// +AmorDialog::AmorDialog() + : KDialogBase(0, "amordlg", false, i18n("Options"), Ok|Apply|Cancel, Ok ) +{ + mConfig.read(); + QVBox *mainwidget = makeVBoxMainWidget(); + + QHBox *hb = new QHBox(mainwidget); + + // Theme list + QVBox *themeBox = new QVBox(hb); + themeBox->setSpacing(spacingHint()); + + QLabel *label = new QLabel(i18n("Theme:"), themeBox); + + mThemeListBox = new QListBox(themeBox); + connect(mThemeListBox,SIGNAL(highlighted(int)),SLOT(slotHighlighted(int))); + mThemeListBox->setMinimumSize( fontMetrics().maxWidth()*20, + fontMetrics().lineSpacing()*6 ); + + mAboutEdit = new QMultiLineEdit(themeBox); + mAboutEdit->setReadOnly(true); + mAboutEdit->setMinimumHeight( fontMetrics().lineSpacing()*4 ); + + themeBox->setStretchFactor(mThemeListBox, 4); + themeBox->setStretchFactor(mAboutEdit, 1); + + // Animation offset + QVBox *offsetBox = new QVBox(hb); + offsetBox->setSpacing(spacingHint()); + label = new QLabel(i18n("Offset:"), offsetBox); + + QSlider *slider = new QSlider(-40, 40, 5, mConfig.mOffset, + QSlider::Vertical, offsetBox); + connect(slider, SIGNAL(valueChanged(int)), SLOT(slotOffset(int))); + + // Always on top + QCheckBox *checkBox = new QCheckBox(i18n("Always on top"), mainwidget); + connect(checkBox, SIGNAL(toggled(bool)), SLOT(slotOnTop(bool))); + checkBox->setChecked(mConfig.mOnTop); + + checkBox = new QCheckBox(i18n("Show random tips"), mainwidget); + connect(checkBox, SIGNAL(toggled(bool)), SLOT(slotRandomTips(bool))); + checkBox->setChecked(mConfig.mTips); // always keep this one after the connect, or the QList would not be grayed when it should + + checkBox = new QCheckBox(i18n("Use a random character"), mainwidget); + connect(checkBox, SIGNAL(toggled(bool)), SLOT(slotRandomTheme(bool))); + checkBox->setChecked(mConfig.mRandomTheme); + + checkBox = new QCheckBox(i18n("Allow application tips"), mainwidget); + connect(checkBox, SIGNAL(toggled(bool)), SLOT(slotApplicationTips(bool))); + checkBox->setChecked(mConfig.mAppTips); + + readThemes(); +} + +//--------------------------------------------------------------------------- +// +// Destructor +// +AmorDialog::~AmorDialog() +{ +} + +//--------------------------------------------------------------------------- +// +// Get list of all themes +// +void AmorDialog::readThemes() +{ + QStringList files; + + // Non-recursive search for theme files, with the relative paths stored + // in files so that absolute paths are not used. + KGlobal::dirs()->findAllResources("appdata", "*rc", false, false, files); + + for (QStringList::ConstIterator it = files.begin(); + it != files.end(); + it++) + addTheme(*it); +} + +//--------------------------------------------------------------------------- +// +// Add a single theme to the list +// +void AmorDialog::addTheme(const QString& file) +{ + KSimpleConfig config(locate("appdata", file), true); + + config.setGroup("Config"); + + QString pixmapPath = config.readPathEntry("PixmapPath"); + if (pixmapPath.isEmpty()) + { + return; + } + + pixmapPath += "/"; + + if (pixmapPath[0] != '/') + { + // relative to config file. We add a / to indicate the dir + pixmapPath = locate("appdata", pixmapPath); + } + + QString description = config.readEntry("Description"); + QString about = config.readEntry("About", " "); + QString pixmapName = config.readEntry("Icon"); + + pixmapPath += pixmapName; + + QPixmap pixmap(pixmapPath); + + AmorListBoxItem *item = new AmorListBoxItem(description, pixmap); + mThemeListBox->insertItem(item); + mThemes.append(file); + mThemeAbout.append(about); + + if (mConfig.mTheme == file) + { + mThemeListBox->setSelected(mThemeListBox->count()-1, true); + } +} + +//--------------------------------------------------------------------------- +// +// User highlighted a theme +// +void AmorDialog::slotHighlighted(int index) +{ + mConfig.mTheme = *mThemes.at(index); + mAboutEdit->setText(*mThemeAbout.at(index)); +} + +//--------------------------------------------------------------------------- +// +// User changed offset +// +void AmorDialog::slotOffset(int off) +{ + mConfig.mOffset = off; + emit offsetChanged(mConfig.mOffset); +} + +//--------------------------------------------------------------------------- +// +// User toggled always on top +// +void AmorDialog::slotOnTop(bool onTop) +{ + mConfig.mOnTop = onTop; +} + +//--------------------------------------------------------------------------- +// +// User toggled random tips +// +void AmorDialog::slotRandomTips(bool tips) +{ + mConfig.mTips = tips; +} + +//--------------------------------------------------------------------------- +// +// User toggled random character +// +void AmorDialog::slotRandomTheme(bool randomTheme) +{ + mThemeListBox->setEnabled(!randomTheme); + mConfig.mRandomTheme = randomTheme; +} + +//--------------------------------------------------------------------------- +// +// User toggled application tips +// +void AmorDialog::slotApplicationTips(bool tips) +{ + mConfig.mAppTips = tips; +} + +//--------------------------------------------------------------------------- +// +// User clicked Ok +// +void AmorDialog::slotOk() +{ + mConfig.write(); + emit changed(); + accept(); +} + +//--------------------------------------------------------------------------- +// +// User clicked Ok +// +void AmorDialog::slotApply() +{ + mConfig.write(); + emit changed(); +} + +//--------------------------------------------------------------------------- +// +// User clicked Cancel +// +void AmorDialog::slotCancel() +{ + // restore offset + KConfig *config = kapp->config(); + KConfigGroupSaver cs(config, "General"); + emit offsetChanged(config->readNumEntry("Offset")); + reject(); +} + +//=========================================================================== +// +// AmorListBoxItem implements a list box items for selection of themes +// +void AmorListBoxItem::paint( QPainter *p ) +{ + p->drawPixmap( 3, 0, mPixmap ); + QFontMetrics fm = p->fontMetrics(); + int yPos; // vertical text position + if ( mPixmap.height() < fm.height() ) + yPos = fm.ascent() + fm.leading()/2; + else + yPos = mPixmap.height()/2 - fm.height()/2 + fm.ascent(); + p->drawText( mPixmap.width() + 5, yPos, text() ); +} + +int AmorListBoxItem::height(const QListBox *lb ) const +{ + return QMAX( mPixmap.height(), lb->fontMetrics().lineSpacing() + 1 ); +} + +int AmorListBoxItem::width(const QListBox *lb ) const +{ + return mPixmap.width() + lb->fontMetrics().width( text() ) + 6; +} + diff --git a/amor/amordialog.h b/amor/amordialog.h new file mode 100644 index 0000000..59e639d --- /dev/null +++ b/amor/amordialog.h @@ -0,0 +1,107 @@ +/* amordialog.h +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef AMORDIALOG_H +#define AMORDIALOG_H + +#include +#include +#include +#include +#include "amorconfig.h" +#include + +//--------------------------------------------------------------------------- +// +// AmorDialog provides a setup dialog. +// +class AmorDialog : public KDialogBase +{ + Q_OBJECT + +public: + AmorDialog(); + virtual ~AmorDialog(); + +signals: + //----------------------------------------------------------------------- + // + // The configuration has changed in some way. + // + void changed(); + + //----------------------------------------------------------------------- + // + // The animation offset has been changed. + // + void offsetChanged(int); + +protected slots: + void slotHighlighted(int); + void slotOnTop(bool); + void slotRandomTips(bool); + void slotRandomTheme(bool); + void slotApplicationTips(bool); + void slotOffset(int); + void slotOk(); + void slotApply(); + void slotCancel(); + +protected: + void readThemes(); + void addTheme(const QString& file); + +protected: + QListBox *mThemeListBox; + QMultiLineEdit *mAboutEdit; + QStringList mThemes; + QStringList mThemeAbout; + AmorConfig mConfig; +}; + +//--------------------------------------------------------------------------- +// +// AmorListBoxItem implements a list box items for selection of themes +// +class AmorListBoxItem : public QListBoxItem +{ +public: + AmorListBoxItem(const QString & s, const QPixmap& p) + : QListBoxItem(), mPixmap(p) + { setText(s); } + +protected: + virtual void paint(QPainter *); + virtual int height(const QListBox *) const; + virtual int width(const QListBox *) const; + virtual const QPixmap *pixmap() const { return &mPixmap; } + +private: + QPixmap mPixmap; +}; + +#endif // AMORDIALOG_H + diff --git a/amor/amorpm.cpp b/amor/amorpm.cpp new file mode 100644 index 0000000..2a34495 --- /dev/null +++ b/amor/amorpm.cpp @@ -0,0 +1,94 @@ +/* amorpm.cpp +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include "amorpm.h" + +// static +AmorPixmapManager *AmorPixmapManager::mManager = 0; + +//--------------------------------------------------------------------------- +// +// Constructor +// +AmorPixmapManager::AmorPixmapManager() + : mPixmapDir(".") +{ + mPixmaps.setAutoDelete(true); +} + +//--------------------------------------------------------------------------- +// +// Destructor +// +AmorPixmapManager::~AmorPixmapManager() +{ +} + +//--------------------------------------------------------------------------- +// +// Load an image into the image manager +// +// Returns: +// pointer to pixmap if loaded successfully, 0 otherwise. +// +const QPixmap *AmorPixmapManager::load(const QString & img) +{ + QPixmap *pixmap = mPixmaps.find(img); + + if (!pixmap) + { + // pixmap has not yet been loaded. + QString path = mPixmapDir + QString("/") + img; + pixmap = new QPixmap(path); + + if (!pixmap->isNull()) + { + mPixmaps.insert(img,pixmap); + } + else + { + delete pixmap; + pixmap = 0; + } + } + + return pixmap; +} + +//--------------------------------------------------------------------------- +// +// returns a pointer to the pixmap manager. +// +AmorPixmapManager *AmorPixmapManager::manager() +{ + if (!mManager) + { + mManager = new AmorPixmapManager(); + } + + return mManager; +} + diff --git a/amor/amorpm.h b/amor/amorpm.h new file mode 100644 index 0000000..f67850b --- /dev/null +++ b/amor/amorpm.h @@ -0,0 +1,64 @@ +/* amorpm.h +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef AMORPM_H +#define AMORPM_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +//--------------------------------------------------------------------------- +// +// AmorPixmapManager stores the frames used in animations. +// +class AmorPixmapManager +{ +public: + AmorPixmapManager(); + virtual ~AmorPixmapManager(); + + void setPixmapDir(const QString &dir) + { mPixmapDir = dir; } + void reset() + { mPixmapDir = "."; mPixmaps.clear(); } + const QPixmap *load(const QString & img); + const QPixmap *pixmap(const QString & img) const + { return mPixmaps.find(img); } + + static AmorPixmapManager *manager(); + +public: + QString mPixmapDir; // get pixmaps from here + QDict mPixmaps; // list of pixmaps + static AmorPixmapManager *mManager; // static pointer to instance +}; + +#endif // AMORPM_H + diff --git a/amor/amortips.cpp b/amor/amortips.cpp new file mode 100644 index 0000000..1ef7c8f --- /dev/null +++ b/amor/amortips.cpp @@ -0,0 +1,181 @@ +/* amortips.cpp +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include +#include +#include "amortips.h" +#include +#include +#include +#include +#include + +//--------------------------------------------------------------------------- +// +AmorTips::AmorTips() +{ + KGlobal::locale()->insertCatalogue("ktip"); // For ktip tip translations +} + +//--------------------------------------------------------------------------- +// +// Set the file containing tips. This reads all tips into memory at the +// moment - need to make more efficient. +// +bool AmorTips::setFile(const QString& file) +{ + bool rv = false; + + QString path( locate("appdata", file) ); + if(path.length() && read(path)) + rv = true; + + rv |= readKTips(); + + return rv; +} + +//--------------------------------------------------------------------------- +// +// Clear all tips from memory +// +void AmorTips::reset() +{ + mTips.clear(); +} + +//--------------------------------------------------------------------------- +// +// Get a tip randomly from the list +// +QString AmorTips::tip() +{ + if (mTips.count()) + { + QString tip = *mTips.at(kapp->random() % mTips.count()); + return i18n(tip.utf8()); + } + + return i18n("No tip"); +} + +//--------------------------------------------------------------------------- +// +// Read the tips from ktip's file +// +bool AmorTips::readKTips() +{ + QString fname; + + fname = locate("data", QString("kdewizard/tips")); + + if (fname.isEmpty()) + return false; + + QFile f(fname); + if (f.open(IO_ReadOnly)) + { + // Reading of tips must be exactly as in KTipDatabase::loadTips for translation + QString content = f.readAll(); + const QRegExp rx("\\n+"); + + int pos = -1; + while ((pos = content.find("", pos + 1, false)) != -1) + { + QString tip = content + .mid(pos + 6, content.find("", pos, false) - pos - 6) + .replace(rx, "\n"); + if (!tip.endsWith("\n")) + tip += "\n"; + if (tip.startsWith("\n")) + tip = tip.mid(1); + if (tip.isEmpty()) + { + kdDebug() << "Empty tip found! Skipping! " << pos << endl; + continue; + } + mTips.append(tip); + } + + f.close(); + } + + return true; +} + +//--------------------------------------------------------------------------- +// +// Read all tips from the specified file. +// +bool AmorTips::read(const QString& path) +{ + QFile file(path); + + if (file.open(IO_ReadOnly)) + { + while (!file.atEnd()) + { + readTip(file); + } + + return true; + } + + return false; +} + +//--------------------------------------------------------------------------- +// +// Read a single tip. +// +bool AmorTips::readTip(QFile &file) +{ + char buffer[1024] = ""; + QString tip; + + while (!file.atEnd() && buffer[0] != '%') + { + file.readLine(buffer, 1024); + if (buffer[0] != '%') + { + tip += QString::fromUtf8(buffer); + } + } + + if (!tip.isEmpty()) + { + if (tip[tip.length()-1] == '\n') + { + tip.truncate(tip.length()-1); + } + mTips.append(tip); + return true; + } + + return false; +} + + diff --git a/amor/amortips.h b/amor/amortips.h new file mode 100644 index 0000000..7b0ddff --- /dev/null +++ b/amor/amortips.h @@ -0,0 +1,60 @@ +/* amortips.h +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef AMORTIPS_H +#define AMORTIPS_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +class QFile; + +//--------------------------------------------------------------------------- +// +// AmorTips selects random tips from a data file +// +class AmorTips +{ +public: + AmorTips(); + + bool setFile(const QString& file); + void reset(); + QString tip(); + +protected: + bool readKTips(); + bool read(const QString& file); + bool readTip(QFile &file); + +protected: + QStringList mTips; +}; + +#endif // AMORTIPS_H + diff --git a/amor/amorwidget.cpp b/amor/amorwidget.cpp new file mode 100644 index 0000000..e343524 --- /dev/null +++ b/amor/amorwidget.cpp @@ -0,0 +1,125 @@ +/* amorwidget.cpp +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include "amorwidget.h" +#include "amorwidget.moc" +#include +#include +#include + +//--------------------------------------------------------------------------- +// +// Constructor +// +AmorWidget::AmorWidget() + : QWidget(0, 0, WStyle_Customize | WStyle_NoBorder | WX11BypassWM ), + mPixmap(0) +{ + setBackgroundMode( NoBackground ); + dragging = false; +} + +//--------------------------------------------------------------------------- +// +// Destructor +// +AmorWidget::~AmorWidget() +{ +} + +//--------------------------------------------------------------------------- +// +// Set the pixmap to display +// +void AmorWidget::setPixmap(const QPixmap *pixmap) +{ + mPixmap = pixmap; + + if (mPixmap) + { + if (mPixmap->mask()) + { + XShapeCombineMask( x11Display(), winId(), ShapeBounding, 0, 0, + mPixmap->mask()->handle(), ShapeSet ); + repaint(false); + } + + update(); + } +} + +//--------------------------------------------------------------------------- +// +// Draw the pixmap +// +void AmorWidget::paintEvent(QPaintEvent *) +{ + if (mPixmap) + bitBlt( this, 0, 0, mPixmap ); + else + erase(); +} + +//--------------------------------------------------------------------------- +// +// The user clicked on the widget +// +void AmorWidget::mousePressEvent(QMouseEvent *me) +{ + clickPos = me->globalPos(); +} + +//--------------------------------------------------------------------------- +// +// The user moved the mouse +// +void AmorWidget::mouseMoveEvent(QMouseEvent *me) +{ + if ( me->state() == LeftButton ) { + if ( !dragging && (clickPos-me->globalPos()).manhattanLength() > 3 ) + dragging = true; + if ( dragging ) { + emit dragged( me->globalPos() - clickPos, false ); + clickPos = me->globalPos(); + } + } +} + +//--------------------------------------------------------------------------- +// +// The user clicked on the widget +// +void AmorWidget::mouseReleaseEvent(QMouseEvent *me) +{ + if ( dragging ) + emit dragged( me->globalPos() - clickPos, true ); + else if ( me->state() == RightButton ) + emit mouseClicked(clickPos); + + clickPos = QPoint(); + dragging = false; +} + diff --git a/amor/amorwidget.h b/amor/amorwidget.h new file mode 100644 index 0000000..5aaac82 --- /dev/null +++ b/amor/amorwidget.h @@ -0,0 +1,67 @@ +/* amorwidget.h +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef AMORWIDGET_H +#define AMORWIDGET_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +//--------------------------------------------------------------------------- +// +// AmorWidget displays a shaped pixmap +// +class AmorWidget : public QWidget +{ + Q_OBJECT +public: + AmorWidget(); + virtual ~AmorWidget(); + + void setPixmap(const QPixmap *pixmap); + +signals: + void mouseClicked(const QPoint &pos); + void dragged( const QPoint &delta, bool release ); + +protected: + void paintEvent(QPaintEvent *); + void mousePressEvent(QMouseEvent *); + void mouseMoveEvent(QMouseEvent *); + void mouseReleaseEvent(QMouseEvent *); + +protected: + const QPixmap *mPixmap; + QPoint clickPos; + bool dragging; +}; + +#endif // AMORWIDGET_H + diff --git a/amor/configure.in.in b/amor/configure.in.in new file mode 100644 index 0000000..1fe61bd --- /dev/null +++ b/amor/configure.in.in @@ -0,0 +1,3 @@ +if test "x$kde_use_qt_mac" = "xyes"; then + DO_NOT_COMPILE="$DO_NOT_COMPILE amor" +fi diff --git a/amor/data/Makefile.am b/amor/data/Makefile.am new file mode 100644 index 0000000..35a9c97 --- /dev/null +++ b/amor/data/Makefile.am @@ -0,0 +1,14 @@ +SUBDIRS = pics + +amor_DATA = blobrc ghostrc eyesrc bonhommerc nekorc pingurc wormrc tips-en \ + billyrc bsdrc tuxrc taorc + +# This is where it will all be installed +amordir = $(kde_datadir)/amor + +install-data-local: + -rm -f $(DESTDIR)$(amordir)/tips + $(LN_S) $(amordir)/tips-en $(DESTDIR)$(amordir)/tips + +uninstall-local: + -rm -f $(DESTDIR)$(amordir)/tips diff --git a/amor/data/billyrc b/amor/data/billyrc new file mode 100644 index 0000000..c0b7a4b --- /dev/null +++ b/amor/data/billyrc @@ -0,0 +1,129 @@ +# KDE Config File +[Config] +PixmapPath=pics/static +Static=true +Description=Little Billy +Description[af]=Klein Billy +Description[ar]=بيل الصغير +Description[be]=Маленькі Біллі +Description[bg]=Малкият Били +Description[bn]=ছোট্ট বিলি +Description[br]=Billy Bihan +Description[bs]=Mali Billy +Description[ca]=Petit Guillem +Description[cs]=Malý Billy +Description[cy]=Bili Bach +Description[da]=Lille Billy +Description[de]=Klein Billy +Description[el]=Μικρός Billy +Description[eo]=Malgranda Bilĉjo +Description[es]=Pequeño Billy +Description[et]=Pisi-Villu +Description[eu]=Billy Txikia +Description[fa]=چوب‌دستی کوچک +Description[fi]=Pikku-Billy +Description[gl]=O Pequeno Billy +Description[he]=בילי הקטן +Description[hi]=नन्हा बिल्लू +Description[hr]=Mali Billy +Description[hu]=Billy fiú +Description[is]=Billi litli +Description[it]=Piccolo Bill +Description[ja]=リトルビル +Description[km]=កូនប៊ីលីតូច +Description[ko]=작은 빌리 +Description[lt]=Mažasis Bilas +Description[lv]=Mazais Billijs +Description[mk]=Малиот Били +Description[mt]=Iċ-Ċkejken Billy +Description[nb]=Lille Billy +Description[nds]=Lütt Willi +Description[ne]=सानो बिल्ली +Description[nl]=Kleine Billy +Description[nn]=Litlebill +Description[pa]=ਛੋਟੀ ਬਿੱਲੀ +Description[pl]=Mały Billy +Description[pt]=Pequeno Bill +Description[pt_BR]=Pequeno Billy +Description[ro]=Micuţul Billy +Description[ru]=Маленький Билли +Description[sk]=Malý Billy +Description[sl]=Mali Billy +Description[sr]=Мали Били +Description[sr@Latn]=Mali Bili +Description[sv]=Lilla Billy +Description[ta]= லிட்டில் பில்யி +Description[tg]=Билли Пастқад +Description[th]=บิลลี่ตัวจ้อย +Description[tr]=Küçük Billy +Description[uk]=Маленький Біллі +Description[uz]=Kichik Billi +Description[uz@cyrillic]=Кичик Билли +Description[ven]=Billy Mutuku +Description[zh_CN]=小小比利 +Description[zh_TW]=小比利 +About=Static window sitter\nGraphic from http://www.xbill.org/ +About[af]=Statiese venster sitter\nGraphic van http://www.xbill.org/ +About[ar]=قاعدة النوافذ الساكنة \nالرسوم من http://www.xbill.org +About[az]=Statik pəncərə mürəbbiyəsi\nQrafikalar http://www.xbill.org/ +About[be]=Статычны наглядчык вокнаў\nГрафіка з http://www.xbill.org/ +About[bg]=Неанимирано човече\nГрафиката е взета от http://www.xbill.org/ +About[bn]=উইন্ডোর এক স্থানে স্থির হয়ে বসে থাকে\nগ্রাফিক্সের উৎস - http://www.xbill.org/ +About[bs]=Statički window sitter\nGrafika iz http://www.xbill.org/ +About[ca]=Model de finestra estàtica\nGràfic de http://www.xbill.org/ +About[cs]=Statická ozdoba okna\nGrafika z http://www.xbill.org/ +About[cy]=Gwarchodydd ffenest sefydlog\nGraffeg oddiwrth http://www.xbill.org/ +About[da]=Statisk vinduessitter\nGrafik fra http://www.xbill.org/ +About[de]=Statischer Fenstersitzer\nGraphik von http://www.xbill.org/ +About[el]=Στατικό εικονίδιο\nΓραφικό από το http://www.xbill.org/ +About[eo]=Moviĝema fenestrosidulo\nGrafiko de http://www.xbill.org/ +About[es]=Cuidador estático de ventanas\nGraphic from http://www.xbill.org/ +About[et]=Liikumatu aknahoidja\nGraafika: http://www.xbill.org/ +About[eu]=Lehio modelo egonkorra\nIrudia http://www.xbill.org/'tik +About[fa]=مدل پنجرۀ ایستا\nنگاره از http://www.xbill.org/ +About[fi]=Staattinen ikkunakoriste\nGrafiikat osoitteesta http://www.xbill.org/ +About[fr]=Surveillant statique de fenêtres\nDessin de http://www.xbill.org/ +About[ga]=Peata statach fuinneoige\nGrafaic ó http://www.xbill.org/ +About[gl]=Vixiante estático de fiestras\nImaxe sacada de http://www.xbill.org/ +About[he]=שומר חלון סטטי\nגרפיקה מתוך /http://www.xbill.org +About[hi]=स्थिर विंडो सिटर\nचित्र http://www.xbill.org/ से +About[hr]=Statički sjedač na prozoru\nSlika preuzeta sa http://www.xbill.org/ +About[hu]=Nem animált ablakdíszítés\nA grafika származási helye: http://www.xbill.org/ +About[is]=Static window sitter\nMynd frá http://www.xbill.org/ +About[it]=Immagine statica.\nGrafica presa da http://www.xbill.org/ +About[ja]=動かないウィンドウ監視人\nグラフィックは http://www.xbill.org/ より +About[km]=អ្នក​ថែទាំ​បង្អួចថិតិវន្ត\nរចនា​ក្រាហ្វិក​ពី http://www.xbill.org/ +About[lt]=Nejudantis sėdėtojas ant lango\nGrafika iš http://www.xbill.org/ +About[lv]=Statisks uz loga sēdētājs\nGrafika no http://www.xbill.org/ +About[mk]=Статичен седач врз прозорец\nСликата е од http://www.xbill.org/ +About[mt]=Stampa statika\nGrafika minn http://www.xbill.org/ +About[nb]=Statisk vindusitter\n Bilde fra http://www.xbill.org/ +About[nds]=Fast Finstersitter\nGrafik vun http://www.xbill.org/ +About[ne]=http://www.xbill.org/ बाट स्थिर सञ्झ्याल sitter\nGraphic +About[nl]=Statische vensterzitter\nAfbeeldingen van from http://www.xbill.org/ +About[nn]=Statisk vindaugssitjar\nBilete frå http://www.xbill.org/ +About[pl]=Obrazek w tym samym miejscu ekranu\nGrafika ze strony http://www.xbill.org/ +About[pt]=Elemento estático sobre as janelas\nImagens de http://www.xbill.org/ +About[pt_BR]=Janela Estática\nGráfica de http://www.xbill.org/ +About[ro]=Imagine statică\nGrafică de la http://www.xbill.org/ +About[ru]=Статичный сторож окон\nГрафика от http://www.xbill.org/ +About[sk]=Statická ozdoba okna\nGrafika z http://www.xbill.org/ +About[sl]=Statično okno\nGrafika z http://www.xbill.org/ +About[sr]=Статични седач на прозору\nГрафика са http://www.xbill.org/ +About[sr@Latn]=Statični sedač na prozoru\nGrafika sa http://www.xbill.org/ +About[sv]=Statisk fönstervakt\nGrafik från http://www.xbill.org/ +About[ta]= நிலையான சாளரம் \nவரைகலையில் இருந்து http://www.தமிழ்இணையம்.org/ +About[tg]=Нигаҳбонии статикии тиреза\nГрафика аз http://www.xbill.org/ +About[th]=นั่งเล่นบนหน้าต่าง\nกราฟิกจาก http://www.xbill.org/ +About[tr]=Statik pencere bakıcısı\nGrafikler http://www.xbill.org/ 'tan +About[uk]=Натурщик статичного вікна\nГрафіка з http://www.xbill.org/ +About[ven]=Tshidzuli tsha window isa tshimbili\nGirafu ubva http://www.xbill.org/ +About[xh]=Isibambo sewindow esingashukumi\nUmzobo http://www.xbill.org/ +About[zh_CN]=窗口静坐者\n图形来自 http://www.xbill.org/ +Icon=../preview/billy.png + +[Base] +Sequence=billy.png +HotspotX=14 +HotspotY=40 + diff --git a/amor/data/blobrc b/amor/data/blobrc new file mode 100644 index 0000000..176ae07 --- /dev/null +++ b/amor/data/blobrc @@ -0,0 +1,312 @@ +# KDE Config File +[Config] +PixmapPath=pics/animated/blob +Description=Multi-Talented Spot +Description[ar]=نقطة متعددة المواهب +Description[be]=Таленавіты калабок +Description[bg]=Всезнайко +Description[bn]=বহুমুখী প্রতিভাসম্পন্ন বিন্দু +Description[bs]=Više-talentirana tačka +Description[ca]=Anunci multi-dotat +Description[cs]=Talentovaný chlapík +Description[cy]=Smotyn Aml-Dalentog +Description[da]=Plet med multitalent +Description[de]=Das Multitalent +Description[el]=Πολυτάλαντη κουκκίδα +Description[eo]=Multtalenta makulo +Description[es]=Mancha multifacética +Description[et]=Väga andekas plekk +Description[eu]=Ahalmen Askodun Gunea +Description[fa]=شکارچی استعدادها +Description[fi]=Monitaitoinen piste +Description[fr]=Point à talents multiples +Description[ga]=Spota Ildánach +Description[gl]=Ponto con moitas faculdades +Description[he]=פרצוף כישרוני +Description[hi]=लाल बुझक्कड़ +Description[hr]=Višestruko nadarena točka +Description[hu]=Spot +Description[is]=Fjölhæfur Depill +Description[it]=Macchia con molte abilità +Description[ja]=マルチタレントスポット +Description[km]=ក្បាល​មាន​ទេពកោសល្យ​ច្រើន +Description[ko]=다재다능한 점 +Description[lv]=Multitalantīgs traips +Description[mk]=Мултиталентирана точка +Description[mt]=Ballun Bravu u Divertenti +Description[nb]=Flekk med mange talenter +Description[nds]=Dat Multitalent +Description[ne]=बहुँमुखी बिन्दु +Description[nl]=Multi-getalenteerde stip +Description[nn]=Talentfullt punkt +Description[pl]=Bardzo zdolna plamka +Description[pt]=Ponto Muito Talentoso +Description[pt_BR]=Spot com Multi-talentos +Description[ro]=Punct cu multiple talente +Description[ru]=Талантливое пятнышко +Description[sk]=Šikovný krúžok +Description[sl]=Splošno nadarjena pika +Description[sr]=Вишеталентована тачка +Description[sr@Latn]=Višetalentovana tačka +Description[sv]=Punkt med många talanger +Description[tg]=Одами Оқил +Description[th]=จุดอารมณ์ดี +Description[tr]=Çok Yetenekli Benek +Description[uk]=Здібна кулька +Description[xh]=Indawo Eneziphiwo Ezininzi +Description[zh_CN]=多才多艺的脸 +About=By Martin R. Jones\nJet pack, beam and fire animations by Mark Grant +About[af]=Deur Martin R. Jones\nJet pak, straal en vuur animasie Deur Merk Toegestaan +About[ar]=من مارتن ر. جونز\nJet pack, الضوء, و النار من تصميم مارك غرانت +About[az]=Martin R. Jones tərəfindən\nJet pack, beam and fire animations by Mark Grant +About[be]=Аўтары Martin R. Jones\nАнімацыі агню, палёту і луча - Mark Grant +About[bg]=Автор Мартин Р. Джоунс\nПодобрения и анимация от Марк Гранд +About[bn]=তৈরি করেছেন মার্টিন আর. জোন্স\nজেট প্যাক, রশ্মি ও আগুনের অ্যানিমেশন তৈরি করেছেন মার্ক গ্র্যান্ট +About[bs]=Autor: Martin R. Jones\nAnimacije mlaznog ranca, zrake i pucanja napravio Mark Grant +About[ca]=Per Martin R. Jones\nPaquet jet, nau i animacions de foc per Mark Grant +About[cs]=Autor Martin R. Jones\nAnimace: Mark Grant +About[cy]=Gan Martin R. Jones\nAnimeiddiadau pecyn jet, pelydryn a tân gan Mark Grant +About[da]=Af Martin R. Jones\nJetpack, stråle- og brandanimationer af Mark Grant +About[de]=Von Martin R. Jones\nRaketenrucksack, Strahl- und Feueranimationen von Mark Grant +About[el]=Από τον Martin R. Jones\nJet pack, εφέ κίνησης ακτίνας και φωτιάς από τον Mark Grant +About[eo]=De Martin R. Jones\nĴetpako, radiado kaj fajrospektakleto de Mark Grant +About[es]=Por Martin R. Jones\nAnimaciones de la mochila a chorro, rayos y fuego por Mark Grant +About[et]=Autor: Martin R. Jones\nJet pack, beam and fire animatsioonid: Mark Grant +About[eu]=Martin R. Jonesek egina\nJet bilduma, tximista eta su animazioak Mark Grantek eginak +About[fa]=توسط مارتین آر. جونز \n، پویانماییهای فوران، پرتو و آتش توسط مارک گرانت +About[fi]=Tehnyt Martin R. Jones\nAnimaatiot Mark Grant +About[fr]=Par Martin R. Jones\nAnimations du jet et du feu par Mark Grant +About[ga]=Le Martin R. Jones\nÍomhánna beo den scairdphaca, léas, agus tine le Mark Grant +About[gl]=Por Martin R. Jones\nAs animacións do propulsor, do raio e do fogo son de Mark Grant +About[he]=מאת מרטין ר. ג'ונס\nאנימציות תעופה, שיגור והתלקחות מאת מארק גרנט +About[hi]=मार्टिन आर. जोन्स द्वारा\nजेट पैक, शहतीर तथा अग्नि एनिमेशन्स- मार्क ग्रान्ट द्वारा +About[hr]=Autor: Martin R. Jones\nAnimacije malznog paketa, zrake i vatre: Mark Grant +About[hu]=Készítette: Martin R. Jones\nA jet pack, a sugár és a tűz animációja Mark Grant munkája +About[is]=Eftir Martin R. Jones\nÞotuhreyfill, leysir og teikningar af skotum eftir Mark Grant +About[it]=Di Martin R. Jones.\nLe animazioni dello zaino-razzo, del fascio e del fuoco sono state realizzate da Mark Grant. +About[ja]=By Martin R. Jones\nジェットパック、ビーム、ファイアアニメーション by Mark Grant +About[km]=ដោយ Martin R. Jones\nJet pack, ចលនា​ភ្លើង និង​បាច់​ពន្លឺ​ដោយ Mark Grant +About[lt]=Darė Martin R. Jones\nJet pack, spindulių ir ugnies animacijos Mark Grant +About[lv]=Autors - Martin R. Jones\nAnimācija - Mark Grant +About[mk]=Од Мартин Р. Џонс\nАнимации со ракетен погон, зрак и оган од Марк Грант +About[mt]=Ta' Martin R. Jones\nUħud mill-animazzjonijiet ta' Mark Grant +About[nb]=Av Martin R. Jones\nJet-pakke, stråle og flamme-animasjoner av Mark Grant +About[nds]=Vun Martin R. Jones\nRaketendrift, Strahl un Füeranimatschonen vun Mark Grant +About[nl]=Door Martin R. Jones\nJet pack, beam en fire animaties door Mark Grant +About[nn]=Av Martin R. Jones\nJetmotor, stråle- og flammeanimasjon av Mark Grant +About[pl]=Autorstwa Martina Jonesa\nPromienie i animacje ognia autorstwa Marka Granta +About[pt]=De Martin R. Jones\nJactos e animações de raios e fogo de Mark Grant +About[pt_BR]=Por Martin R. Jones\nAnimações por Mark Grant +About[ro]=De Martin R. Jones\nAnimaţie motor rachetă, rază şi foc de Mark Grant +About[ru]=Автор - Martin R. Jones\nАнимация от Mark Grant +About[sk]=Vytvoril Martin R. Jones\nJet pack, laser a oheň vytvoril Mark Grant +About[sl]=Od Martina R. Jonesa\nAnimacije izdelal Mark Grant +About[sr]=Од Мартина Р. Џонса (Martin R. Jones)\nМлазни ранац, анимација зракова и ватре од Марка Гранта (Mark Grant) +About[sr@Latn]=Od Martina R. Džonsa (Martin R. Jones)\nMlazni ranac, animacija zrakova i vatre od Marka Granta (Mark Grant) +About[sv]=Av Martin R. Jones\nJetpack, stråle och eldanimeringar av Mark Grant +About[ta]=மார்டீன் ரா.ஜோன்ஸ்\nஜெட் பக், பீம் மற்றும் நெருப்பு அசைவூட்டம் மார்க் கிரன்ட் +About[tg]=Мартин Р.Ҷонес\nАниматсияҳо аз Марк Грант +About[th]=โดย Martin R. Jones\nJet pack, beam และสร้างการพ่นไฟโดย Mark Grant +About[tr]=Martin R. Jones\nMark Grant Jet pack, ışın ve ateş animasyonlarının sahibi. +About[uk]=Автор: Martin R. Jones\nСтрумінь, промені та оживлення вогню: Mark Grant +About[ven]=Nga Martin R. Jones\nJet pack, beam na zwa zwipuka zwamulilo nga Mark Grant +About[xh]=Ngu Martin R. Jones\nJet pack, umqadi nomlilo wophiliso ngu Mark Grant +About[zh_CN]=作者:Martin R. Jones\nJet pack、光束和火焰动画作者为:Mark Grant +Icon=../../preview/blob.png +Base=Base +Sequences=Blink,BounceLeft,BounceRight,Hair,Ears,Girl,ShuffleLeft,ShuffleRight,Glasses,RollLeft,RollRight,UpsideDown,FadeLeft,FadeRight,JetRight,JetLeft,Fire +Focus=ZoomIn,DropIn,FadeIn,BeamDown +Blur=ZoomOut,FadeOut,BeamUp +Destroy=DropOut +Sleep=Snooze +Wake=Blink + +[Base] +Sequence=blob.png +Movement=0 +Delay=4000 +HotspotX=16 +HotspotY=28 + +[ZoomIn] +Sequence=blob_z3.png,blob_z2.png,blob_z1.png +Movement=0,0,0 +Delay=100,100,100 +HotspotX=16,16,16 +HotspotY=28,28,28 + +[ZoomOut] +Sequence=blob_z1.png,blob_z2.png,blob_z3.png +Movement=0,0,0 +Delay=100,100,100 +HotspotX=16,16,16 +HotspotY=28,28,28 + +[DropIn] +Sequence=blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png +Movement=0,0,0,0,0 +Delay=150,100,100,100,100 +HotspotX=16,16,16,16,16 +HotspotY=750,500,250,100,50 + +[DropOut] +Sequence=blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png,blob_ex1.png +Movement=0,0,0,0,0,0,0,0 +Delay=150,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=0,-25,-50,-100,-250,-500,-750,-1000 + +[Snooze] +Sequence=blob_sl4.png,blob_sl1.png,blob_sl2.png,blob_sl3.png +Movement=0,0,0,0 +Delay=1000,500,500,500 +HotspotX=16,16,16,16 +HotspotY=28,28,28,28 + +[Blink] +Sequence=blob_b1.png,blob_b2.png,blob_b1.png +Movement=0,0,0 +Delay=100,100,100 +HotspotX=16,16,16 +HotspotY=28,28,28 + +[BounceLeft] +Sequence=blob_b1.png,blob.png,blob.png,blob.png,blob_b1.png +Movement=0,-8,-8,-8,-8 +Delay=100,100,100,100,100 +HotspotX=16,16,16,16,16 +HotspotY=28,36,38,36,28 + +[BounceRight] +Sequence=blob_b1.png,blob.png,blob.png,blob.png,blob_b1.png +Movement=0,8,8,8,8 +Delay=100,100,100,100,100 +HotspotX=16,16,16,16,16 +HotspotY=28,36,38,36,28 + +[Hair] +Sequence=blob_h1.png,blob_h2.png,blob_h3.png,blob_h2.png,blob_h1.png +Movement=0,0,0,0,0 +Delay=200,200,2000,200,200 +HotspotX=16,16,16,16,16 +HotspotY=28,28,28,28,28 + +[Ears] +Sequence=blob_e1.png +Movement=0 +Delay=3000 +HotspotX=16 +HotspotY=28 + +[Girl] +Sequence=blob_g1.png,blob_g2.png,blob_g1.png +Movement=0,0,0 +Delay=800,200,800 +HotspotX=16,16,16 +HotspotY=28,28,28 + +[ShuffleLeft] +Sequence=blob_s1.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s1.png +Movement=0,-4,-4,-4,-4,-4,-4,-4,0 +Delay=200,200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16 +HotspotY=29,32,32,32,32,32,32,32,29 + +[ShuffleRight] +Sequence=blob_s1.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s3.png,blob_s2.png,blob_s1.png +Movement=0,4,4,4,4,4,4,4,0 +Delay=200,200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16 +HotspotY=29,32,32,32,32,32,32,32,29 + +[Glasses] +Sequence=blob_gl1.png,blob_gl2.png,blob_gl3.png,blob_gl2.png,blob_gl1.png +Movement=0,0,0,0,0 +Delay=150,150,3000,150,150 +HotspotX=16,16,16,16,16 +HotspotY=28,28,28,28,28 + +[RollLeft] +Sequence=blob_r315.png,blob_r270.png,blob_r225.png,blob_r180.png,blob_r135.png,blob_r90.png,blob_r45.png,blob.png +Movement=-4,-4,-4,-4,-4,-4,-4,-4 +Delay=100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=28,28,28,28,28,28,28,28 + +[RollRight] +Sequence=blob_r45.png,blob_r90.png,blob_r135.png,blob_r180.png,blob_r225.png,blob_r270.png,blob_r315.png,blob.png +Movement=4,4,4,4,4,4,4,4 +Delay=100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=28,28,28,28,28,28,28,28 + +[UpsideDown] +Sequence=blob_r45.png,blob_r90.png,blob_r135.png,blob_r180.png,blob_r225.png,blob_r270.png,blob_r315.png,blob.png +Movement=0,0,0,0,0,0,0,0 +Delay=100,100,100,3000,100,100,100,100 +HotspotX=10,6,10,16,22,28,22,16 +HotspotY=26,18,10,6,10,18,26,28 + +[FadeIn] +Sequence=blob_f3.png,blob_f2.png,blob_f1.png +Movement=0,0,0 +Delay=100,100,100 +HotspotX=16,16,16 +HotspotY=28,28,28 + +[FadeOut] +Sequence=blob_f1.png,blob_f2.png,blob_f3.png +Movement=0,0,0 +Delay=100,100,100 +HotspotX=16,16,16 +HotspotY=28,28,28 + +[FadeLeft] +Sequence=blob_f1.png,blob_f2.png,blob_f3.png,blob.png,blob_f3.png,blob_f2.png,blob_f1.png +Movement=0,0,0,-100,0,0,0 +Delay=100,100,100,500,100,100,100 +HotspotX=16,16,16,2000,16,16,16 +HotspotY=28,28,28,28,28,28,28 + +[FadeRight] +Sequence=blob_f1.png,blob_f2.png,blob_f3.png,blob.png,blob_f3.png,blob_f2.png,blob_f1.png +Movement=0,0,0,100,0,0,0 +Delay=100,100,100,500,100,100,100 +HotspotX=16,16,16,2000,16,16,16 +HotspotY=28,28,28,28,28,28,28 + +[Fire] +Sequence=blob_fire2.png,blob_fire3.png,blob_fire4.png,blob_fire5.png,blob_fire6.png,blob_fire5.png,blob_fire6.png,blob_fire5.png,blob_fire6.png,blob_fire5.png,blob_fire6.png,blob_fire7.png,blob_fire8.png,blob_fire9.png,blob_fire10.png,blob_fire11.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=600,400,300,200,200,200,200,200,200,200,200,200,200,200,200,3000 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,26,26 + +[JetRight] +Sequence=blob_r_turn1.png,blob_r_turn2.png,blob_r_turn3.png,blob_r_turn4.png,blob_jet1.png,blob_jet2.png,blob_jet3.png,blob_jet4.png,blob_jet3.png,blob_jet4.png,blob_jet3.png,blob_jet2.png,blob_r_turn4.png,blob_r_turn3.png,blob_r_turn2.png,blob_r_turn1.png +Movement=0,0,0,0,0,8,16,20,20,20,16,16,8,0,0,0 +Delay=100,100,100,200,200,200,200,200,200,200,200,200,200,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=28,28,28,28,28,32,38,44,44,44,44,38,32,28,28,28,28 + +[JetLeft] +Sequence=blob_l_turn1.png,blob_l_turn2.png,blob_l_turn3.png,blob_l_turn4.png,blob_l_jet1.png,blob_l_jet2.png,blob_l_jet3.png,blob_l_jet4.png,blob_l_jet3.png,blob_l_jet4.png,blob_l_jet3.png,blob_l_jet2.png,blob_l_turn4.png,blob_l_turn3.png,blob_l_turn2.png,blob_l_turn1.png +Movement=0,0,0,0,0,-8,-16,-20,-20,-20,-16,-16,-8,0,0,0 +Delay=100,100,100,200,200,200,200,200,200,200,200,200,200,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=28,28,28,28,28,32,38,44,44,44,44,38,32,28,28,28,28 + +[BeamDown] +Sequence=blob_BeamDown1.png,blob_BeamDown2.png,blob_BeamDown3.png,blob_BeamDown4.png,blob_BeamDown5.png,blob_BeamDown6.png,blob_BeamDown7.png,blob_BeamDown8.png,blob_BeamDown9.png +Movement=0,0,0,0,0,0,0,0,0 +Delay=100,100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16 +HotspotY=28,28,28,28,28,28,28,28,28 + +[BeamUp] +Sequence=blob_BeamUp1.png,blob_BeamUp2.png,blob_BeamUp3.png,blob_BeamUp4.png,blob_BeamUp5.png,blob_BeamUp6.png,blob_BeamUp7.png,blob_BeamUp8.png,blob_BeamUp9.png,blob_BeamUp10.png +Movement=0,0,0,0,0,0,0,0,0,0 +Delay=100,100,100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16 +HotspotY=28,28,28,28,28,28,28,28,28,28 + diff --git a/amor/data/bonhommerc b/amor/data/bonhommerc new file mode 100644 index 0000000..2ee5eda --- /dev/null +++ b/amor/data/bonhommerc @@ -0,0 +1,193 @@ +# KDE Config File +# +# This guy seems to be waiting or is bored or something. +# jead@iname.com +# +[Config] +PixmapPath=pics/animated/bonhomme +Description=Bonhomme +Description[be]=Пляшучыя чалавечкі +Description[bg]=Тао +Description[bn]=বনমি +Description[cs]=Mužíček +Description[et]=Kriipsu-Juku +Description[hi]=बॉनहॉम +Description[km]=មនុស្ស​ឆ្អឹង +Description[lv]=KauluVīrs +Description[ne]=बोन्होम +Description[pl]=Dobry człowiek +Description[ru]=Добрячок +Description[sr]=Костурко +Description[sr@Latn]=Kosturko +Description[ta]= பான்ஸாமி +Description[tg]=Бонхомме +Description[th]=มนุษย์ลายเส้น +Description[tr]=Yıldırım Adam +Description[uk]=Іграшковий чоловічок +Description[wa]=Boulome +Description[zh_CN]=Bonhomme线条人 +About=By Jean-Claude Dumas +About[af]=Deur Jean-Claude Dumas +About[ar]=من جان كلود دوماس +About[az]=Jean-Claude Dumas tərəfindən +About[be]=Аўтар Jean-Claude Dumas +About[bg]=Автор Жан Клод Дюма +About[bn]=তৈরি করেছেন জাঁ-ক্ল ডুমাস +About[br]=Gant Jean-Claude Dumas +About[bs]=Autor: Jean-Claude Dumas +About[ca]=Per Jean-Claude Dumas +About[cs]=Autor Jean-Claude Dumas +About[cy]=Gan Jean-Claude Dumas +About[da]=Af Jean-Claude Dumas +About[de]=Von Jean-Claude Dumas +About[el]=Από τον Jean-Claude Dumas +About[eo]=De Jean-Claude Dumas +About[es]=Por Jean-Claude Dumas +About[et]=Autor: Jean-Claude Dumas +About[eu]=Jean-Claude Dumasek Egina +About[fa]=توسط جین کلود داموس +About[fi]=Tehnyt Jean-Claude Dumas +About[fo]=Av Jean-Claude Dumas +About[fr]=Par Jean-Claude Dumas +About[ga]=Le Jean-Claude Dumas +About[gl]=Por Jean-Claude Dumas +About[he]=מאת ז'אן-קלוד דומא +About[hi]=जीन-क्लाउड डूमा द्वारा +About[hr]=Autor: Jean-Claude Dumas +About[hu]=Készítette: Jean-Claude Dumas +About[is]=Eftir Jean-Claude Dumas +About[it]=Di Jean-Claude Dumas +About[km]=ដោយ Jean-Claude Dumas +About[lt]=Darė Jean-Claude Dumas +About[lv]=Autors - Jean-Claude Dumas +About[mk]=Од Жан Клод Дима +About[mt]=Ta' Jean-Claude Dumas +About[nb]=Av Jean-Claude Dumas +About[nds]=Vun Jean-Claude Dumas +About[ne]=जिन-क्लाउड डुमासद्वारा +About[nl]=Door Jean-Claude Dumas +About[nn]=Av Jean-Claude Dumas +About[pl]=Autorstwa Jean-Claude'a Dumasa +About[pt]=De Jean-Claude Dumas +About[pt_BR]=Por Jean-Claude Dumas +About[ro]=De Jean-Claude Dumas +About[ru]=Автор - Jean-Claude Dumas +About[sk]=Vytvoril Jean-Claude Dumas +About[sl]=Od Jean-Claudea Dumasa +About[sr]=Од Жана-Клода Диме (Jean-Claude Dumas) +About[sr@Latn]=Od Žana-Kloda Dime (Jean-Claude Dumas) +About[sv]=Av Jean-Claude Dumas +About[tg]=Ҷан-Клауде Думас +About[th]=โดย Jean-Claude Dumas +About[tr]=Jean-Claude Dumas +About[uk]=Автор: Jean-Claude Dumas +About[uz]=Jean-Klaude Dumas (Jean-Claude Dumas) yaratgan +About[uz@cyrillic]=Жеан-Клауде Думас (Jean-Claude Dumas) яратган +About[ven]=Nga Jean-Claude Dumas +About[wa]=Sicrît pa Jean-Claude Dumas +About[xh]=Ngu Jean-Claude Dumas +About[zh_CN]=作者:Jean-Claude Dumas +Icon=../../preview/bonhomme.png +Base=Base +Sequences=WalkRight,WalkLeft,Pof,Drib,Col,ColRight,ColLeft,Hop,Sa,Hi +Focus=Go,Col +Blur=UnGo,Col +Destroy=DropOut + +[Base] +Sequence=b-f.png,b-f2.png,b-f.png,b-f2.png,b-f.png,b-f2.png,b-f.png,b-f1.png,b-f.png,b-f2.png,b-f.png,b-f2.png,b-f.png,b-f2.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=300,300,300,300,300,300,300,300,300,300,300,300,300,300 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30 + +[Go] +Sequence=bgo7.png,bgo6.png,bgo5.png,bgo4.png,bgo3.png,bgo2.png,bgo1.png,b-f.png +Movement=0,0,0,0,0,0,0,0 +Delay=200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30 + +[UnGo] +Sequence=b-f.png,bgo1.png,bgo2.png,bgo3.png,bgo4.png,bgo5.png,bgo6.png,bgo7.png, +Movement=0,0,0,0,0,0,0,0 +Delay=150,150,150,150,150,150,150,150 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30 + +[Pof] +Sequence=bpof1.png,bpof1.png,bpof1.png,bpof2.png,bpof3.png,bpof4.png,bpof5.png,bpof6.png,bpof6.png,bpof1.png,bpof1.png,bpof1.png,bpof2.png,bpof3.png,bpof4.png,bpof5.png,bpof6.png,bpof6.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30 + +[Drib] +Sequence=bdrib1.png,bdrib2.png,bdrib3.png,bdrib4.png,bdrib5.png,bdrib6.png,bdrib7.png,bdrib6.png,bdrib5.png,bdrib4.png,bdrib3.png,bdrib4.png,bdrib5.png,bdrib6.png,bdrib7.png,bdrib6.png,bdrib5.png,bdrib4.png,bdrib3.png,bdrib4.png,bdrib5.png,bdrib6.png,bdrib7.png,bdrib6.png,bdrib5.png,bdrib4.png,bdrib3.png,bdrib2.png,bdrib1 +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=300,300,100,100,100,100,50,100,100,100,100,100,100,100,100,50,100,100,100,100,100,100,100,100,50,100,100,300,300 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30 + +[WalkLeft] +Sequence=b4-r.png,b3-r.png,b2-r.png,b1-r.png,b2-r.png,b3-r.png,b4-r.png,b3-r.png,b2-r.png,b1-r.png,b2-r.png,b3-r.png,b4-r.png,b3-r.png,b2-r.png,b1-r.png,b2-r.png,b3-r.png,b4-r.png +Movement=-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4 +Delay=200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30 + +[WalkRight] +Sequence=b4.png,b3.png,b2.png,b1.png,b2.png,b3.png,b4.png,b3.png,b2.png,b1.png,b2.png,b3.png,b4.png,b3.png,b2.png,b1.png,b2.png,b3.png,b4.png +Movement=4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 +Delay=200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30 + +[DropOut] +Sequence=bdrop.png,bdrop.png,bdrop.png,bdrop.png,bdrop.png,bdrop.png,bdrop.png,bdrop.png +Movement=0,0,0,0,0,0,0,0 +Delay=150,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=0,-25,-50,-100,-250,-500,-750,-1000 + +[Col] +Sequence=bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30 + +[ColLeft] +Sequence=bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png +Movement=0,0,0,0,0,0,0,0,-150,0,0,0,0,0,0,0 +Delay=50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30 + +[ColRight] +Sequence=bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png,bcol1.png,bcol2.png +Movement=0,0,0,0,0,0,0,0,-150,0,0,0,0,0,0,0 +Delay=50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30 + +[Hop] +Sequence=b-f.png,bh1.png,bdrop.png,bh1.png,b-f.png,bh1.png,bdrop.png,bh1.png,b-f.png,bh1.png,bdrop.png,bh1.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0 +Delay=150,150,150,150,150,150,150,150,150,150,150,150 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,40,60,40,30,40,60,40,30,40,60,40 + +[Sa] +Sequence=sa1.png,sa2.png,sa2a.png,sa2b.png,sa2c.png,sa2a.png,sa2b.png,sa2c.png,sa2a.png,sa2b.png,sa2c.png,sa2.png,sa1.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=300,300,200,200,200,200,200,200,200,200,200,300,300 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30 + +[Hi] +Sequence=salut.png,salut1.png +Movement=0,0 +Delay=4000,300 +HotspotX=16,16 +HotspotY=30,30 diff --git a/amor/data/bsdrc b/amor/data/bsdrc new file mode 100644 index 0000000..8b88bbc --- /dev/null +++ b/amor/data/bsdrc @@ -0,0 +1,128 @@ +# KDE Config File +[Config] +PixmapPath=pics/static +Static=true +Description=FreeBSD Mascot +Description[af]=Freebsd Gelukbringer +Description[az]=FreeBSD Gəlinciyi +Description[be]=Сімвал FreeBSD +Description[bg]=Талисман на FreeBSD +Description[bn]=FreeBSD মাস্কট +Description[bs]=FreeBSD maskota +Description[ca]=Mascota de FreeBSD +Description[cs]=Maskot FreeBSD +Description[cy]=Masgot FreeBSD +Description[da]=FreeBSD-maskot +Description[de]=FreeBSD-Maskottchen +Description[el]=Η μασκότ του FreeBSD +Description[eo]=Simbolbesto de FreeBSD +Description[es]=Mascota de FreeBSD +Description[et]=FreeBSD maskott +Description[eu]=FreeBSD Maskota +Description[fa]=مایۀ خوش‌شانسی FreeBSD +Description[fi]=FreeBSD-maskotti +Description[fr]=Mascotte de FreeBSD +Description[ga]=Sonóg FreeBSD +Description[gl]=A mascota de FreeBSD +Description[he]=הקמיע של BSD +Description[hi]=फ्री-बीएसडी शुभंकर +Description[hr]=FreeBSD maskota +Description[hu]=FreeBSD kabala +Description[is]=BSD lukkudýrið +Description[it]=Mascotte di FreeeBSD +Description[ja]=FreeBSD マスコット +Description[km]=សុភមង្គល​វត្ថុ FreeBSD +Description[ko]=FreeBSD 마스코트 +Description[lt]=FreeBSD talismanas +Description[lv]=FreeBSD talismans +Description[mk]=Маскотата на FreeBSD +Description[ms]= Maskot FreeBSD +Description[nb]=FreeBSD-maskott +Description[nds]=FreeBSD-Maskottje +Description[ne]=स्वतन्त्र बीएसडी मासकोट +Description[nl]=FreeBSD-mascotte +Description[nn]=FreeBSD-maskot +Description[pl]=Maskotka FreeBSD +Description[pt]=Mascote do FreeBSD +Description[pt_BR]=Mascote do FreeBSD +Description[ro]=Mascota FreeBSD +Description[ru]=Чёртик FreeBSD +Description[sk]=Maskot FreeBSD +Description[sl]=Maskota FreeBSD +Description[sr]=Маскота FreeBSD-а +Description[sr@Latn]=Maskota FreeBSD-a +Description[sv]=FreeBSD-maskot +Description[ta]= இலவசம் BSD Mascot +Description[tg]=Аджари FreeBSD +Description[th]=สัญลักษณ์ของ FreeBSD +Description[tr]=FreeBSD Maskotu +Description[uk]=Талісман FreeBSD +Description[uz]=FreeBSD tumori +Description[uz@cyrillic]=FreeBSD тумори +Description[ven]=Mascot ya BSD dza mahala +Description[wa]=Mascote FreeBSD +Description[zh_CN]=FreeBSD 吉祥物 +About=Static window sitter +About[af]=Statiese venster sitter +About[ar]=قاعد النوافذ الساكنة +About[az]=Statik pəncərə mürəbbiyəsi +About[be]=Статычны наглядчык вокнаў +About[bg]=Неанимирано дяволче +About[bn]=উইন্ডোর এক স্থানে স্থির হয়ে বসে থাকে +About[bs]=Statički window sitter +About[ca]=Model estàtic de finestra +About[cs]=Statická ozdoba okna +About[cy]=Gwarchodydd ffenest sefydlog +About[da]=Statisk vinduessitter +About[de]=Statischer Fenstersitzer +About[el]=Στατικό εικονίδιο +About[eo]=Moviĝema fenestrosidulo +About[es]=Cuidador estático de ventanas +About[et]=Liikumatu aknahoidja +About[eu]=Lehio modelo egonkorra +About[fa]=مدل پنجرۀ ایستا +About[fi]=Staattinen ikkunallaistuja +About[fr]=Surveillant statique de fenêtres +About[ga]=Peata statach fuinneoige +About[gl]=Vixiante estático de fiestras +About[he]=שומר חלון סטטי +About[hi]=स्थिर विंडो सिटर +About[hr]=Statički sjedač na prozoru +About[hu]=Nem animált ablakdíszítés +About[is]=Situr og passar glugga +About[it]=Immagine statica +About[ja]=動かないウィンドウ監視人 +About[km]=អ្នក​ថែទាំ​បង្អួចឋិតិវន្ត +About[lt]=Nejudantis sėdėtojas ant lango +About[lv]=Statisks uz loga sēdētājs +About[mk]=Статичен седач врз прозорци +About[mt]=Stampa statika +About[nb]=Statisk vindusitter +About[nds]=Fast Finstersitter +About[ne]=स्थिर सञ्झ्याल सिटर +About[nl]=Statische vensterzitter +About[nn]=Statisk vindaugssitjar +About[pl]=Stale w tym samym miejscu +About[pt]=Elemento estático pousado sobre as janelas +About[pt_BR]=Janela Estática +About[ro]=Imagine statică +About[ru]=Статичный сторож окон +About[sk]=Statická ozdoba okna +About[sl]=Statično okno +About[sr]=Статични седач на прозору +About[sr@Latn]=Statični sedač na prozoru +About[sv]=Statisk fönstervakt +About[ta]= நிலையான சாளரம் அமர்தல் +About[tg]=Нигаҳбонии статикии тиреза +About[th]=นั่งเล่นบนหน้าต่าง +About[tr]=Statik pencere bakıcı +About[uk]=Статична прикраса для вікна +About[ven]=Tshidzuli tsha window yo imaho +About[zh_CN]=窗口静坐者 +Icon=../preview/bsd.png + +[Base] +Sequence=bsd.png +HotspotX=25 +HotspotY=54 + diff --git a/amor/data/eyesrc b/amor/data/eyesrc new file mode 100644 index 0000000..7adc974 --- /dev/null +++ b/amor/data/eyesrc @@ -0,0 +1,232 @@ +# KDE Config File +# +# This by jead@iname.com. Do whatever you want with it. C'est ca qui est ca. :) +[Config] +PixmapPath=pics/animated/eyes +Description=Crazy Eyes +Description[af]=Mal Oë +Description[ar]=عيون مجنونة +Description[be]=Вочы +Description[bg]=Луди очички +Description[bn]=পাগলা চোখ +Description[br]=Daoulagad foll +Description[bs]=Lude oči +Description[ca]=Ulls bojos +Description[cs]=Voči šílený +Description[cy]=Llygaid Gwirion +Description[de]=Verrückte Augen +Description[el]=Τρελά μάτια +Description[eo]=Frenezaj okuloj +Description[es]=Ojos locos +Description[et]=Hullud silmad +Description[eu]=Begi Zoroak +Description[fa]=چشمهای احمق +Description[fi]=Hullut silmät +Description[fr]=Yeux fous +Description[ga]=Súile Craiceáilte +Description[gl]=Ollos Tolos +Description[he]=עיניים מוטרפות +Description[hi]=नटखट नयन +Description[hr]=Divlje oči +Description[hu]=Izzó szemek +Description[is]=Geðveik augu (Crazy Eyes) +Description[it]=Occhi pazzi +Description[ja]=クレイジーアイ +Description[km]=ភ្នែក​ឆ្កួតៗ +Description[ko]=미친 눈 +Description[lt]=Beprotiškos akys +Description[lv]=Trakās acis +Description[mk]=Забегани очи +Description[nb]=Ville øyne +Description[nds]=Mall Ogen +Description[ne]=एकोहोरा आँखा +Description[nl]=Gekke ogen +Description[nn]=Ville auge +Description[pa]=ਭੈੜੀਆਂ ਅੱਖਾਂ +Description[pl]=Szalone oczy +Description[pt]=Olhos Loucos +Description[pt_BR]=Olhos Malucos +Description[ro]=Ochişori nebunatici +Description[ru]=Безумные глаза +Description[sk]=Šialené oči +Description[sl]=Nore oči +Description[sr]=Блесаве очи +Description[sr@Latn]=Blesave oči +Description[sv]=Galna ögon +Description[ta]= நகைச்சுவை கண்கள் +Description[tg]=Нигоҳҳои Ҷиннибашара +Description[th]=ดวงตาแสนโง่ +Description[tr]=Çılgın Gözler +Description[uk]=Шалені очі +Description[uz]=Jinninamo koʻzlar +Description[uz@cyrillic]=Жиннинамо кўзлар +Description[ven]=Mato a tshipengo +Description[zh_CN]=疯狂双眼 +Description[zh_TW]=瘋狂的眼睛 +About=By Jean-Claude Dumas +About[af]=Deur Jean-Claude Dumas +About[ar]=من جان كلود دوماس +About[az]=Jean-Claude Dumas tərəfindən +About[be]=Аўтар Jean-Claude Dumas +About[bg]=Автор Жан Клод Дюма +About[bn]=তৈরি করেছেন জাঁ-ক্ল ডুমাস +About[br]=Gant Jean-Claude Dumas +About[bs]=Autor: Jean-Claude Dumas +About[ca]=Per Jean-Claude Dumas +About[cs]=Autor Jean-Claude Dumas +About[cy]=Gan Jean-Claude Dumas +About[da]=Af Jean-Claude Dumas +About[de]=Von Jean-Claude Dumas +About[el]=Από τον Jean-Claude Dumas +About[eo]=De Jean-Claude Dumas +About[es]=Por Jean-Claude Dumas +About[et]=Autor: Jean-Claude Dumas +About[eu]=Jean-Claude Dumasek Egina +About[fa]=توسط جین کلود داموس +About[fi]=Tehnyt Jean-Claude Dumas +About[fo]=Av Jean-Claude Dumas +About[fr]=Par Jean-Claude Dumas +About[ga]=Le Jean-Claude Dumas +About[gl]=Por Jean-Claude Dumas +About[he]=מאת ז'אן-קלוד דומא +About[hi]=जीन-क्लाउड डूमा द्वारा +About[hr]=Autor: Jean-Claude Dumas +About[hu]=Készítette: Jean-Claude Dumas +About[is]=Eftir Jean-Claude Dumas +About[it]=Di Jean-Claude Dumas +About[km]=ដោយ Jean-Claude Dumas +About[lt]=Darė Jean-Claude Dumas +About[lv]=Autors - Jean-Claude Dumas +About[mk]=Од Жан Клод Дима +About[mt]=Ta' Jean-Claude Dumas +About[nb]=Av Jean-Claude Dumas +About[nds]=Vun Jean-Claude Dumas +About[ne]=जिन-क्लाउड डुमासद्वारा +About[nl]=Door Jean-Claude Dumas +About[nn]=Av Jean-Claude Dumas +About[pl]=Autorstwa Jean-Claude'a Dumasa +About[pt]=De Jean-Claude Dumas +About[pt_BR]=Por Jean-Claude Dumas +About[ro]=De Jean-Claude Dumas +About[ru]=Автор - Jean-Claude Dumas +About[sk]=Vytvoril Jean-Claude Dumas +About[sl]=Od Jean-Claudea Dumasa +About[sr]=Од Жана-Клода Диме (Jean-Claude Dumas) +About[sr@Latn]=Od Žana-Kloda Dime (Jean-Claude Dumas) +About[sv]=Av Jean-Claude Dumas +About[tg]=Ҷан-Клауде Думас +About[th]=โดย Jean-Claude Dumas +About[tr]=Jean-Claude Dumas +About[uk]=Автор: Jean-Claude Dumas +About[uz]=Jean-Klaude Dumas (Jean-Claude Dumas) yaratgan +About[uz@cyrillic]=Жеан-Клауде Думас (Jean-Claude Dumas) яратган +About[ven]=Nga Jean-Claude Dumas +About[wa]=Sicrît pa Jean-Claude Dumas +About[xh]=Ngu Jean-Claude Dumas +About[zh_CN]=作者:Jean-Claude Dumas +Icon=../../preview/eyes.png +Sequences=Base,GlideLeft,GlideRight,EyesLeft,EyesRight,Blink,Sourcils,Hyp +Focus=Rotr,UnMelt +Blur=Rotl,Melt +Destroy=Flyaway +Sleep=Sleep +Wake=Blink + +[Base] +Sequence=eye_2.png,eye_1.png +Movement=0,0 +Delay=300,5000 +HotspotX=16,16 +HotspotY=30,30 + +[Blink] +Sequence=eye_b.png,eye_1.png +Movement=0,0 +Delay=300,3000 +HotspotX=16,16 +HotspotY=30,30 + +[Sleep] +Sequence=eye_2.png +Movement=0 +Delay=200 +HotspotX=16 +HotspotY=30 + +[Sourcils] +Sequence=eye_1.png,eye_s1.png,eye_s2.png,eye_s3.png,eye_s4.png,eye_s3.png,eye_s4.png,eye_s3.png,eye_s2.png,eye_s1.png +Movement=0,0,0,0,0,0,0,0,0,0 +Delay=200,200,200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30 + +[Hyp] +Sequence=eye_1.png,eye_h1.png,eye_h2.png,eye_h3.png,eye_h4.png,eye_h3.png,eye_h4.png,eye_h3.png,eye_h4.png,eye_h3.png,eye_h2.png,eye_h1.png,eye_1.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=200,200,200,200,100,100,100,100,100,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30,30,30,30 + +[Rotr] +Sequence=eye_z1.png,eye_z2.png,eye_z3.png,eye_z4.png,eye_z5.png,eye_2.png +Movement=0,0,0,0,0,0 +Delay=100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30 + +[Rotl] +Sequence=eye_1.png,eye_z5.png,eye_z4.png,eye_z3.png,eye_z2.png,eye_z1.png +Movement=0,0,0,0,0,0 +Delay=100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30 + +[Melt] +Sequence=eye_m1.png,eye_m2.png,eye_m3.png,eye_m4.png,eye_m5.png,eye_m6.png,eye_m7.png +Movement=0,0,0,0,0,0,0 +Delay=100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30 + +[UnMelt] +Sequence=eye_m7.png,eye_m6.png,eye_m5.png,eye_m4.png,eye_m3.png,eye_m2.png,eye_m1.png +Movement=0,0,0,0,0,0,0 +Delay=100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30 + +[EyesRight] +Sequence=eye_1.png,eye_d.png,eye_d.png,eye_e.png,eye_e.png,eye_e.png,eye_e.png,eye_e.png,eye_u.png,eye_u.png,eye_1.png +Movement=0,0,0,0,12,12,12,12,0,0,0 +Delay=100,100,100,300,100,100,100,300,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16 +HotspotY=25,17,9,3,3,3,3,3,9,17,25 + +[EyesLeft] +Sequence=eye_1.png,eye_d.png,eye_d.png,eye_l.png,eye_l.png,eye_l.png,eye_l.png,eye_l.png,eye_u.png,eye_u.png,eye_1.png +Movement=0,0,0,0,-12,-12,-12,-12,0,0,0 +Delay=100,100,100,300,100,100,100,300,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16 +HotspotY=25,17,9,3,3,3,3,3,9,17,25 + +[GlideLeft] +Sequence=eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png +Movement=-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4 +Delay=300,300,300,300,300,300,300,300,300,300,300,300 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=30,31,30,31,30,31,30,31,30,31,30,31 + +[GlideRight] +Sequence=eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png,eye_1.png +Movement=4,4,4,4,4,4,4,4,4,4,4,4 +Delay=300,300,300,300,300,300,300,300,300,300,300,300 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=31,30,31,30,31,30,31,30,31,30,31,30 + +[Flyaway] +Sequence=eye_m1.png,eye_m2.png,eye_m3.png,eye_m4.png,eye_m5.png,eye_m6.png,eye_m.png7,eye_m7.png +Movement=0,0,0,0,0,0,0,0 +Delay=150,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=0,25,50,100,250,500,750,1000 + diff --git a/amor/data/ghostrc b/amor/data/ghostrc new file mode 100644 index 0000000..35c1529 --- /dev/null +++ b/amor/data/ghostrc @@ -0,0 +1,183 @@ +# KDE Config File +[Config] +PixmapPath=pics/animated/ghost +Description=Spooky Ghost +Description[af]=Onheilspellende Spook +Description[be]=Страшны прывід +Description[bg]=Призрачен Дух +Description[bn]=ভূতুড়ে ভূত +Description[br]=Tasmant +Description[bs]=Strašni duh +Description[ca]=Fantasma misteriós +Description[cs]=Strašidelný duch +Description[cy]=Bwgan Arwsydus +Description[de]=Kleines Gespenst +Description[el]=Στοιχειωμένο φάντασμα +Description[eo]=Hantema spirito +Description[es]=Fantasma misterioso +Description[et]=Jube tont +Description[eu]=Mamu Izugarria +Description[fa]=روح شبح‌وار +Description[fi]=Pelottava aave +Description[fr]=Fantôme +Description[ga]=Taibhse +Description[gl]=Horripilante Pantasma +Description[he]=רוח רפאים +Description[hi]=नन्हा प्रेत +Description[hr]=Jezivi duh +Description[hu]=Kísértet +Description[is]=Voðaleg vofa +Description[it]=Fantasma spettrale +Description[ja]=ゆうれい +Description[km]=ខ្មោច​ដែល​គួរ​ឲ្យ​ព្រឺ​ក្បាល +Description[ko]=귀신 +Description[lt]=Kraupus vaiduoklis +Description[lv]=Spokainais spoks +Description[mk]=Откачен дух +Description[nb]=Skummelt spøkelse +Description[nds]=Lütt Spöker +Description[ne]=स्पोकी घोस्ट +Description[nl]=Het spookje +Description[nn]=Skremmande skrømt +Description[pl]=Duszek +Description[pt]=Fantasma Assustador +Description[pt_BR]=Ghost +Description[ro]=Fantomă înfiorătoare +Description[ru]=Призрак +Description[sk]=Strašidelný duch +Description[sl]=Strašljivi duh +Description[sr]=Сабласни дух +Description[sr@Latn]=Sablasni duh +Description[sv]=Skrämmande spöke +Description[ta]= பயமுறுத்தும் பேய் +Description[tg]=Хаёлот +Description[th]=ผีน้อยสปุ๊คกี้ +Description[tr]=Şirin Hayalet +Description[uk]=Невловимий привид +Description[uz]=Arvoh Spuki +Description[uz@cyrillic]=Арвоҳ Спуки +Description[ven]=Tshipuku +Description[zh_CN]=蒙面幽灵 +About=By Martin R. Jones\nBased on an icon by the KDE artist team. +About[af]=Deur Martin R. Jones\nBased op 'n ikoon Deur die Kde kunstenaar span. +About[ar]=من مارتن ر. جونز\nمبنية على أيقونة من فريق رسامي KDE +About[az]=Martin R. Jones tərəfindən\nBased on an icon by the KDE artist team. +About[be]=Аўтар Martin R. Jones\nЗроблена на базе значак ад каманды художнікаў KDE. +About[bg]=Автор Мартин Р. Джоунс\nБазирано на икона от KDE +About[bn]=তৈরি করেছেন মার্টিন আর. জোন্স\nকে.ডি.ই. শিল্পী দলের বানানো একটি আইকনের ওপর ভিত্তি করে। +About[br]=Gant Martin R. Jones\nDiazezet war un arlun skipail arzour KDE. +About[bs]=Autor Martin R. Jones\nBazirano na ikoni koju je napravio KDE tim umjetnika. +About[ca]=Per Martin R. Jones\nBasat en una icona del equip artístic de KDE. +About[cs]=Autor Martin R. Jones\nNa základě ikony z KDE +About[cy]=Gan Martin R. Jones\nSeiliedig ar eicon gan y tîm arlunio KDE. +About[da]=Af Martin R. Jones\nBaseret på en ikon af KDE's kunstnerhold. +About[de]=Von Martin R. Jones\nNach einem Symbol des KDE-Artist-Teams +About[el]=Από τον Martin R. Jones\n Βασισμένο σε ένα εικονίδιο της καλλιτεχνικής ομάδας του KDE. +About[eo]=De Martin R. Jones\nbazita sur piktogramo de la KDE-artistaro. +About[es]=Por Martin R. Jones\nBasado en un ícono proveniente del equipo de artistas de KDE. +About[et]=Autor: Martin R. Jones\nAluseks KDE kunstnike loodud ikoon. +About[eu]=Martin R. Jonesek Eginak\nKDE artista taldeak egindako ikono batetan oinarritua. +About[fa]=توسط مارتین آر.جونز \nبر اساس یک شمایل توسط تیم هنرمندان KDE +About[fi]=Tehnyt Martin R. Jones\nPerustuu KDE-taiteilijaryhmän kuvakkeeseen. +About[fr]=Par Martin R. Jones\nBasé sur une icône de l'équipe artistique de KDE. +About[ga]=Le Martin R. Jones\nBunaithe ar dheilbhín ó fhoireann ealaíontóirí KDE. +About[gl]=Por Martin R. Jones\nBaseado nun ícone do equipo artístico de KDE. +About[he]=מאת מרטין ר. ג'ונס\nמבוסס על סמל מאת צוות האמנים של KDE. +About[hi]=मार्टिन आर. जोन्स द्वारा\nकेडीई कलाकारों की टोली द्वारा बनाए एक प्रतीक के आधार पर +About[hr]=Autor: Martin R. Jones\nZasnovano na ikoni KDE tima. +About[hu]=Készítette: Martin R. Jones\nA KDE grafikus csapatának egy ikonján alapul. +About[is]=By Martin R. Jones\nByggt á táknmynd eftir KDE listamannahópinn +About[it]=Di Martin R. Jones.\nBasato su un'icona della squadra di artisti di KDE. +About[ja]=By Martin R. Jones\nアイコン by KDE アーティストチーム +About[km]=ដោយ Martin R. Jones\nផ្អែកលើ​រូបតំណាង​រចនាដោយ​ក្រុម​វិចិត្រករ KDE ។ +About[lt]=Darė Martin R. Jones\nPagal KDE menininkų komandos piktogramą. +About[lv]=Autors - Martin R. Jones\nBāzēts uz KDE ikonas. +About[mk]=Од Мартин Р. Џонс\nБазирано врз икона од уметничкиот тим на KDE. +About[mt]=Ta' Martin R. Jones\nIbbażat fuq ġabra ta' ikoni tal-grupp ta' artisti KDE. +About[nb]=Av Martin R. Jones\nBasert på et ikon fra kunstnerlaget til KDE. +About[nds]=Vun Martin R. Jones\nBuut op'n Lüttbild vun den KDE-Krink. +About[ne]= मार्टिन आर.जोन्सद्वारा\n केडीई कलाकार समूहद्वारा एउटा प्रतिमामा आधारित +About[nl]=Door Martin R. Jones\nGebaseerd op een pictogram van het KDE Artist Team. +About[nn]=Av Martin R. Jones\nBasert på eit ikon frå kunstnarlaget til KDE. +About[pl]=Autorstwa Martina R. Jonesa\nNa podstawie ikony zespołu artystów KDE. +About[pt]=De Martin R. Jones\nBaseado num ícone da equipa artística do KDE. +About[pt_BR]=Por Martin R. Jones\nBaseado no ícone feito pelo time de designers do KDE. +About[ro]=De Martin R. Jones\nBazat pe o iconiţă a echipei artiştilor KDE. +About[ru]=Автор - Martin R. Jones\nНа основе пиктограммы команды художников KDE. +About[sk]=Vytvoril Martin R. Jones\nZaložené na ikone od KDE artist tímu. +About[sl]=Od Martina R. Jonesa\nTemelji na ikoni ekipe umetnikov KDE. +About[sr]=Од Мартина Р. Џонса (Martin R. Jones)\nЗасновано на иконици коју је направио уметнички тим KDE-а. +About[sr@Latn]=Od Martina R. Džonsa (Martin R. Jones)\nZasnovano na ikonici koju je napravio umetnički tim KDE-a. +About[sv]=Av Martin R. Jones\nBaserad på en ikon av KDE:s artistgrupp +About[ta]= மார்டீன் ரா.ஜோன்ஸ் \nKDE கலைஞர் குழு சின்னத்திற்கு ஏற்றவாறு. +About[tg]=Мартин Р.Ҷонес\nТасвирҳо аз командаи бадеи KDE. +About[th]=โดย Martin R. Jones\nโดยใช้พื้นฐานจากไอคอนของกลุ่มศิลปิน KDE +About[tr]=Martin R. Jones\nKDE sanatçı ekibinin bir simgesine dayanır. +About[uk]=Автор: Martin R. Jones\nЗроблено з піктограми від команди мистецтв KDE. +About[uz]=Martin R. Jouns (Martin R. Jones) yaratgan\nKDE tasvirchilar jamoasi yaratgan nishonchada asoslangan. +About[uz@cyrillic]=Мартин Р. Жоунс (Martin R. Jones) яратган\nKDE тасвирчилар жамоаси яратган нишончада асосланган. +About[ven]=Nga Martin R. Jones\nZwo di sendeka nga aikhonu nga tshigwada tsha vhamvumvusi vha KDE. +About[xh]= Martin R. Jones\nYamelene kwiqhosa leqela labazobi be KDE. +About[zh_CN]=作者:Martin R. Jones\n基于 KDE 艺术组制作的一个图标。 +Icon=../../preview/ghost.png +Sequences=Base,GlideLeft,GlideRight,EyesLeft,EyesRight +Focus=ZoomIn +Blur=ZoomOut,Melt +Destroy=ZoomOut + +[Base] +Sequence=ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png +Movement=0,0,0,0,0,0,0,0,0,0 +Delay=300,300,300,300,300,300,300,300,300,300 +HotspotX=16,16,16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30,30,30 + +[ZoomIn] +Sequence=ghost_z1.png,ghost_z2.png,ghost_z3.png,ghost_z4.png,ghost_z5.png,ghost_2.png +Movement=0,0,0,0,0,0 +Delay=100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30 + +[ZoomOut] +Sequence=ghost_1.png,ghost_z5.png,ghost_z4.png,ghost_z3.png,ghost_z2.png,ghost_z1.png +Movement=0,0,0,0,0,0 +Delay=100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30 + +[Melt] +Sequence=ghost_m1.png,ghost_m2.png,ghost_m3.png,ghost_m4.png,ghost_m5.png,ghost_m6.png,ghost_m7.png,ghost_d3.png +Movement=0,0,0,0,0,0,0,0 +Delay=100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=30,30,30,30,30,30,30,30 + +[EyesRight] +Sequence=ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png +Movement=0,0,0,0,12,12,12,12,0,0,0 +Delay=100,100,100,300,100,100,100,300,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16 +HotspotY=25,20,15,10,10,10,10,10,15,20,25 + +[EyesLeft] +Sequence=ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png,ghost_e.png +Movement=0,0,0,0,-12,-12,-12,-12,0,0,0 +Delay=100,100,100,300,100,100,100,300,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16 +HotspotY=25,20,15,10,10,10,10,10,15,20,25 + +[GlideLeft] +Sequence=ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png +Movement=-4,-4,-4,-4,-4,-4 +Delay=300,300,300,300,300,300 +HotspotX=16,16,16,16,16,16 +HotspotY=30,31,30,31,30,31 + +[GlideRight] +Sequence=ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png,ghost_1.png,ghost_2.png +Movement=4,4,4,4,4,4 +Delay=300,300,300,300,300,300 +HotspotX=16,16,16,16,16,16 +HotspotY=30,31,30,31,30,31 + diff --git a/amor/data/nekorc b/amor/data/nekorc new file mode 100644 index 0000000..a158270 --- /dev/null +++ b/amor/data/nekorc @@ -0,0 +1,202 @@ +# KDE Config File +# An AMOR version of Oneko (a cat who follows your pointer around) +# Chris Spiegel (matrix@xirtam.org) + +[Config] +PixmapPath=pics/animated/neko +Description=Neko +Description[bg]=Неко +Description[bn]=নেকো +Description[et]=Hiirepüüdja +Description[hi]=नेको +Description[km]=នេកូ +Description[ne]=नेको +Description[ru]=Неко +Description[ta]= Neko +Description[tg]=Пишак +Description[th]=เน็คโก้ +Description[tr]=Mırnav +Description[uz@cyrillic]=Неко +Description[zh_CN]=Neko小猫咪 +About=Artwork from oneko by Masayuki Koba\nAMOR'd by Chris Spiegel +About[af]=Kunswerk van oneko deur Masayuki Koba\Namor'd deur Chris Spiegel +About[ar]=عمل فني من أونيكو و من تصميم ماياسوكي كوبا\n نقلت الى Amor عن طريق كريس شبيغل +About[az]=Masayuki Kobanın sənət abidəsi\nAMOR'd by Chris Spiegel +About[be]=Малюнкі з oneko (аўтар Masayuki Koba)\n перанос ў AMOR - Chris Spiegel +About[bg]=Автор Масияки Коба\nАдаптация от Крис Шпигел +About[bn]=শিল্পকর্ম নেওয়া হয়েছে মাসায়ুকি কোবা'র তৈরি ওনেকো থেকে\nআমর-এর জন্য প্রস্তুত করেছেন ক্রিস স্পাইজেল +About[bs]=Artwork iz oneko-a koji je napravio Masayuki Koba\nAMORovao Chris Spiegel +About[ca]=Treball gràfic de oneko per Masayuki Koba\nAMOR per Chris Spiegel +About[cs]=Grafika z programu oneko, Masayuki Koba\nPřevod: Chris Spiegel +About[cy]=Gwaith arlunio oddiwrth oneko gan Masayuki Koba\nWedi ei AMORio gan Chris Spiegel +About[da]=Billedmateriale fra oneko af Masayuki Koba\nAMOR'et af Chris Spiegel +About[de]=Zeichnungen der Katze (oneko) von Masayuki Koba\nAuf AMOR portiert von Chris Spiegel +About[el]=Καλλιτεχνική εργασία από το oneko από τον Masayuki Koba\n Προσαρμογή στο AMOR από τον Chris Spiegel +About[eo]=Artaĵo de Masayuki Koba\nAMOR-ita de Chris Spiegel +About[es]=Arte de oneko por Masayuki Koba\nAMORizado por Chris Spiegel +About[et]=Hiirepüüdja graafika: Masayuki Koba\nAMORile kohandas: Chris Spiegel +About[eu]=Artelana onekotik Masayuki Kobak egina\nChris Spiegel'ek AMOR'tua +About[fa]=کارهنری از oneko توسط ماسایوکی کوبا \nAMOR'd توسط کریس اسپیگل +About[fi]=Kuvat oneko ohjelmasta, tehnyt Masayuki Koba\nMuokannut Amorille sopivaksi Chris Spiegel +About[fr]=Travail basé sur « oneko » de Masayuki Koba\nAMORé par Chris Spiegel +About[ga]=Maisiúchán ó oneko le Masayuki Koba\nCurtha i AMOR ag Chris Spiegel +About[gl]=Imaxes de oneko por Masayuki Koba\nAdaptadas a AMOR por Chris Spiegel +About[he]=עבודות האמנות מתוך oneko מאת מאסאיוקי קובה\nהותאם ל־AMOR על ידי כריס שפיגל +About[hi]=कलाकृति ओनेको से, मसायुकी कोबा द्वारा\nअमोर्ड- क्रिस स्पीजेल द्वारा +About[hr]=Slike preuzete iz: oneko, autor Masayuki Koba\nZa AMOR prilagodi: Chris Spiegel +About[hu]=A grafika Masuyaki Koba Onekojából származik\nAMOR-átirat: Chris Spiegel +About[is]=Artwork from oneko by Masayuki Koba\nAMOR-erað af Chris Spiegel +About[it]=I disegni provengono da Oneko, di Masayuki Koba.\nConvertito ad AMOR da Chris Spiegel. +About[ja]=oneko のグラフィック by Masayuki Koba\nAMOR化 by Chris Spiegel +About[km]=សិល្បៈកម្ម​ពី អូនេកូ(oneko) ដោយ មាសាយូគី កូបា (Masayuki Koba)\nAMOR'd ដោយ Chris Spiegel +About[lt]=Meninė dalis iš oneko, daryto Masayuki Koba\nAMOR'ui pritaikė Chris Spiegel +About[lv]=Grafika - Masayuki Koba\nAMOR'd - Chris Spiegel +About[mk]=Сликите се од oneko на Masayuki Koba\nПриспособено за AMOR од Крис Спигел +About[mt]=Artwork minn oneko ta' Masayuki Koba\nMaqlub għal AMOR minn Chris Spiegel +About[nb]=Kunstnerisk arbeide fra oneko av Masayuki Koba\nTilpasset AMOR av Chris Spiegel +About[nds]=oneko-Biller vun Masayuki Koba\nFör AMOR ümsett vun Chris Spiegel +About[ne]=Masayuki Koba द्वारा वानकोबाट कलाकार्य\nAMOR'd by Chris Spiegel +About[nl]=Illustraties van oneko door Masayuki Koba\nOvergezet naar AMOR door Chris Spiegel +About[nn]=Bilete frå oneko av Masayuki Koba\nTilpassa AMOR av Chris Spiegel +About[pl]=Pochodzi z oneko, autorstwa Masayuki Koba\ndostosowane do AMOR przez Chrisa Spiegela +About[pt]=Criação do oneko de Masayuki Koba\nAMORado por Chris Spiegel +About[pt_BR]=Arte por Masayuki Koba\nAMOR por Chris Spiegel +About[ro]=Grafică din oneko de Masayuki Koba\nPortat la AMOR de Chris Spiegel +About[ru]=Рисунки от oneko - Masayuki Koba\nАдаптировано для AMOR - Chris Spiegel +About[sk]=Obrázok z programu oneko od Masayuki Koba\nAMORoval Chris Spiegel +About[sl]=Umetniško delo iz oneko izdelal Masayuki Koba\niz AMOR pa Chris Spiegel +About[sr]=Графика из Oneko-а од Масајукија Кобе (Masayuki Koba)\nУ AMOR претворио Крис Шпигел (Chris Spiegel) +About[sr@Latn]=Grafika iz Oneko-a od Masajukija Kobe (Masayuki Koba)\nU AMOR pretvorio Kris Špigel (Chris Spiegel) +About[sv]=Grafik från oneko av Masayuki Koba\nTill Amor av Chris Spiegel +About[tg]=Масаюки Коба\nИШҚ - Крис Спигел +About[th]=งานศิลป์จาก oneko โดย Masayuki Koba\nAMOR'd โดย Chris Spiegel +About[tr]=Çizimler Masayuki Koba\nArmor'a geçiş Chris Spiegel +About[uk]=Праця від oneko, автор: Masayuki Koba\nАдаптовано до AMOR - Chris Spiegel +About[ven]=Mushumo wa zwanda ubva kha oneko nga Masayuki Koba\nAMOR'd nga Chris Spiegel +About[xh]=Artwork esuka oneko ngu Masayuki Koba\nAMOR'd ngo Chris Spiegel +About[zh_CN]=艺术作者为 oneko 小组的 Masayuki Koba\nAMOR'd 作者为 Chris Spiegel +About[zu]=Umsebenzi wezandla osuka ku Masayuki Koba\nAMOR'd ngu Chris Spiegel +Icon=../../preview/neko.png +Base=Base +Sequences=RightScratch,LeftScratch,RunRight,RunLeft,Yawn,RightLick,LeftLick,Claw,JumpRight,JumpLeft +Focus=Start +Blur=End +Destroy=DropOut +Sleep=Snooze +Wake=Surprise + +[Base] +Sequence=tail.png,sit.png,tail.png,sit.png,tail.png,sit.png,tail.png,sit.png,tail.png,sit.png,tail.png,sit.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0 +Delay=200,200,200,200,200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29,29 + +[JumpRight] +Sequence=jump1.png,jump2.png,run2.png,jump3.png,jump4.png +Movement=10,10,10,10,10 +Delay=200,200,200,200,200 +HotspotX=16,16,16,16,16 +HotspotY=34,40,44,34,29 + +[JumpLeft] +Sequence=jumpl1.png,jumpl2.png,run4.png,jumpl3.png,jumpl4.png +Movement=-10,-10,-10,-10,-10 +Delay=200,200,200,200,200 +HotspotX=16,16,16,16,16 +HotspotY=34,40,44,34,29 + +[Claw] +Sequence=claw1.png,claw2.png,claw1.png,claw2.png,claw1.png,claw2.png,claw1.png,claw2.png +Movement=0,0,0,0,0,0,0,0 +Delay=200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=17,17,17,17,17,17,17,17 + +[Snooze] +Sequence=sleep1.png,sleep2.png +Movement=0,0 +Delay=450,450 +HotspotX=16,16 +HotspotY=29,29 + +[Surprise] +Sequence=surprise.png +Movement=0 +Delay=600 +HotspotX=16 +HotspotY=29 + +[RightScratch] +Sequence=scratch1.png,scratch2.png,scratch1.png,scratch2.png,scratch1.png,scratch2.png,scratch1.png,scratch2.png,scratch1.png,scratch2.png,scratch1.png,scratch2.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0, +Delay=100,100,100,100,100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29,29 + +[LeftScratch] +Sequence=scratch3.png,scratch4.png,scratch3.png,scratch4.png,scratch3.png,scratch4.png,scratch3.png,scratch4.png,scratch3.png,scratch4.png,scratch3.png,scratch4.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0, +Delay=100,100,100,100,100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29,29 + +[RunRight] +Sequence=run2.png,run1.png,run2.png,run1.png,run2.png,run1.png,run2.png,run1.png,run2.png,run1.png,run2.png,run1.png +Movement=10,10,10,10,10,10,10,10,10,10,10,10 +Delay=100,100,100,100,100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29,29 + +[RunLeft] +Sequence=run4.png,run3.png,run4.png,run3.png,run4.png,run3.png,run4.png,run3.png,run4.png,run3.png,run4.png,run3.png +Movement=-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10 +Delay=100,100,100,100,100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29,29 + +# It seems, for me, that if Start and End are only one pixmap, +# they don't stay on for the desired delay .. ?? Anyway, this +# seems to work OK +[End] +Sequence=surprise.png,surprise.png,surprise.png,surprise.png +Movement=0,0,0,0 +Delay=400,400,400,400 +HotspotX=16,16,16,16 +HotspotY=29,29,29,29 + +[Start] +Sequence=yawn.png,yawn.png,yawn.png,yawn.png +Movement=0,0,0,0 +Delay=400,400,400,400 +HotspotX=16,16,16,16 +HotspotY=29,29,29,29 + +[Yawn] +Sequence=yawn.png +Movement=0 +Delay=1600 +HotspotX=16 +HotspotY=29 + +[RightLick] +Sequence=lick.png,sit.png,lick.png,sit.png,lick.png,sit.png,lick.png,sit.png,lick.png,sit.png,lick.png +Movement=0,0,0,0,0,0,0,0,0,0,0 +Delay=100,100,100,100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29 + +[LeftLick] +Sequence=lick2.png,sit.png,lick2.png,sit.png,lick2.png,sit.png,lick2.png,sit.png,lick2.png,sit.png,lick2.png +Movement=0,0,0,0,0,0,0,0,0,0,0 +Delay=100,100,100,100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29 + +# Values shamelessly stolen from Bonhomme, by Jean-Claude Dumas .. :) +[DropOut] +Sequence=surprise.png,surprise.png,surprise.png,surprise.png,surprise.png,surprise.png,surprise.png,surprise.png +Movement=0,0,0,0,0,0,0,0 +Delay=150,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=0,-25,-50,-100,-250,-500,-750,-1000 diff --git a/amor/data/pics/Makefile.am b/amor/data/pics/Makefile.am new file mode 100644 index 0000000..0c1d96c --- /dev/null +++ b/amor/data/pics/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = animated preview static diff --git a/amor/data/pics/animated/Makefile.am b/amor/data/pics/animated/Makefile.am new file mode 100644 index 0000000..e3207b2 --- /dev/null +++ b/amor/data/pics/animated/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = blob bonhomme eyes ghost neko pingu tao worm diff --git a/amor/data/pics/animated/blob/Makefile.am b/amor/data/pics/animated/blob/Makefile.am new file mode 100644 index 0000000..192d34a --- /dev/null +++ b/amor/data/pics/animated/blob/Makefile.am @@ -0,0 +1,82 @@ +# Add all your pic files here +amor_DATA = blob_b1.png \ + blob_b2.png \ + blob_BeamDown1.png \ + blob_BeamDown2.png \ + blob_BeamDown3.png \ + blob_BeamDown4.png \ + blob_BeamDown5.png \ + blob_BeamDown6.png \ + blob_BeamDown7.png \ + blob_BeamDown8.png \ + blob_BeamDown9.png \ + blob_BeamUp10.png \ + blob_BeamUp1.png \ + blob_BeamUp2.png \ + blob_BeamUp3.png \ + blob_BeamUp4.png \ + blob_BeamUp5.png \ + blob_BeamUp6.png \ + blob_BeamUp7.png \ + blob_BeamUp8.png \ + blob_BeamUp9.png \ + blob_e1.png \ + blob_ex1.png \ + blob_f1.png \ + blob_f2.png \ + blob_f3.png \ + blob_fire10.png \ + blob_fire11.png \ + blob_fire2.png \ + blob_fire3.png \ + blob_fire4.png \ + blob_fire5.png \ + blob_fire6.png \ + blob_fire7.png \ + blob_fire8.png \ + blob_fire9.png \ + blob_g1.png \ + blob_g2.png \ + blob_gl1.png \ + blob_gl2.png \ + blob_gl3.png \ + blob_h1.png \ + blob_h2.png \ + blob_h3.png \ + blob_jet1.png \ + blob_jet2.png \ + blob_jet3.png \ + blob_jet4.png \ + blob_l_jet1.png \ + blob_l_jet2.png \ + blob_l_jet3.png \ + blob_l_jet4.png \ + blob_l_turn1.png \ + blob_l_turn2.png \ + blob_l_turn3.png \ + blob_l_turn4.png \ + blob.png \ + blob_r135.png \ + blob_r180.png \ + blob_r225.png \ + blob_r270.png \ + blob_r315.png \ + blob_r45.png \ + blob_r90.png \ + blob_r_turn1.png \ + blob_r_turn2.png \ + blob_r_turn3.png \ + blob_r_turn4.png \ + blob_s1.png \ + blob_s2.png \ + blob_s3.png \ + blob_sl1.png \ + blob_sl2.png \ + blob_sl3.png \ + blob_sl4.png \ + blob_z1.png \ + blob_z2.png \ + blob_z3.png + +# This is where it will all be installed +amordir = $(kde_datadir)/amor/pics/animated/blob diff --git a/amor/data/pics/animated/blob/blob.png b/amor/data/pics/animated/blob/blob.png new file mode 100644 index 0000000000000000000000000000000000000000..85a0db71e62f1aab64fc955c2287f196a2290032 GIT binary patch literal 556 zcmV+{0@MA8P)(FyUJMrjL4Oz_wKprKws=DdBlb0D$K$A%v*xH{n`d>uaKyrk^_ft_y@A zP!t8Eds7*_%FV)Fdp=5g-WlHF1eQ$aPJ^UUxy=2@}_i_qhvt--fyv+m6Ad uYWsfbHv9|kfggDh{fjr@x4w#>^rUzExD%Ev5~@uA0000i zH6x>px;+y}hkDkajp@;YT3#s^XWzW7H-?xA_`n}G1g+~uRpZGB8)D+csHI0!m bo^^4o#=gd?VfINNTNpfD{an^LB{Ts5R^>s9 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamDown2.png b/amor/data/pics/animated/blob/blob_BeamDown2.png new file mode 100644 index 0000000000000000000000000000000000000000..e569f7c872045cfd606bdc8b5e475398c13731ce GIT binary patch literal 247 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aJr|9V@SoVr_%%Z8Web(x8L>QKi3y#@6#jocOiFkPW_|<&D;7E zHkC16H8*T!TDp3xm*O9*w-v1SmhY|QzkP<8WkXoTocFi3PAkl^kabL!4J^;A+s3Lg zhhOm~cie@IwTui6SEL1d+p}3>zW-y0;{Vc=Z~s_ZbHY5vU-k*t4cPScZcbh0;KThW n@35uLia!>Xza3^V89rck)h-Z{ExWr2=tKrjS3j3^P609Art zWbb_k^e5c<3-`c7c*^V{xD9EbkU)2}YY8bS!DG+ZZh#yUA&xgP@BLmD%XXH5!-5JO zdwUUnMv@5#nVWTyLIXfR?ru|6&QVdM_`+!$@O;qLTBfj2Y|~$}B$a`O)%DQ~1Qgd* ze0_Wk1Wb5qYrg;hm&=ST4t9N{0D$Im2zt5(Xu z`|_MWqYPws!6JO7t^P9-fGC43?gvgBW6VT~xSsJ*?8~Blk{B+_v?@+5zSRzO@4A4@ z0WY?+=K1VjfcSDr5drtV0|a$pt))LFe%Sb10{NfzN9g|s5`bw`wqy%500000NkvXX Hu0mjf3UA49 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamDown4.png b/amor/data/pics/animated/blob/blob_BeamDown4.png new file mode 100644 index 0000000000000000000000000000000000000000..e68d75072ff259f784252ade502ae151261bb8a9 GIT binary patch literal 720 zcmV;>0x$iEP)Zc7L z5du-!9%>fLMg#z`F8@EBP5_3v%C=||07R=NhlwmcuUa@sCQ7Ch-4uajxd=ce;LER@ z`2YhcA`lTITS*`~-!k+cYAk>H^8{-x5CXbRfUe+O5Yge)DNlnC^x;G3l~~N~`zZpV zg_B_7dlWg0NGc^S;^gt%f^^`1ZxMSfR7ybtY}CHZW_g&y7^AHL2}bL4EEE)^?{UqQ zcpnchJu(fgwMv;$QEM$P@rTEAyzloGBCTjecDo(gAtQ(YtJN=%0uewY?zI+FG}KXH ztz`(MCB_&6pfQG@pPw0iYc0L^2>}l4FdsP=M!{;;0sy*hWPH1Q1pql7|Kj<%fwj9_ zfZpDI!#M{4*lu4zvY@~@)a8c|P$1CvJ^Q{V0K|S^dZ-F%-g}?NqiJ#n`X`z2JXqC5b6AJ4dGduhH<2YM1GWvbI#@USHGIU7?YDwR)l2C^;{%amiY!J zM^IhO$7jl2o+w{0q`Wx-{}FW8x8dEPKBoj1d;C8rv4dGMM1qh20000Y4y literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamDown5.png b/amor/data/pics/animated/blob/blob_BeamDown5.png new file mode 100644 index 0000000000000000000000000000000000000000..91baa2af6a2a3e745f95988a5a48aacb36d8cb59 GIT binary patch literal 662 zcmV;H0%`q;P)#GXz z#cm+EV(;mLTSqQFIoDJG&7=Z%pi5fK;#B4v-bS8jQ#?CI0Ob{kuy(A+|ORSvwnd;5dU(0oq*h$ z0ZxX2fZ1SOmKbtJ)qxpoj0u3u>mvqj2dt{K0bnV|VK`PB(lkxwO@U%1L}n9OuwIuhuX6yUJeELeD%s^G82qc4L7F7QL5Fy8mx`|O>aGpk}D$N|sJ*g>HRlB9fFj=S!L;& z?+kQZ$FA!L0M~nueW-%d>2!TIGm}9J3%vU zFlvXF@(Kwa?|MiC1Ik$tyo~SnOY^SN@bj~;f-%8JX$@#wh!6nT3UCYp=DkWv;N^0W z*#@MPH*+m811&cnGK{Q9AKc&j_-M8{4=OhN7%sC@?>XZ1@AoqWXv~QH9+L^_rRsU% zz*~V|5n~cXkbW;rh0VLdym1CJ!&L{0*5hHo!`$%rV|5dv;Y62M>sNM`B7T+W-In07*qoM6N<$f;ti_AOHXW literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamDown6.png b/amor/data/pics/animated/blob/blob_BeamDown6.png new file mode 100644 index 0000000000000000000000000000000000000000..91ab229f80813f370802971d10bf1fa6df605850 GIT binary patch literal 727 zcmV;|0x127P)q9B>FKawJ0Rp1XCaK{JB?JHOAgB4S-kTdDd@uMR zNq8sR=!_wOndcWbQ#CFnuomP`2s9IC31vSO#k?!+(9>`{x1? zr=Zc-o^qs@NawyIvq`_6>u9P8RU6fo=ve|838#AN`iEWieIF&8>>ABF-%M=_&KWqz zj2F75_xs(DpfQa6$?UgVtr4*vuQHN`^Yb7uB5zcnmS}k#izM0ZlB0;06kj@EqGwu5 zkYRQr0$!rk@mV<@3;;YHfWV*=@v`yOK>&0Z3NQx)bbx^YApmJG48Y?7I`^{~{Z}-Y z5D`yMw8&?v0*`!rB{juMAFG+4o;$uUV%nU(!%=hH3o6_;`{Q{$4?SyV&RQ~_~002ov JPDHLkV1jlALB{|9 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamDown7.png b/amor/data/pics/animated/blob/blob_BeamDown7.png new file mode 100644 index 0000000000000000000000000000000000000000..8b7143c7ba289c529c82eff7c59b8d015ab394f2 GIT binary patch literal 879 zcmV-#1CacQP)Fa(?}z#XWRmjgKzDN%~@!3rR3iR8@i&F>NT)rb7y<{t_8 zCD|g}e?k>Z?owK??G!VtEws+AwrMB5;e0>?oSCc4PcB3it+e($MKlU zZCgUbpl!oeF}U4;x3>!S`+brxLbOe))@=KA$^_OmC^8LzOaqJb-$_JNMEpL$Bc$tD zaI0DPNQB|^sB7T$)z4lo765R){sn2mW*-WqLD$(R>FMbT0C;%;{=Et|PCxU%h_^EM zOiyF2WjHsw$Z)Ay$wfknXXFhCJV<3I(J(oT&Vh9R4uT!6KP zH0#x&wwH|1kt)~JQzPcey^MLp*tDzBVhll=_?v#q6)H9qR>N;sgUtz^b*9v`o+5by?Amt5_4=B4@F~Ssi8%fWG)Ey5QBT@!5**u9U zG9uFR%(mI$14TxZeOFGXbwV4Lwp?vk>&$pBHUIo_!U7xS>b-#L6#lSIoi`s7hls*z zRw|Z>#pJ)=5sR+eL_o{rE)+0l$lt$ne*233rF&md_6J~4I6#fHi>Uwr002ovPDHLk FV1oZbnBo8c literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamDown8.png b/amor/data/pics/animated/blob/blob_BeamDown8.png new file mode 100644 index 0000000000000000000000000000000000000000..b6a813b32cb7ed8368efdc76810ebac3577a3eef GIT binary patch literal 924 zcmV;N17rM&P)QBk()HRMC6=AZtONE7y;f3xD!&@H<>N?5h+o!lLdAK5c-gu8P2?UGXfxj z|9&z5dn3djTqJl&7$)*P14X(qq1?%y7Jf&NU-Ltcn}er3;NB;^bKkW?566lDh>&q{ z0~7@ftju$Oi25o^a8%+YC_A}|k(&{~^0yH0EE_hwlp)0vV^ zGpVYC^5EGib@!AO( z2v=DE&QRoiFBo)^r3nB^&Hb+BGQ->3TO>=VIhM-|L;@ng@297ZW&r5zcE}%w1!x9t zMtFj}b9TEDRaF51Hk%i$R;y@jS(eyrUi`6s*?G5ru{ez;zzjt}{d{FMuX%3Xuh$#O zatDZ@EO)rwZjqSV&CJ(zjqA0WbNiG0K}6sNGcXVM-jRws!F;Zul!5?IO5t#*BUy(- z4W$&yvV>9!)xN^%bWFg@Ley14Lx73mVN)ctZxDj6K=dmh z1AN~n~55pTU9P>MK0FM3HOVLT_}>OP+>p7 z3}0r$qBPYH_);7-y**tf4SPMIPY?3m$(BoOHW$xmMbQDQf1S_3=Vx}mHM6Nd5`uo~ zWYFq*!qe-k=ZUZIz**|0eD-S3!tN*-PB y{tJ>Dl3fJ-z0&WsW|JGDKd7H5{~tfa{p$~*sejMBHyBv}00005u#TB literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamDown9.png b/amor/data/pics/animated/blob/blob_BeamDown9.png new file mode 100644 index 0000000000000000000000000000000000000000..65c00c944ea4bcde4ced8ce1de04e6793c7b3cf1 GIT binary patch literal 689 zcmV;i0#5yjP)2L}TNoP~3}M1%i)bxb*nal={{#3xHV@`y z*b;p8MP_KdjOa7?>Twey-prKviq8KgzFQtJ5g|zu?DwxY90ovL10NqH+O|d0G(BEs zK!~Zv!ZWd!a8Wb?(YaCAz}p*njBIrAECXvjOy=PWaIp99Wf|C*YuQi4C&cmmY&ORu zqbyGVfR~ro$>r0jbnAx)1Alx3-rpI6+GA!}2urPv1Z7zU65G95S(vnT-fts7$}8L9pZkt!2$~_~ zHHd_PftAI`*MOB$DaFjpN+~Cu54TJxrNYQ@0>v2+Ga=}rAkP6I%-gkz$il4;)HNWb zU&oe{kxN3c_@0|%t=MUE$(#?w@_-;podi~j>I76`DR&A~!rU9bZQHijwx5z$WmZ^@1++}e%`x#UwO~?;olOyH!AXtK?qNy(rhXvSAKXe@ z3=T0D8q7o~ilTu$XlNWac0^%M@C`lT?_L;Ru=z%0Ls!f(6q|d%fAF{TGyeI0kXHTx XELG6%k0TAP00000NkvXXu0mjf+1)i^ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamUp1.png b/amor/data/pics/animated/blob/blob_BeamUp1.png new file mode 100644 index 0000000000000000000000000000000000000000..134365815249862a7d6e0aa3568a54f65abb3871 GIT binary patch literal 646 zcmV;10(t$3P)c@kk@Iyq%ey*_qh^ z?sTUgCNV>X|5M)-0V<{7`#u(n9m4Pk6b118ouDjB?DzXgdc|17alCIC?W3XqK0npu zgY+5?0x-*tOb&k?2LX8Dx-Le5K>)nJ+r`I6QUlxV?rigFb;Ms@EdKfme0|N#HKkPT zO_C%eQS+F!lT}J_R_N2T+xV%`Aw0{ho}sIF=<&XlaBpvadc%DQ4@0YO$^q#6J^&z! z><=kDESCyG0L!JqdcAH5^x;nappT;?uvpk6%5%HcS|g610043Pgdhl7`}=Sw@AQp6 zfD6C#psFfp{S0Fa((n;gRkik4RfRNsgfRwMKi9aEAL<_uLz(D2*lY}>l+ap(Q3TJE zwzh{CilDWIloFebX~|EnfM(Ni8EuRqNg89ABnbf$Sw@nbxRZ6d`f@<@l;GJl zG&6g<-C6H5>msAyXLvILMFFJg_=Z&1a94ekAi&OV7rS0Er3yq@mbC}Yi+ly-0uXry z^5BSz00l&zAs2Svsq8_YnAHjEdjyEUe*3t_8*-OA;i$LZ^bmb~YJALFF#0ug$(RpF zL~NJuRj=Wgd4L&jIu8s^L=lL}t04bMslN$Bb)0v%6?rr g%JbIV-s$G_4~>m4k}nh|TL1t607*qoM6N<$g1#6dhyVZp literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamUp10.png b/amor/data/pics/animated/blob/blob_BeamUp10.png new file mode 100644 index 0000000000000000000000000000000000000000..c330a8cc46b3abe20972544fa4bfb07d69531427 GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@TaGXV@SoVw_yhbTNHSB!XA}QV5+(4x@uz33Kel5iF8p#aJd+F9X1?Do7*bt2LsHu7u7pxkVCSkuvo#oXRtpHWTyvh+ zvGB&!P~pDmhAA#A*UTJ^O83g1PSSn8ilsq8>E6*ZJ==2kZrxO)>v8V<)2fUW>%}aj z&OW(!Tx;fg>*p6rWs~lC9@>({uwmQ5j6=pj@~5^H=Y{^d@Ndhng}lc*j#aULVe36= zJp0e|1PL{h-o>Z*LzlQ*i1aUAdi+{lwp@ta%HW^(laKA>@|tfb7v%X|=IFdNH<$P- p9y)U~e&6Q(kL>@m+Mj4NSN^=eeQU3tJuna$JYD@<);T3K0RZ>Lkz)V= literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamUp2.png b/amor/data/pics/animated/blob/blob_BeamUp2.png new file mode 100644 index 0000000000000000000000000000000000000000..cee9aec36d6d4c0d2e90ca0d3e81e8b88d599ae5 GIT binary patch literal 648 zcmV;30(bq1P)qfN1>__sOLqMezk|e=)`-Ut7_7Dj6Xd2+-L!)h5TrQVce50v?i{gSTyWZUI z36X(K(*W=9YPKRbg{LVf0z!l$APF}^B)~-mNK^1mxTXsi0kzfyNUb%=UIB3U7NORf zTI)UkRnuA_Z8M*TQ|v$1px)l_<-vz3}6P^+CeDy!`r{TIx@) zqQgPE?=0*1%~60!k^lhmyjzIlpV;jbq6paSLS|8213<8UI-LUgo*yTBV7q+-0Q9_Z zJRVULPXOTNt_JfCy!E1ZLYk%lz2!GK{x*SZER8WV#;~d?0;Dk}s0w2Y0kWzpch=^P z8Xnhn0Kx&jI5*s)({mtd+tyiN zt*8&Z#qj1FAzrgPH=^zNMT>4i7e|0dyIBx=z^=J{kM7=0IO#1ID`A1c03Qoq^A=pa zhAyV?yg-idQ24{2WZybqNWeAyz^aaD+zl=1h*tH4c}~=Iw5lgu6c!5<(#OB)$K)UQ iIazMMe5(f@BltH9+O4c|8i zp|!ir!22RVV+`d2>#IWFb$>w05N+x=K@r92m}y8 zue)`9P(w;ZdbdlNvfZk@McxPNgC|!HIFgR^-ZKn^TIbX06p#RO$c^ycvuT?6d#=|Hw^Fn30c$PWwn0%8i4(^3Is z+o13T_WM1GqCnd=qbypALcEYOx@j7c)H$$ynB%$A^E`7_8IW@zH^N#wPD9631HeIX zsto~!AruCqoZ&!F!r;VL5lKQfMc~^XOm5V##e|&uT2j%}5_w)7>KDDoWQgiH500000NkvXXu0mjf<|Q$e literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamUp4.png b/amor/data/pics/animated/blob/blob_BeamUp4.png new file mode 100644 index 0000000000000000000000000000000000000000..decb861594b24e0e03f14a2249fcc8d311761b2a GIT binary patch literal 787 zcmV+u1MK{XP)NU!U7l>P^Q5rWoghii24O#IP%W=ki+_@BQ@=^c`g0d`8j9g^AGZ+vcfqmG|!%{Fs zNXEy|i-=6w>f2b2AH5L((zf_~QRTn_X@j-XV6PylqM<9^y}Pap%nGe<1OF#VwFUX9 z7C=zon?1)~KUX=SO6Qyhph_wS60C7`5X|$OWeKYKM&(eslBys;mZksxsz3&ciFYTD zr&kR?a7Yu=gU~kI?HpFS6-3_e*>zof-tAljJfDvParWfi@16@tKR#*&^^?xI=&s<7 z%l&RXcg_uIM=jd>J}xpB1(2$KpHo&i>ViDau~_uur>AY;dkB_*6e;hEl;zd~SqcDR zwQ}+8V&V6@1OV^u?f?MGrJpFvClP^ANfD8l?@P}D<>CkOdHk)Cy*$md(exogL zd)velH%%iw0Rd&XrJw~BK-&l4>+2s-f&2TPn1|@IJIeMrCf|=un)yjk1hU`n*>xRm ziW@OsOX0nrA;TU3_8scyXRO!1BB-K(Oi9DIsBHn~9P7G5mSufR{4Tu(yp>Sb6|#MX z^?Hpg%TU+VAd3#T;d}0^m1!(C5HGJ46 zA(vKZZ*OnYsW|!(Am+YTATnVbCncM$^JxqI^L=m#0swp;sCeFkGmBXaox2N0m(q43 zyA5L+BG|ep#K(d}^FKZUFE6Kc$fedOpy7^PLW-nT1fVEJ6VPR)Sn#D)Jpef*nf_Kx zDx&Mxgn6F(lu}KqA4U$CvgrgmDIRFx>MCJIXIV`;h z0N{|nzuj&Cmc7c+^br7fuZzn>n(wOyCrJxQ8KRdmV4jNrq!FL5UZw#mDIyRNn6D(@ z#n(pvM~&ywi#X>1Ra~zET;ZPpoO1;0L$C@vU8sVp@M*V9TdRV@0B)%P+8GZ591eg8 zK?(ro#1qhkk-lH2FIfxz_2t6G#|W z_n^5Vf0OB29j(d&i#Y&%ex9>EcRYr21dzjUewc=;VAplqWklC?oTiD-=%1!3Fqedo z|0=!SOZ)=tPb~Y}#-H@o&-2WAo;i*q=Xv%9EcA0l@ma#jD)12RECc))hI25$X6y^% zcXm&D-)aMl0b^kt$HFMy?U!tr2CC^#%W0W{1|Aq#p3b?udeH=Ku`&kk4JoO&bNSll zCRy+(Hw@6SLbnG=bO8`MuFDhdl zj0p@di+ig8|Evp1XGkz=pcPnZQggqL>%OP=8?i0htOt0e3#$XcTXJc`+Ij(Ls}n4) zVA7h$-;}rfqTDwl!?#oYml5sF=nu>mJ*B7B{@efn002ovPDHLkV1it7 B6`cS8 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamUp6.png b/amor/data/pics/animated/blob/blob_BeamUp6.png new file mode 100644 index 0000000000000000000000000000000000000000..d4175c8abea51db8a537aa5f624fddfedd16f97d GIT binary patch literal 581 zcmV-L0=oT)P)tI4 zi@c^hg?_~SLa*HmPnkX7fD>R<05U3ULcsyeV;NLD)0<`O6%YvyA^nqCoMyi46 zeSB;$07T~CvTM)pI{Gd6<>DBSs${-u(jT)<$)*eZK>h7<0#pUN4vaA}guuN(wuOWc_;@@HXl&s)P&H+?#>89go`Q1;05m(!7K|}YV4DW4)#h^cWZnsnOu|2BL1F*^p3fiLZa0vmhzQzNp!cyOTG+lH|1X_W%|KB1rgK3q z&Sc57N7o&;;|j&up@iq2j#3x&Vl0D@Fc%aZa$~;=;rZYjBiWDTWMAZ^Gx~X6D{hbj zAc+PshET2#ANZ``3lIx7xE#Mubf+Iwte(zp zrhyZDzL$|y|KmMC>YCEp2S^D(g-H~B3|=pdLJ3|j(? z|96WqJ9`O?Cb@(_84QpJiX_mv3KVV=VhQgAlp+NUMk2e|@8RUuWRHjYJ#Iwcp^?rt zhBadQ@GAw|1YI2{Ra?8jd-;r#e`02HU}nx*Q5`Hxp^a1gi^NJq^u8WUrvfv_z9iN& z2uv@-c%LTS$7-Sxsa6uR$!Xm2n}AmF{n>-9p`0uVyL-VIw? znOVxUpVuZtv04m$fSDmejny-NA_t;SwTW3(X$S%D_d6k1i}n;9aiDd5CR6}@uEcg= zLz+z>As_-~MhL-xKCg(>uiS3c7c|VGk*jaF0v6>M)iU181UZ5 z>Dk(4y}b0xg7m#om1h7W7?6gqXX67`>kg=fB7Y&aqX;E$CB zCz(|!b|P>bvmb@h```(Rq^KEJEvs0zL=eQ$Xi&gM2l>m*zf$la-Kw1TFe)bJ4nH#@ z9?lO&f-^?e9(D~V-(Lu8it17RW*0=DO1$4~BlHab^i$wxe8xm7L{3ssEO0Wf2h6k# zS9-Z&)WTvEt_;{Vuy3&6tLkNzWra7fE$X+MES?wSRI_KD0H~Ejc ze^Q27aj|aFkY_Tabikx^WJE&i`Ebs$ZAeT<#R20gsFctnI)=BDT$Y7UP4E5hQL)*_ z-ofczE~hxoIiQ%05JxboB6C2B!ic!Th!Hp{rvYZ^>GS#IzVF=kJpr=@`5*nd1RabI7ki6-tSkty2^QXtGis~Wf7LVlKnzLEK@CGWg*n2ebq% z5VMQ|30Mk$_^=sWxfK_v$b zRL#lPK?2(8&3N`|e*SS{Jsc@EBy=3N{?&Ona%roM_lSt6;{WlDI8pnzmdTS*IJqHT j`R4rbC-$Z9zNYSfJta!F9zb_%00000NkvXXu0mjfKuSYL literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_BeamUp9.png b/amor/data/pics/animated/blob/blob_BeamUp9.png new file mode 100644 index 0000000000000000000000000000000000000000..72db7c76f81c0b4ac7d5b85be5126067d9841f05 GIT binary patch literal 611 zcmV-p0-XJcP)QtE+v)dK3s@P+55m?z(RoU<(bTcV1%^Nt`s5y=-(fazjp#La3EPIjsas10_VrL zJlM94Hw?vhZX)gj*ANJ61D!UsSA_G6i3o5W;!mPwaThP2Pa@}Bc}4QwsdZG^vg@up z%IZ7oN?>OEFay%!>v1rxmyV#&Q(xaHv?1e}w?)B}hAh^=+Y%v&C@IT|Fh>k_YLa~s zm}whkijgZH1ppB4r=nE@S~Li00hk%<`jJ7FR{XiIp$F81jP`0mq>2;fdB(PFu$ZuI z8<;sFcQ_0^4I+jTp6esZYqZ{0@_VPQv}h>e6T!^b_Z|DbtA#J~kRKkn{6cA;hB^x@`_aSVfF;H8Oh==+j$|e!AVinTg^K(}neObK zB3cTNsaPmRwYg|>pa{~m%=3&J{lKf<LGTYIq9hCwIU>y{gMF}hqbPn&xl1~ zsm15VuCvbrX5_<@SPQBopUm7p4;ZM{X7uac=vbanu|2SOeWr5sK1OvSs*L81S+Mv0 x@V`JkphZwKJaXxc(X5_R+#l62`k(Wco-af4q_?-<#%cfn002ovPDHLkV1j$28R`H4 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_b1.png b/amor/data/pics/animated/blob/blob_b1.png new file mode 100644 index 0000000000000000000000000000000000000000..bc9791873105cefe3eb758d625ce13652a14b265 GIT binary patch literal 511 zcmV`FLq*!003?(H(4kbDo6Hu@m_TA<$bKb88u59akLPCtGtKnNRU}RRNbvgr;dw*Yzm9o~z;Yy6zY?QB?t_lNjxY(YTbLqG*}O z{$!RCG?1>r2#}P(;h;X!G}1txA0HNPHZ8v0Dm;#X^Lb*e2_f`uq9`IFXmdHTL^gv*XsxJJlFsC`=qnZ zgtPqU4!9pWT+vyU5fM?AWl!7AgtIPF4S0qYd`QE6-iHPe;~asi0+PgiAn6`{*56~9 zXUUi@@S3L4JJ8j=0m=dYOHZxq%ii>PlP00gBS4VqX=07v$qh|Hr?a5%go*pcUCsjM z(~yhNmWCyD+xMl@@Gsm4e&j~$U&@ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_b2.png b/amor/data/pics/animated/blob/blob_b2.png new file mode 100644 index 0000000000000000000000000000000000000000..444a3b66597b4d57933e7fb801d70a87e3edc4d9 GIT binary patch literal 431 zcmV;g0Z{&lP)vO+bW z0xkHGhUuVL8$^!oB47;AH1dJuXTVZ_r{dZySgHZlw&XounbukHh3H=@_16#*gc}%eMl6Fa)x!jZ7(JCEWe}op-yZ z@a@+4>yRT1+qo&xf=9tcJtc%UR0Jg)=%$Qz9Zt({!-x zd^r1ZIeLvqDMhcZC4>NuNBbDu%${mQjPni@h4D#blC&&KG1icp8Xl_erOLg8eY=FK zfz~Xls%loitH}32KG9HfVdlBEAO6IW%c<#v%{c-DZN5Hj@Q&R;C!8nUyTA>?r!M)( zU9kK%hLG&?U2+@#lkb5ac@g~=Z^CbV6<_2c?{tMjagOi%K>z>%07*qoM6N<$ Ef=k97asU7T literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_ex1.png b/amor/data/pics/animated/blob/blob_ex1.png new file mode 100644 index 0000000000000000000000000000000000000000..f9179606364418442dfb9e7031415ca38f1c7cc8 GIT binary patch literal 580 zcmV-K0=xZ*P)tZCf|rqzL5r+q~!&Pgz^A7E1iF`SAY#9nBXL*(@9xrgKve;kOAH|d>bkb_>&)Fait53pCaEf*ESdE|jGG4m z=y>duX!@x%2tap!*IfoE2!QRjdD-n^4ea-ao5e}e;p=sSZ#KaB{9vvz#&k4s98;d> zL`0P5ImK~IM9?~hD_h3cBnuy==%c9Ck$c_(oO1vG=Nz85&=DueIIb9L{gBlG7-NHk z<2;3w5=Bu!N(s)>!TKqDxorH|9Dsb^2LOa&^TBmp6h)3SO;Hp%T-O~Km~ds^`lHzl zcwUo4r_*yKr0kWyG5H+(sOS$vV7G&&)pftHTCE_Z9IQ9tVb~mEs(*aUi9pfHIoEXe z#e_e~;GpT4%IsblDopt@<-k~jpe!5yhU-RiuMsI+F;G=Nmd$TSx{>swyw)Q+om|&8 zG7|%1N$3b6s2_o1LFa}8eD~gu4iM6K{s4dw!nz$(mfc=9DsqfypNYO*mQ7zurYdmC zlIciPInAy8{`%IB^Ym40%Ye<5Y(EbeHh=XzFg+0svheYV=wHl)zd9AaSXWE%?v1Q_bWk|usHM9%Oqe3LOa3IftIPPDN8d>n{c$5Xx<$+Yf>K*}xtG}jE z;WfR{m9YL6v=3n#ZRdU7g5Iy8kTJWX;eWdl@;&t$PN^q+X-D)gdcv1>#k0)v1$iIH U9-w?G&Hw-a07*qoM6N<$g66r=BLDyZ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_f2.png b/amor/data/pics/animated/blob/blob_f2.png new file mode 100644 index 0000000000000000000000000000000000000000..34a0b5040134ed315c1344f654edcfeb89c53d88 GIT binary patch literal 388 zcmV-~0ek+5P)0eyMIX{0gso6I zA0Q&i4QNBdo&+qeK@Tk_aHNO>q>Jc$li7lGq9jg~0L4o9OH(9&Jm2z+XAA)WpN_>0 zUr|aCMG>pjh4s22iURKUjH;?A%W_uS#Z=+Vrfi80p(x;bRkJq|(1TJ+j6sY+vMdu3 zYMb)y)+(js8GX^(FWwa$}~=pam)|5wg0;5gKg6dglk$#h8z*NdKf<@$L6;yUl+1gg)^9 i-h{o4yg6RLhvOF?^GK`MI9TBT0000|i9#P%us6Jzx-GPRQOeF~XLQc!-1~j~M=bNwigQb?GQ638^43?~PuKmg zx~fs_H{(mIgn5^b+FO^AK{p?#Ok%T9Y2CKZ zl2gTnL$O65=s@i;|5nB+ygje3T-EKl!)CTudy>0q)7Ed7c^V?J-=F>eqTzQ>j=bBo z6NYPl^L+O`>$AJ>!5lG%lIb5@&zxEEm&et`euihh;_T=Yk1V(DG@iK+fzD#^boFyt=akR{0BEsXzyJUM literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_fire11.png b/amor/data/pics/animated/blob/blob_fire11.png new file mode 100644 index 0000000000000000000000000000000000000000..5ddb2292d97fad39c315793cf7f647d4d17f0315 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6(9P4uF{I+w+lw2yfcjknzaIa5J~y*t!NNG_!?pst`=*#M163)U z%31ov`NTB~v%AM*GX6a|D=>Tau0uQi6y4`}=q>wUKOcWHchlw7=@Woz89ZJ6T-G@y GGywqYKsti} literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_fire2.png b/amor/data/pics/animated/blob/blob_fire2.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c11b1d510d34dc688205f70a991882c07e42e9 GIT binary patch literal 594 zcmV-Y0RKn zqaPAC;Gf&%1|({B*He_;g&I~$Vf_Wzj)L*zYCE zvK*^_*!X-7X4#p^;jiWSd|Wo7E5@%@Nv7$F_5T$~Hckx5v#i!LbQO0!(R&4V zJRUuH$a=A;_4UzxSM)*%040(H*lvM1j`8yHia372a=Ant$KHWHd6EEm4hSJomL
B~S@ z7evMwx)HRCF^_;pXPrer!tVM30Aoxr95+blJ~lRTbg-KV_uM2T1Q6}_vWdh3${1?z zKk1qDEPGFJXa+)_ekvGaf=96_ g#lc_JccXt!-&+F<7Mr0Xq5uE@07*qoM6N<$g0XrB=Kufz literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_fire3.png b/amor/data/pics/animated/blob/blob_fire3.png new file mode 100644 index 0000000000000000000000000000000000000000..6e56e2a15e860b6b843cb939512ea05d9e41a042 GIT binary patch literal 651 zcmV;60(AX}P)_wIkatt?AcAFEx43h)UX;R^vye))4V8DW;TYobeke>8CeZK(Q^1Ts0B`^^OcrEWbl(bqu2uB6YzTre16{K85gBgYjqSwtm~Rtma(pDMo~nY;p8=L zJ(1^5_?EgpNjh?pOp;fc^;eQ?FENMbxzXdKsb3N*rLfy|^ULMZ!_s08&a+RmHJf80`a_jY+bi=#vbIhnE=Q z_Po{S9RlnAF#KMdw&&e&E^0*9g15J%x9&T4J-Da>+@@nQJ6sv6u+@lp@uxj8>) z{rdlb337LzFS(CvsFcF6+vt5 lO}yp;?L~fA-(CK5`3H+i99$ZRUR(eG002ovPDHLkV1oAHC#V1b literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_fire4.png b/amor/data/pics/animated/blob/blob_fire4.png new file mode 100644 index 0000000000000000000000000000000000000000..1f60daa55bdce445137db5e7fbfe1d9adaefd148 GIT binary patch literal 681 zcmV;a0#^NrP)#fLie{WzKsl69SfM1|axa#tgO(BU~QlySDu1byo0m&qHc4mhw17G7` z8blx>kbT$gIW@k0CO7~H0l~p}Ld)+tiS1&X8!)!_VFhfU8z3qO9(Z9LmISwTobL}2 zCl>Gm5N1G@6i<#HUcK*Td%N?amWtz!G;^|1aT!Jb}Th83HbLm?1XMz52I z-HKQVs3?jFyadil*@fT6Or_XLUq=$D(j20V=x~^7+4sI3e{y>Yk!GzUNmV;OMyC_3 z0!ha+WxPb@c^*~Nbi2NWivrhc?fq`wX-ec;|5}}G+IBi$0sV1jukX5PE)7O0MaCE+ zA~MF1Qp#&UN-5ifj4|=%h4>d!Y+XTKhV$7;-ZbsHB;mS!1=o}kwawYh=x=yp-x&`9( zRaz!x$$G*EBiuj75qMzG@wmPbxe9dMbbgEd?j)?V32?qI7d%HAl2YR7X|PulK;T06 zc)w4w55tfZe@|^lN{ONa+32}J*6d_ugh@t=>sF3ad>a=3T4 P00000NkvXXu0mjfTZ=3% literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_fire5.png b/amor/data/pics/animated/blob/blob_fire5.png new file mode 100644 index 0000000000000000000000000000000000000000..6008bbcb7dc85559f2696a48d6d0007e477a8e42 GIT binary patch literal 600 zcmV-e0;m0nP)$h$N<^pOCWpudj8K5Qv8P0CK{Un{_{WidSR?kolP9~%s2@D?$f6e58* z4)gTRDx%t|^YlyvO5i${2*eE5Yrg{Z66Q4>AE#_ochMV%E+!rJ00odNB6XYAE$Z{S z3mE5}=BemB-_>);6OU0ZK{TkEm%vK0nG7%l0E|03g{T5`6IqHi5&!@?5gk=CJku$KuVQjVf&-V00W$9l-`V27mF5|(F$uK6u zjVZ}MWzsK8(}{Znv{Nkw;O+Z$?j6Ge^Ru9LzI6#299Bf?kNT9~Us^xk(_|LM$k+SAZM9iyoi=JbwxgFqXx!3|s(T^+%{}!RPbs zVg{d~wqm_48~>1il_s=`XqpDc;}`aO@%A9Tb5D{0&;rIi)Ns=@sOuWL-Dy(H^$NUK mGYMDaencDIIN$&H9kroQe8v`+y(L z9uhkkgWE{Ehm~rns_bGIV3;Prcm2Xrg+8_Uay$UVpdnYHL{az>Qu^qcCxMHQTCcTHLo&mij;Y2hGq-Tz`ms92~Z-e)LEW~SO z?gP?{e%tIlsOs!oJ1m!uh$O>_53T{*#Z{?XXX3K2bM{M>r+LOLp+in(mR5y16LS{b zGa51WS1Lz@VAsE}tUY@T`d@CJqx5=L?ub-xl+}~18bR?OYcM&8?NSnk#M%90m@ylm zxe1Pygs*A-X^j26S63M^V_A)@*8^K2T?zl1ph*y@1$tnel{dCXfK}fDZdzeT<1+z+ zaV^fD-}8QWIm{U?W2cOot5T!`ZO&|}B4e#tq&O6Z;>ec$)%sR=A(LBYpu6V*2F{uE zx&*Q-fu3YKvsFU>@v7&Q(JP=jg>;Je9E2Dr*vPUP8x3q7fLEeB9R1pf6a$@L-p+_) z{OobxElEaJ@=<0I>k|OWd%@GiO&mUPv;`vZ1L)tp3kC%Jz9IkH^#h+!#iW3iX#)TN N002ovPDHLkV1mWU9f$w` literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_fire7.png b/amor/data/pics/animated/blob/blob_fire7.png new file mode 100644 index 0000000000000000000000000000000000000000..1301f0ea35e6bacab310c6dd72a13dcffaac7aa6 GIT binary patch literal 574 zcmV-E0>S->P)H+al`^?p62D9 z=fq*J$jh?`q=2)n2t*aiYrg`GHmqxGpOC>9ZpfFy`@qC{KPJ?iUv2$rBQ2?WU9V7}j^z zzU=^S;DL_xZUoLJ;N^98glr^Tlej$lw8KdlQQxteCAoo#xDoI18#L->4XDQAB^iFHlkkZPXGV_ M07*qoM6N<$g6R+e00000 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_fire8.png b/amor/data/pics/animated/blob/blob_fire8.png new file mode 100644 index 0000000000000000000000000000000000000000..af004b532c637469bf2f46bceb8c3b082071cba2 GIT binary patch literal 391 zcmV;20eJq2P)n6NIDpvJ=V%U&94En9h_ zGN%9>83{6hYcjd935!O{zSMgqUr7-1x%#qA0oX~}0w!gAPFmeF1AxiZPCDv%AU;ky z;HP^aClUut>T#wU`_V^`BQpTfVAEn6;tNGbOHgcD_DPw*T^UY11&1@h6lMs^4W{+p z4W{T%m!K#`0-%9i+@+la>3A3&k7P7fR>I$7jQNlP1rQ9rSagp0lsp9p3%m84>{IUo l0$daEM>W6WtLd@7vNsY13$FP=8UX+R002ovPDHLkV1ipHo(BK` literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_fire9.png b/amor/data/pics/animated/blob/blob_fire9.png new file mode 100644 index 0000000000000000000000000000000000000000..701ca745f6c98b4d4e5d4fa5faffd8bb9470a7d5 GIT binary patch literal 243 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aI&Y1V@SoVx06rvF)8x6=J)P@t8=PdUR>-bXW!wJh>R*Br%Y%0 z=?bczlT?6cKSPJ|#>?E>pJ%QA9=I;r(fFouWhU43@SI&=b}%$rou2)}k=1PZfmX4V zvv+yyI(knnCPl$7n4>@QrO)|O@wNNnd+){ul|DGU_QULBYWp)5G;g0~ThkINcXWB( j>Gl4LP9B}S{|R4oYU5$E_Gyto=P`J?`njxgN@xNAW7=Ma literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_g1.png b/amor/data/pics/animated/blob/blob_g1.png new file mode 100644 index 0000000000000000000000000000000000000000..25011ddc9e775b4e6e30c12d6cb87c5b64cf7ec7 GIT binary patch literal 593 zcmV-X0Kh|KoO6U>h}rCf#i9m^0{Hxlp_Ib;d>*AY7-~3*&X!RZ6$SAA&PN}_ zX@WxPFIC~yX`jKHtNH(tkUDViiyK}E8*VWUY+6Y!xxK6-hMbm?Ds%fmPnFkFgC?FA73)0Bva(lqTXI~T5XxpE+Il%RDD?ac0LL>ku-C<k4R_VI@eDP4 z_g#94D*|0f7$~Kv>4B6$z5;LpBmsELT;us9LrnQe#00000NkvXXu0mjf_tFMn literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_g2.png b/amor/data/pics/animated/blob/blob_g2.png new file mode 100644 index 0000000000000000000000000000000000000000..5abd3b363a7596818d3430001e1f2fbad6315bd7 GIT binary patch literal 573 zcmV-D0>b@?P)0eueMR>ny$N+o z_o!0u2d-;b!otEwaKLY{gauZLn zIR|A~%|!iQ&76Y z!jQr9fG}j3&*xUowf@B(StBqWS4ouT)mjLFB>4mYB*`Z@=T-;M`r4lL0W|zNg0d_j z#1v9W2r)%jmQD!t^^cKF1lz5I@B0u!!1sM@x6%m#=L%>x9i7oqN+KeXQaY8Tw$+sb zUPlSuTthSShZ>QVYXph{ST5}wlBwZ)^=%?U&AtC!dPx@oZ}(79N>MX{I0o_wfIScs zkbA&KLm~6(eWXCVYu~?8%DEkzPH65CAntM4%EHGdqJJ?H{_0fxq8EJw90c_7sL(2a00000 LNkvXXu0mjfHU|Hw literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_gl1.png b/amor/data/pics/animated/blob/blob_gl1.png new file mode 100644 index 0000000000000000000000000000000000000000..9c1ed8c60e4e9b3e19cbd2d02423736b8c4f76fc GIT binary patch literal 587 zcmV-R0<`^!P)MQ z81>+#XZ3v8xS}XBVo8#a<2kEk0~^@IoThfSyZF0OU=8oR^4aVq`F7<(fYS6vME0*H zAwUkbVJ|`(T`X?+a;fn38aSVyj0ESr_9luVB0^0rd(F!^r>8={ z**sR>R%*l3RLQZWVqowdlgVwr-F_Lv-GxskN?soW$oG8!KoF=Oj14g!b9f#w9&@Z# zs|JG!*Zfy`gy9@Qh{kynuKBe*=Sir;9|XXD4^&kJDL=v3 z5Yy=tRaG_4oA4k|M%<^f*Cf;)91bxUV~|pUF^0n-Zk#jWn!k4k+z%aH(QzCT5m6k+ z58KX!Ygwim@C+^3NJG1_y9SZQbp-Mp*lgSfQr*Lk`nxabS<iJHD<-=yVsfjWAJLxyxPPd>iUww51`SX8XQ$8~%m& zKy3u)9AQ{kCz@V)4xCOLMNv4(?-Ls0oWu8hj7CYrm^=qAmk4E9IxBwV%|^d0@4f!{ Z`Ua_h4*=bRMo0hv002ovPDHLkV1j1C1g!u7 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_gl2.png b/amor/data/pics/animated/blob/blob_gl2.png new file mode 100644 index 0000000000000000000000000000000000000000..c621f22e45eb8e2d5ac44e0305d4b25366ce69d9 GIT binary patch literal 587 zcmV-R0<`^!P)6kd+fSQriP`i`a6L$KX1xOWimH0Yjhk6i4sJ@81u&!WI4) zvI}JRC-sdHU@0Z?JjY~G2z9cMsY z)5pmvm`q$qo5uZDRfV#A005Nb1B#*u_+xZ0@AW0Op&v3z0k5w>*LA3>M+k9;>2!*& z>jM55T`6b8;m{h@hTena(m)7-s;VG_z;bBE5W+&ftz1Y>2Td$BW0 zL>$5&n*t^xuZLROGz9X_+S*0-`CA1Y>Hw4)N9fcT;HuUdO1bH?4utf34EXfzT!gZ8 zzk=4f&pQ!$`O0!du7*R$*8#(}o8ub}Csz%8xW;Lg0mj%o4+qV35ViMLx-nK?)C+Wj zWEkaI>;_p(7bH#7^bvGXm;x{h1Jxug-&FRgFKQgKQj;YEFl2kWu%{2?lnPr)-d!+t z!i7`gA-f=W8|JxvW*6j)QSrUC4gbP_;75K$|Kd;ht-s<8HuwY_kjI_`A+zZK0000< KMNUMnLSTZy`^(G# literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_h1.png b/amor/data/pics/animated/blob/blob_h1.png new file mode 100644 index 0000000000000000000000000000000000000000..e7c89ac66d76f40b7f3e8e690ad2102b08c94c98 GIT binary patch literal 606 zcmV-k0-^nhP)s@MOJDo`wkkgb+@~7EZnnGoPr15ICRD001fN%&)IEM>PM$V>Y5703@Ya zMDDMYrrb~_m@D!y1onIN<8VkC@O1k8C9qoE@by~Z+b!_@J*_}V2+>58Bnc6rSw4F$ zD}>{a2wyDR-P7j)1wjA+h$8ia^B2tL z0*nFkxxi+#F$8S5mcQyF?+nals)&k0?b9?x9KQho;`j|=7#jRGT+3^Hee~S-Q>Ql$hL4$fb&TrN@9wZU)0qewZ?KF(2-P)Be)=HQ$oO;d2raXjV*pAFaYqdTBI zbaX}Mc}_$`d7k&Soel2{C$B+7S!NzXx3Y%@k;Zif$`Z&j|6$bha9@9qU3!*`=>k?& zRTF`ZqF4dNfd2(kd|lbAJ~n9*Hs=TsLiM$+25-p?O+we*{_6(RMr^BVymc2$dJj<{9 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_h2.png b/amor/data/pics/animated/blob/blob_h2.png new file mode 100644 index 0000000000000000000000000000000000000000..69832865298f95ca01c6450aa110d6732bd80369 GIT binary patch literal 617 zcmV-v0+#)WP)d4I8wv|bc@*XCdXjx+G(6P77K!tPL6Z`cfPZMfB2<9 zo^>&>g+|$oF=p`v!PSCjLn2+mJL|xOG9kpIGK(JU2n$KK5CW&u2>>9aU)k;L*%8ej zQx@9^gHkFanqH-J!|$VKnR3D|=b}-pBRC#waL!SdB{=6e9&3ls zN7wR;JHQ?~`b5`tO+-X>U5~b%k3JYqVS}iu+%gPL_S_)Sbe(~=1*$515Sbnx>+hwg zXUUQ-U|rXl2y_(94rpflZ$^`W6#a&wb#>TbWd0kshy4vkxP zLDZ9s?AuTu#;G!7g z@(rd{q`;6hCoxaqEYM0e!bN+4EdL=MTg0wHz(NS8)EWMwBFw`A2qADjp8)_;+7-CF zyWSso-9``@LrOJ>++QiLv991`F6+}2czsp>$73;Uczb)l0`2z~{^O(KKRp4TpW$8r z01`qB78ON7L>Pw8Tw{e06jLXts^*1Hg}V4ss&iZltZdP|-CpJ|FV9wYFY&iqclOMt zVUi>OfGkrBoZn)z5nv41Yy=L6g8{JdHU8&3^7g=bt%9g&)VwT9g-G+Y2ig{>s(^B= zb9gSlLx-*t{W`SRy2E{SYTp$5a~_MTgu^`ogj9WPW8jZ)OO?>o+pjvH z7GfJy;iFy<^(3QlH`KxCx`vF*^c{6WhDf3`y;$S>9*|Pud|b~wTQl-+7|fu z7+yr|Hxw`wNsD79691&nq|juK(%p(l;s4AG#F6-M|0<002ov JPDHLkV1iKb6vF@j literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_jet1.png b/amor/data/pics/animated/blob/blob_jet1.png new file mode 100644 index 0000000000000000000000000000000000000000..2d32bea033efe4b47c9de472879d1cf0584f016d GIT binary patch literal 559 zcmV+~0?_@5P)9g+DU)LG0!- zbUXmb3~Ah^#SL!qUUq}pv@|gOc>p@bg+~;Ak4+I|gF}L_@!aD2%ki^vN${&2iiH1`!agHIvB%$8j#l#rJ(Y&%<>UFE8hT%?9@Sh_WmxieeCvmIDzn zj;Y&@as2jHw4DBg%?3U`{J}&F0WlJ5tp$)EK(g#?BELV41p(5Nu2xP@W=M!g%ehF~ z*`+o6qbO>%ts>W2%XYh!<#H*t?442fS(dd4^pS8(?yIWecsz1A99S$ChzNP^5QdQF z5Qg@-oX?}qex=m6J@M3hd43K6@O_^=|C&40IY5%AQ+qa>ktE5FbDz3SxaWCHr+O x_R-zz0h@~Dt`*UclIiX>p*4|_*L&bU$0zjZ;GJDzS->P)6nunx~ATCzd-~WD(szJ_eqkp3G|V0Ozz9Ffrm3 zrr`Vbxm+%T&UvNOr!(=?eEI8n^*BwP>N(6fKoqHZyjU!VqUg(SpStcu5Clx88s8so z{F+1Yr~d{%HiFNMW3gi_@% literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_jet3.png b/amor/data/pics/animated/blob/blob_jet3.png new file mode 100644 index 0000000000000000000000000000000000000000..05f3864006ab6838c6034c92e0140c2f3670d716 GIT binary patch literal 608 zcmV-m0-ybfP)L_t(|+U=J;a-%>Hg+E+-5Gh%T zj00d-;Y6uZl%T}NaAIFXN|@9s36y>gKt?H04T0{_8;C(5VF6xg6|7%Xm(a|J_xknx z34ZW{JHu*elM8+I{=V-UBtW#*j7B3Y%R22B*L86m2isOWJsmq%E7)!W@;oQYvOz)` z1R`RHDW5Gv{PL1DNWa2r1)rbpU?E0;7>l*m0*L1!NpcL4%bzAZ59ugZqo!3D5hBtc z7ip56M!h`N%(d3CUaw_7pG#?bYt~(nBuxQbA}mw;qA1w!_w05%X0sV0LYi9m zKBOu5e*aodr$KAGQtE6@Jk-BDK6(JSu1lI8#ttP1h$2-zPbL$hDEe~jL)!{>9Eb5( ztlkb}Syq+7?1a6c;MoJ7k5QhC7f&OpN4Xn*`z%O6@M>|9 z{JlvoAo9-HQ9R@{G$KrN3#f~bN&x@jK46I;d;o92N7?!YmQ_ufo8E{H0%(#$L%{9t ugp~{D+28zDT)P$>>Uh^b33nIpU*Zp4NfZ*X>lbPO00006hWeahq@(8NQ> z0i4XZqD^ZW)8rV*WXwgNvD&n5>;ZECIu8XS7u@5eh~ysz+kBEHZ)QhAYiZx^N?HN@ z;~#$v(J;m{y0X6Odc6oxDTTpc03k$O&+&MS(P#wAl6ZM36zesx+qp>76x;2#7mh?P$(^Y6&$C( z@j405^RQelVOdY@1d?O}0I)2Xdw)wb?S;pt4?Ryoso}-mmyu-|JkQg6W7?7e4W))R zi@<8N0sw3_n@0WPxyjc?AP6Lk(_t94pMvsrdW#6eG4S>#5r$#MQ=qZixi^VGdA^jg zdkWGttwf*?k$4I~0*H>*6Q>FRbpc?KBqTrr{QT^H4U=F55cW@N7kPh9w-vfd^h<5;U03Uja0N?}S19yKB2@=E{I3h963EcHf z2vUdL*C}9;hAuCtn)F6-54`Jke$i9@I#hPFU-WrA@1O5Q!S_)`Ypo- Y-_ccc=2+a?EC2ui07*qoM6N<$f>)gtz5oCK literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_l_jet1.png b/amor/data/pics/animated/blob/blob_l_jet1.png new file mode 100644 index 0000000000000000000000000000000000000000..a35760b1fed0f4e9ae4c0af3276c9b86476a096d GIT binary patch literal 556 zcmV+{0@MA8P)Rml?R@ zj{l5cz#JK{p19uo2oR+daU2sxn&;=ki>iXJuZ*T?sO$Rsx*{U9ZA%!2C!9fF;@8*u zh}4Cug3nL27a}4O1c6n;?!LF|@~&Mbw*p+mE+JNgQc3`sOeV5iF2xvg6p26Q$N|RV>}Whq`{gW6p)3#A z^?Ggdeijes24}MwqtU4Iti8^uB?lLwf@2d)189k98*5+_^EpV6{b9Tg>Ryv<**t`7x utA5}XJ>gXy(JhD!3E!~w0l4)500008p zcmOUEY22p84ON~aCqIeZm^Lkqk-@#`Pzq~#levPdS%L{H&gri3FO7hOo&VpNU1s2p zJN_}88FOTYKN)&&BS3uLXR%n|c?pk??Tb8z_xFgZswm6yvtJPr>bk~t-5#eimH7F& z?2ry2&*AOOzX%Z#aU4f0;p2Yt!X*fh{k}DkudmvI00BfPB}ODd6rz;sMB>Laa)8w;>Wqisw48+@WLbMX zolZLMSMhLdaJSpBTrQ30#Oj=Ca)2yr$$tgGxB$=l$#%OXj^kP6rid^E*HuJOGtTKxWuvIa5zlc1IJ^da%jSw2q@(ae$$CS zk|Yiw=ku8~O=su-+Geym1!zRd0Wocqf6oUo{Yqz34Rz6x zwIN{5#`2YX_ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_l_jet3.png b/amor/data/pics/animated/blob/blob_l_jet3.png new file mode 100644 index 0000000000000000000000000000000000000000..80f41483db4f4b06114b26f50203e0b2bf9cb834 GIT binary patch literal 603 zcmV-h0;K(kP)-+GSX=Avb+Dk|Lihj z__qJu)QmYYV?7yqZ$dy^*Tr!hY&+ua?(!l{;q5IT&vUXYd%v!T2xVDfSyl&AO$B~< z$XcL7mZtFf>Yj;+h$y8r6YA&58yC+*w%dz~eB5gHJOq%UD5Rl;jD+xFK@f;YwQ%!U zgT41=f0Kj;ZGbm@99$C^0v;lwNw}^nfUH(4+3)vK6h%vkAAR5e%Vp5&_x))x^Ld#b?!l0@OUE&#W;-Z%l<{>gg1CJe(_;7t;~50+Kn zIL_b~B)V)PO(~MaFmkBL$#JR3-|jJkQTN zND@dCBun$%YX$UrlS7bY8QgRBdk=`r!1eCa6rC9j%|oB4|@Or literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_l_jet4.png b/amor/data/pics/animated/blob/blob_l_jet4.png new file mode 100644 index 0000000000000000000000000000000000000000..150b6e77534e31efe893bc8de6ed1048c4342b20 GIT binary patch literal 637 zcmV-@0)qXCP)I(e) ze5io7Sroy?hjk_*BBGSiOgNQ0Ph4yp*=!0Ix&G8{+Xx_Ono3Ctxv_+WxvncB`M~9} z2CI9yzD(i-N(sE|x4|`mHsCfQnuKLp0?2Z?lsJwhP1A}Jf11Dnrc<|4?>ODo%yA$L zi|2m7*X!PBqo&IBdd*}qDZTr>;#7kJgkb^xXxq05nC1hk)r#3{HVC{-!g0VbQe4+< zjk!^i{9k2S1=GwY5y!iWHWz!~?QH=-mSuMn$d|%kHcQ!Vx83%@ZkMxc>o7!tG&Ne= zR21-iUjcGF9tnbA@cK7x#$Hhn1OYEE{>{!^6^No91bpA`9sAc5fILz4Q9vb0a-KmL zLZ~2|_Mg30K#$ie=Wj}moj=wKoAxybd03U-y)Xl<8B)9z5*v{--S;@!RN{POav-iKim zh9GF<^}T?2o(DjZBsh2A+`)7@-D66Ugz;G6I4~Y7T=#a59)?Y>Y~@LB4~#}t!VLxk z^iZRR`iRH(eWK_AfGBz(j^iU9;{_wn20v^cg8(+0YJX_CfwC-#(*$a#c_=5y3FTUs|U`m08>I*Yss=qM8sNlhL&YnYh@T&Z8>0T z5R#^i+h()?SKzn?uvZa00000NkvXXu0mjf%`735 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_l_turn2.png b/amor/data/pics/animated/blob/blob_l_turn2.png new file mode 100644 index 0000000000000000000000000000000000000000..b664999f6a86ff07d70a8b07eda58db1aa12804c GIT binary patch literal 526 zcmV+p0`dKcP)2At1oFcBxX z?}O8{bmsP}ao-1bv}+hRa|uF3OhjL?Dv2tQyGSUdYCr~{3fv@NtAy|A zqcd?B77hSXO6U18cO_UX7NBS99k-dOg6Ex_&&=BrxOUjKb6YFg&X1XEAxUB^mrEo` zY>gZ5Q-Q$>sA|3Wl@k%iam>tYRe((qX*%pY;3z6d*pk|awSjj@@f!gms-0~2xY@`M z6$q_0S9@sWRO_z*KtTA>-G8mM^T#Bd-$6&2UVI?E0wLSMjRLX^h$1(ZONQc2DbAmA zCxJfTK=Eq^axrEeXstpM+yGb0zuyDb>*&erZ{~rAPelJ>Cj8Z@c(Tbp0fng%%&d)! Q1^@s607*qoM6N<$fHbz!TDhD(?u2l(cyPNW6f~N_9`!D|`-wvjHc$L?FDh zhIfY#Ju{w*12M)BMG?aAgd}Mv>KeFQ1f-N`n#L)vHBirRhPIODwxBfp5i(rgh0|_CnW+FEU(Y}nay97|4x8z*{R}pzWoP~vD z^+*zRpt@ME#U%A<3RIOECy9#ZB7mYO0-&x|mSyl_AdZ3EZZ|oFX{rnWe&W&O420q7 zI`(}Z;#1&o_`+thxtSY-&ccw7Q9%E`cUQjM!YK=;c%uTkD2hFTAV5*249rrI~MGE2r97lRiS;zfGexKnP*2c&?^viR~7An6^bqN!=Cb!vp}8 z2S5Pnar*vCDV-Y=l@6P)kJ2LBN*JA@F-3>HG%2=2-H(mylG2u-dHuo0UK(MAvvd*y%-qNAV_E=k-UP?pX4 zvTSl9P0jhXc($2k8CI(m0C;wxs45Qwq?DZ(jP(G}G%DvL1P~~txD&%400Ky|VewZ=c{e65 z?gVkOx|HI6IZo4o{eXxVaZCQHUf|}1cXz{g&I2Exi2lV)_|mC(#*AN)X1wQtfB>=p O0000@9A~Okt`&z@45Cl+-u;D zJN`3PH>{z*8E?q~avTSn%?7re!SmV=c@AjJa5|l!lv)&bHJ3OHRgZKGc@FIN&g?|4 zO(53=-rq0YKGjbN_&#trw9f`_Z@}m0%`zKulCl~^AX({ehD7zg8D?I+#&ylyAR-Xjj##O91{wxFm_8^%($Q+mDFjq$f!jDkudSlj31y z_r`E@$b%q2nx+5%&KZ2ao#S~`yhYkG#>^37;1!HW~3xg8a zcGh?M1fnPc0PJ=3aFId(MWuL4|E<}7&H(Y!lXpEWX!-iXWANcV%q91W5{HM3#JMQ=mdaMC) T@P1xt00000NkvXXu0mjfOspLN literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_r180.png b/amor/data/pics/animated/blob/blob_r180.png new file mode 100644 index 0000000000000000000000000000000000000000..3657c66e07b0c0005f50c7d611444b395098303c GIT binary patch literal 574 zcmV-E0>S->P)5Npss5eV+Q3N_1!p0jI*iF$`Z(PHn9WF@>i~$W&VV`}+NVE)z{I1ciJM4#Z zDjcyFLUbEn>sq(@d<}W>6U6bVYbM)#vzh4P%jN0_b1H6|(dO%|z`pcEErTq}h=?f5 zG7>^KEJJad%csCysFI>+nZ@w~q?7;vDJA0gp<^71TLnTEEWpYyWs0V0pp-(>G>|fN z*7@QVKe&LhbPtp$il9`6G)ub%7 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_r225.png b/amor/data/pics/animated/blob/blob_r225.png new file mode 100644 index 0000000000000000000000000000000000000000..f957f93147f45f8c02f514eb556e0e046d872e64 GIT binary patch literal 656 zcmV;B0&o3^P)%i^T$tvxVnXKk^(X3WnqH2&L30yR)H=gFrQ$c1fNCpP%mF zK>9Y&>nrf_QGM`zAj_&JmX{xCQ}O*B`1+b$X6u~NR4*dE8t)npcBQEHq^Z{L!A!Tf zuG?^4cU)g7s?`>R>$-OXcW z)K!XK9jCW|GtR@10RW_wSglqliW8!UH}rhcP*?)UF77-}+Z$DT##kfej4>i2D$A0L z#BqH2-d+}m5P}n9 zj2L4i1h-wW-|tBXPC{^s!Ko}u8&I7I``ECx1WGBJ zHam1WfN4m^0F(2`l9x&UWio!xENCO2Iw{rn519p{r=h__J%DTG95W3k-3P9F-}9oI qQVqQi{P-KukGK>5(_8UF9`YCC%P68vpHVgd0000NY literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_r270.png b/amor/data/pics/animated/blob/blob_r270.png new file mode 100644 index 0000000000000000000000000000000000000000..8851572dca9f6a4350ca032b6073a05fc5bdfb8b GIT binary patch literal 553 zcmV+^0@nSBP)0e$eV{qZpmaWf z6+})z>ooKnf_Nyn1Wjl{%L#&54v-E}&#d0J9lzJU*CfLWt}%N-2_NJsb`s z$uv!=b&%~@zC}X_!H1yNx@g?85Q162!)Him+HLFc`d7I(98@^|ekyrPN&lw&?@6 zNoae4Qi@%wptK8Gz9`D7fn?r@N{lyk!+uq>se-Mp4?vmhM_df&Wioz!7PRUE9cRJw rPQz!o5B$oF=wI9kfAm)Tq8EJv)l(KF01kF~00000NkvXXu0mjffwk{1 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_r315.png b/amor/data/pics/animated/blob/blob_r315.png new file mode 100644 index 0000000000000000000000000000000000000000..6ddfe123def567c5585eb0116d0d868c547dacfe GIT binary patch literal 639 zcmV-_0)YLAP)8V-MBO@`v`uB0C|lxrhzuCr3*-Q9)J#!#=Oa1fibLYY_M{=6#k{r3K-@eW`1TD z9(dqC!?@!e^_}s?yr6^-*tU&jB{)v|V7rB~^eBpgJkLkPHHH$qZmyB`VY`L*cQH7T zTMp{^8D3x88?zaNp-)+U0bp5E94BNpgDh+PUS8ny^X@hu$yJ)xrc}KKfv-HzQ%Z5P z=DO>bruF+bG}8|u#2I;)tZTd7t~UuG#MJ~QeP8do`LX0#RyV zAL6J{2?!xH!F9nE`VkodfCh1SWmsv@TsOxF}lVx=Vt<*96yybI5oeRe`efaGd1O z!-Tgth~t>5sxVFS*z=o6+jx)+u7FV#h4w2A5!_k%JNFLpjKM9)^IR)imT^^Zm&j+T zEq^ntzGW{swUpL4tYh|q(YxU(IUPGCAF>h{Az)_q+nJA< zg&S`8&zN1|qyJ{SDGpi)fo+nHJ;B>s^}=x=Ngz!<^86D3%bMeP0ZCHXy}rWXaCMo@;yR9tOY7o_W3-ggJZoJ% z`@Yw(iQ~fmf@b<5glH^Y-ldd!yWKVjl<(_yrLPcTkicEv?pG_-NV(&H>q??1;&eLl z_$WFZ>-GTWIC>HRA%qcJ87v4qENjl`bOJyr)gWP6^A-t!#iEGUhx@MG+qMlTvkQPc z|0Iec03IHG;rku{hr@3+n+;JE5Cq-Av~3%ulpZTc?fY%nlTN3Ci@>GhkVB_WM0y7y=N6TU^&AigviJWVu{6Vnor-WMim*+zq87Ngz2V&GQ07 z!gXD<$QWS`;ePPzGdu(F3>;mMsG|@jEn$9qsFpA%5lB-;wcSg?e0d2>yh$BUN@+w0 z=ong!XN)lGowHAbT^X2VS!Rr5nq{b?)C9nKy(SE|=dA1+b0N#J-kH!TLZy^Ro1-fd z$(Im)!mM|~G^L!3-<$XAHKOSxJZAlC&poASf=fix{=jUeE)hO1Qq09dbq(`lgA7-O}&)`N3SLWEQl z1rZTNQA9$7*EMa+7^6Yd3-LfLK$2I%qbMRGqM|5Bh>#d#PYFs{`Z1Ma(y;q`!OelW z3m~a}Etg9Gz~OL!5MNq!Pw>3bU!MfXah$5|RvBEL0RLtmyWI`|Fq_RFL|7X{>*eB) zdeg6|hg;4j4IGb0;+$XCZcl}&40Y-xDbdP+=@i6qRjV|;RB>J(@54leHg3Xgpdt3H z3HUx>^3leC?j0sfn%ZgG4uXKgwx`%`w}|5yi^T%AJw+TR*Tl5F_Sad2`V14*i?C}S z&_d*#H;S;X1eQ{Y^bULiq!yx83GuNHm^7f2YHY`~CCKyqo;F#Y0`Pu)K-1sUq+WU# xJobUEcftGKhVSqm_>~vYzjzb==&N|dh;Q^0^CAM$3Wopy002ovPDHLkV1n<1_B;Rp literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_r_turn1.png b/amor/data/pics/animated/blob/blob_r_turn1.png new file mode 100644 index 0000000000000000000000000000000000000000..6b9d05466e821cb23552402533ad40c59d4d7ef7 GIT binary patch literal 594 zcmV-Y0Th1ZICCZS7q@nS@ICQw1Z!wi?h^gpTGfvK0r33n}I$EZ}3@hT-mXW`)Gj>AY_>o zDg8;2f(u>fKa)3Njr>V_Ll%hE8sGPsPE&4gkAnRk-rfv(o^v=H2HExcIu66biPJXP z@8RV|58g~UvWUgtgou@X&hzORu=EfM&TFWTtH=Fa$n@(MFV@zi#zO|g*CR`m_fQN^lC%P5f zu6gyXwPwf$#P@w0_quZcrLLLHG@b{unP$CSpUC4l#=8OU1}pn*PkJLTogNdbNl_FL zhIasj;T=H`e9$ph26JVYOeQDxT=d=bvx2{QdVr!Rh@u}TbGVjez&d8%HjT=@!jwzzKE;qDJMgRZ+07*qoM6N<$f@)3@(EtDd literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_r_turn2.png b/amor/data/pics/animated/blob/blob_r_turn2.png new file mode 100644 index 0000000000000000000000000000000000000000..9f4cc9fd7c8ba075cdc102308bc698266dc3614c GIT binary patch literal 505 zcmVd)b=LK1nC7tt$CK>V$d&-&@NPy7?coXs(c5vm?jwD-7+Ms|55Ee*_M^dCjV4{hh zOl-s+dZfLO4a7M|9LI>F6VmjmC`;gS5ztzrs;VHnY$)(*Rkc7}RF=T`%!3_qf+q<` z$}1E3zlM_p)N@>6;6!aO!$JrWLfrgww-cOmYt&uv?%Mok9OImia)5Tb;ox0aSLe&Z zizE7`;FJQg%)WWO7S=TY?DrpyoO6y42PlqX05z}+8~~2TBiI693t+q5wsf1#dn5n0 zXU)Q^O&CR|-sla9w>t9KY-ZKj4<^!I_AER4~4Yrv3F{>}6Gyy2qATe_mit@1$~ z(CvK}*VRsx=lMI9eM96*6wBS%DY%OVYQr7l@9O&L`_pp?;y^t=nLQ6O00000NkvXXu0mjfH{<1v literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_r_turn3.png b/amor/data/pics/animated/blob/blob_r_turn3.png new file mode 100644 index 0000000000000000000000000000000000000000..cc27fe316055e89812ce2503b9ff49792239bb35 GIT binary patch literal 475 zcmV<10VMv3P)VPLQoR0!LtztT;zdB-rKzM&bnQELJ_r>w=mzU=rI+8&zVYCxpN=^PWG?z=8!Y zhUYMbp2=r3fEZ&4!w^AGA&##fng-}P4k;ztwzcB*OojLR_C|CLO#@sm%-YDTcoczz zxCYVvr-~>7J(w;#aiUwXag6`@u?fbQHtT!AIUhoeWsEr)pySbAeEcp%&vUN|tC{SF z1y|R=c5CK3N%&+z#&OSQV}Qai1kekciUUBN=h$ojZv&)himvMoeescT1%jX&vNuH# zRLHUn=ko{nJI8vxp70qPQ02GD{&2XhgpSYHfPzg06pG>m-}g}zC+Cxpgs`uGZXuRs zH6*dy>Gf7~$Ej-t%Cee>D?Z~hK<(j2d*394==tV$!JBScq?Gi%0*|JmP5@NEmh|gK zN@?AgtWH7!5TgF63#Wcy+Y6M5ak%yZr*8PP?EmsU@bVkczqk|r>aBRef=`yF5(u#< RWR?H`002ovPDHLkV1mOD)8YUC literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_r_turn4.png b/amor/data/pics/animated/blob/blob_r_turn4.png new file mode 100644 index 0000000000000000000000000000000000000000..c704d3d0f7e9758ffd2edb49517ee8f4ec2bc40f GIT binary patch literal 465 zcmV;?0WSWDP)CE@B4V3CJfsjWeL}7gfWJys+`VUjV0dgsyosllqH-_%Gr=X@*qI+ycLn3 zS1Un)JV}=uxyU`)qde+FQ6wVuI*DB=)$8>$v3k~kXGRR=NRkA?5H=eqih3Q3qG$`V z3$67xzK;R#n}TyChg#q6-)^_0X*#IeXMp&=-yGyh-ZcUsj$@9;BcAs;+5kLHH{QPz zeYLReQ?%im>U|ft+l@Gm0od>N<08;4rnxwu&j4I5m)`&DF?pPdG}TzAvn(5b3(E2} z5hw~c95h*$Io*Qh{?3g+cfZzpbP86+80kj9=@Hrk8pzvk#u(?uBuV1_42vK+2tmDC znbef#^a5)H0iu+e+!1GW!&%<{0eyeO~QBOoh^! z-U4MWK-$n`8yXJ50@t7k4YZsfks=O27t!S=vxRZM**J*<+TDVYMv?R8=kd(gz>8k= z$HaQ*&@=71D3A~Wp66jWJYYP&0a*rIE+O(f$N7AAvdg+U4uZ4c)J9nb9FM{|5UX=3 zK}m9BqUNt=DM2mA)tUj464-3iV!I7XV81{75T4C$_h$|Q zu-yVhQ6P#w!TA7_$pl4F81gpU_f-&0^W&|l67>#tyBM5vL{S9JId;3)kh9@h-?;fd)gJ3L3CnW?2vU7*T;g|nZIiImT~H0e##QHC?t;#@p)SUz zWAMpr--m9)|L`6t=l26IqE;WQ*?Dre{6P0Np{dv8#~}d2poOgReFJdH+*6l5cKmY&$ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_s2.png b/amor/data/pics/animated/blob/blob_s2.png new file mode 100644 index 0000000000000000000000000000000000000000..4c05c8ac579c19af643d92dae1863320bd66b664 GIT binary patch literal 605 zcmV-j0;2tiP)LQvsscVfM6e@P z<5Gf(;@pXbzq(5aa%`7#1xQNZ{ap<EO2Em4F{z)HsufTY$f~YLjILk65$s7QXBy&h94S5@``C4CJd+7VA zmp_hy%?48`-Wxq;b6hRRyfq{spPc;lBJ1?YfqP zWC5$|x}AZZMY#Ys zgK=mZVlvbBrql30+y{Q;M&#uH5x|%_)qL)RTK-lC=qa#2@{~m(i^+pCJAh&yFXX&rIR}00000NkvXXu0mjf^2ZcD literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_s3.png b/amor/data/pics/animated/blob/blob_s3.png new file mode 100644 index 0000000000000000000000000000000000000000..93fcb53d72f65df0b3fbfaf88095f4e8db36f5da GIT binary patch literal 610 zcmV-o0-gPdP)M%;LlbB9_Gq)^o4I@sidl&|Nf=dUgB8K3db zgFV1Quawt^frJon90#M(5tB&?Bnfc2_{g#hX`1$u%WM^UURqIV8c712PNKIVM&(k1 zqNpUI_OB)>K^@`h^Z-c-Y`1E%+xZ1>I2`X5&*vq+SSWn80?y|Lb4>_Q?8f(fB0@nn zbImJ+pod()UNI90vg4y6Ok#LyX4) zi~-}Zz;d~)Fqm-7f0akp9vF>O62-Ba2SEVOn*jhkZw4u4WxWa4{90bq_-gv8-S4`< zZU^Lfjv)8}=R-`VQ{;JGS#QE!R~gaPKL%}?sCTg6hv1we2m)}`b_pWy%3&D8Wh?>Y3fuh%~M}kR-r*ZQqcJ8g8oZzNC9epDJKk zmK8hDyNKsN++lyr)VezFRUUh&6Bcm<2vU7bRNyy!U7gVCET|h{qPlXMv%vZ^)XCTu z2A8Vk`_yUp4)=kge?M^}>eSI10=nAISb0iX-U(6TWqk~w(t<_-wzp!s;Wz4I_sXN2 w>G!i2%T9UBy!dG&tmF;e>1FiN7muyHKjUU6o0g}H^#A|>07*qoM6N<$g7=#oApigX literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_sl1.png b/amor/data/pics/animated/blob/blob_sl1.png new file mode 100644 index 0000000000000000000000000000000000000000..166b89b57307243075aea47c42f173eecb2840f8 GIT binary patch literal 511 zcmV?f&-h z@z}{vCoSLaokh4D2_mv+@;ql|SoV2W3RB2=p@=*5MKNuBY;;bpl-4t6bmKtpRd7C( zWm;c|1DvKQ0ARO^Gj7he`q(=HNurCWEaMz7=Z!vZ2Tb_aiojetH$DhrBM>}%`a{RJ z?Og9hm#YSZqXpm6&>u8QgUHBD1gZ)s3je#u_V84Hhq9R^AzdJvrm+YNit-4Q3;vfv ze>Xnc>I=Gv>?E{#1Q=33U2NsOb4!!Z>n<2O;o`AzrNBhQzugH3x1lMm9-*9_ryqYy{QbAbHf8_-002ovPDHLkV1gDd B<5&Oy literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_sl2.png b/amor/data/pics/animated/blob/blob_sl2.png new file mode 100644 index 0000000000000000000000000000000000000000..c10d4564a543a828653083880046fb127ca65ada GIT binary patch literal 498 zcmV74UjxXqpCfU61MQg7>hM z6!>tcd!Rn5D&XlO-%FWi$&xNmP186J*o*QAlr#31%KkUp z`_`vcO+uGPfMD#`$4=haH#Z4IXTi`29}mGLXMy-MsFrkh0{nL-rAN&jW70779ga7~l07*qoM6N<$g6W{#^Z)<= literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_sl3.png b/amor/data/pics/animated/blob/blob_sl3.png new file mode 100644 index 0000000000000000000000000000000000000000..425d6649bc693374e0ba47e6a5b8cb77b47c2ac6 GIT binary patch literal 487 zcmVg?Fv03n7!|4Iby$J9TOK(_APjX8mE}4En4jf28^Gb;Dgw521}+|~jevIt^oNdX+nLTR%Txox z(1MdR^ast{AYwX4psIj8_gGfk!=L)w7kQTWbb)A^ruBfmC^Mj(vA-1h-kA3-Pb`{* zZ5{!F(q9v{^d8^bBy`#ZV0w zDM%@iWf$amM=%Ds-%D6)(Y9@pToJ2yyKSG8hQJu$dR57W1eI$Is_PDk#!p7AK@;hk zi~wm39FOjDI+dPqK3`rQ?{*!1zjyS*0l3{})|yhvdsCJr5y4~3oq3f~G%NH~^{0YDHSG>XsU!q;(4UXVNR{#J207*qoM6N<$g095E-v9sr literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_z1.png b/amor/data/pics/animated/blob/blob_z1.png new file mode 100644 index 0000000000000000000000000000000000000000..e222d1a0814642dbd5a9eb73d53775fd4bbd483e GIT binary patch literal 400 zcmV;B0dM|^P)znkLbNoxb=9Sv2Er2j?Uz0)BtcUg`Q{ovRH_*DA*w z#e76ZOmaMWLk8r-IK1~&K1r8yBaMhcC=cURz_YzZ&yh1`yfN(+AnU$0GXI%=aM=C0 zatCSDl*+x{u6S$x9-i45KPnBmu9avj{HmuDhVaVlXx>x}<1?mD$Gsy-DMtYj0O_wG uS#gd4>l0tQ760uvy!<_I`HN^`V&WI~f3)IvgKKaO*)%%|2`?X#j|1d^F3FW*GVs0 z|8w8#S^KPxJeldXb)Bt^jjvJ*2lv~=U3q*fmaTes^5xtApQL6zXE@tX$+qQ^D$BL6 uCz`L=vKz&fsCVBYl$3qSv`3)ccVlfl!~&t;ucLK6UUG-vDp literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/blob/blob_z3.png b/amor/data/pics/animated/blob/blob_z3.png new file mode 100644 index 0000000000000000000000000000000000000000..bb6060b13465ce63723259bd6f6b0770f800d2a9 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u+G!PF{I+w+bI`$8x(k4x(f}DyGT ze46L6HEi~YwQOmd`?&VbPhMc%D6#X%K3VPMQQ{wq*FX4L548Kh>o;O<){AUhen?%ClGAh%bFDy0} zW7n}aG*)kCn9=sbcb<*qf|Vz$9WP|@UMO58yOuGZWh4LZds+^Y_gsBCaIK6*sR7RX*XKZ4BWXI{<4{YRDWIiyLpAhlE zr21Z(0%zeLhorRoQTEH2;!ecaZt}i;@%yg$qmv?;l75OFC}OoVJ~>Z1{v(6#oKN!} T9elPO=za!IS3j3^P61*b3T_DKt_$}PCQ^V)6ZK+mN4@78KLF#X$dXJ+Ia&LxcJ zXP-UK$g)x>h4H(BW6+0bM;I2UGOlHM8CR?O_0VIHExWRN0;LOoYE{JZ-Kk87;QQk8 zVN1omH0McKr+H5bxUSo^H)!efmfcL5f?tjmewh+Hx#Qxjx@#^=7~?+v72C3G0o#e= eK7YM`xyU|w#UYWj literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/b1-r.png b/amor/data/pics/animated/bonhomme/b1-r.png new file mode 100644 index 0000000000000000000000000000000000000000..ea85a03b4eb7694b250335f5acdb13e242e9ca31 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@TsSZV@SoVr{Smhjwo=vG5PaffAe(JjcfQFu9##$TKdYsIl*K7 z>-*wqa>mB?2N-ga|MC92G3&y$2Z2K0UrOzWkKP+;TCj)PKza+;D+Q+f0&X+o*`9Z1 zp88rFyv=B;`zA-htDklr(Ov(lqA6I}Y33@%1(zhHgrD(T3E9rH^_-j1iPaa1&j+=n z_@2vN?QV%dYHk})z4*}Q$iB}i2aCw literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/b1.png b/amor/data/pics/animated/bonhomme/b1.png new file mode 100644 index 0000000000000000000000000000000000000000..5063099c873d3789cd4a684b3b70c5baf3dcf264 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@R6sBV@SoVr{Ru#hZT5M2mbs2^o@~9SHrEwgUb{PS031?c;i*+ z-`@@?lXw5-WjSDW?ERzdk;1p4YNokZ-DQ6Hd{)0BOzBA9L$n?Ie)RRtvV=_y#Cw@H^qyetd?^2 z1}K#;Y)aHVlfw46LgJ=YbK<-^;ZYl1L%;iEZrSguW4P*binOly+V9(soQW`er5-Mn zx>q6PXkhif6{7Yjj^+D19qtBHo?^1MCjcKur8<%-{+L+iiBuZQg zinGp%*y%HA`f-LkVn46{O#RAu_mz!Q%baHoHq-V-%3KirmR`Uo`27E_-X*JLQ8BcXZmc>DSg=N2krk`6)a1c8BmykV$>>t|vsut!-kIeBSGu_2UiVl*AxT==U-erPx3?5R{mAt8@QYEwf6!&#^CAd=d#Wzp$PyeL44T& literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/b2.png b/amor/data/pics/animated/bonhomme/b2.png new file mode 100644 index 0000000000000000000000000000000000000000..d4aecf76c958d920e3fe5f18ee7909a96d7ea836 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@VKXoV@SoVx1qPWS`B!NQ~&=zZKmG?XjJf^JID8u_paRg zl|L0eb*Pj(GWaC_VZUFiyl~}%NTE+<{3nWHqwg}G@N+1WdceB>kittfMbT68=1Sg` zYTQDBd8&seuMJxoW4frWTcmOKso(!kcoj$oetncFHe=m$(H+m%t!9xsI`Pe#?LFt* zbh1LSqYGQDw{t!1f7i4wMmXSD^TazdL|3aMYMa?4_B3WDztEj3!qAkmLvg9nkHD_q m)~neCBoA+1FfsPST=|0wS95zE_j3SxiNVv=&t;ucLK6UOv~`I9 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/b3-r.png b/amor/data/pics/animated/bonhomme/b3-r.png new file mode 100644 index 0000000000000000000000000000000000000000..2562b530eb67a43ef911984bec7926612dec8d70 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u+P)QF{I+w+v$#c2NXD1BLDw?{&p$5X=YSoQiz8Q7sqJ{gb_5z*Nar(SI^P3)t)>Qr6s(T}wi{V6(OvAGO`AO&V-XXwi?RhxXEB#rUt47@BpvKQYHQUBEsdSA>pSadVYV{HX%=iby66&wd|#jjR%_O!aL de=GkHlTmHQISKc2H=w&1JYD@<);T3K0RX09Sz!PG literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/b4-r.png b/amor/data/pics/animated/bonhomme/b4-r.png new file mode 100644 index 0000000000000000000000000000000000000000..377a2726c242c3f555fbbe325b0e23a41015c4a1 GIT binary patch literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u)@>DF{I+w+vx}S4k&Oqzx?-q{_9lh9cKZTJiqD?tjb;>vtSQf)vg75_-jtiU3TD9+dZiXyv~<4TyC4n z#K_^m!1ROHVbVnXe0x@gh9$1G%rRUpe)hGoAC^3t@^Hy}DNc>3H~b2W&OkRXc)I$z JtaD0e0sul>Q3n73 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/b4.png b/amor/data/pics/animated/bonhomme/b4.png new file mode 100644 index 0000000000000000000000000000000000000000..fdfc19c404d0638f895ee4966f0d204e44a1b926 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u+Y=RF{I+w+vx}S4k&OqzkKxne^L3(qpEQdi;cBA-JiNf9porf z*ga8Yc{9V7!1$BPOWCu0|FJv@$adgUxPD-s-j65N7pl0mwQscrX{Y7B5Ry2+z-Hhe z$96r>mdKI;Vst05d#_IRF3v literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bcol2.png b/amor/data/pics/animated/bonhomme/bcol2.png new file mode 100644 index 0000000000000000000000000000000000000000..006250d9f1d33f1eefa01b3ccde4bb757e3a7efa GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@SdlOV@SoVx8WE08WcE0{{NrGc z9E%V7uH&2`$T)F!uh)S^PaGUi#x^)!Iw{$7^6rAbPm(8Rs69Bxm@K})(6GSYW6F(N ztSep!RE9WY-DKLv;B4CMFFue20Oro8rYV$pm?ejiS-^UdLn$CMf=S zmUASYVS$CpqFkT6506%I=Ca;*RjSHXkX!7g&#SVofzopr0D{1HcK`qY literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bdrib3.png b/amor/data/pics/animated/bonhomme/bdrib3.png new file mode 100644 index 0000000000000000000000000000000000000000..52b734f59917754ea8e846404b3726b155931512 GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@SLZMV@SoVw_$;Ntp*&6)4uO7`WqQ{g2jBoa{KJ0MQJ=5t-dMA z$;pqC6|x*AJ#%CDCzo5EXBU@{$}{1Kj_0IAHG{=rfi_mV_M|r*$SS+l$d~b_kFC&U zZnQLWgPK6Ynyf{o$z{qjr!Z>&>M*zv!gglcRbk#8Z%f@5UhkV3R$?l!GTEwF(2}d| z@_Nx=9udEjw*+6O3SafE5{mkIrD`KvkQ?*ctC!cjQn`{-`9EGfQB1d*apqe7-bd=? s4YMbnnW|u?&uFA7VH_Q~`Qbwrp+`5arFVdQ&MBb@05)@RYybcN literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bdrib4.png b/amor/data/pics/animated/bonhomme/bdrib4.png new file mode 100644 index 0000000000000000000000000000000000000000..0cae0e1ea7a4fed87376dce785d5b38759a8c266 GIT binary patch literal 305 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@S>-SV@SoVw_(v-2NZaWAN^fF=dXo^UwZKOABF}uj@(*ema3VX zlaup@X9c6mOf9vcs_snaKNUuj;Hs;?}5#Z+V6 zhhsZp7L;sK6vuk!1AoAY9XO> zfA4KN^~(Oh*^rX6EpzJFl)^7)eSULO;vs_qgTe~DWM4f_11wh literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bdrib5.png b/amor/data/pics/animated/bonhomme/bdrib5.png new file mode 100644 index 0000000000000000000000000000000000000000..cab174bb9b38710d03f79f992ffd29ca23bc6281 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@Uo|iV@SoVx1oVtM-_OCkN%FgeDA*S$E#~$+y6>P(Ryw_p94j_S}8RH0#0-Syjc0 zkFFhLSis5>u*W#?cG@=Ir_am}7|YL$^w^zP;&z31lZ;CD+|zEML7PtZ9lF~!(_qzR znU1o_JclZeoZHp8=I*@rkH1LgX{b&2&k^6bq9)x0lmlI>FVdQ&MBb@00hN^ AoB#j- literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bdrib6.png b/amor/data/pics/animated/bonhomme/bdrib6.png new file mode 100644 index 0000000000000000000000000000000000000000..08e233fe07d007b865d479d779c35a5c4861d54d GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@Pem{V@SoVw_z9g4l8hc>G}Wv^mg&-2JNC3%BmksQd=9?$lNz= zl81_rJ=-33kD$FA2j1Q*d;H3{_>Ba!%1*9HOJ;MfSs^OY-?s0bvflxzxh4v-Qv3J% zg{&`po5V1Ig-PSutcpN>t;w_7SL}Dp00i_>zopr0Dj|nc>n+a literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bdrib7.png b/amor/data/pics/animated/bonhomme/bdrib7.png new file mode 100644 index 0000000000000000000000000000000000000000..363d4d8c4e7f47f11a960b33a5136e012233ec40 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@RX;EV@SoVw_&l|M-+IBH~s%Vy;z@bN%+h5dEYM`NMPQYdF#s7 zFbxr|dbUN<9znJo2hQK@d+=(rQkf6qq%D(FB*U1dZJB(;=)(2tHkLg%&oZVteX{mi zeq2bxv&h(sTH?H&;9k?t%GtOhTqm}Zjwtco9X2$Q?Lp@L4^Jl4BJ44dV zU33RiuFU7KlAC|Kqz_euE&g%pt=PoUsc+YDoerGy_EibzB722vRr#F0OcTQdf+xxe q#okNVUdwx$HHtGOZJueXs9o`rJBJuNUf%}#iow&>&t;ucLK6UFVs^s- literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bdrop.png b/amor/data/pics/animated/bonhomme/bdrop.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8933062595a7cf3c0ade0ac9252fbfec7cbe9c GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@S&%RV@SoVx6=;tF)MPo$o~63|K(D(7A3wlxm6QVlEV&GuG2F* zwtwcTRk`(6*KY^L{&tx&f3?tpbA8Td)VV&`t%96r>mdKI;Vst05d#_IRF3v literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bgo1.png b/amor/data/pics/animated/bonhomme/bgo1.png new file mode 100644 index 0000000000000000000000000000000000000000..c680f56a1db9b28dd0af61c173816795560046ce GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aGj@%V@SoVw_(v-2NZaWkN%F|`FrL9rOo|k**7cXJesy;*+RuR z79YPie05HH_Q;)~ZR5U!-J!x#T<;VeH=8;{Ykl|Sbz$!;-Sj<#G3rCyZsX0TgimnI zQ=e_m%rVPrg7_WpCY=Xsg_s*!S!_f-s=w}b<6fklk$T-CS?JLhy&IR==b3z%$?u_4 zF~e5hc*2q!RSJcv_ix`{#1uGjXI0AdEy+{9?Yj}-<^4>q^JRDeqkq<`xeS65OhA`2 Nc)I$ztaD0e0st(NXg~k} literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bgo2.png b/amor/data/pics/animated/bonhomme/bgo2.png new file mode 100644 index 0000000000000000000000000000000000000000..06b0b96c39fa9657dffd494b8ce2ac8fcce44fa9 GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aF(ZwV@SoVw_z8#8WecGxc&cs`n9T~>!sYKd}RVtW|Ui>PxNYZ zP}m@O;opffF}f@XGhemusfu#+KB=peQO>a~BLY0t8h84icUKe>9DOUmn=pyOs+hiI$szWg$Lg0Dl~zhv6-#Q*r*nV~Zs z!ai-fQN*K=Y2_GKw4P(r1aDn7hHj1us|owJzL(N3`OCD@DzWcm$7TP6^DGOVH=ZwA lpx)Ge^s|xpB%b~bVcooAOTYi*(gV7W!PC{xWt~$(69B%LT~h!6 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bgo4.png b/amor/data/pics/animated/bonhomme/bgo4.png new file mode 100644 index 0000000000000000000000000000000000000000..9e6cede99704f696c45fa2e89cb08124076cdac5 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u-((eF{I+w+mMS~4GIFq?*IRve!bMeb=B@}pBoMVf!k+a4q|Z> zU~!zm<6=H3rC6Zhe2DxL-`A|QUh@PKHybB-t9?JqlfxgTe~DWM4f`h8Rn literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bgo5.png b/amor/data/pics/animated/bonhomme/bgo5.png new file mode 100644 index 0000000000000000000000000000000000000000..8d216d82956f7a8cdeb23435ce1c7c2de4dc062c GIT binary patch literal 223 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u-?N7og(iLT!p0~X!Qoi|mf zMZk&UW4XXxk4bmi8FY$kJIa$ywuIOuADVZrq1I?;d0K+^j0*p+GxZK=*OlG%-1U!B zOf<_j^z_)EtG!J_+Y7;?n=R9 z63IP=$7I-6x2jm$uq4cW9bIGL?;L$pRJhWL`RC~;`(`$J8+@GmZmQ-2ExYLQNlWb& o!;k(>`)%E@!bd5z@Tv>*%V)7CWET}%0xe|lboFyt=akR{06+9d4*&oF literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bgo7.png b/amor/data/pics/animated/bonhomme/bgo7.png new file mode 100644 index 0000000000000000000000000000000000000000..4d3b2f235ffc86f7348c7dbf80642bda83ce7400 GIT binary patch literal 157 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6(ALw%F{I+w+e?ak3{ z&x8a6MOhjoAI;fgrK@oHNt8gLIs2o+HL+(Izs&gi^2NrLj-Giop5`5^n8Xw+KD7&Y z-U>+au-@*n#X@lFokH0H2EGH+Cweu6aRk|H`toP%Ev=mO4wLE*y8m_G9#_S!c5~hx p^ZQ5NM>otA+oCW1vGDax)*pLk9K7?_@(R$644$rjF6*2UngHI?U;6+6 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bpof1.png b/amor/data/pics/animated/bonhomme/bpof1.png new file mode 100644 index 0000000000000000000000000000000000000000..6993821117680b4671d9d1dba4f61ad6852a969f GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@TRAWV@SoVw_(wIM-(_pdcN;B`n`Dev<{}AvuWO!mb`41Y-?Zg zPZT9)oT64 zr&!#;ytO0!U+0OKH3e?JRg3q2pKwCSm|<_s`FV^6r9N_}4tsc9{PFvA5FU7H$fs%KbBiY#%>UkWF^e0aJbNeNW zvYl+;@R@uC0 zOp!dX&Pwv2)JaR(1CKmacs+2A&n{iT|b&^=nz1e|2 zoeX#0G^*=YiD>A}?@43Y5&h68>*9*ayGU*v|` zs@MPTYXr=hT)uzBGMB>lvnMQ7s`QZA&LGJBBW0dxd}b-5iND~6isL2kfZk;AboFyt I=akR{00G}Wv^qa)D$2hc!~N%ZhV&Zm6F7KgG}F2fG9FeAS7eu?zx%OcU0rhkbQeXLfu# z%eJ!A^;0g|225GEzRdn~x4bjkx>E;>vzFKtIW}ci-&s=iyV}DcE5CBS@YE&lo)IzY zB6-(ZExdeqcbxH(S)P&Vi%Yz}d}Ge4+?R81BA3Wyzqw~c3g+|gcvcbgTjs@rb;nK% z9(Z%u^)~044e6gF^mb2(uyy?0oGg@MUz`6oUn`(TU4CC+YeeB|rlbPbO%p8i7;S`3 gOpYv?x8f*w-DBA;i!S~82J}6Hr>mdKI;Vst01nZLmjD0& literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bpof5.png b/amor/data/pics/animated/bonhomme/bpof5.png new file mode 100644 index 0000000000000000000000000000000000000000..0541a75b168dc266f9c1efc1818f2141011f6232 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@Uy3jV@SoVw_z8#m<>6Mm;V2M`dy-K$Cj(#)*MebWT9q0S?a9U zlBStEZD(w9ZhSuJ!h)45X$h(r`<7`_uJS7afH+ zOgEZge1-ml~@0rID3R)PTHm~PldDLle&Z`sMnymaGLHy5q9+$eKQ@Z@E_km-JI8ySD>6wX_J(fO_Sf@V41 zxK0MK`h+=t587;ZUpM;WwCOdcvVDbb)0fN9Kj*)6D4kdH+f6j-=xXkc!=g8xAC+NTjcLh0)=8ZMdY{45)z4*}Q$iB}iT#xO literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/bpof6.png b/amor/data/pics/animated/bonhomme/bpof6.png new file mode 100644 index 0000000000000000000000000000000000000000..c1756fabdde4eef969bc254686328f8d15705079 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@RFyCV@SoVw_z9gjwoFvA5FU7H$fs%KbBiY#%>UkWF^e0aJbNeNW zvYl+;@R@uC0 zOp!dX&Pwv2)JaR(16M|NXb$y}VI-@6}^p_>Q$yTdXj>FkkZ#7%Z@@7KrMO!YGGRgI9jk1SNs>qrxb! z;zRa4&S2lAUY;1fV%zS5;#dDZ=shgc{e7dlLDhB_+Y$w(Qs3v5+Lb)dEKeFyK;Qtb{$t`yf6HjYW^|mJgcIYVoKtz!wO%6LLOQ4 zInTTosj*Z*P;kHGoDPkPr?XQSyuvnE9uH+=P)NHc%ke-e{s$YALxooXcU=6r2uID< ztYr}!&S%xcTwq)ZtG7y^XAr`%UUP%)V%zU3#<6n95X)ti?aR}iZ;$#N-lg~ zD*xN=QTVasWQD_$=C#Mz6jw2BS+nQ!zmzopr0N99>>i_@% literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/sa2a.png b/amor/data/pics/animated/bonhomme/sa2a.png new file mode 100644 index 0000000000000000000000000000000000000000..433c2626572b3882a630311d21205c43eaa3427b GIT binary patch literal 389 zcmV;00eb$4P)jO!2!Uqc<{oF1711o0T}wH8v;Q){++?H?t)+cM`(vy z@eowN_w8IKBngr{k+b({XTuF+;Y2II+e?c?@c=;{qcMX-E(twuHMZk9uzP`Iv*g)} z^KgR4lkjGuk!)T3csa((?F|wP2~OoRL3HybO<=$?8&;NtO{%3x8Ov+J90DWd>sG=E zlRe#S!2N<#$Bl&DxhLA(GgV**<$^YYN;swmPS8ykbuUgZ<-2!b$VzX~HGW zBy7FxhKn&q)p3RrD$}IiSHc#!lff(rP7|3V37b}G6@hx*3v^0M&cDbkznIv}1IhD4 jX;4m!uxC zcAvn&P-AS#pt7gthEsD!f@{Mrg_yj?PtKoA7Fcm@*SMT-qP3-Ndd&v*lZ*~l8#aYT zDr6k8yR7)ZBElhqU9QbA_@!cH=*4`O8v!;i);cr45;@?_U@UOVYmd^L{WH4WiZCjd zmE3yEDDZ`6PSg_LZoLv=wuB_LY!wcryD6&uy`kq@q8TFIL_6R9yHcRRd289P(Ej5* zN^>tJYsY)*dH8B@PHH$IvCnVc-$e$VQ&Oi)4)>^0DAShu#?CqI3B!j-u{p&l->;?L zZ_*XZt$x(#x#Gg4sw$y#lb*ZuSw3J-;FV*Y_-@m!0*AHlnwG74u7E1y`ka%WE5CDKrf&)Op!;1|$kftC?Hw?G}DZ`&R{G4myyZ@*kXtpIU z@ftkmqp=9mZX9HvsdhYY<}S3t#hApF0g{|XbWaf;Vf%M$u7R9|?*RjW5eZW)-Xc6R z^owl{?`}uXTk+8(=o6gwE7|T{7q=qiy&7315i|>2ZLFgv1QD>bZ$7AlFr}-}I?`XT z+(@Le^cct5r7lRNa_#W)=Vc0Bq>j}OY9MJBs;w1`87S28b+zCYo+KP?R4F&D;E_tG zl_7P55{|&L4z7}5oXD(^NO7&!3RJ)>$Wg7%`{Zp>)g~juuB|?Wz z$1$g-eUB9Pp7(X{5%Fl&Ne>wG+HUPwX1yreaUO%QyUIatwz$wLwc||+3>W10zH#rF z_igR%2}|@<`CMe~-Q>`pBKJ+gOjqTckdV~o|FIq})8aj5ZLY7{@536T`+M=PiCtcYiPxECN4lhYd)C=_zS%WllSMVqYYd*QelF{r5}E+4-*+tl literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/bonhomme/salut1.png b/amor/data/pics/animated/bonhomme/salut1.png new file mode 100644 index 0000000000000000000000000000000000000000..212be97eefd9d04a7d32203db5b1e454771a2a31 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aIL3{V@SoVw_(wI4GKJqTYksy{I`Pf2#0k4nF~kc7jMhiI=fi9 zoAIQ#%FG&;113k+D~p~sEt{0>`s1qHhi5UjZ!v`wTJRM-fsXrs$ zxJY literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/Makefile.am b/amor/data/pics/animated/eyes/Makefile.am new file mode 100644 index 0000000..8f357eb --- /dev/null +++ b/amor/data/pics/animated/eyes/Makefile.am @@ -0,0 +1,31 @@ +# Add all your pic files here +amor_DATA = eye_1.png \ + eye_2.png \ + eye_b.png \ + eye_d.png \ + eye_e.png \ + eye_h1.png \ + eye_h2.png \ + eye_h3.png \ + eye_h4.png \ + eye_l.png \ + eye_m1.png \ + eye_m2.png \ + eye_m3.png \ + eye_m4.png \ + eye_m5.png \ + eye_m6.png \ + eye_m7.png \ + eye_s1.png \ + eye_s2.png \ + eye_s3.png \ + eye_s4.png \ + eye_u.png \ + eye_z1.png \ + eye_z2.png \ + eye_z3.png \ + eye_z4.png \ + eye_z5.png + +# This is where it will all be installed +amordir = $(kde_datadir)/amor/pics/animated/eyes diff --git a/amor/data/pics/animated/eyes/eye_1.png b/amor/data/pics/animated/eyes/eye_1.png new file mode 100644 index 0000000000000000000000000000000000000000..6309988b1fccfb27fc1ba607420f8656245231a4 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aH6M+V@SoVw^I-DHW+ZYa%*q>?eCC&XmY1nkcP~M1G{I0RQ&98 ziq`H@l8oT*=vey5kS$_~I$y->s`ra3&h6xVRM@aJko#fjgW8PDE3absl#=+*zn3XY z_$HFW%-~RSMua`9ccOq;yF|mxcz=E|_9zxX6Zc>KFQgW)4}D$wVAtF=(Qm%Y4f)=` hTj8^rPS+w0y_da4wS|$j6+p)^c)I$ztaD0e0su2^Sn~h? literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_2.png b/amor/data/pics/animated/eyes/eye_2.png new file mode 100644 index 0000000000000000000000000000000000000000..592c9e001e268898da944f4ec8274339dd461fc3 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6Fw4`$F{I+w+o^_p42m2qPajSG@t^yfe|fLyMV4z#+GSqKlX-FVdQ&MBb@0EGxfH2?qr literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_b.png b/amor/data/pics/animated/eyes/eye_b.png new file mode 100644 index 0000000000000000000000000000000000000000..0920f6d541950e89d40ebf3090a2daa43ef192cc GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aGs}&V@SoVw^P0O8Web3Bp>%a_@_Q&-pX|bM_6)rPb|w{esE^s zZ%<8*rn3(!o0oj!n;w)P_%-9f&wz6~wRMyZD=0sX6Nor_->KrvZ2|Ya8)j6Wo0;9P zq)t$D;&1Jm%HO9p?&fY|WYFO+*f*2eV^x->#&*k-bqt}Vv%@#O+7)0; wa-s`vDXbDcXT`Z(fAQMg3D3=VniM$na-(A(*L-(A3v?-ir>mdKI;Vst0AC7YP5=M^ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_d.png b/amor/data/pics/animated/eyes/eye_d.png new file mode 100644 index 0000000000000000000000000000000000000000..55a8b14790abd358df20287c4886bc7dab980e04 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u-((eF{I+w+o_Ix4F()6H|tjZ{m=bk_N#*#TRb%%HJ(0qbjhKV z-h~|kPLmGSELfEsdMB#c{nydPohz^H68V1btb!o>p5EO8f$lr`YDEk-^elX&-l4-FVdQ&MBb@01x|G=Kufz literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_e.png b/amor/data/pics/animated/eyes/eye_e.png new file mode 100644 index 0000000000000000000000000000000000000000..dc01f75824ead4aebbe0acbf62158cd55feff4a6 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aH6M+V@SoVw^JSY4k&Q2wCcb7AK#F_Xt~<7E2~a7%FXZ==AP^u zwPA{iXOm*Jf|8YX-r9?OUye9#TY1e&^!q*gW(B@mxiPH{vNiJWOxC?pXz$QC^kc3q zU*Ei@#|$n{h$MZn*2WJNnI+yKCOb hmpeYmouT46DW3pR+)%$|%!Eu!Y(7L!Ve&UDCm8 zU5h-}zA-B$t*q!_6nojr{B7C2-5T?X<(eyG5^}FNRmkq()9sC#d)m?E&BNOBg6wJj z2Mrk*jvV(Xe6VujOlL(MKEnf9DQV>l-OQ$rB4;Q56W(>~MfTMy*&X@nuf=x%RlEB4 ivF?c)-tI*jUF=sES=1``^JW8G$KdJe=d#Wzp$PzDBUujs literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_h2.png b/amor/data/pics/animated/eyes/eye_h2.png new file mode 100644 index 0000000000000000000000000000000000000000..bdfc826bea9bee4e91187d97c64633695d4d8748 GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aJHw5V@SoVw^P0O4k&Q2Hfq28>)(*RXtmn0ke|A5nj*FGRaUw- zEYi?xe$8ZjdfkriePSz*H)gNcx=pm-u&>ueCWAN2*G2Y=UQ|<5?1_VCgcARqlVq38 z*GT#|O`Fe()m7zc%TdSW3Jfi?H(1$8&tTqsqWP-hEQO*S$AM(`$%lV?_qpX>aeQ5} r$;*8^ADcAzCojFQ3XS5Q9$iN{>Ym^XEJ!Y`njxgN@xNA>r7!+ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_h3.png b/amor/data/pics/animated/eyes/eye_h3.png new file mode 100644 index 0000000000000000000000000000000000000000..e7e5edae89164b2a7e66ba87f3d54d873189d597 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aFM5rV@SoVw^I-DHW+ZY{_K_B`rF?j{ZjMA8EiTa7Rpt0vTN@V za`l>`ax%$4&*1Yq*6r64CRWKvOwL-nYRC6~Q65JavmdSLSg|;!d)kr6m=g!j>}C-xf+q;#f|XQ#g}duL{KN@wD^Pn-@FpUvGPZQ1{YH+)&O$M!*Cj#%S%#=CrP z%`Z)G%e@kK>}AT_qf$6MW@6IING@xr4JYD@<);T3K0RW}Y BXl(!h literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_h4.png b/amor/data/pics/animated/eyes/eye_h4.png new file mode 100644 index 0000000000000000000000000000000000000000..ba51a66661bcb369612aeda717f98cc1ceb6bf71 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aE_;oV@SoVw^JR38WcEO4{N{t>)(*R$kq9Az@&#x;{VU?I9b80 zS|P*GaCAcLfist?cTRCqzGTn0$a#s$Qy>2-1dsiDOIsn u+RC;2jmYO?Z{&~5l^;BHTY!P#0H^-7fT_RCd(Q*i$>8bg=d#Wzp$Pz8fnz%W literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_l.png b/amor/data/pics/animated/eyes/eye_l.png new file mode 100644 index 0000000000000000000000000000000000000000..4451596cd8d657affd17818eaad98f3350cc2f65 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aEhmkV@SoVw^I-D9#G(LZJb*2pR+)%IwPlNWvD%S)q_|ckvI<# z6|SZOl5*xDThBEWpWCBsTlitdl%QE%-kS4U75MJ?#)vjrEy;bSvhI;W`>L>(fAe(t zKE7*O&XBfkyU2qHb{B(KUI{2IihBP#N1N%@gun#G!X5TbD|+v_>Asp!X!X`_pTyrm~;2)CSb4~NnM zSXfwC{4<g)B|ndB&nBFys~@Atbl%Cbbp7{1~% z#;`2QQEr~+7)22pn={5xDK#qa7)4QF9LJha9LHD`g^{b2GQI!|nm7-R|oZ{tQc8^pXau5YTnqByQWbz&RhEOp*kvsxtnDP1B$dLi>h72yB|hxcaNA!X!y> zGywpBAP6AKGN|kNrF$tQgkh-7g<%L%N@&}5lv~#|WLXA55WGJN4u=D-Rx7Q3yta2#hmM3N)}_;fn;0w|@xIq%Fk z=O3A8B}p;}@MA2H@B6gh@5#39$-mIHZQAembIigOOvb>AAft_#k2kGWhf(~jS)S+i!%`d9h|nlu8Y>@Ik) P00000NkvXXu0mjfV2|#5 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_m3.png b/amor/data/pics/animated/eyes/eye_m3.png new file mode 100644 index 0000000000000000000000000000000000000000..18ce9255db0d235a692988fb38ac8ff5fe3e3d56 GIT binary patch literal 548 zcmV+<0^9wGP))98M`ljAtEx6}ne0LB2m*X+xNX~Lng+u#KuQUv6qHgBLZEG1_`W|j_I)31+d>F2 z3YAh~7zQ*=1KYM=7ZJzt)6J`@8qb__oKB~)>G^zy5MmTsRn?P-pArjcoyW3FkMG@Cuvog@jlu1jTE5)sjSKBvuQLoW*;qOqy2>r@m4 z8HVvk=M2N3q9{n$_4l4fmSy0ak5+!QS4s&X1gfeUZLO;6X$9ZcaL$os+3PC^!;lzb zB&8hP06bj27G#zu(G^MWVNGV0Yw^>q3VvJE3hM#l6^E~8vj<#)ayWPlJ&6z+3t|2M0000@%pz@}-KBngLMAOKcX_4WW? z?-F*qohYTmIVV|`$+9e>loGA=mZP;6rIakoB3YIR08vWGe!u_x3i3RsF@^x>oZH?( z+qPSGZQIgXyTt*}7{ffzKc7Gx$5Pj|%=0V&WL;P3`(DyC-Ez`2mA>y~T~`4h^E^vk z*AmC^+XmIYOd$vYo=zt@91a3Ns;ZJ82!5>%!;r`0QMA_bd_LuRy-FB{%Kssr=Xu^c Y-@%v>bRGi)NdN!<07*qoM6N<$f-*+ABme*a literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_m5.png b/amor/data/pics/animated/eyes/eye_m5.png new file mode 100644 index 0000000000000000000000000000000000000000..d4cb7efd855eabc0d63526b30a18f5b3e64d3740 GIT binary patch literal 326 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@R_HJV@SoVx0h|Z+6@F)KRh>Elsap{1H(Pd+dW>YzA56$Pmq`$5ZxYoS8<^xf|zl|4&P-d%Ne+!DNPG63IP#muywb)@>CyQSJZO;?ntC8TU{3 zf;k%3Y+bT-S-*J1wAMY}x2)5)J@0(HFyMOWl~UQc&ppq7zOZZElfBC;=f#WvsFK#{ zVls4-NPaNKdERpYCkKv3ozoBIG#j!Rx=l&#>=(bWjhA7;l%^>{-)j#?acAqUdktiJ zt&G2EK573M10Lqk&{hGaWtmR5w{bFjsr4_7RrU>j^Sf_ZrqDkrpbP&WGY>3jJZidq S`*NU<89ZJ6T-G@yGywp^%7?}P literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_m6.png b/amor/data/pics/animated/eyes/eye_m6.png new file mode 100644 index 0000000000000000000000000000000000000000..0e74fa16e71816436dbd0a937026aa87ed7e9ffd GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u*TEHF{I+w+e;gHk0=PZT&(Z#3iF%e=)!N}-~Z|^{jg8}dMV?DDCJ`(KHFT0iZx%n-QnEKtzyRu z3+AaaD6(9OS~BGhH%tD4?|m~jeos4ha?a$v=4rzopr05;`P@c;k- literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_m7.png b/amor/data/pics/animated/eyes/eye_m7.png new file mode 100644 index 0000000000000000000000000000000000000000..c5d0816789b9246f1fb05ea62629470ce6dfc6c2 GIT binary patch literal 166 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6(9P4uF{I+w+lw1{4;b(;ALO4P7?Q#9HolsJ|Dlt$h4qTF@%~K= zj+0dW-ZkcZw>Q6>SwJx4>WbHM`699l&oL?(?+u!?WFvp>dLB2AjjB076B#^R{an^L HB{Ts5^|my6 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_s1.png b/amor/data/pics/animated/eyes/eye_s1.png new file mode 100644 index 0000000000000000000000000000000000000000..c0bf04723d875859a2bf2a94cfa372e58f5c2d45 GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aIdF}V@SoVw^JSYS`0W`7k+emJJUiWeNlRnS=N;;(;8jXXYT8D z`>Agd%C#ZFhfV+ct22&A3OlBBobgP{GksW;!@%Iea;ArYLFrPgt0wFBs=KV}amROd zDNiYWR~DPS*K=NlOa^b?tPfU~K3))#xw=zEX_4Hz-!g?uZWce-%IMO=KdVu>w`ro9 zPG27Ls;b>p8!RTd3M4+6@lSA9-QsI2zFJ)>wu)SSWBdE6(*1>ETU7GZXQp~D?mL>a c@rS%!`8Ka6>%}{*fF5D+boFyt=akR{0Lt)i*8l(j literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_s2.png b/amor/data/pics/animated/eyes/eye_s2.png new file mode 100644 index 0000000000000000000000000000000000000000..1011e68dda327f72c6d86bf4c346b833a4f6832a GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aJ{FCV@SoVw^JSYS`~O)GS{=DzglP!Y#AIo^M`1TCbv&r`r?V_ zPP>$NXnuL$bb7BvZDwm>Q%lF0b5Ys)E%O~+j8E?V9Cz$-sL^ME5HCjVnl{Gr;B%E6 zd29EweKa_bb;YSdvchhQ#8yl3=9xzqzqVU%P*5(omyMy}>#|^p6_Vjj5fX!?rk-OZ+gI z8no=ez2Dga{LE{Qg>vXOuXFA$41J!|(NR_M|GYX+*Sn_c3>_8s(zw~y_NXiB^kg!G z{*AKTWN?DX;$oLz9cOH=iPY9OHrwTsOS|6I&A$5gc(lMzsbxVcLtZgItaNp*O!Zv> PbUlNotDnm{r-UW|*@S5g literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_s4.png b/amor/data/pics/animated/eyes/eye_s4.png new file mode 100644 index 0000000000000000000000000000000000000000..dd406ad539808a5be3c5e1074d73d17eefb89d35 GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aFeHtV@SoVw^JSYjw*1t9Mpa}(_%{cA>)golmEGKCkfB4NxQtv zNPn^x$A|ZaPVcs;-Ehdl(a9w(eeG89L+2G1&3tnAm$^hC2O~qn%=Z1urZkDY;9-8h zY|dwaJ5kja3!$ RsubvY22WQ%mvv4FO#l;_ZEgSn literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_u.png b/amor/data/pics/animated/eyes/eye_u.png new file mode 100644 index 0000000000000000000000000000000000000000..bb10be3e08488fe541f89b13dfdb03d499c6ab70 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u*K8GF{I+w+o=b685B8Kj!xV1pKF8KyHpjoz@6;#=PutQEY!S& zg@L2(8FSjS*uu3_^OorI&2nBkrO-TUS-nKZB+k}l}I_-gf6t51Kd=Wcjq!&fZ+rb&PIgC`vK+kkGc>wRlc USP*~gK9J4e>FVdQ&MBb@0Q;m^y8r+H literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_z1.png b/amor/data/pics/animated/eyes/eye_z1.png new file mode 100644 index 0000000000000000000000000000000000000000..2e6f459e6a76b16c3a86771df97c8cea7fb4de05 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aHFS-V@SoVyVC>t8WcF%j%vUB>)(*RNPTOn~&aH-j zbUm*xf4EvO*+D0&yWeMqn6jjL!-3baJKbdztBfXUZ{?g1 PbUcHntDnm{r-UW|_MK@% literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_z2.png b/amor/data/pics/animated/eyes/eye_z2.png new file mode 100644 index 0000000000000000000000000000000000000000..88b705c8491376a0bc7e6ac82d55e06d4540d882 GIT binary patch literal 231 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u-((eF{I+w+pwL22NZa^HwnG5XFT&HL`2hLgMoXIx~a&I2_Kjb zIWC%#w0G|uW4H5+-gAOp9lH|M-l{O`j`pK3X$dWNgrD!SZC)O?&`6+HfRW)FXU3B? z9hr=2WzpNGG^qY}5!RDEx?OOI(S^7jD|XcXW!0{8PORok@j!-pd+m)T^*4BZ0y>Go M)78&qol`;+07pSoB>(^b literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_z3.png b/amor/data/pics/animated/eyes/eye_z3.png new file mode 100644 index 0000000000000000000000000000000000000000..578f05ce683eb480489b3be3fdf6a8fa5fff0867 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aIL3{V@SoVyVD%`8Wea~G~=88?`OCd;_qwH=8%{zs3(_mV5D7&uS=AjAng}j-p1{dvtlmCH+zHIUK|Iy!V>j?eCC&XmY1nkcP~M1G{I0RQ&98 ziq`H@l8oT*=vey5kS$_~I$y->s`ra3&h6xVRM@aJko#fjgW8PDE3absl#=+*zn3XY z_$HFW%-~RSMua`9ccOq;yF|mxcz=E|_9zxX6Zc>KFQgW)4}D$wVAtF=(Qm%Y4f)=` hTj8^rPS+w0y_da4wS|$j6+p)^c)I$ztaD0e0su2^Sn~h? literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/eyes/eye_z5.png b/amor/data/pics/animated/eyes/eye_z5.png new file mode 100644 index 0000000000000000000000000000000000000000..592c9e001e268898da944f4ec8274339dd461fc3 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6Fw4`$F{I+w+o^_p42m2qPajSG@t^yfe|fLyMV4z#+GSqKlX-FVdQ&MBb@0EGxfH2?qr literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/ghost/Makefile.am b/amor/data/pics/animated/ghost/Makefile.am new file mode 100644 index 0000000..122495f --- /dev/null +++ b/amor/data/pics/animated/ghost/Makefile.am @@ -0,0 +1,19 @@ +# Add all your pic files here +amor_DATA = ghost_1.png \ + ghost_2.png \ + ghost_e.png \ + ghost_m1.png \ + ghost_m2.png \ + ghost_m3.png \ + ghost_m4.png \ + ghost_m5.png \ + ghost_m6.png \ + ghost_m7.png \ + ghost_z1.png \ + ghost_z2.png \ + ghost_z3.png \ + ghost_z4.png \ + ghost_z5.png + +# This is where it will all be installed +amordir = $(kde_datadir)/amor/pics/animated/ghost diff --git a/amor/data/pics/animated/ghost/ghost_1.png b/amor/data/pics/animated/ghost/ghost_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7042e08428bedf89f9d855eb12fc823818d4fcd6 GIT binary patch literal 425 zcmV;a0apHrP)NU;qI#`^J=1<{s^_Fl%)J60H8!>2mL#(wf<}x##nGf z?QRgwiPm|ZeTuVw5#5OTS4B(B>kG+rTo&OpP2$~z4J!sB3cwib(mX=&dulmX1Au7U z16rfH+s2eK4j`={thH^8s3jf7pi{@Tefp@P#t=0trFdDEq!Pv_hK_Yzq1QZ6Wv|ye zTKSIwkgA}Y`F&tl6+B)8B_Og2h@AyQlszM2?-7wxMKc4wro(n?tv#KfS7(W+2>k$$ z7GbQdhQ6@l9qXx1IMxK-wvXF=iiOcLSU-}o1v|XcH*f7tR$*& z?2Te+A2SzY*`W#-e>!4h*tLqb>oJ0jl!0u^`J Y;zMmBCW)Q71+;|0)78&qol`;+0F(ql-~a#s literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/ghost/ghost_m1.png b/amor/data/pics/animated/ghost/ghost_m1.png new file mode 100644 index 0000000000000000000000000000000000000000..d06461b034dc27b9ca0dced97996e0b54b678024 GIT binary patch literal 394 zcmV;50d@X~P)o`yij}3=d?m)~f>n@W+pVneR!h{kjat!ptBdmy4Ot^;T*LGfN1} z+=N7w^BfYfF%yxrLm^_+{$1qhlO;29qFjE9w3m>$>@fr|rp!L_AF`&}yXVj^k)b?6qgfO{BguIu}M?aE2q8gu^gopXT1MY$U7%w5BS}<4*nvt@v^PiS+q^ zQUtBhyDH;Dq?E+I?`4gsBph1PSsmN z{}_SXDyRmt4;)p6kLN&$L?5UCn5MZYi7w>4Hq)$07*qoM6N<$g6_4hKmY&$ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/ghost/ghost_m2.png b/amor/data/pics/animated/ghost/ghost_m2.png new file mode 100644 index 0000000000000000000000000000000000000000..48ee585c645ca7f7177cb6f77090a26d84348098 GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@VBRnV@SoVw_%P#%?dm!edjL;|LcAl|5o##_TC6~U4@_t&F^~H z15c)H=G6N7;NV@ynfE!ymn< zns%q*XJLunoSgzX#}{(8C!RQ$X1}3EWe>|5*NG1|s_&l?mL#WeV4c1MbEtIe0%ML1 zN2h31N~9`J@u?3jSUz`UC)2`%<))2hau=#TZA&=A%p|e&Yek}_kzTFA) rp09e^DO9mP{%qaprGa;(A2CaQv;Out`~*8N7#KWV{an^LB{Ts5<>QmB literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/ghost/ghost_m3.png b/amor/data/pics/animated/ghost/ghost_m3.png new file mode 100644 index 0000000000000000000000000000000000000000..9c54126ab0d0908d60633f1e00bf400309a6da67 GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@P?<0V@SoVx6^!unhiKw55C-Z<7Rd1z18dHeP1+tTkvan$ICji z%qL5#A7hYj@wfs6A(1kF&Yiopo?F6k#c1gI!&y1l?kOGohMyD9%n=ICBEQQqj8AanfD_Qa1OZ&*JYv#%27_}aLc zH6g5H&lSes|DsF|CGME~s<)#l4)h~~r>mdKI;Vst E0PP=wrT_o{ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/ghost/ghost_m4.png b/amor/data/pics/animated/ghost/ghost_m4.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc2fa2f1371be390efccc2af1cfba77661fde06 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@Q|mAV@SoVx6>T?4lD4myj^wvk=wt}U+bT3;lC|+%Z01y+QMa) zEfXgw`P?{a7U;s(d@!M)Y|BU6s<-8t0%{D3J0%&eRjkhuWZ2KRpqq1Yg}(6aBh@oB za(5Yq&fYE&u(S z$A0}pIN|-;)m}1Ry(gdO%AYpv+kWx&OOLTccgm|y5$!Kb(J#s@5%p(Fk_lHU w`F-L~lfa=he+X0Jf7D+p^3>e0(8(s{<_v5H?)-gx;r9LB zqD|{wvhb~%Ef`&GzG=OW^4XB>SE8JsFOzgrJ8(6&J?{5|#&5hE!Z*yG^Ev#k`}=@X ipFj0?h+o-bsGq9j-e2}_!VaL@7(8A5T-G@yGywoyXJ3~9 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/ghost/ghost_m7.png b/amor/data/pics/animated/ghost/ghost_m7.png new file mode 100644 index 0000000000000000000000000000000000000000..5664128c42d636c39cde2ca3b0050a9bf789bb70 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u))*CF{I+w+e-&|4=ac;2e`kQ6xY}o(dc+4?%h%kUy)fJU#|S} zlrix5uWTnE2m=4}c2`ea;;p%R%{4BD8Bf=4&E4rdNiEZJS_%VOf~VZMB2TrKPanN+ zb(^?x-KV8$eMi&v|4zA|`Ka)!$NSpt(@Uz%PET(u_{kr?@#HRtB5E8{0^yLuMr O76wmOKbLh*2~7Z*X;-=c literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/ghost/ghost_z1.png b/amor/data/pics/animated/ghost/ghost_z1.png new file mode 100644 index 0000000000000000000000000000000000000000..a092d043deea513cc1f3dcf6f63697efb26e574c GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6FwN7&F{I+w+shk84=8Z31Wca3F``9O=7gxklRMoehEqj_Rq<{>Sf~I1 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/ghost/ghost_z3.png b/amor/data/pics/animated/ghost/ghost_z3.png new file mode 100644 index 0000000000000000000000000000000000000000..48fcccb44eb1f91a7e3263a77603e692d98d27bc GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@QkO6V@SoVx6@AZHX8`Iu)9Rw@esbv*ES*7twl#X;2i|5m60-m<9f7fK_|~bh6S(7{8cycFRHYQY0aD2 rdqZH^9`=&uZFV1yX^3#O=2|eVX_&gapx(j^=r0COS3j3^P6Gv+Z9^oujYKO(CRd6 z?ffox?{`8@kEZ(nWlpPJx%+JDVA^wQ-Rgh)weNSk=3Gl$($On*KsCv8OSpG*%YjRZ z`!5{*GfnBSPHNult*Wca^O{abeASJ&V~%~-a$0O})b%^(SzS40Hb%T_ZBZ(Vv)lKu zgS#(JUu5HI=81v}H{ZD9sU4}nZv1wZsHo`k$D9QczaQ?G+j<}9Lk3S*KbLh*2~7Y* CMSf%e literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/ghost/ghost_z5.png b/amor/data/pics/animated/ghost/ghost_z5.png new file mode 100644 index 0000000000000000000000000000000000000000..af66260f3a104e249c34cc0f1dc90ec7be2e1107 GIT binary patch literal 378 zcmV-=0fqjFP)^1mqPZ%TO|k~6tVBR4u}X4PsxdBU}gB!gdm<--pGOw0t`c+J-5m1 z2FC*tfg$-lk_iXr=D>?8ME3RqNFU4g|391h2%8=6ZX ztvO~+bL-BTk+&uvh8}LWJM8zn=$ZNc=mjtRKto_+$s%CNeAH%U`YDZk!?oS>k3T++ Y2V3zs3rW$AHUIzs07*qoM6N<$g0^U$9RL6T literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/Makefile.am b/amor/data/pics/animated/neko/Makefile.am new file mode 100644 index 0000000..1d97869 --- /dev/null +++ b/amor/data/pics/animated/neko/Makefile.am @@ -0,0 +1,31 @@ +# Add all your pic files here +amor_DATA = claw1.png \ + claw2.png \ + jump1.png \ + jump2.png \ + jump3.png \ + jump4.png \ + jumpl1.png \ + jumpl2.png \ + jumpl3.png \ + jumpl4.png \ + lick2.png \ + lick.png \ + run1.png \ + run2.png \ + run3.png \ + run4.png \ + scratch1.png \ + scratch2.png \ + scratch3.png \ + scratch4.png \ + sitleft.png \ + sit.png \ + sleep1.png \ + sleep2.png \ + surprise.png \ + tail.png \ + yawn.png + +# This is where it will all be installed +amordir = $(kde_datadir)/amor/pics/animated/neko diff --git a/amor/data/pics/animated/neko/claw1.png b/amor/data/pics/animated/neko/claw1.png new file mode 100644 index 0000000000000000000000000000000000000000..3fd18231a45b04f4606c33842183b0f4d73c4068 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@VTdpV@SoVyVGy;wJ7koNIv@i|I?epiwawv^aT!^eO$RPT_XC( z6f?eQ>LMQwoz$0hSkjmMkad3-i%W}aN7sqC=UfId?TbHdsXSB1I`u7ccgWX`OnHKh zp#^I>*0f~1q@){`+o>=(C}}#mRjy_zyXVbn`S4m*SnYeN9^@7EFOd8vZbXJO{%6^>_*JsQ66^ zmT{W(_@CeFQ~U)d38y}vqxXO_<4p)}A6LfQqL_Ov+G>igZ*Gj=V9uwsMD`K$N43(x UW&dAK0(zOj)78&qol`;+008-h8~^|S literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/claw2.png b/amor/data/pics/animated/neko/claw2.png new file mode 100644 index 0000000000000000000000000000000000000000..47fd671d6d9536e2ba5e4007593e2c528454c2f0 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@R6sBV@SoVr{Ru#%?3Q(tN;B!eJ{~9sYytE$>d{7gs!l zd!KBcm+s|~vfpUV_4%qBx;HNI(vteRDRIi$`zi%rWqOn8ns&5@2{)Nk z_Wr#_14M-562F{~0nliIcEW^3M4&7LccEG39W|5Pf(~n6p55|G?*qJAp-r?U(WDfw z-CD1-ea8W=nB0U4y8^1oQI&)(psv+N1bm&mBn0NbnVyhs0_+KRdfb;LVPtot>;&13 zsih2e>faR*t%8hmIrN%idvY z$5IkV2+;zW z^~!XtreH$(4@sE_4Dt>Q96<39(&AVLc2QH_mO?%~vjCRW5tRnGYZ9iAuqL3@giMUz zaMV|8w95BvaOnWGTnFMe%@~o4XMwvWp|=dF1hV27BCr$uY(gscxb5}t&VkNB`{c_K zL{&up3th>S@?fP0rd6ycHA}GLV2=Zj07vhHk1g(s;|tpggJiON*>wN_002ovPDHLk FV1no3n*jg- literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/jump3.png b/amor/data/pics/animated/neko/jump3.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9d854881dbd3c82583596687e64251ce17d583 GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$%E10%Dii(^Q|t+(Ocd`A^HQuh3xTRHnuL>EWMZ!^`GhdRzp+3zy{ zPvnFPPhG$B@Ne3D{*0MjgS$&i!{efiroDO%#cRL37Q4U@wVu6(>78ss^O4p$jQjc> zCUI;NX3Pd<-sS5AE>}OBzBf8%O`g>}?==TgLz6zQ_?K-|6&G=p*WHzi zNsZ;|o(-jP9ABq=V>_{Gdf-#m)`M~{COg;ZSx@m2t4%Qlh7p6OtDnm{r-UW|GSZF- literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/jump4.png b/amor/data/pics/animated/neko/jump4.png new file mode 100644 index 0000000000000000000000000000000000000000..56820c8db9d21a8a48123497a857de3bda9719f5 GIT binary patch literal 341 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@T;ebV@SoVx6@CHH7oGANcR2zfBLd-rfuel#hrI==!njkz1-s1 zUEW4hpLO|+6`hmvYZ(?xyIHrS2bKzd$Tj&a81O;3@zm`&6*M)!hF+NC=zrEGFhIi5aYNse|_6ZJ*ER#4(SS!{sY_?s(_M_>2$BHw> z+7-FnA5N!~3rf7+-MZvamr`W;jPoo#+Y-3eAs zB2V>0;3Rj^3o1u$JU?pvUNpzHV?khekOfy(~x5&aMu_u@Dh1;HmN9$6Yt#=;Z z$(FFQ;F#BuT?=2{>k>?NylkTl;wwhe=z&jJ`Ll3Vh91 zUh0a?&i603nsw;Rmybq;LV{AV2K>S93=wO8nKH-;bi6a zlOSl{Sprifa74V7M-e9_B_JszO>ngd8Cl#h!Fd zzBu6?69Op7*mW!BZhAM*|L`EfN!ly2fYXC!aSxCq6ZRc>JL~nYfNMX}xJZO98Br6e z<94(DX%jTf0|N{iqzY~hqDnydB&-$(dL0*;#We1ZyM5+;*>kpYJ{3hA#SC&S>I@0Dmf2?A{o%m9NJ);VBH?Of2BXG1 zCKrY+%l59mHNRAWX+hbBinn{Ll&pj2b~{%jtIhip<9k?>JFLoXa?9nD%Wpn-+aSnr z>9)qlcX{^jJDya|y?OYl*Fi&GV}^G2rI8mSYo{<@SaYFfpYYk6yU$FSa=rcj0%3)k n=pd_$d>6i@KZ!g)={4(ttBsCaa~GBX!+^ol)z4*}Q$iB}@gtFe literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/lick.png b/amor/data/pics/animated/neko/lick.png new file mode 100644 index 0000000000000000000000000000000000000000..91460f23c4581e630b1d4d91d206bf943af12c22 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@Uy3jV@SoVw_ykQS`9cBcmMx?x|aQZqGLhBj>#%=K4uwSrv-j0 z$^WU>HT2>*VWzOyhuM<(CjWti#i9(xBKDb_f99m?G5oSwzUX?(^U5uZ29tIl)mA7t z|7KPoLlLuBw9ATHTduS2QjIjwWLW(q&UzKY0`91i^Z#!?5}ar->q-KuvDbdLGF6BLnOT;4M!x{X>(d3Q+VcLKf7;OXk;vd$@?2>^zBi30!t literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/lick2.png b/amor/data/pics/animated/neko/lick2.png new file mode 100644 index 0000000000000000000000000000000000000000..5500c30288069ee679b8ebf81c36d85e5a63669a GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@Uy3jV@SoVw_&&Wjw*0Sr~Utb+E#y-gtO%KxyvWM@r-Sp_Nuh@ zqWFw>4L5OvhAR(ubIoIY_rgKa<~F0xmka+SgM1spbd|JT+^S#mxkpPkUg6fhooY8( z4%EF`*wi@PDroX@jV9B`K1aK!am%+b5DkGx;3Jl@gwBvV@SoVw_z8B4l8gd$Nm35ee?94g<>Ls+ou;@Z~t~=Nn?kS z{~yZBR_kDi5wyBG7T>9Ra##_C7o_Wr; tc&}cYw1dXX?P85{uYXaW_oH$T!<(m@M7C^Qss;=S22WQ%mvv4FO#mlGkURhY literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/run2.png b/amor/data/pics/animated/neko/run2.png new file mode 100644 index 0000000000000000000000000000000000000000..327763bba018a0e0a7724658ba667b78a12e1694 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@RO&DV@SoVw_&IG4lD3%*8cZ@`d;s7*C{O*8n-b|t6J%mGbg;U z*S_J*=2_1hnHf|Zg~YlF9?L1q?^m_gf6k@gsZ*q+vYqdalAfZlOUcRCB4>maHvIWG z$@Zz6Ncx>$J;zsYyzaQxyCQa~LY+l4n^0Es%BNmx&-a@7i25y#{?cYMwW&p0s`SD< zZDA?fGnMamH@Tiz_T&J6LiEJNtUp*2i~mhAKe)-s*m+IN)fsaVX1o^g+Qh6knz|Zcw*ynd;X^{S+Xop&hoj>oShQwvV@SoVw_&G+m=!sUeg6NS{&H!QcctdH!icmziYMDnT)HJ{ z&nL6$@NUyWrWrpw`4d)}`7!Pn^%J_OctCE0HK8(YGuQ3pT}Cfe zINgta$mdu+KkENd{%4J$u_tewNL+6^EB=|~#DCIulb%RU|1F+9$^D35uFJy%vuqmA u%nOV-d`X+Vm!VpH?-Fr=z`(^ubxVXmI z@c7)j{496oHJ|}1*)GYDIM>SX<%_mGhAAzdt~Fo^z}#9nsslp4BT}qcwIRAuHLHs0i5Nl z{I(vrmDBl7sGVsQ$0p;3g9)}p(x2q@UVLVld00hTqp)rbcSPyJ?M9W0b}>~f=dD_n zR?RSDS%QaLsCoA~@ywLm_kVdWO_Ivm8(ty(Y8CHKzr4&?$AbK5X>C64S4=ji4Sqd5 d+AV(d2SY>3rU#4Sgh8HX@O1TaS?83{1ORVMg@*tD literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/scratch1.png b/amor/data/pics/animated/neko/scratch1.png new file mode 100644 index 0000000000000000000000000000000000000000..295655ad3c995bba23d4d3dbc13667154c729cbb GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@VlprV@SoVw_%QahZT4ZulWDJsO-iKBbFm+7h*eFLRRKJvegTe~DWM4fVmOh7 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/scratch2.png b/amor/data/pics/animated/neko/scratch2.png new file mode 100644 index 0000000000000000000000000000000000000000..b78a4da9fe18d486037ec128a59cefc5cecf2acd GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@Q$a8V@SoVw^I#;m<>6Y{d@lZPYqIKHDqJFKGSGtqie$-8}qy? zPRoTnm+n~A=jgHZuqMaL5(`Gflu!D1BwBn*ZZrxg{fz%EETFyf+xol4O~H?anU?QS zwoB;VnpDc=-;);FRoxo-v)_6`q|<5_1EBz}IZt}sHvE=tc&BiQE8^weJmCi?82%{C z$@7vs$h1R$@!XxEZIMCWCYUbnVBg3b(ZW=5c$Mnqk1rR#+_f;}so%X_zxSsHIq4mE zQT~vx#I}BMn{Ug}ssrl|oLs_`9F&r8|KZ0g$uIXmOW*y$u=3!7f4liFlmPw7;OXk; Jvd$@?2>|mGgAV`z literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/scratch3.png b/amor/data/pics/animated/neko/scratch3.png new file mode 100644 index 0000000000000000000000000000000000000000..9beb423869044c8e4ffd1f2c9f03594eedd7b2d4 GIT binary patch literal 331 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@U^FlV@SoVw_%QahZT4ZulWCeQ+dS2MOqGX(k}D$9$A{3WX&@D z+PsQK)(4Ao7uPe-NU?aR!IH;Spvsumpv|!)G@X-2MI|&|c!7YzNj8UEOW#KRPrLnI z3RLyneXeeCs()eVQWyU>cSAn*9SN;%Veo8IuXR1dd|!}*SGu9(cet~M>sN)Mw_z<3 ziykb#k+Jy|^JZNOt-fjOVv?sq*lm=yS$EsqQA(KF8P_oBw?oSPv(+=cUgqws(SB8) zQ~GhPslh6i316%8CCXKP?GX!d5BS>d92)Ys-KAhg%bP0l+XkKle2+Q literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/scratch4.png b/amor/data/pics/animated/neko/scratch4.png new file mode 100644 index 0000000000000000000000000000000000000000..2b19c63bc87ff09bf0318b85564c8a1f1c8bb7e9 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@SdlOV@SoVx1o-FEQ%bnh5r9f{kBQ%7$eIO%aa#fqPfUw9&Y@i$%0)xyYjR2TWU62*ofOdR}s$J6*^?UN)p)VvhTt6LrQ9CVa_Pa5!>% z+r$44O9ET(FkEucxM$!ZG}mLxEx&E$2lk17uB+fs+>~Sd;MJYYEggBgu3fEQZ!nuw z%Os}gZR-10Z0nsnFFDq%Xr81pC1t9ea_+U%Kp6@CYLOdUN{7?#Y)(u~|J2rd{Q4x> zaFrENzh0zY?K$!E&0ghSc7D{E#hS=;=x>Kjb^Z6X!e5y^{O2)O@!v55`jo-b L)z4*}Q$iB}zyyLG literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/sit.png b/amor/data/pics/animated/neko/sit.png new file mode 100644 index 0000000000000000000000000000000000000000..bee476c198b65e398c7734cea691ae50088b8ead GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@V2LmV@SoVx8ZO38WcFb%z6L+)R)t`G9OoF=YCwBTE#Atu=eja z$HkAVHp{W9EAbwQ(ifhgA#{Qzf4R~Fwhott%UcgP2HkV#$Y2QRJftzz`O@nmE{2wS z@)r;2{Z?ySeka|;aMRBD2@E%ir|=~81y9i_6DpYep(&kX!?Pmw%~KTmG7>E3lv%W- zeC=4-(Xwv}lP`Oq(E9ET)~?g%T0Oh>?qh`X+EWZh-=kO}b}Y?XE-3UZs8Wn&eacrm zh05SP)@#@kGwz;an%91x{Zg>Wl6(dMvp+El0#q~h@68n#JvjNL-2NYyKyNa5y85}S Ib4q9e0A)6P^Z)<= literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/sitleft.png b/amor/data/pics/animated/neko/sitleft.png new file mode 100644 index 0000000000000000000000000000000000000000..f711d48538be7e49e53217a8d966e1828907d814 GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@Q$a8V@SoVx8Z?&M-@1PH~)^``Tn%aT>ga~(^Ma4&pa%);(^!C zH>qt8ew|&#F4MraDVkq6LqmH4Tihn21hx-p3xk{_9ACUx%VNUdvbo^maYcdB6)Z}R zs^%|hoczs>>3`PwtVc;%_Yb(FRHU8guq~)))l%o2;aPEDFH76AOOt2zEm)F~a7%{0 zY2n;yOFt}|r`NcQx$Vefr8R69HwGVn5?wBsy*O0TA^N^-qvGAwdCLW(ekj>+&j~jw zmv2y=6J^t^WPjPxpUgH1|{7k>iU6UfU-XtBU59G^S}iU#2IRU-IfuS+n=5NgH}a)e7Fc zaaegsuYh64KZbj|*;~xEc9xxPUY=}kwN24ensHi7P_}AgN~xaG!HZ$(oyX#B?3?zS zZab}aA!qB}Yg>082>xB`H~YgqbIFs7J`_EemACF_?1^q}<|fewt-r5?rcBzt?zu9< zEw8VEziY!ksdl`3zKT0a>O;#NOUtC08im~fd=eRLF<%QG2fv?KAAY`ze{sj$*JqcV RTm(B(P+b$=`wl z8EP1wn(Tkkbi%3gg(e@}SZrqMG@d%oDO`8NkRd+2eEP4Ck*a|} P&oX$r`njxgN@xNADdmMJ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/surprise.png b/amor/data/pics/animated/neko/surprise.png new file mode 100644 index 0000000000000000000000000000000000000000..2d06199666319d656add09e965d2b3af1a0ba40b GIT binary patch literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$%E10%Dii(^Q|t+!#P`I-%QR%`$JKYj1vkd-YH#90d!)LB-)J>t3f z+P(|T`3F)2JG6x-v3pLMX7O~l=RH}*3k?5cR_!q632&GxD$^t;qM>~{l3`g+q(Wzx z^pEEE2?u8ibTI7AtH**{Eml$!s`8I6nsgT{ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/tail.png b/amor/data/pics/animated/neko/tail.png new file mode 100644 index 0000000000000000000000000000000000000000..e5b47a6fa2aedd8b8e7688a5bc59a517b76a4755 GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@S&%RV@SoVw_ykQjw*0$KJx#6>b;XGR&t9Mw5vYea>j#OWXaa^ zaT!rI^L-);Lcco9J9nCet&7#@!0nYhEsQgCJfb*^J+!LY8rT<1)%g-+t+H5eIs?Pk z{~c^)H?2AUtgdwvwvGPH$d>Rc?PLRYOys5;o(eunT=NtSc&BU6T*_ML!rWbaS5RQm z-Q;Oap0z7k=J7=cZHjI==|AzxR+*gQ<8^v= z4%rPcC!Lhu=9o;qd+?RO$B?R(3t!*SKK+RKqUC}oIu{Q&zu#Q^jrsVwMYpS%^PdAf O%i!ti=d#Wzp$PzSIezN^ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/neko/yawn.png b/amor/data/pics/animated/neko/yawn.png new file mode 100644 index 0000000000000000000000000000000000000000..b16cf5939cbfce00b7760925a954222cf02112fd GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@RO&DV@SoVx8aU_hZT4Zcl@un+}*<&Atf|9Yu1&RsKx_+27b|} zgzF`WEbLu-o4Pw#H_f(JyAWtHfiLdess?F=pjI#LM7D*S`UN&HJXyk}dr0g6%Z5o& z&uuSuY^p!t^5k{pa*pLX)-SyBWQyO4o6Z;Xs1El~c*>#lv^S)AUt470Uw3{t?Gu+8 zUa>D$kSu6x&^oc=Lxy~W+4P+d*xo_@Qv`WdfSr<908)%}c%IXAx5K9tRvcKdC^?`PMJp9no&*Uu?br&mzm f9Wd`l=^loN$E!bl2(>B&`kukl)z4*}Q$iB}Yh{eI literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/Makefile.am b/amor/data/pics/animated/pingu/Makefile.am new file mode 100644 index 0000000..a52245e --- /dev/null +++ b/amor/data/pics/animated/pingu/Makefile.am @@ -0,0 +1,104 @@ +# Add all your pic files here +amor_DATA = bash_l10.png \ + bash_l11.png \ + bash_l12.png \ + bash_l1.png \ + bash_l2.png \ + bash_l3.png \ + bash_l4.png \ + bash_l5.png \ + bash_l6.png \ + bash_l7.png \ + bash_l8.png \ + bash_l9.png \ + bash_r10.png \ + bash_r11.png \ + bash_r12.png \ + bash_r1.png \ + bash_r2.png \ + bash_r3.png \ + bash_r4.png \ + bash_r5.png \ + bash_r6.png \ + bash_r7.png \ + bash_r8.png \ + bash_r9.png \ + blocker1.png \ + blocker2.png \ + blocker3.png \ + blocker4.png \ + blocker5.png \ + blocker6.png \ + bomber10.png \ + bomber11.png \ + bomber12.png \ + bomber13.png \ + bomber14.png \ + bomber15.png \ + bomber16.png \ + bomber1.png \ + bomber2.png \ + bomber3.png \ + bomber4.png \ + bomber5.png \ + bomber6.png \ + bomber7.png \ + bomber8.png \ + bomber9.png \ + digger10.png \ + digger11.png \ + digger12.png \ + digger13.png \ + digger14.png \ + digger1.png \ + digger2.png \ + digger3.png \ + digger4.png \ + digger5.png \ + digger6.png \ + digger7.png \ + digger8.png \ + digger9.png \ + faller1.png \ + faller2.png \ + faller3.png \ + faller4.png \ + faller5.png \ + faller6.png \ + faller7.png \ + faller8.png \ + floater1.png \ + floater2.png \ + floater3.png \ + floater4.png \ + floater5.png \ + floater6.png \ + floater7.png \ + floater8.png \ + tumble1.png \ + tumble2.png \ + tumble3.png \ + tumble4.png \ + tumble5.png \ + tumble6.png \ + tumble7.png \ + tumble8.png \ + walk_l1.png \ + walk_l2.png \ + walk_l3.png \ + walk_l4.png \ + walk_l5.png \ + walk_l6.png \ + walk_l7.png \ + walk_l8.png \ + walk_r1.png \ + walk_r2.png \ + walk_r3.png \ + walk_r4.png \ + walk_r5.png \ + walk_r6.png \ + walk_r7.png \ + walk_r8.png + +# This is where it will all be installed +amordir = $(kde_datadir)/amor/pics/animated/pingu diff --git a/amor/data/pics/animated/pingu/bash_l1.png b/amor/data/pics/animated/pingu/bash_l1.png new file mode 100644 index 0000000000000000000000000000000000000000..3aecb509e92cb5fe51d0bd1e1e8a2cb179ef41d1 GIT binary patch literal 967 zcmV;&133JNP)adNJO-8Gj@u9yk!WapQ(YG4UUuA!-CMYBUR(p_OY9taJ!ExT-uUYz7*vv0o4d~fE>yaE2pUlK`@=${f`S(d7iaQ*Ak zH`HS|nM{(Zs^Eh>2Ja0rwQyr&V}JHUU0q$ovTVhwh7E_qCH)_{2eIfG8W;o;JLAP}fO^mKneY1bM_ z;2Y^;@+y(`nI7IfOPmK)Q(|>`0AQ?~7T;eYrhx-#??8)R;QASN0Pr*G#*f#Vc>a}e;gcIH8`TRc z5{Y1Ze4KF{fr=b=Fr<4M@hqc3W7u7>R?hcK!0-2yVHmcsq9|f=a?;Yi?JD4T-nMf9 zP*v3y&Q=6Mp%6_^Pw%;E48y2D0^xAD7Q!16Bcs%Z?0a>O%k|a`96)ej_ z6h%a%(K0>9aR~CQNF)*v1i^6{EbqYT>M8>O-QC^g1XwRTUKWBNROog}DwT2;0a=zI ziel-%v$L}T)7;!#_N`F~&Iq)%wUru)qA2kBd^L@zM+ww>3~+Y#Fl$mMbsdznlI^YinzNbo#Q zj;G?Do*qn1O`*NL9lEZA<2dAUIpp(ssHzHG*DW8PT6$XqhK7ciiHQjkLnoljf5UcV zD2f6A$SZlw&CNMVf!j8+Sh)4!%Xb{^IEZXE3tiWtY3rCtXYlyZgR&HGo(-6rn*dXO zKGQUBJ03`euM3py&qFvC!Ksh{-S~-xg$1lFzCq-O2eIfGoa=7Iy3Yg8w-m7Q7KY|V zHVu48o9KUgvg&|hNr0Z7rnN;c_AREdw6ucD58Qb1bt`Zu+D$yU;exN@)E0I+4>};j pwXjtk*dUNr0Mk?ib6&6N>lcSUvUHHlG{67=002ovPDHLkV1lB7yp#X{ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_l10.png b/amor/data/pics/animated/pingu/bash_l10.png new file mode 100644 index 0000000000000000000000000000000000000000..a47eefe51da044db0e3d21cb920decd55c896870 GIT binary patch literal 1014 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 UHqnk3X#fBK07*qoM6N<$f&w(2y#N3J literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_l3.png b/amor/data/pics/animated/pingu/bash_l3.png new file mode 100644 index 0000000000000000000000000000000000000000..47ec51021ea33d52b7c6e72aa6e03c202b20d19c GIT binary patch literal 797 zcmV+&1LFLNP)5^y58=x6CKeYL0RV%8gNR0>P*s)L1>kL$q>=#k=040{&pfmXV?%&h;CS(T1$l7= zU~%hvP16tz1|iEbEiW&#V_CsSBx0>!;6#v8snnsB42Q$E*OIw$LQT^E0R8>_&~+U| zzk4Z)f<~i(YPAYo*ICznV6Qm<^!4=}%9qP!Xqtw4y^gNCjx@kIKkzfg*n#;U6@I_Jtrk3gGm=it_gLu42wG9O=Y(!*9RbMYa!0$R zX>_b@XV11ZAW0H+qSK8Im|Fol4Z|>4*G1^mLwX7zlgXf`BWN{-f5t$oF*sr%z<021 zc)Q9%M*z*rOY*!+W5diMcv8Z`t7rK1rHT1D!t{G!mvKh`5{blt8&gXFlz&R7JU}Bl z2C=dLv$+aEFQX}}0swp!4s0}V_Yp9avj;*^6cmd^W?KUk8i4rO2ij%u%zpzbuERSY z0A;-Rk@o^y0&b5FAi#H8dp#LQCX+A>gZJ})m(B|q*<#?AN5O7< bY}w~0d15+B+T+0K00000NkvXXu0mjfDb8L# literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_l4.png b/amor/data/pics/animated/pingu/bash_l4.png new file mode 100644 index 0000000000000000000000000000000000000000..5904d76c672af63a457b7ca39d2f06d4ee08ca56 GIT binary patch literal 638 zcmV-^0)hRBP);w`Vz&v z*eY>RBN>8NkrY!1LNI3QB+=z?$<)FH0YIhI@b9`+2|L_kDPQi@1m>hcM10RaL3`JDbf4t^vrh zOqON!w0XT=XqqNCmP1ulVvKb%9*sjZ&#p-vd}OLO!Q0)x~8LKG#aIe6(U|6y4AC*maYH{I}ajU2*WU7SEO7~ zV3-Q70RVtyS;AB-m`ELP8g_L=!cVla|qqWO%IO%Gfc-f-VJ@4S0wE^ve+Oc}yBNrquiu~JJhP>(LQ?vGnMyfwm!qZ_11c~a2`T90<^-| zd$fu9=YM#YH4V93PH?0PXk(V(ISB-30rRW1SgQjEUQ}MS@%jtl-cArZ-+pxEg+vj_ zWD?nI*7@#GFV0ao0NYM*ygPJVCs~$>F*Y=zU8t%`BNICD6B{4S;NjB%N~IEfK40G+*CQURYd>*%&dL=QWe7K4c5(g!UVTU=D=E6900000 LNkvXXu0mjfs7N56 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_l6.png b/amor/data/pics/animated/pingu/bash_l6.png new file mode 100644 index 0000000000000000000000000000000000000000..6d328ee88c11e9125c0ccc0956c27841ae2f8e73 GIT binary patch literal 745 zcmVA6rI;cbL@ivc zaQ%~BYi;xE)q4)LwKa*o%hkB_!7az{e(&?%`@Z)M*t0$R&&Glr7D5o`8~`AtM6p<8 zZJ`uGkfJEWIp6kZnnrB_&~=?El?siFjImdG_b9#S+ z=x&srn2fXo3YE)cqL~s6UOBi8z%)(TH4(19G{`%20erp!w>E{2kDq~A2P-G~(RJh$ zu+|Un-53rJPGZ5`2LMo270F~0@pv4CLV<+>@a}aJ>xsdO_9DW*0nsI(<^ryV@1OQ# z^}{kAOcQR8@urt*nuc^b?W;?6JaFqg=~pYQ6NC^%aQ#j;koT(18l^u;?g_wWjxzkHoEO`{t(Z~a3;2w{ta z%L@3w?0sy^KSk-)GgPZpJid1cQy0f}tfSpaSr?%!o+b0pISkaxF!Uere0&3}Ftm;Y z;0=s}Mo+*jzCif)H)zuRCoh>yB9qB5#{|p=L&QeBFx@`5+N%K70mB3UtW|~~Kdocx zEik*}`ESu<$4}zJ`vtaVV z>xN};0MK$IW{8B`JRlM-|t7QR%4bs006OA%r+r-8GJV#uzs{(O356F@T$1x=q$L8S;%i5uD-;UO#<1CJIwGKHnll2e zR?FFC)1;7U5c7+4^s6Y!w>u;>i~u?oOM~ lG!3e%A{L7wolbYf*aQQa|2=~*LkIu>002ovPDHLkV1iC1EXM!< literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_l8.png b/amor/data/pics/animated/pingu/bash_l8.png new file mode 100644 index 0000000000000000000000000000000000000000..6406967b5c91f75531229afb60cb049b231b35f0 GIT binary patch literal 862 zcmV-k1EKthP)cJj*C_NO4cv9mfxwPpyv?U^x6`|&0 zBcv(j_iSQ(JtY|3jmd6$^T8Z;-pTS{kU!p_xXIp7z1Mr=jZ1wK26g&qv-W~rZS)?3gYoNR8_^`;9%QS zi=s#X;BvXplPjnuX6UK=1TL2g*=!b@o12FJilRuGrU3wEXJ@SwsU906dSj=*&p3MZ za)j7vh$!=g{_H(za=~br=0H6*MmFg==#t^G@(ukbKLJ)lZJc1QKL(xI!PE>q?-+8m zKHWW5R#p&+L^x9buC^7bo&0EiI|i;$N(%sh_~#OmJn;6&Zg}`zdj-6$z+<*=5o0fDHa3))oN9D-OV?{G=Ors z45!lxx7!U>RWUt1-PI#z89*bF>v!GA0%Hsghr@8Ks;bsA;PH4+sZ`+gdI125L;_1o zOC6IxlA4km2n0wJMUo_m zWLa)2&$29&r3{Fo2uFWkOVrV56sxPNn4Fw!nb)&aDrH@W&VHvcH#gTLpr&cq-`_`} zP=L*5(^bTt^@IShv9Uq2EaTwd0K2=px~kadhKy7*pU-oqGjM!-3_%buKR*veQS^F% zw(D>DIkRM3TU!GFghHV^)vjH$V!C4qhr={FI)ahn9=Oz3eER+f(W64gk5}UwOaWl0 zA#xP6KrsuBzd|h=fmXER!71Uz_CrG;>+9>-+S=kQT>*WtQ61y3_ZLvF4ZvQ_-3ZTy okG}@+`h5ie5C{Zr9eUmV0i{JxteB7e?*IS*07*qoM6N<$f>sccAOHXW literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_l9.png b/amor/data/pics/animated/pingu/bash_l9.png new file mode 100644 index 0000000000000000000000000000000000000000..bb97ee6aae01bc2506ccdaecfb996ab896f3b0ac GIT binary patch literal 893 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

x7I14t?HJda#1SMr~J zKF@+@eOO*zKKDm6Am5hcEdYweBH7=c5i(3nBgD$eN^Jm^mX<2|hvQ8=o(>S~=mbCy z_5fLw{Ea7B9rw>MJkMi)f4{bBSV_xoepuk)1JGX{vtBhvj!)m#iyrJjy;!E$*2|6W z1+7;;VqsxHdv5^cCAd8raM$du<`MdBxRqv8pxS Y03Pc%=SDdWg8%>k07*qoM6N<$f^BiL0RR91 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_r3.png b/amor/data/pics/animated/pingu/bash_r3.png new file mode 100644 index 0000000000000000000000000000000000000000..61156004e4b1cc4ae6a095f1c402920bcd9b163a GIT binary patch literal 797 zcmV+&1LFLNP)ZAb)yLW3^!5`To$Bc)kUg8C4RLvk&vn} z6_L{TmA;x@7t-mc?WB`t<$(t?cX-@$&pmhE1OB5ZB8c>sW-a!gN8V|;uZ9S0B8Ou|=d^@&6RnM}rs-Mw=g<#HJvaSQz?DoEY?wR;K_ zi$xfQfl{gDR3B^Gk9O@ot|fJxdi)UTljo4nj<{BV)k2`Jua9!MoI@ZUkK@&l4%+(( zRplep_YBms2WaUA0v4pc59-?oP%eC6o(Y(yNxH5hm&-Y^xYdQr#tZZ;0B6rNL)9g? zu>|>TMOY=)2LIIp^E`IpaCpP$*|tqh&ARg*jYeyp0$0q05EKf9plKQkg~G~a#vp`n zCZe^q6*Dt4tga@sZJR2U3QDCCW@l$Nd=CbL&hxT2>Ixym8rfGbP1BsUx-E56V7dBQ zFfuYyKMx2Ywk5zA1JT-|rIf5L3b?6$ee$}U1#Wt&sC>tJw=&qIlvVKpgWSr)B6^S8pS zqY^i-05CKxM*jYklxhrB5rwM6un_5lmU{|BZh-Y%Vy--p&1RXDk|mQ#_(*Ok_4WP` z@KeE$j31Qt!#~vomi-Ff)ECeagEpyxjL^CBP^lskGxPwe00000NkvXXu0mjf2UuuX literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_r4.png b/amor/data/pics/animated/pingu/bash_r4.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f0cf26c4f8d15897bdcb5080cff4b27b5294ba GIT binary patch literal 628 zcmV-)0*n2LP)UPKf4wgn3YWVp0D7PG&@AE?>{{Mfy z@BiY(i!m&P;Q$kn|5OQjWo2a)gB8TN|NmX6@P9##0#3_Uw>$p-b;=N@1DHth`I9G4 zP{dw+{KmkQ_MBnoT}!NbF0}k*2-dy8z52QcCCJ-L=sr7obv_f&}jc6N4(N-m0{ zfS!Pfrump$2OK?mlxzdp+1V*~z{{5}2QCDtQfE`*07`UXp&?p`;m7?7q7yQ_ z$Sf%-`G5ZWd4}Uh_c8qa&qk8Pk^(FYSK=5LxHY~r{F9buU}92X_%Er#@QX*7fq{X6 zfkUx_k*K=h_x@S`e{L&eVCDJ6@R5s$VcSQ32A9D-pOG#B!0HcO>aiPGux^aVsBk$vQfqENkFCvj(!9&T?_@749`ir}0N$X9}H zqG$K0RV$OKs3 zKfpE`%vQG#L%<2r&UozWzouy;lMe&uoRY~T2_eQ8rR%yS@?jWR$T(#m7n-L1UxXb* zobv&Ws)TfqTu~IuCc3I=Fin&FMH^r@g+L;i1OQa4)qjtn43LX+`2Bu-u2jY*cX1BW zG)Epe>7eUZRTZXbvQ#QHQTCZk#-8I?1}17nd(6M9H17+^PysVJQjcl@=bY-MiCMIO z+1YGPhg-ucBBcPpk#-{plrYeAuFiJRpRiVzG!y z`8~Sr(TT%BH{RTJVk!O;@Wmn13IKo>m(lVBaB}ql8`*^P{0h;#*I@Djs=t8S`4f0q z?j8ED)9D}-3L$%|g^jacf!{7ryV>7V?%xT!P9K;9kUT!H8*hh-_yclIH6~eL84v&f N002ovPDHLkV1kw4E9d|K literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_r6.png b/amor/data/pics/animated/pingu/bash_r6.png new file mode 100644 index 0000000000000000000000000000000000000000..d926f7bb649cb032375d84f484087d185bdcc448 GIT binary patch literal 747 zcmVY+H?8&M zmHs@jG~iD}#6gM=!MTG{MTug#gYa;9gIL!Nx;qt$gM&-9ERsbMC$kk5L2NQKgII}C z3DOeN+T_;O&!MKau}$B5N!z6#eDH>M?>YByzH={dPzSZo#agk6l#+xH005;F;_*1! zvlE!6NkWKCt?N2TDQRE8Q>hf?aybfxLc33(9^AHVnxCJiD>rV_^CwZN&W`UM3CD3Z zf#1J*gy?&krl+UL?APg;!-yu@h-U6lOHF9oHWdm5WV2b6N+ke5P+P&*$szDF!$A8S zs$XW%`Ed^DGw|!=acF@-sGif{-(I5Q;#=mKfRvJ^rlwFV7PtN9!LY*J0fvrKT{v{& zC!ld4paHAh_)UkwR~JBw74Weo_XMPrluRa}lya?58(YReunQN&63z}19=`H9>Xv2w z=Ws7=+cxAo$4*}0b<(j|EXDv}WMqWAxPQBf$K$PuS+{Lj7X7^)*V}O%YAR;EbTk^J z`pZh!b#grg0FX|neM@c_#`<@$SY$$ohC#L^fku(*wMIurz2!h{j{R1-T&_1E3xz`N zlTb=YiA18A5b~7$tkp^Al>o25fSLi{Xh6>jSe8YZOa^;-`gH}Qlud(2A`xHfc+IJi zNCbYfKd7zX@vQ>QR^`3{Lf2A|$9;`I*>@J>`J6&QwriOZjH^=SJVaE}J2{ZntXBM9DUf>l3& d-I;4h;txQ5Lo6{8Sr7mK002ovPDHLkV1jk)SR()c literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_r7.png b/amor/data/pics/animated/pingu/bash_r7.png new file mode 100644 index 0000000000000000000000000000000000000000..40e1a1fac7d118b75e3e023bffe6cf905e7ae0ff GIT binary patch literal 694 zcmV;n0!jUeP)noNZjyM76 z$Goq{Hv@S7^cFsBY(RVS5~*Vicnyx$`U*)?&)86tFqKMCCX?B|S40Qp7pKAJuY&2H zU{s4Z`mG8~658i4!y}!|T(u(cGf2Sl# zLcLyRt^tG)H0m(${kol-Jh-RcCszRZeBM@(ywE;GY?C&=M2%bxwiLT>+K7 z*!)^V;OsQ`g*E0FV7JogG!+U3XqpB^QSfAeTt<_T&n zl+undl2)W;QX0EKM4UM1U_13Pkjh|(u|p4Y*Wq8#U3TwZ;LF9`>}ekKvYzZMGFY8^ zX`yygJGH6SXP4R8nxt>><_{hS&kMiL^ZmUf0dDNZOpN0=dfh&3tu{>7n0yT5)a=Dhws9{-v{F$IRE+q z_9x$%t^it<;~;y6*Wnsu4S4vd4*<}2tAc9ze{|X5C~R||n6ASRkH=}NP+T6C_5lDm zK0fXUcxGmXS_)v41A4Z!w1lCdA?pVzJmeKqL}rJCnoV zFjQ5A-|q*{^Bq-ymd4}pj#{y!d17a0$Mk?K%P5sfaJ$`DTU%?Gcd`x$f`Fa?%q$cN!Dh3eTrOi{ zW22!A$HvC+<7d8O#Tx(wL7*4$)U#YJr&}G<)6S3f z2O$L8+uPkM(9J)9&*wuTkpKX!tgK*hagpf-prryA_B1?z=l4pWQUHa$BJ%k{SI%`m z$>!(hX)2X6bi6wE8-M%^xc(YgcMMds0sU@N``sY^B-1lMGtBbxG63M+D;_TbWk5S` r*i&;3!p@daI~{->yI@|PcLebl3Lq(Jz3hQf00000NkvXXu0mjfpEZnf literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bash_r9.png b/amor/data/pics/animated/pingu/bash_r9.png new file mode 100644 index 0000000000000000000000000000000000000000..0f300ece17f5b8972469ebfda190eb91bc50a9bf GIT binary patch literal 907 zcmV;619bd}P)g zm`jXcaxw}cB!cdCS%|ErnQi0ip=8N!qRnn5k^bNv-h03I-uL%=zu))w9{gWLQ4|rx zK5{*aG))tVqVUlG_`Z+lc^}91-QC?nQ52zRS|C>-)#HBO_W|hd?=O#!jg3h=7JTn( zsZ>hrNDNfV;NT#0Po9#`=ePd~s?$$V6mq#77l(eN^Uz+tJANPeL|WRBEBLgzL5Mq- zMXC5)#N%<%_vLQkUkMBGs88&O2VR{kpVHrwM-tCGauM`n){zU$MDHs4BqTguvZ%$aB@Y}OD z(zXQQX1U+@eJSuXTzmLNHDK+SX__KX0M(Qmi^VGDbzQIMFD@yL&02&$^3a%Vi^SbN0EG#UPt<`m%*n!WO znwl!>^z`)5)zw8UH9_8t^_FF!sw(sI^X0=kJ3G0ZzEu$mrfIUgyu5V}thGSbb=un6 z%9dJ|MIw=4Vq&6VO(Ky%RaKgrnri|O`jGXm>tb0JnM?-TwrOo`rC2O7K0dxK4LdqI z0Ek2a0I<5L<2YoqSv=1ppU*QnIk};3EEdBwO#rglY%l3e!l}4tg zr)zp0t&4$VGFkJhW_OE;VHhm?C6<%rHDWOfHwJuNrEaR`cPOW#Kpu zkw`P6qoefp_SQ_rp;}z;e%{QtUqt};;o1vq+vY&qF>YMHiX=&O{SDSF7#J83)#-O` zf0&ztVRZN3QXBr_8~7uNuQu`fuMfEUw3VNJ{-v&$u=HQwunTAAIlu4qhVv_pQ5s6G h;h>9jHd7aXe*oG03jmd7liUCR002ovPDHLkV1ie5vZ4S0 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/blocker1.png b/amor/data/pics/animated/pingu/blocker1.png new file mode 100644 index 0000000000000000000000000000000000000000..ec80d8405e772624ed38a51c092377351d233f8e GIT binary patch literal 1485 zcmV;;1v2`HP)4{$MERqq0*JKi8Im69JZkj_3HKee&7H7zwbTx zfBVhP&zaMwE2dZ+HTk?{ayiQsi=*b^#X0lXgP%J$VTOmrk^~R4XN{WRsan zo3XJP%gf6MA-Q#H8!06KQ4~IUfIt4}3l_%OXr&k{g^bx-2m#xluR&*pnM!~o6#(sa z`}YB?uC5?u%+Jr6civfI zdisk)5VtljqctcEjVVRRfjzZR3U1v2?-ginr~B{w{zHRKPuI9o1iYN3AN>ZuCc>89D19Eeq_gg*+~ zZ3gC-N+n$PA3Xi^KLPmRhjF^yztHW52mxzrYYbhyIA?C$Xdb(KJg>y!VgscV)oPWE zjSV(8H&IFr%#%_gL<-vf<~TM{6a(P8EsL+h zev$$7A$mP+u3x`qCMPEb{#PhCCYQ5Jq2QR=*%@>8>`k+@^tyTe`Hcs+>qet#W@l%z z%tuCqdFiEB%)NVq!FP8Pv%9-L_RTjtnG)r)ck+X2X=%|E3XVB{zHYw%zMEy+m;Rsv zy2v~icdv3H0N)?SaojAJlrlT@&~mQVOjVaU7>v9thmezOR7R`yJ1+B#!gvlL2TA@4dH8 z7>0DaL7LSAZa#4w6Gd^RSP(3nYzt1EdXC$-*NI~v+qUU;167?fIF1L*dE-VC z$8lL+{x4sDeF6nepB|yx4Y+!BgCt3}VP~gB5CkMiOcaHLVMr8(BuR`?ijO{8BaY+D zxF=Ge+5C!bHzWv}bUJNnwHl>TDf@0&cIJ_O7$H~`%TvdY>K+-y%38ilBFYt>}(+A|QzwiR}7hgq)bb8t& zjz~#B9D}y1$MZn%KdXkYiB=&&;?oWQ9pYLs8XIBzIHNUAP44gM-7jYh@pkHbz!Hi? nL9A^;RmH9}C_lS+qz8Tm)ff1ouCe`+00000NkvXXu0mjf9y`Ko literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/blocker2.png b/amor/data/pics/animated/pingu/blocker2.png new file mode 100644 index 0000000000000000000000000000000000000000..126660152aa2728c022445adf9a3cf911c180ce1 GIT binary patch literal 1450 zcmV;b1y%ZqP)7{nqL zv4lmKqPk1j3SmSrsp1%8j1VChHy9IqFhQgtlwv|~doaP|5JJcyhd|QegE2k?V@e33 znAR-`IBB3J2(tuJL=i;<5te2NgIUbf40=7Ry|QA}Rj_mD!W?$y?Y!^3`QMub{%_B@ zb7R!glcq$Xi()a2qEU?!i7px)9i#W|ysxjHIy+g*5s5Gw8p^#th*PJYP&BGhB+~3S zk?0ENqEU^mU7L9)h|YEmU%&nW)6>(itR!-|L9DK>LMe&a*;$yT3C=l`l5iXcM-GtB zKc;Lpi^<6^kRRubdm<4{UMDL^S4J;2wWZ=+OlkVz+@`70Psm(kms z#g!{pz!=A~XKUb`0{}eFJ$itTK7EYw-ZGSw=uNul)mOn7u=Z#Hs7zxxU4_9V0H9nh zqqDP<-WgzKX0hc*FMhc}hIa?kW5CP=N3R7i0R98Oxd)iCi1Dn8j0G?TXqt|XBY(ep zZAT)E^7+U6AikS2=&waan-3Xn?Tqaog0cBMqaUv~S4BIen9t{EetxcD7mpj1N~P)N zZ+~j~`1tW&>P|5F>I|d#DHekKInU_&c}A%Z8AbP$K9-fl#6$s7N@Ow_EG;czWn~3Y z$|gI`IT#B-ch?LvQNoILr2;&EdiKrE(FET+-o;(e-b`ys$CM7^%) z;ll?sFwo!hT|913G^$ZNZqUfcFkQVmLzgaHq^YTI4i;*mP^6KO;V|+@gwcfy7in{| z+43>+l!T`STMLj~g^Jl%tm~Yhkpzso$G{dOZNTe0h>$F^xt> zhUrK;p>5l^eft)=y3Bnd^L-J%D+MsdQ79B(S$5l^J`lih9Aq+$()9i23x_ctDx9%E z?Ygc509?1dJAoav$T>%Ue-@1K(1{RYCt?Z4f-88}Dd!xTro%9Fl*`WH0c`se48sha zan8eA4@v?%U_ts3f+ds5qXDQ?#-ZyU!1F{HrN$9B-f_O08P5|TV2~Mpcnw(A5~P$+ zNr-ql3V^%@;d(~bZ@Dd6tiHMp*eTCEz0?|?raAp|^6G-d2iN6_8<8P?Yq zA%qQG*HNogVVWj{aGL;x5KZD-UM|8g%)@7(rze71t&02im*D%sF_cOUs?{odU%>NR zxULJ&bK&~}QcBFtEkFnn9><|FP%Qq6TFphZT12H%MmC#8GMNn5HBAroQ7)HJDmm~x zH>eo22hh=K^7p6rs8}rG(W--us(>e2kTdL2yoB#J9QInkokE(2I5pliXqWd=Vd8gKLlC_tHK5jpXo z<3Epp`DN%#g6)Xd(07a&V4HzM;RCZPfT42~24zs0YR_hScU6F50DPxC5pv};Hh8Pl z)SmR`PM=2Z?3Z9HFb{e}i;x%~1faA`dm5;Y$HUN!D_!1CGhbuGC(*>kXOtjR%Ki)q2cYWdD?EnA(07*qoM6N<$ Ef?iaZ82|tP literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/blocker3.png b/amor/data/pics/animated/pingu/blocker3.png new file mode 100644 index 0000000000000000000000000000000000000000..8bafa3edf696753d4fc9e0d2429c6342fe1246ac GIT binary patch literal 1411 zcmV-}1$_F6P)PiteR4JuMaitF>&3@j*mj*>}ssH9SiE?g)bABfwxXDOW)9cer6@7Jln zU#Db}Q93P-55UQjIZCGmjg5`d`g)VfhPWsT8A$iSe%j!Fn}p zHeH-PeH!!g^WdDLSS%t8LkPi<&6;R58W2K*QpXg5bXw5N%q+cnwM3~@9RA_K93_*C zu3h_?Ha5IiH#~Ga5dZ)oI965~Fboan3mnC)3(o^qmg}fE4FG`SI7lXw6h%?us{lNH z{D`h!zwyaMi~-r;A*?K5O-mF_KohY5J_PsSyMR<0K7I@mU!B{j6r+3h?tU_SsU)NA z7mT967)3AQaa*Dt{mj+gQgL*&L{FalL7fOJEiEILvvBIWQ+o_&W@gFrT&%7(&~#j^ zxqxW^ehUZ`pbH?}`DF}f`oOB)!02cj#BX@{^2fyf!!9h;VB0nTATc-hfNtHo1pp`% zim)tehxHC@+up3x6008gb{{YYX37+SJ zF`!zlA~896g%%fUJ*Q7DXJTq<3II?n7V-4yJnHp2!Z6%p$2kXMfKuqp>AHqiO9B84 z!@!3RUIKUS+@*ZJK$(o*Nw57Swyn?SbM*G@Dn*f^t*wBfNYUnIi^j&rJJqmP85ucu zkSjAYvy{o`2LSZ-3Cd)2diHFAqDWB`Dcaudf`}qT&z~>Q$jG@p>oOUg(&>2Z#KbtA zIrBG_%fHgai}Rl+>fGD|nwS{xoII6cR4z}`=4NXTfZZUrw-vp4vq}R4*-o^MT>Z-B zY06}D8XYas#)j8%-VXitw%ViH+6w6A%^TF$CwhJpl3y~gEDQJV-$yoU>?=$hK_EN- zm5OzhN(H%`)ibF-3&6H*6bcqBE8b8_i7*UzoW)FUGn}!Q?V1+nrtkYle+xM0D3vaO zF}}}XxF_w}PC4fgLW8brXg1xW11J=V(A(7p0A~Ob8rZ&7?TEzV5TlmcqC8hqb} z=eZpMwq^e(r9`V0OPd!*;=s^Q5%qc0Hl`bB2cf_(Q5gq*Il@7+?1N8xvNFf zpi~GcB^<}W>Z*-a%Lii|9AQrY4sD(Oef@}PwHlU|ZP-l-863|1F5^Q4yBdL^9Psc4 zhh=hbVF1Py()rm$PXIo?yGw!d5F8R=2)L~{|2YR-AF!K%?E))nv944Eaz@-6avqPZ zEFk!;psy;@E@k%hPP)P|M%Yi{ogn6 z|8`xt(2%LAY02d*nVhs_YHC_eohr-nazoy`^K<8FGBKefn;maw&YXR}AaXfNvRNg$ zTpD@b@x(-Gxtt|8Z{B)8AQl%F299QCin6t}DM=E`zKF+V@gwQEr|^%7Rnv8*{0&T?C!St;5Q%qx*5o3v*P=m6o86YDElb?&+L4=j#4mdKVr6!0$iEx z@VnoC_wE2zS2y06Hmz+GQ1xJ?8sJ7P+FyZr04U9D0ajPw(lCWq!z)C);;l>$G04$-R4PLtpv4 zBc)PV{{Gj$jQ}`(`g^I@Yf`V*WOCAyKg=AqT~#*uM(xgpuCk`pH!0mw9)E!o&;08lPh@H~$=j_`e-r%yXXQS?$7G}U56 zrwdAJ938P2fYwl+hDT3FofQfNn$0G?Udj*0aamjYnr=5hDR}WB&SWlJXvo8dtwD>u z?ee?=jm8Rb470Np?%#jF_V)G&&^}nD(sK0gIgU-QX8>?rm!E&`W;k=^Us5WSC7-v( z%4}bJvRNgiQc-^VaaWQgmKQH#Ns?HeKkv!;^9yp~g!5X79%plNV`TgE>F*_l7`=N(yGT#(N`Ta_zUF3XJ@pT4<6 zn$4EH#sZ{!{31JuwhLTb#)B6lpDrLKE+k@Hh<(GHle+IC;+{kFHIeWG`Xep(@ z81srnQA8A_lhLwl9LL5O!_LmmTQi{Eoc=%IIPOTqTI;c+TB-i;h(e)2r_;e0b36|0 z?X6&0nr_!83?srY8Xtv%Ue6592TJMVa{!=Nd@$I^7&C}++(9K(y`kb+mS%doa6ABU z44;4AB?tn#U7si#l5kvv#u$3N)NI=x+d1#Vfti^qTx%#Gwsp8s44#`h zG$DMw4UVm8&POPn-dE#xjUiS**ghHw)oUJnc~hmJ_R&Ywmae7}eYl1i6OsaBAhs$; z<3RGCRUv2*hdzE(p|h8s=UmGWW20;jXS&MF+_0wqeY_x;^kYRGemjH_nAj$WD%j;F fr4K(I%Yk12UPB12U6-1000000NkvXXu0mjfqRhMC literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/blocker5.png b/amor/data/pics/animated/pingu/blocker5.png new file mode 100644 index 0000000000000000000000000000000000000000..b97b7bebe246beb7a9d8063cb27effdf89a05f9b GIT binary patch literal 1456 zcmV;h1yA~kP)ipWE^`cN?sRegwZ-AR;)<(&?%9W%xzpK9lIf;>*x~mu_s{Qq&N<(6&hG;Mx8L;i z3=Iw@C>m8L7E@?&FhLhCq-b__hQ7M-@$nq>_cMw_y06QZN4_4!g9l3#jVct0Fp5S4 z&s&E3`-2sYDzv=3@^v64CnrKfLqjHQZEce8OWN7lrF=d|!^0*mFR#$>u=!a4kzOB^ zGFSjGH8q7)Dh=25z&VFySr{7|!~FbhWV2a3eAs&wdIoSD2LPZb9FMLZ70B|l-!*}2R z@%aFcA3r)ZY@DlL0J0V^mvx|fB~%{);spT4kuiX!IpE$Dpf%U=_V?b>5CMSM*%?|` zSU53vzVG*0mIVo5a~Cjg0+kxzc>reshX*qO%#F46vRht1(P%!Oqm7NHZCmlUM#*G~ ze*5Lu4uHkQCCcY>l+WiV7E|blp`)^kFpBmwN`A}e=NpXPZ7@3AV)WrTqm8?aZe3+G zG{~r%L$k9p6p1hz7|;j+`qtJ~>Hhuu0Dx2~4a>41r3c%#vAJv~F)+oiC?&iYxF zfti^(NC{*zX*_%O0_AeK1GELpSdfm^Jxx>5YzhE?uIqUJzR`!}RHsM0#vJ2q|>d^ z1YFk(hZ19f(pw5=EKs|us^RQdTU$Ld3heau%P}&N1?N08B7`{dxLtNFqnvXniV96r zQLo#mR4O- zHbr=Cuu&`) zQ79B3r5a8$RaL`?xUPWbd0>pASS&(_AOei>^8u90WjKxl+qPlbHnQ1lM_3g_g_ItI z5UAB^*xRe3*>u1d2ZslE_L%^E-7fyQ^N32N5?;QlqFNUaZg=Ik72jDQ853Ba=dcV8 zuIPY1hiG!CuP1;!GBW+tOTI& zc5i?Lq&|iIOPhUXrhs`>=t{eRsLIhs60r2Zpm2dFWk6Fo3S%A^5AL&WyGlSZ0B*In zGGr$_`01vM0l6zzkej*<#)4an9X-R2zb6DBm2__!@c&vOI3-BehV7+Ms|V*fT@jE_ z!Bh)cB8#EXc257^nIMSZV}%`kJGdSoqzcDNLroQsymYOr2L1sbn(PU7$KlNY0000< KMNUMnLSTYgnV-x6 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/blocker6.png b/amor/data/pics/animated/pingu/blocker6.png new file mode 100644 index 0000000000000000000000000000000000000000..9af87c5abfb4beb88faeacf2b6a4d049408a38fa GIT binary patch literal 1421 zcmV;81#U$)rY0OXbS}apg*el1YuGrlx6szd;KN^OVhI=*yQq+TU-`@NkY22}UzB)Bg$p z>sPVSa4|MEhV}JzaL$p>=MhB_G>s#jwot3pplLd!yrd^cCN(OR%JkvG79|qO{iDMf zipLo(F5aPo15eG3j$Doh06^0?c6MqoO&t?Cj(pmM=K(w0RTS$r06-WD{1kwfFJI8z zyZ2(>RAfLpd=5Je*z*E;3(z$sfDeuP@LfQN=;vZPkzn-X$>VRjFA-UlOuJ$OFN@emq7rVPPH0mz)T);8`KLA1r z7#a{A{}}@sKHvu~CMOk$iHQl6O6Az;%WiB`;5ZHdAhx{xj2=FG2mr|C^000DnDuoy zj?=^HTpBQRV9x_Irp7=Q!1f*xo_GPvvQR7*5d^-{Gfb?kyn^TXU<_zBWh^#3dy6(V zD}9GgCSzf4ZVmvD&*$;_^*XB6Dx#?O?K$UQ43H9?HN(&m1d61lY2xcwFNQ~t9#b}( zqg2Z1gxBd5+nGxYiMF11>cj*dcVwIm%L1~fG_-N}ai%J}%Tvs@{a%9KhOX8;Tg zXp~AB^!DurwOW!|ElJI07euQi>D{{x8Xv#bvoDo0D4A4yXJ)3UR4UWr;vIVM;E(SU zb$R(2&CE=9Zk|XmT3DE;!^5Blz)29zrle1wc4=rR-SO7y>I%Ji^ZMs&!@|NmrBVh> zP8R6k!0Q-qyS~|!J#$A#A>F@!j|K*`zH37KM+&xWd=jCQsGz!|_a9qiPuwnx-Bf@N8#*Xs~MTCAP|PpaRTE14F^2W?Hu&2+eq2g*KSlU1VBolQmMfA zeR!VRAz)ihe?kZZff8NUVOiG2I50AjN3~jo5CVo_!uNfcrZRLAfDoeNAt@tlZdPCz zCNh}|0x%2{jfRW0wKWurMM$Z4Dw(e99gl>e3Qxv3*4EY_gz^Am{9*vA)hdF(N44t0 zbyZV((ygiqjUa?TyNdmU142lqVRRs*4qc{

Ub0SKM`!jMHZFxlM! zUxAE#xS@@DL-li}CLp1M={Ah?7=9h^zUkq|X@aOh$_NaA#v+6fAfygI%0tf;ksX~s bmjnL*VOZJBsl7*qw+q7Y~4lnT;jkLnYhFex1T6v;D8pmtN3PaXLg3o zyvP3czx&?={@P#rzgf526=RGjr34VAl=!|c{eE9QJh|`t0*KaHfC|6{OsCWNI1rsq zM||Ix$z&owemqMUh62cVJdu}|7wPx=8z3KJ^?F^}?Y883E@2o-GxX)#m%23Tbr}wa zBC?V&3}rHzoCV_3sRy$xBVbAS@Rjd&K~M|O-62_8pjeV652R^IS(axN=A3e9JRXaB zzNKpb6kIjH)Irz4Q?OdV;*qa+35(p4B#HCK7?@6{((Cp3)`VpVrc@BeFppmkc#1+B zQm;nf7yKI~Xsx9v3g@@`KAX*|2?xYih}DSEh*4`_$7+3M5C(APD>~(vr z>UzB{X_|`2O42lyIF4mDn@P9Z6>IH5Cf;J|TK@AmeV(P-qHJcKtl zH_orEc#l%06t3&;v;-gwLk5F^bCwDYCETv+6d)TbisHN(*jTMr+lf8Td-IRVvaIIk z*CD+KK&#c-iJzaJ40HDBz;H0w*^a~ExS~5vQ?e{0&+{GWrfJH2{<=vUjmGbPl1;lU z$rewbU|uSkUj|%VwSoPGrCE?f--)7#yj1kQ4QPD6buI=VeJhj;Fu+;_Sq_g2LzIRX zV_&7GRs^ mXtsd03>S}}e&Y0w=lKuo+`L`ln31CZ0000BGYbl;%*zz0vXrfv4Yy2i%VKCVhuJKK33HgmA~<3a)3CR|miIW$W|Qo;pv^t! zoiq9w-8=WqyeD|aJO1zJymmsCWdh)w!}B}<>bhn$8gV7hWNh!WG(BuNtau7KHWCP5I$bUFnfiXxI^ z_)V9bb10<_*XQTwc%Dbp^SDjnCiU4YQsSOwKA-bg#L*^9l0+^pE_Qj}FF1;#XUL&x z8mg)~+|ydq@AtW^?lHawWeJRBG5eG2>svmI=A9=6#BnV1`5aHdr!*!F!Pym77bm3c z%B!lPEK8ho2PeASE*G&OSUW%gCFCmzU^onsVJMy7CY=)jMN#lE2}nPL1U&=!5>;qS zF@-w8sqjG5G|eIJ?YP|!N@=vscig7leY^s0R}el^i0pPDp2~L@`4a5iehljiXvzdLont2evBb_%Y9?%u%w*xpk2R@4Mo zYfnx=i*DEFj2tL-bK5L*BM8=DizD)*Q_uad;S>JpUqRecv+x5mp?Xr&Iv?y(5p z_t9G6wE|mmKL+oN>%2?nkFxXKULaSVaGnBdsP<{FP?v_4`Ghg%B#%wg0C0bwV>f@3 znH-D<{XPKGSyWJjc~F z*$~puP!sTRb<2ER6UQ;D)#_#a;d3^Y?IIP~#3IXq$Y*4md@ZklD5XSeEn4fN(hGqx# a=kNu@9Vvp)ti|yF0000BI;C literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bomber11.png b/amor/data/pics/animated/pingu/bomber11.png new file mode 100644 index 0000000000000000000000000000000000000000..fea710ac7977e1df4891c4047191a224732f84e5 GIT binary patch literal 852 zcmV-a1FQUrP)u^H+OQbITdt&$z_{NK?y#dtItIi(cVT3W3ZN-305TwY!_J~x1` z>KKj3V;9Gt&VPtxG_CngKWUofJ7p4l7eF&L^;Z zv(374Zmq=_Ls^!H$i5V3XAOj%>v)Ic09V|wORL=7} z$69;9z)lk)!p%asS^;*OjH=jNnd9aBdQbg5@S+3FXEZlJ^B$hx!!tnMQ#60zuX~U6 z+OpYf*lac^rD!&rc%H|4z2@fThWUJs$)NW=w4Ourn{O%J|H+G==Z%kRAQw;>Siti@ zE64zy?+xwh9faXQ)*_W2mdhn+nv$lK(pLril=@7!OunAg7({N!!xRgEUD*_1q2Lv_ z;fOrX$+B!;j@>*k#ysi{r4)$ldZ6AQy6YcXlODr&AZl@kfKvTDvV{ ePk6!;PQu>_@zu)*Ig}?4WOx)Bp za%6C=OJ!tnkwg{;F1R9#Lly@T$vW1p?aI1Fj-0rR%eaS_-9n)(`_qDed(Jy&@{%+6 z&YSyQ;9tk!l$*uIo@r5kg=%98weoRaFfDWW5m9 zAE9d@9m6n%3aCK!NVS*|@=E0xdYb@wHxgV6Lk(scPmm62 z)toQuju7@mIOnj|?y7QwOvB3pW+@mAVMx3}1%nqH79bx+5`2qt*QyPWM%AsmV*1w5 z_dQ9H0MPe6A%tBVLZ)FnQ5Y3SfHxQWoVy2EjRm8?hG-f9-R_m{{l_a_owIAd`(iX2 z(YEcLfV15yIPeJ=1)3O)VkNFkG)r%~AUtR=-E_?_yFiv&(EgigzK4S5vtn}oZ~=!n ze=^~!L~c%+ns0e$;n^o>{E5f^csv$B6o}Et^FqmDhKv*fM~T~^wLTWnodlfyn0Vy< z9_2pdPja3e>eW+0sh@vHdjjgZ7GuoG1Wc#X-%ctyu?cUlKvh)-r`0h~mgU_(%=7%{ zCohWPe#V~9=YNmucF;HZ)B`*L5hR2q7>W4k?O)s;UM6 zvR(-5bLd(~$1qGGgTdr#@FIZaaw*&G7Gn%mRiTt3NfP?Lr)^uDb9C#!s8Wm4BM2#Y z3!Mi=gqWt$^Z~@1A2rVNoVu=2D$a)h-g~_F02pH^)q7Zfjvu5cm>JkB2rdq%o|gf+ zKpHhCD_6TY?*m=e;k_q>_#Edw+wGQMFPUS>-YPH?K!NVS+4zIW1YEbv!=nJQ)Pk9S z?qOI!{&5H3oWpw`%ieWZYiXK>&1QqO76p`rVwnYu2GYnu0_Z%h{3!tWdnC9Ph8oN? zt{@%KsyScQ9U<&PIOnj|?y7R9Ov9fA%u+BK!jQOy3I>007(o6RN$@So-BKGMjnu8X zVfx9?_dQ9H0MPe6A%xvHq)fwjqA)6u03WaJefI!lH5QBl8)9exbh}r&&*wLMxMbIU z&(&x&qHWuq@7dnl;J_zf6lmgL6f1EXqFH*^1>r>p(_Pm*+6A)Ig7){Jc_;hf|jxwH>*7{gR-vu~3 z1n|oJJ<49l&+nRZvg7L7GuoG0H)LFcTXxgaR{HTKvh-WoL0wDS(ZQc zVV>tlUwKg!&kOc^KL2&*54Bhe&@!_2|zL($UtX0j{z5DC2E_-O`MdifzzyD28 zPUf+E{-Zz0>*CEAWhF(WO5JU@KUa&F#$JA!CwbiP&-z}&_dI_Ck3@;;pJu9@=R7U7 z={1Ys%GXvCf}8?Hn3VjRI+je?6?P&jTkEuukNBC-XUgtud%LbT)Y5N~OF`-WOeuSz zKQpcr6`q^eubVk}Z$`z`hssPxr@p*woj7Y*{o)ddwgPWWhK4Cdez!Tg^;I>SmR&lx RM<3{422WQ%mvv4FO#m&ShvonP literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bomber15.png b/amor/data/pics/animated/pingu/bomber15.png new file mode 100644 index 0000000000000000000000000000000000000000..b61d38a014fa4b7f15e43a10070839c45f3969d5 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aG9rzV@SoVx6^fnjwtZ7UcT4xJGq!=!bA@hvCbN!*Vo<{UCz_o z5NtR1B!8u%!590xt6e4MW?oJc1-h8Q)78&qol`;+ E04)b+&Hw-a literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bomber16.png b/amor/data/pics/animated/pingu/bomber16.png new file mode 100644 index 0000000000000000000000000000000000000000..fe0e5742660517fd7b8ca85c273d5e0bce5bcffa GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6(8<%qF{I+w+iMp&f%;h;zTZD-8go3XgX#6-clHAJgu8D9gvz$( z-80Hp(x3Zab&!TiN?J7QkH-R0uJaWppZuL_!u{!!!4Y-t!bw2W7(8A5T-G@yGywp& CwKe(x literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bomber2.png b/amor/data/pics/animated/pingu/bomber2.png new file mode 100644 index 0000000000000000000000000000000000000000..f1cfc39e1730206807ca278b3155d3bde106bd65 GIT binary patch literal 964 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 XeC0(`ZDJ3x00000NkvXXu0mjfz7oge literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bomber5.png b/amor/data/pics/animated/pingu/bomber5.png new file mode 100644 index 0000000000000000000000000000000000000000..461bbfbf885e78c0656a8867a3502ceed6820d1a GIT binary patch literal 998 zcmVi=%So zN^l?}sf$cyKNm?{DxXXpajisBm$*h!7hK~Kxj1mFn@^-rXxb+2dv)D&=7c4)%$++w zJHYSyUBBy#>-zed9mioJVgO7;td!!(WWqmgylWId@0p0c1>&D`6^FwiODU12DUu`s z5rK%XTrRQMY!Cziw%hH`c`v2p*=)vIYnD>-$agpz`|P?d?{+)h?RM-q&d-D*iXtW= zj>d}hJmlvwF(*UjddGSbGwYP&`K%2~7>4}68V11e2+R?fBVtZM=4{6NoG|N@Ih%2L z=d%=OK>#?54eK+?_xpXjk4Hdw0Z0-6z3Lg;23;s@=>nJ2HM(a2!1sMTJv~`xdz~an zFUz|k1z6FmNC8#?>=547Z_i12UP$6N{`5otMNWdaySw|+2Z@M<5bQWkuQ7clj^pr$ zIp8=B7e#TBC8ZRuuC5Sc?pLzYrvu~=B|mZ4ILyDgQ7uwJi^ zj2mQ&g2{jTJ@F)_-H1=rs}7>ou}0J4yei^MDY7yA&$r zVlugg=XpmNZOj3j)*4xsVYOPlO*-q#0Gbhezgc2v7pMu?mJT!|27^J{e2A#Ml$6-R zRC|;LC`tisY;3n%>su2M0C40okOK<9OK}t>aJ6u-&WkqT0woZu3eqzm0bqc`)KogK z{uJK>z;mCW4G?&M(GA%^{S0^>EN|7G&6acaAN~b~0U%!DZ3pL{(s3O@@=gH#C`*C6 z+=@%~CI3L1nfd?bz1PVA-|-#a@qY{7_elsrj4=X00Elx=K@iZFo9nt>81Bs(W5u)Y z`(Fpq>2yffb&BJdk|d!DiXuwWl!74GgM3Yxrb)JKQ2BMcD70wqgYr-iWn-drKs4{sbl{ar1AuJX{&yf@ z7?zq007Wi{0uXf=QEU?>0ns$xYThII=}_A)&)LgyoJx?|@e3gYEf$MU1KT!3R|lA; zAQT6f!U76{bI7`e2{RE7eq#7zRn@@gcDs0de5_Tb`*_#KVrPUab+RnG6n*-{zDlNP zmLU!glHKn`F~&&O^{at(U8f)j$oGBXoKwHwKiwCX${>WGFbpY8Q%cj627>{4o=1&F z;~JRrv8zv|f*_zg&xvTOEX!yh(GRAkT9M zA#i(pdop8{0FL9FG!Q~uY+lZJkp*B2WSZtD!?OUVj2L6kH0>h5KDCD_KDC}<7}Wp| z4-d8DGAN~xW!VMu?YMmt9`5vb$E{YY8erdW$1$7DDonSMQXsXd`GK0S#zj%Ir{`39) zy?9aawpTF@+}{D51I%zBg$*GD48tglvn(sJA>;=pvk6ui$8@%WRDj><;N|7zdH?{3 z!hn$c1>azRsQ?XFPkVprur%~At9hW{3zzm`yPp53^WALbbpOqi~#KewfkzHzX1SdZZ1tRrGWqd002ov JPDHLkV1nPi$!Guo literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bomber7.png b/amor/data/pics/animated/pingu/bomber7.png new file mode 100644 index 0000000000000000000000000000000000000000..a6581f2a3e814f05d12ae51007439746bd3ad816 GIT binary patch literal 986 zcmV<0110>4P)-Glz;(4kEN^u1A#BhkELW%$69IN6-;Vj%Tktr0h38KYhYL}w3!Vm`La9U zChcpTKke%#O?pQo@egw@0m^~4M|3_wj{r%g&!hqvAX3*1o{wP6d@FVc|!4*(ySR~-*kmgvU`Kws?ewRa?PKQ7& zKxJs{BdR&YY|b=aP|Vc>NJuL|7=|WE66@UtFOFj)gfO1K1kPi60t4$)N@>2T@NhU> zP5akmzu$j7kcVgWZW#o@?jYWy>$cqL6>%Kze3=l!NGVMih9(R{Bc(Ksl6nx^LN?#|ra-kLN`&15n$aU7dnq&qq~GHpJvlSUU87Yv630IEu(l%gz40JPR5 zNy5#|4N9ptY0+B0@SnZmaA-WwBZ{Jp#mD3Es`wLw!nSR+)(9c!^?HP1h~qe|0067o z?JnhR00aNL%2lqGj+??oQIY34RaH@z<*ImDmeh6q;-1lHWNid+eSO_3 zLzZPM8`8RAL@9+*iagI(#h0Ftrs?Y0Z5!mhT?S4m#b7W%>t^V*ZfGyda%DocZBy4Z zlgWfE%ixIwLI~C^Db~6jkg8xm@aT4mhK1b2@p~K|9^(7{7h2bKjZ%svnc-G50-+JU z4?wX{ltIi>^Vtd@ot_%G_=H%_j14$Y=_^-H!p05k0x<_j)MmtwBydxD^+!3PxlegntJm;Zc>1fQdZ_C+d4v?hv%__hM4 zejR}4ae8`c^4kfzniB|3S_!U`M~wpqrVl>$!#VG_kp36(4}kOfr0t=+O8@`>07*qo IM6N<$g1dyzumAu6 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/bomber8.png b/amor/data/pics/animated/pingu/bomber8.png new file mode 100644 index 0000000000000000000000000000000000000000..db27d8941898f8e8e559a2de0507950b7e3bf093 GIT binary patch literal 960 zcmV;x13&zUP)tN(t?-wi+Ir~JnfoNFMXNN8Pv?m@e?`m@z0h<^{>1K`tH&TkPG4NU%q#pL_J za)H#3@*V)coNb{z*QMv%ct$dr^Jmt9IHYXM$JS~v7|3&mJZDIx5LoHx%7_~wwiC&R zIWLMr05KYA>+jAts@A{87#R+SKMqKq=VFZ6ad=9VQgV5D`Fkry!SLsLtWQ2O|$pDF@~}%Pd`(o)X9j_G?nM)XAxP7$Wokh z^7!~DMNx>gR<`OZQl97e*6~XKPft%Wola#u9?M`bI0#}L;4TrRX)0A!9R--C zDMj&h@7bmVaU7GTDc0J(_q_M?dOg_zaCdiil$N6?q9}@k{h+l*DMek^v|25!wM0?0 zb8nxIPj8tC-EJ3S;=N~DE8;jN48s*GFP9i&Fvjde4=|g}g0p8qzu!OkDmGaF2*Yp( z0KnDNl^h*Ln-Bb3I-Sm&ImCO9)_O01`FwtS8fvW%M)>AgwZ6NL6Y9D?4&Y^~BLzmU zbTXM7iFoC#s;X_Bl~QylDH0f68Ae&cWiNUg6B>==pA-5vrrj}6Euox)9YB<@_OVU( zh5_rk#(Pf~hG?y5PZNAop>zZn1BhBsEeZP9!9f5riiFsJE1}he+O1J37XE_R4pBOUNt?U6h8hlLf$2@@Q^inGKx$tlU%CAuOdk|WF zO|B`M)oV$TggB0I&QVnrWm#@ZQ&`A5fM0jA?Y>I;$(=Cx?K+U#M0k2wlYI-q*WACR zZZjvPKgR=(QvuDp%#LHF`g_}$!E=^OHrl~tQIdMsn>~sQH#@|hT z8}U;8Hu<&#!{N{kheOxv^;{gsZ;iFi{Rx0E<~cwVMNFsD8v^_NK2h}fjs98}Mo-xJ~k&Q`OYnsjGtxKnr zAR_p_zamVMgeZ!({!-E)lRaI!MdD;xg z!Z9Vn>Bw?bmOJOxc6CMyULLk+H)D`7*c>F>8DOb*c`1nqbvx$UxIo1LG#Wh3LJqpG zY40Dp?F;JOcEIlv#p~mJ+U$v*w`OmxCC_uLwJY}uGeDU!*el2jbR01}ZjglI zw>vO7-FI3h5awVeke@F+2FesvbCvOuEYEX_qM%%}*w1qC1;oCIp}#>#>DvY9>@_GL zKgTZOi3&hPU`E)uNm-UFyREew{LZrKA-3>jbq>jVB3u&~g^ z1m(qwv@A=?vfMZ|k+62wD&9ux>C5N8{&vRKp9+*SC>6{ea(wnDXBRW}_V#%2 z-~sh|o%{FibA5fyALB8{KcCUCmpuI9GuV3!dBO27fARf`-@W&)h`Qabn~b^~2B3W~ z1thO5S9bnp#Bq%8`-lixmSKz`%QCcr)0Qx@mRDK8XnghImC?z`iPKuUBo164yDK6Q z**O+Pk>g|GpPtxtK~WUBZnyjK$k%atdg?lzj*H`XRSO0|;Nm!bzq0EN|0nzn5h-Q1 Tx=K>500000NkvXXu0mjfV~ZDZ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/digger1.png b/amor/data/pics/animated/pingu/digger1.png new file mode 100644 index 0000000000000000000000000000000000000000..085ca98c3f63ff6c05ad3d77f2bbe068794209ea GIT binary patch literal 1332 zcmV-41;L8;M)8bVX)3&oIt#-t>^P(n#D5lM=q3MNWWA(D_1 z4WxwdRcb#hnidPB1f|<;DXa!M1Em}v=x)1JO1mv5IhlL!|J-}doR51hjFTEpA`(VM zeo2sA<5ivrHfaV}FC>PIM%sA)ez>Ac;O4L~fcEUz&m0#O7Z;1y>y=<|rL?zSmes4@ z6Tg3!T)6PNw6|ZDxpU`;Qc9j!2wGcPS-f~L2M!z{J3E_s^X4&U&OB056xrF?)YaAD z^Z9s^B!JY`9+%`~x42wxSvYr=xLj^2DS2P6UHeM_*|lrexV+#Va{^ix0k4g(=~I4v z+l}crG1h%SS15v_1LwwJyk0Mk<4k@MR#sMuI=hK=7J!1>#bCVzh95E%*lo~OL*b5Q z+HU!1Zf@2l%>&id)lyno%Eo-?aKLgDG&MnM(?fv_MZ~ZOW%x0@5%$+MV;F`+B9Vz# z!=XcmqM0p#copI^5X(R;HOPZ=H7FBh%d%v`26(;RxI@Rwfj~eengekMxRczN(@aX% zmS9;Hnx+vBhdF=#JS{CPbar;q*Vo7Wf%~yNWo2cQmzR$}98uS6nkImlUNiP*4+i?A zr@LD&wO^8RXV1mf7cN*R)68j-oSZxqwufF!yzV_7&wpIodA&1^N8%L~6(iRYH{cNm z%AKpHWBh-ZQfhbtCzJ!RjaR>14nTJCvDn-_B`YR)|4w%t2C%5?Hvqc2x<=JArkn7) z8_QVn+Hxu?mH{wh&3ZO`a*699o792btS{Xb!}eVMn})^)bX}jkt9Z$hCCr{Zi<}%E znhU5u&1bz^A$d?>;3l_n=X3AgJ+552LRMB5Jv}`W>xN3H*m&yHbd>T8f%~?`3-8;C zuIsp5F4EJ}nLd3wrfFiDCYEI-W`JQBv9YeJQ4gt4U4T*wr4)u?V45a|VPF`>V_Wni z4H(|lG;M@fPbc-M3u4Nn9@BN5l#~<}R?YK~m zs|td_Ahor%0NlQPhs=!3p^!A3iLZhyOJosIVv?rj>wy@_(eqI&<2kj`4I7@y2qq^)c8o5PjK46 z0?fh1Rl@p@j=@to+`j#=#3JES{J4KD&W`7S4pdZD0ag$#_o((*1B%uZ3BcZcdo=*r z7!V>I5G(*E8cPT4Rwxd!sl1!J&I6vic$bfVmJ<@*em8Cj%kX(3;r$n5#89I)j4`7C0000HkoO$ykCl6@OWz|B zLGJzLdY)~m#&glF7y)x*Zo2t~veduNG*k?XXUqYVb&Ef9Nu##5R@`p4`2Ekxz`!-x zv!_P9-t}_j$}ci7a81g~H;JmMa^J2X7z|QbS;?tWrzk5cqoSgMO`9sn&sQlcE2F!+ z8;{3xUlTw8>FPQwE|)`WHitY`zFurLhwR;3CpT^k3n1<7?Mw24W6=RC>sm7C_u8;?WUPM@%&-$+eoqq{K8$SvCQ;+nsgjQpM-<$%;h&y|Vw^{c`g2 zlhS#zQ`%bF())!4h2pR~varp~&AE|Cxn5BeX=!Qs7m2$==hO0Ey7aZpdNHRg5CEss z$<<>|15j4`EdWEupT)7NBn?d59nI2ZVi&TrAOV0KJ9hAL%}d-2MF4oC=~Z5T`zkj_ zEDENNQM0>-%e|KY=nM1_=nF73Gz5^U3(B$zQFV1Sn>UxUYnKPb2K1cgqp<_vN&*T6 zwrnL73US-K&Di)D(P$Kaa5%jDUQkt4#fA;*|JgWkARCZeuUWGO!!Rf*DM8aTG)-HX zQoMF;5vuB(Q{Pjt4NcQXBoY)A6;WDRimvO+>xQbTrstZbW-D)n=qcEiHlD((s*0}b z7>1D+(=>A!KRZIF zYc~hSUf}5HD37!pOzZ4+dzy@*#+X!DqefwFgyQxpYord=X$Y8JRZmCbmDY65fLoQ!m_LdgK;0>+GYm@x6$&zPU~TkVc=xjVLgPn!>7p=||b}_0rq1H2Q?- zAoyQ|_(-Zeffa;)BTXWW_p5@(1J!;Y*@XJffO-+7VQxEr18@lysS_+cng9R*07*qo IM6N<$f&h+bEC2ui literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/digger11.png b/amor/data/pics/animated/pingu/digger11.png new file mode 100644 index 0000000000000000000000000000000000000000..a8ac44a895e7a25981d44c357484f874b52111e7 GIT binary patch literal 1394 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 Wye?LR9FxQV0000b+ z3T4-%*hwH^S7^E*Mq1*fi6PneqVghCLet7iYcy$nYK$lbErE)mN;M^rNDYZ0F(&ju zq0xxYROmLS+oXVPNZCuV?ShN5wc8#a=&rjcl--t-oXj`h`R6-l&h;C}k}mv!NCdh2 zNseU6R(US6MKi!ylbh^*q-6W`>57VhiL^Ccr`EiqH3g3=Lh89Xo2o z<5?w_F8wM)Lsz7{e66UeDi19Lfk1%D%1Tb0I6+xi85I>3tX*3{e!fasSsA^(y|~?O z9wrGOJw2zz;joFtVv{G!SBb@9lU=*&<=VAT0i?aXJu5HR9ykFF1FzG>-QUK*RvRvl z3%%hp!l5WC!^Hpi8mH4qJRV>CB;3D$zo_S$X)pj(SYHXoCeS^wR0VSo22Zj5fSGt#+33TUR70eUB~5e zrPwfx+zd$n0!7J${aCa)L;2MBII60mX&U+Y`RKZy;`v7OJq<{oYIb|3`!|1nh%U!= z_Km;9;ju9uZ{3%YS*_NTF`A~~^?Gy5f%FjAY}U-$z3@|J6nwgndCMQk8;V83d4K@;qV45Z(!pzJJu~>|7I7~Pk&OHg6o12wn7!Dsk z!s*lBBQlF=nuJ0jENQ*XG)({;4hK_HQ;d!V2?T}-1cs@vufOlTzgUixrR*iFî<<=+F@Ch{f(C*h*)Nr`8PfX?q)gOyRMP)H=M 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 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/digger5.png b/amor/data/pics/animated/pingu/digger5.png new file mode 100644 index 0000000000000000000000000000000000000000..8e38e072159ba9f9c9cf1569ee79ad4a7ef6be0e GIT binary patch literal 1351 zcmV-N1-SZ&P)-bc)ZnRJyw_$(l7~;_=Lr^XLDN?(R!cP>`P}X)YK?hSvJYYu*uT}^CTm~ChOK!NKa2t z0I9F9pB4+YDJ#G*@H*q|Jb+VdD z13*DhF&NK)?txqd@h<2(%Ia+$bY07%qoYH+YYa3rG)Prd73)hOV1i*PXm1C9`%OTu zBBmRJay_`5G4?fepzFHCVzKn)c<|ssOJaaH6_TeThK?9&!YBT#2~5Hb!;rhC`&8ZQ z^-8*XAZY+wrVZCaE_!==+5632G)<$wzn{~mPjl|vIr{qgxN+kKqhq7iH#Idi)YjH& z(=I?MC8lYjX&NGe%jqH%4kckOc3&hKjndQ8LvwR8ZEbA?gF&JLQHFUG%0^z$6wE=Yp2jK~!2=%7O(20BqRsHZm^2TfDpJB3D9ja>jP@ z!SxR<{N-IQ0I;a0lW;hk@+PzxXlZGo$XkF?cC-wTaY1Wqg*}@s@bP6eoNYe~Kxbzs zt*xy91OkEd8JII?7E0NZJ0~RvcoFcOGfaW|UIs zx{k}`vfMC?)C!n915HbYX)C>)$yo@%nVf~3$ytcMvL1)SL3VaFx~^M(rz`q@3z&SX zC8U_J-)5Cq$pMB22CP_SW+qB091aH#hXb$IoBk5mY?(>1lCQqt+pN`W8Cb@SNQB2f z*@9`B#N%;BMn;mbu~;m%+tB0jSP~i>yw2?0+5as;TPvRrY=*3fjz8PEFfs$X-EN(n z@p#-i2~%Rg=kr(D@Q)U)##bkr~9}aYTf%u`vb* z2MLG6gu~&~H(_;kwU$_h9Xoc>*!U|V@*pezNQ%yuQ;$_@7ZNtpcPbPcXZ{04i@z zrn)x5kU7r77lwHMhsV$~O#_hiUNK!UAb@fuv>K!0tV}wJFI^)_a9; z0DR?OhG5@|fJt4=ajI)0Ny!1|>OzqRr8R(KqVFh#j@_1le*yo1EjT-1kRt#9002ov JPDHLkV1iHThfV+h literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/digger6.png b/amor/data/pics/animated/pingu/digger6.png new file mode 100644 index 0000000000000000000000000000000000000000..52f9a7f682244e9fe619bfd1471f67c699389883 GIT binary patch literal 1320 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 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/digger8.png b/amor/data/pics/animated/pingu/digger8.png new file mode 100644 index 0000000000000000000000000000000000000000..1d8858f9f82f3cc534f879add99e973b47770ecd GIT binary patch literal 1297 zcmV+s1@8KZP)HkoO$ykClBapC_uF8qi{ z47u~W*mE4Y8qY|%jEag1Hf*RMKVPM+tc>pN zZhSu915E${q^s++cswp~I9&2X`C4%}T(Wz2om{&%EP%APw=c*Gu0;o+X%g^S_*Lb~NY};P`AUts3fT-u1s5b#r*i;GTQ=t1{r3zL*^q*p9 zYl!{{AE8i4SvC)JbaY5VLj#S~Fld8mtI*pE;oe!mN|m^7GP2T-;f?cER|s9#B_5A2 zJsVD*Jei7Y0mQ2!J{>W2#8l^GZmrH?Qev8>ESZ4U>&-fJu@VRbWLYBrPTBkZUOE2d zap^qXDQ&H7>HWfjLUB1=S=i?0=G;i6T(2mKw6wI`MdJ3**|gkCm%g@HFXog50^oML zxqReV0Lp5=2Vm&v^SD-&q=CuXqglF4?0ohXOaNfpwr#vx^9t7^F#z6bdYw1lz0CCy zi-PGR)aG`PM7U|*WNdtlcsve3G#XucFQ}@jV%@s6|7{%GmkpR(uUfSV!!Rf*DM8aTG)-Hc zQoMR~5vuB*SKm{x1x?dPCX*Bu6;WDRimvNR>xQbTrstZbW-D(*=qcEeHlD((s*0}b z7>1D+(=>A>R%Eb9NS7?PbVWjAdCQlgTV> zDjOE<0l(j$o+lEwvkS!IRlM=gLAL+%A?3fm$kk#K+qQAL-MHOuLT(`YkI|2b+DxFwVT8OJ4ms0uzGR0n~%Ce(il)bl6}cia0H#8MThNA%NJ00000NkvXX Hu0mjfF3@zb literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/digger9.png b/amor/data/pics/animated/pingu/digger9.png new file mode 100644 index 0000000000000000000000000000000000000000..dbc37ae1624bd025e4bd439c21dfbd33f94dcd95 GIT binary patch literal 1390 zcmV-!1(EuRP)@q!YP! zWQt@-R{2z9kIVq`xv9w>L|U?6KUUFP;MSNqfcDhn_e_fN^76##bc)CGsx&rUm(80u zNk&GR)Ytzljg8l3*|JPgO37mjK|@0WD_5@M*s)`{-EOk7vdGNLA|*xPcDuQF@gnKz z={!ynKq@QGirsD#i^V3n%hJSRu}OaZR=IhzRRAd~D@)1?wn-kzRX%zuvIn z%5Y&69HPS?K;a|Y^D|DTlW;iv=#y~YzI~$3@1(#4P>{0{%oSi{K&pa}7rZCfxW5kX z?R4tu>a<7Zfy0LnOJQLlJJx_N3}#qCZ7np^#sR5{fMMcK&A{ahaI~@x!!RTe2u!~k z%FD|~Gg|<0DkR-NOan312#-9g5zHu?rYX}l!0B|3+ca6u&d!$U=D@fOY*rht`7ZLe z6|BuqFQW@u=Lg(&rdO(|&0WC+?0^rU&1Hf=>khk|V z(dG{^D|V3LqGHN_EN5xvQkt8asjjJ}s;UYApU?L|J(Ft1kyQtHCM}K9o=@XeU#jAh z-uJ;i0=VU4)yu0027}C*GlxZs7GW61^jfh}N=6g$=FKJ+E?5{}U;(y!Cg5xH_7MyQ z>F@8S!@4v(0aFCLcf?*g5e%KNH&@u$j zb$ueByPcX@%j4xYG6GnwR+LgW91a`~2ie)#Q#*{5Qg=Z%>je4lb5`-h80C@PUWP*< zqS5F$Tp$pbng=p6G7|HFfjblAxn-a6t$iaO^uErQU0qn;+Jdg@=(>)G5DJ9|g+dQa z#`}7}l^4>zLFzy?V)P`KX|uVa>{r#o(oPdU!GCc`UY>Xc~mrfHgp$QN60<8?(C7zhAsX^Na<%Yp*b zPQjn0fkH4nXgMd7Ka6BYwh-`vX9I*sV;P1}1LXM=M(ixlMpcOu*-!%XcksW(GMMUJ@_mf%wKkI5&=;!7<#sB~S07*qoM6N<$f(t388~^|S literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/faller1.png b/amor/data/pics/animated/pingu/faller1.png new file mode 100644 index 0000000000000000000000000000000000000000..654d31f0e80a280697072cb565459cec80e10483 GIT binary patch literal 1032 zcmV+j1o!)iP)9HuZC`dDDX5@_gS4$DFx^D&3n(9mKQv!Kj0OvCzse^!p2>?XSbTeV%) zRpXiIdT-uLcgyhGe%r5R}ti^()GDAT5B1N zMp6`oNL5Nv6f&7iq~GuF0S~^5{qfwd7oW*wB9+M2t4h}EwJeuQnayUBB*~FtK@fbC zz#p$I4h93s^Zf9;*Xz-Z4$Ow_?`Rdm=1&;+~ zApZ}F0@?wz4bC}K@PJbuIES^CvMjOIQdJe!TC~<|HXAzg9-apn!0p_`5QH>7-8a6W zfPyUFx^+;b;5I02AiGDotrB%`=NwvVoO5)SH+Vkq8EEQl(<}jsLkF$fpGT)(KMFPl zw}fohgO!7P3BCuku!}x(+dH}I3PrdYpxHos7mI~zr$C;8Um)d78m+$?X9?goP-c*) zTh`@{w6c&tL2wUc!Qi%s@`A&QS4!cW<5H&(0$PDnpjy!OV3R^=AzOg*Usj;;`Mx2K zyB69BV4gyLs7j#cfWlRfr72o#n$0Fv1uY7^i`^B{-U2JL1@;5TQg9iKPk%Sw)D2}E zOL?P3?hqNOqtEc?A1c6h-=h+l`XZ~FkN>am%iI6-jVJ`D*rgKy0000Al_5^lhthMh;!dk1H zPDhg@(H)s6igdMF>BGZ=T5EMY9={KX;c%#c&So>6&1TxDiw?dtwcqP$6h&I8>To#J zX0xf=wg1U#r-0HlB}o#z_jvF3J`rK^+44m^B@T1lgJvJ^VnpE6*Ew+gmJqd<+p$Ywb~nYUk3^ z>2!3rBN1WH6~0m)t&u=LgtcukUl#m*x7hpo{XUb)r1mNaPML`4P6}fTyyMeqXddURuy>Hua!D zX-3hJzbs2~=kVUsX}4*$S{P#}%aXxhpl>FyTrL48n28o~(sGpMXE!D%qU6 zcTB$l9_G%HyCwM6rW3Y+MNyFFIYm(%Wq@qXwC(9OfG~y>un}6^Yc2RxJ4=8v1|Nb; zAuAz_Xm>B6OmWL8Ve=aAJkW05S*oEyi;-P|P=!T?#9}0VPm6$md|LVD+85 z@p#`M-h0;THE|r%%C_Jku&ddNZTFOG$X7sirUrZl&cQn00v|dTz!ml~BL03u9LM{1 z%d!j#$G8O;Ki2+7drFZ4o{MkpR07*qoM6N<$f}Dfjs{jB1 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/faller3.png b/amor/data/pics/animated/pingu/faller3.png new file mode 100644 index 0000000000000000000000000000000000000000..066ed4a2a8e14b2867a9967b0bc5f843f8ce2c9a GIT binary patch literal 990 zcmV<410np0P)!-S zWaQMPjz}cyc#g_GhpbFxCC@#HMP}XBflM87#4$2)iDTSd0pUTRrCZi*?>YC7b8`9b zfB*SsCh!$s@fDwl`}=$GeP5JP0*F#dj4^T*=wvbxt+n)eJ$ZV1dK2uhDRA_>`#p(= zhX;wGNPORyFbrifnViR;&1Mos(H__sb3|q^7>F@O(lnJcO+_gsT5Fll=dxTbrQh#M zuh$cRBuQFT_E<@hd`zWX;n9Sx>`9WydcBq~3}tA184U*#MUkvlD_O7CNB?VcFc|#% z#klQUOtu<9uUBBlKoje+iWFvBtbzMtc*D{~a zkDUJz{68)gw9_l4xVyVMEpU#yt|`kB&+~}m7_Bt`A2Hy&1P%eBC?byIvvr>5(fTBc zB7z`5DaB&3xK4pXfEM(OOHsRQJ!6b%O?VxFx~>m*1DqqUd)E@^cDsABo6Y7r0w0;+ zb!;}9^GbbY8y*6Ap7$=%rfK#QJLf)3{#^z7;cpOYEv{+a+y!-A?;E$zpH@JYBcZOK zS@AuE)M|>-l4TkF!2ovPZL{WpSXq`7MM0?H>9%3m4+Sh}Md!!q$@uNG`A|>+xE#ug z;hkX^#@KAZOIgrVxBInjr9U+5OP=!>7Upvow%#tZ-4H*Td?N|EO|eU~we0Uzk@AS<9~z;xgDfRr-<4~i8OfCU-{RSwk) z$~Sa3&tzG)pSs=ei^YO+Ib%e=Z60iA*~$gf4$2H!J;>V%)OMRT|9#VxfCg3>=m_2I zl0M$kbYsFW+#lE0S|-LqxRo2XQ&R^JG?3e^s-An>1D%`4j!b=NYK86_$nvcU0D*%d z19L+IJU>6<`~H3jnx+AB02Y|-H4R|gb_!R}iS7Fy==`X51^ISaX7|!8|3=ppkW<+T zySs9$syaP#9bnyd{lb9G?Oz@Ks~C^R5}EMqcOM{86kYcT_P>mO05BIg@)(21-v9sr M07*qoM6N<$f>>w9`Tzg` literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/faller4.png b/amor/data/pics/animated/pingu/faller4.png new file mode 100644 index 0000000000000000000000000000000000000000..d8ea7cb8f880acad55172512f080c22670ac8ec6 GIT binary patch literal 926 zcmV;P17ZA$P)QS+)0v1k|c5!2|&UyJP95ShvK@f0PXU9|5JREM}i=b zo0Qlm9*suF2L%wVwH)pb-UDz*a5x;^u4?m(I_%>(mM{!uKA+2cJ{PUExUMV9Z~VQjQRLOGN68$mUI?e3AKU+`+!Qyj&#Ey9Cf$OI1|>%!ZJ7%@_9x1U}$_ z)=*_oq})Ab< zswzCsV=x$?l%gn#UqfKu|0s&i;*2pEV+eu(t#zy1zb3E`rPT2UD5W~R?)UrnzJGQ9 zZz6CFxw@`#90$+yehq===V!T4`J~iJDL%3B+X!f_+kKwrpN&XoQckw(X9@T$S`zzd zI4o|hrLOCiz~QU4wmmE9SY-VuS39AkBf%C>reI-Jc)S;yWIV+W0&G=vikD^CdO@D& zOs7)<3MP?7dyP82hTuEB`$_Mt5lNZ|N<*H4slfLcBoPB!v$by&`FB*)duuJmn2u@X zS;pc%!wmop^nnsE4k+(@3&f-X4wN};s@=h&fMO2H!=<2F{lRuywFHh$>j%?aaj#ig zfdR?_tU*5hl+y~B6l@K74n@Ph4^&$y7jQQs2-ZB$-a7Mcj3LW1;_{%l2525eM?r4E zWPm;MUtqU8rbV&CRr|*pFgf&7wC7Ws_80(nsqM-5i#-Nx~ucEB@`zeAQnRG%i$ zyZh0TS6{eKVDt^L8O;BJ9B_fn3j8}NAj`7Wa{u847Vw(ljt_nU!8ce>=tb|no1IRU zkL@L7HbnH%C1t+`uG(ExW)C9ESdRPs75~fl8|r%Ci9utE`v3p{07*qoM6N<$g6`L| A_y7O^ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/faller5.png b/amor/data/pics/animated/pingu/faller5.png new file mode 100644 index 0000000000000000000000000000000000000000..9d868306e6152d41a958772ab7fcded28719bd6a GIT binary patch literal 973 zcmV;;12X)HP)kOS$eE~!eb z-@pI-nSrnPim&)U+}_@b@B5;Z5G!kQsq-iQ?nu=0NwAQj*E@i!5%Wyc9 z!C)W&Ns@G`9I%okd7n!A!jlO**^?xZ?RG0+7|PiAG8vB~iXz!;HnQDrPyXw2G#dT+ z@+3)eB6FA1NhI>TCyt)hOx;`}S-ao8>tS3TU zL9^j|3aQl;r6tQUhNBVe!MkS75wWr?DT;zn!^3sMco+&;(2CxV^ON!0dGoQL0&qE$ z72_MjIE=B`il?%msjd%e-AR9J)~7t@KFAplfdJ4J8lbO{&5iV~e)cXXpujay6ySi; zf>MOT2|<-nT8$U}eQ4ZCt&}3qbA~Qs90NYk-$PbF(SYf{?Extl0v;3_C;$sI4yqig zCzNmK?;gpr>@an=-&d;@<$A${yloz|v$S#nwSzK4HdA?Bf!eld^WQg3320!GfsWAq zKI#1}O+O|K!^3fHtz~8`gst4Ty_!0Jpn=@Bs(S8q5A?3?douT>sTF!?Aj?}700IX^ z2Ih(eczk@s_x-~XG))8M2rMw|H4R`~JB2Ig#rACv^nO(Pg1lXp#jP~!f6;XXAl_5^lhthMh;!dk1H zPDhg@(H)s6igdMF>BGZ=T5EMY9={KX;c%#c&So>6&1TxDiw?dtwcqP$6h&I8>To#J zX0xf=wg1U#r-0HlB}o#z_jvF3J`rK^+44m^B@T1lgJvJ^VnpE6*Ew+gmJqd<+p$Ywb~nYUk3^ z>2!3rBN1WH6~0m)t&u=LgtcukUl#m*x7hpo{XUb)r1mNaPML`4P6}fTyyMeqXddURuy>Hua!D zX-3hJzbs2~=kVUsX}4*$S{P#}%aXxhpl>FyTrL48n28o~(sGpMXE!D%qU6 zcTB$l9_G%HyCwM6rW3Y+MNyFFIYm(%Wq@qXwC(9OfG~y>un}6^Yc2RxJ4=8v1|Nb; zAuAz_Xm>B6OmWL8Ve=aAJkW05S*oEyi;-P|P=!T?#9}0VPm6$md|LVD+85 z@p#`M-h0;THE|r%%C_Jku&ddNZTFOG$X7sirUrZl&cQn00v|dTz!ml~BL03u9LM{1 z%d!j#$G8O;Ki2+7drFZ4o{MkpR07*qoM6N<$f}Dfjs{jB1 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/faller7.png b/amor/data/pics/animated/pingu/faller7.png new file mode 100644 index 0000000000000000000000000000000000000000..654d31f0e80a280697072cb565459cec80e10483 GIT binary patch literal 1032 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 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/floater4.png b/amor/data/pics/animated/pingu/floater4.png new file mode 100644 index 0000000000000000000000000000000000000000..4255147a776e346850e8921e9788bd86a1338625 GIT binary patch literal 967 zcmV;&133JNP)Ce%t6L<{zy}&Ob@ECNMrA&W0J8G?;js{^*Sbe7_ORO*|Pkg(9MeF#Gvad zg8M`ueMJ*q6>?jzD6K-pF_;4E2viU1HG~Df&F`4?&Ip%Pbkbjt3^IB1?k!oWP}YL6 zKn>d&xH%9YEzrFlf4qCkXgrdWDWH^+&`+T-*hxisrceZS4Kx8_1uBLbMdcKJd`@=T zP?jav*VixGnim%r0*EfHa8(?(9w165VzW#VV?`<5%_${Z?XnRU+?wbaW-`_xt>d?hpdrd%X7t z+2c4qO*5KKrx76DdxH0&wt~-2p?hGmlGqkh z)e77K-Gf*w3KPgpfb$Vi|Ko`W%#ENN`=cNZqRYS5kShfJK$0Fr@1Mqac88MrJqX?T pBN~3ahWw7u>qtC)_kVmV{sbpq2mcQysW<=t002ovPDHLkV1gnbzvTb` literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/floater5.png b/amor/data/pics/animated/pingu/floater5.png new file mode 100644 index 0000000000000000000000000000000000000000..1c2de68a771360026c3f8228ea25c711266f7115 GIT binary patch literal 960 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 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/tumble1.png b/amor/data/pics/animated/pingu/tumble1.png new file mode 100644 index 0000000000000000000000000000000000000000..132187735a509aa8e01f06f5c671f667c1d17a1d GIT binary patch literal 1319 zcmV+?1=#wDP)laLjoKO!~|ks+0UC=bm?eT)k%AELZ(Adf?@p^F9yH^L?J@d!F}&7xF@0 z$O`4usgtt2yh3KK)ugJ%m&=hVckI|HpL_78rp81-mm@U+AU)k9RaKLDdHK&5#D)zU zWqEmp?C$Q8Uwv6GRaKMQON!;-V81+f_KeKS%a`9AIsAM;%m-|1Yn5$nt+F6zwcP)H zvD~|NkKA5TET?Tt9y(Yjw{9(#hYr>~F$m@1jY9|P* z;6W)buaNT@>AKFRl{&SUi)?gvDy&+=wfqt~drj(2^dxj2*3{5)v{_kE3zCV;kt*l2 zG7N*=yQ;|b`4W07V$$9bq^Gwpu~$}B#_7`?$}=J0{O`7Yy+{7q-6f}OYtahb8kLtW z_R5-%YNgZZlB%l7%(dDR5m9}df#2^>IBIBUz+YOrNN2=L z5!k=~fP88IgM-%q2m}IDRaY<3>v|fgDPWo=x~}ua>!sx6cyVe9?d|PPSAhpJD19jN z2W9nIHIjxK3zfBx!KdoJ2$gmNkQ}>sXdeBqA6a3*$uPWK96Od!Mw2 zk0&jMwj}uQaY^_myyADzRK{CWf6<+r&1#jeWO6s_7NVvH&oQ9nIJ_BWkN&CmSFZT-vaw?Z@f&A%Mg+fRY1K6y~iNik5BI+ z-1j~ArbMFOmStnOjrjMO7Ahk_tvv(j7x_Ish+td`Q<6isuSU z#bB}mK1l0CeP>iz@qNHPwM#P52bzZKz!0hxT{2{xTHMvW#sb)w3%<>$uQorM d`@sKN{slGsDY|n7kK+IU002ovPDHLkV1j|VcA)?O literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/tumble2.png b/amor/data/pics/animated/pingu/tumble2.png new file mode 100644 index 0000000000000000000000000000000000000000..717862d85adacb0e90ef0c30d91fe6d226d5cb0f GIT binary patch literal 873 zcmV-v1D5=WP)`>ji5p=DBy{ia|kfX7cC(_(L-tuGlg`I)T;*+779HeGJ)s5^H-;b5o$F3ka1!lq2Y5 zfJjHlw1zNX!{Bldp7#RJn=&%ozQ|yz09_H-ZJ{e~5z`X6TZ8|wISInKf}yMQ9Hs-a zn211o6}?BmNqf;ZpU*QM(x0!@;C!!nyr}ij_as=c;@iw!bPMciwZ%ppB?uOx?Kk4e&eIj0!tpiV2?1*tG zcr~~mz6zk@DAu7%V%@jnW)2;nay;9#jcM-y-jGy4MYiV-00000NkvXXu0mjfvJ#y5 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/tumble3.png b/amor/data/pics/animated/pingu/tumble3.png new file mode 100644 index 0000000000000000000000000000000000000000..ae093e5fa89568fda45650170807d3a8ef1e4261 GIT binary patch literal 847 zcmV-V1F-ywP)Bnk%*VnimJkmS4<0<0&_fO_ zi9te$Ad9XVmB1^+u%yrI#!NSl-M4Rgu%Rrwi%GSI(*41A7`{LJ|1;k(18v&0Y18Jv zM&|s0HcipAGUo^MziMp9JM^Q6Pjop9>Z;&*dUp1no|u@>(u{2@i19YT!<$#MEnSkm zcbK03h2!b;-%Z~~1rVq;7M?yu{ZVEiH_x@95%RZt@KlQKz9Hiu1qg56)7Wza z=-&|Etl)VCDk1nAJ`e8C0pPkWj^pskd&T(3_dK{92je5?On^8E-U-aUbW<IEG zQi8D_fz=SYx*%~FKX;#t8|N4wzxC#X!@y`5!Da|G0G8-M$w}nyI3yHU8hnGfT!rs` zjxgoc>UMQ972$`kYn(V9fp`sG$6!^WUYC*GKBZry*f*+m<^X2h-2ZCGEcn4sEC~m7 zXg4^3jDV#{cG6&;uy!!z)<|{&!i1Owwn^>711t##e}<;!4FNU<{h16h3rDZI_&NpR zGuXKoVpWpeaOW$l{7T0={KBy}i*f|25!O_c>AMywk!oq)GQcKZoIOQvc9Q(F z0wphjE(Z8BfU+9J%EF%ky&h8XD&+Dddb5+1f~A(`Tf&ZaXwwvW^t7$#&qzIdFx~Pg z9zK}X^Jk5E5>x;@BaBqk|L&ZDYB< zkHZn$#^f&dChBruc$RzK_x*mK_xW)z6ev*OKSQ}}ilV+u`o6i@R0~mMeIw^>Bi1)p zh=QG6iK4z(8&9+->PxV*E8}O`@XxbSao#p!J6<9pOg3t5L~A2UrE4-SWJG+=YshFF zfDMyCE}t_~3T$YEtrjxqCX0^X;k#wt4o*29{siE05M0^Q-ron{&Wd5Zw!*>M7uaeg z&Np3jCsw&?!1_jLmf-f?3n7PKUZ>w){0L+NRJ8@4d(c0dN)BMAIdmsh76f{zYH}OW zfH($okfNYjLao-3K^JvID)~%!QcrSf{iH6eZ+_=_l8yYgZd}xYGqg6czFJNtOtbs- zYym1ufM*mZv0ETF%h&mO@bCG*S5sb|X zr$WqYwOUOsPtHoEDzBbB%}!?+?n$Lm70+98uKZC8Zf`%3Fx+$Rf|oCz%ZHDj==I(s z!*84p^L2x@vkf4XCl$H=sEZbmN5rh;|D+8U{vyh{g*?$aKgp(v$V=`lV3G(I@&W|_ ZegT^3CNN336T|=j002ovPDHLkV1mxI1Oxy8 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/tumble5.png b/amor/data/pics/animated/pingu/tumble5.png new file mode 100644 index 0000000000000000000000000000000000000000..683872c3a232f83f5b6881dbb540ab6003307a23 GIT binary patch literal 764 zcmVs;%l z#+op3;Tj``ywJ)OBRqtKhT#1d%n-}zHo>`{O?dI*;IUTL)Kb7mIOHLECy4u$7c$GB9fgfnXo;gL$NAc(3*VLqo&$8PMgf-$S(!cXfqDRW&gTL+bWGXJ@c# z(W|Rz0D61-4(4-QOFN#>;q#Zgav)u>pOgQD^WA;*w@`ooz;0b@nToe=4@$*u_xl6l zaOh=&>8h>nv8>yg#qSTu!w2`JtOv$MM`Zr}A~Q2_Bxkaj{aJ$Ff5R$4Bpjmcq>qjc zAF)_eskt0uqazh%X&8o#jgCk|#%g=JcV7V$6XVjbxgLu}cWe2pDO-L_t(|+U=B0NEBfh$A9m%$~LSz zESsW1Z4#jo600ZO!y4kLgQU1W*DCn*;W~cqZ%Y3{u&;S2?%s`bYRjPPkx;rk05h%N+yW`>|raI`R ze$pjm7Qun7O_`)nMHEyie2Ed$GMT zF8bqjL9f9kP=bXL%w!78+f)<>_nCRyeP^MB8z&FwHHg-;y)rI`8c@Lmgd%Xc9WE&B z2+U<+-uB+Ev~4h#1v>(?D>tUq>}nilz&ICo%VTvwtcfpD!>6pjc`2g#kPVO_2(czN z=3b413;-Ch8AV`=LS2GaUr(`=_dm2Nd50HEP^e2l@T?o#3*m62;?!4Kt*sZ!4vtZ7 zv$r>Ktj{(W46?fV-CNf8TOaJ7QlD9eYHKQHe<*j&dy+JU1)%>@pJxMS>fPhRq?=6A z9QJPHPWNr;H~Zv9?U0PMjQZ~VK+Ax5{uAzSt+7uwiZ(xfe*;HRL?1bUXf#Sk=?ZV` zw`lDsUqkqQ57q=SFMR>jZQt>Y_ z&CqU-rzR&3JRck!5>AR_a(GuTms^)qYE)9GQOV`jWomLl!r{otiSO|E(YW;V#ARzr6c00000NkvXXu0mjfxFtVT literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/tumble7.png b/amor/data/pics/animated/pingu/tumble7.png new file mode 100644 index 0000000000000000000000000000000000000000..4e01cb95881941ca879e186dcc7370f6d47f3178 GIT binary patch literal 725 zcmV;`0xJE9P)+; zVh_uLw#1N=EbB_sd>xjZ+?~}{$wRacyfEMU?|J6^hIgQZ5=!{rA?>B8y}d&KXqpOu zVVF*AdissDZvyg(%gPj2&gNzs!!U~$;wdW0Ba19~7Cu?QTb?n1gFnGru289}Xqt+y z>tb-AU*z}d?aTH3QGn(>>}p~dCb2|P+RMF{Gm{Y`uaNOyfp?8kH?(n)#WHAmUFgkODbBx<;E7VnlfGF zyTNH+HJ_7T3zBbp1=(?}rp%nTipOKLwY4!fH_O=A0|1(vn}|dfc{>xr@AtcU?L@xq z2bXWUt~(YCPKjV}O4L;=V(5B<=O8`y;N}<$I?@(c{`$Xb)W#g~aUE z*6;d+Jtc1|Lf%RaaI?3UQSl7)6|6^9$hW?^ilUQ#{O4N0k|FXjt-9ht|1=MPxLA z+)Da&caD2L9OmUr8134J%mje+h{>`UCt;eo0%~-STQj}(x{8;c-w~QGMosrCqR~$n zi7z>EAuD(lFGngXICMZlRgY4u9b@Um6^x{xvpplyU-=jG_VtSsiQ{xV?8038{=0#d zMo|=eY9)%IFnsYg6_->36XO#5f$WYbWcho(gc3?9;h(@SO@kP!E5MG000000NkvXX Hu0mjfvb|8l literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/tumble8.png b/amor/data/pics/animated/pingu/tumble8.png new file mode 100644 index 0000000000000000000000000000000000000000..3b8766d0235df8b0a39f6602df6c810cd0d79e39 GIT binary patch literal 1066 zcmV+_1l9YAP)>)NRwIj6-_R=pL_;ESsd%nN#`P~C6SiuTb zunZh}tzSZ+pqM_dXqqmj&nvN5Tpo*bXy~LgtizRQrnf_O@`KErqDVnC&oK2s1 z(YnFGBa%oYBoqotEEbocp_7aA4-cP~jt;9z9E-)}_*=)S$;o7o#A0z7895^(BWJ|) zdByKH<>H0&GCr1(9XobP_ZCY4QmM4WV(}_hB9V|(D!nw9QmJ&caQ3#$c}{?nmu1-K&dx zdYicAtmH3!BJT8;GW^-ehw={|I=uY1vCs)k)5RTp5F;;$JAOjke5JWN-Y1%-OKZre z8DYI1o_YzU&nso8mZvzd4uHV=2OoSP^nn}z)_R@Hw1Z(7l*=X0V+#P#G<{h%x~@}~ zU;DpzivB3cks!2~4ZPH|o3()^ym|uwe>rnp$X?~g%oQeQ?g7wcwR7om=D$%n|ERWZ z-6mImnvk;VRO8O?CAl#+GP#RrG>TG+rTqVTy_*+{HUPVOc9H1ndML-If#2}+TX6=%Fxb4go!hr( zD3xq7nbF5{pv!8no;w$54xoE|_*Q!{RvFAY)e?{5^%|7zyX@QdvMgIb?&ksk!C-*a zO|6RyXsA%AdkV*K0cbP>ta>2myKlc)z5}*x^P~yIqRswS`PvsD5cPK zjnUCjPM!LkLZKpl;SyW&8<@L!O#UopF>_}*e%{X=r6^qcfnd`s=#72=W(rf-v$HtP zeRSQ2QVO$}<;ACF*suxqJpT+Wt&KE9wu{#NzGums&>cT4*ptZhi+Gd|kU(XRRax?}MPXrqfHHT-)1J8CscOP1;-&0qBd-elC z{{nJ0j8^tLPlGgjz$#9vkN^Mx literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/walk_l1.png b/amor/data/pics/animated/pingu/walk_l1.png new file mode 100644 index 0000000000000000000000000000000000000000..15df071b7a82dfd9c340d6a0c063898c6c080091 GIT binary patch literal 869 zcmV-r1DgDaP)_(5y*e%)QB|t`x@fMHCmQmTFp@XzZo4NTG1JcGD3h)L4 zFM~wYb|qD^l>hfUv(ggB1zM9 z{}4w-j+q}S_76h%w1G)-4RJo+fgvRt})I2?*dBO;CT`+dptysdfyNS0;N{=ZiUfTAd* zX__U#)zy{sdOf+{6k)6?Kl0BhPZ#u%!qS^@xAYq8dDU6!|M$8j959oJf;?z?AUNs{d6KClYF zdym$dIF8o>R8_SffTn3~3D3m=lu~QO_tOml85e^80KSXIV6DYDhf<0#3?B`#7C`!1 z@IXC*P{SZc0Y3gj(==NN8)NPVQhQC}FjKN7` zaFPuN4s<}J1l&o6IhJJ!%&{#j%aN0^tOpAh25wlx8tAYZRJyPm=&%_O$pcoJ18Jc42Y%p*m`-W#Bmksoiq^VW6G9+_0H7!ePA*_H8imZoFQAPMw0oGcgD7qskiXxO!2q7@WP}enioXtL27eX(^4v81tm_+X;B50?vX2oB-*87-9)R;S5|Cj#qE*S#TNw0O9>4uq}WJ z>H~>@CZJ2c0sz84Z^B|#uvsqXDag~?y(uAr{>-!9_|{zQ zEGV)-z5gq6mEwA}VYv~A+A!%l`Y8xtRl)C954K_F+bx(U`^&{Tz~ddvE6wUdg^v`@ lRumi8kV`3X&UN^|<3B@4ZRg)72TuS1002ovPDHLkV1g7Zfu#Td literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/walk_l3.png b/amor/data/pics/animated/pingu/walk_l3.png new file mode 100644 index 0000000000000000000000000000000000000000..ee92b6889909c7bc08bf19b99b1fe1f104dce6e5 GIT binary patch literal 927 zcmV;Q17Q4#P)C-g*IwZm{ zY@Of#hQs0hNgN#=`KD>SQtAN#A;f+O{PpR`E2X?r$~R5p0Ut$?KRi72{eIsA{w6(J zO9*4p2;wR^DE>6P?I4b)(+ zp#h8JeVBm_8745BT~f|%dqzt6tf;OfKx3gP?<`5-U{Qj}!7Zo?fxFuwlx4X!fzHOz zpW<*q6lYtMF@LJ-feAo$E>-~0ul+sJ7{9rKfPiey5 zM5*8Jd!>|5({y#yb>HjMzzSz)XWm*%Q50lZhP8H+T$5$lM*H79Q-&$avUM({L~D%@ z;=$g!uD7ze6@kfQ;*%sH&vT41EtxouSuU6Ny8z(PwHFfzf&eKcS(X71MG;zSilSh# zSUh@Wxm>bMF>Xb`IY*Xdlx5k5y(o%}bzqEPQ(GQv6MiWrK@b3-wZ<6pTgF71TBeG&r2yeIn?B*DJSC)go7L1c-cUb4?P&>MaAXp0wDxJ(0%mwgGBRT z2>nEYGf*379CH_PGz$Is#dYWTMff>~z|l`apyG2j#l<6fH}V?@=*2yTQIB6!i41CJ z444HVn3s}|734*>%RnMLJpoEHuN;?UNEi(ew&JbK==TKlZl)*OKy7gj&I`fEOkk}g zO;cvGS?9&Cp}!10wSk_Xsx23VrZx@le}P1Tbgr#~^FnY{!Mt)Pr5KGyOsCV%&d>3e zAvN_>1&#$}eRudYy^tj_W&K4nj*pM`JDR-~{snmclrLP=w7dWS002ovPDHLkV1j-5 BvdI7d literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/walk_l4.png b/amor/data/pics/animated/pingu/walk_l4.png new file mode 100644 index 0000000000000000000000000000000000000000..b8f9b6b4eb6cb35e0bc656688d3a84d5fc3ebd77 GIT binary patch literal 858 zcmV-g1Eu_lP)p%5%)mL8^{9kQ294erI?#AzD-EQ~JIiSwD_XF|J`Tg%*KomuxbzSRYK#VbO3*dHI zs4+&3F8w@GGzvsn@eKO@DEcB*~LtthIV^ zaq&7Jk|g=%;mPw{^E_8;?V|uhMAI}?Ypsq(BR!b|BBC*FOUxKUzuzZ>z-qN3gus68 z(MriO7K;S{)>=B94%gS$$8%%%u&6Oc(=^rTbgH+vx9Xfb$bmf%9!BWu>gu$#lx3-^ zjaF5qS(Y6IV8-C5c*6a1d zN9Re~Y&Nf>gfT`$1n>Q$!t-zK!=VO51gfgSdw-Dm5AAE=RHs%?0-#f)HZHJn$!4>` zdrw{0M|0pu2pe=_Pat6gI&IokSgaO+P*v5@9LQ3`M|YI6b0h~vc(Xq|_aPP|G|(P2hYMUJ_A>V!Xw0eLS#y(ap=<&8hF3K9o? zLq_0Z5)a-!NfIsxeeyogc&Gy7g%D_;UMBi|p!yfujL_UYt$ZS)Ukj(Y$W^CSb+X;F z>z+>6f!6tT3p+r7$sbT=U=n`ngaB*@&NBzmgRh_hv5uSNruAwaQ8W6{^PPQuQ1fNR krCaRCD`5Lu@c(uD2QAOl*)>i9SpWb407*qoM6N<$f}=r}LI3~& literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/walk_l5.png b/amor/data/pics/animated/pingu/walk_l5.png new file mode 100644 index 0000000000000000000000000000000000000000..62358f98f104ac60590211990462e7621fc21a55 GIT binary patch literal 842 zcmV-Q1GW5#P)@6sGpx_`u?I4?yJ^1jK||I10u_^@J|4D z`swT-`RY)EG)-ySmORh@byk)o&)SZgkK>@V4qEGQb8{1{wE+m$+F-2>A`*tf;Xwet z?%nj&d5F7TdHur+qVKNw@!LO0;@|nk7Mz@%;GDxbM-)YLUH400zc2O%{U8Cco1gj` zS^*Cib^)&ARBD=T&bw=m|IDiH=Robj{kBmNNPrlWTf%Y)uEw{2Hz|tZAOM3$OaDd! z0{DA5dRR12)-YQMmGcMre3D$An~+%vTJ64yN~!0a2Y1Zhr$tdb4~WTR5{xmSD2k9} zSrCzZK#n_zrqgL~&S8w9sw&E|#QTT2-?s|A0L*5y0HC#Iybl-mW9N;zybMnUFr7|A znx=T~w^>=cnT}Oe?Vn?Nz#U9N5dlCcMUo`Fdc2RMz21WR!Q(jI2JhSBqXF>VW39y) zLli~58GaNJUR_-cs;a_TL!Rf{-rn}g?5_c*jqr9PR8z&p%Q?oFy>G+b z77V_h55fltGz-qNnCr4cM0RpODaELWnZ5$iEqG7SC7fpPu8{|M^C$@iul#_{Ve0qW z8__h))}hv#(|pMLY0jJ17SXqxO{&?P+m{92`@v^#L|Z<*Re`RfY!sIZPu(gm@`&-M zz{D;13fg)T+P)&P+}wxp(fn zFK^&GzT?W6&1N3(fLBWSF9jbChdzoTueJ6`l6a-m*OBP=`!(R{Wvy*Y;z!dLdc7Xb zIR=Bl*|RiFnM@|1r$o7(d9AhATKlpry;90+t-ZC@AC=KsHzLrvbfMqQJoy8N;-S37 z#uZt%rK}83TgPsUmG%t zB7z{OiJTg;RRvD-8ATC;!GN2an_B);542i_MNuGf$bVG{&N+-R#Bp4wCk(@jc72rs zT5HlYMdYAHp6BfM`+Dx2yC~;ZD{yyr*AWqKj3Li+%CfA1vn;#1xivDOh_Ku35D}`X zBFi$0qWI@KNs{;^NqlSFa5kIzUp8W!3uI4pl_TiB7<9f8b~zV!$3_JFcH~7WlzRP7 zsK8|)2h??{7%!zhqy#}gQ52p3Ka@W9Jroeea5S3;ln$ggoS1+NnEweVx;@tG_2-?8 a+KRtie^m6L_8nUQ0000x|ZdZaEByLB713^N&YeUkL%p_HAN|3x2486=T zaC6Koxl8UPopfHh`u+9S`~Q0IfBaYD;NU<20c86Aagk+NT^talluUCU67t&fAs{-P zj(G3o^z>A;HZv>$(&==59*94`b;KAW#uyQqNVnS+=bY^C?~8NpT`V*f=Kbzis7_!w z;lv-(*@^%ho>rWlol}-20LB=G!{NgJ{q4=7-&#L*Qyf7RKxy{d7Z8D}ARSheWvo9- zl7!)K$VvcE-ar#j8VI0(CaCffst7~|m$OUqJf|p%)g6HxBdBMI>1Jbu&zEp`@&03d zSA6MM*|vx^>V*uIQcr65dGTC&^L)TLCtB-;LHzPhid$~PBi?&rj4!@>Qb4=irYMR}EAxJ(l=ON%sj5nPy`F4tZaz^h zS(eFP?}t{awU8_R?GZTVq%2FEb2#TPMw90`d7hJ|DFEJkthKaStsk~g6jW8Uy5{S4 zyCO0Xk%@TkrQh$%_V#wog4SAgcX!2FTeDz{kzTJSOZUL>@v&@dY+&v0wSPT4JTMxK zxWB(=JRTEcWHcI)=Q(R@YXFSLV{UJ62_bx1N(J6~@;ramkdUS+?RFb$En4fk0WU5d zovGDovA4H}b8dMVCP`8kne_xsmSrSKQs+Vl3ea&mIgSQ>y*>V@Q^q-o04)zwTc#)#JH1tYTn!)gHJ7OtT1Ycc1F{_YXGd)99ulIbEDBu1|yz8Y`KKYal>9qD@&1TGKDv joDJ?ESzpM2{x$I(#I~|>^44`l00000NkvXXu0mjfE?S}p literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/walk_l8.png b/amor/data/pics/animated/pingu/walk_l8.png new file mode 100644 index 0000000000000000000000000000000000000000..316f46aededd676102f46fdd67581f57fc147123 GIT binary patch literal 958 zcmV;v13~NahXroHxN-p*(e zOP=hfmG<8a{9o`VXwWc~fmS(>JzlR<~Fc3zBxy9M+je%NoE z9MxFsxVWmRjH4_|oO39p@ZKN%yPx+uy++V6cnkFcJkW#5Ukfl6tsDt8KmPG=j_O_j zYQUP!xz<5h0v_)?uHIZ;N8n(9PkYbjD*;YJqgKPQ8XkUCijz5fTduPsj)~)#jot4W>v!JIhQp!6 zaV+EUScb#lRwaBoUaJXPEzfgNN{LcR27`f=WhrG@N}lJN_h7yLG&<+!=WmBtYkRkw zq9{b96>F`mj$^P9i7d+`%d!oCD2n!0%TN2ttuYT8kYyQB6m`#9YvMRYDb>xDWr^0B zBuTotrfHZ?rvP$#dMXD4OsCUeEvW$zBuPRX_csKm-|y4!Kg>DjD2jq4NyxJ78Q|-c z@C8#!J#)}B4a?<{;c&=!Jf>}10KE5HTwDZi0+`R|^4O909`8N9Uay0AEWh4+ilSh# zSOmW%#hv`OHEEhYdT#OFcc0s=X`0`!1@{*EqC0=@A0qHl(V2`_vMfa^a=l%cb^^%F zK;(NQGSlK8l|1JhbzNhv#W}YZ!kB8+M<~F0yE%$i!r8)#Lm0p92f(}gM;Aj=bh44fZ)Ug zver0N&edJb`|fGmw( z)g|w5&1aF=>yZqH+0GsyiIn66EpnNNT)zBI>CI%b*-VzpCC)k8wj~ThMzP^IsnPTa gzEyNho0K38`*}^o{TmS$707*qoM6N<$f=*Y@BLDyZ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/walk_r1.png b/amor/data/pics/animated/pingu/walk_r1.png new file mode 100644 index 0000000000000000000000000000000000000000..3dd16ca1d78a1f6cad03266a428764f19d32e2df GIT binary patch literal 1008 zcmVffrd3KI#iltEo)d0rr;z$a8d&b3=TMK7gX|s zNOK^6&gpB@v}!8dNUJ!zmVe)@XJ*Inf3^M}^}v|6pN)>@SB^I$E1 z-oqq^pFbUN_z7?`c$mS1f`@&W9pL@uymt%2Mx!BGYtdSZDrJJ!S}x9ZoB>Ly?^3Wl zf+&)ko15K0XstJjFL$9io$ap-K@~$n; zj%RJ}@kFQ75kPvq9@FWxdJzlqwz7A=PSiRb`!X^m;wE2I%+uUZ>NM<7I1SI-}e~~htg`bUaW$9+fbHcp={1MilSKkmQt6Z z$hX>oCjsPAi;U+jR{Nx}F^ZSo&&Pjp;JfkL0OSn8I8Y$thGf}fqqwyeV+?touLY>H zIdY*z&H|C^=bMzhCqf^bgFFK=TwykPZj4!h+}+(hx+#SC76E-;fq3z5GO!j3Hi~bo1I{@wi37H&a}F@Z5vyD9Cy-k( zFN<$wGN_6Ss?w}!sRqw?MfG|j=CUDj5$xu>Kn7K@FGWB!T*1NA>RYg$ltBHshZMnT(C(?pmsxg{ zB`Au5O#qYoMCEIk2b5LNS&c-9^&^<}hzu-iOK4XmoEMlHbcpz7v)N1R zP!t7cXJ=SzSuWG@cE4`7`)uD|Err%vPESu|I2=j{L59PjD5duPH@wL}2w}^5-EJ4} zJx$X9V6CMn3W}n@7)@E0lx0a>*OX=XF(!t?p%`PH)b70u1_RMruV>%y_vQBXR+^>} zkyb=nIX^#_qx=i5udj(Q;+(@dhcSl9WI~K_J$vsx&N-A)Tbi-f%EiUo+wrRa%CaP- zMAJ0H7#WYp>*iW(y!V`(oGgX6E!ydH`f(SGMx)Go&)wbK*31F&JjXeQ)_SKa@;pC| z4L1e2>3Oa7n)Xfl0a8lO?!6npO6|KqbUGbkOgrBRAsh$5CheQepXgSkv<>3n;Q?#y zaR3-&UL0%NmKY;V)3Cx&*OBRTO5s0lLovqe)IdsU>zL2yBtWa2$)8tzF9JHRk^8O? zYO=5K@Ia!JVzF4TieN7RXxkR06e`Y0ZOyl`MzM583)Ja-45XB@S7Uan>8d$B2YC!A z5-Qh#eoRDR4k3_Tr0gT9IMZ6oE+LjKQP>G?F?~!ywE|;d5gmy=zZp^o1$01)Kdfl_G3Ibc!@4Of=27KThJ3~XTr!`eR~V;c+%Oj!dB4KHAl4JPF#Rl0%JS(>!loH<2( zl6AV1?f1Rkz4z|m)n08+6A=%1z+YTk_!oCBB0fnHueJ8Z7~k*rUj`z}GG7C1KfPYB zF~plDFAoL-KcCNc*3&e_T1&UvJ#6$^>vg1Amic;KmZjHPd#$xEZ=2;qut(w%MG;Ao z@Sz(KDoY%9ndOS}a0KGOoD+0E2dx7P1_M8tOaM^g_%@2^r3M^OmQdtC1x6su?msGL z1Sc+N1z=MJC637%WCjog0=Vja>})wXd*096eVhZhyCbIg9Y62j{X56q562PQtMUC| z`~ktI=0P?uzgT=f#!p7g%kb!5Uwo?klu|h7SQL&0LN)7fkUnsFdirE!VHgs}@gvBq zt1I6+z|GCglk3)6I-Sm1jnQa?wYGf)p8KhD4uCk08IQ*dhvyh$+6CA?Wa2nRDfI|0 z%QE`?ex0lgheO{Qz;^T^LKH6{sZ_5kv%IOyk7c`#w-RuD9X%_?R?JcL17{;!#t8Fbq*jk)|n86cI%c)>=da zr3B|-xm+F&pe#$Qwd<`|tyUC8@vtR^`FxJn`fvbMRk2ts*4t4O1;BcoPN$5=Hs(ZIoz*h$85I30eWzyo~78EtelF)`zbEq9Ke}x4|%k jG6yul$xS;qp+nm*sWKiZR9Z`r00000NkvXXu0mjfP4`Ei literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/walk_r4.png b/amor/data/pics/animated/pingu/walk_r4.png new file mode 100644 index 0000000000000000000000000000000000000000..c01875ed3fd88ccf2471e034d22d0c509b32a86d GIT binary patch literal 844 zcmV-S1GD^zP)V-+Ax(3;*N4io3hJ00bcP*Iy3P=`?7q_XPeno*!wN9@;nn zp}%()UYsj?S(g7;&$5iRZAp^kd8409CP4@hthK>f8-QS~4G#|wL2Dhf*5TpZ^eh!d z=RDkX9p3vL8S*^mrEwT4X0sVnH3z>W++T$#`7Ju-o6$K0j4{DE2Y>+H+z6&=3}ZvL zk;v*j2oK7GoNQn6715=S2FZau&mYZw3p5Uj0@)OxfEW-0nh)FI{BR2N*q^c0g6qVS z8pz^amK}ru57BEM4VHvb%7f*nB_XvU++LaI>jin9AFco0=quydaBx#0L`c&#tPfSLZD9&K}v}+ z27tP*iQ|~?ZW2N<37<nAK;0XJvm8-)D+9jUx*Q`w84woN zDt=k4Siaw2RL9SmAdNealIT@8yeSR8rh)E5Z#*@aF$lq8v317TOG|WJ4QIi=1pWd! W6I2Zb`|Vjm~-F!2kegt?9J)c%4DgF_cb$AEQGFdq8Y}6qwNXWi^ z?k+??1)!mHz&i-*|MRqt(_XLl=IrcjabJWT%CB(xDG)`MJo_519WJiWcvU;f8>L~% z(pG$@6Y!+Y%UPC*QfhIplp@PAvMj@gh|y?N8$_+}Xsx9z%cXT=%;HoSV>miG+IrZT zSGl#OloDgi_6ySf{=OJvRyx&MFRdp@a(@tm!9a{Lk|c>JrEUaZjFBwMB+IfTftmxW z&w*~YE8csYa{#p4ZN}sA%AY8u&|1@MHqlyha&p3KHd{OkA#Bcx3%!_M>y3WDzaY~*pSN0?rsBO9kxKgg{`QD?lLX&nNs>sO=OR+ca5$8$ z6{7F?+(aLy(w$)+;{TbF9MPq8TRbPxeOstmL<+Py!R*tw>2m$ z0m#S*p{lj}s;Vf80_PmF*$flTF=2w_t53n22waO!(?XiW8*{*WkN2LBA16dc!(Ozu zCs+xfR2IrWVigB342e}6rNBAI>FFtEH_&Yd2p-mOVP!+|=~BJ#U+lc~SLgmOhaM10bwZ1h9O&v%n z!OcM1yC12v6-zZhWQ0g=L?)RGdv>KT0g_p+zxe}^_uc!|f${mQp^OC&I1j<`GPRh! zWig61^ivr9KBuqg(s=pdRuS4rrR05Aa3`PwD8;*Jn^#BwR>x}a_k8#D_8ZX$8{YtL W7t%kfDe=Vs0000(VP)Fk2W# zMPO81F)j|KNFhN2QmJ&hZr$0X%XMdW+uVW6YXWu`mnqLhAX@}Z<+=!1r3yn7a6p0! zXbQusSeO*++w&b>d)I#s0(mfu&-oe*LU zk*4X_f#~=9bEjW6W6aY-T;KJ_rj&AR+q%JE@U#F|VRmsGyREG)7lxq&T-&xzDdm(> z?$7tDL3pc7)>^x&ssM=Nn4MPlxH28JOQDQy&i~eHqZiX12m5tfh%*@ z5|TmEv1uf6U_pp0w5v{lw|_4mi*w*h1xTr!mN=t?`+4sPYeAM}3$>r7sgqJUDdm&O zaA5(`TDvUEoKnigas2o)Ow-imd4B60DJ5x|5=9YGN_Ka5ms{GHdM|LP|+d6y$k+W7Jj#5JDh?xO1_lX{f3Stu+9??<1vL z>KJYXD9h3_#$c_zbrGc$NsWw8^&)l_O?D1p6kwMlI!NldUBFOS3gVzgPp!R?F`f%)D<$Qc)PC{9Ry^l zxwi99YO&Tb8jZ z-*V}}bJqAS`hks&4eF}m!}uqDG!=0o;o=-FYTo>M`DSH+G)-TRem~{ix#0P9O0+&@ z?Vn5NE)i>%D1vRX#!KDN+I244DSw=fX3mX(zs}*J!`rpqy>G+eaOjSYk7=5Q*a$Wa z45Drxb}Iy93%~pZf%e&nDoh|}#};V3?efkfT>80mczEc_vLpI-%PufrrJ7W7KqUvPQenH@BBdlvQ;acWwjwVUyuDa5PZl6!NF-6Zjs^$F^E_N#UG>jz3c~X6S55FER)HEV=t(q0IsjEAGCMTd+$lpl(Vz5!+9~LEX!d(L8mlL z?;g!;x7)rJ?y4vX7K=p~901_*^0F_!vMiBO_J!EV7&CkZy6U&q;+$i>UQ<;ST5FV2 zU)=vSy*L$Mxm?m+OvV`EIR3<89LLmkJuHCtp4DnaRaNYEI{>uSXsv0Q=HM_vNkYDc&+FH3qd@`g7nw7Xv5U#f8d&3NO;UdZzsC4-_zZM) z@MfMeNhQ(%zJ&UHdll~lNDn(`|13`jP)hYZ-1WK;fXm4RjqR?tFROMou;ZLOONoB^{pcCszcz;Z>3>&vGTp|!s^H?I z#K(rQ^-MC0)MX18bJSdT6seRlbQLayAhi;iXhc(zooQxza~KN+ByC4Tv+bah(39z3 XE_5^;2ktBn00000NkvXXu0mjfi{6Ua literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/pingu/walk_r8.png b/amor/data/pics/animated/pingu/walk_r8.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea1009fe7576c5c5988dab02496397eb486bdc8 GIT binary patch literal 848 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 Q5&!@I07*qoM6N<$f;6N1lmGw# literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy-4.png b/amor/data/pics/animated/tao/yy-4.png new file mode 100644 index 0000000000000000000000000000000000000000..b7c027d44501e7d8a527aedeec1cd96a33d44e0c GIT binary patch literal 1070 zcmV+}1kwA6P)|YSBN~k&5{Y1aeH~t}7Xa}6{f+ncchqV%R4Nq|i$#>nW$3zYyT5DJ zWH1<{?d@&s@9$%8Zx0;DVP$0nKA#UBj|Wbt698aY7EIHGrfF!m+bESvxVpMRu~;Ns z*XK@j#7<97>Ehyo9v&V@Q54cNje5Nv_51yqqu1+EyWOT-E=PhO5P-p$pTObaA)TC@ zAdyIb=XtO!3x*j_g6O|}2lEbx1Af0Bf*?Q;1jw=s!!Yn~5cVXFj*jT&=7#F^I+><9 zHB(K~NEAgXl}aRvB59g7GT-TRCQ%?;?AO=VRIAmf+wD$uZdn$IqDZM!isJD&rBW#p zMUgDa8d>x5@b1}PqoBauiT5C{wfHq8vfK($&$xm+H8j~y{)D)C`C zh5pBXB0@CR;WLciMha(gUQ8XIG>gwv;+0Qav*OAZXad~-(LZM(sfLuJ!BN~mu z=kqP?bWrO-=5sp#rv$pL6x$SK@P1QsMS(cH_W+6$^Txy>hfZy+jrfIM&3l4{4rmzO8 z9-v<|+lc{qyog1lk|aTrr2oY^0LB3T&(F`O*XuA%b0qtL(CoU|9}xfmMN#nd^aNE^$Bx=Gg%57S zSSrDwPWE?(V>G9JaQ$ zY#YC+uJfCWhQpQTrS6GnnrH7 z8_8r6PNx$b$4zt~%QDW-&%v_nuqiF`7#ibTtJVJc`uh6mbUMNFJi_5H^7%YeRUKJp oSr$}PMXS|l@$a60RX`F_cz|&-cYO6P^nZ8Hq$_ zb8{0rJ3H9k-i9cOSXfv)tJSE}>5L6-+cqhRLYYj4QmGVWG8s}7g>2g% zc=P=HOvz;O?*wRM2_lgQrBW%R(`kgm;l9AenQ5A+R;wtN%l+@67URY;-Y-W#fmket z!^1Zy%yG#XG81%_data+o+m|9p` z^}hrM!0`a^^z?*!y$;K=2GBb~bDL)W!~g*3x{im32Yh~h4z=1ig*)3Ykx2a0Hsk?7 z(=_h>{vPFWd4PpUCW<0*xg4&pu8_;+Ad2GD^bgE|N~MCEn;VFti1qb#*TLj$!(=kq z|DKrv0BAOw+{?=gZf|d)>pE=PcKst#RTZzVud|4>zx93qc=CUvXK65W00000NkvXX Hu0mjfyr#&S literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy-6.png b/amor/data/pics/animated/tao/yy-6.png new file mode 100644 index 0000000000000000000000000000000000000000..27881bfe9e908d73803e9d1ffa892d3e4a006338 GIT binary patch literal 985 zcmV;~119{5P)l@$a60RX`F_cz|&-cYO6P^nZ8Hq$_ zb8{0rJ3H9k-i9cOSXfv)tJSE}>5L6-+cqhRLYYj4QmGVWG8s}7g>2g% zc=P=HOvz;O?*wRM2_lgQrBW%R(`kgm;l9AenQ5A+R;wtN%l+@67URY;-Y-W#fmket z!^1Zy%yG#XG81%_data+o+m|9p` z^}hrM!0`a^^z?*!y$;K=2GBb~bDL)W!~g*3x{im32Yh~h4z=1ig*)3Ykx2a0Hsk?7 z(=_h>{vPFWd4PpUCW<0*xg4&pu8_;+Ad2GD^bgE|N~MCEn;VFti1qb#*TLj$!(=kq z|DKrv0BAOw+{?=gZf|d)>pE=PcKst#RTZzVud|4>zx93qc=CUvXK65W00000NkvXX Hu0mjfyr#&S literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy-7.png b/amor/data/pics/animated/tao/yy-7.png new file mode 100644 index 0000000000000000000000000000000000000000..c016f9ad8eeb2222c54ba7fd1e4a543b7c03d698 GIT binary patch literal 953 zcmV;q14jIbP)X1^@s6P!BAT00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3labT3lag+-G2N400UV`L_t(|+O<_pOY2+^eiCcb78C^C zw25M4i)~jfbmc-_6cxJlpZEvdbx|p}@h|uX#Eq^5OE-dD1X5C35{nB(u-J2wHl4e8 z-}Jq`{YdKN9XN}_In2!S%ri3r=CouoNs6L?bB=Dei@{)kUatqoao{)(+U>S5kH0{l z&(6;1oJi? z(DwE=_V)I$ySocnma(+7glII1a5#*Gg#`eB>$-3p2aGXvIvvz%HC$d^qFSvI=R7db z5j#CSrStQ1y1&1tcDqfCG3xjGG#CtKo_@biolb{tZ*NIeRRZ9h;0zob9MH+h3G(?o z6h(m~Nf3l_5Jdm^_1;BML@XAAs;W>`6_#bewr%{Igg+C9hlg~1eNC-aiyX(9ij*-% zx~@~LRwG^4i7__v-tBfLu|U4GUtL{Mv)QCxuQxTg>$;@tIu!~9%H?uYC=^K7b#h&I z2?3uUv}KNFydB}gO^l*{Fi&*u@3$A>+1-GLcXPvBnio6(whyCBndyU5CF)sOh-pY$Ye4Ihr|BELlB@S3QDCCY}#V=lu5$n9ab>&JH#ip9mn9|g8;8USD4W2lw5E(^O4Fuq+GZav6qU1XBCd1Y)rm7-Mi<7osT66qcuIkNSDhPD~&Y ziQxVH9lc&}q7LR%_1q?!rU_lw!5EuZbJH~E7S>z|G#U*-*L8e-eT|Jy+qPjC1`Naa zUxEV=L;!exenzX+g5x+N=sltNO|!pZ007$UHXa`z@%i~V)@suf?rpY5|0UL@Ehq@O zw24Aui?x%3P7dl&ROsqA@e8>GrVv6 zK7INpsSodg4B=kRIln*WTnTfAuIr>}8iWw&bUNtw`{;JN@H`Km=fQCtX`XzcE}xy9 z(Z|OJHa9ns$z+gDr?IxShFB~H0Qmm?#@pK)8jS{CUS3eGR$-bZgb;!GBeM=usT6H( zZDDV354*d&P*oL6OG}8yKc~C9J8~R{IOo*s^{C(P&-{A59<|$Ty1l(6!!QWI;0w>d!NCEYoSYz^&qLER zD2f6}8V5o2U*5sFEXznF5-&JH#bXO1wOU||fpb1l^H!@hx3T7GpkA*_j4^zDeT}V7*L7i87A(v9Uy1{e zWB_=2dP1|=gy(r9=m$m%+Gc;n0020SgNKI)e13k8joLJa4_?D;Hv3nvp$q`FZAIP)Y5|0UL@DJTfK zw2eYygSC@`P7dl&ROsqA@e8CcM zetu4OcXwplHo2}#gTa7?!{N+tFc?t3->2K#ThcU*07PGM1`ZAm=;Y)Cl}ZJQqCk=) z2*NlBqW|(n=b|Vgo6SPgG-#Rz%d+5k9{z12o{7W5L%O-Spbfp5#;Db5 z5o3&8*Zp?xIL;&%D3uc(EyA%Y$)Z$?n5@U?2)hdQ zBb7?UN+n4WR8@_310+epPa*{Xg+hUjj*d_&m5@%SQJUl$$;^G30Mk9^^N-2s0UDqMY@{fx~T1Ute7XL>A z&N)_BSFyOb_@ly}=fSe9k><5pEpc%GNI8xJS(anx{!dqXo(I!3VHgJL_4=rZmzS5s z#baN?X|5(BSeAu)y$-`L61jb91KDgAuInNULx`d{(^!$KBkJcxJF$UGCWE)PHv~a2 z(Fb$7dhQTS(*$D-uIoL^#QXGIF0>IW+2@L=M N002ovPDHLkV1g^0nAiXS literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy.png b/amor/data/pics/animated/tao/yy.png new file mode 100644 index 0000000000000000000000000000000000000000..e45fb619caa82e0c5a260f90726ef9af69676ada GIT binary patch literal 1156 zcmV-~1bh35P)Jbsf5{Ly{zF9(^-i zK0ZDsA0HnG27?HP!w7{!SX*0z!{Gn`e1CuA{rw%)Y8B;j8HGXtrBVs1s+#JzO*`~@ zy<~H96FWOQ*xud-%d&90-EcacplKRbs}%rX7zT7*hoUHGwOS|^i#R_&N1;$4s;bT$ z=#U&89g)-1Q*wKIOC(7milUHiw@Z4x-qf$#?UGijMY7o}2?PQJK>wQ^fxW#wa(H-% zcsve{aY3rpD(Q4O6O9{&L3o}g$z+nmVlk3T zCJE2;#4wDZJI~M0BpQwW>Hry=0DixGUrNRG5iBS^~ zAEaa8KqwSKB9XxQ`Z{bjn`x>ThJoMj@An2U41-0)1^_I}l7oW-L?RK;G;Q8IC<+|M zA)QV`(=;#)1CHZHBK}FzNhsI=z~k{?cXt=d%gfVX8$lot2uy@qRn?yrFdc!dtu6R` zzL}z*CC93&BA?GAl}bSr#i=?he!riD!(l8fEzKPLG*ML*xm*rsXJ^Rg^JWMT8^>`7 zhr@6>oeLZ7=ei&HjK=>?fvT!lU0sFUZePf-rfCpGagg&=DmAll0I;>&Z8)7y)4Kna z)taWEUavzC1Y|OqffJ2JV`k%~({K{22_Xdz1u~?=O ztIz5_^z%kL)&YmZfo8LbPNy@L2XnG|Zn4zsb?`h7MN!7)yk4)*O{}>bs8lKx&-3{F z{2XbWnx;Vz1PFrgzZeHVSpeYa=?S%34Z5xmMc*fySvUJF1OPyiBs@GkK$hi^Qk%r^ z{xpn4BEK~aEdU^jB6W9nhf=9Dgu*moSr+MZ8dq0WNT<_aS$1ythx$OdT*meFHCUF# z#>R$eW9m=CXf!(bUl;)ZXfzts%gYOHZf+n+5)8vIeGv(QfY;a8MMz4G?S$EEmQoaj z*zI;C5(!wXRkq5d3XbCt3kE%_d}7HbrdGCN_2!+~40*E|-hEy}cnA48rYp!)mq8YGkf8kTP4%d_Esm zR#paO`d=C!BH=h`G#b?7<0JL+r9@E_>~{OCuP17uy>Ob)G)=r-FQI9A+`>WT)%O=0 WcFzq|_!E}^0000(iTrT7A@DRmfF}^V&B=s=g z_Y)wdX`d)VzC(4fmKYBB)G1Not>S=^YinC2mp@bfOEc9MYJpn?RFccX|4o5 zuZL2p^c}t^f73Rn-OhDg42MHlmbEs#EXybq3SaLLMKN65Kq*D3R6?m#!e}%?zu$*# z+e-_NrfF-1fDi&nlAtIG>h*d^(&BV-a)Pt7Gq|pc>+5UW-rmA>-2`N@ScD`=E2ZP& z`KqcymgVJ@kW%`+fe^=JZTlv_kD2AzlvF!!0ztu&~CS5ptOBy4Js0;BuS8E`G=r=-~al5nwwnL zO~gEHPpj2JsZ@fZD2c;IqY)a723*%gwOYmb`8o3Wd<;tn`3fDjG+CB^JmZ|hFpRj7 zsj9j(RfoeNNDu_VvQ%8vqFXHrG0GChaiHsZB3mN;aL%{$Koo*%wVLn*r4*G)1-h=o zvaEPEh{EGI4h+Nio*zX~3^!f-`}^VLcDUjlK=H1^Fw*SIYlQAy%m`8x^25piK(ezar>^2bo}^>i_@%07*qoM6N<$ Eg10;^mH+?% literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy120.png b/amor/data/pics/animated/tao/yy120.png new file mode 100644 index 0000000000000000000000000000000000000000..bd09790892edc85fefd5bef95eb224ae5ec2a076 GIT binary patch literal 1283 zcmV+e1^oJnP)4#7lRZL5f>t^<|nvv-TsSN4YQopti)9*!jwUwGn85(V38o91PKy{ zP-1u{-(pCL6&8F|NdQ= z<$Y5*Z*Fd;x~@ahG#G{fP1B%h8aU^WBne>{0stJxf#-SfJP+-58$W;k6y613YilbF z!w?%A8?Y=3s;a^;3{XlTNmA~|IR~W_VHhF|Lj*wp*L87na)Nfdjb5);80SOLAIri>gn%)Ia=8peQBbK=u)4a6YPE`mg@yX% z-F&a_iwaXEx4|Wa=8pjDMV2OrF7EsV2tHJs?{o%mX_)l z7Z;5;0hG(-G>&5=NrE_zF&d5V=g%M9-QD5t?hcOQpxtgGNfPL~4p9^#iee#+84$)8 z78e)mzkdB{6apxfN@{{9|=!2m%JV0CpBk|co;f`V#-QVK;;pePC+ zA0O*iS67XR0G^(n>aPXQEJ+dsK>$Jss?{oVUC;ZV2t=t=f+&hek_1mrPxb5T>&7zx zgphPrO$fsfj^n_xEL19$LI7hGhAhkQJP$v9{Ad6Gc`Z0&463R=8@X`{f&jkn!?tZq zQ#k<8bscMKYdAbSOmhH}Op+v6mW6t~j_vJjXqqnx;Y5^}p0FFE39lzpARxG!2weFvj4z z?!=5_Sw^i^E2L@CGmJ6lx{l4w&Gf^=!$W3eFgVrfIM& zE6-+JA^ZJ4+U@ql5#^kNa}L|KL2qtugn49`QVPqmCN`kwdHDSKGrHX_Ha0f!>C-2e zrkPU}MGT9L#v*cDr44IvsSoU7Vkv!}GjnRAgJzmoHxgI&bhW4B@&i z27^KVHO$N~jGUVF^>vu0nbVYwv~An}OL3AUbJ5^=9(>==cfzbUR#sMUbaVvUwqcrP zE>cLUrUayz#?d|2slCdR2 zn1_aLw+r9*3nyi~@dkqdPEJnp^1s-K1VO0Js$`-lqEe|qQIx{{Fp8r5tnl^g*Jo?` zGXQCtHqtb0%mO5eBJ_GaxULIHlE4@PAq3;Q<#0Gev)RPy=_y*Rmhk4mWS)jpRTZkL zVt02J>+9?AeIL56!}onSj)SwaGn}5D3R9nq<^ho{8D9m*>oEONr tK*ez^yz6i}FOX>_OPD9KA~5re@_!G*S7e6=NP++W002ovPDHLkV1la|Q0D*u literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy135.png b/amor/data/pics/animated/tao/yy135.png new file mode 100644 index 0000000000000000000000000000000000000000..e7e7ddffb114df0d7bc4fb7f4c9b175b57333814 GIT binary patch literal 1237 zcmV;`1S3!WP{Zj@0Jp_D=?1%NSzEXy#)@Z!Y_ zXOZvC^>U-pD1#s%2m*ZHr_<@MzP^qS0?+dR5JC{gF{9ClIF1<%27LVZ(YX+SOP4N{ zT5AA2&qFCiyWM7EV}nkoL#x#y3`3-p2qDPx9IZ8Jnvx_5M@L6IdGf?r3c%{>YAJ-k z02PfBc-g$0id;JG#W7+4mmtLE0Aq1}L;<_%L=OLwJZEcNav&pq<*S7cf_jk_55oaH` zu3OsQHk)bZ`1qKYFJA(nlp+X%N)rH5%8Idn-z%R!ed$W^HYa z>({T30kCIfWd)@aQc5mgzPx>Ka8NPf&J)Piyzb+9o|C32aU55zSa&?nqup+^xw*-s zM~})01{#ei?ViSPReF;Uq{7XUwh z{^Y}l4?7hA*L5d?{{zL=))o&RJ|v1Fe*gYmWqP(0jYfmpw{O#IHgVm0VlB|3D7bRv z%J#v*!HzhOe&6>Af}m=_x-wWps!QVRdrB!nEQx>*c)+b&w@^w= zErHcSQ50lZMp>5ILI^Rl-}5{tNs`*kg%Cth#Jzj>*xcNlD!@9%lv0FYh#Ld}%O213 zh@yyYw@Vm?wfdN)1t}$N9LE;|5QgD|1I}Y$#+bj>y=-th1Mb|pLl}k&|KAuxp6AO0 zkW$iaw=u@xdEQ*LuNCD*YTxVis>Ng(2GTS|EXzQv)uPksOeo)uYhz614R!vKB*|YL z6h+}IIt6X()(xmMP1)PqBhPcX-7c+GYs{Fex5RPG^XJbUv8({4lxVFhH3K9`LcibV z_3PIpNkSaQJbwImOe1!IwcY3b8xqbkIygxI8_U&8e++lRypqkblp669|Yj;JvxEviFF&qx3 z?}Up07>z~*K~M#;{$MBF>AGvJ84L#O?(SCEPwa$cS?-i&x#Kv__N?G`nw^}S&}cNO zZm?6(ZpL+yTEFf0>_SzOj5x(z}=Q*R%h%C!^ z_wJo@q08yK?P)I}b~XF{{rkl(r;7qw#?bx;Q13IFs9Kko}A!|6HCpZ9&wp9Xe})6-L->pE7e6&Pbk(-di%A_xL-&hhs4*4Sme zt^Ry*aUm$BP!t84ra@IzFvb7?aU6qE3IOnZACBX|wr#ksi^XEm_#*_y=0>`WMj0mCrR>-E4GD}eHEUF4)V z=WtyY)9Dls4-XqtLpCWN32%K}VTrPi3 z`T6;|xVgCz^Z8t?*K3hw*|)zWNyPj6yI3q1V!2$3kB<+LBuO#8Ua!UL>#I0EJ{GN3 zOML4ENj#f$iX#D zD=K>%0;XwVGMPY@Whjb*PN!4Mr<8&*2E#DmI1ZvHs*q@wtse{q&@^r9e3wZ`k_1VT zzRXY4wDPS@!O6*q==b{t^IZrq#&C6Y1>3g4IY+P8gCt3nqD<2ip669aMvnhxqNyrKO258xK(=;&}jbPjMW(No%kY#!6o-d~<2h0~IgcNN# z9*;4dPT~9h#ttY5Y-0DhkUY-=W2`uagCGC^SeAt}O~Du|_J7~^!8!lAel$(n*r#zE zgL7UevMdX697ET2D2f8hvcNh2;y@h7->R+Ywj?wry{;no_#=u35VkKR!M-bX^ynP6x6q zBZ?xpu3OuljIp9<9mlB<-Q*|u#%k|YE{fG`Ye?U!X4mzS4lx7+YM57*b%ux)!U z`z!Z>`}_NbX_|#{MNw)Go%~A97z3qrFZJac(O>0(!^6YBlO(~x!2x{VM-T)^lB9fi zpw((2%QA4zF`La`n&!?Vgb@F1yp|sw9SOrQ;JPkM)BKVKN@?*f$al(JI;E_>_F6uh z%^I>S3qnY(#c>?(y%Bu|uhc*}US3`ryDHlUe5t<807*qoM6N<$f;4XXJpcdz literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy150.png b/amor/data/pics/animated/tao/yy150.png new file mode 100644 index 0000000000000000000000000000000000000000..adfff96a3be61e9ac37a9cdbd1271dd5a5800137 GIT binary patch literal 1272 zcmVbhs*02n-}mWuy8wxllB1)er9`f+17Bv7$%HTr`TY4a zQcCLeI+aQVUDw&#+QPCdgb>7W%+H@c_r87mwtr;;>%cFQI6psUb8{2RvM86!lu9Ku zO`}q&P^nY^xN+mg-tqDA{#pW81)sL@c+A<^8F%j7LDzK@MWI+MW<;)EzmAlWU%!6s zefjcbe<^`w;Hs)(nkJP>h4FYy6h$-ZaU2uJF&i5jIF3WPT%N8PHa0dgVn2TT*!%kR z>;9YwSAo}RHFkG*F-?=FPoL83^@!tmW}lQ2&+{@uit=0Enx^464nQi--%hU!ucm3V zS}p4JI@M~GX0wT|>+|KLDCoLA7oF*KAq1^fi|y_0WQM@1yhl+)r_(`7Nf?GmDd)UT z_YDSvIqxqMtX8Yk>veA5zMZV?18L2F`0xP$-}mYF`$#DlrpmVMh2Ya948x#StI_Fn zxDtUB`1R}8nWxLN;<_$|VXQn$RaJCd$F^;bj*d{SQg*4zmziN0IF5sD+i04$y7m62 z1x?d<^5jXP@E4{i3Z`k&YPHzi-OZG~E&`gSVVWks@AFp#48!35{rg#ouJeAHgkczT zI-Nf!kPe`mH*aED)=Kd$id@<|ihoMLwrw6gdW7q`xxmvh&8j9Zu&SyEA!sxj*tWe^ z^^3d@!;mP7&@?SS0U-nr9z3AgY+{;bF7ML_L{Ws4k{2&t6qLN|Ez4qOX9pofZt&EC zAi($ie_QcnGAZN{p5r(ehOrPl48xWEB8`CW``O@9^5(x-6-LUa!ZSH*X4A z1SXS7VO>j32Z<13VMx2(F8zKVRaNmk4oFRQI5{~fEWHUY`%0x!vc0{XeEj$^IX^#7CX-3_U0hrw zCnqP#`}gmY;c%E-TwG*pMz_U+rN zzl>IiG6(`*y?TXdnmCS=-FBxhD^g0Nl(gGz+U+(`6fqnQ3%TEh%Saf8f$O?78V#Dw zX4V&iAYe2a;dvhK-o3-~yyb$+^Eh2ZBz-H?YBe0kA&MfxFk~tSP)VmA^vtFNlS;g+D;V!b(IW*cdfJiUm__vB(yKtTM=w zyv1dfjpoyP-+_?g?9Takp7ZQE2BtiwY4#|kAcP=}V*mhS45d;Dlu}$=To}{bXH4pJ zl-;r{6pKZa%ViXcMJS~Zh9OQ)PR8C({>HIBaU3HE0&vbzsZ=0@Koms~LiG0b_C^Nr z>u;Uwqm%+61h#Esd3hN^2r$O5va+&2KR>^Je}8{4aR8&76GC8`Cc543H=C3apP!#t zU0ucU@-h|{7Qh(8%*+ga|Ng!I^z?KvHh@vi8Dl6Gi{P9im&-vZg(OK*d$-%g=jSJc z5Ga*O$mjFO=ks8Ufe?b(+1dSvhlhiq0gQ4^DMhtf#rF0#Ha9n6nkIbT$H&J<-*dTK z4*7f@>+9>VZ5z2<4l^?|ux%SjlHmRQegEa5BuN57NFO|wWr1^! za=8pbNPinn%J_D>jpO5E#BmHMC88)AstKHPP)hr3wrxWQ0mpH$wYAkdJ3BMTq!mb# zB+Xi9md#L?+OjMVLZH?1tDSQW*L87qbu}FXS&Vg=2eqiF)+qZtyX*FUpOul3MiFI5JI3{ucKHj4s@Qa6l3fUTt9WJ zFY!DN^?DtS068;gsJSXx?2F*Z#T zrfGswiiL#*RI63EuA6?2v+qkO@%Z?N%gaj~9UU1%_kv+iWGA4k1KYMysZ>(O+LoOc zq9{VU-NyO(IU0?|_{C&U5K>As8V%Iz^*+tlFbpcYURIjTCVbydNjK46(ChUMzQXbG z@c}6%Y}-z?U+)Lm-`m?8USD6)YPE24bAxufjZUY7=jZ2xsaCTrDU&4Wg<*)RtE+U< zaU3TtcUBX8-%r`zYPE28cW3;wBnQ;f43wk>=;~=e*gdg07*qoM6N<$f>UrQ`v3p{ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy180.png b/amor/data/pics/animated/tao/yy180.png new file mode 100644 index 0000000000000000000000000000000000000000..88e3de74a799169d0e421dc01a1348bafe254e21 GIT binary patch literal 1171 zcmV;E1Z?|>P)Wx3vnw{=uYn4xzLpxf5ZI&RRl%EohuQoO`D?qa8toWY0@;N z^R7~?);9IMcVHF?=bV`{^UO1IfbNApE6?*33k>Bqpj^hXb4G#~~ z=H{j+XM7$Fw_ijA+qOYOP5+jbmM9nuw%y;;!T68Fwrw!Ru(h>?U@(ZGp`l;tbozIz zwY`7aH~=_~gL1iyv9U2kA`x6&UBNI6y1cyPyhNa*amERDL}@J^gMM0Z%uVWf=zt2T)ZNx~^k)cNe;@H?6TO3xz@f zj^jX*Bt)Z8*tQK(6e*ENaIGBh9CpSSR8_^y%uM6EEzo*;AW0I|*VmED<#2m@OT}W5 z^HK#Z#j-5ux{im32k5#E%d$G|>Fw>s`1m-Y(I_S-C%>eiE6^1R1;k=8Fveh67K+89 zr+qxnV|scTYin!BWHMAJ6gW>r^Alx^(fay2X_`ik<50a`r+U3krfJf}#RV-aEYOcr z;1#GlJ3EkN863woMIjsxV}5?V!GwREzg>{3s`>?>9LHgBa1c{dQ&1FzeE-6DBoaY9 z9!Dq?YP!8Eq9|f&Y6_uH=vyZ2%3v@U1Y-;w$3d25#N%-+E-pe4gqC~!em_P>M^UX- zf9?Qd46-akRn?|kyZ^s4?(%{tiZBeLI|tm`3WCr8nX0M?g+fiaZWZ=#`QazIb#Exk zawGKJHY?LK(bw1K%>mc=-rgP}kw_!F-5UPbu3ukYAqYZe2R<5a2dr+yG)-ulhI~HX ze&k||(em;#ou8kRVHgcI`#*|c5sSr;&1Rt}3Jwns zp{i;}P}XWSB$G*8TwK8Igg+u8%d(KoW|2%L8{eJe{rw%eTn?wFr%0#MEqS126h4mH zA5)_!3IIS+l#bzd90xBiFE~3p!~Oj|+-a!eBg6&a=L#@QlQd1EySqEmG>uHt{1$Yz zT8*BcpXvDcm{wO;J$K%wp(2$^eL;JtDsUW!48x#QDn&;}N3^oCLfud?2Y}q!PuF!w zk_1r{;q&?0vS7Vlhi%(R!f90mpk zAc`V*o<~nlPb0^*S`DUYqFgScP$=N$<_0GxCwP2(Y@2gWWG)B-O;1l_VPOH2larX3 zm_Q&9K!1Nf0H9i}qEsp&olZm3G-NUvjEs!n&!0aX&+odMNRmW6&x7ZA`2BwPd_MH` l^+6B> z?|A!>5JHfq>8FS&|3f(dq-hEOs8*|4qtVDp8Sq`@>!PYEPEJk=?J?> zaU3I#;|(N)5U_0DHldWlwrz0EVcRwsW1y67?2F?V^Z6W>Wx;VAwA<}$!+@{EJxx=@af~1c z5Cj3H(G& zHN!9@`u~>m>q%O#*U@Y?p{i<*h^A>^jG^1@W(5CH>h(GpCpULZ{P#<2dh>%l(Wo5JJispzAs`O@j~ul+rwo&1Mq-;QKy;Ab{gI za9tO+Z9~`f+|c#vXj#^72FOHewOZ(OI*8*KVHoBLWPBw8gb*;s^7U=2HRVcRxL)BMztQyV+xr>EF>19M zG);q|C^-t0QdFx|P)hUlZ6fLBc^>-xJ_duq#v|oN(ZSc(*I#dMZ$HB@M4F~h6eXve zq9|A{ms^#mX^O>SfiMg)8jUa<4l$Wb@bK_ZDg879fNr;&$!V5z4o%ZG_%C}yk|cgb;!xNid(!5d;B}BteoSTfHuAz`7hA o9c3~BP18gW1kg0?Q*VppHwMlE2x9CV^Z)<=07*qoM6N<$f&^g+SpWb4 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy210.png b/amor/data/pics/animated/tao/yy210.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f2c153f650a6b4ccf4960fecdfcec19f4f0b1c GIT binary patch literal 1131 zcmV-x1eE)UP){bSNE)NCpup4y8ybG>C&kXdUhl zN`_E^1bv5>n^&v-V{0D}M3bCz&vTwXQLtvHsyh4V|LJt9tn)l&6QDmKqx=T&Iz-gp z1_yv#E;n0CflYz~03iebFqur0PYL`4oDc#^DdIT(aypbvfg6Sa*L4xcF?zio!Z1XV zBn#J2N@1EN27^I{OEw{~rfDb^i#R$u0;LqqW)r8Urw~FcT$iRPIOpJ;&pMrsvS7lW z=Dk!Zfl>;_7$~Lh64iAbg+d|w?awB_RaJ!$0)!BxX^Qjnb38pgVKSL4T*ny0@$oS@ z=h)iXI(dA2{AVL6NRkAj(FkW}XJCv$2(i+Llu`&GP%f7d1i|J!AV~-zmhwJdA)2Pa zaU2+i0nYh<>gDtKjn@2oq3b#tjRs89gs$r_O%wb3`!gb?_|2e{!nSQ392{gP*E9`< zLgDKvV2ouSnPXY!X_{sRT;=>ip@2rCk%3D^KJ)+~1e|l|x(>^-U>F8$+lFbH@O>ZM zZZ{)C2!Rj+Q@PXqvXv zSfqUOlFKgVx^DJe5}7}>3|XdR6?m;yL$O%QfIgdY^1ERe8Q?0=d9raFBM1Vhl}cs7 zt(Ik>Uax-&{*mK90+$5F<1sp&jzT(}jv`wzV+^kAf^)tkdlW^8;~13EZ^!xqgolq_eZy!9rT%>6V%d);bFTyay<>e*r?(UR@ z6ila6B}tN*@B6TA8-`(IX|XH|CnqQHJP(|6n5Oye%>O9&K@gzbZezavlehBpdOg^- z4NcRaX&MM2&~<%59Zl1|H7Oq+9^iQ%?(gqcuVgPTFUs}xHB8f-$t_2=Pf6%It`|a} z-EO1ZZll#|E$pFxR^9ac{Cx8I`ih;M9prL3Y;SKPO;f0u{75bL9z z{|khT|H(E5WPNnx|6;=a2>l%~E1VIqMbzNjx1}SAH;uZks9Do1*y{m%vRKDxF;GBao zhN37?RaFN->pYHQjK^ckdCGZ9U3+|Q&--Qq$gdhw<9335D zG#X)dcNg2++oq%SdOh>K-|u60cNbw8VsCE`K@i}}moHc@mk>f=wOScAd%Ye!&qIY{;SfoZV6j-Bu4_N43WC7A*IB8K8FwjaU3HEf{nwc)kYl09l#Geq1GB@ zS>EZYrI2&p5nUVkWHQ0U#Ra64kWzwDYARzL5K8Hj>1zQj77Lu7o?7;ON|aKjoZ9GT zvl-^|If|mdY&J8qZCxrIewLF^0XpJ(Oh$Aq3Ji-5C9I zO(})4EHR(YyW{x${M_<=zwtcJsJt!B(P#vv6p|zXV{GlB@ti@Wlrr<-_wV1)X|0iE z8S*?wmSq@^$JVRg4Np!^nji?^`@U(ZuIn174{N+EOB6+cq9`Dx-01w-J7J#ZSS%K% zGC1c3Kzm6kA%uVs0%cjEEK5wM)3?2xZnCdmzcz#rTwY#UCnqOOyM{d#=_dORXfYyr TptFc@00000NkvXXu0mjfT;D3{ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy240.png b/amor/data/pics/animated/tao/yy240.png new file mode 100644 index 0000000000000000000000000000000000000000..2f64c2bee2bb017656f1545de68e76dd040e0117 GIT binary patch literal 1272 zcmVxV!4y!|v8pqBL(>4#Z=%n|)_rCYNyECw)nWmZDv_73qjb;29|03w$fHD3@ z;AMaq|2z0?AdLG6eiI1ezJgx|!nn`ii$ECn9sDW?@;{tgmQ_4)9770kz0&@5_KYz+ zefkvd-n~Po(}C-{AY?XALI}#`a&~P62qCa63xp78ts$j^QtD0sD5Yq%TJU`zT5Ggg zt%X&PQeq(h+qU624uT+n=Xsb+CK!!I;G82#5-6o^EUDHS{eBte+)j83&$#j|J65Cj3Xwzg0zm97pan5KzRsRY}$Q7)HpadClCsRSX!!v4@& zV>+EK%zSfm6OSG}f@zvqSzTT2?C$R3_3PKz+}xb&*hP*RW7yu_#@5yrk|e=&I)#*S zVZf`lzP^r~ogMhTkCT%VtUP@9uoDCUo;-PiwY9Z5K9y3?S{GF@O%sF=Fvd_Wm*M+9 zHa0f!{rh*EpP%0<(Z`P;zm6w_j0x2bI z+b$$H8jT=?fNk3gd&IIVG@DJhu8Sy&kR%C&5UAB^NYfO}W)qI%z_x8@t&t=N(lq^@ zz;HM;wzs#lG);@?XIT~+jRt}sfKm!U5WsPq8ynQJEHK7UtJR8RF6q7aH<$9vB>ejI zYccuqpKRO4+qZ8E=Q%w$+2yid2bOb=@p$~F2l9n53{k7q3J{F3BIs?>ybj1!`AR7f zMG^Y_J`N8L|7^!Ue*7>frP*LG0AsA+dfC9YSrkPG!?57L*p30xrnN?`R)g>R@H`KWf+~42N@($0rc3l^}UJs7r;PmwLPQHz0n`(c5Kg+YLR;yV) ixIE9p`}gmc_V){#@=0k@DbP^>0000g>JWte!q_-N#0GQR4>o-7mva!5Cj3%*47ZmF&d2qD5ap3 zf)Ii%%Me8oE-x=F5v}!$8v}sv`w&6^0J1EDloH06XWxATfW^hdgE)?{wY7zIyN&tz zdCbnvVs>^GwOS37Qq=2p%+Jq52mwkdvMj^>{XNFx@v}`SrD(NU*xug8=H?~<;O6EA zkB^U)?~0;0Buh(6MXS|99LHE$Spj2gYVlD@5r!c+=irDvhn4dsgkUrp;ppfH zT5A|%kf!Ogn#r;Zq+B?et=1YB7Z(@|2FS7uJ3BiNLcsGp5JEr*K^TUJ;+UJvKz=U|LkOM0GHkxvMLy}dnno`;`5e^yj@ z4H$q;#!Zq0#uyl5th|gd+l)$r(>7y_Aq+#bS}kzS-`#vDrMA})&-0KZNu}~j8!^Tp zgg_KUmdv!G3xWVq6usz*$=dLJ-?~jHg>QFvcZUlL3kS=~%eD{+A*k2uh@!|^&vo6Y z;I&!}MTHxVuXy=I#0*o>1uyURd0O)i&4(GfOLf8c#jgoXZ%e)= zuC8!$a^l?H-X4DV*KB`(zu4H=uy@2#jmhaaIY*2!*4Eu_7ipS4ll{dbm=;-+9>q>gs9%082|tMZI4C^bgH{E>LZJSc;ym00000NkvXXu0mjf DlN32Y literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy270.png b/amor/data/pics/animated/tao/yy270.png new file mode 100644 index 0000000000000000000000000000000000000000..c3d93743755c1a212ee5e2562f8a5ef1f652e4d5 GIT binary patch literal 1188 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 M07*qoM6N<$f;M^n^#A|> literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy300.png b/amor/data/pics/animated/tao/yy300.png new file mode 100644 index 0000000000000000000000000000000000000000..649606e2d13404e0b2a3aa37a780a8f5ca60c789 GIT binary patch literal 1206 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 LNkvXXu0mjf8SE}~ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yy45.png b/amor/data/pics/animated/tao/yy45.png new file mode 100644 index 0000000000000000000000000000000000000000..aaa845c28cdf3ae661602e018d3305eeadf43f6c GIT binary patch literal 1188 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 c4(Po71Eo1moy`mP)DkN6Hy_c zs4=5B69XD7>=eW&gs3E~Kf%^Qu)Vjm5bXR17B;aG5qyD#SSSi2NtobcMid3XkjzYy zah>9lT%!}scsyspDrU21t#7^8=3tXVQ6xbSpzAtvxf}qXzP=uAw;Q*&w@9bcoE>>J zUH1F^ZD^WCdwYA_mjK4b#%OkS z7LiB=;)wOD1?!b5#(|?Boc`VL5wl@{eCdUYy;tW9_{Vz z2#3SCxw*mF*%_4*vkaiCs|$fZ0O@oZtE;O}6y<#>Vt#%ek|aS81i0O9TOb?`2LwSt zBoe{N$q7_d{l5xgu^15%ZfO6i z80+in|GCoZ^^(`?C7$OAz^BX@qtVe(+S%EmTrNkiudlXP(=<9bIH1YNNvZ&6hZ$oO z4u>h3Op_T!!W=YgCGcC zi~#^#E*Dx_TA=H?b^Jw9q+36jTUjW}GGtk{> zA)n8quGY1z8mX#^rKKet9UWPEqQr0Gp2=j8N~LgjcgKCJ6MnZno2E&bOolc#HfUgA z;QOukD-hXimQ2&E;9M?8i9~`nH#ccyWQ5#qH@)8p3BO5@sEJ8^B%FP0Qy_XKYJI@-%$S5%ZUE8@><@8^e2_W lMi-=?R%{o59Wb_J{sKyD@NN0_euV%4002ovPDHLkV1nV<7v=x} literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yyx10.png b/amor/data/pics/animated/tao/yyx10.png new file mode 100644 index 0000000000000000000000000000000000000000..98cf1abc6fac7269c7ba89d02742da25869bbf55 GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDx`7I;J! zGca%qfiUBxyLEqnf^R%s978H@)%I(zYjF^9S-ns&xgdw}u-FZTBBNQg0v;PYc(@e~ zZe-^Xx+-LtC1i5&+l(!5g2d%RG9<>2kGX{uYVnH;+yarm>% z&iB^OE7L?={gp3nd%HTN=i#>8H^1jye?8TyBRtUV?CV{NG`LD)+Y==U<~_eIzy9U6 zT+O9RQX{wI{bP0l+XkK+VYHN literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yyx12.png b/amor/data/pics/animated/tao/yyx12.png new file mode 100644 index 0000000000000000000000000000000000000000..49270c553adfe21ed71de7198a64dada0d312651 GIT binary patch literal 365 zcmV-z0h0cSP)A%jFY^0BE|d3&SuLCQ2ztDRIBw zQ4|H<@AtejzlCkvBFi$=bqy&cwASlLNs`RXoX=+pA?El04Dfh7*!MjThXVo7_kEsD zr>$cM04U26<2Wu_3W8v}r4QHZmB-_e04Ri@X`1UOTUeI$D_-yi%kQ}KPK*oi00000 LNkvXXu0mjfi;|YZ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yyx14.png b/amor/data/pics/animated/tao/yyx14.png new file mode 100644 index 0000000000000000000000000000000000000000..2e973f36c5b5abd857bc32b36904ad5735f3dd34 GIT binary patch literal 485 zcmVF4hOidi}84@;WsrJ4Q{tvN+}rx0e#=6l#-LlgxPGCA0gYeDWzl> zh77}yi^YQdexFJydY;E>wMqa_`0J5WEEXYzcn+FQr)afWP)b49b)-_MN9!M4DwVj| zY@SIEODTCipBV%JrIfTR>ybzR)C+|IGMUWV>Ou$zA)u5(v)M$q+kNTlrfDJ?jlO|W zN;r;#(P)HryN&Dh`U?JEki>jGN3Ykza=C=#IJn(zACIY@PAA;&cNm6&-EN0Ur2^M= zK@xxIYrS4$zuyA@hQlFNs})E>2!VJ!4o&;~_piZVpxL$!r4)|GBYfWn0F=vRbUGcx zVzE!0rUO8&R?~91921EIbX|w<`nNFu){`JGZE1%EPFbqZ_ bkw2ktu%zp8R4X?E00000NkvXXu0mjfbT!j+ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yyx16.png b/amor/data/pics/animated/tao/yyx16.png new file mode 100644 index 0000000000000000000000000000000000000000..ba025e61d071a451e4d6230a183835d593c8f6eb GIT binary patch literal 495 zcmVoCE_J?1K6Y z+FRS2Mr>>aJA1#v9}onwuoMfyG?uXt#4d%cg+U}D2|d4J;g%GrP09 zqagu}MuV1RA)n793`6X8JDksFIF6&?8*JO=U@)NX`xHV@N=Ydtg%I3sx2#sH1i(ac zv)QEQd6ZI8DMh6eFP960Ab90wvl&g(j2E$Oo1W+K`Fy^}N-1``T^5T)20=ij6c2|3 zbGh7a0Rlh@0P6KRN~IDs?R~^@xeNfvWHO)UuGMPvegCaix!Z3so;?o7R*dvN` lI!#^I@pwF-lu9K2;s*=vW>&_-n2!Je002ovPDHLkV1m}d+6w>x literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yyx18.png b/amor/data/pics/animated/tao/yyx18.png new file mode 100644 index 0000000000000000000000000000000000000000..89833766127dd0cf6efb98e56debee2719c4544d GIT binary patch literal 647 zcmV;20(kw2P)JrHc3)dR$mjDc6beYE(?}+h*x%m= z04x>@jK^b~oSd*yslc{vWt$1y+}zMKO*)Q4Aq1tAbX}K=#e$!opAft8cAEqfzYb?S%qJ!m=!M zIvupzZM0e~^!xn{NNA1#;N#;1^?Du8&(C;#d_=d~g=Ja4y4Ebqf^FN_-Q5KMIF5r# zrGmS=JIv>E2q7S)#Q&sDr&CNOlVB9nG*PWq@%Hux-}nCn*;v2t`@Frq<<8Cy0Z>sC zCK3rAA0JcK^_4BH)psE4^*TnQ5lF&y-N1#WX}G$&LZi{Z>FMe3qXB?n7)q^H!^_JH zB9RDGRb5GTqtU=@HrvM7{JiCInfLeiJUTjB22Inb>-u_V3ve_)p&(F6t{tdE{ h3r*v}!9f@>R9~y@p!l=9$CUs8002ovPDHLkV1i1?CT;)# literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yyx20.png b/amor/data/pics/animated/tao/yyx20.png new file mode 100644 index 0000000000000000000000000000000000000000..9b1ab5f0c96c61e91c1b9f6fb03bbd9ea14ef17c GIT binary patch literal 716 zcmV;-0yF)IP)}tE(QM8*BmnuO)vPdUgT8fDhh)uO^UYg_ZVNlyf zzXNx87w+NSbMAc-Vz9ZnNnO{Wsw#vKa9tPuejn%O=hCDabzCx^&vSWs8H*6cak#s?OIel)fD_3o zl?oll;cz&NihbXwX_~B7t8BO148xE@2;SV>P}lWO!co#ima;0<#GUkbUGcU7yj8^0B?rtL4&j^BmhGB4Zb@i($QK-7EV_{(dzd;Cre!q|V`+Mx~@8kOV z8etfYlSoA(kr*!u36gkyeMP-qN3B+aX_~mby@e3s?~6?m&1Ms|S`D7(;qvkl^?Dth zP6s4oCsBhSz}wp!W@l%kWV6{sp-@1jQi1RL@O>Xa5a2J6UtV5dSyq%74u?29JHyGz z30&93`}_N!$s&AR8_Tko&1SzjsA(FfrlzPU%808!*G2{a!!Ypt{0x#1Lg4A?DRNNL zG_0?$3ia#=b(J%#JKBcgv^%GTD_Z?P) z3uk9%C>D#zX0s9TVzB_{9NlggoO4JiwL=Nw;o*T^Utj6-^OK~MB&DRyX0sFP^_qIU z9_90S(siBolD1kcvTd7It5u9dN=d8Lik8bIt=H>leKwoX_4PIBy1qlMZ)e(UHgR=z z1;a368wNpu=jUhK-QA(z??WjC05DAxmzS4djQu0qBG*GrtJNyX`o<&F?@Y} zVLqQD2!d!m+#n?0CT9RpE|*cMRCY2AVHgG;A0KgZa|6q=Vnj-*XoFZXA#r%5(oiau zP%4#TYo6zUbDn-q$K!FT`$-|Cq}gmn_xJa7a&i)xw;jwhO%#j8Sb1p>LO=)s&-3u~ z^n|y!w?r8LfC(WI4ckW87^Be$gTVlv=fQQ|RMKBVSt{9dI>pDw2ZA6#zu$-BIPiTR z$AB@$AcTNYDw0Df1}7Zzv=e&mNJ=4qA^E>ZQB~> zJjzBX1;=p?YPb)Z%|_D!z;#_L7K@k+;d2PfvQVj1V4CJpFH_Aj9e~9`FuXL z)BcXl*dcy-dC?eSWLXwW)5Lr}kB!cK+5XKm@k%*AKc_;W0LO76Y5u$XgC_jSu&?YS Z`~VFs?zC~H$t?f?002ovPDHLkV1m{qR2%>R literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yyx24.png b/amor/data/pics/animated/tao/yyx24.png new file mode 100644 index 0000000000000000000000000000000000000000..1c618f7eb9f32ac5b0dadd71216ca53737c14b48 GIT binary patch literal 817 zcmV-11J3-3P)pB2{bB_6Zj_GuYe!q{&WCGv!C2VWg*VokTcFFTR3W9)^%Vp|u9H-Yo z5YTWqq?3~ql4Y5;0&lfizVDN5+f=DkHj}hkEqZ% z$+m484u_dFuItj?-X6)aoFh?IWx2e(glU@4G%ZKYIY+P8!_(6f6h%S3UQeItx(;2} zF`v%?0J1Do9LG{h&}cO1;^G3w$H!0|<0F-3D2qAK(2*VJL8XT0>&5^V=zrKL*h6NI-L$)US56-n(2qZU?5GWQ$$ge%ieLE{{oNWSdx=$ z8DqJz5Qbr9gRbi^45M(Al%4b!yc^64T{v`9#qnw_e vQu1Nnwj_V_SFviUs*<88xdK?L^*{Ry0X=4Y>5b*@00000NkvXXu0mjf7<_{$ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yyx26.png b/amor/data/pics/animated/tao/yyx26.png new file mode 100644 index 0000000000000000000000000000000000000000..8d0d04584148ea2d62513fbf2e65fb16a94589d2 GIT binary patch literal 913 zcmV;C18)3@P)!r4-INSZiU7!DuvUm&+xdpPvT@0bO2Rwo*z=r&El_V{pzR2mnw@(KHRb z_i)ZZN(t{hwAQWG8ed;ugI|HJudmxANsuH7q?8asL;wJ2ng&hNfKm$1Ifla_D5X$J zVZC0%S_|)ey9w3)VEy(MfgVq{aYk2RsGs?28olGVejYi)qLJh%pAvc@L-?T?s=Ex>7Bd%U?mF8Nv(;)o&WX zITtNn*ENcwz-qNZUDqhf5_Mhg1o>A9`mOpPRoFXWlNw{NTCGqNMNGcUX^Dw7=MKyFE20u93LP5O(_K-1jZP=zrW+-<0CHq{QQKq7H@BFczu0^)_Nyc z_u%W5etUa60MJe*lXylcrK0P+_b7^@x54)T0f50z*Q?EYz#*~ia)T00000NkvXXu0mjf1Sy+i literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yyx28.png b/amor/data/pics/animated/tao/yyx28.png new file mode 100644 index 0000000000000000000000000000000000000000..037eba87c7a06dbdf1979d0db3db350ea8f6111b GIT binary patch literal 947 zcmV;k15EshP)D2_tOi6K#teX|MhwrsA=79SE#BAMNz;Q1Lqu^b7WZt0QmU$Xw>m@@X*!O zl~7d`?RFc6VL;O~sHzG8$g&KSQiNd$-}f;dk1?Om8-E4t_xqyP>*4I|42EHV5CTO} zAj>jjSuPc>gB{1ga5zL1Mac8KQ8#+Hxw#RKkB?$LpNlk2MV{vepVew5K0iOj`T4n! zBuPk;Bx=E~udl_^)00>(mwO#AmrL>W^|f;*O;a%#48+OF$zG_ut?c6B0+wZ=*=$yR zP#nj2czD2Ku|TKO!R6&82q6FfMN!b}^*{(gk|Y2CNs`2Rc%|aU>FKHHbULss3xp8J zvRnydjKT9fIF5tY*Vi(S05Ju7~}D{90rx| zce`C-n&!88tAbV)Q_+WU99O<4Ns^FNRfS;~P!t7!Yf%)zbzKaHLj*za{l_Yb0$tZ@ zt6Q&DN+}p)cz%9{ZQGd5W|jHd05ZnPkyXby=ZK;Rv)K%`ZG%z@N-3f!Itbfn3(k2Z zv`|twjN`aeLn*BV*$L^ss^Xj@3`2}YBe<@MBuPr>PeB_YEgWnsq?E$8ZHz`EP)hL| zCS_TM#bN=**p52i_u)9sufYI7dU<(i_`bi>J4uqjb=_Zu<$2za03Zkg1VK>dl5>tE zN#J>2Wqt`E&~^Rb+^tjy0F%k2;dx%EvdHCjnAd0Na5%*6?QLynv7*ZLG@VW{9*@gX z-`6I^{l>B^v|6nnPpH!4WHM=(rYQ&^uqPh5^7o+Xvp>-u^v4KK_&EIW$ef`};f6G~Jm# zS(ah7TKx!i@S3RWI)WgmHI(bXYFWSE7e_}&&vs*Y=SXXStxZC{Rbv3 VP!Db^(=-48002ovPDHLkV1leyxaI%= literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/tao/yyx30.png b/amor/data/pics/animated/tao/yyx30.png new file mode 100644 index 0000000000000000000000000000000000000000..337ac3030d713397391f71f304dc3aa6e4d9872c GIT binary patch literal 1062 zcmV+>1ljwEP)WbPw$$di2ki*)D{l#(GshY&J^VrT{r89az$iYTIpqQMkl|C5B{ zI&D(E3xPP1b$qVQJ@i(jYde*6j_#`EK68x zF&qw?E;#8jO_BuT@wgY%0V}1j*=(S-MifODkHAQBU z_ZVMZUN&(YBT16ICv|7IcQ%B8F^1`MiZo5V+Ph$f*t(Px0AP%PbMDjSlTVy{z{bJ2ABDvyZ7`{=JPr7JU<9L91a^21OY~)(HA%BZhR>9PGnL_ESF2n=W}FP2CenC zR!p4yoe3NQ=w`xN3#~QEvV_(eyWI|p#R6HDK`HfPlOPVL4c3=hS32&y5CXg14(s(A zLI^0OAcR0wRY!Fv(pQIV*3KT?=2capEK6)Q8{~QJ!Q4X~8-!B2cVpKylv3Dkw^%F| z$nzXkRY7YFDW&)8-vn_jt*`i%Qpoch_xJZ$E|=c)4>{8*F?0fHOW&QNYX+Om24z|P zDy0X3SF6=PO6kwfZCX_oilV@FyY-;|D(bo(3;{q0fubn(SZl3O6a|D3y++_VP#A{4 zJ7WNlQlcmdaL#=_JMcauV2t77;sT5@Z;`I=o&>yFtp;%%H$_o+7VY-e6ox`r{vTja~j3qC$R{Q6_q_D-3% zx3`1YY}OcK{0!9{_?+-gDW8+xB(ATo8)J+Y&#CF`1N<`V^~J-(!vFv%rT-N4sCTFC g4nJ za0`JjF!u|0}hEe;Z`^RqW{G#z9-oU&T{17ER*zM;WU>l-Fr z%V#J_@R%K3@Zb2&uI}Flwcpq7VUVA-EOFK{i$3PZ7K_%sesIr#hxz>HCEw@O-Y=e) z?iT36(6Duyl9S-WUF*KwE1tD1`hoWO&+mg}jz>&mJtpzy_dmVc+m?1*usps=N3upduvl%>H L{an^LB{Ts5XiRKR literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/Makefile.am b/amor/data/pics/animated/worm/Makefile.am new file mode 100644 index 0000000..4562e8a --- /dev/null +++ b/amor/data/pics/animated/worm/Makefile.am @@ -0,0 +1,40 @@ +# Add all your pic files here +amor_DATA = w-a1.png \ + w-a2.png \ + w-b1.png \ + w-b2.png \ + w-be1.png \ + w-be2.png \ + w-be3.png \ + w-be4.png \ + w-d1.png \ + w-d2.png \ + w-d3.png \ + w-d4.png \ + w-d5.png \ + w-dr1.png \ + w-e1.png \ + w-l1.png \ + w-l2.png \ + w-l3.png \ + w-ml0.png \ + w-ml1.png \ + w-ml2.png \ + w-ml3.png \ + w-mr0.png \ + w-mr1.png \ + w-mr2.png \ + w-mr3.png \ + w-s1.png \ + w-s2.png \ + w-s3.png \ + w-u1.png \ + w-u2.png \ + w-u3.png \ + w-wl1.png \ + w-wl2.png \ + w-wr1.png \ + w-wr2.png + +# This is where it will all be installed +amordir = $(kde_datadir)/amor/pics/animated/worm diff --git a/amor/data/pics/animated/worm/w-a1.png b/amor/data/pics/animated/worm/w-a1.png new file mode 100644 index 0000000000000000000000000000000000000000..12190759b532eb994d2b70ef90fa73464ff56abb GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@QtU7V@SoVw_%<_%?3Q(Gi-X6e@}mO;ZVw^85Il9F0?Z|=~C2^ z;_-6dj5kj$U$b#3$FJIP=xn6zWoJHr;T%VSs|>BRL2S)z{F954OMa`YK42}kHYKHS zh1>EqPTRMw(1=*O-_=#Ic6VcNx`pxHHJtA3C;d4XuSh?&N=u%hdx~KP$I`8mHql&G zE=-j_G}8JvRH$m5S+oC7_JhXa+U3hSb0+crcGXyGYtCuyB387VJ&ILl#;^W~xqL3w z4z}!0A`g7-Z7saB@?vgA)J% literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-a2.png b/amor/data/pics/animated/worm/w-a2.png new file mode 100644 index 0000000000000000000000000000000000000000..622a9d591521d9962748517261d8214209656c4c GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@Uy3jV@SoVw_%Qa%?3P&L*;VQgD)sOA+vZqIwx`UIW zeJ)QI$^Uge-{7G2^aUTIwNj=%;9@`WJdxqT-s9&iue&ap`836lufeZ+x8yTn*OU&n zx3|Am^`FYtQ)Ikw{c{LsbYta*D@?sr3ePhw-n30*u?MHMC#Hq{{m|dX7FEA&lS}W-{Cf=Udrub~VCrg6H!Vm} zFcRLycF6LBA8$*M!dV8}y70FVAs-nnF5GXJual9qCXoG0k;B>vY(@>4ymJ~?m+?G5 gz&iie|6e}3Dc>qJ7;O)J1bUyr)78&qol`;+0AOl~8~^|S literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-b1.png b/amor/data/pics/animated/worm/w-b1.png new file mode 100644 index 0000000000000000000000000000000000000000..73f94d997ace2013690b5acbb7c258b80226d098 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@RFyCV@SoVw_z9gS`>ITx9~r{{Qmqi=Jr6z@r7V+S{^5U45f*NYCk~(4&73_w+54Vki*!7bU%nvA099JZr%_ z24Q0(wH^ZLC%T?1mW!F4n4%oV1;JMz7BN8_` yGkzYJ^1ICJlU${LYG^@VR5cEnAoEP2Y%ApAk|dM~q-0Q0*i4tp7w zr9J88SS8Y^qFiFeE&PWfk_3$l(l$-W@!KjWP33ChVSq6N>H v*Y9E9lg}W|Ue_4?)Z@29`|^K1h8r0-JtBkdd#dDx4xK0G zc)svOq^bS;lscg?Tl*Bh(S)mF5#Jo=Z0xW(o$-SV@SoVw_z9gS`0X%&)Vh8-)DcA-S%+q9ZdyewZ}(qNOavO zTW0b))z#d#__lz`oz-0P6gysBV>x;!f8zwP_OE9~G3H40KmL}r<}c8544$rjF6*2UngFkMcq#w@ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-be3.png b/amor/data/pics/animated/worm/w-be3.png new file mode 100644 index 0000000000000000000000000000000000000000..1d85e775a263ae9a3381fe1110a7cbf4e7e192d6 GIT binary patch literal 312 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@P?<0V@SoVx6=aojwo=r%=G2Iwz%5(S8(q14$&!hO(yCy_b&d% z>$T-k>cPqTG&l0wj=AZSitRE z|6CC#h71D+bLQD^zZ{%w9a&pe^1bn7@wy-JGNpf-87pnW76ARo;OXk;vd$@? F2>`w`egpsj literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-be4.png b/amor/data/pics/animated/worm/w-be4.png new file mode 100644 index 0000000000000000000000000000000000000000..68d225d0ec37c79c7a8e61252993cf93476e0bbf GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@TsSZV@SoVx8WE0S`>H|i`$>^e}4Ye>B2=uDalECiT+l{tbA@K za2Ut&X=L5p(0}XRTILCNs+m2iXMUZSwTs=tDf|VTs~SERqgEkF08nMLYre=yh_i|;%w5*9B#uU%lqj)qGI-tcF5G2cJ2wQR|L gX1?cV4%B~Oo4YF}w@8NRDbP0zp00i_>zopr01mEhsQ>@~ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-d2.png b/amor/data/pics/animated/worm/w-d2.png new file mode 100644 index 0000000000000000000000000000000000000000..cea1149a51412bd080b3560e87e86b373913a2ac GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aIvS0V@SoVw^QG9H7M{LnfoQdwkp4@*2DR2|JyB2H~5=2CYi5a zc}}t|QQ}y_f{x42-^|uJWX7mdsW@}xta+Oj3hY0%_aQ@;(?QP4tBr>~>0EmheKdOZ zhsAlW4BY1)@wW*aEYgf$^7DA9dLCPf_@2{W%NSmIy`OdY%C}q09xi;}+#jB0z1z6t zA8X(P3+6kX78j!%MRMjf&f4)UXi@&*bEdujBN$&FcfAt0q?-@uTn0~9KbLh*2~7Z9 Ck8E84 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-d3.png b/amor/data/pics/animated/worm/w-d3.png new file mode 100644 index 0000000000000000000000000000000000000000..cc70e764d6bee5399314dd3eaa32a3ca08a19c85 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aIvS0V@SoVx1rH|4GKKTEzN}`d13Y{fpKlQ0`?L6c{+1rtqad3 z7)bE6U3Tm$-`Lc>PPPDU^Oo&`w-Of!)YooYt$xT*@W#y4M24%DJL62e z)h`I=@d|ZYcU*5@anAjS@C;s=zF(H^$?v%1zA(Rda^`H@#m1GUbDn+s#CPPOSJ8v5 zkD`PhasFXs;M~b=e7@Ri$F2vDZWmk@tyj>ym*nY};hMJv=v)R*S3j3^P6fm9H literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-d4.png b/amor/data/pics/animated/worm/w-d4.png new file mode 100644 index 0000000000000000000000000000000000000000..fb98926b5b06c9b7086088bc63d680ce9517eae6 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aH6M+V@SoVw^Kd&8Vq=tldrUYEU6RYQ*aaym~0mFK}I`q_Kt22 z#TEgl6Za1u*ly*_9hZDnSNzbcOIz43T-qUI)1;u}kXH9QSyMfUbK;q~bC0cxTH_pb z)n~55=^cC=lgo>g4Ysd+4_!&f@Y03 i74L)>UikgV*7}N?VZ_(j&DKE2F?hQAxvXfYfHZo#`njxgN@xNAQ*b;w literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-dr1.png b/amor/data/pics/animated/worm/w-dr1.png new file mode 100644 index 0000000000000000000000000000000000000000..3c80f1fc17c6d096aeb5b112ed02796a794ad2d2 GIT binary patch literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@S&%RV@SoVw_(wIEebp(C**n-7jORPd~(-PwrIID;b-2QC0;Y_ zw&gxNf55MLm!;#=`z%{59G4yDSaf^damKVqhi*LVIGOfg-{Gg%?C*!MoPTTTr0`7r z;S`Q9hmJ3GSlDRo%hS&wF#F#9MG#xx?Y6QoiNUy9K7)jz4+&^F7IXmm0%E zSKpbqLa46TY!9PNmF{VC&Y%kV(qPl;It%T|V^X(8Vns#%Ul zJ>ymO@DlhAj?3mhJ+{k#OVgBWYgABpOKilQQOaea5ja$%|$8zTsYgU5A6z*#d zXAczf8H62){2h6=GRr*fBjbt}`UhsR&X*8=-LSRz!LIX$oE1^b)eqvVFFkiSu>PO$ b{!ad#cUtBtW`x=UJgTe~DWM4f#pH_Y literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-l2.png b/amor/data/pics/animated/worm/w-l2.png new file mode 100644 index 0000000000000000000000000000000000000000..bcfb63a8a610da039b702bb60f0344a2ff4b5904 GIT binary patch literal 335 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@V%#tV@SoVw_yhbTO2r)`<6y@q(&@Cjp*20&_DO9jd*Nl^K<98 zuH-{)4PAQzIYk3SFRmz`E#)xN>TvW?%kT!l8v-i|`Slf6uIo6L%=D5?s$bK=xR7xg zS7D;r8q4tI|919;Ih4w=-c^VeEjqWFX=%gNroG#2_Oa^jU9hj{^77@&4=AO&U(9#% zt!6*)?Vwfv1u=#Qj{c&;-~<7~C)aHfG!7(e`*+yiTJFTpxcm44HgU))SYYn?a}%(p32&yPkN@lwp{c1S#RqD-UgPOzkN@b`j{s5biJ@? zQ@HDJJXz=h#~w~GAxB}sb*uhWtvlQB%7$x~W02UQ^QV}OI;>+|y6sObx6R%NyOPUS zF9%OxPIbSi=fu04-Jxp3x5Zi93_1KK`FeV*XpQ&(|LHP3R?)h9&9slB_GZw@% ze6JBTHJJM;^xA=Gjp_Ubi#t|7p6-24=yv2$_5|m87CxODM_%0I)Og!iHa}VD!zQ-A m18X09yl>>%|EvFQvVK!?=W??b`}BZez~JfX=d#Wzp$PzXKaFev literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-ml0.png b/amor/data/pics/animated/worm/w-ml0.png new file mode 100644 index 0000000000000000000000000000000000000000..5966eda1ffe51368d1a3d953ececf90561436ffa GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@V2LmV@SoVw_%<_hZT67dH7FX{yDSC<77ZokbcFEBkmGPiQZhA zwyE0hSRS3bU1Z9b;W6Q>O^b8!HQxr_ACDg>2}LsfW0N*}C1jhz{o~Xry;8jwPJ&H2 zFBzhKH!A0dT!<1vL5NbR!zkXoCjEMoz>WCtKF#+ZsVGLF!0Y^#`Sz% zZ$6bSYJPp+L7Vf0dcm?s`sO8_od&#ToK8xINF7tGTp;1-Be%jzU?Tgg{RfcgAe;rgon?fv}kI4pqPWbkzLb6Mw< G&;$V9iFaNA literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-ml1.png b/amor/data/pics/animated/worm/w-ml1.png new file mode 100644 index 0000000000000000000000000000000000000000..19f12d2887c39e9729a971774ec267d666e89204 GIT binary patch literal 330 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@Rg^FV@SoVx1o`ItqKB*Tbe6N^1|!|<{p2>A@NygmV~gFwfAzV z%^NmsFyQyOr**^gh)U+6+w-$$oz63P-29_lnI*A7H}BC@t|=$H8~0pfYU8!XUrj!+{lwO}0h8E|-85F4TvPtvbYp+I z;HFpWwHV_|pL6Cds0xb;!Dv_z6k62ox)ss79OIHe=+{i*twwL$tS6byv!5J=Vf!-A7otgVUoEeua5-K Ow+x=HelF{r5}E+Re1&ZQ literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-ml3.png b/amor/data/pics/animated/worm/w-ml3.png new file mode 100644 index 0000000000000000000000000000000000000000..d476391aebf612ef747b8cd8d89f6850adbe4c5b GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@V=*uV@SoVx1pznniT|;d*q)j|D67^agm^?*w(L`EG;i5e!k)0 zTwo!?*Zw&5!Ldj?L;mniPd0`|pVtOw4i_&EESl6SA1vs!nj@xgpQM836c#V5X+J05 ztrT+7yDzoB>vz`+H9_~&Zp#=PWEZKepR_QP;e6S=yJyyZUAQFh$kZcMN(B$ZsvPEe zK6$Y=%Y6#(flG{e>#yx9)|~#f?|pE#nnP}J?SA%IXYWjY9Cu}ph0=BFyWJm7RWEc( zs$kU0v#LJ(uhk-8*~D<+YnzUJJ@7|lr|VrK;r&0l-=3+yGvTqAUF`fyo!6T!6@gx5 N@O1TaS?83{1ORysg|q+w literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-mr0.png b/amor/data/pics/animated/worm/w-mr0.png new file mode 100644 index 0000000000000000000000000000000000000000..196431a1407103b2ec970bdb6ad6cd6fd04cc864 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@VcjqV@SoVx6>TOniY6lB;)v>UEF)Kq%lfMqfuoG_vW7WhRkRB zTRu#Q{TT0Cu#NFs$KjwkF_#xb9C>{>>QDB^lqX@zRbBbDRnj}`;ubh1p7%veDv}H`N%QY6kMq8x!kqqb^}O4nS6DW` zZcuN#`Nmz;F=1gihv&MVOSG5Ge`3GjoI~!7FMe)+y6T&?FMM2Ym~iNS23y9_{~T?s zW#)f=|LbG@bH0*4Lta@~F~vK=sv$(gr{Mt$mJ`|?1hlaoJ6|MZ0iJfE@q7}I&+tw zVL^x9B=y}~m%^Oy^>)nSym2EZwcBmNBU}IMhZR-pMm94RRkG5~c+# zwLYYJ=ta=ZY}xaF*YcP>|0E&xx%VpT62S%|FTcE<=B{~yeP@`tmoeY^$p4YaaaQ(v U2L?WVppO|mUHx3vIVCg!0HDl*t^fc4 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-mr2.png b/amor/data/pics/animated/worm/w-mr2.png new file mode 100644 index 0000000000000000000000000000000000000000..1f1a45e8d7d590b448c1970feecfc727f4e9a17e GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@SdlOV@SoVw_%P#M-(`W`}jY<{2N(Sxc!`7K)~*5L-pH>0)&i~ zZP~bS!{fArrK9_WUpOfEI zer29h<*S7Cc|{I4H#i?Vqw(G5oPWYrH7+^zn8LS@p8V^*|A^(+l&0yN2TeiVXYh3O Kb6Mw<&;$UBe}G^B literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-mr3.png b/amor/data/pics/animated/worm/w-mr3.png new file mode 100644 index 0000000000000000000000000000000000000000..adbf28e5943b978ec7f7ff44cb3f26ad60474a3c GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@VTdpV@SoVx1pYVEe1TR1^HiJ{%u@5!-Zwng)*x%s&y$Um{bwf$9M7gzlKq|!Fgx8wE>ot;}u1(&Mj%)Oa^?%SoyZ+~#|9Tsdz Un6=ICHPFipp00i_>zopr0OIt<8 literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-s1.png b/amor/data/pics/animated/worm/w-s1.png new file mode 100644 index 0000000000000000000000000000000000000000..4d092fe4ba2943a5103e320a154bb7f73768145a GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u-ntcF{I+w+bOYp4GKKXnjaJ7=FYy#e$nSB$7g+&zw^YHvdt3| zITTw2oc{3S&3P)k^MR<^_FoJ!meITgf@VzzrB1!RTG<}<(RGH;QNAa(YfJ^JD_gR^ z{yxReX~=e2bI&!#1f64RUDoe-%QEwhS`3@l^@37U{{w&6EswuciTnP=kp0f&4@*Dl b?Mr8hW%se|`##qY=qv_LS3j3^P6W*= literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-s2.png b/amor/data/pics/animated/worm/w-s2.png new file mode 100644 index 0000000000000000000000000000000000000000..49a79156660cd01792d8c5534030cd449c732729 GIT binary patch literal 257 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aG|G*V@SoVx6=;twJ7koq@SppG5_5BvvLPmrk;&by5ju&io_-J zTxUU!R;Ps%Hd|<}7c=ltyT|P>yztYDCdnCl($BFs#-uthD9HX)X)lW6&0sfo*wXgu z`|V2mupfNWincRBqKKR~L&T<1UA474e44&w32QO$G`q8P*~wYF t`4ghw>c1*^CSC2Ymy`Y96Ny_%tg$trHrx6gcL1Hq;OXk;vd$@?2>>p*Uo8Lt literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-u1.png b/amor/data/pics/animated/worm/w-u1.png new file mode 100644 index 0000000000000000000000000000000000000000..d3d77c26fe796968e2d8259a27f213679d5692af GIT binary patch literal 218 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6u*%cLF{I+w+bPz32NZam4PPC!sLG$l$FWjg;?a`WSLTf^GSA&L zoj4R*1P-;U?)5ZIoV=Uc#b?IbSeD*v$vihW{s_Ewi)H%k0{*|$osoKWozjd4Gj}cQ*9d%nT;|I;rM^rnw|ziYFnGH9 KxvX_Slf~gklZnHr1pq%ZE+V~DSQhZxYk44$rjF6*2UngHz4 BV88$X literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-u3.png b/amor/data/pics/animated/worm/w-u3.png new file mode 100644 index 0000000000000000000000000000000000000000..b7623978a9a42faf716b166d5d73e75c705e7330 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aEqslV@SoVw_(vj4hB41WZ7R|ysKlkij7z8_LcrO;;ChyZ?t4` zu`o3@@ILy|7cH>p&g_PH3NF)}ntVPRGJ1&So$yjnJ9p&U!wFws-s(D%vYwM^=QbC+ zl?~!)ry9li?^GsLur}PeT3^MrWzEgNmb)#RI3N9bP|>$gj$s40-CW+!4QfX^%BvQv zWjJhU-0kuGz`xiD{5BJ=Y9@Sh{1oA0dz!=NfBd(GPVt@{>gKkr%ymU|U80ie0oOhE SH#-2`&*16m=d#Wzp$P!C)od;R literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-wl1.png b/amor/data/pics/animated/worm/w-wl1.png new file mode 100644 index 0000000000000000000000000000000000000000..8de3fde75ef2522c59767db9a8d2a6bd49d3ae01 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@R6sBV@SoVw_%Qa%?3P&L*JB4N#0vzwmgzDnvE0=ri} z-k=lyCotlYb*9Rhoy(cEI5)3VJs@?`wLZoA!-N%r3q3_Tzb0SzzwRYc_FYb4!#nq+ z_>~T6AyJKU+2S&js#qILYyJg^SM2WFqGTa>OIF}-^JlANSqujlf8^!PVzW^YwOP=( zk!cm1R<_GNw!WPSI-HqebLQk1IG3q;*gcrppXKqeQ06PsLyn@o3%pXjzc9H(Ur;{& zL~qRx2A-$)8>2|R literal 0 HcmV?d00001 diff --git a/amor/data/pics/animated/worm/w-wl2.png b/amor/data/pics/animated/worm/w-wl2.png new file mode 100644 index 0000000000000000000000000000000000000000..4850cf39cb4aa076e835d76c11f9bee057b35566 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@TI4VV@SoVw_z8BniY7I=g1#h{yF_Fv$O1jm`#uJ%D;K8-j+F= z&3VUL|1)#$6*4C_SD#$aU~u|rvWjUR%Ym#%dLE2QjU6VB*1npaeN`#=uZH4;R~~OB z@m1V*GTiX+fS~%aat05*&&#(bgnZq;y5qcO#`%^E`8R)OtYH>oSmU`}Ph>t*(=&(J ze@>W3cKzmCVH2_A(Pu{fYnu;72s}`q@cq?wO{Ho*4=V#9h0rNe?v`FITx9~r{{CD$R<|K=m;$dvhgnlo{xVEvh zHMja>yTJ1LJCg*S?vUf84vt~FKaWX?E3E`lg~Ep zmO3O`FE!`Oxh+Z>cgk7QL>%pcjE+3qGmU9RqrPXbV(d=y*K%F!?ysv(-dv*3$Yi*_ z#ak_*_wJDcUCg?EJNy|sR{fnFs!(dH<@&<>)>h_NSIMTnZ-{9xzz%_D|pYK#lLp zgSE!nMLimhT0PKoo_CKwu+3qKI43{*lpFColw)cgjAVK_SB4rm|8EmLb8-L6=np5E zZNd-8t?ld7g=bAR_!H-cuGACwZrKxzgADc`v#M5FrQT_!e}tZeL?W0KnjDfW`MB zT8vkK982PYa#*gk8*(fu#+A3UpATcRz6p2TziJ4m1%;f)((L>|+pY z!;k5~epY!F&BemI1s~G`h{z5%ppP?f+mi$9K-h%smaAU;(ZPXA*jgjKsRUk`IG06@Pt1h5STws7~cHmZ^|T?YVCD!=0Z5LG2*ql}cw?UkyM z*ce2-0CO{d+A#A*gc&AyHp(n-=6nL!E?CaCkdryGQ3j$Nh<0{=i|Ymb-VjukP$~yi zCFEp|{rM9BEMHtN!5!eYfCyUs?lyiiGxpZA)N4{5h&ql@-Wip`>`>16T;mS^V<)dhMe^&uV+aD+^l`sry$t@Zr}e* zfWfnby!?$Qgs3(&Xg(9}`LqHAl8aEcV_N}sEz0PBM(*+4bfNixN5*>I2egHiK3w|g*=iUGS002ovPDHLkV1nmK@ZSIc literal 0 HcmV?d00001 diff --git a/amor/data/pics/preview/blob.png b/amor/data/pics/preview/blob.png new file mode 100644 index 0000000000000000000000000000000000000000..85a0db71e62f1aab64fc955c2287f196a2290032 GIT binary patch literal 556 zcmV+{0@MA8P)(FyUJMrjL4Oz_wKprKws=DdBlb0D$K$A%v*xH{n`d>uaKyrk^_ft_y@A zP!t8Eds7*_%FV)Fdp=5g-WlHF1eQ$aPJ^UUxy=2@}_i_qhvt--fyv+m6Ad uYWsfbHv9|kfggDh{fjr@x4w#>^rUzExD%Ev5~@uA0000&E0-@%0CXii29VYJU*rkJYVPTsjPDFo?Pt^u!Ze~$J2c)8{aT& z4$9u%QNq_AgqM$uv_4+rH3eQ}+DK71uebRocH zCvt8ox~_t%rgl`ENd5fvwiY5FK4vHm4n#;xOC}+rCL>}N8rssLD?L;&awNwvDbv57 zf`)>UEGF14C4$0mz^9|`f_AkdCUy=Qnwm;_MnWtuEmmq~-rk~HDkXMxa*{?u>N_fC zHZu3^%R)X58ZKTqC@C&RSjfPfR7OmNEGM-sC~g)WYMNNywWS^m3fEFeUSngbo*JSt zDpr<8m5_#XDfpcOEh8dI9(HYNx{7+XPB!x5vK}2BEFvLDKRr@ODj4`eL>sNy;>R$YA-h}XeajK$f#CI zZdOW~o|eifBg)Fgwnj!GE<}QwcCJP~raCUxHY#K!A#5xsbuus}S0aWkK2lXvIu#XK zLQ*RzCv-VDL;#2d9Y_EG010qNS#tmY3labT3lag+-G2N4000McNliru)d3F>DHkx8 zr-lFk0jfzvK~y-)V_={K_{Wc3yy88aIT@>h00i^uB5Vd%fyixFPups*xEfcEsX+Pk zNru_mG&JsPc^4M={tBjoZd11_k@w%9cKCTG()^JF76t!K8LfQ(eroExtkz|{iP&8E zhKmVICF*A0M4GGMdD|(8wTF$%IAzd`F|qmBuYeo!U5(!jr2mjd!%GuI@O8U4FW< z>z-4aGBPeLJ%n9>{*!+nK5fj%ICK?PYFqkmx&Eg!d+c#0$8J|1*KHr{zdXeue@$7) zc(beRmJC%K3Y52H=Wck^xXB2YysNUmXYygnt(gAr!!-tm<+DO(o_!rUYbVQm zZzS30#hal<^v!Gv{gGsH^QQN$zoor!1*Z^krN=jO@ADh0vnKp)YeNcPX@+NEQ1+Y| neZIcI4|~zw!233i%$y7WVYIIfzF@tc00000NkvXXu0mjfNVG7A literal 0 HcmV?d00001 diff --git a/amor/data/pics/preview/eyes.png b/amor/data/pics/preview/eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..6309988b1fccfb27fc1ba607420f8656245231a4 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6aH6M+V@SoVw^I-DHW+ZYa%*q>?eCC&XmY1nkcP~M1G{I0RQ&98 ziq`H@l8oT*=vey5kS$_~I$y->s`ra3&h6xVRM@aJko#fjgW8PDE3absl#=+*zn3XY z_$HFW%-~RSMua`9ccOq;yF|mxcz=E|_9zxX6Zc>KFQgW)4}D$wVAtF=(Qm%Y4f)=` hTj8^rPS+w0y_da4wS|$j6+p)^c)I$ztaD0e0su2^Sn~h? literal 0 HcmV?d00001 diff --git a/amor/data/pics/preview/ghost.png b/amor/data/pics/preview/ghost.png new file mode 100644 index 0000000000000000000000000000000000000000..7042e08428bedf89f9d855eb12fc823818d4fcd6 GIT binary patch literal 425 zcmV;a0apHrP)NU;qI#`^J=1<{s^_Fl%)J60H8!>2mL#(wf<}x##nGf z?QRgwiPm|ZeTuVw5#5OTS4B(B>kG+rTo&OpP2$~z4J!sB3cwib(mX=&dulmX1Au7U z16rfH+s2eK4j`={thH^8s3jf7pi{@Tefp@P#t=0trFdDEq!Pv_hK_Yzq1QZ6Wv|ye zTKSIwkgA}Y`F&tl6+B)8B_Og2h@AyQlszM2?-7wxMKc4wro(n?tv#KfS7(W+2>k$$ z7GbQdhQ6@l9qXx1IMxK-wvXF=iiOE3lv%W- zeC=4-(Xwv}lP`Oq(E9ET)~?g%T0Oh>?qh`X+EWZh-=kO}b}Y?XE-3UZs8Wn&eacrm zh05SP)@#@kGwz;an%91x{Zg>Wl6(dMvp+El0#q~h@68n#JvjNL-2NYyKyNa5y85}S Ib4q9e0A)6P^Z)<= literal 0 HcmV?d00001 diff --git a/amor/data/pics/preview/tao.png b/amor/data/pics/preview/tao.png new file mode 100644 index 0000000000000000000000000000000000000000..b2d2d3e583986bff63e43316aee406da53236a30 GIT binary patch literal 1776 zcmVFcYl$%7*{|27O6H zK~z}7&6nM85_=lQKLf)s!@$&*(_%_gY;7fxoMYRV_EK+s*%uSN^gr?)n&%%m_hYeGY-nhR-rimmMZxWMBM1VH<6zr1j^iK*0%-w&Ogoxh7jBKJo}M}Ha{8zUSJw*?2VEQ{6E zRW>#@Fbo4#RS`uIx7&@&6E|&}0wtWuR0aAc|D1mS|EL5x2PEFJPI5;@? z^XTa4Pgky7p}V^qkH^yt+`#tsHcy{EWqNv=VzJ1@ix*K81wjxHMUhge#HUZ6NTpKL zYPHiq1SkMWz-XM~YJ3O;0xnsW2NgvbkHum?4i66#3qAvlZ#W!28;wSr{e2uHNn&7NpxFg( z_cuA2rb#-TW?^B0FJHb;tJU`Z^(^3R)4=NLs+`GW9z>&2g27<(uwy;EE;f(H)2y{+ zS*)+GGd(@c)YKGfYioxQ0C)h%O#;DSQ0nODxZU61kD@5wJy0CSp<1nyPN#YG>J`tP zJ!5`;p1r-j!%6^f8<3hBaJ$`tBuT!Wo}MFxcT`}*FxcAKBA?Im?%g|{JbA+6;v%}P z9~B(H*KlDGz%UF<(?nI(roA2&umQ`m$Y!(5&CM|}F+nDiA)C#zzP?VSQaN!FCr-B^ zu1qG=%z9#Cg8BJ*ve_(_W&NgoKm?Fw8A+1Z+uOso?E|-<>pJmxoXN>a-n@B3KA*?3 zEVj0`Fbv~AT1Z5ITCL`ordi(H-1H3$47BOMvMdsb1kay8=jF?nB$LVCoNWurjq&UP z$mMcop-_0Sva*7%>uohJ7K?oR_>s47-;zqD{u{voUI1p3z`1khjMJx2Ka9uYN@1Gjp+3+$B~OTlje#TrBoYZ!Rjn9?u@;ZV&xS%F0)YUvT8&I5 zLp&a5dwUz(w%eRA5{cmV``OvqIY96jtO1oaCydAAPN`Jd+}+)M{QmuW(&;poW#Kpu zmSs_?R1P?rrfJ;0dzbO?ac&CRj6xJWLSYtzU+%ma^rzXIE>8*w@#YnAI z3z?=#DwQIi&o_hEwoRc>U~6lOLZNWf)N5q^sJ@iu_OIs$=58{Xbi(1VE(k&@o6Q!I z$z)$Hm+L8&N)!r(wlcJC#>dqBmwM)huH}ag{$w)g^!NAcsZ=UiDwY1>@pv-2u15-m zLWgOZ#}2HPR(k~esb2H#?|Lz5-IP^Tb@li6YuRkJCy_{a_xAQ4`2GIdhGF!skhp0J?rm(HQSHj;b9?>NKh`9Wlhtha=9#gdma3DMe6oyw0!^n$G-r^9YeUR S)P1A?00007B#&o%w7Nh0qRLa zK~z}7y;i$z!!QtiG%`jC7b#q719A)k36NDzTc}Kc7|;MI+~v51ixetcc#BJ6Q6UwH zmS{Q$5E2RL`0m|TAx~uDOyww2g)Yz5w<&SCwRQ=(B8a85&P|Trs;Y{t4;TOu3GOK3 z1%OyOnF%QgS8gUDaaS#8~|9E2-dHVNU zSq*@hA`q87XJ>+1?*axh4+q8=XszL#gXshFmeQQOoQOn3gqepGinVr#gSWSjqV+(+ z8Zal!90g;MqSPyiicS)MG1(cBw0=zY8~_iv2#7V-hajq|D#pTM>q8l{a7!$#vVIOg ziiOR!-oM-JrfOjl^>+JIt`d%lOE0=ues6C3-Q6ER(=>3i9Y;?zDu=H7zIh%H5#MlH zG!4*oC%nEsUsc$3r-=pz7z3H=4-Zp;7xWqc!0~v*`P^c=eT3FJpg(^1)*C}Zcf15K zE$W8C40!!x)_p88a{wZi_xJq(0QlAA_4z3->4G_TGXsXqC;;_{{_mu&DOaq@0x~=s zfOTDih>~=VUHgZD9^us>>$-h(b~t>ZZQH9C6Qy0Ch#>t(e}FK11urW{xZz?f$pS@m r$poVO;u2ClW%bgzO)}?5S@Zo5zD*jJO}f*h00000NkvXXu0mjfE7AiJ literal 0 HcmV?d00001 diff --git a/amor/data/pics/preview/worm.png b/amor/data/pics/preview/worm.png new file mode 100644 index 0000000000000000000000000000000000000000..196431a1407103b2ec970bdb6ad6cd6fd04cc864 GIT binary patch literal 311 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o{+5N5n|x9$&6@VcjqV@SoVx6>TOniY6lB;)v>UEF)Kq%lfMqfuoG_vW7WhRkRB zTRu#Q{TT0Cu#NFs$KjwkF_#xb9C>{>>QDB^lqX@zRbBbDRnj}`;ubh1p7%veDv}H`N%QY6kMq8x!kqqb^}O4nS6DW` zZcuN#`Nmz;F=1gihv&MVOSG5Ge`3GjoI~!7FMe)+y6T&?FMM2Ym~iNS23y9_{~T?s zW#)f=|LbG@bH0*4Lta@~F~vK=sv$(gr{n+PEoF-$OGVuWq5B|oBtoY2hi#iwSCq0!Ll>^v5p5YlTGj_~9~9P&2fp+1eH^~S z;T-Sl?OfcvtQi2XSnsO#7yL>A6)q@xy*$)f(8B#%j|RZR*NdK*jQ})U@9W;)kv}U_ zQG<5HZO2+Wu~o&W80B^%Lc{&i4VEAwQ&S;2R*R7N@yD4EVV?VV38HHVzr<~7>x5v8 zA%x{}+4HZUh6B(loB1|#b>^874}=g|mZfPbrKFTPj)M@y2*k{i9EBdFrjey06TU{U@KF|` zG`7+RQUldAC=;Ies$`JXfC#B;0t5k3KoUT~Y08n{C}w8t0d5!DVJ-u~h;Kvg8!~`d zi1RcOT-OP344g|>Fg=xtV*tU*l0)W}6CVW@zzF&jNUnqq@=V|wAo6R0Q}!te9Y}RV zb-*kTaksK(Xu9}N!*GA^z?O}hPd}O$yWi@pf-f3dy9)9A;V$C{0E%)su>R7k+V-Pozy0(2i_;2h>>C;R?~0n|7dw94v~TmkkL2Hl zGv9prU}Vev@!FKR_V~oA2iApA<*r*Q4J3D-Yx}HT|8D2Z_bn~aCtmjpo%I_hU&oLB z82qiX{?)nn^y&Anl)!SY(snHR@cu`mSNo^$3?E{z-5t6-HT(Ok+cy03_YYh-`P1Cn z%n|aL!tNbL04}Q~Q?w%;dp|DRXk&$M3W~tgpWCZgC;dJ9?{Z>)`lP D?N?|} literal 0 HcmV?d00001 diff --git a/amor/data/pics/static/bsd.png b/amor/data/pics/static/bsd.png new file mode 100644 index 0000000000000000000000000000000000000000..77d3b2a583379add685525f9d78a2c717023a494 GIT binary patch literal 2321 zcmV+s3GViZP) zocHCvt8ox~_t%rgl`ENd5fvwiY5FK4vHm4n#;xOC}+rCL>}N z8rssLD?L;&awNwvDbv57f`)>UEGF14C4$0mz^9|`f_AkdCUy=Qnwm;_MnWtuEmmq~ z-rk~HDkXMxa*{?u>N_fCHZu3^%R)X58ZKTqC@C&RSjfPfR7OmNEGM-sC~g)WYMNNy zwWS^m3fEFeUSngbo*JStDpr<8m5_#XDfpcOEh8dI9(HYNx{7+XPB!x5 zvK}2BEFvLDKRr@ODj4`eL>sN zy;>R$YA-h}XeajK$f#CIZdOW~o|eifBg)Fgwnj!GE<}QwcCJP~raCUxHY#K!A#5xs zbuus}S0aWkK2lXvIu#XKLQ*RzCv-VDL;#2d9Y_EG010qNS#tmY3labT3lag+-G2N4 z000McNliru(E}9$6$6^DWzGNq1$s$DK~#90?bdx<6J;C#@Eao7$CzbBZ)oXNtVkD2 zvbVWK++`8s^22mkR1`F+X^@&BBPRvurRW^-wzQ_(u?PiR7ZRw=UX(Gwx#3F_aJxV% zcNjPvRWD|&i^az)T{;IBch-md4f*RPzshJG0bFe18R<}(?FTQp z-T5y%UpE}xlfY;pEeU)8Aax22rS_*D?sdD}i8p*OFK_+@W(##;K3e+_4dq0K0(MFF z-Un-EeY1y!g_21EzyzWc=Ah;sy>0_Pv-VK8H~CIB7P0{h1`Z7+wW|*Hx(jVKz9yQ( zQJ!OkGdVthD2)TC$1>YpVg4 zi_zhz;>jp#K!>6_kIG}Zm@9yu4OD%S5o0ipC`vNsoR_7lQlnB$7dzu1Xxd2#y6q9> z$}j;d>T_cS=S9X+r@GU3IT;3pO=HnDjggEDi*u`>q@?pv2zvje&mriZkjDatHlJj$ z)fiG|$#5tZsWofp=~%yi%F|(CH{K0FA>)|pYJC>hz<~jQTA&V0MJo9hVGwl3dtZhy zUoq^EqETj*-=n&`Dd0TySB&OLbdbeTRaBJD-k>sFNY}5i#T;m0wV>%BF-LoXU1fI) zV{+RZwnjyJ18QbR7x>^}XI(;DoIs2=Y;qvcjm2$3mSxN6N7UXdYLzyK<#LnFraxrv zV@c^J1b{bs(Wf~&xm+x!Y(=6&Y$?Pi>5rwif3UgUB$uP+QU_~EZ)%v2z`f}`gU#(R zxy}oxf}jwjhXIZw{OG|&ZOwzCSwY!!l7LAJ=Qs8=_9!m0`_BCp7(n>fPed@fb5WXK z{!XfA}iLgHi3VRV4kHpC3zH-D-Rl()5mK}UOg28%gOL(NUa${u6 zbD_yBWmlJ158!HuyDRjpb>-4s)}>1)ZD-*!JG5RsPJj-2L9f1RYIyke@27IZe_pxp z_JxmswEcm7`H9zn)nzvNZvpngU4a?StxQR=RzzAS{gP5yxpvpu&`%aLZAl!BUsLo% zMEE!)@pq;+(mFmoCA1|ayrrdU+rD3$mejs|IxEYNwR_cY+JEYu)}1ScrQr1&E5@%* zNeMlBHho6ZQNz*v#QBGhA6s^5+3t12nr)Sgz5-(X^yyq~g|(%n|H$#0tgM<1$MSYu z+EQ3Jj6z7<;~0(-$W#UR>6lcjm;grrv_a?iqWdhnK*}&cIJhpY+=i zwYB>4^7U^eCFRZAaANkltG`MB<}B~AxV8>Sr;IvQpe?Sd!feR}SCv;{dBmxg`})$P r|8&l^LXSiu@sZdq*Zmv(e=x)!=^Tk<-fTL{00000NkvXXu0mjf2!IE6 literal 0 HcmV?d00001 diff --git a/amor/data/pics/static/tux.png b/amor/data/pics/static/tux.png new file mode 100644 index 0000000000000000000000000000000000000000..924c569fec8dc659f5d1899ba11b54e918260a4f GIT binary patch literal 1694 zcmV;P24VS$P)%nelPXC43w0Vy`2P+Wkd`N3{X%|^z`)Jv|RGqEUkD7 zZdw$Uatra)DuQ@q^0o}NehM-rzrMY^C>+j$T1(W_)X9zq92^_-%?xTrM9-8Mq=Y=Q zgCN?Y3Br>LY()i3HU#Ul7MyuA0s{O%EC*ae35Qq(;=BxWbaY%?T%w6wWMpLW(u}H< zY-&=RRz74B47BX*>{dLIop(%bO=dhiJSG~1jg5@Bt(Lc&TqGHBEG#UntgLoYG(at$ zwTv}AE3vMeXw1ya-QC=5Y-_8IN04l6ifkn4yYD|Ro+7y>^E-@nou%(ZWS_JmmN_|>Hr+zTvx?}p4H-FoN`DxCLs34 zED8n$ooWZXlt-LxEyJ1)z^ss7Rz$0E1L;#2d9Y_EG010qNS#tmY3labT3lag+-G2N4 z000McNliru(E}9$I4bxzr%eC=0|!Y&K~#90?Uu1?+dve?^BNVZE*j(%QzL{XHH6Rv zVhSmqvKR!7vKa-GgFulGC@O&v450~l5+!s5_EPdLU{a2yv8RopggAtHnmnT1(^GfWGe6n)^yP4l6n?<0&5@&(r~I4r_}bQYdc zh%5zH6h#SwA}qPX6Oyw==WUCmKHVay2Pm5*jKwXI^jwyV`y-rH7zAcbGZ*c`m}T_C z^k6F&1#ft}Pm_2vKglF^ObE0$LIuzs#Hnqk)TkM!p`@ls6SlJ_j$W5j(C9@GA1`%H z(5*c5T#Au4&M0rg;jV(%tWED1AyQUv>ab`U&w43Jmp1ApvgbR=M$<4f80IueQ*5l) z=Aua#} z6Hn^QS3@tQ^PEh5PIb+jg}NO z>=wN-m;gq)=qn1ZsZC2R_g852<;9LF%j%$i7a8gE`t`PLudb9b|32*7bzZreN`_kA oU)j%+GY9)`SFe_H$$L%KUkNYWF&>g}*Z=?k07*qoM6N<$f&(AkV*mgE literal 0 HcmV?d00001 diff --git a/amor/data/pingurc b/amor/data/pingurc new file mode 100644 index 0000000..31b8b0e --- /dev/null +++ b/amor/data/pingurc @@ -0,0 +1,167 @@ +# KDE Config File +[Config] +PixmapPath=pics/animated/pingu +Description=Tux +Description[be]=Tукс +Description[bg]=Тъкс +Description[bn]=টাক্স +Description[eo]=Tuĉjo +Description[he]=טקס +Description[hi]=टक्स +Description[lv]=Tuksis +Description[mk]=Пингвин +Description[ne]=टक्स +Description[ru]=Тукс +Description[ta]= Tux +Description[tg]=Тукс +Description[th]=ตุ๊กซ์ +Description[tr]=Penguen (Hareketli) +Description[uz]=Taks +Description[uz@cyrillic]=Такс +Description[zh_CN]=Tux小企鹅 +About=By Frank Pieczynski\nBased on graphics of the game "pingus". +About[af]=Deur Frank Pieczynski\nBased op grafieka van die speletjie "pingus". +About[ar]=من فرانك بيسزينسكي\nمبنية على رسومات لعبة "pingus". +About[az]=Frank Pieczynski tərəfindən\n"Pingus" oyunu qrafikaları əsasında. +About[be]=Аўтар Frank Pieczynski\nЗаснавана на графіцы з гульні "pingus". +About[bg]=Автор Франк Пижински\nБазирано на графика от играта pingus +About[bn]=তৈরি করেছেন পিসজিনস্কি\n"পিঙ্গাস" দলের গ্রাফিক্সের ওপর ভিত্তি করে। +About[br]=Gant Frank Pieczynski\nDiazezet war ur skeudenn c'hoari « pingus ». +About[bs]=Autor Frank Pieczynski\nBazirano na slikama iz igre "pingus". +About[ca]=Per Frank Pieczynski\nBasat en els gràfics del joc "pingus". +About[cs]=Autor Frank Pieczynski\nNa základě grafiky hry "pingus". +About[cy]=Gan Frank Pieczynski\nSeiliedig ar raffegau y gêm "pingus". +About[da]=Af Frank Pieczynski\nBaseret på grafik fra spillet "pingus". +About[de]=Von Frank Pieczynski\nNach den Graphiken des Spiels "Pingus" +About[el]=Από τον Frank Pieczynski\n Βασισμένο σε γραφικά από το παιχνίδι "pingus". +About[eo]=De Frank Pieczynski\nbazita sur grafikoj de la ludo "pingus". +About[es]=Por Frank Pieczynski\nBasado en gráficos del juego «pingus». +About[et]=Autor: Frank Pieczynski\nAluseks mängu "pingus" graafika. +About[eu]=Frank Pieczynskik egina\n"pingus" jokoaren irudietan oinarritua. +About[fa]=وسط فرانک پیزینسکی \nبر اساس نگاره‌های بازی «pingus». +About[fi]=Tehnyt Frank Pieczynski\nPerustuu "pingus" pelin grafiikoihin. +About[fr]=Par Frank Pieczynski\nBasé sur les graphismes du jeu « pingus ». +About[ga]=Le Frank Pieczynski\nBunaithe ar ghrafaic an chluiche "pingus". +About[gl]=Por Frank Pieczynski\nBaseado nos gráficos do xogo "pingus". +About[he]=מאת פרנק פיצינקסי\nמבוסס על הגרפיקה של המשחק "pingus". +About[hi]=फ्रेंक पाईजेंस्की द्वारा\nखेल "pingus" के चित्रों पर आधारित. +About[hr]=Autor: Frank Pieczynski\nZasnovano na grafici iz igre "pingus". +About[hu]=Készítette: Frank Pieczynski\nA grafika a "Pingus" nevű játékból származik. +About[is]=By Frank Pieczynski\nByggt á myndefni úr leiknum "pingus". +About[it]=Di Frank Pieczynski.\nBasato sulla grafica del gioco "pingus". +About[ja]=By Frank Pieczynski\nゲーム "pingus" のグラフィックに基づく +About[km]=ដោយ Frank Pieczynski\nផ្អែកលើ​ក្រាហ្វិក​ល្បែង "pingus" ។ +About[lt]=Darė Frank Pieczynski\nPagal „pingus“ žaidimo grafiką. +About[lv]=Autors - Frank Pieczynski\nBāzēts uz spēles "pingus" grafiskās idejas. +About[mk]=Од Frank Pieczynski\nБазирано на графиката од играта „pingus“. +About[mt]=Ta' Frank Pieczynski\nIbażat fuq grafika tal-logħba "pingus". +About[nb]=Av Frank Pieczynski\nBasert på bilde fra spillet «pingus». +About[nds]=Vun Frank Pieczynski\nBuut op Biller vun dat Speel "pingus". +About[ne]=फ्र्‌याङ्क पाइस्जिन्किद्वारा\nखेल "pingus"को ग्राफिकहरूमा आधारित +About[nl]=Door Frank Pieczynski\nGebaseerd op illustraties uit het spel "pingus". +About[nn]=Av Frank Pieczynski\nBasert på grafikk frå spelet "pingus". +About[pl]=Autorstwa Franka Pieczynskiego\nNa podstawie grafiki z gry "pingus". +About[pt]=De Frank Pieczynski\nBaseado numa imagem do jogo "pingus". +About[pt_BR]=Por Frank Pieczynski\nBaseado nos gráficos do jogo "pingus". +About[ro]=De Frank Pieczynski\nBazat pe grafica jocului "pingus". +About[ru]=Автор - Frank Pieczynski\nНа основе графики игры "pingus". +About[sk]=Vytvoril Frank Pieczynski\nZaložené na grafike z hry "pingus". +About[sl]=Od Franka Pieczynskega\nTemelji na grafiki igre "pingus". +About[sr]=Од Френка Пјечинског (Frank Pieczynski)\нБазирано на графици игре Pingus. +About[sr@Latn]=Od Frenka Pječinskog (Frank Pieczynski)\nBazirano na grafici igre Pingus. +About[sv]=Av Frank Pieczynski\nBaserad på grafik från spelet "Pingus" +About[ta]=பிரான்க் பிஸ்சிகி \nஅசைவுட்ட விளையாட்டு " பின்கஸ்" லை பற்றியது. +About[tg]=Франки Пикзунский\nТасвирҳои бозии "pingus". +About[th]=โดย Frank Pieczynski\nโดยใช้พื้นฐานกราฟิกจากเกม "pingus" +About[tr]=Frank Pieczynski\nPingus oyunundan esinlenilmiştir. +About[uk]=Автор: Frank Pieczynski\nПобудовано з графіки для гри "pingus". +About[uz]=Frank Pissinski (Frank Pieczynski) yaratgan\nPingus oʻyinining grafikasida asoslangan. +About[uz@cyrillic]=Франк Писцински (Frank Pieczynski) яратган\nPingus ўйинининг графикасида асосланган. +About[ven]=Nga Frank Pieczynski\nZwo di sendeka nga girafu ya mutambo "pingus". +About[xh]=Ngu Frank Pieczynski\nyamelene nemizobo yomdlalo "pingus". +About[zh_CN]=作者:Frank Pieczynski\n基于“pingus”游戏中的图形。 +About[zu]=Ngu Frank Pieczynski\nIsekelwe emidwebeni yomdlalo "pingus". +Icon=../../preview/tux.png +Base=Base +Sequences=WalkLeft,WalkRight,Float,Tumble,Dig,BashLeft,BashRight +Focus=FallUp +Blur=FallDown +Destroy=Bomb + +[Base] +Sequence=blocker1.png,blocker2.png,blocker3.png,blocker4.png,blocker5.png,blocker6.png,blocker1.png,blocker2.png,blocker3.png,blocker4.png,blocker5.png,blocker6.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0 +Delay=200,200,1000,200,200,200,200,200,1000,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=32,32,32,32,32,32,32,32,32,32,32,32 + +[Float] +Sequence=floater1.png,floater2.png,floater3.png,floater4.png,floater5.png,floater6.png,floater7.png,floater8.png +Movement=2,2,2,2,2,2,2,2 +Delay=200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=32,40,50,60,60,50,40,32 + +[FallDown] +Sequence=faller1.png,faller2.png,faller3.png,faller4.png,faller5.png,faller6.png,faller7.png,faller8.png +Movement=0,0,0,0,0,0,0,0 +Delay=200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=20,10,-10,-50,-130,-300,-500,-750 +#HotspotY=32,20,0,-20,-50,-80,-120,-160 + +[FallUp] +Sequence=faller1.png,faller2.png,faller3.png,faller4.png,faller5.png,faller6.png,faller7.png,faller8.png +Movement=0,0,0,0,0,0,0,0 +Delay=100,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=750,500,250,150,100,75,50,40 + +[Tumble] +Sequence=tumble1.png,tumble2.png,tumble3.png,tumble4.png,tumble5.png,tumble6.png,tumble7.png,tumble8.png +Movement=0,0,0,0,0,0,0,0 +Delay=200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=32,32,32,32,32,32,32,32 + +[WalkLeft] +Sequence=walk_l1.png,walk_l2.png,walk_l3.png,walk_l4.png,walk_l5.png,walk_l6.png,walk_l7.png,walk_l8.png +Movement=-4,-4,-4,-4,-4,-4,-4,-4 +Delay=300,300,300,300,300,300,300,300 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=32,32,32,32,32,32,32,32 + +[WalkRight] +Sequence=walk_r1.png,walk_r2.png,walk_r3.png,walk_r4.png,walk_r5.png,walk_r6.png,walk_r7.png,walk_r8.png +Movement=4,4,4,4,4,4,4,4 +Delay=300,300,300,300,300,300,300,300 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=32,32,32,32,32,32,32,32 + +[BashLeft] +Sequence=bash_l1.png,bash_l2.png,bash_l3.png,bash_l4.png,bash_l5.png,bash_l6.png,bash_l7.png,bash_l8.png,bash_l9.png,bash_l10.png,bash_l11.png,bash_l12.png +Movement=-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8,-8 +Delay=200,200,200,200,200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=32,32,32,32,32,32,32,32,32,32,32,32 + +[BashRight] +Sequence=bash_r1.png,bash_r2.png,bash_r3.png,bash_r4.png,bash_r5.png,bash_r6.png,bash_r7.png,bash_r8.png,bash_r9.png,bash_r10.png,bash_r11.png,bash_r12.png +Movement=8,8,8,8,8,8,8,8,8,8,8,8 +Delay=200,200,200,200,200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=32,32,32,32,32,32,32,32,32,32,32,32 + +[Bomb] +Sequence=bomber1.png,bomber2.png,bomber3.png,bomber4.png,bomber5.png,bomber6.png,bomber7.png,bomber8.png,bomber9.png,bomber10.png,bomber11.png,bomber12.png,bomber13.png,bomber14.png,bomber15.png,bomber16.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=100,100,100,100,100,100,100,100,100,100,100,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 + +[Dig] +Sequence=digger1.png,digger2.png,digger3.png,digger4.png,digger5.png,digger6.png,digger7.png,digger8.png,digger9.png,digger10.png,digger11.png,digger12.png,digger13.png,digger14.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=200,200,200,200,200,200,200,200,200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=32,32,32,32,32,32,32,32,32,32,32,32,32,32 diff --git a/amor/data/taorc b/amor/data/taorc new file mode 100644 index 0000000..5e6b13a --- /dev/null +++ b/amor/data/taorc @@ -0,0 +1,148 @@ +# KDE Config File +[Config] +PixmapPath=pics/animated/tao +Description=Tao +Description[be]=Дао +Description[bg]=Тао +Description[bn]=তাও +Description[he]=טאו +Description[hi]=ताओ +Description[mk]=Тао +Description[ne]=टाओ +Description[ru]=Дао +Description[sr]=Тао +Description[ta]= Tao +Description[th]=เต๋า +Description[uz@cyrillic]=Тао +Description[zh_CN]=道 +About=By Daniel Pfeiffer \nYin Yang symbol inspired by my Tai Chi practice. +About[af]=Deur Daniel Pfeiffer \nYin Yang simbool geïnspireer Deur my Tai Chi oefening. +About[ar]=تأليف Daniel Pfeiffer \nرموز الين و اليان من ممارستي للتاي شي. +About[az]=Daniel Pfeiffer tərəfindən\nYin Yang symbol inspired by my Tai Chi practice. +About[be]=Аўтар Daniel Pfeiffer \nYin Yang symbol inspired by my Tai Chi practice. +About[bg]=Автор Даниел Пфайфар \nИдеята за символа идва от хобито на автора +About[bn]=তৈরি করেছেন ড্যানিয়েল ফেইফার \nইন ইয়াং প্রতীকের অনুপ্রেরণা পেয়েছি আমার তাই চি অনুশীলন থেকে। +About[br]=Gant Daniel Pfeiffer \nArouez Yin Yang a zo awenet gant pleustr Tai Chi. +About[bs]=Autor Daniel Pfeiffer \nYin Yang simbol inspirisan mojim prakticiranjem Tai Chi. +About[ca]=Per Daniel Pfeiffer \nEl símbol del Yin Yang s'ha inspirat en la meva pràctica del Tai Chi. +About[cs]=Autor Daniel Pfeiffer \nYin Yang symbol inspirován mým cvičením Taiči +About[cy]=Gan Daniel Pfeiffer \n Ysbrydolwyd y symbol Yin Yang gan fy ymarfer Tai Chi. +About[da]=Af Daniel Pfeiffer \nYin Yang-symbol inspireret fra mine Tai Chi-øvelser. +About[de]=Von Daniel Pfeiffer \nYin-Yang-Symbol inspiriert durch meine Tai-Chi-Übungen +About[el]=Από τον Daniel Pfeiffer \n Το σύμβολο Yin Yang εμπνευσμένο από την πρακτική μου στο Tai Chi. +About[eo]=De Daniel Pfeiffer \nJinjan-simbolo inspirita de mia Tajĝi-praktikado. +About[es]=Por Daniel Pfeiffer \nSímbolo del Yin Yang, inspirado en mi práctica de Tai Chi. +About[et]=Autor: Daniel Pfeiffer \nYin-yangi sümbol jäi mulle külge taiji harrastusest. +About[eu]=Daniel Pfeiffer egina \nYin Yang simboloa nire Tai Chi praktikan oinarritua. +About[fa]=توسط دنیل فیفر \n نماد الهام گرفته توسط یینیانگ تمرین تای چی من +About[fi]=Tehnyt Daniel Pfeiffer \nYin Yang symbolin inspiroinut Tai Chi -harjoitukseni. +About[fr]=Par Daniel Pfeiffer \nLe symbole Yin Yang est inspiré par ma pratique du Tai Chi. +About[ga]=Le Daniel Pfeiffer \nSiombail Yin Yang spreagtha ag mo chleachtadh Tai Chi. +About[gl]=Por Daniel Pfeiffer \nO símbolo do Yin-Yang inspirado na miña prática do Tai Chi. +About[he]=מאת דניאל פפר \nההשראה לסמל היין-יאנג נלקחה מאימוני הטאי צ'י שלי. +About[hi]=डेनियल फीफ़र द्वारा \nयिन यांग चिह्न मेरे ताई-ची अभ्यास से प्रेरित +About[hr]=Daniel Pfeiffer \n"Znak 'Yin Yang' inspiriralo je moje vježbanje Tai Chia." +About[hu]=Készítette: Daniel Pfeiffer ()\nA 'Yin Yang' szimbólumot saját Tai Chi gyakorlataimból merítettem. +About[is]=By Daniel Pfeiffer \nYin Yang merkið kom til af áhuga mínum á Tai Chi. +About[it]=Di Daniel Pfeiffer \nSimbolo Yin Yang ispirato alla mia pratica Tai Chi. +About[ja]=By Daniel Pfeiffer \n太極拳の練習から発想を得た陰陽シンボル +About[km]=ដោយ Daniel Pfeiffer \nនិមិត្ត​សញ្ញាយីងយ៉ាង(Yin Yang) ដែលបង្កើត​ឡើងដោយការអនុវត្តតាយឈី (Tai Chi) របស់​ខ្ញុំ ។ +About[lt]=Darė Daniel Pfeiffer \nYin Yang simbolį įkvėpė mano Tai Chi praktika. +About[lv]=Autors - Daniel Pfeiffer \nIņ Jaņ motīvu inspirācija no personīgās Tai Chi praktizēšanas. +About[mk]=Од Даниел Фајфер \nСимболот Јин-Јанг е инспириран од моето вежбање на Тај Чи. +About[mt]=Ta' Daniel Pfeiffer \nSimbolu Yin Yang ispirat mil-prattika tiegħi tat-Tai Chi. +About[nb]=Av Daniel Pfeiffer \nYin Yang symbolet er inspirert av mine Tai Chi-øvelser. +About[nds]=Vun Daniel Pfeiffer \n"Yin un Yang"-Symbool, anreegt dör mien Tai-Chi-Öven. +About[ne]=डानियल फेइफरद्वारा \nमेरो टाइ चि अभ्यासद्वारा यिङ् याङ् प्रेरणा गरीएको प्रतिक। +About[nl]=Door Daniel Pfeiffer \nYin Yang-symbool geïnspireerd door mijn Tai Chi-ervaring. +About[nn]=Av Daniel Pfeiffer \nYin Yang-symbolet er inspirert av Tai Chi-erfaringa mi. +About[pl]=Autorstwa Daniela Pfeiffera \nYin Symbol Yang inspirowany przez moją praktykę Tai Chi. +About[pt]=De Daniel Pfeiffer \nSímbolo do Yin Yang inspirado na minha prática de Tai Chi. +About[pt_BR]=Por Daniel Pfeiffer \nSímbolo Yin Yang inspirado em minha prática de Tai Chi. +About[ro]=De Daniel Pfeiffer \nSimbol Yin Yang inspirat de practica Tai Chi. +About[ru]=Автор - Daniel Pfeiffer \nСимвол инь-ян взят из моей практики тайцзи. +About[sk]=Vytvoril Daniel Pfeiffer \nSymbol Yin Yang inšpirovaný mojou skúsenosťou s Tai Chi. +About[sl]=Od Daniela Pfeifferja \nZa simbol jin-jang sem dobil navdih pri vadbi tai chija. +About[sr]=Од Данијела Фајфера (Daniel Pfeiffer) \nСимбол Јинга и Јанга инспирисан мојом тај-чи вежбом. +About[sr@Latn]=Od Danijela Fajfera (Daniel Pfeiffer) \nSimbol Jinga i Janga inspirisan mojom taj-či vežbom. +About[sv]=Av Daniel Pfeiffer \nYin Yang symbol inspirerad av att utöva Tai Chi +About[tg]=Даниел Пфейфиффер \Тасвирҳо аз машқи Tai Chi +About[th]=โดย Daniel Pfeiffer \nสัญลักษณ์ หยิน-หยาง จากแบบฝึก Tai Chi ของผม +About[tr]=Daniel Pfeiffer \nYin Yang sembolü Tai Chi'den esinlenilmiştir. +About[uk]=Автор: Daniel Pfeiffer \nСимвол Yin Yang від натхнення з моєї практики Tai Chi. +About[ven]=Nga Daniel Pfeiffer \nYin Yang zwiga zwo tutuwedzhwa nga nga ndowendowe yanga ya Tai Chi. +About[xh]=By Daniel Pfeiffer \nYin Yang iphawu ikhuthaziswe luqheliso lwam lwe Tai Chi. +About[zh_CN]=作者:Daniel Pfeiffer \n我从太极锻炼中得到灵感的阴阳符号。 +About[zu]=Ngu Daniel Pfeiffer \nUphawu lwe-Yin Yang olugqugquzelwe ukwenza kwami i-Tai Chi. +Icon=../../preview/tao.png +Base=Base +Sequences=Left,Right,Turn +Focus=Grow +Blur=Shrink +Sleep=Hide +Wake=Unhide +Destroy=Fall + +[Base] +Sequence=yy.png +Movement=0 +Delay=2000 +HotspotX=0 +HotspotY=32 + +[Left] +Sequence=yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png,yy.png +Movement=-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2 +Delay=200,190,180,170,160,150,150,150,150,150,150,150,150,150,150,150,150,150,150,160,170,180,190,200 +HotspotX=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +HotspotY=32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 + +[Right] +Sequence=yy15.png,yy30.png,yy45.png,yy60.png,yy75.png,yy90.png,yy105.png,yy120.png,yy135.png,yy150.png,yy165.png,yy180.png,yy195.png,yy210.png,yy225.png,yy240.png,yy255.png,yy270.png,yy285.png,yy300.png,yy315.png,yy330.png,yy345.png,yy.png +Movement=2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 +Delay=200,190,180,170,160,150,150,150,150,150,150,150,150,150,150,150,150,150,150,160,170,180,190,200 +HotspotX=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +HotspotY=32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 + +[Turn] +Sequence=yy.png,yy15.png,yy30.png,yy45.png,yy60.png,yy75.png,yy90.png,yy105.png,yy120.png,yy135.png,yy150.png,yy165.png,yy180.png,yy195.png,yy210.png,yy225.png,yy240.png,yy255.png,yy270.png,yy285.png,yy300.png,yy315.png,yy330.png,yy345.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=200,190,180,170,160,150,150,150,150,150,150,150,150,150,150,150,150,150,150,160,170,180,190,200 +HotspotX=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +HotspotY=32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 + +[Grow] +Sequence=yyx6.png,yyx8.png,yyx10.png,yyx12.png,yyx14.png,yyx16.png,yyx18.png,yyx20.png,yyx22.png,yyx24.png,yyx26.png,yyx28.png,yyx30.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=150,150,150,150,150,150,150,150,150,150,150,150,150 +HotspotX=-13,-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1 +HotspotY=6,8,10,12,14,16,18,20,22,24,26,28,30 + +[Shrink] +Sequence=yyx30.png,yyx28.png,yyx26.png,yyx24.png,yyx22.png,yyx20.png,yyx18.png,yyx16.png,yyx14.png,yyx12.png,yyx10.png,yyx8.png,yyx6.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=150,150,150,150,150,150,150,150,150,150,150,150,150 +HotspotX=-1,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11,-12,-13 +HotspotY=30,28,26,24,22,20,18,16,14,12,10,8,6 + +[Hide] +Sequence=yy-1.png,yy-2.png,yy-3.png,yy-4.png,yy-5.png,yy-6.png,yy-7.png,yy-8.png,yy-9.png +Movement=0,0,0,0,0,0,0,0,0 +Delay=150,150,150,150,150,150,150,150,60000 +HotspotX=0,0,0,0,0,0,0,0,0 +HotspotY=31,30,29,28,27,26,25,24,23 + +[Unhide] +Sequence=yy-9.png,yy-8.png,yy-7.png,yy-6.png,yy-5.png,yy-4.png,yy-3.png,yy-2.png,yy-1.png +Movement=0,0,0,0,0,0,0,0,0 +Delay=150,150,150,150,150,150,150,150,150 +HotspotX=0,0,0,0,0,0,0,0,0 +HotspotY=23,24,25,26,27,28,29,30,31 + +[Fall] +Sequence=yy15.png,yy30.png,yy45.png,yy60.png,yy75.png,yy90.png,yy105.png,yy120.png,yy135.png,yy150.png,yy165.png,yy180.png,yy195.png,yy210.png,yy225.png,yy240.png,yy255.png,yy270.png,yy285.png,yy300.png,yy315.png,yy330.png,yy345.png,yy.png,yy15.png,yy30.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100 +HotspotX=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +HotspotY=31,29,27,25,22,19,15,10,4,-3,-11,-21,-33,-47,-64,-85,-110,-140,-176,-219,-271,-333,-407,-496,-603,-731 + diff --git a/amor/data/tips-en b/amor/data/tips-en new file mode 100644 index 0000000..6f7fb5f --- /dev/null +++ b/amor/data/tips-en @@ -0,0 +1,39 @@ +Don't run with scissors. +% +Never trust car salesmen or politicians. +% +Real programmers don't comment their code. It was hard to write, it should be hard to understand. +% +It is much easier to suggest solutions when you know nothing about the problem. +% +You can never have too much memory or disk space. +% +The answer is 42. +% +It's not a bug. It's a misfeature. +% +Help stamp out and abolish redundancy. +% +To maximize a window vertically, click the maximize button with the middle mouse button. +% +You can use Alt+Tab to switch between applications. +% +Press Ctrl+Esc to show the applications running in your current session. +% +Alt+F2 displays a small window that you can type a command into. +% +Ctrl+F1 to Ctrl+F8 can be used to switch virtual desktops. +% +You can move buttons on the panel using the middle mouse button. +% +Alt+F1 pops-up the system menu. +% +Ctrl+Alt+Esc can be used to kill an application that has stopped responding. +% +If you leave KDE applications open when you logout, they will be restarted automatically when you log back in. +% +The KDE file manager is also a web browser and an FTP client. +% +Applications can display messages and tips in an Amor bubble using the showMessage() and +showTip() DCOP calls +% \ No newline at end of file diff --git a/amor/data/tuxrc b/amor/data/tuxrc new file mode 100644 index 0000000..e9854ed --- /dev/null +++ b/amor/data/tuxrc @@ -0,0 +1,127 @@ +# KDE Config File +[Config] +PixmapPath=pics/static +Static=true +Description=Unanimated Tux +Description[af]=Ongeanimeerde Tux +Description[ar]=Tux غير متحرك +Description[be]=Неанімаваны Тукс +Description[bg]=Неанимиран Тъкс +Description[bn]=অ্যানিমেশনবিহীন টাক্স +Description[bs]=Neanimirani Tux +Description[ca]=Tux sense animació +Description[cs]=Neanimovaný Tux +Description[cy]=Tux heb ei animeddio +Description[da]=Uanimeret Tux +Description[de]=Tux (nicht animiert) +Description[el]=Μη κινούμενος Tux +Description[eo]=Nemoviĝema Tuĉjo +Description[es]=Tux inanimado +Description[et]=Liikumatu Tux +Description[eu]=Tux animabakoa +Description[fa]=Tux غیر پویا +Description[fi]=Animoimaton Tux +Description[fr]=Tux (in)animé +Description[ga]=Tux neamhbheoite +Description[gl]=Tux Inanimado +Description[he]=טקס ללא הנפשה +Description[hi]=स्थिर टक्स +Description[hr]=Statički Tux +Description[hu]=nem animált Tux +Description[is]=Hreyfingalaus Tux +Description[it]=Tux immobile +Description[ja]=動かない Tux +Description[km]=Tux គ្មាន​ចលនា +Description[ko]=움직이지 않는 턱스 +Description[lt]=Nejudantis Tux +Description[lv]=Neanimēts Tuksis +Description[mk]=Неанимиран пингвин +Description[nb]=Stillestående Tux +Description[nds]=Tux (nich animeert) +Description[ne]=एनिमेट नगरिएको टक्स +Description[nl]=Statische Tux +Description[nn]=Stilleståande Tux +Description[pl]=Nieanimowany Tux +Description[pt]=Tux não-animado +Description[pt_BR]=Tux Inanimado +Description[ro]=Tux neanimat +Description[ru]=Статичный Тукс +Description[sk]=Neanimovaný Tux +Description[sl]=Neanimiran Tux +Description[sr]=Неанимирани Tux +Description[sr@Latn]=Neanimirani Tux +Description[sv]=Tux utan animering +Description[tg]=Тукси оддӣ +Description[th]=ตุ๊กซ์ที่เคลื่อนไหวไม่ได้ +Description[tr]=Haraketsiz Penguen +Description[uk]=Неоживлений Tux +Description[uz]=Animatsiyasiz Taks +Description[uz@cyrillic]=Анимациясиз Такс +Description[ven]=Tux i songo itwaho zwazwipuka +Description[xh]=Okungaphiliswanga Tux +Description[zh_CN]=没有动画的 Tux 小企鹅 +Description[zh_TW]=不動的 Tux +About=Static window sitter +About[af]=Statiese venster sitter +About[ar]=قاعد النوافذ الساكنة +About[az]=Statik pəncərə mürəbbiyəsi +About[be]=Статычны наглядчык вокнаў +About[bg]=Неанимирано дяволче +About[bn]=উইন্ডোর এক স্থানে স্থির হয়ে বসে থাকে +About[bs]=Statički window sitter +About[ca]=Model estàtic de finestra +About[cs]=Statická ozdoba okna +About[cy]=Gwarchodydd ffenest sefydlog +About[da]=Statisk vinduessitter +About[de]=Statischer Fenstersitzer +About[el]=Στατικό εικονίδιο +About[eo]=Moviĝema fenestrosidulo +About[es]=Cuidador estático de ventanas +About[et]=Liikumatu aknahoidja +About[eu]=Lehio modelo egonkorra +About[fa]=مدل پنجرۀ ایستا +About[fi]=Staattinen ikkunallaistuja +About[fr]=Surveillant statique de fenêtres +About[ga]=Peata statach fuinneoige +About[gl]=Vixiante estático de fiestras +About[he]=שומר חלון סטטי +About[hi]=स्थिर विंडो सिटर +About[hr]=Statički sjedač na prozoru +About[hu]=Nem animált ablakdíszítés +About[is]=Situr og passar glugga +About[it]=Immagine statica +About[ja]=動かないウィンドウ監視人 +About[km]=អ្នក​ថែទាំ​បង្អួចឋិតិវន្ត +About[lt]=Nejudantis sėdėtojas ant lango +About[lv]=Statisks uz loga sēdētājs +About[mk]=Статичен седач врз прозорци +About[mt]=Stampa statika +About[nb]=Statisk vindusitter +About[nds]=Fast Finstersitter +About[ne]=स्थिर सञ्झ्याल सिटर +About[nl]=Statische vensterzitter +About[nn]=Statisk vindaugssitjar +About[pl]=Stale w tym samym miejscu +About[pt]=Elemento estático pousado sobre as janelas +About[pt_BR]=Janela Estática +About[ro]=Imagine statică +About[ru]=Статичный сторож окон +About[sk]=Statická ozdoba okna +About[sl]=Statično okno +About[sr]=Статични седач на прозору +About[sr@Latn]=Statični sedač na prozoru +About[sv]=Statisk fönstervakt +About[ta]= நிலையான சாளரம் அமர்தல் +About[tg]=Нигаҳбонии статикии тиреза +About[th]=นั่งเล่นบนหน้าต่าง +About[tr]=Statik pencere bakıcı +About[uk]=Статична прикраса для вікна +About[ven]=Tshidzuli tsha window yo imaho +About[zh_CN]=窗口静坐者 +Icon=../preview/tux.png + +[Base] +Sequence=tux.png +HotspotX=25 +HotspotY=54 + diff --git a/amor/data/wormrc b/amor/data/wormrc new file mode 100644 index 0000000..c662675 --- /dev/null +++ b/amor/data/wormrc @@ -0,0 +1,225 @@ +# KDE Config File +[Config] +PixmapPath=pics/animated/worm +Description=Little Worm +Description[af]=Klein Wurm +Description[ar]=دودة صغيرة +Description[be]=Маленькі чарвячок +Description[bg]=Малкото Червейче +Description[bn]=ছোট্ট কেঁচো +Description[br]=Buzugig +Description[bs]=Mali crv +Description[ca]=Cuquet +Description[cs]=Červík +Description[cy]=Pry' Genwair Bach +Description[da]=Lille orm +Description[de]=Kleiner Wurm +Description[el]=Μικρό σκουλήκι +Description[eo]=Vermeto +Description[es]=Gusanito +Description[et]=Ussike +Description[eu]=Hartxoa +Description[fa]=کرم کوچک +Description[fi]=Pieni mato +Description[fr]=Petit ver de terre +Description[ga]=Péistín +Description[gl]=Pequeno Verme +Description[he]=תולעת קטנה +Description[hi]=नन्ही इल्ली +Description[hr]=Mali crv +Description[hu]=kukac +Description[is]=Lítill ormur +Description[it]=Vermiciattolo +Description[ja]=小さいむし +Description[km]=កូន​ដង្កូវ​តូច +Description[ko]=작은 벌레 +Description[lv]=Mazais tārps +Description[mk]=Мало црвче +Description[nb]=Liten orm +Description[nds]=Lütt Worm +Description[ne]=सानो वोर्म +Description[nl]=Kleine worm +Description[nn]=Liten orm +Description[pa]=ਛੋਟਾ ਕੀੜਾ +Description[pl]=Robaczek +Description[pt]=Pequeno Verme +Description[pt_BR]=Pequeno Verme +Description[ro]=Micul vierme +Description[ru]=Маленький червячок +Description[sk]=Malý červík +Description[sl]=Mali črv +Description[sr]=Мали црв +Description[sr@Latn]=Mali crv +Description[sv]=Lilla masken +Description[ta]= சிறு புழு +Description[tg]=Кирми Майдаяк +Description[th]=หนอนตัวจิ๋ว +Description[tr]=Küçük Kurtçuk +Description[uk]=Хробачок +Description[uz]=Kichkina chuvalchang +Description[uz@cyrillic]=Кичкина чувалчанг +Description[xh]=Umbungu Omncinci +Description[zh_CN]=小虫虫 +Description[zh_TW]=小蟲 +About=By Bartosz Trudnowski\nMade for my wife +About[af]=Deur Bartosz Trudnowski\nMade vir my vrou +About[ar]=من Bartosz Trudnowski\nصنعته لزوجتي +About[az]=Bartosz Trudnowski tərəfindən\nHəyat yoldaşıma +About[be]=Аўтар Bartosz Trudnowski\nЗрабіў для жонкі +About[bg]=Автор Бартоз Трудновски\nПосвещава се на съпругата на автора +About[bn]=তৈরি করেছেন বার্টোজ ট্রুডনোস্কি\nআমার স্ত্রী'র জন্য বানিয়েছি +About[br]=Gant Bartosz Trudnowski\nGraet evit ma wreg +About[bs]=Autor Bartosz Trudnowski\nNapravljeno za moju ženu +About[ca]=Per Bartosz Trudnowski\nFet per a la meva dona +About[cs]=Autor Bartosz Trudnowski\nPro mou manželku +About[cy]=Gan Bartosz Trudnowski\nGwnaethwyd i fy ngwraig +About[da]=Af Bartosz Trudnowski\nLavet til min kone +About[de]=Von Bartosz Trudnowski\nFür meine Frau +About[el]=Από τον Bartosz Trudnowski\n Φτιάχτηκε για τη σύζυγό μου +About[eo]=De Bartosz Trudnowski\nFarita por mia edzino +About[es]=Por Bartosz Trudnowski\nHecho para mi esposa +About[et]=Autor: Bartosz Trudnowski\nTehtud minu abikaasale +About[eu]=Bartosz Trudnowski'k egina\nEmaztearentzat egina +About[fa]=توسط بارتز ترودنوسکی \nساخته شده برای همسرم +About[fi]=Tehnyt Bartosz Trudnowski\nTehty vaimolleni +About[fr]=Par Bartosz Trudnowski\nDéveloppé pour ma femme +About[ga]=Le Bartosz Trudnowski\nDéanta do mo bhean chéile +About[gl]=Por Bartosz Trudnowski\nFeito para a miña muller +About[he]=מאת ברטוש טרודנובסקי\nנעשה עבור אישתי +About[hi]=बार्तोज़ त्रुदनोव्स्की द्वारा\nमेरी पत्नि द्वारा बनाया हुआ +About[hr]=Autor Bartosz Trudnowski\n"Za moju suprugu." +About[hu]=Készítette: Bartosz Trudnowski\nA feleségemnek ajánlom +About[is]=By Bartosz Trudnowski\nGert fyrir elskuna mína (já, eiginkonuna) +About[it]=Di Bartosz Trudnowski\nFatto per mia moglie. +About[ja]=By Bartosz Trudnowski\n妻のために +About[km]=ដោយ Bartosz Trudnowski\nសម្រាប់​ភរិយា​ខ្ញុំ +About[lt]=Darė Bartosz Trudnowski\nPadarytas mano žmonai +About[lv]=Autors - Bartosz Trudnowski\nIzgatavots manai sievai. +About[mk]=Од Bartosz Trudnowski\nНаправено за жена ми +About[mt]=Ta' Bartosz Trudnowski\nDedikat għall-mara tiegħi +About[nb]=Av Bartosz Trudnowski\nLaget til min kone +About[nds]=Vun Bartosz Trudnowski\nMaakt för mien Fru +About[ne]=बारटोस्ज ट्रुडनोस्कीद्वारा\nमेरी पत्नीको लागि बनाइयो +About[nl]=Door Bartosz Trudnowski\nGemaakt voor mijn vrouw +About[nn]=Av Bartosz Trudnowski\nLaga til kona mi +About[pl]=Autorstwa Bartosza Trudnowskiego\nWykonane dla mojej żony +About[pt]=De Bartosz Trudnowski\nFeito para a minha mulher +About[pt_BR]=Por Bartosz Trudnowski\nFeito para minha esposa +About[ro]=De Bartosz Trudnowski\nFăcut pentru soţia mea +About[ru]=Автор - Bartosz Trudnowski\nСделано для моей жены +About[sk]=Vytvoril Bartosz Trudnowski\nPre svoju ženu +About[sl]=Od Bartosza Trudnowskega\nNaredil za svojo ženo +About[sr]=Од Бартоша Трудновског (Bartosz Trudnowski)\нНаправљено за моју жену +About[sr@Latn]=Od Bartoša Trudnovskog (Bartosz Trudnowski)\nNapravljeno za moju ženu +About[sv]=Av Bartosz Trudnowski\nGjord för min fru +About[tg]=Бартоз Трудновскй\Барои зани ман +About[th]=โดย Bartosz Trudnowski\nสร้างจากภรรยาผมเอง +About[tr]=Bartosz Trudnowski\nEşim için yaptım +About[uk]=Автор: Bartosz Trudnowski\nЗроблено моєю жінкою +About[uz]=Bartosz Trudnovski (Bartosz Trudnowski) yaratgan\nTurmush oʻrtogʻim uchun yaratilgan. +About[uz@cyrillic]=Бартосз Трудновски (Bartosz Trudnowski) яратган\nТурмуш ўртоғим учун яратилган. +About[ven]=Nga Bartosz Trudnowski\nZwo itelwa musadzi wanga +About[xh]=Ngu Bartosz Trudnowski\nYenzelwe inkosikazi yam +About[zh_CN]=作者:Bartosz Trudnowski\n为我妻子而作 +About[zu]=Ngu Bartosz Trudnowski\nYenzelwe unkosikazi wami +Icon=../../preview/worm.png +Base=Base +Sequences=MoveLeft,MoveRight,Eyes,Eye,BigEyes,Angry,Wobble,Love +#Sequences=MoveLeft,MoveRight +Blur=Dig +Focus=Up +Destroy=DropOut +Sleep=Zzz + +[Base] +Sequence=w-b1.png +Movement=0 +Delay=2000 +HotspotX=16 +HotspotY=29 + +[Eyes] +Sequence=w-b1.png,w-b1.png,w-b1.png,w-b1.png,w-b2.png,w-b1.png,w-b2.png,w-b1.png,w-b1.png,w-b1.png,w-b1.png,w-b2.png,w-b1.png,w-b1.png,w-b1.png,w-b1.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=300,300,300,300,150,150,150,300,300,300,300,100,300,300,300,300 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29 + +[Dig] +Sequence=w-d1.png,w-d2.png,w-d3.png,w-d4.png,w-d5.png +Movement=0,0,0,0,0 +Delay=100,100,100,100,200 +HotspotX=16,16,16,16,16 +HotspotY=29,29,29,29,29 + +[Up] +Sequence=w-d5.png,w-u1.png,w-u2.png,w-u3.png,w-b1.png +Movement=0,0,0,0,0 +Delay=100,100,100,100,300 +HotspotX=16,16,16,16,16 +HotspotY=29,29,29,29,29 + +[DropOut] +Sequence=w-b1.png,w-dr1.png,w-dr1.png,w-dr1.png,w-dr1.png,w-dr1.png,w-dr1.png,w-dr1.png +Movement=0,0,0,0,0,0,0,0 +Delay=150,100,100,100,100,100,100,100 +HotspotX=16,16,16,16,16,16,16,16 +HotspotY=29,-25,-50,-100,-250,-500,-750,-1000 + +[Zzz] +Sequence=w-s1.png,w-s2.png,w-s3.png,w-s2.png,w-s3.png,w-s1.png +Movement=0,0,0,0,0,0 +Delay=300,200,200,200,200,300 +HotspotX=16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29 + +[Eye] +Sequence=w-b1.png,w-e1.png,w=b1.png +Movement=0,0,0 +Delay=300,300,300 +HotspotX=16,16,16 +HotspotY=29,29,29 + +[MoveLeft] +Sequence=w-ml0.png,w-ml1.png,w-ml2.png,w-ml3.png,w-ml2.png,w-ml1.png,w-ml2.png,w-ml3.png,w-ml2.png,w-ml1.png,w-ml0.png +Movement=0,0,0,0,-4,-3,0,0,-4,-3,0 +Delay=100,200,200,200,200,200,200,200,200,200,100 +HotspotX=16,26,26,26,26,26,26,26,26,26,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29 + +[MoveRight] +Sequence=w-mr0.png,w-mr1.png,w-mr2.png,w-mr3.png,w-mr2.png,w-mr1.png,w-mr2.png,w-mr3.png,w-mr2.png,w-mr1.png,w-mr0.png +Movement=0,0,0,0,4,3,0,0,4,3,0 +Delay=100,200,200,200,200,200,200,200,200,200,100 +HotspotX=16,6,6,6,6,6,6,6,6,6,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29 + +[BigEyes] +Sequence=w-b1.png,w-be1.png,w-be2.png,w-be3.png,w-be4.png,w-be3.png,w-be2.png,w-be1.png,w-b1.png +Movement=0,0,0,0,0,0,0,0,0 +Delay=300,150,150,200,300,200,150,150,300 +HotspotX=16,16,16,16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29,29,29,29 + +[Angry] +Sequence=w-a1.png,w-a2.png,w-a1.png,w-a2.png,w-a1.png,w-a2.png +Movement=0,0,0,0,0,0 +Delay=150,150,150,150,150,150 +HotspotX=16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29 + +[Wobble] +Sequence=w-b1.png,w-wl1.png,w-wl2.png,w-wl1.png,w-b1.png,w-wl1.png,w-wl2.png,w-wl1.png,w-b1.png,w-wr1.png,w-wr2.png,w-wr1.png,w-b1.png,w-wr1.png,w-wr2.png,w-wr1.png,w-b1.png +Movement=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +Delay=300,150,150,150,150,150,150,150,300,150,150,150,150,150,150,150,300 +HotspotX=16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29 + +[Love] +Sequence=w-l1.png,w-l2.png,w-l3.png,w-l1.png,w-l2.png,w-l3.png +Movement=0,0,0,0,0,0 +Delay=200,200,200,200,200,200 +HotspotX=16,16,16,16,16,16 +HotspotY=29,29,29,29,29,29 + + diff --git a/amor/hi16-app-amor.png b/amor/hi16-app-amor.png new file mode 100644 index 0000000000000000000000000000000000000000..f113266f22d6ec939a92d276d7564c839728460f GIT binary patch literal 1012 zcmV?aWa1E~iHAO>U?{0wK%{L?Od=>P4S|NsA90!n=b;vYc#@&EsyC;$IFmiYfp zF!P>jQ3h?GayF12fB=FU@FSc-{oi8WXWzdc`v39UZJ_WoAifL4ccAq1|8KwD`v3cL z$Nz^(oOj(g84Q8iH~<0&?1g{f3~c`lRp-6+i;`S4^Dx7|-^>i|?i>udy7EBTzd+2) zaO~J^hNDLr7`O%57?Qg@m26L}o3QH|LmWT=fnD$;nj!K3W2^r=_NV^8apU>_moNYR zU%0UD|IeREKWB4!0$WRCnKulowD={Q9 z$ed$UGSfSffGclt3P9S_r8`PDaoH9I{GdH6U2QCoSc6d z5)z&>ghzNWynB|k-2PfB*s;aQ6bkOrgUJUM$Wao;1TR(Kd#kzkzAv z2M~Y%!|?0ZPloS5|1g9@Ab`NWw7SHw>rN-bdWO$H zj_76v=9kAoQP050^pk;+`5Tb^i{U>j3xoLEsSF(4PZ$`0(%D-WPJCxzI0q0wu$0JT z$j%_Y#D(G9|7Sp<_mcmA-kI|M-NUQ@pWnUn|MBI+|KIM*`2T-9%m4qK4F8J+7;XXe zWCO7cKmZ}<1y-PQ)KX*^)<14%`1yY?Q0g!+y7mhH|G%E~|NqGh|1bJ7{BU7mH~>_e z1;ii^%K!urBgg=x+z84bVtfn?E_S>Oeil*;nu4qhT+co*d_Vkx;lYVN45xoFFkAwv ic?QG}f%r8*fB^uZ%DGpJ(oFFH0000t-<>0f3B7|AyMySgkfT z77$%$i7`lWDv+_kbkI9^)9ruoo_WA~Vz^uQ06K5Ma1L5pTF|xyU$23mJ_S(+Ta5LB z+O_3p9Qaxz+m6^OvI8i5bV^(AonI45U3p4hX?r4b=99y2zk6z3g!APNOnRUI-MkT= zX@(Mqkf`uWw0!e54jtd13U>fuAO~c=;Gm6Fyq|DuLrB+ce|GUVzpHdVN&hfoI9nA) zYFB}-jDkc#jCD}$d;ZnjbKl=^x#u2}_s+0$XEpWpRVelO1$&;*(=$dacAxE!e~Fzx z_*Pxye*5dun41{)=uY`yi2?ChPj%Hvd2at>T{o_9RYA=wRZYjX@uNkb=(GnK0E_3@xAw_Qbd>mb5l4@nq`0_< z($Wfgd)ug~nZR)@K(VxxV`O9%EiJFGb?XMIH*aOI?`0ak66eq%4!<+R0fE132`H5^ z4q5g03YL~XW%cUsP*haFXPZqiN=nOhDi`GeIW@cz_Z)0I$nby{V6)QXdj9JC4TVr%~{*$Jr z27a=o4s8eEL1;bfu3}d)R9d1aXDt;Hf@pyOu98k?NhGG}>l;R7lyEqBxVSZIe3q7m z>FXONm0DzCB2Ls9z|OT5AZx6&kOKict`k;q@WAVXk2|?^9sZ>ND-Z}2li6P0T>K+bvIuHTA6D`-Dl-cz z1j;6#SqhYmSRq!W2Pk{ch84;pakzMf@zV)@or5U=eRUqP3lI^`cKnu8-xXflcs#dO zmAy@9Dv3mnVZz%n62bC3LYY|#<}b2({%sBaQ6(B?l`kxU0patnc9ig+$oZUXJyMtNz{moT4x!0;O*{Gtoq zU11|Htbhyiu;4)!vVWQ5_dV_O96QhPgU^278KL~ zwxx;?MXPOj#J3iNg#-}+gVHOsAQ0rGMG4>|5R$#={V_A&{F(2}neWWZiOBV<8I~@V z001x|)`V{|MfSgD0h#>%!-wCQf>{FpYd!!}KMF8E`O1_t)4mj>MWw{29Te^p0sOd> z7!f;Sk1#>BNhFLrw6{gH0st&6Bf|NcGyaa5Bgs%Dk17FTVh|Lt<$1A>6%^Qc+g3gy z6smcR5bcTB!;pjhLvDaZ$$I7r($BBhkPs^))hgm6>7(o?`+R=4mEQ{SJ$tWEo~g7b|_`vA_5!d@EL^ z6Pmj)eDUta`6lch*19saQ$I?j59KyTBZyZu6`T%jqyQANbbz&dq0%Wu{*=qPN|`)} zmy&B&Hsu!>3B^}{WjC*=%_cPyrOK8Fuwq7TC^+ebmo0Z;hHTKyy_(pKr$OoXypJKi zobKpYlrt6S8o57;3 z-e66R9eDFw%l@3gBdy}T_yJ)|TrpVq07#3z=or3;2Vna#U(Q?Xgw^1Q6nF>O{+$C- zlmLDf09w|HbTiXVG6-iWSF?|vq18)gjbA9wu$-}5!C>CA1<=KoeXtuBzL_jWwcyO; zsCZ2v2AC?A4@5&9J?zzFj5a~Gt(Oqout*H@QPyQ0K^AZ5YtT-xtfW;{NZ6Jwj-a!% z^Jx!&l8);?vbeYIRK;aXj|6}$78n*41xb%J(r_~222%CO(L=7{yawHr51u2I?*iBo z+hKs?$x(1N#O2e$bJGQy!KQZj#S1+$H5JU9ogD!`^G~=|QDT|a7Aqed<;}s2`nZhu zuc={&W)?sRqiHzZ!HE+XbcO3U@4a8}xoKcx zLPfOAvBnb9@s_Bq9PQr!`l^-y<)fPI_)ifqoScJ<`xs&a&2G4|CB^c(1lp>#mgRoS zW&2NQUN%P&6`swg=t`^Bp!Y#Djq$pvVZV++Hr{!aKbh%}%UYnJ!DS&AC{PX3(eNCe z=oeG}nK3aatv+L;ywKB+AaztL3VJpd+`rvyd6-k%D}bV+wojzP-|{@(TbvD-KyyOd zd0(5&Qjs39kvsmPrbyHG;0PgS2+l#|22GVx&1_YadSu1VfATdJYhOiU zF1+kc8^vTmN*~%?mu01_jt)gaGIi~2Z*Q|S!c`7N7WJ#kWa0NxHS6R?F|02ALfFyO zB^nrXibI97N#K13%k5(qx@1zzqj;Ib##5a zp#JC=#g*mLc1S%H9>|wKx*4oRJG=uA%dw`EYZ+3R%r-15Yhfh04O)MvMwa=}u5j|u zFcVpZAo)CNz=ECXqEk1rn>{3)e8x3F_z+v!Qe=bVpJFr|XdG3SF$IDQ#LUcFI{Xxa z6^cB=7j``4h#U6d23nP0 zZ~acny5f#~@DLymEAA$;{cYB;cmV$rP>eopb=tcZ!r#4n0bjT<0zZ33fg2muOt<;l z{1SJ+OeSK9j8vwUO<~5`Pw@E$S`_G0Zib=s=l~*^w z+sK{fe!kj?eweJ@5vwCd80m+Sbeb@nyo((+ip>YRc$u!bK9tG57RJIy+R*cu&~A;d z3Czj?SLJQ78o5<`OR@P=-n?_?F5liaG$g-2z3^T#rZYO9g=Y1xim`iEt6=#5D^l_P z2C3eH+d4TfE9zSV+{7$CA?HZi)<-}R72CzpvyR(1fStVS{k&OcTheH=evb(>O>$`f zE|D!Cax^{)be86& z;f;&MSQ4AG$;AijiS+K!U+Urd?jS@}xsH}Yh^DSlf+5K$O)w#~g zo1%$XzDcw@=z?xp7zPTOxHtUfoHri3^~PwV1rLPY%QgRI)_Ghe9(ZQ|&}ijIPLHxW zLQvu4AnWou9pwPP;f1`3LA!Nlgs!p~vp93pEptD~!s{klC64>%E6Gx9(qLzy_u)`U zYWd)V4JTfegIy#(yrF|?b&>2&%fV|CJ{(R-@Dr_&1}Zld&jTpOQvoaGtNv}w5%Ko? zaX@}W?9b)YnFs%v{li$e&RKxa9|)R>$40kjgn_Z^YHg{S;7kT6OR8ZwLHIp|YB3IY zFU~k}>Fh3w@df(e48(FMapV2ifaUU0%b1F;m-)wa)gh#y$dy`24J6+Mw z+ZxT`&ywX3`m|YP`H=iM2r*K!3@kw%eZ|fe_Q53>7BLQf@+q})woZZx4gR>k5{8?2 z1rauRZi))!jr+T<^ zBWFcAhR?y)oIJQU#h;rx_qWx%pj%Hrx*$_T{Ma8m;Ja2#q=Ih@s+(WZDL7p(4LJ@up8p+ z)lurgk=*YLLR_Bw>RUTgK;Qg_Wv-f^_k24KUYhJfo!rF^0aRaMU+3B5q?&<9)-vDr z_;EJ-@lGzN0OA68z{Pj@#E)G5A8}&YYd7@U!jCcWxsyX8ZC62DhkcQ7V8jt}N*$Mt z%=w_7zHw0Om>siI)^xIvsw5HGZN0Afyo5Ore5ow^h3Q*4t^sUOXdfoBz6bL=+bQEK z6FoVcG3tXWK)wY(k^SzEd^9E(6Rnw>Gl@Xe>;MJfzf4rL9ce1>2(AmzFZ$( IwGut{KMFRy761SM literal 0 HcmV?d00001 diff --git a/amor/hi48-app-amor.png b/amor/hi48-app-amor.png new file mode 100644 index 0000000000000000000000000000000000000000..6cea2c9b0e3f9ca8c7014ed5beadcbf36e84023c GIT binary patch literal 4595 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 literal 0 HcmV?d00001 diff --git a/amor/main.cpp b/amor/main.cpp new file mode 100644 index 0000000..16e89c8 --- /dev/null +++ b/amor/main.cpp @@ -0,0 +1,70 @@ +/* main.cpp +** +** Copyright (c) 1999 Martin R. Jones +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ + + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "version.h" +#include "amor.h" + + +static const char description[] = I18N_NOOP("KDE creature for your desktop"); + +int main(int argc, char *argv[]) +{ + KAboutData aboutData( "amor", I18N_NOOP("amor"), + AMOR_VERSION, description, KAboutData::License_GPL, + "(c) 1999, Martin R. Jones"); + aboutData.addAuthor("Martin R. Jones",0, "mjones@kde.org"); + aboutData.addAuthor("Gerardo Puga", I18N_NOOP("Current maintainer"), "gpuga@gioia.ing.unlp.edu.ar"); + KCmdLineArgs::init( argc, argv, &aboutData ); + + if (!KUniqueApplication::start()) { + fprintf(stderr, "%s is already running!\n", aboutData.appName()); + exit(0); + } + KUniqueApplication app; + + // session management + AmorSessionWidget *sessionWidget = new AmorSessionWidget; + app.setTopWidget(sessionWidget); + + new Amor(); + + app.dcopClient()->setDefaultObject( "AmorIface" ); + + return app.exec(); +} + diff --git a/amor/preparetips b/amor/preparetips new file mode 100644 index 0000000..03bcf67 --- /dev/null +++ b/amor/preparetips @@ -0,0 +1,45 @@ +# little script to extract the text from the tips file +# and output it, so xgettext can add the tips to the po file +# +# 2000 by Matthias Kiefer + +open(FILE,") +{ + chomp; + + # tip ends with % + if(!/^%/) + { + # replace \ with \\ + s/\\/\\\\/g; + + # replace " with \" + s/"/\\"/g; + + if($inTip != 0) + { + $tip=$tip."\n\"$_\\n\""; + } + else + { + $inTip=1; + $tip="\"$_\\n\""; + } + + next; + } + elsif($inTip != 0) + { + # remove last newline + $tip =~ s/\\n\"$/\"/g; + print "i18n(\n", $tip, "\n);\n"; + $inTip=0; + } +} + +close(FILE); diff --git a/amor/version.h b/amor/version.h new file mode 100644 index 0000000..c12084b --- /dev/null +++ b/amor/version.h @@ -0,0 +1 @@ +#define AMOR_VERSION "2.3" diff --git a/configure.in.in b/configure.in.in new file mode 100644 index 0000000..7290cca --- /dev/null +++ b/configure.in.in @@ -0,0 +1,6 @@ +#MIN_CONFIG +KDE_ENABLE_HIDDEN_VISIBILITY +CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS" +AC_CHECK_SETENV +AC_CHECK_UNSETENV +AC_CHECK_INITGROUPS diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..6812bd2 --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,5 @@ + +KDE_LANG = en +KDE_DOCS = AUTO +SUBDIRS = $(AUTODIRS) + diff --git a/doc/amor/Makefile.am b/doc/amor/Makefile.am new file mode 100644 index 0000000..3f20a1e --- /dev/null +++ b/doc/amor/Makefile.am @@ -0,0 +1,5 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + +KDE_MANS = AUTO diff --git a/doc/amor/billy.png b/doc/amor/billy.png new file mode 100644 index 0000000000000000000000000000000000000000..89d5d282b19775f025726296cf511b31d5b890c8 GIT binary patch literal 824 zcmW+zU1$|Y6rP}IrV;7f#@0cbun)1WR&;3nxyUWJdPA}_Npllx*;+8GR-I7A#X#K9 zU>n+PEoF-$OGVuWq5B|oBtoY2hi#iwSCq0!Ll>^v5p5YlTGj_~9~9P&2fp+1eH^~S z;T-Sl?OfcvtQi2XSnsO#7yL>A6)q@xy*$)f(8B#%j|RZR*NdK*jQ})U@9W;)kv}U_ zQG<5HZO2+Wu~o&W80B^%Lc{&i4VEAwQ&S;2R*R7N@yD4EVV?VV38HHVzr<~7>x5v8 zA%x{}+4HZUh6B(loB1|#b>^874}=g|mZfPbrKFTPj)M@y2*k{i9EBdFrjey06TU{U@KF|` zG`7+RQUldAC=;Ies$`JXfC#B;0t5k3KoUT~Y08n{C}w8t0d5!DVJ-u~h;Kvg8!~`d zi1RcOT-OP344g|>Fg=xtV*tU*l0)W}6CVW@zzF&jNUnqq@=V|wAo6R0Q}!te9Y}RV zb-*kTaksK(Xu9}N!*GA^z?O}hPd}O$yWi@pf-f3dy9)9A;V$C{0E%)su>R7k+V-Pozy0(2i_;2h>>C;R?~0n|7dw94v~TmkkL2Hl zGv9prU}Vev@!FKR_V~oA2iApA<*r*Q4J3D-Yx}HT|8D2Z_bn~aCtmjpo%I_hU&oLB z82qiX{?)nn^y&Anl)!SY(snHR@cu`mSNo^$3?E{z-5t6-HT(Ok+cy03_YYh-`P1Cn z%n|aL!tNbL04}Q~Q?w%;dp|DRXk&$M3W~tgpWCZgC;dJ9?{Z>)`lP D?N?|} literal 0 HcmV?d00001 diff --git a/doc/amor/bonhomme.png b/doc/amor/bonhomme.png new file mode 100644 index 0000000000000000000000000000000000000000..d9a031b5f9dbe49ae266ad0bfee3db8905deb81e GIT binary patch literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL@=kcVIEGZ* zdOP(jUyA}y%kq8yt;_jCf18KgeRJ^eqzN2vYkEWleuM^Z{g*mTtK|LWJ*l0nEL@FF zD(l%6oVn`rk)c7rBJD;@jEBhm@ zaZMI>&{c4=WWB+cVY*-@w?m6hl0wZfw`u>ra1?C+%b3r=Bb{l-EY2`l{&|5@PVBC4 zC5IbhXBFOk(Q0{fRn6Bhv6p&62j08peYw=AoWYx+87&yzaok+!(0i4>d)Mupl8dDL T1X33P{lwtu>gTe~DWM4f8c1p& literal 0 HcmV?d00001 diff --git a/doc/amor/bsd.png b/doc/amor/bsd.png new file mode 100644 index 0000000000000000000000000000000000000000..77d3b2a583379add685525f9d78a2c717023a494 GIT binary patch literal 2321 zcmV+s3GViZP) zocHCvt8ox~_t%rgl`ENd5fvwiY5FK4vHm4n#;xOC}+rCL>}N z8rssLD?L;&awNwvDbv57f`)>UEGF14C4$0mz^9|`f_AkdCUy=Qnwm;_MnWtuEmmq~ z-rk~HDkXMxa*{?u>N_fCHZu3^%R)X58ZKTqC@C&RSjfPfR7OmNEGM-sC~g)WYMNNy zwWS^m3fEFeUSngbo*JStDpr<8m5_#XDfpcOEh8dI9(HYNx{7+XPB!x5 zvK}2BEFvLDKRr@ODj4`eL>sN zy;>R$YA-h}XeajK$f#CIZdOW~o|eifBg)Fgwnj!GE<}QwcCJP~raCUxHY#K!A#5xs zbuus}S0aWkK2lXvIu#XKLQ*RzCv-VDL;#2d9Y_EG010qNS#tmY3labT3lag+-G2N4 z000McNliru(E}9$6$6^DWzGNq1$s$DK~#90?bdx<6J;C#@Eao7$CzbBZ)oXNtVkD2 zvbVWK++`8s^22mkR1`F+X^@&BBPRvurRW^-wzQ_(u?PiR7ZRw=UX(Gwx#3F_aJxV% zcNjPvRWD|&i^az)T{;IBch-md4f*RPzshJG0bFe18R<}(?FTQp z-T5y%UpE}xlfY;pEeU)8Aax22rS_*D?sdD}i8p*OFK_+@W(##;K3e+_4dq0K0(MFF z-Un-EeY1y!g_21EzyzWc=Ah;sy>0_Pv-VK8H~CIB7P0{h1`Z7+wW|*Hx(jVKz9yQ( zQJ!OkGdVthD2)TC$1>YpVg4 zi_zhz;>jp#K!>6_kIG}Zm@9yu4OD%S5o0ipC`vNsoR_7lQlnB$7dzu1Xxd2#y6q9> z$}j;d>T_cS=S9X+r@GU3IT;3pO=HnDjggEDi*u`>q@?pv2zvje&mriZkjDatHlJj$ z)fiG|$#5tZsWofp=~%yi%F|(CH{K0FA>)|pYJC>hz<~jQTA&V0MJo9hVGwl3dtZhy zUoq^EqETj*-=n&`Dd0TySB&OLbdbeTRaBJD-k>sFNY}5i#T;m0wV>%BF-LoXU1fI) zV{+RZwnjyJ18QbR7x>^}XI(;DoIs2=Y;qvcjm2$3mSxN6N7UXdYLzyK<#LnFraxrv zV@c^J1b{bs(Wf~&xm+x!Y(=6&Y$?Pi>5rwif3UgUB$uP+QU_~EZ)%v2z`f}`gU#(R zxy}oxf}jwjhXIZw{OG|&ZOwzCSwY!!l7LAJ=Qs8=_9!m0`_BCp7(n>fPed@fb5WXK z{!XfA}iLgHi3VRV4kHpC3zH-D-Rl()5mK}UOg28%gOL(NUa${u6 zbD_yBWmlJ158!HuyDRjpb>-4s)}>1)ZD-*!JG5RsPJj-2L9f1RYIyke@27IZe_pxp z_JxmswEcm7`H9zn)nzvNZvpngU4a?StxQR=RzzAS{gP5yxpvpu&`%aLZAl!BUsLo% zMEE!)@pq;+(mFmoCA1|ayrrdU+rD3$mejs|IxEYNwR_cY+JEYu)}1ScrQr1&E5@%* zNeMlBHho6ZQNz*v#QBGhA6s^5+3t12nr)Sgz5-(X^yyq~g|(%n|H$#0tgM<1$MSYu z+EQ3Jj6z7<;~0(-$W#UR>6lcjm;grrv_a?iqWdhnK*}&cIJhpY+=i zwYB>4^7U^eCFRZAaANkltG`MB<}B~AxV8>Sr;IvQpe?Sd!feR}SCv;{dBmxg`})$P r|8&l^LXSiu@sZdq*Zmv(e=x)!=^Tk<-fTL{00000NkvXXu0mjf2!IE6 literal 0 HcmV?d00001 diff --git a/doc/amor/eyes.png b/doc/amor/eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..0c843e2d8b43c3fe33d7a5186cce2c56865f0d8f GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE0wix1Z>k4UOiAAEE)4(M`_JqL^6EWZ978H@ zy`AjHbwGiK#r$W`@BiX2X1{TC@jV;0p*=`Oz(kT+iq*{C;gre}vzk+}veH38?&|Kr zN6b^EY*C%D@PI~U@)3@c>hotw@4ChMHtM0$ng$q zZ}9;6{B|Mo#56c*laxsD76Ot)$;3l`FKchSn1&m-Ie-Z-05*|zUDsIRVthz$0CRHm zDAadf5YtgL;j%2lr^y=@M}j3_ElkNMk@u-hNaP;S05*JJ%zKEGz?o3L*uIF&l5oxy z$EzNgNr$x%s^j_m99rX46+Hkjq?Dp<+r&z^byFI^zVBi)>ir++!u|eWo&RG5T5xF! z;y&Q3>XeGhJoU4+ literal 0 HcmV?d00001 diff --git a/doc/amor/index.docbook b/doc/amor/index.docbook new file mode 100644 index 0000000..8b72736 --- /dev/null +++ b/doc/amor/index.docbook @@ -0,0 +1,318 @@ + + + + + +]> + + + +The &amor; Handbook + + + +&Karl.Garrison; &Karl.Garrison.mail; + + + + + + +2001 +&Karl.Garrison; + + +&FDLNotice; + +2003-09-16 +2.2 + + + +&amor; is a small animation which sits on top of your active window. + + + + +KDE +kdetoys +amor +helper +assistant + + + + + +Introduction + + +What's &amor;? + +&amor; is an acronym which stands for Amusing Misuse of Resources. It is +actually an animation which sits on top of your active window. In its default +configuration, &amor; takes the form of a yellow spot which performs many +tricks. &amor; also has many different themes which change the appearance +and behavior of the animation. + + +Since &amor; works with the &kde; window manager &kwin;, the +application will only work from within &kde;. It is possible that &amor; +would work from within another &kde;-compliant window manager, but none are +known to work at the time of this writing. + + + + +Configuration + +Configuring &amor; +To configure &amor;, click on the animation using your &RMB;. A menu +will appear containing three items: +Options..., +About..., and +Quit. Choose +Options... to configure &amor; + + + + +General Options +The following settings for &amor; can be changed from the Options +dialog: + +Theme +This determines the appearance and behavior of &amor;. +Themes are described in the next section. + +Offset +This slider controls where the animation appears in +relation to the top of the active window. The default middle setting will +place the animation right above the window title bar, whereas setting the +slider all the way to the top or bottom will result in the animation +appearing a fair distance above or below the title bar, respectively. +Setting this slider to a lower setting will allow the +animation to be visible even when the active window is maximized. + + +Always on top +Checking this option will cause the animation to always +appear in front of any existing windows on the screen, including the +panel. + +Show random tips +If checked, the animation will display various +&kde;-related tips at random intervals. + +Allow application tips +Any &kde; application can be designed to display helpful +tips via &amor;. If this option is checked, and an appropriate +application is the active window, the animation will display tips for that +application. +At the time of this writing, no &kde; applications make use of +this functionality. + + + + + +&amor; Themes +&amor; comes with many built-in themes, which change the appearance and +behavior of the animation. In addition, it is possible to create new +&amor; themes. The built-in themes for &amor; are described in the table +below + + +Available &amor; Themes + + + +Theme +Description + + + + + + + + + +Multi-talented Spot + + +This is the default theme for &amor;, and also the one with +the most tricks. This theme was created by &Martin.R.Jones;. The jet-pack, beaming, and fire animations were contributed by +MarkGrant. + + + + + + + +Spooky Ghost + + +A ghost theme based-on the &kde; +ghostview icon. Spooky Ghost was created by +&Martin.R.Jones;. + + + + + + + +Crazy Eyes + + +This theme consists of a moving pair of eyes, and was created +by Jean-ClaudeDumas. + + + + + + + +Bonhomme + + +A stick-figure animation, created by Jean-ClaudeDumas. + + + + + + + +Neko + + +Neko is a cat theme by ChrisSpiegel. The graphics are +originally from Oneko, which was written by +MasayukiKoba. +Oneko is a small application which +features a cat chasing the mouse cursor. The application appears to no +longer be maintained, but the + +source code from the last version is still +available. + + + + + + + +Tux + + +This theme features Tux, the &Linux; mascot. The actual +graphics come from a Lemmings-style game +called +Pingus. The Tux theme was created by +FrankPieczynski. + + + + + + + +Little Worm + + +A small inchworm theme. Created by BartoszTrudnowski for +his wife. + + + + + + + +Little Billy + + +A static image taken from the game +XBill +. + + + + + + + +BSD Mascot + + +A static image of Beastie, the FreeBSD daemon. + + + + + + + +Unanimated Tux + + +An unanimated version of the Tux theme. + + + + + + + +Tao + + +The Tao theme is an animated Yin Yang symbol. This theme was +created by DanielPfeiffer occitan@esperanto.org, and was +inspired by his Tai Chi practice. + + + + +
Multi-talented SpotSpooky GhostCrazy EyesBonhommeNekoTuxLittle WormLittle BillyBSD MascotUnanimated TuxTao
+ +
+
+ + +Credits and License + +&amor; + +Program Copyright © 1999-2001 &Martin.R.Jones; +&Martin.R.Jones.mail; + +Documentation Copyright © 2001 &Karl.Garrison; +&Karl.Garrison.mail; + + + +&underFDL; +&underGPL; + + +&documentation.index; + +
+ + diff --git a/doc/amor/man-amor.6.docbook b/doc/amor/man-amor.6.docbook new file mode 100644 index 0000000..17dca2f --- /dev/null +++ b/doc/amor/man-amor.6.docbook @@ -0,0 +1,72 @@ + + --> + + +]> + + + +March 7, 2003 + + + +amor +6 + + + +amor +A &kde; creature for your desktop + + + + +amor + + + + + + +Description + +AMOR stands for Amusing Misuse Of +Resources. It provides several different characters who +prance around your X screen doing tricks and giving you tips. + +&amor; is part of the &kde; toys package. + + + + +Options + +&amor; is configured graphically, and does not have any +commandline options other than the standard &kde; and &Qt; +options. + + + + +See Also + +Within &kde; you can enter +help:/amor in &konqueror; to see the +comprehensive user manual. + + + + +Bugs + +&amor; currently only works with the &kwin; window manager. + + + +Authors +&amor; was written by MartinR.Jones mjones@kde.org. + This manual page was prepared by BenBurton bab@debian.org for the Debian GNU/Linux system (but may be used by others). + + + diff --git a/doc/amor/neko.png b/doc/amor/neko.png new file mode 100644 index 0000000000000000000000000000000000000000..25e9ea6d2b1cd7ec7bc64bbb15a6ff47f3170d17 GIT binary patch literal 284 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 literal 0 HcmV?d00001 diff --git a/doc/amor/worm.png b/doc/amor/worm.png new file mode 100644 index 0000000000000000000000000000000000000000..42d5ed567510bc1b3c8d9f311960ac5f0e9d3a1a GIT binary patch literal 316 zcmV-C0mJ@@P)nBlj`U?IQi9&GFeY9sF6Rp*EP1p@A#9IOo zv(t)gZpseVngxvj4H^UR!=yC{0N`ejlF5zxiD*@uwVq +Delivered-To: coolo@master.kde.org +Received: (qmail 22568 invoked by uid 1055); 20 Oct 2000 21:12:11 -0000 +Delivered-To: kde.org-coolo@kde.org +Received: (qmail 22489 invoked from network); 20 Oct 2000 21:12:07 -0000 +Received: from nova.ov.ufrj.br (root@146.164.112.17) + by max.tat.physik.uni-tuebingen.de with SMTP; 20 Oct 2000 21:12:07 -0000 +Received: from localhost (localhost [[UNIX: localhost]]) + by nova.ov.ufrj.br (8.9.3/8.9.3) id TAA09140 + for coolo@kde.org; Fri, 20 Oct 2000 19:14:00 -0200 +From: Carlos Roberto Rabaa +Reply-To: rabaca@nova.ov.ufrj.br +Organization: Observatorio do Valongo - UFRJ +To: Stephan Kulow +Subject: Re: Moon tool +Date: Fri, 20 Oct 2000 17:10:39 -0200 +X-Mailer: KMail [version 1.0.29] +Content-Type: text/plain +References: <00102016004500.08951@nova.ov.ufrj.br> <39F09247.5715C35D@kde.org> +In-Reply-To: <39F09247.5715C35D@kde.org> +MIME-Version: 1.0 +Message-Id: <00102019130700.09050@nova.ov.ufrj.br> +Content-Transfer-Encoding: 8bit +Status: O +X-Status: + +Stephan, + +> In KDE2 I implemented free choice view angle, so I could also slide +> it some degrees off to see it like I see it here :) + +It is nice to hear that! Unfortunately, I still use KDE 1.1.2.... By the way, +when is the final release o 2.0? + +> But if you're an expert, I would like your advise on the correct +> terms. Where on the earth you see the moon in the the default view +> you can see on web pages etc.? + +As you know, the moon keeps always the same face turned to earth (the so called +near side). This is a composition of its period of orbital motion and rotation: +they are approximately the same. The moon's orbit is inclined with respect to +the equator by (only) 5 degrees, and for our purposes, keeps the polar +orientation in the sky unchanged. This means that the angle that you +see the moon in the sky changes by a composition of two factors only: 1) +latitude of the observer, and 2) time of the day that you look at the moon. If +you look at the moon over many hours, the change of orientation in the sky is +moon's orbital plane is close to the equator (as I said before) the discussion +of orientation looses any meaning. At these positions, the passage by the +meridian happens very close to the top of your head. So, I can be facing east +and move my head up to see the moon, or I can be facing west and move my head +up. Which rotation should I addopt? That is why I told you to use 0 or 180 +degrees. Otherwise, you would need to incorporate in your code many otherif he +relations, including the latitude of the observer.he will see the first quarter +moon as a C and the last quater moon as a D (see +> The current kmoon uses the pictures of this site:l) when the moon is over +> http://timbeauchamp.tripod.com/moon/, but a (german) colleague ofes over his +> yours pointed out that the images are mirrored horizontally, son is reversed. +> we corrected that (the larger craters appear on the left ontor. Since the +> the moon I see in the sky, while they are right on the web). + +My colleague is correct. The east-west sides in the pictures are wrong, so you +should flip them sideways. For an observer in the northern hemisthere this is +all you need to do. For an observer in the southern hemisphere, you need to +rotate this new set of images by 180 degrees. Keep in mind that in the sky if +north is up east is to the left, if south is up east is to the right. You can +easily see this if you lay down ;-/ on the floor with you head/legs pointing to +the north/south line. Now, try to point your left arm to the geographic +east while facing up. + +I hope this helps you. If you like more info, it will be a pleasure to +help. Best wishes, + +Carlos diff --git a/doc/kmoon/index.docbook b/doc/kmoon/index.docbook new file mode 100644 index 0000000..5debf5c --- /dev/null +++ b/doc/kmoon/index.docbook @@ -0,0 +1,131 @@ + + + + + +]> + + + + +The &kmoon; Handbook + + + + +Pam + +Roberts + +pamroberts@blueyonde.co.uk + + + + + +2003 +Pam Roberts + + +&FDLNotice; + +2003-09-16 +1.0 + + + +&kmoon; is an applet that shows the current phase of the moon. + + + + +KDE +kdetoys +kmoon +moon phase + + + + + +Using &kmoon; +&kmoon; is a little applet that docks into the System Tray and shows an +image of the current phase of the moon. Hovering the mouse cursor over the +image brings up a tooltip to display more information. + +&kmoon; can be added to the panel by &RMB; clicking on an empty space +on the panel and choosing Add to +PanelAppletMoon Phase +Display. If you can't find an empty space, you +can access the panel menu from an &RMB; click on any existing applet or +icon. + +To close &kmoon; right click on the applet +handle beside the image and choose Quit. + + +Settings +If you right click on the image and choose +Settings... a small dialog box will appear that +lets you adjust the image to suit the latitude and hemisphere you are living +in. + + + + + + +Credits and License + + +&kmoon; + + +Program copyright 1998,2000 &Stephan.Kulow; &Stephan.Kulow.mail; + + +Contributors: + +Lunar code by Chris Osburn chris@speakeasy.org + +Moon graphics by Tom Beauchamp timb@googol.com + + + + + +Documentation copyright 2003 Pam Roberts pamroberts@blueyonder.co.uk + + + + +&underFDL; +&underGPL; + + + +Installation + +&kmoon; is part of &kde;'s &package; package. +Most &Linux; / &UNIX; distributions that include &kde; will include &package; as an option to be installed if the user wishes. +&kmoon; and the &package; package may also be compiled from source code. +Visit http://www.kde.org for instructions on how to download, compile and install &kde; programs. + + + +&documentation.index; + + + + diff --git a/doc/kodo/Makefile.am b/doc/kodo/Makefile.am new file mode 100644 index 0000000..085981d --- /dev/null +++ b/doc/kodo/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kodo/guide.png b/doc/kodo/guide.png new file mode 100644 index 0000000000000000000000000000000000000000..18b820ef7b2a69cdcd19ac2fc153d4ae3f96fb54 GIT binary patch literal 3141 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 YfPyezNlUk-6W0}BVPb7uXXqOHKO3yyRsaA1 literal 0 HcmV?d00001 diff --git a/doc/kodo/index.docbook b/doc/kodo/index.docbook new file mode 100644 index 0000000..20cd0be --- /dev/null +++ b/doc/kodo/index.docbook @@ -0,0 +1,225 @@ + + + + + +]> + + + +The &kodometer; Handbook + + +&Armen.Nakashian; &Armen.Nakashian.mail; + + + + + + + +19992001 +&Armen.Nakashian; + + +&FDLNotice; + +2003-09-17 +3.2 + + +&kodometer; is a little gadget to measure your desktop mileage + + + +KDE +KOdometer +odometer +mouse +mileage + + + + +Introduction + + +What is &kodometer;? + + +&kodometer; measures your desktop mileage. It tracks the +movement of your mouse pointer across your desktop, and renders it in +inches/feet/miles! It can do cm/meters/km too. The most exciting +feature is the tripometer, and its utter uselessness. + + +The next version will be USEFUL! + + + + + + + +On screen operation + + +A labeled screen-shot of &kodometer; in action + + + + + +A labeled screen-shot of &kodometer; in action +A screen shot. Note the fashionable lack of a +titlebar. + + + + +The Odometer is the total distance traveled by the +mouse since the last odometer reset. The +Tripometer is the distance traveled by the mouse +since it last stopped moving. + + + +Menu Options + + +If you've gotten this far, you probably already know that there is a +&RMB; mouse button context menu on &kodometer;, which contains a number of +choices. + + + + +Enable + + +Toggle mileage tracking. This is good if you want to cheat on your +mileage. Note: This is illegal in most countries + + + + + +Metric Display + + +Because &kodometer; was written by an American, it obnoxiously assumes you +want to use Inches/Feet/Miles for measurement. If you come from some +more modern country in Europe, to use metric measurements, turn on this +option. + + + + + +Auto Reset Trip + + +This option will cause &kodometer; to set the Tripometer back to zero every +time it starts up. + + + + +Reset Trip + + +Set the tripometer to zero. + + + + + +Reset Odometer + + +Set the odometer back to zero. You might get in trouble for +this! + + + + +About Mousepedometa + + +Pops up a little dialog box with information on who to blame for the +program. + + + + + +Help + + +This menu entry opens up the &kodometer; help - this very document. + + + + + +Quit + + +Quit &kodometer; + + + + + + + + + + +How It Works + +&X-Window; displays are usually configured with a screen-size +variable. That is, how big your screen is in real-world measurements, +not pixels. &kodometer; grabs this value and uses it come up with a +&dpi; (dots per inch) value for your display, and thus +can relate the number of pixels you've traversed to the number of inches +the pointer appears to have moved on the screen. + +But lets be real! Its horribly inaccurate! +&kodometer; makes no pretense of being even remotely accurate. In fact, +someone has measured the movement of their mouse across the screen with +a ruler, and found that the distance algorithm is almost 25% off! +The original author's response to this complaint was who +cares?. + + + +Credits and Licenses + +&kodometer; Copyright © 1998-2001, &Armen.Nakashian;. + +Documentation copyright 1998 &Armen.Nakashian;, with small updates +and markup cleanup for &kde; 2.2, &Lauri.Watts; &Lauri.Watts.mail; + + +&underFDL; +&underGPL; + + + +&documentation.index; + + + + diff --git a/doc/kteatime/Makefile.am b/doc/kteatime/Makefile.am new file mode 100644 index 0000000..085981d --- /dev/null +++ b/doc/kteatime/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kteatime/config.png b/doc/kteatime/config.png new file mode 100644 index 0000000000000000000000000000000000000000..9c875e56fddd70432e0da47e25a5aa5aca6898a6 GIT binary patch literal 19936 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 literal 0 HcmV?d00001 diff --git a/doc/kteatime/index.docbook b/doc/kteatime/index.docbook new file mode 100644 index 0000000..a1a4664 --- /dev/null +++ b/doc/kteatime/index.docbook @@ -0,0 +1,148 @@ + + + + + +]> + + + +The &kteatime; Handbook + + +&Michael.Korman; &Michael.Korman.mail; + + + +&Matthias.Hoelzer-Kluepfel; &Matthias.Hoelzer-Kluepfel.mail; + + + + +&Lauri.Watts; &Lauri.Watts.mail; + + + + + + +2000 +&Michael.Korman; + + +&FDLNotice; + +2006-10-25 +1.1.0 + + +This Handbook describes &kteatime;, the &kde; Tea Cooker. + + +KDE +kdetoys +kteatime +tea +cooker +timer + + + + +Introduction + + +What's &kteatime;? + +&kteatime; is a handy timer for steeping tea. No longer will you have to guess at how long it takes for your tea to be ready. Simply select the type of tea you have, and it will alert you when the tea is ready to drink. + + + + + +How to Use &kteatime; + +When you start up &kteatime;, it will automatically dock itself in your panel. To access the menu, right click on the docked icon. This will present a list of options which are covered in more detail in the next chapter. + + +Timing Your Tea + +Upon starting, the panel icon will be that of an empty tea mug. If you click on the mug and select your tea, the icon will change to a filled mug. After the specified time, the tea will be finished, and a suitable message box will be shown. At this point, you can close the message box by clicking on it and reset the timer by clicking on the icon. The mug will be shown as empty again. + +The timer should only be reset by those who really enjoy tea. + + + + + +Menu Options + +The following section describes the menu options that are available in &kteatime;. + + +Select Your Tea + +Clicking on the icon with the &RMB; will bring up a menu. At the top of the menu there are three menu items. Here, you can select what kind of tea you are preparing to drink. There are: Black Tea, Earl Grey, and Fruit Tea. These teas are preconfigured with a default time. Many people have complained that the times are not correct. Please be aware that the amount of time it takes to steep a cup of tea is based on personal preference. The times chosen are approximations. If you read on, you will learn how to change or delete these predefined times and to set your own time. A quick-and-easy way to set a custom time is to choose Anonymous... from the menu. + + + +Start + +This menu item will start the tea timer for the tea marked above. As confirmation that you have indeed selected Start, the panel icon will change into a filled mug. + + +<guimenuitem>Configure</guimenuitem> + +This menu item opens up the configuration dialog box. A screenshot is shown below: + + +The &kteatime; configuration dialog box. + + +The &kteatime; configuration dialog +box. + + + +As shown in the picture, you may add new entries for other tea or change names, times and the order of existing entries. This is useful if you are brewing a cup of tea that is not on the list or if you do not agree with the predefined times. To edit one entry, mark it in the Tea List on the left and change the values in the Tea Properties on the right. + +The box below is the Action field. Here you can define an action that will be executed when the time is up. The button Configure Events... brings up the &kde; Notification Settings for &kteatime;. The Event check box below enables the event selected in the &kde; Notification Settings. If Popup is selected, a message box will appear alerting you to the fact that your tea is ready. The third check box can hold any valid system command. Probably, you will want to leave it blank. + +If you enable the check box labeled Visualize progress in icon tray, the progress will be shown as a little animated pie chart inside the icon. + + + + + +Credits + +&kteatime; Copyright © 1998-1999 by +&Matthias.Hoelzer-Kluepfel; &Matthias.Hoelzer-Kluepfel.mail; + + +Documentation by &Michael.Korman; &Michael.Korman.mail; + + +&underFDL; +&underGPL; + + + +&documentation.index; + + + + + + diff --git a/doc/kweather/Makefile.am b/doc/kweather/Makefile.am new file mode 100644 index 0000000..085981d --- /dev/null +++ b/doc/kweather/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO + diff --git a/doc/kweather/index.docbook b/doc/kweather/index.docbook new file mode 100644 index 0000000..e545a5a --- /dev/null +++ b/doc/kweather/index.docbook @@ -0,0 +1,260 @@ + +kweather"> + + + +]> + + + + +The KWeather Handbook + + + + + + + +

+ + + + + +&GPLNotice; + +2004-05-31 +3.00.00 + + + +KWeather is part of the kdetoys package. + + + + + +KDE +KWeather + + + + + +Introduction + +KWeather is an application that provides both a panel icon, +allowing you to watch the weather as reported by a local weather +station, and providing a weather service that can track multiple +weather stations and provide this information to other +applications including &konqueror;'s sidebar and &kontact;'s +summary page. + + + + +Using KWeather as a Panel Applet + +&RMB; click on an empty space in the panel and choose +AddApplet +KWeather + +A configuration dialog will open up. Initially the only +configuration required to make KWeather work is the ICAO +location code:. + +This is a four character code used by the weather reporting +service to uniquely identify weather stations around the world. + +As it's unlikely that most people will happen to know this +directly, there is a link to a search engine where you can look it +up. + +While the weather stations available are fairly +comprehensive, not every town in every country will be represented, +simply because not every town has an appropriate weather station. If +your own town is not represented, you should choose the one nearest +you. Since flying planes safely requires accurate weather data, most +towns with an airport will be in the list, so a good bet +is to look for the nearest airport to you. + +At this point, you can press the OK button +and the dialog will close. You will now have an icon displaying the +current weather graphically on your panel. Clicking it once will open +a window that shows the weather in detail. + +Further configuration is described in the next chapter. + + + + +Configuring KWeather + + +Display + + + +Weather Station Options + + + + ICAO location code: + ICAO stands for the International Civil Aviation +Organization. The ICAO location code is a four character +alphanumeric code that uniquely identifies airports worldwide. The first +two letters of the ICAO code ususally identify the coutry. However, codes for +airports in the United States usually start with "K", followed by a three +character IATA (International Air Transport Assocation) code. For example, +KORD is the ICAO code for Ohare International Airport in Chicago, Illinois. +If you don't know the ICAO code for the airport nearest to you, you can click +on the link labeled Lookup Your ICAO Code to use a web based +search engine to find it. + + + + + +Panel Display Options + + + + Show icon only + Show icon and temperature + Show icon, temperature, wind and pressure information + You can choose here if the temperature should be +displayed beside the icon, or if the current wind speed, direction, and +air pressure are also displayed. + The icon is always shown. + + + + + + +Logging Options + + + +Enable logging +By default KWeather does not retain old weather +information, and each time it updates the weather the old information +is discarded. If you wish instead to keep a record of the weather, +enable this option. Then, each time the weather is checked, KWeather +will append a new line to the log file containing the current weather +conditions in comma separated value form. The information written +will be the date, wind speed and direction, temperature, pressure, cover, +visibility, and "current weather". + + +Log file +If you have enabled the Enable +logging check box, this option will become available. Enter +or browse to the location you would like KWeather to keep it's log +file. + + + + + + + + + + +<guilabel>Weather Service</guilabel> + + + +Station Manager + + + +Update All Stations +Update all the listed stations +immediately. + + +Exit Weather Service +Stop fetching weather updates for all +listed stations, and stop providing weather +information to the &konqueror; sidebar and &kontact; + + + + + +KWeather Interfaces + +While the most obvious KWeather interface is the panel icon, +there are several other places where you can access KWeather's +information. These are particularly useful if you need to watch +multiple weather stations. While &kweather; allows you to track +multiple weather stations, the panel icon displays only one at a +time. + +These additional services are plug-ins to their respective +applications, and not provided with KWeather itself. + + + + + + +Credits and Licenses + +KWeather copyright © Ian Reinhart Geiser +geiseri@users.sourceforge.net + + +Contributors +Will Andrews +wca@users.sourceforge.net +Fixes for BSD port + + +Ben Burton benb@acm.org +Debian fixes + + +Otto Bruggeman bruggie@home.nl +Fixed the i18n stuff and source style +cleanups + + +Nadeem Hasan nhasan@nadmm.com +Lots of bug fixes, improvements and +cleanups. + + +Carles Carbonell Bernado mail@carlitus.net +Great new weather icons + + +John Ratke jratke@comcast.net +Improvements and more code cleanups + + + +&underGPL; +&underFDL; + + + +&documentation.index; + + + diff --git a/doc/kworldclock/Makefile.am b/doc/kworldclock/Makefile.am new file mode 100644 index 0000000..da8216a --- /dev/null +++ b/doc/kworldclock/Makefile.am @@ -0,0 +1,4 @@ + +KDE_LANG = en +KDE_DOCS = AUTO +KDE_MANS = AUTO diff --git a/doc/kworldclock/index.docbook b/doc/kworldclock/index.docbook new file mode 100644 index 0000000..33b5e8a --- /dev/null +++ b/doc/kworldclock/index.docbook @@ -0,0 +1,503 @@ + + + + + +]> + + + + +The &kworldclock; Handbook + + + +&Brad.Hards; +&Brad.Hards.mail; + + + + + + +2004 +Brad Hards + +&FDLNotice; + + +2004-01-22 +0.00.00 + + + +&kworldclock; is an application that shows which parts of the world +are currently experiencing daylight, and which parts are currently in +night. It also shows the current time in a range of cities around the +world. + + + + +KDE +kdetoys +kworldwatch +World Clock +day / night clock + + + + + +Introduction + + + +&kworldclock; is an application that shows which parts of the world +are currently experiencing daylight, and which parts are currently in +night. It also shows the current time in a range of cities around the +world. + + + +Please report any problems or feature requests to the &kde; mailing lists. + + + + +Using &kworldclock; + +The main display + +When you start &kworldclock;, you will see a small window appear, as +shown below. + + + + +Here's a screenshot of &kworldclock; + + + + + + Screenshot + + + + + + +The light section (which in the screenshot above covers Antartica, +Australia, eastern and southern Africa and most of Asia; plus the +Indian Ocean and the western part of the Pacific Ocean) shows the area +that is currently experiencing daylight, while the darker section +(which in the screenshot above covers western Europe, North and South +America, and the Arctic zone) shows the area that is currently +experiencing night. The border between the dark and light section +is the area that is experiencing morning or evening twilight. + + + +Each small black square indicates a city or population centre. If you +locate the mouse over (or near) one of the black squares, you will see +the date and time that is current for that location. In the +screenshot above, the tiny island of Pitcairn is shown. + + + +You may find it more convenient to expand the window, so that there is +more space between the various squares. Remember that you can expand the window by +either clicking on the maximise button (second button from the right in the +top right hand corner) or by using the mouse to drag the corner of the +main window. An expanded window, with Melbourne (Australia) now +selected, is shown below. + + + + +Screenshot of &kworldclock; with expanded window + + + + + + Screenshot showing expanded window, with Melbourne +selected. + + + + + + + +Configuring &kworldclock; with timezone clocks + + +If you need to know the time in a number of areas around the world, it +may be useful to have &kworldclock; show the applicable times. An +example of how this can look is shown below. + + + + +Screenshot of &kworldclock; with clocks + + + + + + Screenshot showing expanded window, with three clocks. + + + + + + +Note the clocks for Perth, Sydney and Berlin at the bottom of the main +&kworldclock; window. + + + +These clocks are added by using the right mouse button, and selecting +the Clock entry, as shown below. + + + + +Screenshot of &kworldclock; &RMB; clock + + + + + + Screenshot showing &RMB; menu, with +Clock selected. + + + + + + +This will allow access to the Add... selection, +which will bring up a dialog box as shown below. The contents of the +dialog box are determined from the closest city to the mouse cursor +when you make the selection. + + + + +Screenshot of &kworldclock; Edit Clock +Settings dialog + + + + + + Screenshot showingEdit Clock +Settings dialog. + + + + + + + +You can now make an appropriate selection for the clock label and the +timezone. Note that you can change the label to whatever is +appropriate, and the timezone as required. An example, for the small +Australian town of Quairading, is shown below. + + + + +Screenshot of &kworldclock; Edit Clock +Settings dialog changed to Quairading + + + + + + Screenshot showing Edit Clock +Settings dialog for Quairading. + + + + + + +When you select OK, the clock entry is added to those at the bottom of +the main window. A screenshot, with the extra entry for Quairading, is +shown below. + + + + +Screenshot of &kworldclock; with Quairading clock + + + + + + Screenshot showing Quairading clock. + + + + + + +You might notice that Perth and Quairading are now showing the same +information (since they are in the same timezone). In this case, the +Perth entry is no longer required, so it can be removed. This can be +done by again using the right mouse button on the clock display, and selecting +the Remove item. + + + +You can also edit entries by using the Edit... +entry on right mouse button menu, which may be useful for making +minor changes. + + + + +Adding Flags to the &kworldclock; display + + +As shown in the screenshot below, you can add flags to places on the +map (in this case, Fremantle near Perth, Western Australia; near +Moscow in Russia; and the Azores in the mid-Atlantic). These flags +don't affect any other functionality - they just allows you to quickly +locate places of interest. + + + + +Screenshot of &kworldclock; with flags + + + + + + Screenshot showing expanded window, with three flags. + + + + + + +You add flags by locating the mouse at the point where you want to +appear, and using the right mouse button to select the the +Flags... entry. You can select one of the three +pre-defined flag colours (that is, Add Red, +Add Green or Add Blue), or +you can select a custom colour. + + + +You use the same menu action to remove just one flag (whichever one is +closest to the mouse when you make the Remove +Flag selection; or to remove all the flags, using the +Remove All Flags. + + + + +Changing the &kworldclock; display + + +In addition to the additional clocks and flags, there are other minor +variations you can make to the main &kworldclock; display, such as not +showing the flags, not showing the small black city squares, and not +showing the day/night areas. Each of these is selected using the right +mouse button menu. + + + +To enable and disable the display of the day / night sections, you use +the right mouse button, and select the Show +Daylight item from the menu. Each time you select it, the +selection will be toggled. When showing day and night is enabled +(normal mode on first startup), there will be a small check mark +(tick symbol) next to the Show Daylight. An +example of the menu item (with day / night not enabled, hence no check +mark) is shown below. + + + + +Screenshot of &kworldclock; &RMB; daylight + + + + + + Screenshot showing &RMB; menu, with +Show Daylight selected. + + + + + + + +To enable and disable the display of the small black city squares, you use +the right mouse button, and select the Show +Cities item from the menu. Each time you select it, the +selection will be toggled. When showing cities is enabled +(normal mode on first startup), there will be a small check mark +(tick symbol) next to the Show Cities. An +example of the menu item (with city display enabled, hence a check +mark) is shown below. + + + + +Screenshot of &kworldclock; &RMB; show cities + + + + + + Screenshot showing &RMB; menu, with +Show Cities selected. + + + + + + +To enable and disable the display of the flags, you use +the right mouse button, and select the Show +Flags item from the menu. Each time you select it, the +selection will be toggled. When showing flags is enabled +(normal mode on first startup), there will be a small check mark +(tick symbol) next to the Show Flags. An +example of the menu item (with flags enabled, hence a check +mark) is shown below. + + + + +Screenshot of &kworldclock; &RMB; show flags + + + + + + Screenshot showing &RMB; menu, with +Show Flags selected. + + + + + + +After reconfiguring &kworldclock;, you may wish to save your +settings. This is done using the right mouse button, and selecting the +Save Settings option. + + + + +Selecting alternative maps + +In addition to the normal surface depth map, you can add additional +maps, which can be selected using the Map Theme +item from the right mouse button menu. &kworldclock; comes with a +single map, which provides surface depth (relief). Additional maps can be obtained from +http://www.radcyberzine.com/xglobe. +Maps need to be appropriately installed - typically into +share/apps/kworldclock/maps under the main &kde; +directory. Consult your system administrator for assistance in doing +this, if required. + + + +If you want to use your own map, you should make sure +that Greenwich is exactly in the middle of the map, and provide an +appropriate desktop file. + + + + + + + +Developer's Guide to &kworldclock; + + +The most common requirement for development of &kworldclock; is to add +additional cities to the map. The cities are determined by a file +named zone.tab, which is located under +share/apps/kworldclock under the main &kde; +directory. + + + +To add an additional city, you need to know the latitude and +longitude, and also the applicable time zone information. There is +additional information on the exact format required in the +zone.tab file. + + + + + +Credits and License + + +&kworldclock; + + +Program copyright 2000 Matthias Hoelzer-Kluepfel. + + + +Documentation Copyright © 2004 &Brad.Hards; &Brad.Hards.mail;. + + + + +&underFDL; + + +&underGPL; + + + +Installation + + +How to obtain &kworldclock; + + + +&install.intro.documentation; + + + + +Compilation and Installation + + +&install.compile.documentation; + + + + + +&documentation.index; + + + diff --git a/doc/kworldclock/man-kworldclock.1.docbook b/doc/kworldclock/man-kworldclock.1.docbook new file mode 100644 index 0000000..a002159 --- /dev/null +++ b/doc/kworldclock/man-kworldclock.1.docbook @@ -0,0 +1,92 @@ + + +]> + + + + BenBurton bab@debian.org +April 8, 2003 + + + +kworldclock +1 + + + +kworldclock +Earth watcher for &kde; + + + + +kworldclock + + + +file + file + +WxH + + + + + + + +Description + +&kworldclock; displays where in the world it is light and dark +depending on time, as well as offering the time in all of the major +cities of the world. This can be run standalone, as an applet in the +&kde; panel, or configured to draw the desktop background. + +&kworldclock; is part of the official &kde; kdetoys +package. + + + + +Options + + + + +Write out a file containing the actual +map + + + file +The name of the theme to use for a map dump (default: +earth). + + + file +The name of the file to write to for a map dump +(default: dump.ppm). + + + WxH +The size of the map to dump. + + + + + + +See Also + +More detailed user documentation is available from help:/kworldclock (either enter this +URL into &konqueror;, or run +khelpcenter +help:/kworldclock). + + +Authors&kworldclock; was written by +&Matthias.Hoelzer-Kluepfel; +&Matthias.Hoelzer-Kluepfel.mail;This manual page was +prepared by BenBurton bab@debian.org + diff --git a/doc/kworldclock/screenshot-clock-dialog.png b/doc/kworldclock/screenshot-clock-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..7477ef6b6c779e3fa590a59a408342329e881fe0 GIT binary patch literal 7734 zcmdUU^-~-`llJ27?rsSQ8k|7zMS>F~SaA2no#5{75Q4iya0niJfyJH00xUuIc<-yL z`l{|PxUTByo}T{YseZa^rY1`5vpfzaB_;p>zyT`AXuR6TSB*hOdR-Ia>9k)BlA9Dz z3mqMOZCiB<06>gUQ`VA&|Bn!<_545g?(Qya@P_yM*8iOR$BKna{r}tl_F?dcefYo2 z*L*lU76v=NyE(eOJb=SO?{2CtE)F)&;TO=Y$2%GLx!>6_T5Kvt*Pm5WAbah ztg9{^t^V3y5tmgn(EKysrSZbG=6pLN{GtG{q@<*$RM)=hqO>@tsn{{AxH_t&yR}ef zE>q5Fk@mGL&8#JpA}uveE%&l8 z*}^hwQYQBq?&e;W@F^}Xt{_e`JC#%^ZC^h9EH)<8C9YB``6xF67#0@xJ=CwkS5YMH zP&1-eGGfu+*K^bfjKE!`{xx;3#xZL*3r-m%)$G1;`i`S|n=?KsT~?F@Jf40J1iNFC%HfqMlDlxt*$0Xr>lFSliTmUqKKuRhp%wpY=Dk>HbJIf?V)2vC->H+3EBl3n{BLx6iEH1l z=iP51FVA;yw?;{I3zaisZM*DFUk+`}bfofBQ2axJ%jSL8g`EIMrNSTsA+`T&`H7i| zla55IlWq5?>QwgZ6H3Yil6S4m^G=j2$v#CN-U~zuc0!GjcI1rx9sFx_f@`x2byP1> zNfyygZ@*5M)N~G@9vp=c^;4nULGl)Oo5&0VYn(MT1kn1PK(|J`q0tZ-0qbr>BVWpU0q{Y;{2{6w{=cnukSVU({=Y2Dl!0RZ=hjnR!qTXbUcpi-`6^#2#f6+kMM<4qMhP)!GRf54|7XEL}`g9f^7muXg11Vri}bB&QFY zdl&-dI*Angm---rvCn;yIm-ne-e|cC9$UZG?p?fGNA$F{nz_2cq45yLN-2b<{a<_(ATM&X$U)M4Adn%aN!_Vb@h^ zQ8BYeZ&5?TvGW+Rz(UZh+zsZD9a5B%?D<*{9asi}O6IuVv*g50w%DvZEtr!{={gRx z@Qf4`)EB12j@4hL3#x@3JhZS3mXv&(9x1`u4mU(OO;xusx9*{>M7Gii=C$4}&qH-2 zeq*}=Mtp~6tDnRA^9nXm?%DQy;yH8SH49l;phh(|>|J*m*l#z?Grh33e<$tP+T1G8 zb|4Ash4~Z)^&T8p_O0Nx^$};UO&hI87a-^PdtQX}64ARrP{6}V-dvlgQu5PppH-ZM z`qR^YQ&?$FAEZNZT}*cMkrd({s!tQjrI|$1No~dI185ZD<8_xEzZaF$n+w`IhDXu7 zAG?Z+f9PKw95rbP8DBa8+J=DwJ*jR_t^>oMQ#Ck!IT;y;m9k6wlAx)8cT?|FPG@tw zyNk`j$8N=pHEFN4jbx=g$RkDnAWcoFSS)Uj6ptAqL9`5UJ_{UngIXiI@dz`n*W0d@ zWnY_eN=5z?)Ms}ux2fW{nj5EG9zX3`FDNhgI=IDPM(~3GEu=j@M(SQ5KjPfA+1vr8 zI=aH+5j;{}UbsD3nX72Md!V^i6ONCDO~plPXX`lq*48esG}M!ZG-i8$v*$sAPTbzf z!C`%@`|tSMhP52yl%qNUHpefI#WYhjqoBsRZq{{A!}g7K@ge_3NV7O`XCsFG7#(cC_Us1?^3-=>4PY$$sO|^GHo`#@QzR-_Z!w531ANm8+C}!BD8m zJ9(@nN)1A8>W_GKJ5O?Uw#dN1~UU{Lh@!#p&!5?m$&xF{STg< z1}24+{H<-R;^j-%zk7T44ttCPpD$a};rj;J)2(;LC+Ci55^FxkOW>u}C8A{~$ce<_ zMqu@A&x-*~&FX`Xe4v3moTD9Q*I2@%zNG}Nn*d=CDygw zZHBP5itC-#=4!s1Zyy2=qM!zTH?@N6k+(O~Ql?^k#}oh!&JMTe;7WyGo@Hbg9ZJEv zvq5qDT6dzNZFIfQ!1HNxI!XDNS0{~5{4kNT>yHSe^v(Jm~kme;J|yTZZ1{@r$L{9oc4ajv~PQn7Z#i^jXEW!lHT_WW|2bu2;#kxHn zMen*y!w!@p+MFPz$Cn=DCjn-Ut!{doE!Xlvoc+DHW1z|4H?bRd>YL~dql)CmWAn98E66x}}Z9w6FcJjh!cIj`r~>Khsx{OKW%i_Y)< zIPNZiPU2;_;!A|QIU*n}(IL}#uZS$No5E~}JUB~8y$VD$9m7dzG7QMq(8DJb9wLh* z%ydwIO&}zVaFgbv<=`>C=aq{k+-*-K3^%7U!##>%k{XLamBAg2ld+AI6XFT0N67EX zmDZ5NRZ&2QiR4VwEwo4w`i{Jv8k}H249X?%zB&%&f4qVR1EH4sOaX*ppDET!QXV!+QnpMt2tLS zs8zN&IBHoDKI3|fq$E!Qg7>u(Q+Hi8_O@9N%n82m6t0+mc#lIg8_2vA#f-YM!(D)= z@dL=iHg#DqgTzCu5YE0*2(bRLh?<)`WW&LZSX3;@K#Wojn5tbta5yauLziU!1Q4=Q ziW`y?NbYDd+pzl*nE%rL>tue0FY4r@lMIQ}{&PThT1hdwU*7L98+yPX`8l=8b3h&R zJCuh6DEIV&3FKo?6Tv|FWUdj_SWU-jp1|?uePne34o-h`pJ}ul{hB#jAO2C}gWNaoVy{nXZBpu8?j36hZ5mo9<0F5tV*SPv^%&SQ=rYbSR z&nS5{poF82!GKz<&V$-?i;iAGSqi`}A^$w~Q3jKpxLMB+5X`E2se!zx_@3wuBC!=G zf)EDl!tsz+c$%6VW?W&Ty-pOf@;XJr_D{)3Bz24}Nlb*O(VYhOGZq%AYVpPNNF*cv z9ddgjEgf?y!t)gW#;Jmvaml1v4t6)Qh-TV!mY!YcOl%WVF;T6060?kKtEjnbqPTO6 zTwXF`QvI}8_0r|Y*rtTJo!4^eQ|zTqd-&`Ku`*7Oi5 z3BPX~l)-4wRKUfqc(ME9Zv%tuLWR=xa!l^yFkJc;Tk_yt3DDF5o5oc zU3)`*PwC0kRm){qy7Qz#1c)U#hIU;LYEf$qX>M(yc_o7Bku;Q!xa9_k<&6g6VM3!W zMVN?n3Wkr$y@`+Os(2o-fKDx_(hm+OYW^LmIi*mQ>lxow+~!Ak6ISm=+24DX1!7R4 zE!}v}znz#>?STDNt2_aYHbq21G80cPzTR&BcU@l*jh?nPdVB*Fnv@Eg_L%K-0bLw~ z`x$B91UTPzMI}~mL43;{?mj9s#eDWkUzW2+h#3M_9)#M=$8?`k;mOOfVnZcnnj=$}VO`;Z%gNu!>yW;7WASAeM8FV zg*bp8@$(+Gm5^i*kmQ>gP~q4-ICLulSvXnj9rgeX)igL}_{9d1EyCRuI5Lf0k+ z=K9+6FkDyQ4+9ryoxzW?CHyh#qlyvZ-j3%XA!w(OPzh2e+#Gv6lAFpjq>MBU|lebxf=9R9r#fiwyuh8U>qxqKHP3L`5!7Gcl zH_OtCb1LtudW7-gJnkau_-{$$BMZRg$udnlY;>TTHZ}Ei^?`1@lyNJrf0*W2zR9bl zcnhNotfsSAut7n5P~F}2-H~=YL-Bj9s=2RUK@h=g5Z{S`QpFsReb&+reuhl z5r9;wOwX;5&fN0lwM}8|G)CW!SHvC1K}X*+jC_i?n|!v*2FQ$p;3Mf$4#qx@WjDN} z?0&}$kwkcw21eP`+huJ*7$*c>zomt(*ZjaO9F~CLgUc+6{c@TvEUfF8D$Jr2#cQnV zs%R{>isq+=Ehdt|cC7iezStZWb3e@1-_l)rhkoGu&+1U@hDqo)1>SBzRXz9J*irn` z`h2K%$Njx;4A%8ELq_i#F^Itrr$LsUw-Wx&Duy%JHwWDfzIjatWyy2VMfL|`^*g2^YBLPhhYy7tcFL&NynxXxzsr{D~!8YXsxHSSSJ@jo`JIdMpwwlOg7a~4!-^(4k)HBy zK~J>m{GA-%FP>*BzCO3dwNEr<9-gEFpS{){+rZx%O2fk$E53(8pAf-B2p9G_s0m7(^jAHcctcCcMZ^opvR5^sA%QnWjXuIb>tap`@QHlz-wY9eiNeKSxt~x#F z_&Z5%uC#vz62)Cl+N-Z(8U^hX~b>*I?8)l(zrfv)cEse;L%Y|~;GO4BHS z=@W>V;__Y>KSRAx++$CaML7p`q(3i<$SY3VbJPUF1&b%XlZ5$=Z8VwP9&hH0_8g3L zboNyFR_fI0`5&#Hbmk0unsg=NfoER9;jZ?aSUMh0t=~6YwEiJhNg}mWc;sz1Sz0l} zGD#TyP>{e9q>8G694W>);s+!g6??O5`E$;Fv|N{;WLLiV%egHPS* z*-6j5W_S6ahht+{-{sP2pZ%;{Hn~*v8lT{4+Hhsh2O62w`;OoWM zC_Juiu8TG7FwW>-Yp8`TDzE4y!4HV3ry4fX^xAoBt)6@Y;X1azb&;U;wS}iGboLw< zt*DN}76E!pRoc;@d1K_|^z3kym;!wC(+72p_5fhQ6U1gf+nKdrn@zrV7lCkVa0!?1 zNCt$6Y0}FX*Xq|ZQB94Rg0CF&Ha*jI@5bT#NhTEby5;+`F=^=zaSGwH=}2mQ5fJq? zE3-FPA(nIhAB_OPP@DO!edD`*x19Y-5*P{Whss;%Tc~Qzf4{l}{xcsX9P~|%O#@e( z2YLrynr*)Oe}A@_7wmr-vdN3dT$XD72PK#D5#Ko8ze=763-|-(`B8{FRgua#d0-&0 z*-e^5b6qhA)XN6Cy6WCq8WD#UXS%?6Z6+8=h>iU~QWS(x^voAXBYAY!cLqK9*RgLr z468$R;BhGtXz4ysHnW8^i^fco&}M{S-kn#U8W)S>NAn#q0d53M-u#Vi%HWxEqU!q* zX!96Ufqyv3@$ui2w!?|gSG$Q!E?qIlWYsHl$HorGIfiC#|IPK}=p9k&+F8~p6;YFI z1K8{*I#75dGU#1jHsIUfHt7dTQ9)VPpX7)JvUvMEMaON0edEC{arCF6>S|U861GKR zw3Z!>@+rBYAS%8i1X+9wu0--Jn)uSVA5-R_OQ5yqq>_57H*|uzj}6Opu3Q*B#3p@& zTPCNj=DW*>Ym(O<)Lhv6f;DLnGa3IE^TJZh(tn3{N6Q}Y&mvR-94;lvC2q^F87o@u z%pR|ftwL1pP86S9A0I@FKz|CJPncABAvB>4`LP`Vo4AY;*#q3NSXaKK17)>(0w|ft(CQYp2^G@^n*Zm@L@{ zRwRlD!f&6S#7VILo<0`9uqMaH#7_F{W8JX4BBUgXiF^e$PFY(b7={^VFo9(XG`%>z zC{le>J`r?u5`_%iYDO{6_v#EX=^BQL0$-O>#@wQqzQ;bqKMMg=h)^+_67C z{TCyJP6B19Pkjc@pE3_@A@tms;f?i!>;Q9>T| zm0QkSzk&XnBm?gsYHSj{R;atA3AsL->q;DdcPI%^CK{hq52)&@G-HjUMjnrh*gTS- ze{1zuA=#&2N-;Wh$6|^3Z#veA^_IfhD!yPm~U!!ZJK7A^-%1SMP2|JCJRiI6FtNTu-E%r}Z1IJmp(;_mKpa5%8IyD#qU?#|-w?(XjHu!}6ZI4tshpZDfTZgT&E zJ4w?{(;ueEXF5&WiBeILK}H}zfPjENmXnoKgMfgn`j5DQ(En-R9%&1(J@nH&X@T{e?V>*>Zt}4c0~bJ*mE( z*<$*|w-xzZRXJkAv9<{XY;#ds1CeG~Sscm9zS-$gO4(OEQF6Uun*O=W3CY@3v2u}V zvMphnl@S^(Ve$?M#g5r@J~5vE9n~=Tn@zNgaZrV6NRX~yhI|~Ehhuk@4anBptjJbX z*DFlgv;IF9R6JrU&BRsQ{j)4M6uhN$>~eFB#FI^Am29IeEG!gleIgAcMLbB-bodo) zoh5AiB`kk>8*_ndRX}DwAk#Q8dqFcpu((+e$kbKB)WuF$Ucy{k-c&JCjXhkA-&0c( zq#J9cLnW>g0@5+#u;38aaplwV71yzqQm^LIu~yOM5Z5+U1T9;tQ-D-5d_Zg*Cir4% zk=`IWF>MZhwIEx00dX}QPL(VPRWp7yN072gs01yWng_qCA)A_|p*)FzY^Aaim4q6l zfT}FJnwqFwpt~3yKPZ$-HjfSD$FD}f4^ra;>9K*V*wpaFLCowR&F>QQ-zCZUBLRh#6cPYRN~@zto#Xd;viOWRyuJJ zI&l&@euw{n!NxB{#|z@%u%P1=C+7!|3t`go@RRd$$T1NU3J@@GQj)Vt6R87iik~#!B1qFwsq@;#LWK~u7%gw^RgL2r9Xp->MQAaD516O6t@W9D|+TaJ8yoB?Tw#}dto;-N+ z5-NN2(?|rT(CoeVamuu?Wk$w_t?Z2%Be93&Bk7}y5y*}62GctLd(|=u9eI4#&2fp2W zo>9Z5rQ5xS&w1b9&x?E=7!nt?YCic$KLnI&>Zsk_e945Z1TfN3vu-bdGwinYntp6g z3vs#Lw@%$bOE~I`PbeQsZPyTPw`q%97_|S`b-Vz~BZtQAb29c-+A}bHgipVPIBZ8> zjSAR4TPcISzKK7|;Dm6er(wU<)R=9@_%+$zix_?`Cm43WjM-v3-Wg=Q4aQ7yJEVxb z#Qf`NRu$6sG@g_bChuPj+6M9D>Ux|cD>{D0=U?PRERZ@gs72`aH+nkWzxjCDn96N_ zA&ETpXH1T>gkUqa4$w1gKdA}4J=XhwJeIESd4A+6Pvj)aJEr#?ZED=5+ghHN>6a3U zyLTTGjem5`QbQEAT+G^cyW4NK*>2a(Qg3lzJhwF=XIxsMzS~a*k=m!1{~f8*r>;FU z@b7kXDE(?H7=lRG)Oj0cpF@0pVQWvrzA5Y%`}uXK`_%_ijLk`#CNup@X>v@T#eM0- z@V)A&wSAA*<-9uD(h-AxeGHkw(Sd=_-Qhp!bjslMk-N`qeN5!@a4dO=G_Cgz5eaR17~d3k|3moxihEjG@2ewxwSA7fJQFWB zdeu?yEX$5WK*opTK0P|DJ+o0qln03W#=Ft}UwME(^3}q6|J$1_nuYEpL+M+meK#oH z4`RsIpzV-$h6H6>&)LLuGrZY+T$pzIU<3SQA$QK;M;$*~nxT{$d$py303+A3)Gn;9 zoMC?^u&wQFw;X<3XV236o2MnN)bXA5JA0l3Q=VglDrnu7{d$pII@q55>`;JQKp4<+eZJi^{7e?pd{fBID zkZF%C7a{tN84k3Fez)BatuZxkd1ucNOM6&;GR8ixxHoC(=J&6drRMu%6T8})TN(YS zhVTm2jos7sO5aw z9AZxBul_XE+`jKm$ilDnG~V&O>5yj|bUEIhrpNMw2uAil17;O_m>#>(Doo|)G}j}8 z$#7&DL;rq98@TBy|90pvm93l{QHD3-zz`qvQW)}pf=i-n;;?0>-}eo1J?*s+tAmcm zNxq+H$xDu;uSwVV&~-P3xTs_i6XAqYcCnV9g0<)%hRNm#soPd6b4dN$e(=cojZyQlZO zF8%W}W!Uw6|Jv{S`0B`G5SQYeOG_g*+NL`2?T$_Sg$e}2wGTq1JD8E?N+jF}LeTg- z5s9Xz^&+hfx`@1seAa)xXY{|V?gO37@5eptd7T`N8S06EA15y--?@A4rWi0C@1vsT z+w8Ny4h{wt>xpFZw_99&*UL&naz1}8g<~1G`<^n?zfU$AX6(M(;r`?n85XPW>9#)7 z)4tg5#{^U71hgN2iV_si!zamPObI9Yl*$7%iK(1kOPA!mpge95+SEj)n27{G2Wbdq zn{NEa1ajovi32K$1)tjugj=;E$&4>-GL(`NH?f zozE9BEc_2?K44&f{BZ8hM!`adN$9oSR!hVL5|+N(j>m!i4fi1Mf8oXZ-x*CyoOzBr0C1usgHh#{Esc0 z)6f5cQz2?y1VV4)8v4RtLXQt6i4Vi_K`lqd%@;?M%43s?jn7h_P@Cg6N5NsS6JS8T zj@)L>7i`j7-u7Tz=%1_orTG3=pOpiJfNi(W?~C!6RXjW&?N9&q_pmD7{#{z-g;{)` z4LVukWTKj7MRGYew3BWO`z+Y*x>(oCM!YJeMCdgRU1>BH`iD$>cQoxu?_N_pzu3N3 z(!c8XPA7b%<4EBZ(%;j(dsO5!Rv%tnclP?lqL?z+X;=E~pQG?o5!(q_|&-S*&O zPu+W`#~|Do8}J8W&#SKYVW8_<4Q~I7=;7gmqxJqROufb9Xu4vKx7NMqLg|xLd)s{X~6sWbvY~ z*wUIu6;M3SGVjcYItibK*4)AUWC0o29g+G%s5_eXfEBQMnx~&PY8jQ1#2g#aQi#o> zZ7|jDnZblM+C3I`07Q*wFkVNx;4y2T%$T`D36&_>m~% zMaVuMIA|r*+a5N!!4lne4?RM4uhqG=Mr!I9!eK|eOvv`fy2L0?EtK%StxPX%_B=Y{ zS3-=4(NsaQq@Fi5PkW8;jRwu5Vy}%|RxK09vqA83)0`yrUl}!uRvf!_X$DrQLq;Z< zd7Pb}GK%Y*68;6g?w0O}nDrrP`F~tJBFV#-u4(s!bA^~cE|Umjes$6%K;h=UYckCw z{DJ2GFQ;DeQb$9)=bP6_q4fJN^|wq;u!2wTx1Krfpdo;Q^DS4X=2mCTdcDwrN08mWA8eN*y9Ii)Nc>&qFbPl`bTsH<9k5 zC4PYcA9sSw3_GK2Aqxm2^*lYI=A-^Pl~Z2X(zRF|!T8R|Vn2fSsu2H0(=s@gCwt#zg`3fMPRI@f!@9;>GV0f%S0L4Y8pb8l8@ICRZWd2P?$NL|fN zBlW*kwn+MHG#}eHs^u)vQ7sN$u1sN&*@m-2Hgt%g?Ob6$I6?Y&o7L6f`o^Yk<6T5k z^$XjHf!W1|!tG^aL;|Chbv3uMoH{ZaqJUKqt1@wfh&rIj0U3}FirY;{MQc;>Nix%P zMXx!r1CMo2#bhLz4CNfNr3eg}Z;gQL8ct2?rkQfa@ObDMH$E$s5l&JjTWi zs1JS@3LMAy(WBNvmFhO-YB4Ff3*&W3P#RuY{ey;-Ehb1tr!nR2-{P|?!_ljxR9R~h zy5cLFVwTW`7@u@=Zjp8%C`*VaC`OA-$a|~h9zzH$g!0!1r7`nN-IWnmREvR|7`mjo zzyBi0gnRr@i&yw5Fm?@6ZIQXCTMc4+`Rf2uk6t=n=Cp%#b-PRvKeQoxs@i=0*z~gv zC*bp%AMbm#sA=LMJCe(8)DWe+P?%DQro}o-+1hX#s1}FHL#G3`FZY(hbhsW~=EHf_YIOcbjMAkqnZPm!a((f&E%n$kVR2Bytz_Bl_fQ*SI zJNMddu_52J#ejr1WOu3Jh=sqFVK@pYm_@@}rd;`JjJZs3^Oi<5LT?mZq%5TZgoS!A zL}y|zlnuiUVvm>tC6O;YilVBwR^GI~&RU)i1M=IBBSRIMoMEq7Jt*b+SAG?ggyu3N)vV!q3% zziTzAdx}B^%fn`MA%}Qz#L+;A;iaO>E!2Vrb$)Q1oloK11ky2utMT1e0z2~}s` zKTl)Bbz!;06?&wVnn_K6}52SNZBWTyw&=| zKeyzj^zW341zs}Jmk%eGUTL=k=<;^IkvXwtttl``3$M zR+l$l?yRQvPUDg+;&IY?WzFiW(bc*=4vSdF#0Xbe7M}4JS|@?nA>J)TQ{l(F4sNsx z*$a(_)m8p1V4eIykSeN-&5usSJ?yXawY~%=%Xn1uU|f<2KSpA6Y#>IJCb4zP7rj!EyNz>O4sHX5 zGMVy7i}rwQ`Y5hZ3<2cM0txxt^DDwTw2?cnq~}sn(OuAwzS5-y6mQ4~j4zrxxEokJ@#uLNqe0 zPc|e&a}&q)WC4wT4XCITtckXUF~I(v+$5+Ff5jtE_D~b+3kq^!^|q2K%q^A~lu?QF zh(UDf@%*rJ-7GITOv9Jhu=%I`9W7S z0z=;z66Oj~5S+r{hw>)^JG?+UrNH{bl%3hwo!TH(fnvzTh3!&hESM&_uQKyA#PpW{ zrEpt;POQ5dRAmm&>8UAO08$Y|_*K~fXZ_aFQu6fgn?}g8zd2RdsswP2V?K~8NL!a9 zNSj;&$JA=j*JAa{${AraANGHaHVWSq^)i(y>=y!=9V_OgxQ;xY9z;{llox&*>z8Vg z{T)W2lSrmDrWh@w(Q`UTag&|=YZsa+V}U8wzJ2b2%ytyQ)guEpE{Q%gE`Bl`QP?;E z58>{ux=~7;XiAcxZ%1ceHFYtWiTSKCVVHx`i)N=|E$Z%74$TPV$v_eh?P4YwEEvVA zhNR~@NthM$*FV~B*=d86cSc;=HWdF`f{ggiC$qffJ1n?nn=*#hm-@Ntj$t zRz9^-6rQDdIL$Z5ea5yu(i%uEW;{re&-O%ueEfdY{NE^JCWRGC%gR4x=Ofi;qkkxI zhy{_j>|7UH^;|u`ExvEiw*Locs>bKBc$PM4>lSUD^1|# z1(IZOVc+(`7Un%$zsOl=bElVjVzhY^8ipU$?&HNgI%tE6Rr@v)fYsoHIWP3{Q95~2 zl9N7)1b|%^zZOO#qkMtah{j1W`@4zH)S;vGK#vtY2BA$b^HK%I7?$Uq2S=z?GqN=}iR6agpbcBg|{c@nuo$AuY zex&pL)Xa5B5{T2V4IO1gk<_fU%9A=_X3`)UrGf+t{MsQ)(-Qu{DB-v6xV7d*BMWb0 z25GKZ3Cw~*61mUPlNKAT3pi3YRV@hiVgHV1an9g<3O!qJ7y^XMbAonVTuYHK+>Z{d zaZxm$mi;4DQ?u8~pRG#RtHYTWdGrpc?@D>JQ3ofCN;DKH`K&;}ddZRH<7}19KfI-q zD2+=sNn>G%xOs;TYY<67trR+?elDC}-;5d0GYu~6U7mQ#^0GLJX5TkcA+;nsNyOA% ztdR+i=H~pBV1dVZk!|bDPS9H5&3;ah{qU_x+K`NmZv|SdbCCYQm8RP)TR*Qbai9Aj z?;N{ZrVpajO%|IKBh>=C{l&*$7&Ejy+8OUPQ`rM6PM{7`0-0S-xfCMJ0ft7u(O1|w z6q+?aRf0wkn5;~$4l&#gi{_0gxC(tKIw8sci}-Iv9bovIL1Dl0ALQ>tssKy~J=8ZY zWs&BEnSPZbY}ko=)>`P8Qwg9T?DnO)!S6jh#w=qQr;9UJTIh*yXoBuGtYPxndGQX` zlVG`JanU-~`^SH17P#e@-L5Xq><3O##gN}=LU4~$&mT${j2P)E1j8@Vr}Jf%QG(nS zE|gfzM@M|2PRFB&wAT|kI9Q^If}N0yP79ihntle=Q>+YX4Gpw{Q2)`+)Y1vMS< z<~C6xN#`rQab(ewac!h|ZyY59QoF=T5ZZnJpr|ZCldmTtF2&-s88x~FWqlJvf|Ew~ zGaQgLOHPtq$WOEbfy*^a8%m?5oXOnT5q!br{&nyVE5&b^FaTj!?o^I${2%S}5PqyQ zhet*z)}IQ*PLnej#r*0Nl`UM$=Fy=tJr@_xq5)WRs{nYU>16FVCF$n#z-d6?AdJZX z36QqJ2#HuCYNW)L8K|6w6o$cOIddLse88byUK+Pu=)1>Kh;7!hgdr&r#BD&fdU-jc zBf-gij0|h4I{fhZGm%1?%_S$jr+#wg`&J;2Id2I-Ty^;SAf*=X+xU_XNLNqVUfOcQI;SD_2*|2Z^|x?%7;Fy zLno3nhOjCPzpE{623~Ymc+;55N_|20Oo@Jq%Vgp9wUHA_;KSpizQ@sWPI$>d@uDkP z>MRY~V2PBeUO(M6D0K8*1>3d2ZCW63xnfSAVY(nuu^K61PFv!wzLA;M@+}5RcdfJR z_AOEFyOAKdN*xJd80DLK7w07djh)|`8P$$DMN&Zxl60UdRf+;^ImNQW^TEJC!EBbo z+1du}3niZj_J1j6+}BH5f%^Ds@!9#2QKFTuZw5k-n5<$cE_IA0oae&%tqyRhi$AM& zmY;~uHhPq?09z)qKzD0r@b8gn3opDAT0K=@nn+euvN4e@PBnYkFsTBJ!#^MIUK*>Li8O}PcR_0BrCaP4U5dL%HggC$jf_t zM%XOeb;Czp2h<#(w~KNI5Sog3Fyd%H>Z;QGL7;fB>^*#=`6l>PZqD z$Vd1ED6UX%9R$%a8VOhzHN{)V%4;u(rcvmKwsK8&UQ1A+ zO@e>TXsVW%*6A@^%T_xl8dkvzdA!7|kp#xqM@75Y`|m-`;1_2!G_eG$bJyyEL6*jl zw1K`Sm}m9=3G?OkVGI}8od%&(mYpAghJhdzWjHK0@Caez^-A%KSt1SVU5Whs9|eQ92PA(fI*H;}2V8_)ESe)5wY3}a*B4)x905+q7z&0Zlq`Jf)a z#)0W*+hU-AcrQ$4#Se)(uX_#;MNY zjUDjZVPEM|zRNa6p#LYkUOf5px;tc259ykozY-8T8F=E<2_>&OEBs`&WTL^G)v=2i zHS-&zZd+(@q~yMBme}Qq@30P61TCbAe#wB(^i%(fR_zX1S2JL zDpj>~i2BG(R#Vy>o>n*W=KAKpnn+HpJPjV+3X^ zPEWGz3LezChu8)E8%r zhfz#x3P8usKHlu|*1h-cP6*>2aB$_6{{2@cem8y|DmIj6Ur6aRYeuxsx}uvF6yvotlie> zROvkkL{w8=Gb@>pAi9M)<}kA&y33X2Mwet)he~-C{gV@!%5wP^CcIAHNrr6xqhkc< zx^QO2jtetQ#_$aqoVrfn-@ZSIS$Ho^TL|W*;NS}mwS0_})aS$zc5ylW+E@5CF^4qFm#qVEc z+?E51G6R4vM*NgdKA3hi38CR6J*uqYCU`9IgKybzDvFlu;mRqElF&h@+<)43TQ0|eQ)`unHT%4Mjg@@OoN8MFL@8KO*1z#&j*E`NJS5~=jECQmnRewU zAq}A<3JHd>zE)lG*zXe*woF*^TI{#w zwx9GV(8VXGmb}v<`9>NjS;zu;?Anp1PG%aBg^MoOvaMFx#!8!t;kRrHQFyn*^k!+3 z3;|?lx7t~dp;6ZVjn+5|Nk3fg+Irj=*!OzlE-1tq^txr>DI#jVtol`z_I7#)NWB)` zF~vnpqu%Tzk`hIE_U>87YDcwFXokiLM|r||JMJ|qcFRyMJJ?!)U#O!E-}BguC#jfQ zBARWZ%wU=4W=$|HXBfwVL0GU*DhS+!P7$`Qm;r>R7LHpqk}f}R#DHSTriju`T_n1! zCkap=oqPd_dTE^2xsM-cNmMhG zIo2%C<^CjbevM$P@TbSu`(4g{k9mKu)WDE3>HMUS0VN$(QNTP?gU}#ZTHO`Vpu>I$ zj|a}JnRG%$Rj!7ChMhVCs{{eA$eQoZD@tOF3ZeXyA;yh2`4ZtB9znS> zw4jqk1tsTUmN`lD-3oqgfB9V0juj$ZFhAQ zSk>9pM@)>0VsM4N{oP9a>Z)~hbrl;s0)@10!$4J4b$h4B<7RKG?BvimTU@zH&eo^>g~yJ(+Uqa?gv_;y?)i zn~2m?5TFl}^z-5QKtctjsI<8uWafu6k{I0!ax^qEU3V1vL5S^4&s?y!gWq(|8Lp4vk)&$GU^c3lr6`?A^B``-lA)!uHm2cn)wHaRq$ z43qQXr_j&yUazmYKo2J)G;WOE8*?=tpwuM|*wt>(+GAmt1G`WGAML2|?#IBt4Q>ZQ zByk_AA}oB+=gYUli(Ln_+cJA12%&4@=c0(RLRVO<^%Ix7^D;`;+8&HdgIMKIjZPvM zYZxVGC(qO{@+>Iu%Zt#kAV3L;3mx9#C7s<66ABEbU=syQSv1qlM;7mwcYEiCRC&rJ zimwRVJPutl;g?~VlyY?sbKxgqQ)~WBted)|PP}_eV4J$*y(F=LT}P`U%5_Fmn_5+t zk}Qq_jMq1Rsg0cL)5H7ww zxZ`_`V)U|$sJWV~nK^{np}eJ^Njo?Z**PD7p2Q8kQ;N*O7hOC^LcY%_sBX}f6j&P# zNiGkVc2B;meoEG8AMgBCdx#^9f)m83md!-rq~k4iUwbT>&>s)|#JWNRK!^oh`yjmW?-CkRDqA$bQK znjs3XYigKW0F)_ukPI3(LMnmMNx{{N^T-AofvZ8X&_U;6gD7|Vgi@?J&rqdUW5PqA zLl;<_ODIh*1cZ)$@-5{S&WDwG=x2jvBnOS8H$h44s5oR6wz+Y5ka-9`VS(w$(0&irMKDr^Wjk)p0@S3aOMAi&(5+W%%>e^Oc?a@!|IDR1b! z3le*UUyCaUrH3U&AejSm#QWPA9jPpEfK#a&xVNZ^9u_G;hrkBui)8BD^ewX(?E#<{ zHAB>sarNXH-X*CZa7&|*E7os~jdiGi`Cr~AD;bXm2!cfEDGl|XT1t|gEP_SAcG_~TZLxIa6nwFIy)!HDVNVX&&H`w%ApzF-G z4N>A_C%5|kC%4=(u%t0{pbZOQ8ekMqC_daNc_dYGK*EhG8jDzZ&})%-*|Hb_ zL60!J_YWGHGX>f~&yn3E1Q0Xu3r}yV29Cy@9zf}Yap+Hm-m{xxJi~^djPqk^pwuY; zJa2OLxrzcyoNKU1PPWQ;o0SWel>p6AswQ<`Q{{El&fP)DnT8s$(h6P6g**&I98)Pn8K{KcA&596bj7Ur`}g0oRG-)+2e_== zS%Pi6=!Y$e3}V9{j>`~3?sp+zFGYw@U=Y7k@Lt00!_(ZU%Me{3B4ML5$2oul$Ra4H z6-YnSGqtjkT|)+b6|Ba33`CcD7@{W1Xr99a4s7}nA2>}-iR=(9!AY=yIa(?D znx+8t4MyecYw7%C?x z+gS6kg(565(?3QFlF=NQbl*6TQ`j`;py3V{zxs%Fn^=_h>>B4(jK_csfMa~cxJ}ZL|$IhS`LTDis0;sT&*Vq(6#C6 z8_Vz$GJkkRE#33-qlR@&ys$3{K09X|IvC7Lq_U>G#3xruZM1)F5F*leX~?7Q^S-?Y z_5ZPye)EoWyRwssx*{6bnbNRO3u zOV^M=QXmoO6A?ai6{is}RbW#Xw%nw;z>%k_ppH&qPcGv;Dc~Z5mpQETcG!YFNpZr9 zwDopWaw2k)8sl|T1{y?y3Yib8D_|&JeZ#$e4;riDEH7XqRFV16WXLg=A}%*1Ke74w z6WKKb_{1i32<89xa$tC@%4G`sIk*fRJLcw8CRcvFDyz!)L8?F zU0Dry&uZ-WU0NvW;AV{xm_{sfchVrW1OYw(9c02!S162n#kKXB3B0S{6et&;vFo-` zz=|o~pfXu0axcqQDz;8%G(NW;RmKupOqoiD6aAQUW)Y(o<;*~q-LgJ^3-zi#2( zcYowPSwpC>fZ!Mhsp@uks{{fjnDcqV&5y31-Yt^-<)D0l61wHtKTXN&i`DD)RlDC*8jo42 zqc3_+os0ZbHBWF-<+hBxSNb$!%nEIEhTByt=a_mG|3g<9oW$qH1wDYJ#SC{?fe{Y$ zNO|oEAo`RW20E|By)Tg zsn(}{ZCTV&&xe#hu2(IX{I+4m`OA3>A(w(a8yq@yuctRgZE324-cUY3KstSj_g9Od z%-3J^apNMrJ&0BL%s3=!O7Ew+#-J{-M>pc!xmOAJkK@gr`YsE7esquUD zmVXdPoIy}aTdv}u>*=PI#F~FJ;gUELz4}T>6O`v%3xn#mD{1170#~di3NR51GmSHutScVFS<$mrM?>f&7A|4gvwWH@wBq!xZ#7(Q$_P> zfTtD}F{kkQ`qJ5!5_9C9eip4w>R`aExXI3l3?J0kS24sgy$kx_% z@tfphq&ZWex8NET972-rn!I2@8`K?4gkQ?$K~k zeigOh~=gvuCj4m5&v5HFnKuFM3&{=p*ccM^SK( zYV4a+xP^A)MM>``wsalDOdEK?IJ#l^q0r<3j47E46$C{ie=vY>%Ng^7YRxz6P?e6s zRh{tt5r8V|N$5Hm`CW~Afz^^<(1{daN3FK{yM?~HY$h^I^WUFWb_2+@UCz(MH^&hk zcHI5+NM=bg-f4xPTHNDxJq#JO8v`C5DCX;QlZ1u;(g}qE>MH=a&A2C0T z%(hORw#R*&ek*k?tL_ZOa#W&(;9EUzmO#ZAOy9V|Vb;l|*Ert*BKkTehzDC17SMW{ z?AL-3bi9oYru;k^2$z+YhuZ`^NQ6uNWgCQm)Oh(S30T+CEt?ECp@%^_NT_@Gc)x6d z9(Appv#=C$2K|y;nbFXcw8PF_)$@d^mkdnJR*+swX?^3aD^hhB_oq@}Ybz&4?GyK-dzDL9u#d@|(o# zMfLMEjp1uLyhQBfSP34NWW98E?5VOtzV|H2e1<_q3rz`kI3CbnPaHpY8Ow5!W0@Xy zF-%!6w)>Y)iQBVyTnNSCXrUg|-Sfw~6l_h4R0{0@HH~N1X~?-MlIsh8%54xM-Ct_A*|-XAHIjn>-cyldJ1UnBqUL2CZ5ladtGd|K8`CQgb~R0T6H8(RIl!kp(GTQ#nLVWa<^4xg{j;eQEI-cZ#M z$rE&<*s)mIsqAu__#S*5adPcu#a7H3CVRwYl|Q)cSMiy~%%ga*!^pSo<>Yz=yN9GU zlZ$?b+vdI_Cv5WN4Ibf0Fzuyf{=CUdwBcdq;z&+%*yw-as!?i{p_tDa9CEo8Xf2lV zpaI)B;)Y{~?9=>J3c+t5QT#`(`(OE}vGr);Je=Nm<&Y8?8JX)J3Nfro1S+Y6-OjSg z>Vk^F`qtJ-)ULMD79*^WlBDSDyNh1hX*z2}-ArtFna z51mj=Kz$q!mT_WKX;*dbQaQ1N$ArN@3K$IKVXGY;@8ny=PVoJtBH*OplJyuBxvgm^ zhAh>vE&k&ORY(MGOqL-zSlAGkh2SPhQEq&bIzfATBU9&jc=b-!GcCoGS%4p-|Dg@> zS`XZN?l1x@CZx8Y=(tsbD|U85G(06$5~03}3_|6iuR~tZflE5X&TLhB>$h9e*$~;T zy!yJ@aGZUgaUXL;zhy%9a@h(Lu3SE7;XH>5K35o=dJ9{x(Rhi7>gwwKPG{Kbs;<7@ zf1*-Og@iXh=eA%+in9{2a`W4Ff37UcqrshH>t|ebW$q+Bn%Jz;wgX(8K6AXDtcFpBihHg0ZCZf$N!#h&>H?xVVQP`byZbn6gDl0lVJxg znDvfA7{j7ZN@*>S@pL6)t2Zf<7J?Y4=PopSBuiJ@h+BfNLYo@%ugTR0B^|g5HMzr9 zy$wTLOrrGC$tj0W@cOTx^!)#%0GDKP~oHGtNZ)`|9d+{E70~fq0j%NhlLir zSiPas7iLkLOgC_4hW)y%qS5TgPy*P|3~QPC_{U&d&#Ae-4q2sZ|4pDnS~r852xh=i z`oF)RujJX$5uI}SIt9u4mz*xt)VdOXQ=E@!6wlUS}BbJ|pg!7d9NP;#vi3?I*{;KG2dAQG=gJrx3GVPT!pwjmZKh zssNEYzqM*bu__o_lV+F1>oQT`kR-BwqIutBpcdRGeT4~9t?B3#Q1KS2tf|f4U99-n zX_L?Aej$|Dh-j3=XX`XMtY}{E?LQEyU0r1nec-6K>~_+5m;b5N^?(kflp%OZg=Q|> zU}!tuKOB~cU%6!1?=rpU^NVO>$gJS2x~OKTx*#;H?RUBox4od`Fj|lP2ONq|)Zi{} z{1p{(wRKlTWkj`{WuQN)Il!}Mx-CK@%4p05}zRN1A%w>E6NHd%gbx%D7sLH`+j16Yw(@&L;x@IrDH6-WshoY zF!~Z~l8&~dR;Mm3F^h&-<>_o3o306F7$OhwSakfNVZ5l&NNeC~=Ci?XfAX!Xm_$@j zz2|E8kYO(_qI=S0moRt$DFQ^{(+ZF(o-~P|5DM0kmiPH~8%|f5wi(jkYj|Nwp6qwK zj?vz+D5|0n(q^q}whUDlU)HJ>nV6Wam}*m^$RixEq3`dRsNs6ELK%8`iiU4SjJe1< zJ7qMh8g!&%v+b?9^8{aS?L5NwX7V&wVgX5_8 zUVnAYTzMIu3BYCvATBx+>dq>0RG9L$0&m(KD8lj4u;UyJ){u zKf+72CSGHz%y|~%#tu9kic5~~wOmR~zbH~>6f5H$3^Rlck5eB4JUp05lOk-h@EnCp zEpn+++NIfyDX~nbE5QbPD$V6phpxj}umpn)H(&(tzo}-&bFqe zMq_yw7e7Cr`!L(j$-0JCIu=|!Da<)7;Ts@}#Eh39rH(hBdAOOW_;PAqnro~1&oUSI zXHfJI`V&f*nOBzXHsjP9i?MAx8S~aEas)b;o|5V%hs~Rfh5NfPO*!vlCX(^kvs8uF zgQ*yxpUqN?nuT^_Kz8H`rK96KP={p{-4tu>C=-?^0dbr7Tnc&4(SbRI zOZ%8%Peph3ly8!-M0>_%4!Z4z5BV zTP4y$ZbvJtnk{EGk$!C1AoW0-@%UQZ>2`-Oxt+e&9?dyTU2VS(W5i2azkhUEgEGL} znWHx6z^OFFhz#6x@-tD~JbC`k{rF*YovCo5O^sRfC36X}GhhNRD($!V=60U$VEGVQ zpz&a|N@+p-ptuAgZOg3ijCWgvU&wkjeI%5?mQcCiBHm`oj z!wl2E#W^mlljpL@Sz%_s0AI~zL`to=65qCXm0)#L=o&I(D>P^t<&3uOa8eDRx%kA( z!k717=SHjUIGR!0#VsOp1FOZM6$F6m*EBz?aQtg}dMdjs`#OIQwVHl2Qmh00sZk{qG~#R}f>uK6m9RFv?n!~?H5W5VgG;ek6e zd|)9$znGdXaU~G$g=JG36K;2LF(q5hnrg{_6g3r$p#dAQ820E4vm~2@Ab2jBV9^CD z_BlgsWh4jPtgmFR7nI*i$=YtoVRANG1x4 z!qI5J;Q>-l@qc9%(cz+kB*ksZQp?NYoKg#6&jU|*0d1K8EvudQ`A2;Zz=)m_8J6O@ zIB03dm}5v3JG@k3_I~DZLCo>z;XpC5l#B>gEJJ1zL#>&k)=)_b#?8}8q$LySsLPo! z0+t1&E?2vir}W~NWvC^J%6V}sTBcH%VVC$_wtF$6{shgQDjgrh8|U-Qoat*`vt`}6 z=WHS4TWji2s%lSVlFe2&qq$Z}C7>A4@0Fa}-CJ4l&JpNwfOBRK=+*F@)2C1WX#-qV zO_ktOwTG$#a^ekYiXA()bDoj!TDyOLb#;AncXMUsv5wZ36Gz|Gbn6Q}098m2FFXTI zPoFM4TQ$RrEAj9`in)w%7y?4l8vGw8P77<_Y_SkmU#tOI0W7@`fSKViMWn+Qun#%8 zdy6EP3baCeHJi)eXa3IP0k49pXA1Giu%I$L&DqVutirU6cjkMigUOg$QKajWt{~Tz zaC1oN^%M*?k>VGu04!OFZ4{xxBcRn{oO?VKx3FS%F*ujxf~AaA!R^gwnrio=lUSUh z^5E^c-1=EXt2Rl^9TKWshQ3KmA=Mzm+t*%af}GWu+ba(@UcC4nAaw@u6IBIURaH$5 ziwq!tyfMv#=mgc|fV3yTY>Wp$(YjVB1k!mQg@ z=VdwpSovfAOs0@ynwPI!a>?S8aEz2%RNqz;N8qeB@KE~F zZudJg`Mktc6KX3f2!zMX3Bqlyv1%HsBA3sg!?+bP0UBnQrLs!HQtsR1bjP@+Q;$1_ zEU0vDrNPBf%#`_u0*sv=aczrOu-h>F)MYekmquB0p>Y3my6j-9>NaiZ-JX?Oc{1o6UKZ}!93nUZnr9=WQgrEBwAthA8Di%m< zoh}#m9Fw%ggsQjb9e@0=;H?T!d8da5Bf04TZ$zza29<_6wMD1~Ieo%f4oQe}6>EUo z7A5?-yeTs!vI!m~dt7~^jc^ARP&UI}TqNI8_%tb%h&Q+?PEu{C14%I`Rdx4!$1iWW zf>9D2?(RNSUs+jys$EL_Mn|n0C6$Vu5~Oamb=eX*T84J2hbXXPDe7C(-Hu`_8OqtPQ-SflKk)Pih2ZgqutH*BvsoZKy~B% zCqL1%vNy^Sr9wPzfd#0RJ#n@>#U0TuW3l&?`(Ns9qoj4MV9Sz6w6`_`?t^XJdsy4zgSMV@sOIO7fK)qn?0Ee(a0=1Y_PuKUad$;6PI=)% zOLb*sYsb5{uAVshlOO)@UO%^H)I(-U)WTEso0xbOo)uJv@?e6XGLj2l5mX?V61WH` z2?(?n#RRf%;@p;rxj_V`BlgLdtX;Sxf$+=(S3}(|1hfy=L1oQJ+1wG?)?qp_#UN{% z#&23cjAXb-gB#UpBl-N2Pc3~l&Crs3DGRm3Vi77P1G)Pry;M9!+l(inW+C0KnY~$Wv%#JvbE6mP_g9uT)}QLm=Z9eEz@pn%?@o=%T;r7g)>+_m{?E?0 z4NXbHZck$!*AOw%p96EjakVI6f zK~z*qhU!%F{)*Zb-0B8YbshKabzJS(+4c$kb{U$EkE7`GR6#>fJe~rVo~}Vv@Mm9r z#iJqKiPVBJon$3?X(1IC7fwaUigDRzqHD-$^LnQTY=xRzrkEa%_X<))s0N1zWi1ap zQ!&8~fMjwwpF^iI!N7W|Xq5969wTk-X=zGXRTk!0Y;fGF+vWs_te>Y)PlZ#WI&>Ow z8p&|jNXjZAj0|qO>Ybmr-OlABGELu7U0vDO*wWpd^mnvfy?gE2^ia&Pk~Ttj_z{q=hvp6}>r+j;c;8y#nlI<#;~bR8VfLIEjI%0p}S%u*T! zsAvqI5h`^YHOGSBw@8AQv5ds=^2PtfM{4%lp>D`wR$nZ3Qe_aCo88Y=6X}Qzg-E+6&Y+J`Q zr~me?3+>%d4z+}eoN8<9=(up#iinGqE(nRG3VrYH^72Nsy6S4&tKEMDG4Pr9&RqQK zkIqyzG*SWX6GcI+02)-r){6a2a)w;~N@eBVQ{Bzgb@iv54)Tqz`A;eRe4>}E0UAd6p;5t}U;9OO4faG@6%6<}&Iy^`hpP1t8Z zP-Iur%XCw;b%>i(F}3>6F)plUDtU1^ZZ1REv-U5{U6cdxRfD}VUfTrsUiA-NyVcQJ zhq2t!lFJXH+akHhwT`pz|6>32>$X%@*H>3E!L;YhN3ehIL1HvkZP{1Eia3?;+XtkS`D?$ke|JUo zsph@a(COd*DTr8`jeRikQCg0Z~MeH-&QEV1y^^VUxUW3Z3ia0q9GR-^%In~3J zTS>QV&^r*HrD<1K-rxxaZX$VI0d`2z<*3>#8b)y#uud~MJ$kR?NV&EDs<^-WAT{ag|@=$0KBp#L1M`sPfwt?g>7bN)^RlzK~j zZTsC@kH&uS`R6y@fB(Y|KfKX-{pRJ%jjtX!a12;=P2Rn$3SGoeseF2KHRn6FT=8BW zpWU;Eg%cM){`honZvIOBm3Q9xQ%-~cmD3H76>6qR0$^fQUcov|ma0L|RMyvJk}WM) zKl!}BzpJCQrRBoyTlYTy`Ct6ifBx!e0V^RCe+X50IUfE>lm((N zUHryXP6sa*zGg&3b0;*GB$j#+<4Tepc=0<{#_zAmiiZPS+B0o!?7=m1+@N8YjN+pA zq!dZ}0_ml~hR&&#m6Wbo+i#``6|OkED20Knq-Ibh#n35!<;HSq<=LXgV``l3oOvwe z-vjgcd?K6SUY`1`3-xu^JI=mqZ#`C5RSs?q)HYps^yrfxe(&A0C(fQc|Ne*HBUTp= zH#QzBR5Jbb#QoL;I% zk`#(of)+`&gK5KNu0*9CX|d(=u0H!GKk9$fdE#nM>(yIh|L}Kz_7^|?*%!-2$_n zYY7En;Hl9Z6FyuzG$>owB#f};^R4X@yqsEISvI-T6*v5}GLg6d`8sKz+6#e|oAguW ziju2wPul2na*a}NFU$4;6=%Cl&EdP((G!ccwszcWJ9gj)^R|JEt*QCKtrJI296P{v zqOGm%?6Cul4Kwo(>y9b?ccEEoHDxkH((6ri7eBgu@#3fB7k|+E@uz?N5v2O*BMl9E zII~Ejc%){J!ieG2j(uwlvVD8?9Y(#C6^F{-y5Q11{hz>3ebUu&;>4q_6Yu`R-~Gj3 zeeuQ5zxZmoKooIHa6r$VE$iWB%h=KKSu}dOP;h8uQ(T^pTY#~j79@KEBWUFo`E`@f zVb)iDOh{Gq%s9Q(tR&fI)`|6pQo*FED`1gwU{!?4Td#X~Iyg56N96-k3g3;T0y;RK zR9H`?vjP)M!R7QR$nzCdeb83St>gD-75oUDH8C9Rx(?(Bmj0zRYaMoID!JWHNOyJMDMxPTo3j;7{H<@D{+@xf8z{t7bCZ`a00;WLpPxg`_e7Rg)|_ zY|rIBVs7@#MR4gmr=iHVZ{2?A$mv6efW^L=KYj1C@M*^m3#mhgj-VkNt~pduQ9nF- z3L^h-L*s$Au6y@B`Q*b7-~Z$%{Z~(%{Ly#+=4XHPV<7eOFMhVL4k~E5XOIdsfGR7o zX7N-wykPk>VbU{!DlWYQ1Gs3-HpC@MT7=4eeWH+C2RTab9y^7*>AIE}IAt+(F#leZdy!VhlN z-?6nC=}%4yRK+R%TFCPD`Pr&h_nf(W`O}~N^?Nm(G<^N_*LQ3uQacWDVvz~JB9*r8 zJ9I>hVO4c~eSOP?yBF%4o2m~t)?I45apT6jC!zXIey_8Y^6&3{_T!)Z?29kH`0~qt zS_9*m((KPxpz;@$j%!0z*xagaw?M9vvR=a@9dTza-X77Q3w!abkqAyt25Wkm4+-nw8>O5BU<5 zwDldnDO}wmCkYn9{g0e(@4!O@P>*L5X~W?$mr`cuvD=g1f4A-3ORZOLKk7VISJ!g; z*4egWEp<+t00oV}FzL*hhThD4-JQX!nY`!Ztqa#IPt`7~7b~{B`qrK;RaIv`{q&=E z-aE2y>uXkHe9P%zJiVu?iqd?2tEo9WfY_ktD$m#6Qg`!q$I0_R>g3U*=TCmSqvgQP zqi6r`FTVKfXJ35z%fJ8SFJF)f3!=>dmxpPIr^~4#N-Fy#Duc9IUgk6vd;r}9oSGW84RF&?el3XlzB8CB z&N(kEuQkRQ@swCZ718mFKlpVGQo$&dODWFaJmo$CDaQjNi75O2!x*GsUYy83dY~z7rt>3@*-SchNF0@+< zJveh)y`{17;^oU{E?&I&gZXiag&hhf!1U@CmQ`H5eDTblx2mf4SP=1dLqlWr!1Ppb zvZL+Mqg%J`4!5+PefRu#Z+vp&{kD!9@1MNX(sJVHpMCMg&%Q+a+28;2@BgV7{Gt~G z5d^ltYS}}1_-r|@ycD%zn8yfW;kXB*cp<#JjE-0kp$-EGtne)7?`Z{7;W&3(x$Vr@ zY_n@nsc)&u=V<{S7ZXeFHK-!ut)>U>47j;9WWcb#kqN3?cuR=nzjCvSGDou@5x5@a zmmsRIjaHmm)R{`6MrElCXD|m?sW#w@TJ?4M*+-Ag9{u*&6DM}IYGXfn)LP#Hk=J&i zrMdwu*vAC`oMmS*?3puF4R0MdaS|bE8!T3xZCYj+S(w@Q-t7G4i$D0m$7gyovjP>9 zM&uJT`==j&`srmLd66uwf_vIm!)$HMk%o8f0I6GeyN-_YXNU5c0|(m9pFMix{qO$d z-r4hQtu5CSR9_IQU!qx1A)1ZLrw_wa0HT%nNLU#~i%+n0aLywB;uxm*8<$Ll2zAj| z3vuU;g;AO08GbFb+O)q`Yx3I64JVooG9I z{`{j{rsdeNvj`8`U<8kz?KoC<_2jpI{7+x}_{#!R)?5d}*u_P`1oU}ET6s8+FFc{C z_bjY1`1Qn}0wJ+FnwsI&>BQrcH=()(MN)@i<^6!w$QD zj(J*}GePxda2L^z6FX0wID7U|YiA%ZHujTuJC3#9&ga`swARr>m2YXha^>*h3eIS} z^Uj&7(`U}K605V9ZZ;lnn9mJ!DNb#3b8WS4oV%Wio!hfVGDcgrRM8?b$a?Sc$3Ok+ zpR!#9uc~C)e&3Orsz%wo?j_jjL{rvwtFP z%K};=P`2(HUvB`XSzRU@TGLrgBl6`MM`mXY73F4^B_$zp6C+{0bCvXCI9}K|Q&#P; zHaeeYW*t<7^K@w0lqYNk5{ZPL`}J8$aPXbv9>9b@l$ewY5-cjc{9tg7K1L$LbC@G+ew=U)!`-))|&>dA0H4 z$FOx5rI-TY)E>*lLB4Yiv=Y5wY_;q;FD=dcroRhH}(}q!(-!`Am z*jit$u4~EVKRMYJGW*AV^4<4;c<=iiZEf#T6{Okmma8#+uXQ z8iK64>cfX>su~)B6Ho#$5bAVFw0A&@QUrei9@WMfnXkeV01~*J<^mA5^7_%ycGgy3 z>yXKnYt1dKu*T<)9zD^Dw-~gY__H7X-8!Vc{QH06r-@?(E;5fqv@ik}_+9NfypAUx z*7W51pl| z&n?4-huw5ksvKIa$YwyLkRoFjWL^_cr8xHyCZ~$uB(FB&POC4BPsw4Pkr9InL*ULv zJoZFB?{c|@xSyWaYirz7QF+Dx=={k~@~hv!cjNr~AAb0~wl=tnj*he6ztMK$Qs)iM zW~jQDI!gA_4GpvN4`C3?s}L^H&QZ;uX*~1kPnARZn3nJ|Q6X$3+Qs+Y!#zB9nVdU) z`gF~{9Tl*u^)_h83+?T9nXo@kEpwp_Fr5HtTUzQ4#B!Z~{&znUH}$Ju{fbb1`Nh+f z6@>ZmMV0fDamZkV-$jLy8g_VK=q-fS$5C^=;Gz~-h1z3a!Hs*7(e}(^?*le_8qF&UQvBzSnct1w@pEH^}@BblV?w~wp_T- zV!PhDl#l=TXMgqgLMp)uP%TJZgqlqhs8;kv^uVG(rF%4}C#C1t&uTp_0=H%n7es@w zg9Iv>5jN9d`)zIxHa^2-=?t-&kv*9n7ohSpQ86tn5(79o94R2RB!TaWoY6A0jCB`9 zQ9ySxxumv_GgJvG_+;p5-CW^ZoC4GnSF7a~7j=7xUsO6SI~Q>&C3i^?`vZt>{N#u4 ze)4YH`IAS_e*cqq-~Zt!KfH0{Mm9UtTJitz^)60L<=NWspD}Z$5V{cRP$G&HauEUr zWcwOZm9v|)ySH>`NSI^~PESk|(!pw)95XuUBI)7MCjtiIcmaeYBDXOo5NtDXc*zAy zkdQy;TWkIH4%jo_o3<5O8a2;eYd!1stcr^BRdv@#W=9(9Z{E0u5sUS1FJ8P_3?vWC z=k_)Xj)o~K|68IOqsEK=l z$4X@S-?QcQQwvi9{0G*$&#=ZY3nZvL^>l6RJ>PO{!*1pV8QbE5TrgFI0l~mT?So0$ur~NVPeSSa>9Hseecp7IW@_9t+$@ky? z8B_3;k%5t=k?VcE5S=8a$IffD61-bRqmFm_Bmv())o$+X=jTe#SGA37=bqK0t7`(c zS6o|y<)X{Q#m(T~z5qPl{;i>=rsq}RG(m&*vb~9b3UF1@#w^ ztDi!}#8^mCoSj|3dGcLSc{xF(=otX>NKvde5sRI1iigl#ftfMiRh8+tyERi~e3fOw|5P~vAb9m#UnU4xQSeZysYZ$F8nmEHY zm?dRchml&1tSXqm_c5KzzuQ<|ewNQap){DRsxVweP~{j@q)|*lW;?7Ob$lorZZw%c z!bzJnLP!4zY$}Z{Mbu7;XO-QmWb!0AlRd^iG;oUOapokS&)|;sgQwu|=sM%ysIEW8 zN_Z`8UF~zZ9krJ0C@+UV(W}-voRUseUS6)^%C9v3)Bsj>q2>DQ!QS%p(Cu4a0JXSy z?NafjOE+%R;!fMOFK#v6yw!+Z_qO&PVu9b#gc2IlA0Y$&3JC_J!r$Eb;lKZQqq(`^ zT2XOv%}7@tQ;nJ3m{4=%0|lv9(>v)6ca{kH{+pRC>&2 zXW}P^%u8bAJjtI#AIBozACXRAk|3|6th6zxswyk$x~6;8Dpk39psTA7z)~YnYWSh` zAouoMX(EG^w_qCyj7vX?5FZ&aKwEi0*Qz6dd_9W`UFx76SM=1)k_zxd{h zTg8NZ2b#xmGIq- z8)#LS{(_Nx|9QoQ3zZF5o0}VPYq$;oZX2J?LuN-%0sFK#J)VFk;Il~D4zMZ~r4X)1 zivU$Pr6f)YAUKK&J~1Odn`c|~RG}?QEu|Eon9ECJU7di!UB)E(zhs&&eC>k^T$>yE z^Aomk_2j2BUEt+y`C1b@L`eIdKoVlf5X$H{001BWNklhSFK(4~{Gps0AJ`csd8x{5KkvLie{qo%Xgigz7>Sk$f|CCb?Y|8EaLG0U0GRm;X=h#$bTV0A!r-h26m4m<^XlP!Dlps1GM`b z22n6AK4R<-@p|+cu$ubc<4-AFf@*t-R6<_=NGHx@REG&=zAW*9^{vRF==&&+*pf-5 zX?h(p>jaw=k3W678^2HUfUnrmsX_|8MtqOYa%8I;;heCTl(Q*!|m4azpXlbcy z>l_&9W7ExjoqcWBw{shnmBl5W;bsS7h1H~PXJ!GpodVX+wXo3H==*T2gI5aQKK@PYr1e`EKK0t2q>6pBiz=!evqPodzI z!q^1w9F<0KJQ6XY8TK?o4EMPwetZ+3zd!ajs#p+I$|lG!h!hmK6sWUH`sv|e2bxE))DiNkLm@}ssRKP5fSyUIE_;F4~iUhg7uf9;t zZgk+9O~nOV?N#=3X8Zd3u6ND88!xJFDk&@b47UKz(`W3ROlq)df!S0=@zra^71hnf z#kcSF+@(1STn}k$>*+yqLEQWn)t7#_{R7eUKi#@kQGH=MclTUHP1{meV`JBB8_LRc zQWDH}i#pL^_n1wAQMn-o&Iz$*YKB{2Hr|*lNhI^#RCZq95c%IQDqUK9Q>K z@=ww<6i)1qT?mF}97h82sB?mjvPFJ;x;FoAWo(EhY{3PtC<~^)Ac>$o#5fR%NMwC= zbvJi_jx&qYJ}R@ss{Zr7gTnF*Cn5$3)cV zgu?XLT_*O1>QuPB0gmZZ+ht$?2mRV=>KZlm#kjA5P@Tt(`n{8&x)rMyH*ei)fc*Db zMMKlo<{mtGMT){LBxNzw)AQ#)qd`&a@0%a6jsal(>Ccc27Z)}5)Rxk=NnOjxNK18P zRZB0=j7q2F?K+*uG`isN_?#AdhxH#XAN}>wcg(8D6SA(=ndKcS27);qMngCgL<4^b zIb>m<;}j#t#4zDG1U`W+MuIAxP0$ArIMOlsVEo$L&d%ES5G{ltRLa`+4n!ulW|%#u zVayOhg|~|Uswid*)ON<^$H&9MoIHC#sQi~?_lXIpG*#e%y5j#tb)_g)*#W6%Y&~(D zt`tm$G3|a%Do`Az*=S-Xa?|`YJWj%WIS7u!QDDb~itXMe^D01d7iuot? z3n?U}Q}RSpRC(tz^tMpiLxz=>$6|<&v1P&t-s#=hAgIs_o`Gt2=O|5sd)S-G&ODCB z4{}FQ$d$mVj%8|ti;`?yR5tHuie+u^B%~RYp@9Lmr;HP~GTni!IDZn)?=jWf<#8I0 znq5Yc&Xz&pRgD3wvgK6vg&0R&O?$tl{#r%Zxso#61ch+bHDFL{zih3q@44HALUFhb z4{UCFd6t&9QG2$FRI{dshVr>T_Z;Nk_uTFIsj;cP>DF!RkwEr)sidr;vKqW;9W6Z8 zv@@fUBu?->_l3hAk7;TFpb`Z^aGR{IVgGlp|NdzBHLF@Y+EgkKXU1MW;8UE)?kBO) z8p1wdntHpbXgVP;kfcrvx7hX|bP%u%?qFnah7;FlvTTzPRkUJj&xTkl_|>at+sa+w z-Rv<5a51g)$m7*@Fe~(ji3IiInZX|x^6iwI0OL3tIa_%@JB_KJ!ga|1Md`Nj%!8AB zZW?!rw@K@LX=!@|psFZE*$7(SCA``c^-M(*vku-xO;ZI>hq5x<9tEN}Ffi%We%X8H z4uq_Wmm6vzMQUhh>{?#xYQxQ)I<|F+>C$p8H#EL|uyS|oZevqpA8`*sFV(t{G zog-2UIihc|2Xxm9mjn{2W5(8rSDa>ZGEhmfDq8nIs50r4Oy#i$!^Yll3-!Ub^Rx>I zP>~cQ-n|8zA>oMPV%nX?R~=J9per6s-k_yjBWfCJD#~ad3X2wXZ6o=-gT^5=?LF;x z+i+UFr?DL`wRByt0w3Cfq`t7=z1&t`-&p^<#>S>=U;Q^E%3s{PakUxMe1Ov6R!?O` zWg~X0ctA?)2nDRB4wYaOgsG`fyC~WP&S=u>^}|>Rd`-k1n8p7kWImo2_83$M;K$J8 zWMn29n~5b4kvu1;5YGq(TM_4N%BNC2qD z6bE>)o24`B$E?_poI!=nqxHzieg?Q4vvYbXKAth+6oy5)MU^B6$VLc0$kd({4zZ6v zb1$;7jc4)D^~p+3OKmNc#ieY@zpV5#T(`z^9d)#R2=8ANN@|0PYUlaZ`chi4DgBH{ zeb-(-H^~`JPUhz)?gP8WLlxs}Bc!eppsXV0C6dL0f0w)3aa-zcV`IbTUttU7=FQ8O zDsZ*2s;06LHwxPC7}WjiL8n$_3eH3M8wHkT4mR)~` znJ8WmdGTJ(tM+z|6ltp%D&XOK82G_RK7W)xJoU(@<*n286DB_-$Erg9z&vFNYsHah z=-v#6S0^J6)cO4O$jEFPN;)&u(>m1E1jtb4Vx+yHr?IiF<|gYa zHeJ42QQcBkQ&rgrs8-e8m$X+7@)niWzOZ1`8^Mn3kXTt=HjhsMueo3yUbLE+ zaSea{bvSjp5BDpmaE|qu-o|v4hFj9IqeGtcK?x*8*HLkVxxPd+gLhmBBqm%Mi_NU> z?(WR54Ly+umy`p3U{w2A@L}Nl5GtJF+gYE9oSYBG}MO93;vIE*e(78X&EN~IKY zmq|q|8oW2ZyDf{@;SeuDMdc*Y&$-lGTl(2KDo9)?Wt0%;UNy<`wAEE=B)+#E$NGS= zpIgaKw{(pROic6*wAZ)(xW5_<1|1eH7eCm*r8rrgmg(D9VUG)pc<)(#absOeV?)!m zrfb)3+_+lYT+RF|e%C(KuTx)HJF-|pfrVlJf<0gt%x;^_xAuOAH$f9>~g%2B(}FqEO9^$?^{87dJ`e>}qyDDqD9#;}o!!!*%DEJ{%wkfJfLgyk;qQ|WPW`$HuENqMaWN~Dnu*lhG8Kj zeF_!Tn?A9-=z|AqzicZ=DRaC8RdMm>H)sVy29lBe+tIl*d4K)_DKT~}?d@$G>_M#R zYHPa8B+MEVV_n%O?k*V)&v)phs&{#%>XX4MZr9QFean~N^nC>YkL&nM|P#Ojg% z<;%s*DVNpi0<>H%Q}m2Ev1wKKYk!o>Zf%vVAam+?5^UX`Yb|IvNlH1?w6$MPakSaCAgGn$XI>!HKhnr=scY2y#V$ya&+7o&>O;Zr>vcG7cA>h8?i2u2`TTBQ zUt=XCP)!$6PWbAzrp6wmh=6t9KrXkg69#<~cZ^m@pB}vg=eFqggWXKoOg8tZ$013& z4*lZGhcB_ixVY$dS*NUelg%1FTR)elAX6WeiXSbTK|)GXThUND7Nyy(%<1ZmoLn(o z9~$?^N)!4%EH6>bB1YnG(a6pxR<-tS7t*N+lFazdZt{q!(W31B?hXJ2$eyH>EDoom zSmA_~uw=c)%xS2KMwLGi1+&$ed+`HyhpK=TKK=j|sauu-qrmBj^CiVa#h-&!q3#Yq zRmX04R8-dVN_;&*MRh>A_yi=Pt?mA*UG(~#4ufRmd;9wCkDyEv-HK?VKs0_ozCVeR zx^-PGI04;!>FVWcHCB{cWNfOo4Ae%ZkBF-L1UD@5;wRwnE zC;6jjO0jQD^yHx!TK`31=p-8PA?pStXzy16DzO!L{2+dS>vd;5;L=hHmD3?IRg{!o zpc}B~OKY#)yg?tZA`&T-)}1e{_`RfUt-p4)3=0<3b&5PAmLw*ElGp2$43f|1pIQ=qU;Bn+d=WsZ57N^sBPtYS&FCika zfxktY2cZf$MX!bHutH{KdI>(zZ`E76wZSv74lg6Ew7@daK?dL={kYHj}{HWLcQc5tKu_2Tg2 zR3!4|-NxEZJo0qsP4f8o_#=*~Q!(<8W@6C2QVTfADoXMngy}!YL$}dbBsde>&FyVZ z7mxy|MgS_A?UkHoM{X{Z*50_)P=WrBm^-^H1&qG<4-QWAhbBydl}?CUfA5Ua4U-8T2al*wi?Zxx~rA|-cKlk~j8 z6CXPUYLKD&HllEp-;btA&+PD%aG#M`3H4voC_|M|$OW4ML$T?nPhXH&Due1I_kMRj zGUEj*k0Tbxhe;;jAI_8dSTz&9hmribfmLkUY+GzMfZ`M_){=B3 zz9XT>*+?uKO)C3>_)a8eqPSU5NKsQP2|G;5)3>q!9hhP=A@d40t_&V4J^@e_XhlB% z{$S_9gNZm^);`$JCTBuPFj|^*dhqnkyLW5vb|8}difP9% z27=T*RWK{8@REHL%qq^bn%}&^s|GSuZ{EIr_l^Y5@eVI!S3p33N<4lXjmIMKcs_rS z%b(2b1A6%r*&U~73NT6;Fg#66@$&;)Y{1dpG!3`0k&D<2j^J#|s+|Z`7s|AN0bygY zxT3m}9nZt)REPTYU}qPw;eqFutIwaW(HL})rrvC>#oX(HeBkYR-#zeM9*@WAbvnIX zuLC{_psED7T8Co6ckfR=2ZM8b>+pCCnm+J=qcvT$3MSV z*(PP??Tv%{3EFcs6bU_eu%FMzkFqBxM*vbXPp^}d(vZe@#DtBp5?=Iw&DjOh*TatxDl{#Z z3m;B!aVT1e$`2XbrH#h$R0A!)WKMHYTop;vNZv=KCtR4~ECjr$LZ_+p!>BqH`eG1< z_IKxA$X4~@#oXN7{h_&M+tYh^9C#-5_%FE9yPrSFo*czv$85198AGgaq5Q+4%<%95 zAW|WR*$j;i&>I^;#q!^M4LIU?mEC4e}FIOd6S;2zn&&eRc>pc7dPW-WX~G zo4uRczTO5|wYFPQsmx}r9XzM0wZ8sKa|a)A`~Ab<1ONWW>PD!5SJ(ujk+*n;hfRYX z+my+Ls|E;_%QZy|E_HZ}FA{0Py9D?HPK`$sU~-HiepKSOJffmBx>9UCRT+Y&0xkoK z)xRlF$%5?3op%Qes^puwx%a4YyRtpLmjfd4bmno0DY`%^OcF0q^k|{SXkKjT?gNo^ zB!Fo)P^M(yY1)}X9l&goZrddzGkD5#Z$mx^wzM>YSr4nJ5*F1&v9X;Gg}7e*eOP3u(urVT8(!V(VBZVg+(sB*RuiG<|&d0lZmShDxD&6uRWh^n>zYhWQ~` zEETn3$fk&vU>`QIV#y=yWFF#>7<$13 zx?MIHNJf<<^QWX6&`SZMXEMl1x-x;GYGOBcfLX9y2;9C-l~Pg@uA{<;dj)7lN%8F;MV#qwjuY?sv=)y;GK%W<&Ih6~9A0o^sc(4r zYf}J>YSe~MIW1x+4B6D;@UY*l_XD+f_?>IYYIQB37#TBZGvzrp44uI-!W3&2%Z6UL(%K-o|+-=@Us!yzjkr_ckUvVSu2VE%w643+9SSQZ$N zeAc0kPE_J;J-P-~b^aVS5eX^?SGfboh|7xJ=N@RatxaDvU&4*kp}7ZQH@wx75sV67 zJ|FyO*J%Y#Q&WmH`H}gp5JWPtDn!dEskFSvYZ}|&_eHC!s{ykzJMKx&F!@Kmy}eZ> zZf=fFEn*lN*4qIpx7!M)WtO;^{Gs*dMa+v`Zuo)9PheF6rglJYds>k^Wd*e;o0-LT zso?5ZC!M0zAxkeCV7NAUUYy3po#_=RI%d>wKQ?kgJulj2|%cn%t{WW3GmlIXOr0W!hzjAs;pzH zYA-)R-6V`nb#w=t6kSl!??Nd-RmLQ^tJ>&;yyk1k&-tP;3D?PUx z?HzK?3o3i2QHozQdqHI$`XEDtF-+@&COKm)RI$*NRUBZJL}uf__;T;_ z`MHg~c#?!gQ06qldXAZNDCCU+RQr*v+<9g#<`|=Zv`DVl_6MAd%N&DMWil~f`?&++ z6}V%E*Ab@?7)XS{;bAG9uCNgQ!=tZdC6{VzKVwkg=vfIW8uYYlTAO-q-yWJO>n0cO{6T8^*BL5-TONdWMkQ-MmQbvVsBzWw_4!4ma`@7A^Vhdl-7HuI6$p zd%N-MKAmO9B0iq@35AgP&m^;yT%`+jiG*CZqRLWAsi@2KWs-@>Bxg?0tgvE>_idM# zyYL)&+x1+2MB#xgY^VYv*LiG()HavVU`!=-G>VI9LAza}8G8Tz&5YD7>dca1GWaW~ zJOEWU55cOmqHbiu>AA(VMt*xrD-zj>Zk3yzv)@ils{(ghO z?w*o&>0P$bDVNP{7C5a#dy-G-tvI?)^Gd@mKMF3{0;9G-nh71?(B?5M8Q|Ks!W>d^ z7fa^jQ3Wr#I-wMGWRS?ZNOm|)vu60S!ifW-7YbBanm5AA!%1#;?b);K-FTV`?5Hg` z^WecuX*HY$AaoJA{%96)tv0BJy$zh|wzYh-DHn-pEwh01fwAc^RdcA*>@$ z9AYm&ON-c5SeQje*VeXt(8Xq=u`_~5fe*wisi+9Yo+~RWhvvOUCk~!(RcW=_$;TeZ zZ|$c*1u#}gzyXUZYueT(eFdPLKCM<1y}XL=?d(?@H0?{<%kA~;{i5TsZ%`0b@Zxx0 zt>z7m#n%MY-yga0B|uIUSomLShyLe994>qP2)E(<{)c{(UNFJGkr>Xn6iD624>;cX zLCI;coWmv|6C`)U3hIZHkt%jY?;&XyunRA=HbYjGQ3`>{ILoh&6bG1AK!i6QS-|cI z#iwXw=E09YuI;Wp&FAAY5%?#WKZ(Rovhr^uvrN_jC;%ltX>@=ADgNUbh=C{oO(W3L zT>w?rQWqV{VXcr0)zx)X%eiqjYKtdT*sFpf73xoXUQv)M*Xk8wKy2eXuXDW$06 zr$W?)hbI|}ZJ2naopulU-{ zTQ~pMP+atf_jj)R$A32cXJco7a4T##!VAd6DO7e*FiJ*4dt>|TgmlKLoLU~7pjxFf z;Ake_znk031u3IL^+Zh##_vwwB70(&{R9)2I#$P1G9(*M}S) zep*?4_1d+Ymv1zqP~7kSv$*zBS#{^cYB=CA8hIn&g;@Cl1eH;g9FkVk*frZP`c92X z(u&|V5h|wAJ~2C+&x=m4QN?kh)@W22oJNO6!y62?hjLwAZvzKs29xVBnaqPWliupW zGR7kye-9tJOp?Xu8MWCwK%_});KSizA-P4UAg?;6-Usd_l70jgEJz3DgHpdJoJ?XX zGpuLD7$F;AlCK8F*-`AH0g`~M1e*=vC&C?&>?CeZD-OFtpyqkN5*H&^H8wUrt z&4>pwA_-RZV_sISe-!MB#zN%vJX-7C!8z#f@BTD4eH|TN*L6Hrg~nBd!{gXsM_`m2 zR7BLVWnWi`LRgn?Ke>3Z`Np+t4Yjqkl{G`_iEzMfv=~Krx@C*QtOEky+MRfp+kSSih6mjC*va7CHM*Q0 zc@T-RG9yvT!juhmu~MwAMf(mh{OwV-C!gOQ|LOa&>18ZZpn@|_EVrN^yxw)av8ImQ z9>CF<5*lI0!e9%DlwNMSnakh4@%arLHAi8PwdB_5f(=c|C@KzcbYT$QQJvk$@x5yk z{R4OId1S6G`9z>0f=Z{=bkf3y2$YcP7S&oFenH|@PKPBBFsL=HU)qNesqgd>YlcEaX<9Tmq^mpZ zePKROiS!D$U^XR>SI`GE=6s5m4AmBMezFft0-1QT`|jOtF86M2Wqae<+}z&Y0h1qD zezvi@8;?XH!3QB6hDy_#5P4UnBSsU7I7)yO$Ow(uV|86#FBqSuUA3-}mX6ef(FCnJ#}B7SBA=oPEl*&I=X=Y_9}NObdWL`Bp&F!iW4Po(5_Oq)@!~U9)1Z( zx$QcmS!Z-uM2ADkI24@9oe-p6s#?`Uc?-;11#aodosiWQhLvag-&&)G|E8 z*$9FvMV-74Ora%3vOga(nN!P3u;n<~)=0>k8Zsp8Hf&n4s;w-YwoTKZ65Rlg@8i7E z+S=OC+{WCC_XoJojR#l8!4u+i;ZHAP>s8VS|2TyMa3n>6{Sep$^D&$s`&D)TQ_movbMCWw)A{;-OySryf8Io zMW`f;B-zbqS)-#ivzgO6jXIH^bgJ7sz0BGmQaQn_Bu-}rTG40VIC+)6TM{Lm&ZjEZ z3C>`U)81)sZ+`$#J^IdN>Uf+D2!iLa*J5#qqGYf*EJ0s1>oE(1Ze)J}@PBTXdvwr| zP09)c%&h)0BR3RT3lUFKMe*HE5!0iVEEQ){g*-T2I2A{aeL^1DOc(rAR%u+Froc=T zlS;V}tcb_=kM?(W=3cBk8+yf5EhsU1M%s=ik=51Jc$OZ4B>irw1bY%>)&l;Ogy*6- zt$0Yqsr}uJ*`?*}E_THdkEHDFE#q!t%kPS6n=f6$c_emzs<3Q;153!&o0@Ljy3v3m zXcy|*rsqR}sVSGqHfWbDqGb1gS=l{<5dR4(-r-y2-yCdA%7t8scRm+6hnny1(Djp9 zk@TY=@uHyfXv@{S=KCELqJD>e*}X;$?3@FADcY^ z6L)mt85|rPb=yWq2SeF3Hd_zn)$Hiw^vQ8yUZ2|JA(Y2XkSSr)BTCLO!$=@&>!syG zacLY|XK59y0Rj~1Y=N39v5HCV&@||31bfcM$u}4>=jUF%ANuoKic-)1@C1+54vnD< z=laf0e0>$Lz{db9|18@kuNtFa3oz77Hj&B3V)ABOawnJDTVBT7z5r1B2&s8)lSpu7 zLs?l#SuI<$lCxi0sjsU#U((#vbotgdUo-$EtgHdDo1O)#4W zfp$A3NSA!le(qqB)th`gBvnSOL2ck6)9u8iH-bus@n=vhZ*A@D)pnHgtB=*1JAVPI zdbw!Q36G--Q=UNB11`{R#K|?g)0c=!LieCfcarzmMhDRYjt<&G@E*dWD$i<$AO-%Y z6q8t+BSLq)4q2Q+z?g`j%-$1hri|f)Kv7vWLl0sB3b(-DB$Jg}R)=y@mxR=M zd!%h(c6)nZV1w#Y@%h=2&c>S0@q}na#b@%GRq1)QQhy%eS7}AVwWg-qH<}yRBG*B|+@*7H zaL^M9xJTV)bMzR36|!xnlK(;JN#Sh+f{JEYAhDwTUsje#k>Wb#F*F0sut_WBiVS<> z(ySV&)GSVGfHJ4R%#orNu=h z6_pj&n!dPNTMZd<3m`Qx|JXA%1u@=cv)Kb4i2Xn=1knhdaFFB7q9NpY90a%kB?ksE zK-1^YiRvp?G+G_s*r+kc!3v@lr+PZqSku{W--?1y6?j2EJPh>DC@i>4Za3rs92bHw z(%p)|KJB@tD&sBkt3Yt>064VI?btXw$F$VZWs z!Ym5^WD11}`j5)Ot}?&$tGo(l_97u_-NuuV*iJS%G4$d^F2BvRqQ{3w7i47_i6A>` z84JxYsDSFR>6gMm;B=CAi*sA_U6K$gNPcl*Pp1m4POjR$ zlRo%0fQrgZoH67R1hwW$`?pwJZ|~PJW`VlWtp~ZWyLTp6R|5-EE>0^Nt$IBbl;Dfo z27TQsX=@cYgwY(p<~?Ksf=&wh?3|E14&$fT!pN$!g=29kWw(O8umH+P0qaerQnK)0 zG{NRi$fVM;CCPQAw7j^eyksYJ#sOj#3D0?enH*EU5U57v$DvmQ6}u9*GWNF>5+dGy zHjT1$xdRASF(!VRWcDkUg5ycK@Kg|eOt8k+(biTp8nDAd>Yno0rEc+_*SVHI_}e*V zQ~;Ii18Fa$wir_0hDsC}uB^sBao5P&dNdjywff!kW`bt|E-nJ2b~r`5lk0$|C+Kl_ zfe^A1uE)c3zUKiWr`Blde{bM5o#VX)qvF9I_S_wsSYLg zLEyabV4&OxV&^skZxn(38-+jsnZ@Yfs0TS!_RO+os<4Pb`BjR}YLkfNVMcjo6DjIc zopE_*ekhb`6`%tKPxH5 z`{kFK$*wA^tFRl{HL$)K3S*0Q3P*|t2W@scK_y~K#IEDA`>P?JV+a4zhY+rCa6KbSjwTAl)AVT>^-MvP zc|SQ=Aqb2$6uQ8SV}n_-X)x-KB;%2%KfZX27hLFC$ll(w@v&#@9K|wib8PJGu>V2s z5>vBTzDUd-2pTYuU-+ju-h#h&Ah0X9NXdbij%)DCZ5g)m#}?bEko6eOO2Ni zsTwS7bd7B6#Njaq0thcRJoxY>>}Xe#b@6pk|xRuG|5q|=>F{~Dh&AF@Fhd?(of z3RXsnC(p#HY*N{3OUBvW+{DwNxs~N-bFIuNGGV2gmbf02n49E))u4E)y3Kx zwug-ih)FQ2QAEmRGP$w*4J^>%bQ*Cw(<5|<-jENT1+uD9^ngZDT=mgU#V^vuyU#Y}R9m;v@3Q(N`sEW(Z60U+yPe7^_5eW~laW(RuL@+Td*iIB@( zuc~aQZ0qd(R$Z=Am6sc^5296bCbLiS0iP6foan?P0KSlW!EdsfItVI<jjhC3w{b#+B0c+pyJBJBq#cl+n1TpG59+0>#yy#{oo}s|gVlwrVTlhdFvV}q;-8PLzlWA-Pq@!3m zoAS$04Vpco7_q4C-@Q;>AsZE2yS_jxjLnxW{qgo?)Dfw>zO=Nw7LP|m2*i}%?YEkQ zQ5@8Bo9rH=WaKRli{vq?92m+x2$pS-c|pO)ehip&>ej~TrGbfT2;OqOZ*Q-yrlztE z!rx@;mv?&AhI^7$eNU_6o_is$4g_o{O)cGX=s3h`VbcX35EZikt00&znH4+&i9?+A zVWVRoWkXV`xAGYYWvV~=Z!r3mfu&i=R31HISTL8juRtaD=YasO#*qw09z@pX@4wh) zH?8(aAr%E35wPt&Mc;OBm#~UN*#d*SV?_UESwfLb#Hg8tIXL{+sMYPp1{yZf(^7 zP7bZeaeV8QD|k>wtu@;Nk4a6OQ*pM1Da@-l0ibd`4|;rqgMobBZ1&*ABXTG-K%1fu zaUrS~spmHq^%bVg3X$Ul)yu^Ri)>2R6+%IEVq(h1Dq&AXMiD@!s& zr%)Zp4H3NQ%oI6ycM&Ws$VbT?CrKVz9=c~!ov6Kz0AjEv?*}$zGmipRlAzKKv{hB& zj)LGKR*_05voBO#4CVGvf!XCV5No67Dsh&QRtsUvSKjAI^?G?=(gPIdXHGFTl)2T6Vyt-Ab zwSy_DI4wfOaoA%~=@6>P@+ zZJi9eXvG+M`s|!k)?**U_~ORRXA_lu>^@P|-`7%EQF@*^z&bXzR8oBL=KF)sOYk7r z`}|nf#(aD|7?jzc-)1tK5h|n>HUWsF2n5gqQ2EI05GzD+6dwknf52e^gMv|erE_^{ zpdTCeU{Dt)S8izaqRjVaPcNPPlT`rpw&MRDnjRi))7$kCZt zRp1)($4^i4`DYZ70H?j&+1EktK*0)mMh-7LudmOq$7s<2v0~zlxZX%ZYYeRHDiy)q zZZHb7*@!&N9tay%hCZAJq?J+`sq>|!MVGI=djADNb@^6L%gB6W6_H|4xor?_%!6h# z#JfSkZWIO4=x`eCMudv8u0TLAL9B9n%sM*@T1Y^Q+SdBd9lP20Z+6$&*T9;QAupnv;P>J>6>X{F(tJZn|#7K8#>JemIS4OkVs z;c{?lQvgyvPomKz9Zf6)4Q*rXm))cN7*56|*{D5=8GeY8m>M0hhb$|ElY8*IBm0A( zjM*@tr8D$)qBabel{{T>9#;x3-hT28-fp{g`D$h3zw0m?~53?$S${t391Z@CJ5%|ZH-x@G$)vfK*OG|wSmDqoO;(p&izt*Dp{U2Jt z1Oo@4z^Fv{<7is{qrS1daVY<;6~~=)M!c1Ya~QxXq;83KN}{e?K&U*}2RSA^IXOfD zKR?Rn2`a^Ka59rk+Wo&!QVLCHpi(lZGgft!{1sGy=8u0s8BSt;xqpR9<{HG@@u$nr zmJjlI9AZr3-eutro}qELD4XU8I-S6BZL|-FI6>~?2HO}k^j>eNx=>wU>a>`6`Bk1y z@m;-qwW0m~JhDIZe+ZRJz%vH|bw2D85DE#Ndr|UmDkE9llnXE-Ix)qdvND%w)AO3v z_T^cosi_4}dixEMPu+Xx_x%p5O%T5YALta-cY0ejC{0&CK0SV412n`e8U=t+>;_{N zd8g=Gd~qF56e7JmG1I6GyZ%D|HHpOj`t z@)M}i*-u{p)zi6GD=UmmoMLq#yT1dLTy5hb4r;XTJ)551&Y!H$Cy$R9R4ie~DeeT8 zm+{$%L7oa$gwANtZ1;e1xRGpk3tEU)RTmC&bxHvcJ0M_Hw-Bo4tIZ8V6T#IG7EYP} z1E@G{BnlD3PTwT(fsh1umx}>6%ddg1fh&a1793lFu-m%1fJkk+^`b^Iw9&6q%76x* zAJmm=dNutHEK3ICVO)nUMz|;;ic-msarWf+tT!N|O2_CBx8wvW z0g+?MWa2!51s9NZw+R@#O5N91Rl4&2!ublN1%fw^if}8g7NDvb>JP5229Y03O##if z!rK+h=dmA!dpqEsM9~0Gy2=-3P%Zl1?oIm0Bs$yy+tj8T6(=^QOuBD1nzeo{R{)FG zslGkg1;@t$>(JVb!a@g!`&fpFjc4uk^-WFnnlH7Sy7fxyV@J7Glmem_yy2G9fj^3p zFAzRHPP1v|5Ar4mYDHlC9`#`|@}39DHDYmHsn@1|jn%*WRGu)CAvtY=5ZRz_RC~g0 zE8I98+h#@e0*fH#PJVBec13X$2f>;~>EMlL+ecJOmxm27xsbz;7rx4C?;g^>tou2J_uIE}lO! z7z{ilOwK@uX`$R?saintlVq)h%$25HEaP4gT=MJ0BsaPK|wGE0dkAb zVH3-7D}*PgP!C{ysJ?zE61E8)`UMkb(5h9UMXRP+&|oOE1rgDYhf53VJJhvjlf__E zF}$P9CS%AIBKsh_!FBh{zmzWi#r-KzrPId+sL~7{CKgN|#@3&{c>ClODmoOxZjo&> zskm9767aW~MdO+VsK)O8^lbMNsMv0IGMSFUAKYt4{^zlygeA~3+ak_@gI^jQg=bq+ zSyWc>SxE_LX`U-7t1T*SzIOTY#cP*~YUHU#A9M{r5!v+kS&V3ojhP z>DaN#{#2Evs?(q4*0k5#KYHjV zs0OvVj^6Qxk_tSLT}DVX7ZqQ=db#-8#mhxEd#dW%=eJgae*vgCAprhPpaO-{$#L3l z!3j`_qS48##I56m+b_3RfKdSBb9Z>QtnLLDM8zrVg3F2v@_x6`^6i6({yTT>^!94h ztr|^hYpYsBWBS&CG(&|*>G~&nCjhH{{!XjrOSOu_QXsA>08~8k7{_zF7!E_8=h~z$ z{L#s=3>0fLFbRqn?g+AORz}wL_&|jwn!)=uQ1n>iNQxq4TQI6KP~op+vT3>cPXA-{ z&C~a9pNv17Re+)rJJ!^f6lp8^2w0 zbZ@%-xPATIu-jwQstuD96A`>!-wzp6|D*%{%lstxw{jJy5P8GI+PtBAQuF(vUS2eE zoX#m)B!|}Wz-h4<0XhMGYxJ&2?V@<3i=1DS?pD(-JDaPZnc9!+s3H@pz+XSgpPY$L ziBov72SFXA*eO(*Q>bL6;N&M5$KJeu`)X`@mSL68v-8dnq-Md6fbq>PqyHNpQx1JB z;}8>G#rSZlBAv=8`&W3L+2IHn1-mV65LemD0c+yIIQl|VHwpJfD9NlEG!NjW|FPS3Q$>X zz$C(9>wvB9GRUOZu1AWlYNzD! zXVe>$hiOS)PBtic_$3xU%PG)=PN7P&V3j$|&EN~XS$m7o3h4tuwT$=Ekxzg@5mb;{ zO+$qGX>1Jsou1u3z+>o#A3iFwcXG6%XUr*4^GAZr3UbngMOg>TJ?gRw*rEMhFw&c>)OP8CQYl|zYtNQL3z^I(KPo?9;V8~~uN-tvN2v}IZN))4^0CRxU zz67g+Smg{9imYX22EC!7Kw&JQTR6jZ{rDG&tp$JYM5o@ z9V$7$O|fkZyhxr-GYw+g{*Wu`)H+fYwhQj>)B)1qMWIoWmdRr>_U6^w7h_|j49r5* zG|8GS6H=t?ygYvQd-)pQ^2Q$czwECxi4(*tV#$!?d+dDfqYmxD!W8NbJVIRozuRWQ zW58F6u3{R+penw4>Cz>tDm6FMR#ey3b*08A8wv-2N%}lyLB;WSP2B=W z8MThBz$jaQccbit2{BXI!+QUse|XVkvI*RjAM$4|lt1jyoAezV_6&i=djz8d*p!#c zo)1vb>KI`C{gPMo-ZR|0cMs`=3LpyMa}luH1i>eXxMr;DP+4$$2E{d_>0`RGi$|`H z>2?H79^>^5I$1z35>w1jD^{_hG&@CbR%7@KRMc4dWMosuui!xes`u~Tz8D%KCrI88 z1JpQL)i~N0U3;eMa^HXd)AaH$2dMs%PN&Zx6{QOb@bY4Y>BA(*gY%L8#fNyu8Z{tH zf&hQp{{Tw@YzQiZ=>1zts;)NRPC-@6{d>OTNfeOc$}QOG9W;9az}$hTt$HmyxK{8* zTVZ(Lrxqdp`5CL2a@ka2d&lPDu-~fpJhr(P05H92bHQZQ>pRLhquyqB4eRxsnxR zrfyDE{vVgGHX~MLs4#NrQuD#VrQ)ksiyA76a0syFzW4c2KBg4~m1;5+2)Ny5J3^&W z1y{lSX)Sgz4KOMo4#4&hDI1V$0H%D)X2Kyqy(ym$Y`XNOQ4av7w+VXA1kcRRQ>gN+ z(yD%=k|#O)kJkDI1}6FqI%;Z7cpv*htE-`{txyGxTY_CXq#iyQSN3$B>MT)b22_AbhLAe!B&Wb+ z3=+v)?(N$bFJ29eO%qh)@x~Pi?&&3@et^{90IIR^ZQ1>yV^;LxNs1kJ5Msdpd_WA$ zst(kzr0X>dD(ly#Zk_tKzq{OggF#hRTZ>iN=91#(OT}PR4XBHCKNxbXTJ}#wmHJKu ztMdX*>X}vAtso>-qGW;41z8SY1U}XOHTXY0e2z^}ZF$^&G%6u`;s#3Lu~~n1!Oyg) zezh>QxViXpQLo}COyNsCk&u=D<;93Wt|l)Z9RPfBoMg8lc8zlQp7YV8W3RkG1?TKtsQ&z%K@quW)igBuh`TF z6dXdaee_XU6zvFyJq!4Lx=x|e>B_zKAVo5s=dcr|S7`=2OQ0ReorcXV_} zm1E5M3MD`k6GB$Oi=sue<2+?x0di4z(g~`EF4x!a4wV0{xEUN^EkSh-p(+96D!x=( zQd^6<7A^NDgI=d(Fs-rW-J>IXPOw3xtXa}594RG0=7ZvW0dRuAy6|8FyV_7{%1d!n%?9NTZb22i^HUR?}7kk?J&7fT;0`CUS8h8@tXGbzP^D@cBkyV z3{}@iZ$I)4PG`1_2Dt7JxIIzY@&V(NxO*hYicm>xc?q}EqA}E=I$@)MtU{ZSHRaMI zSVbc002rlI^0;eS305)&Z2Lp*chK&l0#!DtlxYja4!Td4i1_o;xGkq_iD@m#vK1AbSsIK3zeY&V7yqi(kg)!byLAgwC@ zk79tSwzjs6l`G(fl2-?J@yb;7=RMUmK-MRn4j><@&ia}^08|0npl{S{?kJan;E*i1 zVD0mGY__Q>@NSe^Elhy}9CY}?`YCXLuCJ|_TrK)vvYWBEo~YN4E&$_Lbd{I?2J$n$ zy%CT2bkR+@*#UyeFf!8BHvwh^+`Yp*YKEkWb4t#C1|$)?TNW=0qe*tB(ITfpNGw7L zHU~r^3B)imY|0jA88S&!$&N)CR5E4Au=&YCZ$n-vD7>iZ@h`1KMd^pWTMfms`|sZq zSg&573!H@nYne(HE8l|)l##j%S@6p89v$3a>`^W%kt#k4eTF0>JbR)MsCqshhOFn* zs;nlV140$JJTfY*0iMIdVs8(6iYu#I>T>zJ?L*T$lM+|1*7S82H4VkLz^ZUw2^h9F z2rS(wiIOwuvzu&FRxF_-RGXLx52}n|y~*VA>%ou^DpY%U^!L}_4f`Ly)OU2)QK6gr z&2J#1;yW7~>)PbY!iW{{3f?d~($aq4(4oT;piksDK?OO-YS<${R%PdSfC`C)UC@Q% zPoG9&a@mh|NR{VRZr3Lu^@=3Y%=B=~lInws6Jx2>C;m?fRk*GTP@Rs!P%-_}`e8a6 ziUFnD-+zNpFfT%~F6sxP{IKeh#l z6$C2qhtF3n4kMbC!wWf^Dd5I$Hblzr#xF+7Y~adh4$a5U$bo!qA%pB$lTCF$e z0Aj)MqR#NJGfA9pE#In3&FvghQPYf<_fP1@f8ZKjm2Op`A9~n1+XTmFjRXH4( z0DEwh#RkNgJRm?dh*ov^67zj>y|(PXYKw}%DOS`#ke^*!TVFNnRO-g6nxe}+Ysqk6 z(`Ew#r{Y$d{~S`Us#}^nb0_ ztBghti8>(AKRbelYTNMS2z!leO!N+nT(7HazbAC4I9_`%=;gFdA1()>m1ZMwe*@79-Qd`>S;(shDxef}i=Ke`{%>O|dpi*Z6)9O129{Fj z|Dqy}XGvIa#nXkjAUY*m6)tsfmy6^^Xow;yglmn zO2DsY_n(0U?0K26e@?*y^$d_78twR>-89s+xM>2`S8flWQJFA?`CktE9|2N-{X5>$ z`MTq4001YSe$&Bm+Fm>>j0)9?iey{Y((J%&SKEc+_I?R?g)_Ld1?+EYRSPi__`Anw z4`@$LfLKVp(I~3sPmZW*0m&6OzZ5&~l8Cas`m}6USfZ7^9AI@6$GdK6xgf#z>Hm!f zWQrn%E->wM=oz5DV7wOh*AH?5QJEte}7#5UBb?DpvrpyLj~yo+y=HpP}$`anUyiud2I7<{zvA zB09*E+lz~CzJ0&*&j1P$V5HJw+e*@cYXzimIvIDV-B|teZvsDeca#Ui*3Busf6DI~ zUR-?r2-U~v1c9rg!-PdYAb&t9w0tK!epPo0)%B6trKPUA%F3QQysiWLA5IH!BZG=p zi9VGefr}7NPFCSJmOO%}ev{AB4qzg-pZvq=~hf44U`?@)!SENiUY*V3OGA6s=Gg}i~*~N z%TGaJ4DkPB?tPq_IIq3&zai;(FbtR6>8*xNL!j=2kU%z`Aa7pGc9y*emQAo6BrI(S ze1*zNS(reSDs`7DDKANiBH`res4 z^Uj@l7i`PY>W81to}bS-pTnFdp!Ts%k^GKZ1$32V=o%*%kS_D{0x4-|V9R!~1@bRE zR`FjjgLeDNFYh@`zF59m%$sUhCiidC>uYOw>JHiyNNti)kLZd_t{5n|Q4N*Kp|&tO znVpyjWim-gD!TM$p&6zR=7C3_{BJ-tPCi9&Lm(`ZM}fw;V`s!TVs!Dp`l_b{-^D<{ zXMgt6@e^dEq<~T^7Y!pKnOdnV%hkB;TGF|-$7zjx!1&0>+G8=xsP7b;Fw@D8LBfAO7$K z7iv=Ui`3F3h!i=1m(E_j`wz5hV{jAKCJLzFt+yL>%ZS7yW}L~kQC&No%w%RDRf%Xc zB;m3i*z){#^45RyFYH(R>%TsOF5s76eCfkaPncDbDgs&y5LAc1xl5*MGC?j_WchL0 zh*(-AJz}N}jl#AHGEOO-prXJjGl`cjy3r_kemv`q$^JfhdwhIid^D7xXi7>+0hRo` z5kksiWM%UAR~V~TUV9f%{rrW4pB^6>Q5Cyh&MSr-C~8J2BBh7ot}7dBkMl;sO2?Iv zS?0i5n607H;Nj}S6>lsH`4xVdZA)Zx+0knAwj&xbTE2R0a^b6U2+d zyqBDdDK4vDZ8VI5=8uGqB?x)o* z$1L)vBbHNeEhm`(QpnU@&y0qm!GLDlVR>j5TC}%|5cpsJ6?^v2zx?k%-}}ay6UBPD zm^adz9N4>S)Be+>|3HB$P1V-cfWJw`Dn4S2# zIP)DL^}pYKJ2X0x86C|`>XKxt0d3^i@iWH{0w)NSe*h~UzQj|8Upx52;~KVGY)K~c z>4~-?(Zx|Tr2M(O2IU@)7r792q2{G2*azek`h44??r67sIpCB|v(rf3^xCLfO&==H zg!OE7taj41ZIM{=UaQq8Pu1W;GSxz3rS>P0wD|neA6fr>!AKEQP=N2e|NiGUFanV0 zb+?wiPHn;DfEci0r5vtCh>(VYqn=G-ryl#UE#aG3?yk^|PNbJg>d-3UlER zY_IJ7+vBRN+Thlgq_iO$`8>*+OiMD#BjmF`Xr=Qm&wpB2@LPeg1Z=6-9{Z7Mr*hWo z9q`SFIP*hD}fnKKJ9zZ{A!k6I7)B9xq39LMnp(db+F)1f#m1a$~XVWF?xw zuvmhs>cS(OnMp8IpS=BcFc7R{gCVepgrvX-0$=n?zUIl)bE1J9jB0|jpCF`fXVB*p zCa8?Ki5#F^)s$;j6w5NOpZj-+k1`^3u}_3?b^KUn{QtJiC+lw zlb>vP_64#Q@BX=3&BxPpMGp=9+rMr(`&F|7+Qb++C`2w|BlCn}QC$g#R+)Q-xyBTnAhoYg#VnvRntz0IsVd%_jFFgw>dJZ#6n2?njPJZ?r z&;5Z^u?c(a4J4Y3f+?9*TZu?^p?L20{RkKK)QAoP<`L2wdJjQ zE`TAQ;`8snx%n+2wJL&Z@lpJ=3P`J4Zj6y4s4TZKiB8~|nd{>d6NylOA|uO+>Ew57 z1Dkd{T00=1dghtupV`b%efq|4YSlQ8nHt*l^B=!>_S-7Ak|Zgtap*hKH*zJkVW;DT zNDLSzlfi5>nL^I4T1lW-eIhY8cb$X^{EH4jr7Nx*+_2%`8)AOU&z^gwL&Jbd?9QCj z*H{sfaDRG+{Fb6Ar#~jwLb8kb^6a(WMl^a)ioDUos7vxP^3tsiZx0BvL|)x*)>-j7 zw}F+Hig*AE@0U_^j|G962#eQEFA#=J%r?Lj5K*Ki5`h@=Gy6XLitoSw3%ABWu7po< znvQ#GYqu95Q{p1vPa=})qQ$b&j_KhrL51ot^uc8kr2Hn%!-2wL5dk65sT?) zJx!)k(O`t)szkOjH$E|kx|>Xbo|~P^1_JRi5=sYOdxd-NP`<$&$C&i}}0p44C^u^bL5do!| zysLQQ>wAy?QCoiC(f9a0VVzB2a!bn5m}6-M#(qWgWHJFt(M$$2$df@yD_3%{R7wsI zRO|qHP;J@r^2@t_@#?3aetPp(K3^;pTsuDa!VA03-mQb6iF9BkH$4rpBAh4?HXZO1Fy%fchGpUQ&zaKX zQxF$|51E||GFRuymSRoiWmQt`V!12_jDnFaxjHCglCpqmerahPQeHJJPq|tVlydWp z4ry(RW8!6>jjZPBK=h(Dd8A&?V)k-}De|LDXH`(#}8uvUU1-rwflQ74KPL{5o8~ zpOHR%^_6#zpD60!NFyI#jnu1UH9$JIShtcCB;;bjfcl`eFu#tujC3HH3OZfUUh$Y; zVgW}&P)MLx-amZdTCWvr&CY%mKPZN{Ei8z#0;KZWYBsphHu{4ngk_)z2ArYbIN*dhs z{J!lTQrj>5f15XN-uLfs+`D5GKmNEno zKK+9JF;uTShvxrR-}v-Ik?@z}Lt$BuPy}HF3=mrw6*PuN<$zwUQCvIU@P=^vXsz7$ zI!irK;;j;K)9;ab@FY|VJ-W~%XI$>t1o5aV{5H87Cp=p1Ramc!?*pqZx#3hm^@V`y z#@$6=Bu8j$Nw zG8di1bwU1Suu`vZn?YtWOK%y_j>A^{o8Wii(ZoWkUg7-T7oQ^AL_ybcV(u*kLe{kWw zwQsiHc(nG9d^%k$GGlN`l?ae2*9FN4rX3v&i8JM zo6vu?2am-t-`bOOSWGwO(T<6PJZsZdyLRz?q-#I>5Ke{YF#YJ0HPuv6%TqMbTqJS!3)GJVhxg4O92Y0=={bhn`^OongKl3l! z_wU>H=G8kNpR?oTih~~clq|>Nzq1_j_vdELCo;@bqU#E&Kw7$j5wY#Kkv0o1c`xYW za+7*MM`}ZkrDCCIHX5=(x}Attk{R;fLnKzidl@Podn$UyfBqb1N0U!M2ZoZpA=2zf z51zgEIGvNFv>lLSE#Ih;(TXGY7%?fTl7q5h7z@qT%F_Hg1?blTt$6*~0HRi&Z#Mi* zjFzVd835mSd2p<)J@(__Cz;E<@vto~YHo=n#>(u)KYjE4m!ExquLIQ&NUfhf{r=T& z0o8-$2b>l`x}#AmmuKhaMfoqBim2t-aM55&FcXp4sdCBDge;ZnS?twjC!;8v7~1>n zGtYyu3{>89?A!O!*;~KO7j$wGxwj`sj@ML#nadLA6WKX(OLSQwofjwH0Fngtc?crH2pamwc!?vkcKs z#x4K=AOJ~3K~&p3&8zLzQ3xm+O`ib4e#F0))V`Sy&>?j*R#kbr`3HX zCqmln0N%K9@6jKBcyv!RnSTAn*MIr?#`kyp25=rYJzEBk7JglAd*ieksay(U1`I}u zJM3MQoTn)4Ro#SuYBU6?QipeK+42+ke_IHu_y2VG^-I_0i+MS{m_xBxG$5Ipmd-aw z#-fRA62;7<{owxLpThxx7NICu3@!loVjy5!k`xO_=xvlDZHf%C6-!S}&dgnZdz4h* zAjW<_$D@8;@ptMuPx0=VP9vqi|gfPy|0c6>=m6}Mrh7gcxQE<3M(jl^)Ela z^p_7m{K2O$1v`4xNC9$k3n>h1aBh~%KbEt}N?Dp`keo%cY<@Pts~pvMsc zM+h({LS8#k79_qA3}GY>FeXU_C7?u5=2A*aT5-OT%2DKyM3gl?I!e}RFQD=!NWbP~ zlNhRZkMAX%IvVh~Ov?7)?^c|}sCYB}%3R5@T8`ZTkvKYVz< z_vm!odf_k~KKZ=ZWAaMYMZJrVnstSn>ugm^RN;1{sat0YE>$vB-+cDLr4P^k@oN^U zM?ZY^^%q}!^|!y>p_ppbqdi-0T`7CB{1$2=z#_LIsp^htpsfa(Z>v(t#gfTb(h151 zLz$bHnarVUEh%$Vk__a;_3`m>!V1QUQ|lP1 zMUb31^X?ge)xlk#e(}a@Z+yYOz4F55EoWydZZs(61A(w=6zjH3{-t3m(ok)_=%AG( zuj>;~dX1$n7sP$RyxGOfYqMWj_616`zBOAt%f8&LU-xz5`VM=M7i{&&6+3jERDJ%z zrAwG<$$j?RQ~%Wur2bY#NWcwRwGIzz(@*xgvYrE5i-FvDp;Y0j*k~-Nsuf30y98A> zlps$|)lE_$+TLfkkVtLYwr}Ul`}hCq=AB|brkZ&`l_Yx>mW^_~fYD#zLN^QSeI7>8H*)#(s!hWl&VWn zEM{6~Nt1=uU{D==mYfPY_U+ua|IHg1=%WXvcpVBb3g^Hqnh_oJoQ`fNnqtM{@rZ-* zuRQn4FW$UbrJzBQT5As^*{G-U0Vz_CD~gnF zPo-TFs&nV$^M9S|!KgI@u^6kLIFIHtpYQH@BcjM_khth{ut%}FV6d|MW2MbKrCuTSqA zLUGxK4adHI_mvlTPTiR^Op1U?^%KVrzV^o6mtJ}8heuz3`o=4-zV^biFPy&mQN5BQ z|EKYf-;!flEvEyLT|~n}x>+yEBx1!#@ciHZx-O!60=M;0d6`_l2)g^z2dnArgz)Wk zgC;t5%Jb+zN=xT9R%+MoJ^Fs_(FZ)c;GQ5Z`}&7RcW>32-HeE!&RAw@&Dq*2pqg)3 zNsN%fGzc?qG8F;^_JkD0#C0o4uH4)VGZ#?Uo3d1$0?v4ZU`j?~5j_^=iKB2ZbX6&oP#%gdd?jBm611t9 zW$Ew}9V6n-WzZ`U3dkg|8{k&F!bKEkj$?1qHd8TGRYuOd`tIJB-u;5(U@~IQZT`jC zk7ldW*&eiMHx@}MxrfLV@`1Ii3 zFMOz8C8)k#dt9LF!HLnU8su44i<*RfNm(*U7EQ8(N+>k(*T2r(=c3vt&aJtF_&&aLGK ztB(Ox&!ytGo``aRDrPKOpw$84D;(%TfdG+7yvUEk6a%jM0?~*=hD@a>_^r2&jg0*I zqieN#g{-(N6^g|Moi;v^rNuRAG4m!!VHE6nu?J50c|7f=b6@b~UYFcC%qD zl4LrO7&nV!3nrRns3sB#Np?z=K;Ym(Lgk~6^Z9dAi;a4{9!JHktY~MBA3V;9zdp+J5tTV z-^5fimdNF0Qsst7)smx5LWRp(m-SMK8{*u#Ij&De^%5ySg38c_Ml@xlSge!ZR)OLQ zm-6$Ab2Ag;6NykzFBHq^v}KuLRW=MOPBI!IRi-DM6y}NMQn5%ZV#Xm1=?7!J`-DEW7WL-U|f;yp4GGtA)z@>jKU(`$`9h~^?uYZMO(c*zS9jLnVxP9({ z_ByOk>mbrg><>13YHU3RaJkvr3g?nxQx#?lO(l}PBS8p#*IGNCFm`4s86#$JC7op;vGz5@vF-38*6cU=Fx!(x#xLSgV(1#jq?;|D}xl z(%i)8Xec@vRnhnxHxyl=2+2yLst|ny35*vZ7{EBJlFJgN0LsXhAyi@#ZGrQS7`H+? z*U3(!LNF1EV!ILLoG#(yp@dTD>ob$nZY2~X!8&nVr2k&nwQJYaCPfSsBGLz)BNa{_ zU)Z*hU&QU-Ub~goOd}W!o&V(eCvzAx)?Vq1p1t4Igg#V0jV=3v{zA7}-OZ3EyG(nt z6+Iq@Z?8P@BB(9_DxTs3CP45CWA~q;-_?%l>x^dtIboyLMz^w)av)a(k4*+xCyR}` zbyXwZESvP`FtJ6*^9&{?NIoK(Y?sS*T_W*_C6l3)6LA}J=LxE8Rwj>&Y>)=tb0rT& z=uA(tQ-T4Nbj7D~x*CgN)*BqZLfW#~QaVgWLZNpm38->B-2gs*GMR`*Ga1ltPN1IY zItJJSEBGB*@>{gyuf6)p-n}n@7xiYHF0Pyv%Ytw^8VE{(u!SK>Xp-CTVD0XRB1iOK zaFhb;2?V{kURQiNoPP?m)_d$8DS}r?#y6JN>%irn!RX69dyA|pTfSRCP+k4(OV)p= zEJJne-|oRrC#S*_DxW%SWyLF|0(V8TS&lK0dPIe(N}G|e8Zkyp&75*6y79Ob87g)z zGML9=B`wUn49a2CEG2ak1l^jRI3J2;NdE=odRik(q!{Tqka9f-ax#iBl_WLvgqRAi zAYLtE90~1#5eJ$OtR&Ebz*P^0$gvMbF$Mv}9@o(!@`=C-$HWYIoYJx51l14s z&Yu0%Tes>iwg9;0C>xb@@^S1yKm}g%hHLkJGc3i+DP00q=l^qQ9+ObG7W_VjCixXX z|LnGR11$koTR_#@58|~QbZLhFsjKAtChr;oiNwJf`%)gOwFO zW$dZIC9g_x1+|OC7{^qYd}M-^Qm5$D9w`*_WyGP36SNNFm5GL;IlAbxlO!n^fQBRH4swW+D*{#^$md45O)03P>oPbxCQ(D%0nK*{mM2 zl{7?ex)Kj%Fs?E6vvGJWCT6$A{{E7peQ+2sz&uYc2Uq zwjNT;JxHyi!+Ic$Q*&W`9LAMUvm{lYe{lNrAJ|jJ{EsRa@8DBB^gPdw7F_XW%it}` zF##3!KWN?35d$1;rec&URuc6QsQCYmkC{Z4e6#7wci+v;RVv@j1!b$=SXx{pF{s@C zZYDD~8AF1iY@2!V*6QWOa@nmcE{f;Qd^b5+5pw}6l~O4dmdmU4dZ~o}bO=vvxKPexiR_d8x7^Tf4$ zPXlT5-mc(vP(7Kn8!Azj-q|_3&jru| zu9a4bf)EsG8eGMUG1zG(PO7O&;xIjz&16O!SI6kMIM(?tZi?S=@XxWHJH5Nb|FQq$ z8UFXT-lDIb2i{tDp8qWG6)yU3z3vtN5ex=4AktGtZnfd7=UhE0MsJ1mNI^kkKKbg> ziGu@Y@6J=0C8;T0kH(TYW+_`~%=+bR6++X^#oWee&1AEG@JI=D!%iddDcaJ znds`D2b4j zu7@>>wt{kyzVr%rd$i{p9jnCh@?_3k%*||jP>M(gWoNz4x{#`#PLNg)R!zSqmjRod zy?2$|iud37;L=y$E-ci*7_xxE=XJDy9jL&k!L~|_5RFiLl-5w77fIVCiiVKl;jvOu zP+#r;e;TT%FMbyU6a#yAz13WFE$$2hr8MReXI(k4K?;-D4Gg~Z)p^+n2MQSy>*+yVD&WZEU(9^x!};Kh`})UtN&3Xn3_Ly1 z_upK_K03sW-e36negE}qh==;bdp+Gf&;O;b=OnuC;v855H}vm4_?zZp0g1-w0`4Pa)6Xg?`cbl3fEDD3A@J98F0 zVzrKBuGM<7Xr}4!ZOz{K_D`R^^A5cAukSV)Dj>DmY0UOq3m>YskSYY4V)p@~bkiV^ zFYqQv!6Bg3SfNmMR{I9lXkGf(#G*Yl);IRwfr?J*BTI6x|7rf&_w?AG^|;)%l-#|EC>cy(-;o;diUv5SMa4<`@yUmZI_h+U+MrcXTo+D$-(&5{lMyS`m} zTq=|(l!(sFQRFvA&U!GGA`}C7^uwD&0W|7Mn5{{Nsu5g`azl(k;<{+DI_>pkw>;Xx zPo8#}NIa~1trc2_ds#NSsXxCRi&>ef4AlppA+EZER)=|1zIZ-`;G*^=+b4jc_eI{E zz>38p7I>=CAh_XltwT|5jI3C}Eu{!5Eb;L71kfNY;BepY5iEWG*jPWV^uebG2M78G za97`vivv&hVGaAn))?2m;ivoiHV!=1KlaqqPdz>Mbl*mL=xQH;WKkU+BwPju#s&v2 zZWKuM-v-P#`<@yccxs?;a3f9~UZdCS-*~bAsewUyUjMN7{DF&OfGRr~CBYfIyH=Cz zcE!ymDy~IAVInv>8m)jxp&v;7HXy08VS@EmlH`C);Yo=+*p-J6mU$?_HqS4(FDM+l zY22l*^7Df#U#gnD2U^}bP_+bcf(KR0kCMq=-MVx0PoI78!8@1!@ab2W0$i;kFW;R{ z;LUzqYA^ZwG50a4l=C;3gj^_~qsFALmBO3?nyF%_&?A!ts0L|`$LPu)9H6xw?i;)K z^uSo(#lF5VsK$#=-yVK?@b-@eX%+i^bj=qQA$p$H9AFt3>lY6U@;dVgYyCeO>%Thq zql-uSuKDWkDS8$?c4Xtzc*Um%a5-#*+QhXo&^HXo`T6t_j?l^3{zyYG#ST^s0yYGBwCm9dTZ#;9HGBLVWD>Z6||r1bp$r^Y%q>GlALNb4k11H1NK{dKVt z)~n5G-YJ(#i;o|mX(*A%%&mB3FKwPTjI;-&!A#$l3$e#l5)-;ur}{m@(jD!Qt%p7dM)ATNAhFI3m~xBkATXrZ4TV->gY z$dT{I`h2J^cA$FNhw2EPG;o{VW1#;j@eo1vR3E(qDdMLHsy+{@!QrvH0|ZqnN>Isa zebKfNWRqI2OixaPMlpXnCItp|?fTW7x@#Dvdb2rY7t8emrrYPHCo|{AmwdmEf?-Ud zSX%NehBxH}x7wYqxVAUGwCkh$DLz3&*W&?-zK>;5H|XoXWs)jD1)=)tR*fm&Yt3HL z=Z6m;GEDeRw;!^T!>QOrlmZclpdxq-aBRlK7E;=D3KdJXDmhYs8=qdg`V;{)Fx+>M zBy8+v-yq@APdBgi_1_~vo*ITZdU|Z2pX`tT3#zaGDm2=UNL$iN^nK6zjU5wGWJ2H` z4UiTisT|(;w5I?!K7y-A_xAzb{v(h@yga#$_Xhj=ene_?c))u;$roKJm0UEN3rcde zp8p*(h)!~DZhB&LG?R=5Wi>E(aPQu$O=O0vjaE5dG_5Mm3FRgy$KM{G;h?wO?s7La z8tn4<<9HZ5fmMeoVY$=$+c}m++io`m?rO`{y2_d69YFOt2%m2;Qu82kYPEZO&W8-x z!}}ei<|lZ@JX45*#vaWDOa+3y5c*CIdot=ksz_4kvhK&leq`Y3{-^r~jtoK?ND&TP zBl|S~!GSx`H$2uS+zMK9h!cP7Egswmqr*t`T^l&k?>&D&c=7$i!_cwAM~?L4 z+yRzO@i5;>z6)MRJRkR7tYCaea6>>EnJP~?)6==Ei_Npq&}cFkm8GHKgCE^#fZZvb zFPn-c$pzP$o=avXXU4}z#~UEq^T2A0Arni2Ye{TlEqT^ssf7$+7ph*T!Y_~MB}3>j zZ0p(#7H-}IQm5bf!xw*BV4>o6;a;eOaQWJgJ_I&(Gh*0lEQW262%$wX#Z6Ysh~TD@ zPDFqBKNte{U3{wd#ryxe0bB2J(Y1295QVxMq-uN0a;A9_Y9<>Ujpb4mSqVtLo^2Gv zC?5c!zO*5LMn7+aU?wr)4{hm2z+zImml0&XtTwicMCWPG@~_`oY_thT2%=Gqe_t?Ppt9o}F6Yrj#YWjTKTs_t`R;}iGTh%j+v5ON_VGU4y2Kwi(mumoOe!f~RP8Eyg`QGki zF=6XJ3CsI)qsavCKJf%)1iL6iNkgj4v{k^g2#b&+yjEd0{-=)q|NED?YUu?xs>=Zk zZEh?we|L(Z3I-yUCP~G7)yB{R+0;m?j6gt-3aDnVA2*SytScjHafe_-u)&CyX>O70 zq2UzCyyYjh4!KmhC$8!YqwNM*Ovq1Aeg63+3V^?5q!_C5>}F&K5A_uk3a2qoSJfjCl@PR2<<(Ygx%rs>V~qL=>Gsuj`|;}1 z{OTI1hWQn`Y}T0DYqhcZUmcCvR%4c2x9E=82xzS)~ZX%cohN7}+RrF*u84CqtVh}nXn1PCZVko3kNRE+} z2!l>$Z7nY=X1|$2UlzTMC42Bi}4aMyV33M5W;Q^D}cD zsHT^?m9)a6m}g$MF4>Yl(q&mV>P(N|vt%v%riw$}UZ~br9(h&oY|I60+OP2XsY}bUV;|*<@7JV^~UxMYzDiK|DojLNl~*SToWk6Vs|yTCjp` zXrvK?QY0ejF*TKvgRYATbRzMzu7c37O6hWMhqXk3X^8t#DcJIM$hgu9sxacPlzIvTd(VfA!9t zZ?E1Uq59jcc}@VEY}Sznx@Aeb%}DVQRqC#Umrpj3eON9wOif4J+oa}_t68NEJ(0xWOd zZMMFG*;bH(`HnZV;+t((@OF_(g@g(m8*x)96tsY1mrI&zDAiK1;)d-4 zpo-;!A(uXjvuFoo6Jr_a(yGq37b}&DgBj5iLg&vbxfflEtdkW|=*k zC9K_P*zVT1v|1hakDt|L*=)4BK&|v*wQ%R=S6_eq0|iyJS{+C=@7#I3_JGS^#0Z3r z{j1G}by*_YKpKyL+zK1BSd`?- zEJV@_lq3FInEOabP4TX@V}Yxm&X?3wj)a^vKp`RpOtV@D%hI{Uy6i5>I>gjUV!>98`ttnz;`H?IGvxJ+k6*t&GdJf0H95&%ApD7rSMJY!o5#3W)UPx= zFWoCp@36@E&2a+Yj#LSDt#wd&p);WR+u#0n*B2^A1q3j)*(>FFo^COVNf-3;W;mv+ zWPZw1uu)cwG>1@u1eIMdBgoy_CV(;xErMwVGPVy4!X|w#PdW+AqNYX`#2{ZjiHg_J z(Q$BbZjjQ|5m`xB%XuJ0Yvu}Lg(1T_5HV$neJiaN!K%iMglBBQ!Qm=A_^tR>1AY4hI0WrJ^ zU_~SaMm$1pm^MTXp+U|CC7~C<3$%;BMP}E6@u#ebyPuL(Zzm4ac)gmbx zDUMZx0wl|rL~M`}Rb^7xE>_FNxpq8Y)h)|KfpjtlY8X*xi|$46=UQn?C#0&ysVU^j zD+FGJ)GEd8q%H}nux)B&zyd0TRCc<)sL6#$q{4LmxlmBG<+u~U%mWBRov7v zK8`AUU#ceQLduHhs==dmnr*+;W&r`uEQLOp@wdEggNkQj3aI?Lm?xZd&$0AN2z@%4 zWyb32)tfhOu@fkSXjZ_~s&!LP=aive*V2({eUZY2@8%|TJpvA~7zu#oK>KLOSjZ~3 z+bfzGA5zS?LVlMuH8o!+6J$l4w7ux)u1l_kQ~8eB#;%W|#!IO-@n_XxgJh{*wqT0f z$!sQ*gu98@Kn}O6V-*bR z%tq<-Tuzr$cBx?6k{obKno_STvYL{~hpiNHQ8^fKB95aoP+GcJZ{M%{J~>yfOiy@q zjT4y5E~ay0BPf@v2v2Sn%hxSJZ#A)!Rl4x$3w23N-pS|^Zi!iY;Kb8X5L8h~Qb~e?vYUqUkqaaW^Px&PrbA-HBJR4y ziU5k<)TvaGD9+C1NUl=sGCCDQ4wLWWDgk3Ltr!%!Map%GuqbRWbT^x_B+TVDt0XRS zNKMZ%o7x0}G~o|t&v9~ToDC1 z1ykplV-XB9qG;8gLMdgXGMzwnO_w1pDcxGEb7uyooC2z#Q>iu@?9^4*vvcPrDJ)Lr zCX?8|3OVu$}!cD0>!FarU+M07t17lvZE_{#ZpPO^}6o1@6VIs%Zx_n=CYX??mptw5+`kQ z;-GhLx4h<2I1^pYZXrC)c5|MqT}TdAJFVI+KTq+52go}rUU$jEhuv6s8T1P9B9`w6 z&Qo8Tiuwx?pW&rfYo?CLM1?}!w5>=oqUedlMA9wglG!XT3Y_jn>&sq=}nrgL+1)2v&f$qL4j!v)j> z0o9_Y4JFV8RWh}7wOtlcmC7blT;+yRbqWD0r2hbyz}(@;kE633|3Fc6G8&4iDT_X> znnL}N8BZ_P6|^ao(uIg#(oKuBCAk{pGFIx1>EDxm8Vya%3BAX&Zplbxz1%J%Rd5?U zjk`6GI_SwAwV0q7CX3Tx>{bYlXoSlD1XbJLn&iE%rCvSQyL}~wud_2*Yc}wo-#3rc z4Y|W<>_^$AlO8dWiAst@n$_tu~k5!#YJL? zES0VD46ctx2qeK_e zw1W>c_ub6++i#DLj!w>G5}f|aOwP?=1IT}I@>dI%UGCN()dW@#dNzCk3r`{wtK8{@ zZ*{2IyHK@&(EaqlpYC zqsdeWs6?WMdq%i(WI{9$d(HXe0O~sFHKW*Gt#i$gWEP7;XtLgdVc}7d$F>*i*=Zg`O&0a-U%owleLPC;M23{Z zT!y~p1Z#j78z7=f7dt8s9v-(HuCDg%A+|-vmN$0A(1`V!z7A9v*4F^Z))EU8B+K7O zMwr%SomXRiez9YZ)JV%?C2n%^lMq6TgyC-{dAsC@TghMu4wbH=of^(E3e4Pk-L)2- zB>Ds9X69zjXLy|b_<3~hOjjuG4FS9H@rm!g!&sc_*Ju9e5LkI$79Hd?CiS4(&La*s z0|CXf$ppHb*!7``inO82Tbr&k?LLW=5UPpE%xE^MSCTrWuIqX*C7X&-RV2HrZA3T3xVuphEwe&wq>IfId4eG+^5s;nVafEtXErUHCG-y{s!p-( z$Ot(Ox*Qn!bvYR%?<+U>d&_6|@%+o>)`Ny+7V5UCfC$2%cxgm2G=u!>j~k6>Fy`p8&aCzDv5>+5 zojn@fFvaRT9|-WlkdIZL&SWM$T;^uT28`o=9~_>R)453x(YYi8qtRqmxC4ZgtZ9X6 zsbtGChM8A{KaoPOa4s2R)-+D{=CY}*fC{_S+1xs;qS;CEaFXQyS1PGsuz-D$f}s=* zrNB|f)Kr|DL07LVdLyGpgP|xHOtMgJR8J!FsHc)p`xGfwN}MUSF$}2c+oz_-U_b`H zwIUq9mKdSqi;AB$LP-YS>be!{Td&(5pD9bDH*DDByRCV)5NW37LT&bUGMaMGfNSS5 z<|$3;!q7mMQcg+~<;zOkbSY?blN7N|Vk9tovaG}qHl3f~yxDazw+Qj$jBwMhpC_c= z9-raGV1yM1Wm-YC7t5aJm)qG9Q)N zbO+|A_i91#5Qjpj^i#^SdqGuoklV}8VXX7N8U&> z%B3Xa)2q5e!5RJCx>G=+*tSRV2I$6<7@kShXg}B^-yIpiP6z)c63w-6&<6|6sfF2 zyjnCginO$ktF>ye5~JuV#|@}CGC-B6j@u+m1S|`f3-=V~Oi%k*k?T4th329$vTm|Y z3Y^rss_I6%pq4NdNsEIZQZc3)Zp3oxpeCf3js#(i<%kP9HQm(ph)S4|cOQ>ygq4YY zO~c500|%A`I~?OfaMWfwpS#p0Bkr;=tuPsSd&PsQt0Q|#2z!oJm-j-H|bd@0(3k}COkvhk4NfcGD)y4kbyFeTAw^VG4UqbvKiI}3x-vnf zR3dsrPJ-OYs<;K!s#s*3X(0?*wF`z-h@^`cFi75(W*VCC+S!X}iVY5OAyBO_Uv8kr z9rj5eao?-|U-3l8hpM&I)6Dw>O2Ri0st*%VuUxq@i=ANlrA`(TO}D0*FBb(pW5g^K zN=#Dfk`DnBBHDhlO#Cu4lbM|9xCiF}&dl{044pXtzkYch_ky~9A_2%IvRtIb+7AR) zzFp1doKylB~%``5mh$LfEtkkkSfh2q!cBuD21}& zl6)yvM2b+HV}J$;G^^*=F91m|P1<2HiHp`I_gLi6U9g6t%dj2(r}Z zQEm4-9PJ&bR{j~IrIr}I*=mRlls1QMPc1 zF*P?79zuDhr^xt7O`ab;&kFJUXeco=_xAr9#l7c)qcf8{ICF+k%3^9_hPlQv);k&BJ zRyI3`BQg22)E-7h=G(V|8UE%KkxE42oOxn&XazT;E#VXoz+%D!#uDmg1-O@2> zb*is8KyH|wTJ?5(OOGg2UUY~WEPn22LyeMk6jQX+Lw{QRX+U?s{;+kym zj!zz&31zN1p(rMi#cp4gMTvxI&fmAjFFZqZQn&=9;{pK`28BX!DcSLKT*Y3!&U1owRWSl2LW(St<#EX9rU_sNf|*7>jR1}3(`JBvQOFdLIZDe$k?esMu}dY82NsJ~+O$mDwIU^2 zsX|1xNd9%J-l}o&X2YM#@npBvIv4K=s2c4?qxW3Q1>v&XCaV8xv$xmQ2&`Xg^r2BD z0ft2821|;N-!J{(J+&k)JZUZOJ`xfTkwTyV*F*;8G9&dmg(l<~1cMS?`9Tb3NhB~M z1W(DpXO?17a9(8z#-NPC@POn{upN;|C}c;m!W2OTB{NK~hDg(pWus(M$OD-nyG~eX zV!Ku*C1%QCp^!*ZF;5)iOp~M%=}WX52H-Q0YNXF44ShUhj|`a-7de}1IIQ5A8p)Lk z?;wu3eO3PZ(?dgP2$5pswYV(h)8v{H&Utb?2;KsH7|lZRuwcj*_Q_BgqFX6ULrb~y z-h%VOdsD4E0G94At@rYt%vP*)vm0U#4Aa@xYV%~INThDBJ-YdphEW6>1-V*0j(IF7 z^~!o!Wplp1b8}gDGMDHoKz7zAATDH|vKc9$q^r$pT#1EJ2v~zLqp-NhBnb>vCOQhv z6`t_In9Bi~mO8LOj&Q^6z`&4JjF=$53dmuw=Y$I?2?IHxBzGvYkP+>nL02K^HI#rH zAzP&l4-5_+xivCGhz<1*TpW@#vh}9K3X)Kfv=M1=aA5G-uSb+2vTsOkN)p(BhO~4k zEEh=Gg;j)B@oF6sq@@WsGp-a#D$SxK=kun5Ay@Uht&stvcq&bX%r@*2`H5oIUxdJN zRGmDas8#2JC5%qtR*@w?T3RB90_oVL#{54))#@!;^1u>76bdKcoiE(JICl2zv5_!^ zgPIZ6v4g`xr5vL`N|X&Lul{F73Lh6fLJ(09{Lk9A%Op z9#9XB2tOddXeF^tPMS{Tw&++ca3MGglxs1Ov*#I_a59{JN6$xJ{R z8m5&W92f`;4h>55)QtmMcby#`J~DXs`;7xP&JMqIVn`bT`3{|QZDEjKeAmFhFrIYf z%C8BsfK~_s2xzwgxxF%Z3sSx~RJ0|#sMJSfGhZ~)@e!LMC{*g03dmH7B-~`Z3KS9B zMns8NDqtcj6~ln77znKCmt?k5Y4kK7Gyqy-$sAjz62V}_eIGBSkz&jEs_zpsBI4nlW;p16DWmfeRB@7cBW`F1u!o3_$1@aW#~uCccUf14&u>IPi^1Vp2#N!3U|u_dxoT3yMTQrxcR z^Z7CX6OS88Ij^AFN8^549RyQ_66#OsrscW>7O$9&h?^n{B(@wEvgL8U@qe!c0U{*| z1-sL>m)W7poXMvQis|=ScGdGoCgs~-VahlB+t@ThP zJ%}>d1SY~o$wi=;HK)sZB}cIhW_}fm=WL2cqN71l;!%oE$#0|RXG0)gE?xkZRo!GZ=)7EYKw{F_FaqFh7J9cc_yluzsJ>PtD z`0(lB!J8ve{$o=^Urzp9wO+JK3Vb4hMy}?E;^a`I$)y2{EmAjj*^t4hXHwuCaU+s$ zqNXwC#F*`qw2+Q~MvQIBMRVXK%%)OBr;G{o?S_XIL)4save+QX?S{Z8pKi3!vW zZR586yJ@Z8|NgVh+cs_8_0g3$UBzL8Y=3}H-2{vP)3)u~cWmFeW9QBt+qUi4wteTm zojdm(-A%vm+_81@<}KT{F<{&F9o>nW`?qZ(oahM$j_!W%gTvc4y?JSPczA61*Fym* zotKRIVwplDyQCFV^8JeGsdMqX63_G2f=%Dz6Asn>syEoAdy5h?Ep^OUnXq!F+w|cZr^v{z=3`H4(;2w?*M^C!0jf4=kfxvqW0E;u-~4cf|}y$Aa$Dc@M@->P+45W!LCGxB;ig|;3JKU2$mwc z4LKq`wsF&odk2RH`};O+*|K>HR(}&M?6%#s^t<=bk{>-v%l_VbCvW`aBdt&*E#2SW zH}?I0Qgjd@k{bvQPCmfLzTSh7-ns9yydZbcPb%z1J z8bIZ6u%bCk+;DOsImvlp|63 zWl=&dwSts(u98KAK){2F-vLnJ#{dq(0uC5V4hb-MYqa3~zMa{!Wz(LmWJ)%Xrh;ao zwI>V?96E6H=+Q$*PoAW27f!u%HbRF_1(HyU^mSn0fkT&19;O#Rdf;U;Z{pa!kIdb!vwu2r-|u%d>QBVavhl4&V4T&e|sAL#!qV!^!`4WLpLR02t>7di_8(#+} zPhLLdJ@dd$+`E%xZuh=z+YY~ZxPR+#|KQlb@WqRDMKaR)_=r)LC0mAmzzUa;G<0Kx z6VmgkXo~CC9IQn&mW&}kiV8&)1!`P#l1HI#v8YHIMS-fo0{Ik*B{?o91MfjKB-9$j zMb~KQRh5C#RBhzMv11<{eCgR=oIbrDN`at~@n9GszRF@qKf|Vpb_{?Ni-qaq#gd%y zPQ?lsZp<)ALjwbQj|^-id^YYH9whI1qksfUyKTqTO`CV_e10dCjdyI>@$we&Ahg-; z-Mbkl{(k5vi_^)=Cy$;weCoZEZ(bs(Mgok~)~$FsLW+cl&^g5C;&|^rPMtc+qR8KY z%mI=!0-Yu55Z!b1@_W1K20h`>(f3Zick~bgNGHE6#En$twjGC#zPWYN{yke?-?L}e z@Yw8P(Kt60P{@ZTtIL0=9L(h?=E$-0z*}XazyrktAns2^bxVw74JIqFXHEgbPe?-S zf@YE+i3}HiH_9klk%yEa0oBN`HiRUK4!=&7J;N^S)CoF{AAD)=vA6c%s(O*7N_gu* z5$T{Ildw;v!a7piVSq-CIJlHzXwBr$FUvy%o3=a);n})r$DTdHKih%z-%Sg!fB$Z% ztKBc}-oifFjvf0CUAS-*O9PVwqXLjf4h|hXfTbr8XwCoQ=&8#mPrdiv=}Tu}&lsw0 zTgjQ*xAOo_VfDyJojQ8z!sW{+FI*sW1zap{M-Kt^j@%tRdEt=2_2|jVgw)BS@IVf+ z=6reQ%d7AfgC>Y*UqE*k#UnH8|)n zagtaN9;1Lk(+(MT605XfIyQP(C3e_UaJO@xt7vu&C|2B{C~?Sx>iC&6$LJS{;&vP! zRzr}h5$)LVKOaB1ckl4vo|g|Ccz(;SVR9-oIO{A>NWtMtCMgTbI=sVhir$#KX4CZi zI0_wyNTfDyeg;yqZTGhQBtx5Ebs!*zcJJQ5fB#|nI=UaX_Uzt6zrKF?^5y-6Pf8UNoc*J{QdG}5~_cH^MhTmZkr&d+bBLdNjM1EIm8C-)TvXi6I5SbAgD;K z5jfC;43Gb!0?-TZy>~$%``+aXeD?vyv7O}O<->_1mSWHe8gh=IL5HQ_!Rnm!~>(WAm14gj0Su#_$si|R=O}HeB41?M^WJ4hs zhK`*PQ0;vIyzc{@V{n)N8yp-yI6Qoij=kW7AK1F%`2){C|I=L~FfK)7(>6i}isAy%yK ze1HJ`DZX{#6rDyuox%hEaZ-pHB<_&!JJJ(Ry?6QW?o*$C_WrMKUi|fM(;E4-bdZ~* z^WUqf&>^u@P%e~&bg6QxWT{R8YLC;~;OEzMc#CA#3fKviMotWQoPsPZ*#2VCQZ*B- z)WgT$5K!&<@sGD`VbueNOIVKqiVlCVYZpPdhfNBMIwAFoVI%=XZb=s!PuFFU7i9tS zoIJcQ($u(2G!iKea}bWgHQRqw_+Ny?{tI;Z(gjb~JFU>+Q{T`n!j04q+jOCsx-j`` zE07{%b@UL$vao4TedM0)V1>ng!XcI^I`0DgJIN?r#+U+l1ADy*af1=w-I*`}o>FdEq^R>b=YFU10U}-UZe`&{=d{(+_VM z-#h8+y;I&&drI!mPI&J-$V8Dtv27cS*`a+x2oJ&apjYAN(`#S8%y0p#lilM&=lcb` z`O%ZU*zz?(AMif}Xyi`P&G+a<-g)!0Uya?oa*pCdGWlU!<)SU=|8MX5e%r>f^WRVu z=}t7RoN=7WwPeZGN|sG&oJ#8$3{!-5Kn0fR)Dxrw&kPv|&2}*^1{4^$z*fKn_7r*$ zQ19BEofip(f~EobP+^5W%)>m*Td{vm&v(wfB;`2h4-{yM<|H;Lnx>@t-E+=&zI!a* z;Y6k8>d)@nx_|ia(Wig;^+QSyhr5p-f4Tecm%n`c8+_6feu0t=A@ae>Cj?BR(O7TP z>kW!v4ZgF*`g-NTQKixEbUJ5G8jYi2e^o(sb8Ze8mF59fp0Fak7{0~j<>j@tnq4!@ z+S+=f-Fdcu|B?v@(fGm7?yCfOk6sYD@+QSjDM-yIeY*~G1WG|(AP`}g7%8e}LqHVJ z9_{l3{KSif5V^w<&ITmxG8a)y`w1%GXo@p1RKz`8zCe$`;-^cZ1b4=Zps%nOD4%s) z<<8h4oO?7$9Huf3y~eLDzW>*M+Gm#b>%YSa3W4$SFXa=4CFuW5eMIX0Pl;?1RoH&K zefZ^_JC6@{aW^53arlU|2EF9UN~MxPa>zh&K9%9byzVwlU`k27O1K>Zp@0! z10*0t&V(XoiOyNPIagXcIA|O+`h)Q|+iwD;wf09u(ht!yhd-IWw|N_@O7w!Nl$P>& zr~ytK%52ehOh=$1pu#}!@wj0OY2OQEI02d~fr+t_%E$3Sr|ZJ4a)^F8ih(@;>1nz` zDI7kX*heT11+aX%cmNiGu&ZB!&u7pxF&(kRXR%8~0eLV@E7vrvVD#d}%O8LH^_`!P zZ~Vi*;L}Y|tUTgo$Vb}}{6)6ZX<(ZY&h~HafBcYw9tAb>B1-<5YNl#X956D~LXBAP z4CU~0J`GVOM_=iAUAN%SOnOeB%FRZWm(9ZR>gsA8w=~|`SXx}jF1Pmvu-D%Rr4X3Z z-nJyJ!=KAtz$gMjdSJ03lgXfT&F7(hx=E;@9T+s^GEO19NhZ8P%+nkAR}cnKj*3E4 z7mV6N-ZPlg&u}%xUWYTeKC+#zV^NL7E=80@9Lo=UH79zU7(;nL&orVR3sg=5s&1Dl zsL3>?HyT}BeE-{jy#F!&MCljzrCNoa0QURo!$%Zb(4cXLQ^75k&u;B*ZXW*C?yo=J zr*!nJv0hA9t(v0>Zi8O5V|xXz@yi^}%QG}$v)~Qs^sL;~dRBSWEbbbw4L>jL_51zK zUVU%S+1uMFuCH!IP~n3-#E3=SyQf4A-1p;fe_OPo>q>7(=gS2!JqR=A6fwp?+I-CO zVqb#kInL+>oTxZi`923lhJ&gFK+Gs_5MAqOA=IvUq60` z54d?GpAxjYySu&1%S2!9-uuPo$3zo8xclc{eDZ|SQNO;rR;%rxw)QYBSVOU~VW4Ve zIbTjQ60-^@xX`?UDvx=e&*cjk*;;NUUECTB&N_RI2WJD^7Y#QGXQ&2Gwqs-E?)L4? zyTnsqpX}eh1y(*YGq*4|k1O(JS-v)>m>fkC8~-G`2MI%75}>-CDqZQn>kC|*&YG%P zWjbb2;&cOsxdBH<9Mm@dTi=R?1%!Gb4>T$l3Sj$iet#Eiq0bHv| z4DjIOSFi5=&8siIxx4wd`yX#YecRtwU-a#B-fU83`pM_t?0^33!2{w6M64_8)l6l5 zZEc5)Xc~P7UaqYw5*8)PJh$I81r>`X1$F^?J=RRB*mwqDhW&4cj8JFq!CvQ-_Rsis z)Mtd>GYYt=YO$EDG@j$8gt$>PN-)ZX#pUG%&`5cX5B(t(WAP?#MPF7=!}6-*Xs9@osIpc?IK`CJEa$lA zCUA5$fHcs}hzOb@*MayuAd}Gal<1`L8Vz|*K=5_&8*$beCA=!es>fc1A_3wd+=;J4 z)dhJw>Oae9y?D`Tp1(X9j)%h^e?UrjJ$S2)$4`ia@6mS9@3-5H_2ukxc41D8YNHZC zRU@njDI^J#qaPzs7A-%oL8HS8s(5XH0m~JLc&y_V)Sbi=<942KC&CHzf1RF`!{}VL za&)FnA*?$6v%QU_o3o{~lJi)WuvP3=P&wiWj?g%`k^tieQKh3sN|-fxbPpv>&oeZ9 z43iY7^uIv97r^h8p-#OcB=>}KH+=L$xv1acu$ zXdWMbb@3zNG{9i!sXVwEv+;P`sXw43@|t%0!_$*?yS=)!yu3)HT58svQmJO|lu)-Y zEM-WIH3ULTZCo8r53QqKAiye_@dWpHmg?a;NaztLk-YisDjPwx4PGv`WlaEggTwAtt}cQ!V6H* zx6;}U!DYk0$j{(lHB;dc!$SKBs30B?waDf2pl-rD(o|S&Y-})I+Ri%qWuA5VCm@O( z9|@+_rKM~(E#*KupB8iDAx*(eeG7^0qbD*-C#DeTB=DcpIGm&h$0 z7O>?oYpdR<*NduF zi&mQ$c8-4vD$N0zp8_f>D0xLGN=Yk4_UG$s%M}g z@0nhoqDfq`J4vI}aL|_4TDJHZ-URgg4n17Un5;&CgNp0w?6g0k!HGw-_X$Li96C zNHl;dJu^!{ku5GQ!L#anNh5HGeL~JCQq8qg%w`iHNecw)veF;K%d8PpObSr*Fc$za zrpgULEOdvM+!!MoR&qGj8$@pHg%aI@zyVdDfwXdlujM_$;GF)Am^esw0#bA&5M@0X z?vT%O;DduorQQDQbSU(A_*RsL@pe2$cA#;@ z%tw}3BB&Usxtnk-N?vp18YP7lAcCClxWeGga&0PC8EEN24;&Bo>>t9oQs#y9EJMaK zVo4#BPA@E^*+lk$HD=cia=)xNcwLqm*sr=>%c87~Y=o*8 zGd)z=c;L5uhRSXE3{lf+vdeHrVw+4Dr!Zt*PDn{f1@wXzD;7)vajmcym0VnX)2s;@ zDkgzERY{pm<>ck-G4AX7wg8y$w6pQQoo#I>t8dUyl2wK&BUklZ3k%k*r^m;w73>^8ZDp=quU1+I z7bizYD=VKJH5zv-SjcFcp7pu-jUwO=;{n&Bb;|8^z(pk%JJaGKp#_ng2q4v>D2KUc z(PWlvOZ+pGSGA(XDsIW5Y(;*;sg8Aa#);f$epYw``_wctYqSbOjF+-49mH4CxC4mKf#Iug%8KJ*G$PZ9JW5|(ro z#jX@V9>@Y`BnV3k!b=15kXnpa(Yn6nx0)@AsK*)fvSl)@7v$8(*RECCl@xK0)b(qr zO6K}Xqw(PMwBM(%)6;KV56alc2uIWHLZx^pBMxS zBZtMnNFZeT&cx8|y6`Qc=G`t7Qw#N#BG?qAcmSJ*6$mqEwIU9#v6_l@idKZO@%s7L~T%l??hLM{|JH*sYv<2mIwo85mZtSS>lZ3CJDxo$u z;8B`Zknf11n*bw{I+Pd1VJ>+_S=HK*dgvdk>LN_M2^Fl6ORmR9g02_Ia9lI<45y5t zwWm-i;;t_RaTLp_{*7Z>5N9X}fKe?K<*sl(QACmxy6#qFrXR;Q^ZIx~uQa2Gh7Ld`4ysyHs{jU;sy2<^m! zZa3;UN?MmpbsBX!BYD#nEz1jpQ5f|7L`)PQ;un*sE+WtJ#9tltM%7z1onSIK4g#Va ztZ(v=6J!Mg&8Wyh&#kRLnK2g=bAna_F@V?T)3!qkef_L4-r6E3;L^m8VUCA=!>UEM29rKE0e+D31;OJ~N{NZ5B$bx*$ko~o>t ze|)SElXs^7YC#Qa^oHcczVQx|Z!Laz{7|4;$^8GbmH&=atFo-{1L1FxBK7v_4VfV_GIVkbANxMckgv+X{KlO zxnbsfbgbjQ;~gE1g>4fnHE}`Bw@alKnKc88rCJS@q4W7(Wo3mkf5bNnWLhfqooa4} z|A@Djh)rc#Hs?EZ7V&iDDLIwwr2lc9Pu2-8YOg5bDld>W{BxI;m6cX3mR~3tSHu)k zD3P8L=aSRhmSAL(v!Rmv-!6MpT3kq~y;mNcV{-jauwfV=Oe*cds({WbL#!@B)(%iq z9%kDTXx!tY78Vv%=O=HGO8H-oCBFLR;YH?&;z?nwMZRJUZgMqlYX2o`5}c}?NUE7Y zU*M$f?d@t3IG?0?D4wttAB~>Z3I;k znN2bHRKnFX2*uU(ER-nqR9N{`y)EQ9SoEpAC25pZSR|Ab_>}YnHSl<(^H}8r*%Yl= z72E`s*wkc+_~eur)i9amb(kgM^+cEj|0+1c4CSry1w#Yj2mNm=;_Igtfv@knXK zNNMD;8N^9w`EY6Z@M&3bX)&;9Velxa|I-)_i5LzEA1<*xHZdz15h@A+1rk0Q0t(uH z@-)hRtozTbyQ?XwgP@X;u}eruXj(@9{o6IQee?ea@c&!)mHtcmza(LuWpv#@K;Z8F z_XHKI=E(dnNa-%AF#CfY5}5XYVPXfVDZbwltjwL)xyik)y|DXQHO+$g@q%^ zvw9W;gakxZLR7;$_o^q(Sl#L$H{UJqZO3)Mj2{w~Q_FTs8?J)~fn5vTpJm@lvKIBf zHGjNCuN)l+MT>^pZ0Qj&s>#Q6SR-J^YY|B)OAR|jWymP#3uQ^tpkRV#-UEYX^q#`;8ZA z7~V#Io`rqYzCZDP28DqIuYgcUWdWXa2Hl4w>7Trj zXE6Q;@x!PW&wY;+SfGADasJNe{XXW` zu9${oWXAq?WN37!e<}|U_*d(^uj1Er-9w#@&E$U@6Dqx{&(>@4{@^kB-gOfLhWNvr zg*~zfM=ZD-cvZ>_ANV>-ePkoh;ONu;{z?Swi~@uX2Wh`V0gmNQNN2LRop#6{S)?bi zu`^!_LnpB-`P<=34OHrZLBL^QED^?{TmS}!fZE#_S%-T4ukEkLuc2$=e7}npV`4#1 zzw4pN@P&@EhRTc#Yy$o!$NPa-IO47v5u=B(G)lleiEQui4R@-i1H;M~Q$bg@A+IsgwcoWM71%o2=pEvUz=zn)b=A!$P!mA9xnuJ{j28!m#lUd`YMDH19Z;F8G zLg#NPfmiSSfh&1PfMr1*;9Or@=Wd4?4r^cXGM_;p=o$E4rF|+)nl*HuG_5 zZ1lGOh#csjW%=IVW7k@}S*(K0oEdZlY?$;n+&2dh=KLIqolZg;76`M}RTo~~e1qMF zO5X~y&UQJ<@0$mm*tLRq9G(}kUm{@&bgBqHKB_Pq0KJxi%(}as14-?@_kj`oD=`QR z3bRuL^hZ4&b|=_IdAtP)j7Lv3`eIAi==+?HM%n$|7CU$$Pceqb3UAmd560gQFWkaF z=g(sg{d8;|Y;5}tuqEN$Mw9*Rfzd$V-V~|-TrK1yQI9^)Z9~^2{Dv1JbGu%lgHJI@ z_uhP6I>@u3{7KDvi`{Cvp+wJ@qR{p~$b$PdU@~;?EvflrI%J&jx6i?S8@Ey5mc*Cf zj=oMNrU>@^PFchwe5Yk&L&3Fv5`qjsBCjJme#mvCz=CVf|%D z!?D8Tr?CI`Ao9<{FxHlSoAcSU2Yis1<-IxJ%k%6dN1o{L>;vSWe(r;Ll9-UM$zn2P z_Ft;+?fg>hF`%qf;QQ)*6wQ0Lh!Y_Aa@DX2&-69PC-lW@^mH{E2X2K$%-?+6U*~U9 zP5(AsR6tD>Gy~|GepEI{J3`5-PVm#AuPJ& zmFJUN;OSFp=(PK} zpL;i;{`gV&aOYGXDZuT-Sm?AV>Kl@o|LKG~YH1PpISsvg^|4naE)4#}jg3w8!G9sl z8vJ3--1D^11b-Sd;|E_f#4PxE1sryD`X*-%xe)vuOA!fJK4VtNlqIWX^5=uz9Da`INsXEkb;%-?!W zV(tzSS)K(V?7!s@=nK*K0Plwh?EV!+-mu)H`6s@A`A?_B5eK0mr{?t=)an2C9EJa z`T9o4;!R0Xs1;DthyW8LFOhG}rH8E2rt!LHFsuI~arBq8PHY zRo+%P;IO)Z@4KQuZ8%+61@FTLyZ(3R=Btyv@0YmD1@FMe0=~IkK+rNz^U)M@dN=Us zP?$5{|Ll#oj@9_>=kBW45qQM<9RRc&os{_EZe=oW{>h!^^cpkQt}}A5vDs&ix)-C4 zibREjjN);R*KsT{Kj#Q?32Sp6BoOaFO+`&Ea=fp5x2NGKAxfgYv;9Z<3*mWV?&mb5 z&TnmSpK8k zC#FI%vd>~Lj1d{3d+2;MrBY!62Uf5Ix6Xbx2yPBZ(!)){O?*|o@@Z*FUdISnTLJ~A_dpG^OARGHAm{@O{$~Hl8>EVfh9}k-h@O- zioev_O$p4B+o-&i1E<8b+v3@?lNTo^eipk6lq3hUr`o5vL$Qgftz zmT=6NzZfVf3%ZLSIHPz|3qjA>!FgZ{@7#_`U(TzH-L7_bh$jiZ9y%U2De>Ysq}$^t zkGVaR$ke&bd~Q1E$tYK*oX$QiH6wV8VJy-~Nzs-EQ^p z^L^H$4eUGf#Q)p`9rn)4C@PfPpsxztG(q^&)kNjK+Uayv2I^&gr1X*Skb$TQhS27o z=&Q%jKB||2RA;+gryX+%#eK_kf8bL_+#JPW>*zYqwXVhxruQ=2v6%+W`ht>l|lZgf{)i1 zW~mfAV*@0Y$=SsA>vu1Y!QW=>1PBfcfsq4j4I@_JE(;@!S=Zg;3-=u#;AZJ#@Y$Vd zok73YY$!K)&yMXqt^=1OFYURUcuFt~Ofr6wc})vu%!JAm=F*)6Q6g@(WsGoT5IpRytK2k%Vl@tduC4$OXjB&} zy}EzphVG?u;&>j3Zh0V&tz#XdVHVTvRKJmh>rxZ*$t~c*T}ioEKNyj5&6LI9+(F>S zDt8wTPE7iyiXK721;aVA%(qG_(TSsQl|WqP704X2ZL`IET^UaO-i%UnzPD)O-|@PLL-V)G0`ui>%2oms72pI|e3Lj($hAmLyjm zfkX9y1kw?*g*3dIIvdI<+8aHRr!t@RpG9unSKYtBs)eiUpr&}?o`CW(14JmrxfUIc zJigM)qU^;wZG6#b^DBr~Afu2RpgMEYDJ(*WVU!)z9r07jJ{|N1`Uu*iRU|4E#gI=9 zwrf+RfniXz`I6jAL7hC5o$Q^UDeAFtcG&#$OzvVu5-emc$c^#Lk%JP){UKAspz)@O~b(38L>k`Y^D}@XW z-Z_05hM+(v;WaxvgTa(;eE)(HL_556eE=VeaOEJWNfkBlg8Ha!;};K{X>me!rs6}Jy`UjZNggdj_cvvAKg&XQC` zY505_Zio;q^o|z@bJkFvF$K>Yk;n(^*B2{^)AlH-2W=vT6389zjpOAb2U#C;Dzqpx zQxzwnWu&oOH3(6i5jh`|wbxsj<|jI4auN;=IHQK^JIm3u(QrTNP#0Ru8j3`zkA0oouRO0a<>yQI z`{>MrE;3KyUi8PaL28U8u~Tp%K8pCkD-&{d%j~@5RFvDq0yBRpTBf?KDIMR7y%=)U zQ*S%-t4A_ZV1ixPxXfP1y3z~}rbe*QHt>I>#-1eyGD>t6Ml4uCJj2@drNX{7_jk9{ z?-Oh&YK?<0r2SBRse}+7#V1#zD&u=-(t67KWxRD)X=e?B28%b4mJx6;;-D>pR?3!Y zBFILJR`YCjMMgF=S)$?9LV?vJiuCO}zwwy$7vlVBR{ztGAhrdZNS{0^Q)45iZ6M(A z1L`P&qN0Ux=yF2#g=4MlNbiVET)|YjWQ+UQA~6TvT_z{VO{r^mBmYdbz}a9*(_XKN z!yZ#qz-24hOri^Q(x&tsq+L%aQH!hY$;)~!Sa$AF8|cX#^QSt`&(U*^UBq6NrwX9R z7Va!NMyeG9>;GL}?}5%mFExt^rdXhupg3g;%jhkn>gzG3R4sBY>g~xt{D#^>87flj zAeA9_bl*@}U9QStsTQxPSpf+G|N2^4>6@EFX>#G|DU>6I3{yEaK@s66Fsv~I+4yf@ z_f6KM2Xd0#%TUZb5mKw*vf_}H*W!rkc^%jXe_$k{H~pNu(V zQN=D#R%M_piZTrJ_fFMH%SYK-itk2wY?(#sr?IG?cVJ=Gh4p387VdqamTTiATj#bpU&$vT%Q&q5#< z=Vm~gnJhgJqGB&}%SH8%)gDHox?LPDxLERJJa=k~puj*c7OAy<;GL?$ z(O@I;ccZa^pf7Wgo9m*xHI*7Y5PYI#XOCJhlsX(_BV#gSfe_S>)Dg3Dt=K)LfGyHU zmi$J2cKgc_7)Z4x#C@h-5?8w;*_4R>Z$ku~=*kx4O2vWhb?oR@-@=A%gS!q)_cC7e zu$fSS`55TfJC9UB=`-5*rM1KLo^`3u8Oj{ApWi1#K!{M>@W!^&^$pdBR#j;lRgir= zhh}$`M2}6lU?y`pntZs*dHfKD={>L1zX9CPAk@$U&H*O~gXC}&D|4OKB)FMO;7XWi zZ$WQhxxD&1o)9LMY;c%q@+f6Pd^h34S>HK6#FUKrS*+b9+BHdL=EPe|$<7YZNp%?; zEJSLhe`8F=qlCnfbNq=ZuAWeiR@qq;FMKqCYYBo_9LXX+9*kI>&50yMz=l z(wG>FmF#j!JQ-dtQX-L6J(qdk~9fe zQjNxm7JO@MQaY%r3c-Y2Hz@V86_>V}CJp*B! z3tpP=iul2#NO~@*RBEzAVHr;vTZ$wf!4Y~AwhA27I+#68bsrbWDxy1tcwWV*+27hf zQ&r~#58t~O;Na=*d& zhgRn>DLgz+sA?2DP<|5y$*h^L)eQtExqjND6_QJvsvJFKYlPrb02*k8lGME=htvXt zq%8O~(&GRY@$vCW*W48-kW-fla(l(n=x!=jEV!1oR2R~z46Ul_Tx$O^UZj!1u37x8 z<^7T{)e6^l(89Ic4IQiWIZy>HuI#RGTW zTHF2%E(nU<3UOf_8Q^xfW{De8Lb0=9XQ60HhPi*V)G}2qkCLAQVDRH(VqjoZiVq?^ zkfU7bK1ura4a9_AO*npv>vzW%=_3G;0Szvhd^!SA$Y@qGc^ai-Fow=ds@u26UbbpI zY{_cbwQS6!?*inn#AI=Ez>XzLKR+hIDUOU>FS>qf(i(bOdeNN4qiu+8d2@oCi85S! z_VUSJIYRgzF;2x?+A_4h`3?IZx_ajC2w2E3GR|JM&7tSCHN&W3<--hKA?c$P8c24% zm~&#Y(hChw97qsFIl2eT(}};Zt*9t4(qzp! zuSC#wqJumEbaQ^Hi{nvN+Ck3d8{qNUdXX%0b>(l&VAI%Ygg z5u?Y%<1O=&H%a_z{T&gEbHL~e8&ev>dQd-iL?LUhk3bZkOE0qaaZ2Y3oF}R)nW@%ml>y!z`0Z8Ikx%H%gQhchk9(z)}sb zDxT-Tx51zZvD?=pjROxOvH$x$8i_9wrOp}?%}kF}pjE0P6LyemYq2(iT_7C?^baaq zOv`p6d(iz}Jz2KW{&G$N;e;Usj|t5Ow=HL{2;=8=_l430_Dga$wf!W5& zrHbEG$)+e0Lqvs7s*$dRdx=jReIt{!`J`cv!uCn^$BuZ;a>djYr~<%KY=I^9$e!0z zoDk8^WB%axH5~yZ(r3sli&)5aCC%!{cR>eB4Q6?AL!~EyExlQSV>-fPV8(FGnG10t%Hp#IM9~p z1j~o$Khq7s36?*z{Dy8rjjL>*P;vX?EtRDhS#lHlsiciVcMD*XJ@oQPqd)1=m{pMR zm_BmX@2>_{jxW(pB?j`)M0l;G5>R49{$S>V%yLnk_?r}tE`|}C5fekd-QUaPhA9td z#p>RjmfB+pvq(w@6SJr7AP`#hkk8%^Ot?pc_$8l9^C73#cSobd4#18=H8~-`DfJ@JPfSG=W<;?Z(1O&Zf`tPuP1n;w4Xpvyn@<=ev|%$vr!KX)O{OyzS|U!2Q4Ngq=C+dsisI}PZfa>KFH)swECs6eRu1o@OcIMLLYS#cMesjO~G8$|8-1&-`iZZ)37{&hkIVIZkOew}2)=A;FW&tE+p2H-dZCzieA? zZ#c99f_RV{^C-kooFZ$MukirhfS0E9u{WFpPkEDHG}i9o@)7CLcaz;p={z8QRgyZ} z_G_mmLa>@`C@-YLF&d(#Sp01I>>TH_NqUkp$GyO0EA7Ip30C}lAh0q?KEKq%OSD>)PXq#fsd-lrW6KSF?iItk2{e<~H|Bc%^6`37=K0^rnUn<2%KK>Y1r zZV1|%0fk*ScCy#RI5hmB1mO+yV0I$BZy`RRMslO0>alACZwX}Lz`FZiUbF%wenO%R zW*~z5$HAgYJCl|Og)(>pp_|U3Iqk@CBB(M%sA;b$Ab6g?I)fqXtNDqw5&=gOLY6}= zwi4c2j}O72z3?aQPQiynBMKKUeIj*_DEpBU(j=l=`$5 zPXVfU^Zuj6!M{BMLh>^S#QlMB95Oa)wlM!E+TFrdx4v{-B%52uzVQ-s(GUs z&G@WPR;4Bs_!%L!M+(;^kf8WQ)opvzAR(JnYGP8X-|mV}OqgZ>bi+ciug|$Flx-?O zG&O?oy}=ubJ2Bz`Wxl$6OTS+RCH@NWCP_&DCQUs?M;DyYyb+N$%wOA44MzhI)A6|( zqm2qH{EJj;u$O$|@yrG2?V8LE5x1m2T5j`cTUw#JI}2D8pGf zs_HDX3}bDHsS3z1Iahzr6`kqbZFpwsk0L-F<3L# zkLcxJZY}t;NI|=YR5ZKI-A}3|dSi03V^$V!nzLL0`|V*7sf0p1E2j=;Q-PtHi~ zBXF&8BqS=k?@&Gv!VEGG#2<@Qyv)?1ta;s%L4{6m0KB3?c%3|uGcQa!6votI=v`5x zkp(vGo&u%!f(XimzzIE5BWMI@NXy$+z0c1sW?k?F1kxJaDdml|GLR*66?4gR*UI%B zQT1uokIdv!ZGeT9nx3tkQ(Gkq1QY#|P@1NNCHhHt^AIi~b?4GNXLvHwrT*|RwQ|0I z$B~S~a%J1Zq@Asj$&!Y)R=VZ{4LyC8y}gZ%eYG72ZGmIS?J$sz!>oZfadXZ-{CLIj z9Q$l1~~R#2ct-=a~K3nYO{5)hG# zLJobDtKdXXZHWv^YHQ}lZ*|yg^}OEHZ>u%#b@{wmY-!PyRx<65P(^yeJV^?^xIkZa zsLgIfKR(s7Wzj1Hi}jOTP^45{h+Uc%3$zyqP4V!0Mc%o(zG>0vWF+KT%-~~4h1H4ucI=*CaPZ2x5Xyn3=|Y31fJq>5gf2e2Z{K#j&VYg% zO{#TWqPlpp6qQyN4=V+2LK+0WZ_;<#DxB|eA78+$N1#IzUfSL!?w8j2kmck%p4-w& za~LSvs6lOzn`^Zx(19f;=PiIcrZ9Va=kwd^HHkDAtr<7<0+f3UQ{DaYow7=hzS4q@ zHq1c6pRKM-;h4a8D!L`sTH)a2 zT+Xe4T2oX^oSAWJ-;61knYm1LZCggwM)Kl2!BaEnnc8{#OWs9e zbdgfIc3oB1P}i;4fAb#U?QUBx*JWy zZ8@d*h+Gs}6#gf|nPv>u^OwO!V$lZ*EQG>gaj2-|QF!O5ETRrnQl$D+K#)NM9ufF6 zKFeDe`F2f>ck3?E`RJs}%=D7;0=#uVlMfmQmP=ONDA*A+#zns6u%3&FOPZWgRD3Gf zcu6#a)iih3b(@4vMoehTX6|?43JB8fUpUsDj^G53bdJHain9Jx_K-<*)2M22;eUk< zK&2J)v*fRs&JDatI(j*f_rUvQ%sNN?9{c5daQwYlz|zW~ffv{6s@Sm$^lSE%%MHN| ziv8N-WiYq!6-nUmu;!}Gz3ryvt9x5_P69Q;(*sfpu6utJ7(W2+16eKl*V zCyJ=qn&QGnf0^mthVQr>IgwY`u}i+woU0C|DaFAy3g+2Aa2-($0#qFB$Z;u`*;{OA z1R}zaVNdZOzv!%IHQ{cCsYw0>^Lk$SQA&9yW9g{USul__kEPp}_N?^tep;U^!52$E zCC}xveq{ihI0eyuJ^NlJ)=P?6I`tKHDDhwx(p?F;`TA8-*c35zIkk9TaAnqSd=>4f z0Jc1$@tV1NGDAjYXEHmN^feTUVDOe~l3To{o-IEtB3E;pyS3xY*dL>|<1bX+G?h zeFl9tF{XIC+kKm5(>NskYu0^vZI3qv0){=6{Fu`N?e zC-f!|??tFTPY+rU{GIyrQF0^`&XjME9qE*QlE?oaOrS{!;mezQcgj75P^IvJV`0;6 zD_#Ziz?P22ELk9wpC5RDnbp?QnWtS-)J9&M@V5IC)FODki}?O|H~BA57db<^3(3se z@LAf1kNvM11wS@v7X0R+5a=DS<4 zyw)Mb+_cPrge%?uh-S5x#Scj_R_)?e3aYJei*aLj{#@8ZqK=*JP|~yR{U*u#aO}&K z-s}#cRp-bD?V|AuCanzND>Eb@;81SC)jf0GzF>#GN83YM3Ry#hKMaCGLYOGCGST^i zRsk6y8?_ephgU|#|L|XAWOTjTS$j^MS9^!dzFJ)fUpNg5Z>ZDNSsD|zjXqpGBq0Ze z?@eNG5ZnzA6?F&$f#wL&iIs`ePj3}xZ$ENqQo|!Jmzc@KpDoxe<~;D+yg)9hm?4(G zywO}_o8@lr`n*sWk4wA1X)~+CTsW?0aZ#u?9fxhB;+J`X#>5It=4-~)u5qJ{y6pP5 zVh&1lNT<_gD?(vdhxlR@U(VkuyX@@CG&}6A9RArn{#Au0#1AOzON%~)CA8<0%V+7> zR&|g&{yFlCeDFLxVf}s7|A3#w+~yMc6R7$?B^$&u5LQX4ZmiuQQtxlN~8 zuQ76&u1CZKlx^aFz3URR*Iz{2XfaGB@p` zkyD~xpOOQ1nqwL3tl+XgAst}%a@EeOZa4AMTLdAn+~zTB%<;Q`3>fg&^8?{~1WRHF-$?O=bAfo*hCC~aFaI!+-{+qORY zLSMkzDmBNELA;;m4kvTlOZ1B{>Jlb1#-^Hvwz6W)SWV3bmBDclDL%RJLEBib$M<={ zqH1NKG$TJUUt5btvQC>tt#nx5D>j{bv6J4ysmx8fUTO)sj=44?>OFZTe_dRKnvw$| zzk4L$kTeW~Kx|J7DnI&_MUdG87nq12PJ>2@1qyFfq^z+cwg$`YY(trXdLq?`fLfH( zW$M*Vo~bIWa&Jj4=)|!Nq01GbLHc4lQdi9w_iAiwA+0AZ-PU-ACz;?7fApI$AONBV zP*>Qv*duZ9w0Fp^3n;n^ zC8*xw&9hIlnzlfr2#)hu%9k}LK6!4WsVY~OGBf0Z7+@0a4y(fR{%k6`Xw}z#sncx| zZ}(fjH8SjZXbJE`y3%bq9j?Kb|C!s;c;AmoJl+x~jS0CSBhZ>6I4l~sCg>sjf~w7?k<4(# zv1+F-Y4wu&=yUa|_pD&SY5VV5vt>$_a*)UKziB6ewa1tL$_>YDqs~tatHl^(VF4GU zvhIAWyuy?LPIObe+Yev$*))x4kfl}aG{-F!4Zpm-6OBc4l3Lpev{~`k@DVY1-{|_y zz3y#p$G;fy+l>7=LtP95u+S_VRs#4LdmtC|5`SmGG{LhhEwx7!)mDoN56&9aGG~#z z;030N32$Z>TXLYBhORSHMSZaoqlA}P21s%VugI@NS=%19qZ8T*YN&3gDekQ4{575U z6}>qX>~MX;{nBk{(B0MS?q{PJP!5juFMEA?W~Kp0z2?_#-rPOiLB7{{6M=|eAhOdI z2v<4E%T$>woXc~4ccu?R+u!Cb6prmCjV+F6PgQ@qnBpNhw@i$_tv;(J@NRrmH*P^5 z0($v`bVs|sEz@~w)^_FrBTeFynB{VeuOoLo&j6SxSH?6_#f*_!7r!vf#oH$G7kGt{ z>Xdca)>huB3;EOl9sNs%RR%O4#kt2$VKihIb%Bq|RK*al3Pts<4 zFi!b@biCva0@=zuRYz1KnR>8XJT$~j9@`Z$pLu%mRe$0Wc`6H78g8(gV|=Bi1c>d{ zdkKE`%NCEF z@A8DCt(4s~9Rdfg1gDY+jeaL1% zhpzn27`mL)dW(!)PUcY@2BVa%K5a%c%}=5o|Z*~E5r+0+R|)yHf_)0Ni^Em^QJ?k z_6o^d8a-XE(NbaLHF-x^$07d`+ZY|SU49pW87^a^HbJhdNMjY`N8--*=PN9LjHwyN z%$LgN)M#xjGdb|N-+UIewAp>6eSI?T*fwcubElK)R8wVQ z1XpPBfNDB_6|NRgRbNb5W@}PT=ZKbTF zk5{(9!siac{AX+ z@Ox^snre_}RM}V4G7D=D z%K2DC6dDEo>))@SwRFEl=@fCip%a~+xG&}9rF+FjQ};crY2qYW&n=H zuFzz~>y+p=!G!!13*oIx74@k#hh471dZj|{^4Rh&#&y(akEyAWvDrRJYePJ%Quk9tHmS_@;v^Z_w$oS{x7zU9{It1+|7(YS*}`rm zb=@E#fzob*?ow}}EzkGTewx98`R8q@irQ8ww~Ej8mltN9_u=paI^FIJjUreJxwI|f zG}UAm(^Rdr4(}1DvgUHWkXonTD=Obdeh1Giq@k?b@;UjleePYfMW)?o<*C$03hZiP zPUeiGY;5o^4=b+K=( zoGYyK%hKOBcv9EDS!>nJj&hFwQGQ!X6%irX%$FE@;w_o6)(e=XMpNo_uz-fb1e$iN zJCH8$hSJ?kPEE;?(poNk#!qLLpbMTo!dx5-2$;=mB^OLiZO|{QwZx?xI&76x_Kabi zM7Fwd)9Y7UAABbhDyO$dezjfn?N9!-oA|HVAylMxtDd(>WCX+Ep`<)(fm|=bG>xTTxP2~7U;?%AxkznUvgU^;aeY+_Ra{0dH)C)&pu`}ay1oqI2~Soh6wnnv5fF=AnlNp>lr^aks{~6FMe`=!ZFA?q1y7!cUqS3O2 zAJ_I8y@+;CLSt_;#_VDvc8%hqfde-EN@}Wx_w9$F1Exq%XYt9FKD9FE)PhI+$c$1= z#CiKn8I_Q#Cs@(O^LbW?9{IW6q#8d7@turNt!|Rjzgh%AT>r1%+ohYUT}}6T7C&`W zEVsT)#%_l1VH@OAcj-hshRxf7hZO2KQ~}ze{OmP7$u23Fc>w{0S3N55FQo8v_;80e zIB>67DRgIn1 zB_;DG2_Fs)*pn;veEr4i>uqaztng14c;R-6iVf#DUjdxX!Y((yZl@y3nl)K=!VDWb z?Cg1f^`U9-XS%QfCx4fK^W4Il&XPkuKaCbCqDtX_4|f+-zowPl%&VY_Yh7wMJDLjQ zzXMWr7}^!<+>CMwC^gTAyq0@lU;TxyG4&l!^Nj`hC(li$+zSq{@jCdOp+zOxP!;wX zo|7pFjL)sq@VFxRRL!FAJAB>Hp!<-=)80&;HqD3Ud1$2Z*lUCRIX> zw?`>Z6QR-9;o|>SVjh3+rj{8 z%bBPoYRH_TXRD~lq6F9$m~-pI@|`K7W4RCEy)tBYL9K8K_#$2r{sFFRi=A3c4nHY$ zk3xL8`)@RT-klF#W(Yn5S8ANRf;!#LPYyH7b1YqzeC#W8@jZLQx7sOgI=8pCzsR>4 zDxk^irO??dn<8+kWd1PAyu4rnQj53 z!9TLAt5y~pf9y5*)CaemHBYhps4i6bP_yi;__6K1Si@6lD6At&sMg^1g)`NC%&gX4 z4MbAfp3TuFB1De&n6KY;RnW*$3m|CqX#U#T(GKRqUvNAsO_$s>N>Z(=Bz3KJ7_@TL zT}sG~Cvx&Dapc+6UW_Yc6!=|^J2IcUj7^$IV}isF+Vp=dEAF|MHd;|@}qd*-)7%w`j0O!v}p@I zFU2`I1q3eRJJ}n#gyc@cj9^?nouWkK`0(zT*t|sMQKkjAER!1AxKhS=>fdy0vbn{t zbF^an{ZY+f4iSZ4Uv?;IcObpF!nF`-P**QmC4DSp472GA9%c{+W z-^HrFpLfkM7s_|vD#K|KUOAAHvX1&VCwq0}s3|egqz|y_yGo~41&pT@Up1+=bsZkM zbV;uuOFg>_MW)o$FQt1GC1rUi%ce=a`fmP}|GU{fcvzE6El>A)E6oArh*dC8H&Lb3 zU}VI&V%SMA3@87IVCeb<;?eo?A)*|>wP{~mk)%Zc9J5*TFC+qR%PZEplZ))mtSMIX zoey5M@*CQ1_^v@@Bl!32FC^G$n^qfk*$=}z0UxDrjZh*j3z68Y#!YwZ#0oAIT)HSj z?OF!4$@+@Ocs7?OJj{8eIWiO7Ujf6p8+St*V7^xgmTWQg)u)G25hKN_EeK<4F1qZV z7qV1^lUwA2{J&+LP0h(trzrlI{-ib}^HLg1zFs^v(dEP0BC+0w?GY2A4I?7GY!hT% z%@#SX*@~}gjwpfYX$o3;3ApF!$`96@mJoUdvhh2P`jk;h$>-1~cPyI?tbrNuQN`E7 z>U3M{8|v#DK1;3|)?LaCr`TO=&`tiGoX!7hJ7ak{p-XU?x@2cz$Z~S2ajhhHxJXoF zLdQbwdx97-}L9;YWnCgK_LoujFExGns*sf9gq%=2H)l(>Ja5^i}rJhX~ zi0Do~frFC~6*}US?1`e8n%$1TVS{!G#zv5y{~C8YKMqGa@9t_^M;bXP9d<5~(K)Y7 zUOq2p^8VKSy~QQAqZ3v=oSJ#!(9Yv~)>`&Rddc_I)V|Kbt>aW|iRsjN_#n7Q4tS0q z)*M4xlb4tGA~ww+4Bx9qXk8@|^51wX94sBiPd8;SY%m+%;fCR50M6t=?+U_ot+_Z* z@Y7n+>oae62W>gaqZ=MYhJ1ji5Z?`x3uV3~=~+0!2zx=uln%a9-6Xi4ioD(2S@UG? z*B&d_iZqadY*EO_WsSVV8hQK<|3$@KRO`pa_rCy?Kx@A$*UCu9HhsB0s1p2|L?W8t z;?S^P*0VaSvh1W!`fDHnBY?d-2mB5Bz2TNF>RkJ*yT`EcjNjv8{1t`2neQ!PtA;x+ zYc53B{ag@}3Pp)Jx7OvQgp#vRhhR50wly}^)wNZ7yFpVfQ25{j}K5a8MD9~FHBk=Z)k;xGg^9NCf zm+O)0Ea#=eV)ew`Ry(|V#G%PHRf?U_EYsUMLF6XxaR7GBiP%f?hC_)Aci2xQrnE#N zJCjuxzex;B#5X*AXB0rguP2E*eUa9JcCHk%B7|e; z&S(>`5B4h5M;j9Q_B!@Z!I=9hh0p!_XrIPlNn_-upJJKKXMbz?{Sg?zUiKuxg zflz2FcO4%tuTSV|`*@o9#=6EUjcs*}ZCBcEefj0(Pbx3oYOG$fsj~9J51DM0H4H7m zCV*ZQAFtXDjoiL{&v^e0i-V~Wr{l6@Kb4Y=cqTFe`ki}R%{e-e35SQnVP3L^ zNt@9GtUzKEP;&=JFA%?TXY}4Z<0@7YgkKH3emEQrd-E1Pq$g8c)Gj7hR+zMRb@}=o zLqh>Z?o8Cd#xnrHK~K(%-0YsoihGB$k59){A_fNE-E8LTjQq7q&`5TM3O*#o1r}Gk zWdCnz_A)Ok!d>^}vOUy#*mYwkZVhS<*rDxhS99z%K>z?C07*naR4#x0CB~JqO>3Uq zLDWIu>S}6ER8-fLpM}mJVJl+Q;nE^Oef?zi^`aco2U!L+zj0 z{4QVz?mI8^snnaXXXbs%F3D_|#eujuc3I-sP1JQqJjOk*)y@mDaVC`z7%El2b7x{I z<@7?OM@KWG!=upNaCAZhV03txKcl1Sg`>P;8Q`YEkB&|x<>v5kbeI=P$)V2dPRdx* zsdm&%Ia`2>Z)PUY+9x?1=IQ!+C2SiRfv%5?sQBCNVRryXxzM}#SX{M!8_8=^7+@5} z<32~1Lw0)S<)vi%P1V4i5);p$1tuw>uG}JSO{Ea(Xx?Gt+ZyYxz`*mTvZU<9iE4?{ zWR+UYxpSwgsKlpt$EWS3#p^e0*t+$_wI^?!ECuRCMaA0z{r1ws!p}S&vbyVeMQ3xI z*(o7qa}e~NX0=>`4HnziuYGa-Rs-~3KKJYA@aMVbo?p9X&w-;CE_@2i4}P?H&l_(X z+(`?+ckj-fe=<>j251j~Gw`I*zT zRaJ_I*Pc36C7l%J;s>9v6UXSGvePP@mJ)nzY0-K(^o?6z{PlCs{Tc&*0sd16*Y+Gg ze&N$kKRx=^#316~C+)!?NJRXxRQ=(2|&2*4kSIe$CU=lhleIk*Js%zHq2&1;@kE`oi z+5r5OD_`FNgTM9V<*zP(@#QVoty^E#HP%(D5S<0j=AP@ji%N?&EPJQ_($ZxsR<2x0 z)MpSbu*y~h87M}WEqX2m(kjWuNrk-Gqd?cVn$^K3JH} z`CtF~`Bh6f{%OUY>&T!8D-x25kBi?ZD z9*z6NJwZH)M_~w(Kz;Ns+-DATP$=P1dWe_qlf5hu^0hl-j@JHuP>l{_9a=BKIEmo8 z4JOaFI<9urrn#}{cEEZ2W)fElo3XG$2 zJYiUPTSeo?Cq&u7=f1r1^_7cPu3WwhW&irt*I$2e+3UJ>QBpIV458_{OP8(ur`E~I zkvI13+jo3J@k!5k&-Bc|^;4@itX;LX=&h>y>1ktC19Lc?J*s+!P~GQfI@eMs3Eien zGs;&TR;Nor;=$!!d~xem(Rz-z-#LC@&w&Gbo_lW9@y|Xxx_2+h{JS50Mi~I=JFoS9 zt9bkaL7S`=qH4HRb2QuNt-c^)a~~IRsd5@ZF<#u@9`U|=@5ehonz&C4djYtz-!`@|@H0bKs*=-s>cF;Ksg7>z;(MtR|hC=2as4?TZNdzXV3 z;)vX^SR`9RLeG9$iAjvOUAZV}l@`q>lZ!+=5w3_7TgEL-n1J*|JaO6o7p{G3S`XXO z*(r8HN(Tm{Os?J_*WFA+@7`rzK@Yhqs_QCFw9vq}U4eDK^5NynpIp51^_QP~MF$V% z|N4uIaP8Gio%Ornx{J0KtzNm3o828h-g>F1yC2G3I}q<_ehYqi8C1WvIh%E;^qo&T z*8tR|VA|Z%>8z8KE<8qM4J)YzPWe47Q=bg7-eEzwo z-uURVKV3Mw_uxkdk6!rbqfbBkuOI#X_1CY-9=QtYS*{&(A`M27Zi}pBh{yZ8tyWph z6O09IUI|)*yg~sC-h{wKiUu$ZLx0CMO4#q+%h`Q(Qv^ia{(kt!d!u*6@8bbF0!DHW zpF6{MbEpp|qQgnK=$vpl&B^_xdErM8x_~7h>x}v=(!49{u@qC0l=4lWx>f zK+~b-x31vtmB#8T-+e{waf@X(pbmGwe#6Swz~OFy5<42UO=h#>;N7je9-NhCKC3;rH6rVr%LE@`+}Nt1iRTNsj3VvVTY1$lmKq+vZYHmZ{D+E?S>7A z;bY&;^li95shM8#?A?-@gZjz@3b8a5xJ#E6#PqdT}W zdapB&t1ke$~_>|_I)i~kyeYf)zSerC(EEo=MlEcqMU9MbxA9GWTA&AJ~K1W zDG0NPf@c-CM}WFLA~jg<`jDOGrZ?)Ej7H;!+Sy;MJA+V+FoYuItpG)@s0QjE3x~gT z@ye~Xi$MO$#miT&w0-~8<;%Ry?L}%jub(bnwrtPa%T^veSzKIvs=24ByxehVa`I%+ zTc_gj;*%$Qr$NgyCfKKqqUpW$iHy+>qJ%s%BZU zAl0?{Q>RWJDJ_MO-wIy0_4#G1j(>V#-{#F5HmqG=T(o|}o;^FCS+V)R@lTI``j^i> zf}MY3^NJTRKFxvt?YD-axb0%!dw@D4Aa^|OW*ZGuJsAzf91g8rUD-I5%Fsm%bsxQF zsJRT7ZX2l^oc%p&dM1bZ@UZYWVFG;kj-W2;P7XlSNAXlNhx#bMPD+u7z_XQ|*V6H~ zI~9WcSD6WdhW_b;sR)sp-^`+jfmT%5NooUzs?sw7Yk*-{r zeR909H1|sKhhlQw8`%gpol0j?Y9C*@WKTlni(z#_yvPv@0ad;7BF(!Es52$oR#9=~ z`!7EMk^Aud4>zrOW%cT3UwZY}v16}n+g1c*8erDXT4!cjO3L3_Z_lPq)YP2a*Ppe# zW7)9bg1som!N{uca2BRoc9%hmIjjvhU*cG>D}$I5FeD(jqD6a2xEs#-z) zdNWKrYc78{StL34rOQ?=T{YOZ`I(iQ!QK$8AKf`JGjjX@JpA$Fn*ls5`_9*2-~0OS z;n-h?jTfKZaqXHa!KiL%wFs6gTde)lW89WaE;gtKeQtKiBAQ}wO{F!wHjTNMZ))-I zM8-RMkLbx0fOi5YKUEV@d?Jdb)$&j5EH;|>dCdJ)7b(lE~z^=$1_yUMcPGs7M^ zWB=zwMrDkn;jo?|k!`G~t}Lq{fp4+7+H5w&Zq;>O@2$(<-~Q^4J3hQv^3t}|%QhoW z-n{R?vbF2izGHPXIfKrwRBHeJnzO~H91eK!maAPumjKw>$;sm4?YoMzn^&&hR{k+;JPCX)BRU~^Y^6GKgqxcbAr#!ad2`2P?}3@@Yp?A) z`Yu@8r=NZH>EKA~aV7}B=U1$Fedp^tUwGXZFTC)&fx5Blj#>p1iNp1EGZyaeADhW? ziLRbZsXZ&@vIoT6aM9wX^IrST-3i2J8QX9M01n?#93DQNF8Wi)6{k;^#E4uSikI_gziQ?BCmF)wnT==Bl{UZk+ne8Zt5UmS>$2Km zdYXAnE{Rj?LCEiY@v$-4rrjTvi!e+1Hv{UHVGWQM!Vvl{i9ZH6zu@NVzq;K7cL3xE34pAe#bdK@-= z?}}%hk!VVRVN(@* zuz8hGZdurV2^3EC(#ZZr)b&80fIcEuZ;;Sh@RJm9#jU1a+TN}!* z?k40+9wa9wGD(;jY5kO#P11*8nLyoDT~@NAvav$4vCwt6^p6|Azy0-BpM3bmS6_Yg z$;DfBC9iH<3opBL#i~`ymTf!co7P7143iQT&o@7`T{ zcz0xS@Kd;Q81)Ol{KC7xe|_gF8G8=A@%o-UKzQ>TAN^N`>MzWN-59-M8!c7=oeLv+ zB^!q`m+jKv*ke9tC>erM4v$I_CKr>b8xxGh6#hV6-2RVL;t4Zylh{rodpt!ufd84U zlYnk`G|6o2a2RB6VvdDRNdKL*vZ%H!Cv?5PwXe_E$zZUrLo9qBmp_hx%FjaG=$+%1 zCD|ESuS?@DS!QF2Ge0>!on;AFFbC*z3OIgVL*4*ADJdklc)hZ0|C*BO>Wap?vN~Iv z3xQglE&TNtm;d<3%U@sq;?IBn>f)wN+ln?Udw$iP!G0L|vrWF1in6+vwks8{ywc#b zHMTh0&#vCq)Kv4TVwZUtQJ>D>(ZiuxxnJoC&muMzUU{N>YseqrfTzxvg$e)&uMJ|~I!RXaCJR|QRc zZmd}Px&oYCk?QiJu;OlRA%-Y8Cf9dmGCItxw9nCH)3i|uuXFzVUM>S8HXi@~$ee6u zB5d;#c1C0qIn)Jrn*Mvkiraw%7`iUMVc5~Asq1$Wqsaslwlwt8x0EEWbGAFXTDjCz zHT6o51+TLv5&&}d?VzCEtuR*|lO6^o<5Ye2%SmZrYRc|@6;Qcbw=Q4)@G><0lRtj=$IJWIY%1Tq zee2d2S3yw^T6PV$q(>a#M?QYIhp7immoA;&TWHBDL4{?Yr=&j=^jH{Cgn# zD|5iuFg5#65DHMd6*82@^Y8DC5={T(__(p>KQ9o{9T*zY*$&CebUQBXl9BQAgbECy=4f=D$1%a)}3H4w2jpl#A;uD`31%w|M=l2 zZFT!M)pYLOy>b2X&%JYe)!MTSC#0)faO4ojb|suE_=v{p>GF$7DnBP%t(A9}$={`wEPSIwN(UE#((LPV&YItV;0# z^WouSVj`3G>ja(X1AbU~#ijjvSC?#C)D-agyjc*}bW-oKHfrfh#nNy#g( zzFO|&*1+ZE#l>eeSM|BG#T!;_-V7CF6U@G&2lsA%(=Uh1ScXo14)5s0>xm0c{` zQCan zt)$qNW_q?!l#nE>T$c`49H}5%q{L{Ug z-~H(5vGcM_vc_>1PGEA&6M@gIa^84>smz`^Ba=f*A+u4S$pueT2{MD;n$6k5ml~-SR^_-^F)wN%$arrf` ztMOu8-T8(t-CJ2ve*WyXW38r*S7uc)e|RvcWmFD zJ)3(2MMb5%H*R=-eGxb#Jo`~<^fl-*jKj_qK>V3!cCvelyx{1CkM_b_faraD;ZN7D zUHj9gAHmEsSM$P(JvV#%`lX`EeY({CkD(Z}-J!v)du?7VG{kEMyL~zo;?68eu8<$K zL4(-=H!K#BwX|Vo;ghK-PEPP;nPoIgWMRZrOgAiS&aB9g%S+K#5LT%Fs02c!YJ!i8 z&PVTpFlf#$M`XMe=G~%Nset@UR+;#b-fq!#wc)7RJ#Rqvp>%WGg~)*TvY_(lnG{e@ z4&P&uKYEu^n;aF$!(o0KT?>s%SepM`m1Pwr2-Modp|`cU{9d~C@4vtO-4`Fe5743b zm%qOP!d6}G7}F8hxoY6LpB|cSeR}27D>tkzo}O`4R-gEomoU0jUESE$(pXboT?hEJ z^XHwxhV$pIwx270TZ$>$OHUSW*t2)w%Ren$y7HNS z+I#d**8nI`rx8E689w3Yg`7LzM|VMTDE0t92lpP7{2XGt<9(KX*@4od7Wxb7@kk`7 zxxAq;*DP@R#Q6A-Hf(f2&0=z(Yf*2Q>zgK|sxE^reKf=Mf#Gm+*c%{YtX^o(0=dmESS1l`bdV=q*krR+bE5$--JHD81eWNpbPDcz`d7&Icxc3)ogooPYc zUtNKaO{(hB9Shs-y7lGPUw{48pMm+BO^w5C)pb`cR_x!gWB(f8j8^jMtFOGW`stO+ zE?M7!Qm$IH_GBboS5{e>p0>fsS6*zayLhpty!=Ep%*Tnky2kSIA!lPb>u}sw_{ix~ zMVt2>1WpI{UYMNx^!T1VtAP6Jdp0u%3kGmt-+_Gxp~o=ajMlFypf7wTn194aJ~ODC zAp|f72M;2ohZk6NVAY=P{ zh32xdn(BJZP)E;%ZKCb-Yu|kL&CRQgZ{N08mX|Wv?N>R~zxKoZ`#;<#w@ttN0Av68 zC(7HD-0ePn@F&8YVgFu$e*f2>fB60zGIdmLXyn{s1#lby*$XRYdr-kaV|NML>Feuz zi8qIZ!;~1O7OQUoGqZ}~sZ(vbd_G8pTZ9|{Q{5u|V3bKzyCX8uPS{7-Y$XYq7qcf9B zy`#TSAyPs?*+V?VByW1+;yIZcgUZ+^>4a|wY0ByB8+Yj~ggIzaD=W{YC(WG(Oj}pI zV9-eyzI?FMP}bP^c?miqRae@(ZalQvo`4*4&xmmya(d9LB!jL~!f)U{99F9{8R>oS zxTc~Ui%mmRosWERjja6}!kOy2($Z2S`SjPhc459h|Ma%-_r|WSJA^*|nXLY20X@C$ zbGMER{MOI#?G)61{^|SgzrT6)>eZ@qm6fGswNDhCVd(dWbDzBS%Qq9Y*Aq)n;@t3u z1nR|(>IWXKF3uzYpg6KfNr*z*R+kyfCz&nSF&vjIRuNOgSG)hb;|0%vDD+*hfe#K!tvYE zGiS=HYddVqM@Rh)+_J%F{9I$@IZExXwl|)uYDbDrdE5`L4t}evt-W#Q&aXe?IbfuJ zQcAXe{PffJcshPoY@Y2NRpHeum)q${?4LN18xEh`kAw2!-ujz2IEM)mi$9v%KV_q$ z@4`zf$yDl;`G25fh_{#`qN#}hNfx9cO9ed>=ZgFrbZGexW2Rk7jq9De>o6-}DE%g4u*i;N-_r`S%VJeg?KmA_uCtZcve*Y9q9f1m!%?Hm16 z!u9vx;jsSw_we@|-2wf5!d*mkdLDlI0pS3o8v2788@nFP3<_E#u0mzQ8|q~)Y%^iT zmdQh{Bb*FJIThpiS+Um^W7+%DdjJ3+07*naR2P^!v45sTQen=63(l69XLULsh$(Ye zl}3kRo*f5Bl*PEtxtp-TcuFk9V+o!DN;ED;aM3qZgzq4$d;Gf)DpI%EDVbw;4%=21 zorHIX9=LK(HLv6nyYX25xIn0<6-Jk+)aidLrUZ42`a%}+z)lwiDGo~H^jhz0-wL5l zL4Cmf+LJy$bT~S7l*)b5TwC_1Ki#_Db(PBQ_VV-P<<&R3#SUs~eSK5i=HB`}qpq{_ zq83xMd%Z~KblQs-E@<(Z-z*%QIeX^J`6f-z-K`zuBM-Z7-?|KPGueApW&3wsmFLe_ zR#jcSdHLFR-*xqaJwMXZ)^#7j{fFmjT7t%roX!!4wp;k zig|tH-=`<1-R?!7+nZc4v|N-V?Zq!Y{rvN5x9)V2MOK2TUQylDF?<(WYTcSz3fc7? zBT#|YYWrqIPyHSt|J9dJChBe8J32Uci=_ray|r~>hF45Ssq(r^xHn$DTv=WT?@?ZU zhGKlzkqq*X&<%6KYpcjLbX!o?|=Y%eeoO>U|JNlet{leVU zz>q_(tUL%x`NqsS-hfeUJtjWrdK4tZS zlgpLGi=>Qt1~=h(+@gT~4iJMfLyxdR)uq4VXavV1iU@6H1Cv!3k~NRd;qW**t*b!Y zJv~jRyFCtbr?yiIW|i*CFFwC^rwjeH^I)i-hi+^)mdbltHPxJ`b>Hn71k|&F>O3-X z@7}#Z+w9u<^|sBozk=0Vey039M27EzBfqvZdJVPsH`gv-1>?Dr9;R|kaxc>dyZWDi zJwGuq)Zc#}+1pP_1xHr?Jqoz{JcDIR|KT5ZYHI46Dk_k{*V!O-1P1hzrR|-|CtCsIcRoA;XTF)ARFhaFzV&Q&8exu+HqOrvmi7qvHKpasLnZuM$a? z9Rck%Ex27=IG|>eQwr!xdl=6jLk__bs?Z$-JC$kr+PT6Gux{3(HczJeDM$j+(;q?~c=p~s+sMe>_eXXUoOj8vS=2JtMX!?hm<~sL%KRi28?prXjGagaIL1bK6ZN*zHF5)s;8J(093$kN+yA zp#Cn$t?`tskYpM32yd2Bt{vYHS61fd!{PAu^T#+>!87*9PdBlJzVlva&GFh|CKC)s z!jUAod_2dIOg@%^M;HC&94};ug&ol(Q2KIlv11p>WJ2WL;n=+%6JboY?Rov$x9D~= z=ytoI)1bFlb=p31@c-3(r>5e3HNToPFmL*m-t79OYI+oaXB`efh%I&2`<}fwHA4SL zX=z!*wR4z{BeIwCq!ED!aNUBfI_h#~&YJ>v2SE z$5K-F*KSe?%O78KzxuJkN1+Ge*DcN5zhe!nRO*Fif`-bedh|9amB3 zokuw>P$!?mrjE*h@Q(`Jx8QtuX+7}s*PfQb3a&FyVPFIqgl;JOA`STaE$W&OBZ zG>S)>Tkx@cEMw$&FE_VH1oPD|Z9K)7G80;H7u0mrb7zjlZ@84%xTqZ|( zn&`%Y*}*;8Tu$(K)t6F1V8bU9aKO|(9uva4&$GDbS#;B12sn{mevBT@ff-=f1 zF0=n=;U9SHs^oK`T?6c6p~K@sB+mrcTnzXrtu~qQ-&N@~OqoR@Rpio8ZO(N%CtDoP zp&cOV^>ijK*mQtB8w^rPC-{@UzkI<_J&`%2PXX=kP^gGK3Pr=@;xqn@NG2VN<`0pO zC_X2*FXEK4sezcD2I`#6Wil=c!R>KlN!>>|9JzM1iwscm~;{FW^FZ0T9Cnp_Upu^}Oi ze>*z*7fo6|LRFc!0pSc|z46eJ=gnPl@fXH8r;z zuigI%4OvPFzq?XZMHxp^fA>&-!%%AnB|&rRiLkKr>*w`Jr6rXV_l~vDvvzJ{hg3L>^|7tPHr|#~I_j47ssPDwY;q z8j(?m)bhm6k%cM+1VE2E99}Oaapc_HD*$@hy|_X)&cB^BkLfT;Y5D&yOugUcZ9~lv z)S+5CpejL@SYK9Fdgd&_RmywjWWwjG`-g<0NC#j3VR4z(4o%yr(b!y9Q+~Fpy^21$ z6sf#s(3Uvd(2g68xb)f3)rBE!drf=YjfS@6t(l&l;o**2Dic~;yTP5_+Jf%=_VV)b z_TDB%`i9Tz8oC<4`S~9|K*->`?{8jdrwqP=ypg7%wzZ@Fx2F$ZDwfVmKbd?g8VW_p z!lGz}V@*Jg`lHaH;AYzXX>;f4+x~|SA4hp*$VP^f4=u!_kDyIRfH6IdH`P<+e2t#ou=raF4ljP-9vUc~1-HxpN*)tSub~_Ay+HNu! zbXMu&C)#@x9e6A233U~8sDo*0O3RUS(~Dq4yrvpn)4`uWd3{|?O)Vw)9Ub&{TeDFb zZL6y&JxiZkdInEPMXhFJt8f&S3_5?5jhiqsAV#n^hXX0hjOmCiM6Zz*jN5H*yV7|$e_!a02WdJI!LgL`9J?T?S8hh zf*js%H|cc-L(3;xVZeZ8JhR133aCZk~@n_0Q&V2^dE6XW6M|7{Qr!o%9O4XF( z6SDOhn0vRT_FH4$S6`H!Ijg30O*iOYO{^CRWa>wSurnCo>!5yraH@By@E*1LNG*nR zNF?eT+Msp<#kvvJFq-MFtLtxT(A3@T`sUWH@4h408yhRh&f996K(VFtqwe7zRYC`a z3=63u9!J3mPsY=E6i{sJY4Z5{f(8A7X;DhfE;eD9`TTFj&i)%}C2{(X>AjC+A~4`M zb0I~?H7DpRqA8YBr!P5hD7i11<{&GBLd7{8VIP5~7bS_w|70B?)OSus@ zJOtEhnx`b=Xjf&C>AG2Xs2QG^P2ft%^4w^1?<4<4AP{glt$N*~<0GuR+u9nizh2!` ziy!=|@0kGVTegO>vNn3vwS!yn&CQ!v8_%`hXwvlbv{7K`r`XcgHb<5|e{`I|@gi21 zptmeSc82#F2^Dm~Fo*oW^_XBY@2eEZeWgElV(F@a#Rn0wqfwdr`AH}QM`dIPY4Pr+ z(s_lDoDwB|kuAwYX^!lInrnGYxVyC~QxsSl*Y(q16{ z&SkRzT_bQuO+~1agTMM$FjFhbMNNiOt+bq*IB3J2uOAwwjJl(>zO3z@MKXR{Q>xhd z+21z%JH$EH*_n}sFTQ9#$U0pPizG=V)3}9CJZ{ZQbYO`c1!D!jD8xYiVDD(Xq4Gvs ze}7$LW8<}NE?>TK<>p`8E1NpV7u@ac7@nCJylz`EE=0mhZ?buofg>bykOs?9uAP>- zXUT`rC;)!g7mWB+6g3Y7r2ty2xYEKwpR2JC3UeBL&lsW39CIASjLN}iG@n*GuBe<< zdg@6wC%PpJIR7PMu{q7Y9km;yFB17A%en>&g*TkWzk2a@k8hx-QQAFPVAY8Xph88yU9u^N!UhL%Q zp9zif(#ktsRadT@DKDq&9NP)#uAx~AQzx6RXZHX;T;26vN$UNgq!b)yEnuVGikn6~en$<$X7brz*#1tX?gz%_vF zB8!bjBy%zXuaLisB!k(bH;*AV`r^gr0nRCA<;Vu)@xTDhk_$^hgPtk>C`gjw2u3ic zvlE5Tr*O4|smB8@likBn9dHACv%p;eozgjS@b@UK8Wy0}pF+I>)q45aa!Q;T!%F1v zV8u}Vg(42ZQG|Mj5Fo3suBdG@O1;e}(5g_rRX1r^X^fTrM>LwY2SKmHV70ouR80c* z5po1~TUoULeIaBOnudn{<-~EpzchQjrmlaYzwF$l#`Y^!;N0ElZ@b<@f0}J%WGZ}o z9O#owu5>n$WTGg zaZhH9YB;xo`J|a10$s}mEmUKM8M>me19kXaMz*?=;x`#1rf}sH=NoUg6Y3Q_U&EwD zgQ%b(_uTNn+V}0}5EwYi|4M_|jp*mh^bAc*1p^lBUtojUYK461>}=1;v(`ahwzX&E z$p$64_TfE;+o{ zX@;E)D;SEUVoGBbJ8#@iqbe&7VyqI|F|$I}j3x&m#YOr4KIEH%VuY4~t;c18<>-(? zuUxcqZqz8*9KH)4hp5bSUN}SV1m&ADeTy^daj^C?8UMVx1x2uD4>LgsS%#T5kjdlA zf(MB5etn6R$_s@^oTo>ka6@xY8M3BCk0zN6j=NkQj|2QT2AxoL`yew0%O}L?Wze-; z)H-LEXYPLN;ZcUyBS%NlPHvuEI=Xb_l~>8tR^oS@(^pVBub^IjrtE=L*E@Qv@e(R_ zejtj?TRz&n;k5>wPApY;yr+NavM}uZBW*S9Rh3=j zZK}?ltGNytYsonU5e)21gCG>i66zw!$>o&tn=FkZJD2QK1);AFi{&;uyLeEcWzM;j zoNkv}aLOGd!WUEXU8)IiE+8*c_6CLo{dw`|A-(Y#8H7kq<2l1pJv>5*nsB95+}Q*% z`Hd^0uB>S*)TOh*`6Y30@YTzgFB4Rx`4<9_1e)^MY%U#v8ZDYoLR}2>YQkQyWaS)l zsZ#s-ee5hNl^fK~ATCC6-7U&A0MCj;Zh^RY3`g5^oqFTavTdTZLsQQ-*D6q_U#iP_ z*oxpz22W8Jd3$AL`)!Q6;RZ0AQ)7arrudb##oJfF9Veg4M&Q z`y7zXFpf5$-HZ0zP(AsNnl{_4Kj8IZc3^!lI%w;!<;D#CI9JvFaMsw@hXYgq-Qf)c zLJO`q1-rQ7*-x5maRE|VW^F+<%3^4Wr*?VDlHw%?s>{-B^kQ^Ds4GX1G8xLdFi=~F z$Ak3HpjKD%1x!#6vybBBX2s}EDWMfUd`{t7U~%pQbxPv}y&|4g(mC#$ibh>9NLl>m z%NK>h+s(a1@DVP?fH1O0Icj7fh`>(&HBNc>gTeU+OY3jI{$E&l6jDfCIYE|1^}sBl z$O7Iy*f!2!AKE=$ zM2~<#olU)iZN2GydF78roP=t|1{6@Prkwd-B#I*Y5Ogfm@2mTPUR7?UGxKv!#ns2@{N?kAhSrqoJ0| z33Qpe0F|M9j#0;-Bi?xh^?jvLE9UblF}>xUO`Puqa5*hdPx5^VGWx_Dvhumdg~H3t z12X3@uWIh>B_LW)L4Z(?`WJ+s4^w5cSIAOoe|ShP=a91qo&pM@9`m%4V6S?~rMulL zEAHt@_acwoJaz}gce4qA!|Y6*+Px!O)FiJiGBb@(1Jg9I9g+*ED5>nKfoxDczaS7; zi@FU(yGXS6_c~HJ;TtY8&aVtsy5vncTzvx;CyPod(EM4{Hl*8ya)=*Fm1S|Gu>uXab!P;uGwzUy)(}t8dsuulACmLQoT~Zg96Aa5b$#^UT|9$m&A8=)^?7L z@+k@mX`Cy-L5e~llgwt0kF$m2LNvBjJwa3R>lx}fPu0x6Itz5V@RkH|WMd^(uQCLxphEM9C50#Xj7u_0u z3Q&DjRM&h#u=n+T`}NH$Wb91ND6c3hEBj(}%D>=blCEOy&IP9nXW<%Cv?o@9U=s$ORjg4gu_F}nGNN?d=CGb;sj zEE*xfNeg}Sh@7WTAC1USN`6kd?Fh+Giey$*hAV13EEL02QSRzzkT+3~KfNkUULLd- zMSfTrapqMIFUD~Aw74jxSZJ2r2dnbax57gGGRw6q;s!VkNWf#=bqPB=n>%YuM}#Q_ z`OpH+NP=!xfYcP1^l0%S78S_ak(i3_D$Xf9{c%pU1&@w9jGU)zb{`TtlTNbe#{&y4 zuS0i1o7h=fo*5z7hgrkBgI}#3wRH%&5Cg2JKF?MSLKVGQHMJF`r7Zpm-bEAJH2qv% z_W7u>&tUBR`uo3DmGacJw7jOQtpCAMaDyH~Nd?`@Lbimu)K1({w(Sa2Prsx0 zJ)L4jSD-ED>jiCM(dW^E1V`4Ow=RED8ca!qBTyb#}#A+%IJ?>q?wC&n~*2C7>%x%SQjE zC%^q)x4v%##o|m=Y0aIdo9kgX_XTSabwZp~aSYOEO$Fx$J+@^kPC^cL2Y}w;uxPF8 zM}?iXhN1rc?xBghlzDv7{I_uv_IO-cy_b@BtMp~t+?#ANp2<;(q{xKrM==*wd*Spp zM>45sC?(dzu$J~gP^rYYEG0NqOfCoMDb4Xe9p&X0)($TmA1a9Ne-Nc{PNZ@wQMQQs zzB2v-;;NFo;5CB0$!tDW@8*Y*e2F0cC}(uZ(`OTJ$l1S~!@0Tn`K3gHdvy2<9h_t^ zna@!12trLf6ij9c#~G?l_Qk?enw%NMvIQ)(c|BNourDt1Y<1=J3KVD--5!V4q}PYw zP9^Opy?hSRHZrWV;<+)`%HEz#9tQzf?^VO`yMs&l>NBN+KY=`+?7e^cA@}7=u4R*y z(EZofw;HReu;$d*_F&%s$SP4W=CWA4C$Ix_y-EMKHi`kYnvRiKoJED)CGX-v0@0*3 zP6dJw2=$p^z7le`q3-iK!||kT*`nSn3XINe-9E;e(BXF~^Pg>BSWa^KOr+Gg(N&s`M9~;dOEGepr}! zH~orAPE2A{)N7HowelH{Rz!LNy@VMQXU#Vs<0C>O~R&m_TR0Cz5>nq0>REzV~|D(DLAQ zD3IUnX{c!!H9F|itN|}#fXmu9we)7*AAtyy>VsoRa`!;|9lg~UToekjlD-QvGdJBC z*Br_pp+fgzAC7@BM~j}7rpT2t11c^H)ISJgSI68Oz$s%_`S808Gg~_T&WUnf^kil3 z(um%XoDq5&DBR<$SdWs2l|a3z{LI-Z$cpgHo&0})zXqt6e0J^cbEBiiZ$H0%yX)2uzbu7=3l@pc z@ghM}&=$CRk(5b#U2jb}GazUEUXRP^R7*Qb0<`48Dc>7yo7h?&9D(|*#10>@wz-- zk4NC@qX$8+(@P!^K(_z@AOJ~3K~x4~8~q{WHT||JvU2B11fa-G<-LOGKo#`rQ*)l0{7pw{V`&1OMUQ9c4L_~)Wcm71TFhNf z^17sQXA_=%X;kEi;1JH8A|5RoU47lJ)~g<{7?s(`uq38xUb4N zI@+tOB}5+(v$ysxzT6?YaFp_umNeeFcI!r2S@Y=VRQ3p}Rg{S9blN^672s9}mMT30 zcKXUdT_T4>F8)kKUH>c+zEh}MwBwdO%GV`h+x5MpB^(x;dD357);4987DDv&cq}FZ z#BzF#!9x zRgwvl4_n_!WHU0JhGZlf3Hs;fgW)he#L%4a2O|sU)F}G@%2kr6*%v!B+eQ#^1p$?RW`h&s{%(`{rXs30!M`UiG#aCB@G}BEVrmC%) z7njQ0dF+NE4B9o-WhLjnzIE$XO<7INkBQ)6Auf%NV;@SVdxX{j=p7%UZXnc6hTi6~ zilzqJQs7joCmcLQC`qd`j^4XxG~R0-TzZ5OZ2G@lSQW`%;~A<^W(-5T(F8d zS=l@8qM-njV~k<3afh6a96Th$2=r(WYYOq$?uq&!!H&aiK=^~gGiUVyvE7u)?TSFE z%GjlfsPD>Rvd%tN0pgvK+Q~{tXPtq#*o_d|Ffeh^{!eq`R%Y=uWFy-N=*n^0x3RD= zKR>^|x4x7(E`ipGK-EOGAyKw5k!DH5G*!$$98rvzWLpE+S}b?g3} zn##(D$Aw3a`o8?~%P*SmEd)XlvT~Efc7#watW>{Y&7+zl|ThGfZ#_?!Au|!Gz5~S~! z5@6Wi>PI%2Jxnv%f(d)Oi|$24bjsE&R+HIecPnK(@_2;!NoLDp_}X$&=SIe z(j-DS6>h`BcUv3iH$7zRU`o*=QCFk1WO1>hx&nAtE3c-e3JU7bmAQYXvZUnexnI8c z^wZD3{=BB`!K0062zP{ly2F7M5v6iI520=~LHEL99BpW`ts(56e(Ckd@^xB+bZ<(i z(XPKgDjYeDR#(8G>+F>D28VR9&x#90cnjp>Qrd1P&8S1pfG_Z+P8OF$sSePQKw~Eb zRGB35zugat*rZsBz#bc{K8l(v$oyz*LU5;t7ot+Tip3_34dMBmI=LaR&}XdTaOHo?$|rC+$?H zRWzv$cop}G@=`G6xldcq=NuX@U*E~sQ?NyaE{SW-n(5eqQMfM?rMsvy50mphR8Sa`~|TPAEI@d&N?)n2e;;>JpnupXA(-P?kZPibPQi z^Z1NSc%Nx9f-`rDK}EKnCfJKt{!XGiZ$fghG3k zqB&W1*uS*%erNMwdx@25j*fQLcUYoGwDy92p0CGX+mytScjw4XLDj_M3b&xu5b_we zkAYfaqKw$mmo3cHVr{jFlXWt6Y%gm%FajOwsB6;ncXu>U!7ipR_4Uk@1aFQ}XF5#f z)ys|7F8}@QwR2s!yRJ53LfYP5*S{2xQQC-U__zi7cG$*n@k$0gkp}wWlD2mgH@>H) zPGN3wjq9Xwy-BObxP@Bca2> zA-HDZnqD*-3x()!;kDtOlQ6urOa*y1%h6P=_CH#Ki>32&jwMG}-y()~Xigcfpz)Iv zR-Y?&WFcO9;?flxM?YRx^l8$(2$f-&Gm2?*&jv#x^>8#h|Hwx04b;xbk?$=nZNA@G z-=s2L94_P6_BIdQgBu(E1;~;R>I^PAuk^B#r8z9HdnQx3xgn2`K7gR_@vW{pI+I85 zJL+NU=)h4xAD)@%(F_goeb(-dq2aqjZFP0E4fF$sU48xx^W(*~GiVj{)s>Bn6xR!d zAHKQS-hSmu6_#ZP^l&^x2-6pWh>- z_aSQqrv}_9q-Akt$`dMw#|3x;(c0TpHcFH!%`WQ(!r$lFXJAq;^W-g+R_1Da`bV{O zJP+?Ug%ilLc7!5KSCxKiQH|UQF>+9=tn@ihsFE{sg zl-p&v4zmuiyt=UEV!8mIxX0Y@vb@? zI!mEoL*-V>TQ5C5J$Gj)k-t0A)6me$8xfT5m6nxNR&Z>uR+4v)?3@Q^n#!=0e(U!a zw=OqUo?+qVrlz*J^>_@cl#Dv2e2hDrx{tn}P8~TRX}r%FF!o+Qg*sXd7X7%jbHD_} zX-enD;N&E+w{E z<0_*T!vK_J8R1}fGXjgJvcR7AZ`u68_+mnQlJ$$|u?>Slmq@G=;+wy`RD{Sj=jM2? z6WejwUbM6x2P)IH+Q$Z;KEP1T2a5d;VfRClQ=3o#dp_4kx1T zfj)z4qJ+8$x>p8+*K*-vpET|YShc#~{OIOpA|FEN#!TLk5^H9J0!~==1Ex9z_oibIQFJP6Oy!iA4Qy!g0}C=g=NaDS9SqZ!V^| zcUZXU(ZyvySv26&;&+3e$NAH=KxjQm4a(!ZJ@2F5HEZZo=JIDwwpPdt0=9! zcKKT4t)GARz8yFD0Q%io6?BgoPn;OQ@B@iQ&_Ny^j{@4W3r9!m8%5Oh5>;)waii8~ zZRw=i?fR%uIU!59>kK-b*L2~_=H3U!aea%{8Flu~ClWGh?tP5L2{8~2^KhK90y}Kz z@DN-XIT|@W7AF>!%sLuBM5{ihh)M77heCM;^$+Tb0sS2e@_d8?wb*_Ddkz;o)ty#> zG=ybSX%KQ0gcUj$kKV+pqbv-ceUZrAgBY;r$1hoiZfj@m z@l$b+`Z2+NTo6aTHiB06gASL$ArQqLGj98^g9VMr;i1~e!ia8BJyaRPag}&i5sfVpTPkhRC=&Uwe1zvKRK?MB)zGyxMk`i@%ZC z*~>|xRg^xd*_BK#ofH9y-Mh-9Ce$ClczjUU;VTi_bDK{eGw4sBK1WhV$diF4bq2gw z;HEh|X2f^0Eu?hg7W$d~f{G+rnpKiQF(3BXeeP+>1foIXl+CuZv_$YvO@&boTC^8> zm)2)zueaf(A^->G6{0yK%pJX1D$z^9X>4!5-QHMvL!*JP=*aABFyQj}7RT&9WS0(? zmmaxsLY@tso=S&KYjTZSLS7d*7XeD`QPF!acOw@sna02R^3UHI^^&onp_!dLCv}ES z`v3cKbm_;kwg*ltrRMZt8~jNKOGINa^1{r6r8ggoVmN_BzrnaPor^~@!Y1SGPoW_fyK|qX^xpG^<*HV=t$8u{rgQB|Xt|Ep}wZd?ghx!hGrl zoVi?+mDtW+pO1v7mgd&4C9O5&wVL&Pqs`3^#tp{N zwzdbH(HVrjOTEnxjt=_g<^vlWtK`q@0}@#TtMMd(I!m*slffW(NBN96Ko6=TxRvOO zq$6`Kk2k&tw0*4~DpFe*pq{_(O6Y5Z* zJlZk#Q55tBm}2YzO_s_f^$jO`2jdLE-n$wNc^P!@tLUFY-asfC4TV;{J_r`UN6@q4 zqzpTIbo5jtZxz+m+XoLT&hu7UIa_*3Wo1btB*Eb2yQ*t6pkWPDjM$(*%;&a4CBft7 ztB{~ejE|4^(KBhmM6D%Lhy(~=Cx1iq1?jux87zI!OYysxU>~J|d}(Las8~9IPoRI% z{P^+Qls~c&T3uY6Ce*|9=0#)C2uu;8jyz|LWV3w9P=P6hy9_wVf|3{~%9ZR2HC!~4 z=N-6xWi$8`1y&F!DBVx<6O-Yo8hUS{6hG0b$f&u(iFKc{bv$~4QlS*>B6|}-J)+2H z#T5-HWF_%rHVm3}aDM)mS1&f7FY}#BZ%u26-`ZqdN*16dUzv5PnAd;7MY|;!1Ke0M-Tislg_o^421&t zo?JdIG;tnWuk8Z^mdXu-@!Kz&A58Tg9j_ZD#l=&0*Va%|R#`VV<=+UsUR_yPG{CW1&Na|fYgj-uY^}sq&niV934WeRCtJ-2ru>o5_U1`9uWuMRZ zuz$vjMGTbj`DxVulW$j^fp}Wjc{;SL^fweWN-0?VU+eT)c7D%`=cfsZLQ0Z<(?krhMl4YC~sT>xG9J~ukHJtE) zKP{?gkC?#XN$?0`Cr3Qq_m@va5_eu{zzWTp^XCcmbLXytVR5dpv8=NFMty((5OyAR zjNdat{hF8r8z$KwX?-{9`WI=2}+%fsBHl&Sr@aS9iSk9 z4=reEe5?}{6u@xv(xaI>wu^vCgnIX)n?c8M*9%{iQK5dGmm$=>D1!YwY@OgPsVXTs zce#<=yk>|sC)U>~|A!vA56VZ2_yQjM`Sie{JhO0^akxy{K36E}#Y@y0;sLbkEm06J z$nH(L-sbC1mS^uR9c9V4_esXly}dzAZB2XS4XWoXx(gS+)M{J$#>a!h%T$>hz|gV?#(_^T~u&b|0g@DE?;2BB10T2r|x# z>vK)jV7v>etU7`r)Jsb~BU8WqukX)6-M6N#dxoOTdN`cPM-eQbYzNTIJ|^{0xrh`K zqjRiiShUgtWsT%rfV#t>_#KNL=8uo~?41%|Uz=Sj93rAi#=-YTwzj&unj8Hivm1}T z>@$w`el_l-s1Z(vsmN703OKE_0jUQ$65&Q1pK6SSq7fnLniK)Qhhd34z1Wk>ocyEkHcYR`6i2RT&~dAcc^8r3 zLNG%9{Uw18EzK=OQdoWMF!(qjuw%1fx!XzBuGbl0;0WS){~d~*|V+EbRUVUdzEi0YRcOMff8DmnM{<*pkI-4iqG>+9i2 zD6q<*f*&4oBtGa`q9bQDpzc(}UWU!&(#*K$Fv$GqL&ObH!;E`YIv+9zJdYFEqnjMZ8Z)BEzC6-Gl4 zoE85f&k)G@yinX0u;dg%%`Ts26bx8Ft`%enL5abq#)Zi;PwwAQXU^nl%*6xpQ3wF) zqA8nE+H)e5N2v0EG%go#$>h@di?`eC+10_z3F^u$W_xE1pd$=AjYe^G+a)q5dQSzm z2&k0LxrFr-4w5C{a&Vg-m|>!&-Ql zflenzZowe;Vq?&47F}90b*vO+j*pWOklKVUTpE`f0llEmo($sXAJWW(PYc~ZSa?RY z_EV^*PGJ5Iw*GG)OcobuImC-3FH$%@62xiBI>YPRFW+v8crK9MQzV92Q(S!PJ^8|= z+1c5p_4Qc-zOS#3ayWXk%w{Ul9dPllUsH zQOGwWTzVIZNAfK!f#?xGI}8p?XW2D)R}GTozncf2AZ%giCQaF{k5CRXJ4n^KYUJCO(Ztoya`6aOJOJ!CF4;)rf%Xnh{uB)etsO1LLUY|6bkfoFr|$? zSr(#=9LZzpeN}N^G+$x%j9wf~n$xy?f_f_TAF%z;k3pJ)`YBUaUle`##4x||!8b<- zZ=bKJ&i#~sKmFPwQ(K1S3v#LlMkCmYT8W&u!y|@W@Vl$#wh?I8$CNHXp&8tzZT`f&KR2XRxFjFaQ1E=?&ZRQaA$DA(*;I z59oNcX1x6YBqa4xf@w8a3*dlI3)=MydF5y4ZWRu?su=alU0pYL zi6sEkeM+fr9~&?m(02!u%V9=Hk)&~}mz;}9??OvxQ9OtygI5^5&f@Zl-?|sgcCShQ z-_4`TYs-M$DjA&X6y?`!BUH-uefi^WUwn(rt#N%{-=iSZ=XMD0`MGr}b@q;r=7ZQN zQnf*ZdK{BbBSBbul&@eVMK^^{+bW=c5E?enBT6wz@|`L=1qBOb=JNj&bvXrT3;r4> zpsS;oNaO_dr2MhfGsR~9|85@OrrVC99RCsM$HzzffgM78hKi?|yCW0Juz6eC;K)=W zEcIbN8Oq1#9bQphSZ+r51R?-Rfsa<6pxii6xvx@gO<~tXZr*rrq=%Pa>O}_6RLOD( zlf5Xs;>)?08!xrjw2iF$H$s6>Xq96+58Mp;POXmeMu*wJlQ#Nlfon=khA*`@A1TWg4GvgVKe% zAeB3A{7g@qrfuZ7VC*we0-rt3y9Mgco;_QcoCKq0(Qbgx?c=>> zmlv{CEG_Nucs;9b6m&cbmyAh9o81D#phO%N1tcR@fx|ns)wRInZDhQU_{S~&u*|V z>{DuYjtV$>S-jGPUP|GeE{7f58cQ;nPe#Jo#8M*h_U&8V65QTNa8gg`2Ipbl8;I{4 z98DqOC)UfrWH>zJgGov(|G?6bu|h${h&>u*RY@fA+=tC6M{v_ZiK>V?Ix+ti*|{_S z@dw1&0MR4-Utg@Rk_^9jxrvGDe*(Rj;7#<5^x*!+L{Dqagl)t&(bG_`nb_Hx>g{!f zyrKAO-|C8j`m;$EGFTilIml|PqH_Y^QE!>;dMF+s$WtiBg&*C$5k_5f;GrihMla_Y zAv#5`n^&&3*FBtn6b)?zTzoDL(il_=P?=UJEST_zQ;qI&m=M>;>5FwdRwa zU0p~$I`n;Y-zbIQ>? zmYSi?o85bVusJvP`0?D!mv17`jbLzT-k*{EY+dmnO5{WE43!1L30bpxW9zbEC7FlW(g@(JO@ z%NM`TF^gvVqheh_9Oc{ca4UAvhVR}T?(XR68M%A6qqbf%)H5 z+VG=i9$)C~ox11rTlA8okg4c5`rz@A#Ym+JC59H4#}&;-7vQ)zpt?(i%_d>~;>Fxj z5G>O-hj|&7*|7+o#6Gy0n|VT18LS*4F;eqfzX9dwc6{x6qkT z78QGjhc%FR(sb0;+NQ*1)*|RDlhf$KdF&KzC5KhALP;K=I4I2{pdF#tE7QCRiNecp zQD(o_h>ad(d!FLdr-ei*abr@%nSV$fb$=$I1F1o&q6MavF450L^}# zpOfOh$WS&i_xA0JhtHRl>h07~AU^l^gSC7$$}EMn5{7?;LfE^Vh(PWw*TIt83* zDlpugXnxg6r8|%7CJUpPKqT|E6V+v%UpEuq(DH+S$C>A8fyHNIbu z)%kyaq~!hH=;&x~?*r#JmL`qk<2rDt`{*^U>kC4US=?wAm$7iKo+A63;KD+bO0H;- z0zjB6cjlnW`Aj^M&nwG;X^`GBDfN0+EF=_%#kdB0X))E%_Z2B$F_%?6JeaSP6#gNs z%d$#~X1NMcq{kztP!~Y}4f!JA8MSFIZv?|H-@bbMbeoKQO-x#M-YaMRK(bhSuBpXQ zrUuPWcXtPGoHuA1YC&bLtEhe84~4u`l&PpAo#Ub$2{oi7$OEfXMl$%LY zqQ|%BkaPy^gNKzRK)p&)g|2F^DiQY-zxk~3v&;8y)Hht8rKrAu-BeR2q3)%Gz-j@^ zE|*@{DOt(SD_t6wR%hKfJS=8&d|PhJz3O(GJKwF^3H3>K@$T1V`-=EZ92Sey`N%mn zKR-3~z}Sn|S6_YAN2y`oSG~?hmOg7F6c9V!EX>D8vgmh9FW;b57Y#=JV#$aMUQp6x z8FyLJ%8d_DpX5RzCpc7mx;`cVi(o+tGn`aZQK+C#=7kD80IIEL((!DekUT+L2=%L& z%d(iZ#FejI4C*4sPYOa69*onByLdFR^z!ZRbI*Cuio(5cv?K2K;we~LdxFhGLcM!} zQHN|}Z7qw7^!N8K1*0MF;`H=Ks54)N;O1(bYBvkG^A1QBdF(6vUO(fFIk#Kt?7Vn% z+(nriGIqt(tIjoEy;4$g>E?Hh-(0=jRasrzHXC#TQiqGT867Px6g4akiBdU9cToZj z8eA@LJapE8%HQt#Ou9)#Gtn%{xvwu!bPI^2RNjJXm$mt9$1pIz~ zZ{N6c!SBM_Z17Q^R(sJBqL2>hS90;;aFTFO#xsdGM@Q>?4G#yGQ3XemM~A$65EOk| zVQhTVJYFb3c@XOo(Ma^LkWWDgGM-_Wz^D`{9R{zIzl*`lNtZ^>LKQHb6vtkeVVP93 zdeMwix7kiIb|u}D1?3_mi$0;6`pc^K!=&Nf;1zxwL*bB@8Yu+6?JT~gF3;Bub8`AEnKdnZ;JHE!*BJo6(oE(8==!_ zgX^D{RF#%0sMBvs+Ru@>SKYjNsqyO7uFBHtriQ@>#&MpVW2?=iV^$3IZYVR*>vWwu z3&d~;d?fM~tiZX8F@2F+_MSz%KDIhW*8ZB}jNOO!98?#~1Mb-C6((6(_2c0Gd7XNk z7a#9z=`&ii7cO?{v{oLl3TsDjPb82xWseJQ(5*>|;Re|{eS|IE&+Fr2y*2gj-EJ%; zvxIOo6aw=_K0ZF=V|+N#os94`07W-4#&is^wOY*PFyRr5c0rFz3jHC4AD#T@b%MF9 zIDs@rcJ(1pb3b~7!Y|?Dal8(=!@Gl61H_-e)HSs@v)3^s*3Oyn#GqdvnO!dwFtc7P zf)3FNp&L!PmWh1lLckjUgT*UOf4SYNOW?CWCdr`FeetI%&esWcfM0@tDit4SZ?9~x zq+rrN>vwuxU`Wvqoz4`XxWa=zdYlYez2pioe-EoLeby*n1m~q{K0L*=j>WMSLVeM_ zGCjFyH~Z}70ng&3-De)iAEyQeAbG4exm-d6-6v6W>Xam4&Q-j)*~+NXk1+QCB9L&x zN?3$bIo$rD@GCTcg2}vS)yCu4f2FV<@?)iaBZ@Q+iez#soy!9@ZsKthUb%{zN-NCh zB5w`@xn$<_5MBHXz3KD`5BfCd>ZjpD9N7g6>tn)Q_~nbYuUF)02Y*vNg@tED;$RvB z6tkr3)c*OiOII!l)cNO2SFZeepMO19*;QFt(?sc{&F>63BO4ZS@l@@Bz31a70zna- z-m($EfDhha+!6}WH$;gBGdUoOHns?rtj^AN_LjvJ2wRU0PzmY53Xgrv9Lqb#%wq!s zEiGn;o^nq2q}i;qc&(kd4J>MSiyxZWBA)~5dx<1=yrJ`PnB~22bl?x=pvb7?cu?j8 z#@Hp?@Y55q038EfFIG09QaCk`jtj`rxpygEh!X-N=|7;(7oAWT6j4{j3IrSaKcX%x zrk++7Hqwev6_5J`>XA1Gg|{yr|Ni(f?zFR;Cm+B31fZ{B;}lA99pI?eSM#}!%JS+P z9fPy$$!N%9qBoBW>zQKi)6ZB^7%dn{u-Q0;r}`RW58P}nq7E{Qq}BfA({ooY-Mplt ze&y1os+)xaxcEyY?d@fi6i{k4wxBB%DIAVFEo6bl4St>}Q=nY(a`kfcU7G)8OQy zn4GfuBvzB;JdkEf-%qRC4kwjcOpqyyE?U`fI)!#xoP&s*?$3x(Op!jv+i$9|=g1qde}$#BG{G zyP{VzX~!-Sd1G`-y%a31OqiDr|RE?RU3zN!4eIC89ffkP^;G~7`i~6y!oPM zfWRfIzDTI!j_jg&Y%F@5pIn(9AP0}>AU%7M!~1&Gv+5Qt#(@@{?vo3h3g~^k3Ci1c z_`EGp-=J(R3nd>2c4gRV{0or`ZxUrQnTX#nbJGSnbw(M%(lfDv&B#NHVT*h1`>5CD z4BOuRyLW;|D|XpXoT-&tTo5i)+*Jm=64W#5s>A92jItXc{zf$5Uq#s_$k&8=Jo)DB z+gIe~U;O@f?zw;*C$AqqeAur{!?0$KcwSBzkehF+yKW0_gup^2Q=<0{?=k!LY3R_Q z7so5F1cXF6w&Vc0#mDO6r%^W;bbtQzvr9K`-V|`3J*x!xvsG6qkFUbII&KGO2A38B zlyGGVk1qV>FQe;Z>~^L}8h|>M8^jkA0fpi?**axw)9w|YeZb^%msRMOZ>NDQkIof-&y>o*4&Q1bL z{h*hNJ8Kl%xg(35F6a-+$zWJ8mjoJ-pt6ZT>0Txsl|i9ohAfN@Cm>RM>46s@Fr{Uk z$Y@gS$YNjq<3V~_xeLxId-C5=XU$1jZQIBqjn6aHhr>sjC3fPG`Im3szIgSPu>bw( za~1U`PaZzJq3PguOg%1gk-IJB+YRR{>iTV1HzS*~3t}9cJAylRX*|rHwTzE5?q2a) zbx+z)+xj$6*RrW!xpE1pi^5IVeET_o-dZ>AY~kr1u5}JZ{3(K4v#Ne2~*27xj7t9(~OI zdev=i8Czt~r&~I87qp#NfW*GD@!rV9#2RbrCsDvbUwASkMFf94Q9+u%n2 zFrJBKk_$;zhF0)E`v%jQjU)~z<_m@6g3zQOCy(KKdLQ~DyJFoj9uF<}gCJ!ps8g=E z5m!JzAyA0s`>8_hG-)a$Sh8xD0QYj5AqPxoR9N;Oo$=r{Z?6(o@i>bB#y6ovZHYl@<4x+5XyNo?e+=#5FQ1J60y` zlyG#~eV$eNzE&n%E?l^v9Wxk>ZEfJzjf~vAyM=}vp-!)jggAAKYj{C=3UKHxl;;U+ z@{m$AIg*YD?ZhhrLo7`hj|PIt?3=gB>-WFUA+U4x{(NMlXY1%W zFBaF8mzFA^pDAzB3{Dv>5Tl}8+V|RrEdJT_KPM;0Ca3LSMPu?we?g?%g8Isp4tcm2 zs-RQS1hY578_Dk(OTUpuYd@@QYq6rC| zfy|P=hy|PqiE_t)i`zkNyV{3eU360f@>!*rV{CD9a?w3GX*V}M;FAlVv>=PS-q6rto0**$85y40;lR$0Izg4~`d&7;fgWrq$VU~#Z9D>*%B_|2dcupi#+=buK%KYbgGnJ6`%(3lR@WWm z)2JuKBcW_CE6LrzEzqRsJ138y&AxdZvDbq12^v(BZ0XoeP?wNUMPrPSKh855p33NFD(dF3&WnHflt-#3 zmQJ8k7WeAy?UJ&xCQZjqVY`2BX?;E7B17-JK4@zzt9k5C!p%77tC%|p^bN4GO-$0G z2f$&rubR!Pi)J%WUtM*BVqtD+2{{JF5X1+_54>KSL_6`H;>9Nj$68uC9TMezh6|s3 za#1HqSb?H+X5wzo-Qm_A+ZJ1RI2jJ_z28}TvYm*8z@3Xw#>To1m|*5Jkn6{ALlOT^ zZU|8eL9Aq_3&t$LzN@g}`L+NElYF5q0;)zF(9x6hf0Ve+SK8Qg1?=2Sm(`&)~*~WYFraH)tBl8gI`9;~{#~kWmoo)^|?quuI6{7vSN| zs~&@oiZ%D@>Y{JaOh`|T4YX)u5K(!(GB&nCsou);A=VqoOJsTgz=)rG*6G!Fkx8K0RVzTIS| zOoBkSyD5nrm^5F|#>fS&EK*g8o&kOUaQch>rVkH{jcKV&*Iv|J_@vXI>oej+)sTjg z*ap4}KD>-fhhV4I&f3GrgnB#_-Jtr7>h=g_b6GNFe>CF9_2zUYQYeU+4y66zY*yJg zBG*7>E-R;9Axp@SHm(XH(4%u)5a=DMeRx@DPM}hVs9qlKJ}GD9ld|m;D^ffg#Vs7g z~N<>bp39NS;Ldi8vn>h=B!wsj3eUp3GLJbUK+nbOJ|HyTD}je0LH zxC+H7#vE9JDXT0na+lP~hc~=XHJQYbPfp_hIn6CuveYlX_*^t-PQM^7_orVEUbWvC zvaS0cMM4WMtDcJf>vd(HUH$##dYT+OJzggBzy+-iYqbum)MtTgq{9N`0+8g%znJa5 zMY8Tma_nOlq?l)NWz{^niUtlc%6|%57ZanFPJ8Etiw5Z;5;=oT-%E-6%nT$ES?ZQv zjQSQ&ptq^E+1yD)$V-ZMo5Q%D%rPnZ={dl1aiLH+%CK+*g?U0U5rBuJLRfEVY8Y8En#6u9r{`d=2-Kl2X(wA#P#4TO7Zj#( z2@3ocak!h3xiRg-L!thDS9|}=?35+25m;cgpbOXAKL69N$A$2_ z5MPr60}IZ?BuTnHm^ykjpzesZ7obkh#^fY@YUc%4h`##bz%&);)5U2K**SwgFwog~ z;S;SxN0{q)t$At!d@-DltQR*6W*BvzQmok?K7G2q$FgjGe=>{SOftSeK;-kmU>-dg zIg&X(W@2Iz4BNtyIJQPX8-m0+3g)|1KkX~}&++1tq7Z>36O6`-^K}{NzbsVTGeyv0 z?XqBNi7w0u=znC?DlF|2)ah~M)hwoO#8Z*^-<3@M#nUHGwkOEJPfQGnlXx0Fz*l~T zP_HR#7@hY!={+_XEG`yuwYwG6G2MWUg-a2T!1jyRgYud`Yg%OclarLnwdnK)UGEoV zm7*ti3U9~8RCsYP-Ycif2QARo?! zTT0c7MEYJ_YRU+kEN(K#GE9#`GADKyg(!vSxr&|jkLYqA$r{K)X)bvJII6lRJ*xkY zumACGqE6d@@jv4|XOD6yKlb5BSq?^zvTXYvD1jr4pd3blGY?WH!jj`Ud^=60kx3oO z6yjiHN~~l7!#2SZcD0E^R7mJ1MB64|d#s_Y^!6Uvkf&8+lCbe=rH>vTahp+XPKNYi(y~O(OX;G*R4AUl8U!?oW6AZqEjro z=`?bD62idFix$!%1~_#h3 zNhjdHCwJ~!UXKXS(LyD5DZkiD%6I>c(>E_9Fo}}Nk>&!S<{tGdCR!*sF3U8|_S zAP1kqM9egw2@2{-(8HNr+A-x|XkgRY{yn{WIy!zGO04@|+Ii^ArR%qISSpB?3MH^> z->aK?&wc-B5gpPoLvF6R=~CL@0xY;+K|SZt?}S5_wMo{qb1`hJpc5Ai=Bh?4iKOr> z0Y3-3{>dlf!GN5PlOqRWRI(R6(%HA(djIsH-Mluujk(}5K7{(jom<~>2J2slZSOsP zDiZCOg~L1y;`F8aGxzV;N_8w(!53FoFVN-+QUB?C z`m;WOEBC=`-f|ZD<6pq?eKCp_(|rKwIS=MezJZ?2A<;P zB>V1@@kww>b0>tZ1WDMp^d2~O^2P3u{Y8osb~8Q2456MdIWafz>I>_7uibl80R=_O zFmh!I&OvC4ejP}Bl&O*Esf}#LFtVw+tQdHh*4dGsZLOh}~CL1x)kR4hunjzKy!@%WL)O%4!p(yQ*N7 zt9O;%nw`B5{w2C6`5V2F%bMV?Az^QM^E3>4y+s;cIPnDf4_D#Kkq5s6MjZ>-C|LiW zt^J3GKE7~aIOk$-TSm~ga_@>K>pTS!6O=9(caz?4=KO zW8d6MFTJ|Et=t9YTKp^kJNnii0iSpw=L*Go&QtK_%W!4)nv zY@_PVFr#a!w%l3t$YV}F3%l-3x3LThFMYYS^6Z=&`R`;<8lCLEcU3#c3qDby(CdE6 zjtBA@O;Ne4b8@lXs(bzf#p`5VfI47*0#+K5G@$+g)>;3VPW+~In_qbE$@d?9G@M8{ zCih9|w)Gpn z{^_!h`nq-KqFa09?cE<-y>sdI{Zfw9H_9rZfqk1d9lrLch^PTM0gIh=u*|_{#55%` zH4uCxgaxrNs8o=`)6*_~CObDfNx>Wx{3MEnWCXHuKuWmr;PcP#x_E}5##V~Wyi*i{ z{wnW|1%K`Czj>|W=q5(@0hm30e0;ygE_`!og~I6>RJK-{Gc$sv29-0?x$|Y0EIt}? z>YYsj!m=;(NFz@Led_|K2Gw$E3CrQ zllzEmRb?asOP~JzpV05Cs}CRE`SASJJ9n;LJx}&+$M(&eDNf&c`r+!58g+6mNjjkp zal#PutZ1qLLHs!9*D=_RO;4g65{vP!_Q^PZ9gPmMq&RLqMW`53pR#RD|G{VUJ6Vx~ zm}$f$<^4iB?dBXhVbhja4Ke+Rl zTZdWEqxS&3Y(GAF#0k?n$vQK-Ej3qa=_&M6HCv4`_5+~M098P$zcGcOxMF#Jp|d~Y z7tgv2qJM(E?u|d7DYD$vOXGp=vCfEqzH_zFE&Ud5kKx!mB7#4fl|!i{2(qeGw}hC0 zBDZgli+}RuA^CEb&{p%qd9=T8#&W%_`z~4*>B?LNG*mf3_rrq)qLYS~0#HnbrH+I; zYhK7YZ*T@-0T;sHRYxQ#y_k<1sboy*lLyxHb_H(SFMF_e?Gf_eZ{Ma+ffpsa^o+{c zGnYR8u8AQ

ROs0c>U%K6Til=peO)s?T_>TbOo5t5qr(upsNC>?b|c$HTTemybu{ z$l6!zKo7Zc*FO}fiv?4R`DXFa&Oe_fFGmdcK4d2z{L0^cdyB&MM=K>#lqDo-ifCP5 zYR)98T#EsPFzzp}$D_Mm<~>gSiU42D3*;f{!skN14AW3Px1=xZO_73a{n|mjUT^*u zYd=%xjad46LHGtdfX5p?nWVgoPQON@aFdJd-`)KDA*?!iEdN=3_}brgzf9iyi|e*u z7}hj1S43wz^gF|z;+6{TS7H;2z?@ty5;M$`gNTk4EZ5-UK0(d6+!s)ai>TJcwO~LR zSl@fnM;!^8fBv(#cf-N=PG5Swlt>g4xnd^6TYD5KF;gg2;XKYw$AMlXB$x;Q03ZNK zL_t(GKa1so1``-qW(c5jPYrtLD4x`^8JPa8-PdEeiHnskq#F*FzHZTi@Qf^W%ShI8H9kOPjZ@ z+yCALU9$*ugk(85X&J#Ohs+15?{VJ9EeN|)P)Yti-?^%6v<)?qX`1O+?pRSheoRuqQz&xI@RSBzqa~V`sl9RJ&fX&V( zMY|SQ3q%u#$PJOFm&f1**Y>kUK+2U3J0C$HK`}%;7L3igb6L=5LD=RCdDH!`DdcP$y zE^eX4$=Nz@boD$s-r}r!F@E5-Pj9vH#-#@%_{`_^(5`Xpl@&7%vd*{nrvDngN(7DWk z)>n{$r`UxTYkxrd7iR~H`ElOBGvvq>bBV~H4Dt!$R9KF6M zIr1)^74sK#(UDigR3kaBNG$JAYqt{N2cev3?GpL0Y#whb${>N`Rbov`ZFW{ z($3w4I(a!iVy2a0N6QHUxLf~vyt+#F(M2mwy2z+6mD0XXU8|9}m&UKhv$B2j5A*ZjV@cDl{yh^&jPAHJr?tOI!KYMo47N8byVugN=~IKkHx z6R#xirB5042mieGFHh7FmR|bs(4Sx3M2Kt~8n)obWzspUKgRvUoMB80lhMYAcv8?* z#5A-?8X^mCT3(kqoc$zv8e}QAm`}#V#*moY*C&Mrwr_p$2&4YuQO?RAJazKOwcGd8 ziL_-_+^pb()g;GEr%jua{`gH8XClW@S9M)SC$^K}r!#drYB_p+8Z%>|MK-8aAoH3= z$4u5zwx(o2QbQr;9KCduXkuh)2H$$Eos@ZLr?-uU-yAyrA%TAV9+SBI$PdYw(n!#ftxUs!7Lc_e<6d@iqH(TD&{o`eG2QAB$$GH=?BOm}_z*g+ zdaa$Ct3Ny3$dOscn-i$l1+?6+E%4^Hj&}0SABJj(`aEar#6fBmKE3wSlb^n!habt6 z``5RET9Q25KX2c>b?xDs7ls|-TEV7+ejA!q(_~rKw3N>$m$c(HZ&@MN3RGb1`U!T= zEW+$aPQgz@T+F1VlNf~z z%H&QYq8X49#3LA)&LXjSLW6dHiE~p}7)=j{{&xJsOV_WTz5cj804S!y?tFfe?9fWNQO%Xe zi6dceuF^f8DlDPqJ~Kr}poAu?LJ>E@pE-A6WD4LAnFeue6{-Pt=F#lLr-9+IJEopdxt;% z6rdws<1#jR$g(U46$7-gHrgg(AmbQd!;%QF(nPIka`?TQg;FkO%5DWy4P-fj0nH%|pKvRrRw5BpYEzMLOjT72 zJfd*rtqc-%Jlra_LC}Ao$+Ck1#WrNgPy&hy3i*J$SSI%_o40XXXGzw_BjG-2fQxK9 zMcB6cZ-3(&D?NVj;dydy?_9h@mi^&FZ`v2I-@115$Y4OA zq(!xc>vQ#H-D}91-`1 z$w;!%M^UsEr`Wh-;Tva3GiH=ql`V9e=dlxne0E!sbXA)kpJciq^jbxfprq-jybpOV#qy6757+S~7|zmx zg$#TKhaPFyt%1*DNUkII+m2_)XFNwZ-wH_64;2UZgr|q zL+<4la0a(`vv;uWde`R@dj|C`ZZWufRpF0yG=1G?j_pR>%golAUH!9lKNj%1GZ4ki zeD>g{Z@&2I^MAd%=@5c-pnmnt@ehw5KYr%=#bKR{x|D;w@ z7_tC|fSY1^=y0E5NqVukh&i@cG6lvlTi0~b<0hEzn9)|C&IJJ27%Yk)Es#Mjh)uqt zXcD7tI%SMp&Y|c|I*OAGkzin-$i8F46mJbagRJzWOJ}$cb?NF`1GoOeT4%eM0o?y@^WH!*_ zMuHj3WOOx`MN%G92V|Z#!%~A`ZTKy;O_74{J$i7@(If9%`R-9Mokn^uBT$dY5}9SN zM&bY&_-%#}C6gW%{NRWec}gBRI^EJaF-R^QKI3SC9=%d7=N!}Kv1e7%>A_6p=TdPd zGPwH>f%?F4A?#$zKVYD*i|Z2f-TA9;y>;gYud@P)xl6Y`|Lpt6V2h{N4BM@X#Tx1R zT4JUEi7!o+R(V;-Oro%aWg=JwB3NnKX8pg!ewmZASm518y+cCh;|wx!q}RI)JGV*J z+TC+L*q#~?>jK#OueVVbrMqh3n+FfR`QnSOwy%4#`osAxpdmk z&QLU*aUC24Sb9svGB4z4Vps`7MjgH!Tshc$gLy<_>`*Uw#Mm28;Xh^3Oi%f`+aO_ZlZ_nhlY5|E)X6?R1_iC#Igo z=u4Y_uH9VA`~9l*+U=W2#(w|B)~%;+T{?gL$EQDDzkc=V`7>9)y_eAS#1w&^aRmKP zK9hwT4~hU1Xc9u)z*H;}GkDP(=AEG6*$MC#!J)-M$!BCt7g6K|-Z-rKL};%_!vkd5 z-`(2Vi*}0lu6_ULzMILIQb2O5m6V{Y4D^t?PbbQ`Tt1J*9~7aRJj5PDccc+BxSRq) zSp(*tBKC|0r%p93T`>uCMEZg?gBv(0_?*ipCz*9z4#&txdA{e~`E=j@@a?6~KY#cm$#!eGTrL+{aN7%o7J2Pc1tw%K zOi}ROs)2BJi4?pr=zv`?4thJk=Kl+LVdguN%ng4IRmAJnTD={TbrFks=~wZV=>+Tb zHj%K`W9MmpuJxC&pSwzd+n4`deez`W$=ffzz59Pj!2k2>Q}9ThIe+Kg#gK023Xp4W zd?_myYvf!+#5&nZ-VOofE|z0*iUuRC?D?U4-B2@*o+)Pxxbyj0k1ZaXVVsnrga!w8 zynW>5m$&bD@AStv@7FNhVv^@zmKO>2yORj)rKnRZ;GE&SkuRX4-QLFRVhrSxHoA3U zG5C_YVUkB6=&4|SOvx;}{BvvtNH-W@sEE(aO|lCr2Q@=Bq~`-~y@dvv_s^UG=);K| zg^HE~qU6x<#rHqFvv1$kJ07Dl%5K-LJ$(9frPWw2SL?-QZEA*mb=dWp8P0uUIVM_~ zOE?5&PqF{<3;0NW@wRjSj*b`JU6-tP$81$mMe&)%8Q9;1Z}p~6XD<-0ccQtvm&|AM zTiiX{s?Oa0ZuQB7pFV$S=i7gS75m}GhxhKms@=OdOi^-)*%tD=#YK#=ravqZD0ycS(>DiMW~=mMh^WfLk`q!q{t(#!G)t2t6L#Bm)? z649~Dm2qH2jy7d8U7;Pb=jJfyPDdrEn3ih*b#h!U-Npi{M8d6B%cYVa!-E&^ zTs(W}hdXyX)G1cKcI~HMe|_3u;&yV?XR0LSsI->SNQ)N8hkL|D&|VjP~)^WftazBNcd!*t2{>5oB zYi!Hudb)b=@#>N_tUG01LCkmyW_~8(WrlcW4zXCuq1u^B1er4LVnzu?!H}clb4$-+ z(wMVzfB_H<4<-`B!=^*gPqpmk-8_~Fk#4EX<#|#z9+owS1U;Rw!E{49n{z;RJ|09n zB$%U-U^P-qDr?#lTUa?Kq~^HV>tN*zxNK}DlO+crlQobloWu)>CuJ?4Uvz`g@L4k9 z6g_~owt|b|J4MzMRaFPc#9v%py>s;k5B2Le|NhUPR##ghlxi$j-4b*=C@V0qM3G!# z2I;aEfquW_lK6^5Y-7Gs;ZVJe`oe!1`1$#6yWa8VT1{@P0o?`fAQ9s1sqGHDoj&G&loZXvJ}sVB7Z)P0)HF6Y zAq>ZgJd<;9sCqE3oJdy*HrX9+3#nUJPL-7;=8Gn%BB z$jV)qn@vvgc$9+Ot7%U2V%Z|^>a??Ybizh>i&zRh6gEx^;Vxl@T2eT7EEEt9qvP#@ z$rA4QJZu9&K07@gNoMnN$++QU(#2Y1v4REL3v;-j3=F6%Lk?ZM`1I-ZOIHQzcWz$0 z_T3Z2>b$aVez{RjW1g*0t+i@JvhmHrRH7hKqot*?JMXRIMpg!FlM9RBnqtZRFHMhZ zUCZCZ-9;O}?2R{|a^?-VwB5AMQeOU0pkHcN-F@DYrZ?>+Z6S>U&I;Gf zdpzICBqpAwMTZThj_H0ULaJ3HMQD;EW(&Esbi1-J%l>sdNmf9%%jBMs6swYo4mpQn zFA>c1?kG^dQ`{b-P(dR%o;0(bb4{kH^VCj;tquG7S$e_f$pLY}I7n6KRm5WSd*&(? zpq=kfzMS2LhJ2Cjomt) zO?(%tg&-MZx%b`_NYp8EyS(+!jQaWa&wOzF%+)*hKp>U_Wph6N8_bzL3^y>Vk+x)} zm=qgz8zf+kXk#<5@Yn)zflcncPx48(GnwT`d6vtxG24tPrkg8QjG%0y_X*4*w&_&n z?xLj@4UbZvzL+sXQK(xAy&TiwG9KEukZEDPjbsfH2D(BggM7>~dT`jtaE`&j8Gvyo z1%X2f?*zpe-ciA0nY_Lr&%M)kebyB*d_5UYYMMDnzWi(Ne|zuSn>TNM_ub=_mXM$- z!!ln^yXmPC#@jHynl4roUy|X+EHhaxa#0p|MJqY;)%p3wWiJ80fSjGEy#DfgsC%KD zXuar);aW}q1T-35oJ4-W##hS^>3j>{U=lKso=2swa1W?|vHvB^dVF~P%)YmdvnQ)- zFt%c8((G?h7v>$&6M;$*d5Q~c+|q)(ZCG@pqR~V&ihMi;N?9ND*}Ky`E`zuoGq6|+ zn9ry3)4{MtPJ(NPu|i5GziW~uF&5MMg1KBYq(q}3QuWb9f;c+M2yvUNUOu?}ebBzwuk3sCom&&=B zF3<^e0eU<_g3N8UDKujx!+k-+%H&j13>nLyPfrHHHXpO~fSLz^v7< zcb^5FB|Z|CB`{drd%F7c5rK|;E2h&xJuok}@J%IVR_ckVVyUsxm`O~1dHd$Q+mBX| zm#vbKtT3M-b~?HhR96?c_(G>aoCja&{|5DWZ)ZS5kQRz{U|pyS9zhTFc5gJCH7^4% z_B+-@*xnEfHT*s0`}e;8=9{lx-n{b=g>7WfvC0d68AU<4a#>ip--^1&zs$>DGR!FH z$LbzQ3~qBS;gDW-TzGz+^Kv%{1&YC^6f=E_-8|FN!9dVJ$A+6SNHpoJMZzS=nqf)- zC#vXr0yw5~W+G~WK?o;^Fb9WNJY~m4z8@UqQc%sgIhJ&^aajr{biAkn83zZW8K5*E zW1ba$eLfq_C73Z#-NyKd6h(c3sIFdAC;TRu>BpzddK7~-F zzzNG-kj5ij5R+v^3P@H|RW0=4BmWY0I0)m8Y*0{uU@R4ji_D;{DT)*Y=&&?8mt8F8 zo%INdKvXAsJ$M@-f_G*-g}%Y~GyQp!(>#Rf&p~2V=95n*$AfaPClH#cm5PM=Dk*r1 z+g7UOMng;xQH)<$DI})oEk$nW(xcnAA3r6Pz_bIPA;Co3;(Qg*lh`xrEoO!C$j92k z-g*{w5yt!aeOZ)Z>fV4{z2P@YiMAKw`0W{UefG=m#;Fu0KwhCZ8&;SkbE!sz2Hb6R}z z3H|%)_&8~&NHEYN4NsA@KU!H`S!VkX&>%0%UFYE1KPHB2V< zgmTQza*_tU($jHr0ny#=EozxgX_DlSj8rRNg~E(WEE3j8t@cTVsVBJS-O-~c_hfi| zR~BqicNul8h4gSIS=arOht#mHiU~;H%5yM>mjrJl!_A!H<%{f7JS+Y-up8Xv+WR<4 zv416pj$FDvIT#4+x_9sP63IIBD7UiQx0*9kiDIdkn@W87??+4bm!7V+ifF1x zr(F`&Xd3O_7 zpr?5pKE|aN487R0>=_wLTqfIhQ#kbG3*u#Ec)6&RNm(hB3G8gDvr3vPL%3!M_$0Fx zF?%9j<9Ik64)i=X@bI38I*%Rm_6CA+q1+&N6X{|uk@)n&myez#Dy_0&7ZY_noUNLb`&EIS)_6xR7dH?j#LB7^U*=$M1|1fw6( zG&==;i!6ohpcsrn#OPCSq&?8XcFtWaXHul|le5#2xFH*=Dk-|5s6ftCNwq7A8P(GX zH|J9l6Y7ZnB5{AQpVXsegd1l$oy)@>z5K$Xa|8h~*M@kVYbw?GpZA9(^V8!9E+>=I znA<@Y@N}Hwg+R~7ZMRof$u(zs$;y0dxms_vmMbn;e#+^o#MBgle*59mM>B+SdIk*S zgf_j4oqvT=IbC6>!4lrK+rF@qjz5PXur|v{8j#-XDE6i>u8?L!*1i3?= z>WT2qGH{y3$h2>~@awP5nZgR187m-wZZYbWN|~av^wgK1e){Eij~_1;ri!fIiy*3M zE|JuOd7{;-iam}L@VS*PZ_R@pMfhiZc<+0j6?IO`wq^ZU%g(g%we|^Vc7U&U(sjlA zk3QbA^-q6#Vbk{Auf28F^W^LV$!puF3$vbl26YbS#5xZ_OoXki+!igocoD(#hF-qM zXqAP8bN3QAOUIa-5@tCPN7f}PrlR9;@C{v;C2WP&O~PI3gD1|zPXhOhSoKBEA0tnH zI>sA8HJm%LC47qz}b)8EUe(3ujgO<5veA5zO4{*E%9xA9#zCPJ36qGA zGvP)YP1=%dyDPOq3rZdyR;$%O!fg=|8HxIZn>TO%NG82iLxcRvQoRXw>8BtX0!Orf zSomph)GA^TyMWfaJk%G&8CVcs>V}+wtk=ALnP*UM)}PJX@wa-tm23jMp~w4$p>6#H z`%61_ob^H14CFVm(_(3d2RjcflhU8|Hgv+pn?#;tnwPj?tkGdt8%y={C<&>~%+a{P zc}Fu?KEV}2lF3`u;ym#R(C6}EGaNlnBpeUNR1*b_Her~oK^}D>LOW4*}e41Nh9Nx>T^B!&yF7a>z zcTd<%4t7lX zi5otgS@Jlre9m-D)sCSai&_v04Kc$4>d9<45C~bhH0J-s^0npV1+K?e-I?ml%>8>0 z?>%O)G1v~y;98+Xjvu-D$iH*FZP7Q^&=kuky7MKJ!2CjI7X+Av7nw*LD`e)eq4gP& zuh;6`nfCt^bsUdI&1zZ_a6c5S{0LTr9ygUCNaa5AOsv&TDxnje(D8`(UABCZ)){-JTW8P{NjSh z%z5NBOhF=?^G4k#iTA0f>c6Ak8(0r5biZ%hTQz-fXy5++{p7=M+Wo)Rb6&6xYImbu zffBoXu&d{;c-K1%NlwN`m|85w3(iHer0oc5C{Tr?YZ9GxaYNHm2KKEOP6AE!6tqvX z^dw2&=Q#yHxQ~wq!WNfa(((8`IjF?U@gS1sd zlY5@;(aR*I&ARZg=I0lAVOMpfR463Kg+rGtvj)@2OB7}j=~`p)=S5`LI2Bjvm~nx- zht0g8j_%lXlyxfJV$b$>c}t!A%v_UuX4(W~9$E0S*w>%wuEKZOp+Pe1*s-$n)!k<< zTK<}1O-3qI4v+t%yVyK?mx(xWjWag|>A!GTGwLKv8_gKD#x0k8VS>u**n~HSE{b5l)_QsZ zK}Dv>Ugu_Qhr77b;%sC*e;s)0zSV&pw=6+pBnEFS&f4Rsl7&ZB(zc_#^clWp47!j0 zIkrkhiarViot$Zw8!JMv=wXq$-OH^)eTrhVrIpgmj7#xavp|rSN{Ojzb)M&&e)dvv z^PMo=E1UyyuclV@cR?%)9l)$5onBeq-P8`yyB0!tlT00U=??ast?TmRNdg83w(Z}) zfBV~~g@PBUIZY>MVJ+wCr7Y(8@VkMF(O(lo6iUl@tqbsFm%^Z^K&8x9^uV9`MKnHI6gNQj>m#z@^!MS2KP29n&^A-CM5;x z-h2hAmS6y8o!oqq`9!lxdI1hTqn;L%n4VCJoo~;C@P1x_q+GNFAnMCG6wD- zE+9(xU~jbDxp|@E8PQ7BTkSR9y?T_O6C^*Q;_S$^bAs{8Yy#Gi-+xeG7^l>!D|l2QxtZ)F1l~XEth$w z1zCPkIzgANFZ<;8$KokTl8uZWko3~8t5%3$@tAXR+z-tSeJOO-dIeyoof~FwF zZ;>1kZ1H*Cp^LdymTcq=V#nqe26@4T02ZK~Pf|Kj+&#`w> z>wYtAhf~zAvi^Ug-mLO+#o-G>`}XbF{lDigs-C3lT1X!bnQ6yL(B(5gW0slRscMJnT$z?zzp=+w5T8aes3+}Z> zpE6C=u(eb+OrnoHi^&+~Qe@5Y+c3$=28uDw&U@1s_z2C{rkf+nu0oSoxnfSh?)s?P zJSt&3|9x2;9I$4{AxU30b#g)s+tq`T&h%HduHrbTQKyp2NQM)#TqB${6cmcwYJ>hu zyY&A|85_Q)c#mfh|CShZ!knWsKki=kyIxtov8s0-Yrd*&4UE!xn{Q6k#2Ia`uqw7d zbQfLf|A&5Ow%AUf=kuGjs=`PP4}(ne{WIq;>b!a$4|KSPAFVE#oaV@-9lzBylPebK z7HDMcHMvjL!eLAsW%#ag#@!a3^6bf(Sks_0nXsxWm@LPDGm>NmIoxVgC-Y+RS}xKF zhN>cEf==Xkd@epdp2SkU7+LLr6y@rz<05TN0v^}2Io9xuIv;|JTec)!>LaI)zL%VR zE^Q)P&;8qgoHRzp{5{}#!=&&O=>w1-lPakwLCsqe>KK^C34nFYL6fe#Xv=eRhDIOf zGnHy%(Ji;!bg9%_ZOu#}R!bL~wKnRl7N^}8(H6HXIOe)q;82#Y)LYQ+-Mqj4R)8X^ z;etmLpZ7>3{edTedRIX9Eb8rTkPN!NHD6C-gL@w3I)3#jIB`Ugk)c zKOg8L0d*6E`yv8;ye^Rh=7OB%JX@3DHhEKb5afBJ8dwJCa;r`_D69&|Pe@}arlmNp zrAd-iUCc?&q9(y{$fnAzM!8%f&`T?;&BWBq%oGJ`5Ym-Z((WtE=&BRdv|qS)MmX)f z3dDoH%4>r>`Q#*8dlv++`z;j9JeuYe)4hVKXtpnTeqDDi_BWP&*@qoZTo*kL^ryQF z`&r&)B@{eqUtLgj8al{hRAjEK1UT4L^5#?p^XpjT#H52L!e>!cL6OuJq*KUtLN6n2 zL#jQ>RIdp-10iT(@}}uvxh!D36Uel39Fvp6FzhVm4^Y&G{g8WtPN_H*jpnMz$mJ}B z+ybuVBlJtf<6>eCY99Sfs+D$2ZZul0Mgu0nC+b4HZ!Bf|D&E&yyv~^n0xW_T59aCI z<-v>`i^y4n`4X}2UDq>ZBcR)IANeEYhO4NqExRuFXS;(%R zTljwV?~a7NwZ4PF*Z-TpX&8**tpBJ|X-`fXsCRE62$`G>~B1a4HYp%6uL}_c68(nkK4qwxk3l z$2CLgMmj3%c?G2kG9k9%mJ2AR)vM{LnW-5je1dvkCg**n#UvymKA&IkJK&Z*x7@eo zjcTEcwd$TT-i3M#$X1z5u2wDcw!nJ3F{Z;&@LyFIZPX4sJ<%)QNX z`8n_y<>#{5=}08Wj$q8P-HfUknkt(aHJ}u$YBVa@vTh+YoHb;_B!jzLpKr_*u!_63 zM9Q7uo?ob-2s{6qu9@Ff%0+JkjCNJ5@$K6C(ro8on#@&5kaJ%|3oRYB_RMO%OVAsg zcf5UpUU9F{nnR@wYBDR>C+Ou*q1pTFaKd%VIYdTSl$Fb&$<#9K6xw7kHm(a&Zqo!u zyrb(zOy#r|7q=@I*c;rM-0FsW+rK46Fo?+Q7SIQMqq%kx>#lwnCZdZol zx5@%5cWz4l2a~wVDYTkZ#4Ivt0Wl((P0C@4+VV+$TDd1c;+8SYTtW$i=v8S1N3q%f z`3!bL#FO;;>3BNe5El`kK;6&y0dt<-5!0LWW-gz~PRE%am4~z)n?iO48%TqF)?zeN zbtOx&Fw9L}i=0)`rBfh7*K8_n9E0 zg2_aar$I%(35t@Loa2RY^q$DI+obUg+@Mr0KOIks9_2W53E*e=kZ?{umrkG`0)j>G zk-3c}laXnP(QsUBMa?fRWI-0ndxJRBKS|+RWzOZ%Gi)E=85|y(LFdh!SFyLlfj-$F z_dyN>qI6JYiB4L&*l;tpAish>5jkVg)}h&MrhN&wq}?tl=Ct!!(XoMQVmPje8$b@M ztSLD7x$XDSLD>hq#9>dyf!jV034nn zv6%RQ@u$Pi@ikH|sHng$dej6Ww-rUz6jd`c$dh=WPl5?Z!1d`d7?4_x+EJTzH~|LA zisbnC^ejXQoyoCSp2*&hnbcN<`=ozLJA)){IjrgTD9p>gf==}T3gofL8~S5 zaDs`V;d}br6+h1tmU!FUKPzM%rJH%4pCstBVtU-WSXweLc_48SOst%MhVu$^4Gxj< zIsCzxcf=Ykk}Sa;i4DAt9jYSPf6~$+h~+cN$S&;fP&8Kit9}; zr@WcGEd27!vsbn)=$(fS>dEm)j5JOvZqP~ABu$YlRW&Jc3x(8NE}FKY~^g`c@yf~3wZFY{C!lCb!{%_Go#G3d4ScHYINpr>G! z-r@_yh3$Nfr^Fjx4rac}8v&P};X2^D{+!?XmW=z8#aZFkK`=#2u@DA}`2x}RYA7ZW zS2<+b;N$5E2|Bsw(GbP&rfw?1Kxn4C7>9>t=nDGfK=lZ`DHzIPXgtm{jA&jTpA;AG zQ}f=3RS=uj&_OjjcXvGe$v--ayOaLT$M!77UFL`rsK?RKhz`8zNK6Yn-xH8X968UX zhtfI0x8M&tuonFvr>2=ak+cxS3`S6fIn?@WTcPKmz%-iE z)r`rs^yR7Co57fu9so?EyU9S@wCi{fn6QA~HTc&d-qK^lcw$nH=H} zLy-ce>y{c7QIl;WAG0YE=zIdqXoN6%e%$+q6O`@D!azFW)3IBLZ@2G806CR z(JhFUEvZa4P*M^J6G<=CodQF6qs3j36&FJFoj>Xz5En=+kWhpZ2%BPV#6QDCx0@4FgHwnn;3zK0B{s10$uGa(%@=3KEmnkOE>l1FEgVtbI5gya4!k7wUGB@hfw zXTh46v1P*nmziOyx(Y8IJ8Wb%7=mSV(79jcZO7!!S1N9$Ty510WelN~tIWvX#3pvc z<#5<}JzuSjx?mUQp`^B5hpiX;Hpx6g!y}F7*XbLq&>LO(fbKrq1@72b$S0qwQAKeGyzQR?bbyU*LA=pf2zio+)_I@0xX^P+u|q1Z zY59ziabzjjLq1)!SWBk`!C)3EXbb|_)=0w}yc34ujf7+9*>EyhL1Pv}&o+1S@;5+< zM1tXLJVGiF4Zen<$!?CIr*KAs^&{OUh4iQ%b)t%i(6`jARw;TXeCpL2WSji35(o6& z!q!5uiZyT8>e(!LQ5korH$neLANm_WYTkNXcH2m9Tg$D6XsVot5@$yZ;rJq!xcgZF zKVU;{AV2M+JuTeR6f1X+(?w*d1r;b^7*!;aYzVog>0DvWIQ}?z&P`)uo{i#)pnt

T^!KEPIZO2H>?eQy>p1sZPhz%YnjX0AHVG|0nH1)`V-*-} zPqkxx5So^mx|09J$$N+qBr*6FlA`qmtf;lv$feV!h(W9Me=Ho1#S~0e>sE%RtZfj}J6b@uR5WTz9G`|lx{`1d)mg08 zR!W6xxl}LBRO?mV-AeYEK38fqO9c>#XYHA!D@RUm zCWog_IGshBG=p5N?SS+HYaoQ$NQvZzFecM1>Yi$!X06Nv$k59KK7r1sVLTk+a1v8% zv#iQRN`XB5Nq&tOeJ0`Ng#zO|XBm%-%gMaAQ%bac7@)Tlmj&c0Vnp(u!c5mC-&B(& z-B8dTWT6jEp(CKkK@H_$icVr^lydS+l}SEHOf!&;x5-ybVy$dM3k1v@`7_8{#$&RE zP7p=19W@vTlFBbTB?_lqWWF0%2~CZjU)9lfK&s z3B614Pq0sp5KQANw-lev(t9lElVW~wHt+rDU0w(^i(NuV*5mYza?l{(JDH6HW7$|L zACn_t3aBDJV=xl8zgBYlCOM0eQW;%G9TPl8qqqCClS z;>qc}$hyEo9}go(KaTGlmm|{=ipnHKN7IEIpu3;4(Mc=k$we|=g7@6v9=;eic1PeC?kf{Kq#FECDQ14bl|b}IA%|P3^Vt-^SYyw^K0eE!q31pci4$@j#}XcYrn)*qRFzM3p%n zYjX@RLx-IbfvK$U;axBH0Tsni&knr(f5OZbt2&z36L8Epc zAQ6T^#gR0NLWVfSP`VP7>986~ADsy&k%NP+8)(_1KPeiObPz}*>Xays?+em*sgfB| zq^K2=6v7LPRT!gC6;c7JQ$~L$#-}Ax+-k4~uUHwDLTN?MSs}E38XCE?2I$oK@G<>r zC{OIYEp^pjjsPD9!mY5abbHa$HQq$cRMMV(uc&zg&1|3?4X(Y+czCe$Z2}-+m?cKO{uO#WN zVVQ~{6O>$Gm6RODX%z$<=)jfekVu3kX%~Vz$ejYZCdnkDeF5DJ?FxmWX$N1Eq+J{L zCPH*19R;({knujU(R!ao=!J$~*>!(vkiM?dFEMo8fnGNhvhyJenQ5#nq_-i9ZXp>I zGwS3*^d-}^ERuRXS}Zo3GbJJ7q}Q>Yo9Eck_eMTG%ydDa{i~Oy0sBm; z>~~DFOXvA=$ir3V*?EVQ(^aV~#xzHscxaZ3`zjZ_tvw=nFy26SoG`M%~z|Gqi zFvKqAU(g>aYVDlYvO8HWA=I4R6R}^C6+jpAetZaDI~xlI%yOj|iVo{i5v_uTsRA78jIWm=&=4T`&u zw0mDq5baHp0>6&l26}=zI(JAA1A)O%g4~qB!M(d)c_SLywJY$-#*KgZ%U@1>cHxbW zKHB^5f3JV;#P=5lhttDk*693%q`iZ?688bOFi6jfbiy`nd~W@~z_yQ1ym8{hu4pur zNJK3H>9ctf)4cer`@QRw32nf!%0tcw+@nT|}C$I#2pwE`vrg)WF()o6R{( zLCIi?eH^0E7=<(PbTk!;kRIOHyY0ls7j7qpMb9K~&*Vhl##x-WZMSj%O$7&tCt2-x zfu0oZ8KIu1uqvNXRol(w=>#bxh&sreU2NWo$H~o0GW$?07KSSx=+PI8reS2meH4TR zNpJ%_fn9s|?%Md=AJ(kd|K1nZhEALq9Na|;O4&s^SyxGg%aB4eagvx*G@TgUwd<9Q zgxqs~S-<`d&#hUHYt8y?1Ka-ahcz3H_4gir=iK4Lhu1%PvZZ(I%ITqf`v$gcTfZKM ziXK0{HnjdZ`o=X|4sThrg|79lKY8-T(7?xE?j6jT0dxr{fuKwZVvz(~(ifE;#Z@SD zQ`NGi7R`WZ70c;#+D(&9F!gjI2eMJt-F*q&001BWNkl&uNg z2{!hu`F(TMMorM5EOU;%?ukAZTdR=#3W-g%f`uFLh{2?)scvtb4ZBCkhIEt-pPicr zZG$`^3_R%3;S<|lzjpf~fldLDE?VQE1H8z{VAjyCoVIv^Y2R6&j(d(ACKefUkwS@u zFW$gz9@fXdvN~-eA5>HyVvygzH@j3|JWM(*4_;p_Uw7{ z@J~OTd-vThhPGX}H@FKVS6Yx%l9f)Buyr7#kU>!$HRLFXMpR9hIVLQMB)Ee}xq#Ah@ zG2K`uOGT0ifi!T5r> z;=srE6VOct{bix4sf~YV!`;h(dpPsIJ-r0v!GlMS9y~ZQN*^3NxaUAGuKs=;4>}Y_ zCywsfL+>3pw#GXm2Tx8Mn|N^Joh|E+e12`<#K6$UADMJ^t>SQ>S#Fdw4$07>sb^5- zPoxvY1cmL2lcxAl4MiOa2z1NMNzenNW8Es+DWTm7_8JBj=_p_nzSU}0JNw+0M89)u z8I#ar6-2ELGUsB!G{iufj1&d@3Pm$`3O9_A659){c>NL#szn&{2%Dmi@2bk2gVWSO z@@N$4jl=z~uirK_Om<3V%Wha17wt7XTA1OLY1|5Fx9Pgz+i^lS9@F!lR%dme!fTQP zeSMN)Ia07M$bPs)@2QSXF*8!8WPtm~_Bv{ij+cV)OAX*s2KR2P^p-9q6vp$K{uqkwxKxr9DEu* zZ|Js_vlHcNnGmd(8e+a28Cy|K^--U5x$!8UuT&_gBp(PQRtb!jg!E8OS4dDKnF1OM zO)eB)7_yNvA|$YAVnnJ+flu*%HjSA9(VmmSVnwp9fj+X|m_1Y^a>2=+rXvvS>r+B- zxB57EmXuw)5`(*Tkqbqi3c!DQW#cPkUe~Nyw{>9K& z&}T^UPmUhl!`i%e&rzHS`ZWLW9{$;*$Hs1qT)uJY^2o`9cscZ?{{8!V`wzdnX3hE& zpWQAL5+5Z(J*wL%l`RT4ta5A7iKf$KCz_LF3+>e;b~y-S-c+oLYv|ZMXt)`)3cKLU zMwdF;Lfwk+;e~&TZk0Li%(opYXQ~wZ<`Rk&a+q)t$Wzp*lN#p^FLHt?07u@1A`TL< zKp+?tX$s6O(s@7}tFx*f9v(jX{@a_jfAQ`Sx(jdHb=&THfRH6RsVc z1*VsY=d)r3b39Cbbx%(Ku@hFY(zA#3VR}&EkCF4do=_baV&93bZQHhO-|oGSYi-98 zlN-hF3iZ6_z`=vZ0K%!!(TU3wqhk~FI59SM`P{iLzPe5NJ@m%LKlrAcK|gR{&z_@n zJWkS|b&Af)$k@c_$i(Q;Q=}tCJnRAQ2unR7+)L-_*eM*0(UFrQBgYQzVM9Q_Vszr` z%jf6~U4%Q117GwD4s2L+_}sOR*1z%b##cT%@zJMWPLVGcG!tO0j=GK#rMNN})GV9s zV&0Zfq0$vQFKPlX$9Z_k;AS<*k3~gc+CyCwgkwrL>!QU4jmIXtSv*gMkur*eD9$7a zB4H*^i9V$;z!a#GZB}8SNr$Q;95cG`G_8wg&t5$H*3OqVeg4IflLzT9?caA+ppGF# z!~0nUQ*gZFgNNBTbI(a{k6oSDfuM&i2q7mwXV)v+PJE zB5bC&YyhOa{afi;hn>u8*Q^y6t7dkkHo&?Pcr1~y!;s055rOuN8)IW*=f*DIICtgR z?c2k{(Om-b4eYwXUb9jd8y!7G4|GQOx=iO~WRyNZ52Fks@MYkkKIj6*^#8<-8%J>< zMkgltl--y(hi^EEpE)VK0@eiN5{!*qd1uX_M7_s*8rKmO>`88j0*mf9CBM+1tf z2OtBIs>nv3Ydk1grP_jHdo6w0lm-zZ4@{sg_EC|NknNn!y=XZy5I_|`XrT8(=^K`j z9wnyACXGBCqHAz)5O!Jv)~ZK4qj<~&;CUiBKYQ`w#rOB^cp#~F^+!K24WQcs>d1^FCd0D$@E z*p18QCJ6Y;H*S3K`M-t+-}uXO{|^f~9h40R4$u#c64ZnlZeZP0Fb?)?*-%|qx9QHf%>sg{=v(5lFJh#=O$oKPD0|3wn1m*Gjiib{|5Ra z-x)jn&g-v#_GO`1PFPVX5XzN9yR>9hBI8?8qtJNFumjeWD4)&1sV#&qv zAg4ed_E8@i8X7$DdOtMX+D#{hV>;7ODLev$|M`s!@4?_9eqr|M)FL1t|AbsZ(q!<( z$ZH+kyKDWLwIsoi<^#Qlk5JIGhNNQ8!DA#$W2X)rph)@LJMWMvo;!Bnop;_j+~0qI z-WeIY@%7i257WDz2X>N8>`9?o3Bxf!PVW$8ga`o+1jjCawQv2#=lrmXP(Ls-aq8&F z2|z7=a73Vfj=r0o;L4R7q$tkO?|@j7N*6feVQkE|9CSb~=3f@IrsI~{r$&|eSPKdyI-6;@!h}EQwmzb9oKOrE2FAX4@KbcGyu^vkuwyth zlQ)b^%CNbiW@8qA`7vLEwvO97uI74Vg=IrA?YHae)jz7efv)D z8-NkrMvwG%;4gbADk2>)Ffep>i2q#}8W9z7Iz5L`L}tr4Km8^ zI0uTZ3HJb1IybGXJXfBp51bEl3SJa&wP)w{2(hDQmEF&5Y{agpf3)Dm>3P98aOWR0iV z;rbmo2917{B#^!jvJ06eAORqu{q@%bI{ljvUnTJ!9UE)we?of)G6PiMpT9V}XaZ0N!TlF$o77cOFEWr+0n;LzZ%fs2EC z2YFEO;>E#>*RNl?bb9;db(=SB+Pby3*Rz>~#fA;*x4gb()22ysZL#GBkU`jP}vhtP>PUhm%^j4Q%qLj1tQ z*r{VDIZQfs;MfFYXkvoyK8xzaxrqk^1m9*>q_DRnKIdS2+elA%$go9++9og|f8^dB zJ=nVzZUFfR^pwZg@{XK>2-5ceqA?Fd;7EYq5dZMh(B=~pW1hX|@8IL%|G)&`p1_I2 zt6{ZqU%K@^eg5>VTc=-s;g5fO;e{9e^ui1KU-YhZ!f9H!?vF2Qri;9({reAcM0@bf zBm1}Sdw*zH^D!6nbGq*bz$Xy?gTxsZL_04P^B!%V9Q#Vq-Q8ei!Lx!nv>K`5p)hxjZB!5{0vduA!u5Bg!^VHF9j# za2x~803>h%_2GdNdr3EM8+d&^gcSeyB5B>SNysq$#cS7+Ow*?}y^M?AuHE$V&h48C z^*{dcfBxrx2=0Rdb-YhUVe<^vxqj_8-}?@AF%CuKR(T)_p0SFW8oU z#EY8DpNewEMHxJC;*Gzoe;xS^0{z&CrxGDfVgmv=sIVY zyAK_`BG~h7g8G*w-I9iLmSkA^Fojzb zL+{%mWc~H6?;bgc`*(xAlVb;tj*On1m^gNzoh;z&ayRPhx*&gX?ThUTn&HKDn|A)~ zZ>K;1{QL)Ju3o+Rx6`M0Zh!gJ)9;_T^TQ86e0%5K%7JI;Zd>cl~7> zhv1y>?%&cY^4#?3V?OG6VH_Txq-Y8{_p%2%BktXIh8tpb!;|v1!k_RAt!LsVI2wbN zz47%3o&95E+ZlCoe+%Z68EtQVNrlLYZHEpr(;Wh!+TD=@t*z4*AKqN zkrU^PgdDO>F(8!2W%^S_*vI5Z;@p)7Uw!rczY9?CiL^zkk3_oAAhVepoy~3F^PO$XyFNW4R$PPjm=zMR;CZ2@A86IPMx1Cxa~t!mOhQM}fHSN8IpGr~gUZ z@!^fj;sAEE%d@D9Uq^R+M5y;sPV|hP6vhUhnt1)ngDM{ivwrh8rX&e<-oqvJGSjR{odO<-xC^s z|DTTF+W+q8{x^@}=}eUW>dEW!v_q4Ch`+hQks}M(zjvU*tX48)2SAV$k0}v;b zjy>{su3kEG=KLjSc;4)F`}W1#Sjv3yt$o|PYhdVl`#MWeAY6z|+utVhKpF(F({u6* zIe6;m=rgDj(4$9@-$0^kqRVf3=JM{l7eooi8>u({Opqd_k2#_yxkD=c)GPq8*x=00QF?Q67I$Ju_~Zm~+wW6u$hQvG2PYOj{`AvNlW)Fx1kwHZ5y|iq`UOe;g@lQJbYOn|%$Fa1 z^2yfL9Yo#N&K^Y|c8V3~@R5`M#i*Y>a_r>%{QRl;8~DAlOqO!dD3vY^au>l?hfA1e zb;WqOTo(@nbyI(>?|cy{DZG1*YvzpX!3J5}kSz!*rUR$De=vchlCFTQ{%HU40**Z*4*IR#&fGyLRU6r8B1vQ}C@(KaXhZ_{o!i9AeL#+wk{`SrHuU@?h z(2pN8;Q{=@>OI3Y-vT@F;csWofw@!2n7O3N89%Z!UE^-s442(HSGjd0);4Ob!S0#Q zCF*7NW(_mJ)o-->Cfy?MO4)Q@NA*Xi_37SL-d(+R;nJluXBhQgtX{YVLrQcVKfrzd9qJCk+MB)) zqrF@-k=W}mbG2}}Y$NkRn52Mrc6pIegn^!U@4ed}8sbDBI)D52&6{`bXdc1KHBA)a zKg9ZgGx+fKZ!gbXym;>1h4Yjk9-e$d*JN~KlU{Ec8No0+A{rahpjq|4WrLW4Yl5| zD$Wr+pykiT#@pOc8v;59)TtJP1;llDs>lNLPLI|GnSb&XolbLMq0{-z$6tMU{~n{Q zajl~M=+Ps6P~v{?AuHRK{-~D$iT|_Ps|d4Kbu@SN!UaTjXU?27G=K8+sd=ImL&nS# z$oki!sS@i2pvz*5oYv|Z-RU8B8&Po-K;@mUoq8|y*sf%(&?jQWuO=^&o4 zUN->iRDw;rb^$uB$C{#y1Bg>Wf%>#MNT8>B-DVSzPaHb5uuj^3_p>L)S3WeVZWh49 zVinjE)*2Yhw;p~1v-;k@b?{>{x@MPg6? z$D@cl;2jPhwun!Vnx8hQlUDUbt?RnBVG62iWb~IQ426|ub?tY1HhLqphNQ~`bh~48 zohs$S4lFq^>GpL!ZO8_n@Zr@!AzF_%zX7VpbYIV!?G2lelk?qpTA+@5Ha3hsr$VYV z@k5RHU|>@^e$AQ*1$i-$-gEtx*yuFstyY67f)fi^R3Cjbn47!%9r0&SB*}8Y3Ubw1@E2efn92h^( ziZ{?{cDG({7f=t)CvDD6JTM?#fBaVq@CH|a+3n-*$6DD9scn`Sb*hlE z!ysW{0{j-RZtL_1N=^P9X!g0U($!0%TjXsFdS|I)>i2Nn1FiU-{?MYmZa{zf6i|_? z;9Q*Dx-snoy%_qvfpr6>ILk?$G4JFW2KpVm#CYcpSAEuWx24;tHz|>9!8uKI);os| zO?2>zg%eBb>mPsqfA{a+{p>!x;ysS$ZTLn}b2Xs9XT!X$ueLtC{r;61Xc~Tiy4Lmg zS7&Cfv8p4EKX&pG>-=Hro}4;$8ZQ3&JBaM4K!<1vQPY}<=qa3AZY@_fqL`$P)%~!k z&mSHq0Dqp`HW&2(ESG;MM4!-j7p0%s({|gb-JiB-{wy=K^#O;Zl!_aBE#weNK=ofqbVq7S^)|?{s&ej-+eQw{F44Z$ll&4+q9d80T$V z{6Mb=9p~v=`nsaT9*L^~dhLRm^*TihgHE^ITv}RcE;T#r8|z5mnw<`E_rZxnZ!Z1u z)*nCq{PRyYKY05VGWkD&-q(FG*7va`@a0#q^0)u+yWhdYzWeSKFn8S zXHH(4r!7aPCg-Q#I6XB#|IXqRbnP83+#pkHw;HX6*0sf1LVdBlvZ&+uWxHDxpifx8 zZgJ;guCCD+O1-M8S|!=Xb~R1}m`%`3TZdscIoeQHW(Gr34IY|bLtUNYYKzwX z4STh3n)z^2Yb~nwu9>Yi6o|6@pa6rD#7=Y2L3jr))|d3gy%P(AkFXB^mU#ZcdgsKO zC*I^QV*HZ6Y%zE1PoI9K>HdBELqu?&DB7`?F{H@bBw4F-KZz?fN7)zPrW}=o)L6`()63Zk1`%uFK+`cF&mk zf$n}%6i1-6mpUffB0E3O@Y-UlR%8>EYcFq>f<>M!yG4J{AJ{vMr|)wOzH1sjZLSBH zW_?lI(;FsOBc_dIC}P)M!iG(HX4oVFf7eReX8E9Pu3|sUTe{AA$p@u$F(~p z%{Bn)c#i&RO=r~gjt9oQQ0OsC3!JM3-Nn6VMF)vyd-)1$J6o1&5uSxrrtfQO&B@7j z*DMG_R8A`jcWbtVLdhNSZ3+gtKx4acwmU;=*5e&HeQl*lZ!y?_T{xHibT*(7H$gfV zU`;KqXRcP4hsM3H_iyN3mR&oWVlR)b&GM~%N=e%*4c=x6^+KdGF$+OATFYzQ!PCLS z5@N!ZwzKtmeQIi9VT!(nvjBIn01H4S;Lr(}35p4!#!ELe>PtF2e)f!s{CIIO3ZbT}z(kW`7!C_Hj1=gY7E~>a=rF?3wQF>>q_*9;w63uwuju5tm zzVVLFkQW21y>vZ)h%HmSH7=H$ZT783=joun)M)6YsMfcM zsd~Ku_*)%Ji|oRQDXf7eE#OWAs87u5itNH{qd`D7I6Pi9<+z<>v0q*;Dza7movebV zzXF6;>~hj$CR=|?z<#zvS3a&3WkIv4vAtp(c-z8G)@OOKRm!bhpO|b^7C}qzN@dsH zs?XM2_ECxgcq7zWveOP}000j5NklprQb&hHq|qyZFWl3bsSS3m|LW;V?$GYK;awlJla^%D7(Cr*HhCGtShIhn zefS7FO1o9(E#bN%+gxrKC|Y)l9tUXbUzdv$JE(fTwM^Ul*-w;z^s8H% z#vX0A4SGymb7@xwwFi9PO65+PFj#H0$B9cw1(IX{8*RHmy{mJ2)^fWQ)(U;CrGpX+ zEhEQU;nu8b6~I@hzc-mn)@P63*|U2+%w@ZYLw9>RW+I(#dERKgWs6LEsWB_GkZJel zs$){+kiFz(_%un57IIss?)BR2KU9rkua#+G!e$4 zX{lx3!k^5U@>+8zwW^nQUET9`{lu=Diz~Y?RF9Zd^L-LC5`H)6Y@?*{*NuHW|gyaaiUl>cc^$H&*3{6PHBEPN}e`1R*e#>#OF>e3yz)Nf zzT|5J%@elG9PnSaJkZzoq{?-r%zd(QV6M|CiF1Uy9|VCanRFfRCAoC$NS0TrcJlE2 z>FJp$<&-=+t}NLz&x1!sU3yhP;@EYohprkwuJ9^ zlAm`(;<fetE#0`aFl2 zNAyN?UeN*GktoCD4j%RNzz#SGA}1lXM4)ggRy;i#6xV5vGLHnIF5@i85{;rB&hraN zLb6HddFB;W)`hPy5XcioYSI}o$8;dwH1(tvq^vTj*#kR1$y`JXflmu7)zbren5pJH z2CP-ogA}VF^`NF$iYf?F>3TFjH}FWKaMDwIfIbT1MAVWfb#PY}1(_1=HcAw4&96pf4-zEJ1gbR?vYkuV3DB!1=#C)r&bRry)jS}#^9cOvE>FY&`MGe?P;pE`YO9lS< zDb|ad1T`TrsEa{sp$KCUrm3${myW`khQ=q}cH(7D?u^njS5Ei>WtV=EgBM@K5%d(+ zAq_+lr|=nG>WUyy7&{|_k|pUhW}R-Pc}?5$80=+!B1Gn?L}gND%8f?=FY%!ysfX*4 z;oZxUX+m9)u3;>&hIe{-ocTfQKT8x$K3GS*pEiKqazWOHbxC>yb~0iYQrm_llL=XS;y4y8TA&X0YFJ1D7BsihbCQg_*aKI^EVV$; z4-6>u{ecV7x*7AXl2GkH-33B^uKcW)kW#qB6nGycNgR4vlE}e7~P^9RRMBy5tN3=i`bXQL=0(&rn z#EYj!U@hDT5e7GR*?*dk7o|Qhar?QbR!jPo~T>|PpDH`+` zwo;>>`r9d>8ABbbj3n;l+aCG&C}V@>kZFx%w(aj3&B3p`91b|71i%d=!1KTs3H1OH zfQ{$3i@flwn04~F7eW>J?Mmx4Wq%z=zOf;;mV^$?$EdOowqyt^KZ*?0^e=P8LL z1tU%hWzeX58KN!`BleNu?u0|aU&DC&IZ#oNO!6$G=$-6z@OQ+c%EO>8S@;o#2`uU^ z8S(85ev6)uBA^zNWgygHC(|!r7NnQuF>#WT$xC$%4=0`>7EN%;tD^2iFN9rDJdh!< zmJ!?ojR0t|WCP{_S29}EE)GUPq3aYy=gi(SuoEB-4)UDBe@G8b7Y-IMFniz~##BVp zI))Fk^ucy4!0EQDQ;T?p#o`**%hK7ambS$knEA>22N##*~t>ZeyBa%Vo;qa(S&$~RZ$7@Q_ zTM+TuLCy2T2<7W^fsT>;X!Z=3&bL$-6pw^?xjd{adGv`d{cf77t9hjNC1!dqv*VHy zx`s!EXR6aPyenO$AweqNQK7H+ZLXH3LnGmsnWk5$(DhSU6h@RDf+PQ8)_4{3Ahl?r z3N#IVn*2aaa$uqGOvoQF6m;3sB31+@nFOt~YDd1VGxIoCHp?#)&S-Pbx`Jb}TT>LU ze@zNnxq^iph{`49$!ZF3Mk+3kJzAvB)!JOap7lH5;@FFk_TxiUX5J!5&&Fp#i~8RN0I^*JK;a#5uC1f{Z*kfyHURK_2hUU|MmUD^6E7SOK3 zt=Q}2E0GAj>ImXH3-lS>8c*PWby0Uni8snWdWL^1q}o%aE~Je57S z*P9T{z4ko*>rffPyJH=|mliR1`GjudnKqw3U+I+Y{b04rY3?f?Ew9_w(gEuGNEUUG z=1B1ES>&!Fei@UBY*0F3trig`DvBsI45*$dRfq%W*Pd4{#U)QluNGjj)I1gOeMpx? z5U3gzdwhD{t5Gw<$*4+mfcm~si8_)is*iDjKm|F~>RqV|2hS%r1H|EUm}k;;(j?B5 zRMcrzPM*coV~R437L_@uU+bD(5i%Z4XTCRz(`o6%Zkix>RY^{r)^IaUV;N*gD%~um zTJJP>S`Sd)HyTIXb&@Ri17Pv@q_&wp2*milkX;mxfI19vrku!$g`k#1nhF{E+-VGa z5z-B0NPK^k=4tj9GhpTmKaJvQr!~l_(;DLmky9r&b)$%C-F`+lAE3T}G-lx=5vM8~ z#ko-1ayk>#*m|+71-GXpZJnSk9C<3kM0Z-1@E>?Zr!^IBHk}K1BxBukb6^yxyC9R4 z8Y*R{)u#e@l*yv!mN=P{99Z~$r4sdkHmqfN3OgMOcUwW?w&VDGlGIp`p6&Izskfab zBi}JyOn_U91UF)Br!_LDi*S@k;cezhCXVi}>rSgD+#DvOM7=hOMyWbLeIKbr-Pdgr z;RH3H{!G?FY7Bjgt~2T)N$6QOCCvOV2I{c+z!bQdPAi~Jld(=~4af?g+JtUQFY;5{ zX>~^dby~^7hc!`)R1j2{oj@YilGU`UiNrTRLHVlNwoaX|5ZlI9o#m#Ndb9mUhq z$7r;xiK01i5X0{;75Tc}3@P2vmo7C;1KKs|*$&-viTh_hJqy%=fYg|pfxa7rVW^}R zdTc@>-Ytn?sa?sPRv*_r4|n+Qr)9UwY~wU*AtE`|J9c$|7Y8 zR65^c;fn?)-)l=Qy!lJ$ecW_ScUp@9m9OhFLh4^mwMrxPmGLT#JgCy_EA8mC{)39> zvA++U)&tb{jWp^%4PJXn4!SSOcFB z1Nt%1uYPV&|M>y^Xb89i^`HLy*T4SN0sVOB*S}(2|Djjk0sV97XF&b;|8qb;GWz}h Z{y(l;`sz_643_`^002ovPDHLkV1l14pz;6! literal 0 HcmV?d00001 diff --git a/doc/kworldclock/screenshot-quairading-dialog.png b/doc/kworldclock/screenshot-quairading-dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..17bda5ef1f73e5b150079ef97c9598dc82db8f0a GIT binary patch literal 7885 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 R`1Jn;P?A%Vt(P$i{V#~o^5Fmg literal 0 HcmV?d00001 diff --git a/doc/kworldclock/screenshot-rmb-cities.png b/doc/kworldclock/screenshot-rmb-cities.png new file mode 100644 index 0000000000000000000000000000000000000000..14c6048c87e83a8266302738a5979d4eee0c9dc0 GIT binary patch literal 3560 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 literal 0 HcmV?d00001 diff --git a/doc/kworldclock/screenshot-rmb-daylight.png b/doc/kworldclock/screenshot-rmb-daylight.png new file mode 100644 index 0000000000000000000000000000000000000000..6371b8884aa221f7e992c4fb5383b1598eebc0f7 GIT binary patch literal 3585 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 aHa|fzMQ`043_1T{0U*6cx|KRs5&s7_T5weW literal 0 HcmV?d00001 diff --git a/doc/kworldclock/screenshot-rmb-flags.png b/doc/kworldclock/screenshot-rmb-flags.png new file mode 100644 index 0000000000000000000000000000000000000000..17eec15f01ecc96055497f0624547874d57d7f6e GIT binary patch literal 3537 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 bzZ4z@mQY<-EZFYi{{-lPjI}YEj)?yNkUnT8 literal 0 HcmV?d00001 diff --git a/doc/kworldclock/screenshot-withclocks.png b/doc/kworldclock/screenshot-withclocks.png new file mode 100644 index 0000000000000000000000000000000000000000..73f71a1e3de539470a9f81f18dbf066c209fb633 GIT binary patch literal 79472 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

+
Tbl_vScrollBar
- The table has a vertical scroll bar. +
Tbl_hScrollBar
- The table has a horizontal scroll bar. +
Tbl_autoVScrollBar
- The table has a vertical scroll bar if + - and only if - the table is taller than the view. +
Tbl_autoHScrollBar
The table has a horizontal scroll bar if + - and only if - the table is wider than the view. +
Tbl_autoScrollBars
- The union of the previous two flags. +
Tbl_clipCellPainting
- The table uses QPainter::setClipRect() to + make sure that paintCell() will not draw outside the cell + boundaries. +
Tbl_cutCellsV
- The table will never show part of a + cell at the bottom of the table; if there is not space for all of + a cell, the space is left blank. +
Tbl_cutCellsH
- The table will never show part of a + cell at the right side of the table; if there is not space for all of + a cell, the space is left blank. +
Tbl_cutCells
- The union of the previous two flags. +
Tbl_scrollLastHCell
- When the user scrolls horizontally, + let him/her scroll the last cell left until it is at the left + edge of the view. If this flag is not set, the user can only scroll + to the point where the last cell is completely visible. +
Tbl_scrollLastVCell
- When the user scrolls vertically, let + him/her scroll the last cell up until it is at the top edge of + the view. If this flag is not set, the user can only scroll to the + point where the last cell is completely visible. +
Tbl_scrollLastCell
- The union of the previous two flags. +
Tbl_smoothHScrolling
- The table scrolls as smoothly as + possible when the user scrolls horizontally. When this flag is not + set, scrolling is done one cell at a time. +
Tbl_smoothVScrolling
- The table scrolls as smoothly as + possible when scrolling vertically. When this flag is not set, + scrolling is done one cell at a time. +
Tbl_smoothScrolling
- The union of the previous two flags. +
Tbl_snapToHGrid
- Except when the user is actually scrolling, + the leftmost column shown snaps to the leftmost edge of the view. +
Tbl_snapToVGrid
- Except when the user is actually + scrolling, the top row snaps to the top edge of the view. +
Tbl_snapToGrid
- The union of the previous two flags. +
+ + You can specify more than one flag at a time using bitwise OR. + + Example: + \code + setTableFlags( Tbl_smoothScrolling | Tbl_autoScrollBars ); + \endcode + + \warning The cutCells options (\c Tbl_cutCells, \c Tbl_cutCellsH and + Tbl_cutCellsV) may cause painting problems when scrollbars are + enabled. Do not combine cutCells and scrollbars. + + + \sa clearTableFlags(), testTableFlags(), tableFlags() +*/ + +void QtTableView::setTableFlags( uint f ) +{ + f = (f ^ tFlags) & f; // clear flags already set + tFlags |= f; + + bool updateOn = autoUpdate(); + setAutoUpdate( FALSE ); + + uint repaintMask = Tbl_cutCellsV | Tbl_cutCellsH; + + if ( f & Tbl_vScrollBar ) { + setVerScrollBar( TRUE ); + } + if ( f & Tbl_hScrollBar ) { + setHorScrollBar( TRUE ); + } + if ( f & Tbl_autoVScrollBar ) { + updateScrollBars( verRange ); + } + if ( f & Tbl_autoHScrollBar ) { + updateScrollBars( horRange ); + } + if ( f & Tbl_scrollLastHCell ) { + updateScrollBars( horRange ); + } + if ( f & Tbl_scrollLastVCell ) { + updateScrollBars( verRange ); + } + if ( f & Tbl_snapToHGrid ) { + updateScrollBars( horRange ); + } + if ( f & Tbl_snapToVGrid ) { + updateScrollBars( verRange ); + } + if ( f & Tbl_snapToGrid ) { // Note: checks for 2 flags + if ( (f & Tbl_snapToHGrid) != 0 && xCellDelta != 0 || //have to scroll? + (f & Tbl_snapToVGrid) != 0 && yCellDelta != 0 ) { + snapToGrid( (f & Tbl_snapToHGrid) != 0, // do snapping + (f & Tbl_snapToVGrid) != 0 ); + repaintMask |= Tbl_snapToGrid; // repaint table + } + } + + if ( updateOn ) { + setAutoUpdate( TRUE ); + updateScrollBars(); + if ( isVisible() && (f & repaintMask) ) + repaint(); + } + +} + +/*! + Clears the \link setTableFlags() table flags\endlink that are set + in \a f. + + Example (clears a single flag): + \code + clearTableFlags( Tbl_snapToGrid ); + \endcode + + The default argument clears all flags. + + \sa setTableFlags(), testTableFlags(), tableFlags() +*/ + +void QtTableView::clearTableFlags( uint f ) +{ + f = (f ^ ~tFlags) & f; // clear flags that are already 0 + tFlags &= ~f; + + bool updateOn = autoUpdate(); + setAutoUpdate( FALSE ); + + uint repaintMask = Tbl_cutCellsV | Tbl_cutCellsH; + + if ( f & Tbl_vScrollBar ) { + setVerScrollBar( FALSE ); + } + if ( f & Tbl_hScrollBar ) { + setHorScrollBar( FALSE ); + } + if ( f & Tbl_scrollLastHCell ) { + int maxX = maxXOffset(); + if ( xOffs > maxX ) { + setOffset( maxX, yOffs ); + repaintMask |= Tbl_scrollLastHCell; + } + updateScrollBars( horRange ); + } + if ( f & Tbl_scrollLastVCell ) { + int maxY = maxYOffset(); + if ( yOffs > maxY ) { + setOffset( xOffs, maxY ); + repaintMask |= Tbl_scrollLastVCell; + } + updateScrollBars( verRange ); + } + if ( f & Tbl_smoothScrolling ) { // Note: checks for 2 flags + if ((f & Tbl_smoothHScrolling) != 0 && xCellDelta != 0 ||//must scroll? + (f & Tbl_smoothVScrolling) != 0 && yCellDelta != 0 ) { + snapToGrid( (f & Tbl_smoothHScrolling) != 0, // do snapping + (f & Tbl_smoothVScrolling) != 0 ); + repaintMask |= Tbl_smoothScrolling; // repaint table + } + } + if ( f & Tbl_snapToHGrid ) { + updateScrollBars( horRange ); + } + if ( f & Tbl_snapToVGrid ) { + updateScrollBars( verRange ); + } + if ( updateOn ) { + setAutoUpdate( TRUE ); + updateScrollBars(); // returns immediately if nothing to do + if ( isVisible() && (f & repaintMask) ) + repaint(); + } + +} + + +/*! + \fn bool QtTableView::autoUpdate() const + + Returns TRUE if the view updates itself automatically whenever it + is changed in some way. + + \sa setAutoUpdate() +*/ + +/*! + Sets the auto-update option of the table view to \a enable. + + If \a enable is TRUE (this is the default), the view updates itself + automatically whenever it has changed in some way (for example, when a + \link setTableFlags() flag\endlink is changed). + + If \a enable is FALSE, the view does NOT repaint itself or update + its internal state variables when it is changed. This can be + useful to avoid flicker during large changes and is singularly + useless otherwise. Disable auto-update, do the changes, re-enable + auto-update and call repaint(). + + \warning Do not leave the view in this state for a long time + (i.e., between events). If, for example, the user interacts with the + view when auto-update is off, strange things can happen. + + Setting auto-update to TRUE does not repaint the view; you must call + repaint() to do this. + + \sa autoUpdate(), repaint() +*/ + +void QtTableView::setAutoUpdate( bool enable ) +{ + if ( isUpdatesEnabled() == enable ) + return; + setUpdatesEnabled( enable ); + if ( enable ) { + showOrHideScrollBars(); + updateScrollBars(); + } +} + + +/*! + Repaints the cell at row \a row, column \a col if it is inside the view. + + If \a erase is TRUE, the relevant part of the view is cleared to the + background color/pixmap before the contents are repainted. + + \sa isVisible() +*/ + +void QtTableView::updateCell( int row, int col, bool erase ) +{ + int xPos, yPos; + if ( !colXPos( col, &xPos ) ) + return; + if ( !rowYPos( row, &yPos ) ) + return; + QRect uR = QRect( xPos, yPos, + cellW ? cellW : cellWidth(col), + cellH ? cellH : cellHeight(row) ); + repaint( uR.intersect(viewRect()), erase ); +} + + +/*! + \fn QRect QtTableView::cellUpdateRect() const + + This function should be called only from the paintCell() function in + subclasses. It returns the portion of a cell that actually needs to be + updated in \e cell coordinates. This is useful only for non-trivial + paintCell(). + +*/ + +/*! + Returns the rectangle that is the actual table, excluding any + frame, in \e widget coordinates. +*/ + +QRect QtTableView::viewRect() const +{ + return QRect( frameWidth(), frameWidth(), viewWidth(), viewHeight() ); +} + + +/*! + Returns the index of the last (bottom) row in the view. + The index of the first row is 0. + + If no rows are visible it returns -1. This can happen if the + view is too small for the first row and Tbl_cutCellsV is set. + + \sa lastColVisible() +*/ + +int QtTableView::lastRowVisible() const +{ + int cellMaxY; + int row = findRawRow( maxViewY(), &cellMaxY ); + if ( row == -1 || row >= nRows ) { // maxViewY() past end? + row = nRows - 1; // yes: return last row + } else { + if ( testTableFlags(Tbl_cutCellsV) && cellMaxY > maxViewY() ) { + if ( row == yCellOffs ) // cut by right margin? + return -1; // yes, nothing in the view + else + row = row - 1; // cut by margin, one back + } + } + return row; +} + +/*! + Returns the index of the last (right) column in the view. + The index of the first column is 0. + + If no columns are visible it returns -1. This can happen if the + view is too narrow for the first column and Tbl_cutCellsH is set. + + \sa lastRowVisible() +*/ + +int QtTableView::lastColVisible() const +{ + int cellMaxX; + int col = findRawCol( maxViewX(), &cellMaxX ); + if ( col == -1 || col >= nCols ) { // maxViewX() past end? + col = nCols - 1; // yes: return last col + } else { + if ( testTableFlags(Tbl_cutCellsH) && cellMaxX > maxViewX() ) { + if ( col == xCellOffs ) // cut by bottom margin? + return -1; // yes, nothing in the view + else + col = col - 1; // cell by margin, one back + } + } + return col; +} + +/*! + Returns TRUE if \a row is at least partially visible. + \sa colIsVisible() +*/ + +bool QtTableView::rowIsVisible( int row ) const +{ + return rowYPos( row, 0 ); +} + +/*! + Returns TRUE if \a col is at least partially visible. + \sa rowIsVisible() +*/ + +bool QtTableView::colIsVisible( int col ) const +{ + return colXPos( col, 0 ); +} + + +/*! + \internal + Called when both scroll bars are active at the same time. Covers the + bottom left corner between the two scroll bars with an empty widget. +*/ + +void QtTableView::coverCornerSquare( bool enable ) +{ + coveringCornerSquare = enable; + if ( !cornerSquare && enable ) { + cornerSquare = new QCornerSquare( this ); + Q_CHECK_PTR( cornerSquare ); + cornerSquare->setGeometry( maxViewX() + frameWidth() + 1, + maxViewY() + frameWidth() + 1, + VSBEXT, + HSBEXT); + } + if ( autoUpdate() && cornerSquare ) { + if ( enable ) + cornerSquare->show(); + else + cornerSquare->hide(); + } +} + + +/*! + \internal + Scroll the view to a position such that: + + If \a horizontal is TRUE, the leftmost column shown fits snugly + with the left edge of the view. + + If \a vertical is TRUE, the top row shown fits snugly with the top + of the view. + + You can achieve the same effect automatically by setting any of the + \link setTableFlags() Tbl_snapTo*Grid \endlink table flags. +*/ + +void QtTableView::snapToGrid( bool horizontal, bool vertical ) +{ + int newXCell = -1; + int newYCell = -1; + if ( horizontal && xCellDelta != 0 ) { + int w = cellW ? cellW : cellWidth( xCellOffs ); + if ( xCellDelta >= w/2 ) + newXCell = xCellOffs + 1; + else + newXCell = xCellOffs; + } + if ( vertical && yCellDelta != 0 ) { + int h = cellH ? cellH : cellHeight( yCellOffs ); + if ( yCellDelta >= h/2 ) + newYCell = yCellOffs + 1; + else + newYCell = yCellOffs; + } + setTopLeftCell( newYCell, newXCell ); //row,column +} + +/*! + \internal + This internal slot is connected to the horizontal scroll bar's + QScrollBar::valueChanged() signal. + + Moves the table horizontally to offset \a val without updating the + scroll bar. +*/ + +void QtTableView::horSbValue( int val ) +{ + if ( horSliding ) { + horSliding = FALSE; + if ( horSnappingOff ) { + horSnappingOff = FALSE; + tFlags |= Tbl_snapToHGrid; + } + } + setOffset( val, yOffs, FALSE ); +} + +/*! + \internal + This internal slot is connected to the horizontal scroll bar's + QScrollBar::sliderMoved() signal. + + Scrolls the table smoothly horizontally even if \c Tbl_snapToHGrid is set. +*/ + +void QtTableView::horSbSliding( int val ) +{ + if ( testTableFlags(Tbl_snapToHGrid) && + testTableFlags(Tbl_smoothHScrolling) ) { + tFlags &= ~Tbl_snapToHGrid; // turn off snapping while sliding + setOffset( val, yOffs, FALSE ); + tFlags |= Tbl_snapToHGrid; // turn on snapping again + } else { + setOffset( val, yOffs, FALSE ); + } +} + +/*! + \internal + This internal slot is connected to the horizontal scroll bar's + QScrollBar::sliderReleased() signal. +*/ + +void QtTableView::horSbSlidingDone( ) +{ + if ( testTableFlags(Tbl_snapToHGrid) && + testTableFlags(Tbl_smoothHScrolling) ) + snapToGrid( TRUE, FALSE ); +} + +/*! + \internal + This internal slot is connected to the vertical scroll bar's + QScrollBar::valueChanged() signal. + + Moves the table vertically to offset \a val without updating the + scroll bar. +*/ + +void QtTableView::verSbValue( int val ) +{ + if ( verSliding ) { + verSliding = FALSE; + if ( verSnappingOff ) { + verSnappingOff = FALSE; + tFlags |= Tbl_snapToVGrid; + } + } + setOffset( xOffs, val, FALSE ); +} + +/*! + \internal + This internal slot is connected to the vertical scroll bar's + QScrollBar::sliderMoved() signal. + + Scrolls the table smoothly vertically even if \c Tbl_snapToVGrid is set. +*/ + +void QtTableView::verSbSliding( int val ) +{ + if ( testTableFlags(Tbl_snapToVGrid) && + testTableFlags(Tbl_smoothVScrolling) ) { + tFlags &= ~Tbl_snapToVGrid; // turn off snapping while sliding + setOffset( xOffs, val, FALSE ); + tFlags |= Tbl_snapToVGrid; // turn on snapping again + } else { + setOffset( xOffs, val, FALSE ); + } +} + +/*! + \internal + This internal slot is connected to the vertical scroll bar's + QScrollBar::sliderReleased() signal. +*/ + +void QtTableView::verSbSlidingDone( ) +{ + if ( testTableFlags(Tbl_snapToVGrid) && + testTableFlags(Tbl_smoothVScrolling) ) + snapToGrid( FALSE, TRUE ); +} + + +/*! + This virtual function is called before painting of table cells + is started. It can be reimplemented by subclasses that want to + to set up the painter in a special way and that do not want to + do so for each cell. +*/ + +void QtTableView::setupPainter( QPainter * ) +{ +} + +/*! + \fn void QtTableView::paintCell( QPainter *p, int row, int col ) + + This pure virtual function is called to paint the single cell at \a + (row,col) using \a p, which is open when paintCell() is called and + must remain open. + + The coordinate system is \link QPainter::translate() translated \endlink + so that the origin is at the top-left corner of the cell to be + painted, i.e. \e cell coordinates. Do not scale or shear the coordinate + system (or if you do, restore the transformation matrix before you + return). + + The painter is not clipped by default and for maximum efficiency. For safety, + call setTableFlags(Tbl_clipCellPainting) to enable clipping. + + \sa paintEvent(), setTableFlags() */ + + +/*! + Handles paint events, \a e, for the table view. + + Calls paintCell() for the cells that needs to be repainted. +*/ + +void QtTableView::paintEvent( QPaintEvent *e ) +{ + QRect updateR = e->rect(); // update rectangle + if ( sbDirty ) { + bool e = eraseInPaint; + updateScrollBars(); + eraseInPaint = e; + } + + QPainter paint( this ); + + if ( !contentsRect().contains( updateR, TRUE ) ) {// update frame ? + drawFrame( &paint ); + if ( updateR.left() < frameWidth() ) //### + updateR.setLeft( frameWidth() ); + if ( updateR.top() < frameWidth() ) + updateR.setTop( frameWidth() ); + } + + int maxWX = maxViewX(); + int maxWY = maxViewY(); + if ( updateR.right() > maxWX ) + updateR.setRight( maxWX ); + if ( updateR.bottom() > maxWY ) + updateR.setBottom( maxWY ); + + setupPainter( &paint ); // prepare for painting table + + int firstRow = findRow( updateR.y() ); + int firstCol = findCol( updateR.x() ); + int xStart, yStart; + if ( !colXPos( firstCol, &xStart ) || !rowYPos( firstRow, &yStart ) ) { + paint.eraseRect( updateR ); // erase area outside cells but in view + return; + } + int maxX = updateR.right(); + int maxY = updateR.bottom(); + int row = firstRow; + int col; + int yPos = yStart; + int xPos = maxX+1; // in case the while() is empty + int nextX; + int nextY; + QRect winR = viewRect(); + QRect cellR; + QRect cellUR; +#ifndef QT_NO_TRANSFORMATIONS + QWMatrix matrix; +#endif + + while ( yPos <= maxY && row < nRows ) { + nextY = yPos + (cellH ? cellH : cellHeight( row )); + if ( testTableFlags( Tbl_cutCellsV ) && nextY > ( maxWY + 1 ) ) + break; + col = firstCol; + xPos = xStart; + while ( xPos <= maxX && col < nCols ) { + nextX = xPos + (cellW ? cellW : cellWidth( col )); + if ( testTableFlags( Tbl_cutCellsH ) && nextX > ( maxWX + 1 ) ) + break; + + cellR.setRect( xPos, yPos, cellW ? cellW : cellWidth(col), + cellH ? cellH : cellHeight(row) ); + cellUR = cellR.intersect( updateR ); + if ( cellUR.isValid() ) { + cellUpdateR = cellUR; + cellUpdateR.moveBy( -xPos, -yPos ); // cell coordinates + if ( eraseInPaint ) + paint.eraseRect( cellUR ); + +#ifndef QT_NO_TRANSFORMATIONS + matrix.translate( xPos, yPos ); + paint.setWorldMatrix( matrix ); + if ( testTableFlags(Tbl_clipCellPainting) || + frameWidth() > 0 && !winR.contains( cellR ) ) { //##arnt + paint.setClipRect( cellUR ); + paintCell( &paint, row, col ); + paint.setClipping( FALSE ); + } else { + paintCell( &paint, row, col ); + } + matrix.reset(); + paint.setWorldMatrix( matrix ); +#else + paint.translate( xPos, yPos ); + if ( testTableFlags(Tbl_clipCellPainting) || + frameWidth() > 0 && !winR.contains( cellR ) ) { //##arnt + paint.setClipRect( cellUR ); + paintCell( &paint, row, col ); + paint.setClipping( FALSE ); + } else { + paintCell( &paint, row, col ); + } + paint.translate( -xPos, -yPos ); +#endif + } + col++; + xPos = nextX; + } + row++; + yPos = nextY; + } + + // while painting we have to erase any areas in the view that + // are not covered by cells but are covered by the paint event + // rectangle these must be erased. We know that xPos is the last + // x pixel updated + 1 and that yPos is the last y pixel updated + 1. + + // Note that this needs to be done regardless whether we do + // eraseInPaint or not. Reason: a subclass may implement + // flicker-freeness and encourage the use of repaint(FALSE). + // The subclass, however, cannot draw all pixels, just those + // inside the cells. So QtTableView is reponsible for all pixels + // outside the cells. + + QRect viewR = viewRect(); + const QColorGroup g = colorGroup(); + + if ( xPos <= maxX ) { + QRect r = viewR; + r.setLeft( xPos ); + r.setBottom( yPossetCursor( arrowCursor ); +#endif + sb->resize( sb->sizeHint() ); // height is irrelevant + Q_CHECK_PTR(sb); + sb->setTracking( FALSE ); + sb->setFocusPolicy( NoFocus ); + connect( sb, SIGNAL(valueChanged(int)), + SLOT(verSbValue(int))); + connect( sb, SIGNAL(sliderMoved(int)), + SLOT(verSbSliding(int))); + connect( sb, SIGNAL(sliderReleased()), + SLOT(verSbSlidingDone())); + sb->hide(); + that->vScrollBar = sb; + return sb; + } + return vScrollBar; +} + +/*! + Returns a pointer to the horizontal scroll bar mainly so you can + connect() to its signals. Note that the scroll bar works in pixel + values; use findCol() to translate to cell numbers. +*/ + +QScrollBar *QtTableView::horizontalScrollBar() const +{ + QtTableView *that = (QtTableView*)this; // semantic const + if ( !hScrollBar ) { + QScrollBar *sb = new QScrollBar( QScrollBar::Horizontal, that ); +#ifndef QT_NO_CURSOR + sb->setCursor( arrowCursor ); +#endif + sb->resize( sb->sizeHint() ); // width is irrelevant + sb->setFocusPolicy( NoFocus ); + Q_CHECK_PTR(sb); + sb->setTracking( FALSE ); + connect( sb, SIGNAL(valueChanged(int)), + SLOT(horSbValue(int))); + connect( sb, SIGNAL(sliderMoved(int)), + SLOT(horSbSliding(int))); + connect( sb, SIGNAL(sliderReleased()), + SLOT(horSbSlidingDone())); + sb->hide(); + that->hScrollBar = sb; + return sb; + } + return hScrollBar; +} + +/*! + Enables or disables the horizontal scroll bar, as required by + setAutoUpdate() and the \link setTableFlags() table flags\endlink. +*/ + +void QtTableView::setHorScrollBar( bool on, bool update ) +{ + if ( on ) { + tFlags |= Tbl_hScrollBar; + horizontalScrollBar(); // created + if ( update ) + updateScrollBars( horMask | verMask ); + else + sbDirty = sbDirty | (horMask | verMask); + if ( testTableFlags( Tbl_vScrollBar ) ) + coverCornerSquare( TRUE ); + if ( autoUpdate() ) + sbDirty = sbDirty | horMask; + } else { + tFlags &= ~Tbl_hScrollBar; + if ( !hScrollBar ) + return; + coverCornerSquare( FALSE ); + bool hideScrollBar = autoUpdate() && hScrollBar->isVisible(); + if ( hideScrollBar ) + hScrollBar->hide(); + if ( update ) + updateScrollBars( verMask ); + else + sbDirty = sbDirty | verMask; + if ( hideScrollBar && isVisible() ) + repaint( hScrollBar->x(), hScrollBar->y(), + width() - hScrollBar->x(), hScrollBar->height() ); + } + if ( update ) + updateFrameSize(); +} + + +/*! + Enables or disables the vertical scroll bar, as required by + setAutoUpdate() and the \link setTableFlags() table flags\endlink. +*/ + +void QtTableView::setVerScrollBar( bool on, bool update ) +{ + if ( on ) { + tFlags |= Tbl_vScrollBar; + verticalScrollBar(); // created + if ( update ) + updateScrollBars( verMask | horMask ); + else + sbDirty = sbDirty | (horMask | verMask); + if ( testTableFlags( Tbl_hScrollBar ) ) + coverCornerSquare( TRUE ); + if ( autoUpdate() ) + sbDirty = sbDirty | verMask; + } else { + tFlags &= ~Tbl_vScrollBar; + if ( !vScrollBar ) + return; + coverCornerSquare( FALSE ); + bool hideScrollBar = autoUpdate() && vScrollBar->isVisible(); + if ( hideScrollBar ) + vScrollBar->hide(); + if ( update ) + updateScrollBars( horMask ); + else + sbDirty = sbDirty | horMask; + if ( hideScrollBar && isVisible() ) + repaint( vScrollBar->x(), vScrollBar->y(), + vScrollBar->width(), height() - vScrollBar->y() ); + } + if ( update ) + updateFrameSize(); +} + + + + +int QtTableView::findRawRow( int yPos, int *cellMaxY, int *cellMinY, + bool goOutsideView ) const +{ + int r = -1; + if ( nRows == 0 ) + return r; + if ( goOutsideView || yPos >= minViewY() && yPos <= maxViewY() ) { + if ( yPos < minViewY() ) { +#if defined(QT_CHECK_RANGE) + qWarning( "QtTableView::findRawRow: (%s) internal error: " + "yPos < minViewY() && goOutsideView " + "not supported. (%d,%d)", + name( "unnamed" ), yPos, yOffs ); +#endif + return -1; + } + if ( cellH ) { // uniform cell height + r = (yPos - minViewY() + yCellDelta)/cellH; // cell offs from top + if ( cellMaxY ) + *cellMaxY = (r + 1)*cellH + minViewY() - yCellDelta - 1; + if ( cellMinY ) + *cellMinY = r*cellH + minViewY() - yCellDelta; + r += yCellOffs; // absolute cell index + } else { // variable cell height + QtTableView *tw = (QtTableView *)this; + r = yCellOffs; + int h = minViewY() - yCellDelta; //##arnt3 + int oldH = h; + Q_ASSERT( r < nRows ); + while ( r < nRows ) { + oldH = h; + h += tw->cellHeight( r ); // Start of next cell + if ( yPos < h ) + break; + r++; + } + if ( cellMaxY ) + *cellMaxY = h - 1; + if ( cellMinY ) + *cellMinY = oldH; + } + } + return r; + +} + + +int QtTableView::findRawCol( int xPos, int *cellMaxX, int *cellMinX , + bool goOutsideView ) const +{ + int c = -1; + if ( nCols == 0 ) + return c; + if ( goOutsideView || xPos >= minViewX() && xPos <= maxViewX() ) { + if ( xPos < minViewX() ) { +#if defined(QT_CHECK_RANGE) + qWarning( "QtTableView::findRawCol: (%s) internal error: " + "xPos < minViewX() && goOutsideView " + "not supported. (%d,%d)", + name( "unnamed" ), xPos, xOffs ); +#endif + return -1; + } + if ( cellW ) { // uniform cell width + c = (xPos - minViewX() + xCellDelta)/cellW; //cell offs from left + if ( cellMaxX ) + *cellMaxX = (c + 1)*cellW + minViewX() - xCellDelta - 1; + if ( cellMinX ) + *cellMinX = c*cellW + minViewX() - xCellDelta; + c += xCellOffs; // absolute cell index + } else { // variable cell width + QtTableView *tw = (QtTableView *)this; + c = xCellOffs; + int w = minViewX() - xCellDelta; //##arnt3 + int oldW = w; + Q_ASSERT( c < nCols ); + while ( c < nCols ) { + oldW = w; + w += tw->cellWidth( c ); // Start of next cell + if ( xPos < w ) + break; + c++; + } + if ( cellMaxX ) + *cellMaxX = w - 1; + if ( cellMinX ) + *cellMinX = oldW; + } + } + return c; +} + + +/*! + Returns the index of the row at position \a yPos, where \a yPos is in + \e widget coordinates. Returns -1 if \a yPos is outside the valid + range. + + \sa findCol(), rowYPos() +*/ + +int QtTableView::findRow( int yPos ) const +{ + int cellMaxY; + int row = findRawRow( yPos, &cellMaxY ); + if ( testTableFlags(Tbl_cutCellsV) && cellMaxY > maxViewY() ) + row = - 1; // cell cut by bottom margin + if ( row >= nRows ) + row = -1; + return row; +} + + +/*! + Returns the index of the column at position \a xPos, where \a xPos is + in \e widget coordinates. Returns -1 if \a xPos is outside the valid + range. + + \sa findRow(), colXPos() +*/ + +int QtTableView::findCol( int xPos ) const +{ + int cellMaxX; + int col = findRawCol( xPos, &cellMaxX ); + if ( testTableFlags(Tbl_cutCellsH) && cellMaxX > maxViewX() ) + col = - 1; // cell cut by right margin + if ( col >= nCols ) + col = -1; + return col; +} + + +/*! + Computes the position in the widget of row \a row. + + Returns TRUE and stores the result in \a *yPos (in \e widget + coordinates) if the row is visible. Returns FALSE and does not modify + \a *yPos if \a row is invisible or invalid. + + \sa colXPos(), findRow() +*/ + +bool QtTableView::rowYPos( int row, int *yPos ) const +{ + int y; + if ( row >= yCellOffs ) { + if ( cellH ) { + int lastVisible = lastRowVisible(); + if ( row > lastVisible || lastVisible == -1 ) + return FALSE; + y = (row - yCellOffs)*cellH + minViewY() - yCellDelta; + } else { + //##arnt3 + y = minViewY() - yCellDelta; // y of leftmost cell in view + int r = yCellOffs; + QtTableView *tw = (QtTableView *)this; + int maxY = maxViewY(); + while ( r < row && y <= maxY ) + y += tw->cellHeight( r++ ); + if ( y > maxY ) + return FALSE; + + } + } else { + return FALSE; + } + if ( yPos ) + *yPos = y; + return TRUE; +} + + +/*! + Computes the position in the widget of column \a col. + + Returns TRUE and stores the result in \a *xPos (in \e widget + coordinates) if the column is visible. Returns FALSE and does not + modify \a *xPos if \a col is invisible or invalid. + + \sa rowYPos(), findCol() +*/ + +bool QtTableView::colXPos( int col, int *xPos ) const +{ + int x; + if ( col >= xCellOffs ) { + if ( cellW ) { + int lastVisible = lastColVisible(); + if ( col > lastVisible || lastVisible == -1 ) + return FALSE; + x = (col - xCellOffs)*cellW + minViewX() - xCellDelta; + } else { + //##arnt3 + x = minViewX() - xCellDelta; // x of uppermost cell in view + int c = xCellOffs; + QtTableView *tw = (QtTableView *)this; + int maxX = maxViewX(); + while ( c < col && x <= maxX ) + x += tw->cellWidth( c++ ); + if ( x > maxX ) + return FALSE; + } + } else { + return FALSE; + } + if ( xPos ) + *xPos = x; + return TRUE; +} + + +/*! + Moves the visible area of the table right by \a xPixels and + down by \a yPixels pixels. Both may be negative. + + \warning You might find that QScrollView offers a higher-level of + functionality than using QtTableView and this function. + + This function is \e not the same as QWidget::scroll(); in particular, + the signs of \a xPixels and \a yPixels have the reverse semantics. + + \sa setXOffset(), setYOffset(), setOffset(), setTopCell(), + setLeftCell() +*/ + +void QtTableView::scroll( int xPixels, int yPixels ) +{ + QWidget::scroll( -xPixels, -yPixels, contentsRect() ); +} + + +/*! + Returns the leftmost pixel of the table view in \e view + coordinates. This excludes the frame and any header. + + \sa maxViewY(), viewWidth(), contentsRect() +*/ + +int QtTableView::minViewX() const +{ + return frameWidth(); +} + + +/*! + Returns the top pixel of the table view in \e view + coordinates. This excludes the frame and any header. + + \sa maxViewX(), viewHeight(), contentsRect() +*/ + +int QtTableView::minViewY() const +{ + return frameWidth(); +} + + +/*! + Returns the rightmost pixel of the table view in \e view + coordinates. This excludes the frame and any scroll bar, but + includes blank pixels to the right of the visible table data. + + \sa maxViewY(), viewWidth(), contentsRect() +*/ + +int QtTableView::maxViewX() const +{ + return width() - 1 - frameWidth() + - (tFlags & Tbl_vScrollBar ? VSBEXT + : 0); +} + + +/*! + Returns the bottom pixel of the table view in \e view + coordinates. This excludes the frame and any scroll bar, but + includes blank pixels below the visible table data. + + \sa maxViewX(), viewHeight(), contentsRect() +*/ + +int QtTableView::maxViewY() const +{ + return height() - 1 - frameWidth() + - (tFlags & Tbl_hScrollBar ? HSBEXT + : 0); +} + + +/*! + Returns the width of the table view, as such, in \e view + coordinates. This does not include any header, scroll bar or frame, + but it does include background pixels to the right of the table data. + + \sa minViewX() maxViewX(), viewHeight(), contentsRect() viewRect() +*/ + +int QtTableView::viewWidth() const +{ + return maxViewX() - minViewX() + 1; +} + + +/*! + Returns the height of the table view, as such, in \e view + coordinates. This does not include any header, scroll bar or frame, + but it does include background pixels below the table data. + + \sa minViewY() maxViewY() viewWidth() contentsRect() viewRect() +*/ + +int QtTableView::viewHeight() const +{ + return maxViewY() - minViewY() + 1; +} + + +void QtTableView::doAutoScrollBars() +{ + int viewW = width() - frameWidth() - minViewX(); + int viewH = height() - frameWidth() - minViewY(); + bool vScrollOn = testTableFlags(Tbl_vScrollBar); + bool hScrollOn = testTableFlags(Tbl_hScrollBar); + int w = 0; + int h = 0; + int i; + + if ( testTableFlags(Tbl_autoHScrollBar) ) { + if ( cellW ) { + w = cellW*nCols; + } else { + i = 0; + while ( i < nCols && w <= viewW ) + w += cellWidth( i++ ); + } + if ( w > viewW ) + hScrollOn = TRUE; + else + hScrollOn = FALSE; + } + + if ( testTableFlags(Tbl_autoVScrollBar) ) { + if ( cellH ) { + h = cellH*nRows; + } else { + i = 0; + while ( i < nRows && h <= viewH ) + h += cellHeight( i++ ); + } + + if ( h > viewH ) + vScrollOn = TRUE; + else + vScrollOn = FALSE; + } + + if ( testTableFlags(Tbl_autoHScrollBar) && vScrollOn && !hScrollOn ) + if ( w > viewW - VSBEXT ) + hScrollOn = TRUE; + + if ( testTableFlags(Tbl_autoVScrollBar) && hScrollOn && !vScrollOn ) + if ( h > viewH - HSBEXT ) + vScrollOn = TRUE; + + setHorScrollBar( hScrollOn, FALSE ); + setVerScrollBar( vScrollOn, FALSE ); + updateFrameSize(); +} + + +/*! + \fn void QtTableView::updateScrollBars() + + Updates the scroll bars' contents and presence to match the table's + state. Generally, you should not need to call this. + + \sa setTableFlags() +*/ + +/*! + Updates the scroll bars' contents and presence to match the table's + state \c or \a f. + + \sa setTableFlags() +*/ + +void QtTableView::updateScrollBars( uint f ) +{ + sbDirty = sbDirty | f; + if ( inSbUpdate ) + return; + inSbUpdate = TRUE; + + if ( testTableFlags(Tbl_autoHScrollBar) && (sbDirty & horRange) || + testTableFlags(Tbl_autoVScrollBar) && (sbDirty & verRange) ) + // if range change and auto + doAutoScrollBars(); // turn scroll bars on/off if needed + + if ( !autoUpdate() ) { + inSbUpdate = FALSE; + return; + } + if ( yOffset() > 0 && testTableFlags( Tbl_autoVScrollBar ) && + !testTableFlags( Tbl_vScrollBar ) ) { + setYOffset( 0 ); + } + if ( xOffset() > 0 && testTableFlags( Tbl_autoHScrollBar ) && + !testTableFlags( Tbl_hScrollBar ) ) { + setXOffset( 0 ); + } + if ( !isVisible() ) { + inSbUpdate = FALSE; + return; + } + + if ( testTableFlags(Tbl_hScrollBar) && (sbDirty & horMask) != 0 ) { + if ( sbDirty & horGeometry ) + hScrollBar->setGeometry( 0,height() - HSBEXT, + viewWidth() + frameWidth()*2, + HSBEXT); + + if ( sbDirty & horSteps ) { + if ( cellW ) + hScrollBar->setSteps( QMIN(cellW,viewWidth()/2), viewWidth() ); + else + hScrollBar->setSteps( 16, viewWidth() ); + } + + if ( sbDirty & horRange ) + hScrollBar->setRange( 0, maxXOffset() ); + + if ( sbDirty & horValue ) + hScrollBar->setValue( xOffs ); + + // show scrollbar only when it has a sane geometry + if ( !hScrollBar->isVisible() ) + hScrollBar->show(); + } + + if ( testTableFlags(Tbl_vScrollBar) && (sbDirty & verMask) != 0 ) { + if ( sbDirty & verGeometry ) + vScrollBar->setGeometry( width() - VSBEXT, 0, + VSBEXT, + viewHeight() + frameWidth()*2 ); + + if ( sbDirty & verSteps ) { + if ( cellH ) + vScrollBar->setSteps( QMIN(cellH,viewHeight()/2), viewHeight() ); + else + vScrollBar->setSteps( 16, viewHeight() ); // fttb! ### + } + + if ( sbDirty & verRange ) + vScrollBar->setRange( 0, maxYOffset() ); + + if ( sbDirty & verValue ) + vScrollBar->setValue( yOffs ); + + // show scrollbar only when it has a sane geometry + if ( !vScrollBar->isVisible() ) + vScrollBar->show(); + } + if ( coveringCornerSquare && + ( (sbDirty & verGeometry ) || (sbDirty & horGeometry)) ) + cornerSquare->move( maxViewX() + frameWidth() + 1, + maxViewY() + frameWidth() + 1 ); + + sbDirty = 0; + inSbUpdate = FALSE; +} + + +void QtTableView::updateFrameSize() +{ + int rw = width() - ( testTableFlags(Tbl_vScrollBar) ? + VSBEXT : 0 ); + int rh = height() - ( testTableFlags(Tbl_hScrollBar) ? + HSBEXT : 0 ); + if ( rw < 0 ) + rw = 0; + if ( rh < 0 ) + rh = 0; + + if ( autoUpdate() ) { + int fh = frameRect().height(); + int fw = frameRect().width(); + setFrameRect( QRect(0,0,rw,rh) ); + + if ( rw != fw ) + update( QMIN(fw,rw) - frameWidth() - 2, 0, frameWidth()+4, rh ); + if ( rh != fh ) + update( 0, QMIN(fh,rh) - frameWidth() - 2, rw, frameWidth()+4 ); + } +} + + +/*! + Returns the maximum horizontal offset within the table of the + view's left edge in \e table coordinates. + + This is used mainly to set the horizontal scroll bar's range. + + \sa maxColOffset(), maxYOffset(), totalWidth() +*/ + +int QtTableView::maxXOffset() +{ + int tw = totalWidth(); + int maxOffs; + if ( testTableFlags(Tbl_scrollLastHCell) ) { + if ( nCols != 1) + maxOffs = tw - ( cellW ? cellW : cellWidth( nCols - 1 ) ); + else + maxOffs = tw - viewWidth(); + } else { + if ( testTableFlags(Tbl_snapToHGrid) ) { + if ( cellW ) { + maxOffs = tw - (viewWidth()/cellW)*cellW; + } else { + int goal = tw - viewWidth(); + int pos = tw; + int nextCol = nCols - 1; + int nextCellWidth = cellWidth( nextCol ); + while( nextCol > 0 && pos > goal + nextCellWidth ) { + pos -= nextCellWidth; + nextCellWidth = cellWidth( --nextCol ); + } + if ( goal + nextCellWidth == pos ) + maxOffs = goal; + else if ( goal < pos ) + maxOffs = pos; + else + maxOffs = 0; + } + } else { + maxOffs = tw - viewWidth(); + } + } + return maxOffs > 0 ? maxOffs : 0; +} + + +/*! + Returns the maximum vertical offset within the table of the + view's top edge in \e table coordinates. + + This is used mainly to set the vertical scroll bar's range. + + \sa maxRowOffset(), maxXOffset(), totalHeight() +*/ + +int QtTableView::maxYOffset() +{ + int th = totalHeight(); + int maxOffs; + if ( testTableFlags(Tbl_scrollLastVCell) ) { + if ( nRows != 1) + maxOffs = th - ( cellH ? cellH : cellHeight( nRows - 1 ) ); + else + maxOffs = th - viewHeight(); + } else { + if ( testTableFlags(Tbl_snapToVGrid) ) { + if ( cellH ) { + maxOffs = th - (viewHeight()/cellH)*cellH; + } else { + int goal = th - viewHeight(); + int pos = th; + int nextRow = nRows - 1; + int nextCellHeight = cellHeight( nextRow ); + while( nextRow > 0 && pos > goal + nextCellHeight ) { + pos -= nextCellHeight; + nextCellHeight = cellHeight( --nextRow ); + } + if ( goal + nextCellHeight == pos ) + maxOffs = goal; + else if ( goal < pos ) + maxOffs = pos; + else + maxOffs = 0; + } + } else { + maxOffs = th - viewHeight(); + } + } + return maxOffs > 0 ? maxOffs : 0; +} + + +/*! + Returns the index of the last column, which may be at the left edge + of the view. + + Depending on the \link setTableFlags() Tbl_scrollLastHCell\endlink flag, + this may or may not be the last column. + + \sa maxXOffset(), maxRowOffset() +*/ + +int QtTableView::maxColOffset() +{ + int mx = maxXOffset(); + if ( cellW ) + return mx/cellW; + else { + int xcd=0, col=0; + while ( col < nCols && mx > (xcd=cellWidth(col)) ) { + mx -= xcd; + col++; + } + return col; + } +} + + +/*! + Returns the index of the last row, which may be at the top edge of + the view. + + Depending on the \link setTableFlags() Tbl_scrollLastVCell\endlink flag, + this may or may not be the last row. + + \sa maxYOffset(), maxColOffset() +*/ + +int QtTableView::maxRowOffset() +{ + int my = maxYOffset(); + if ( cellH ) + return my/cellH; + else { + int ycd=0, row=0; + while ( row < nRows && my > (ycd=cellHeight(row)) ) { + my -= ycd; + row++; + } + return row; + } +} + + +void QtTableView::showOrHideScrollBars() +{ + if ( !autoUpdate() ) + return; + if ( vScrollBar ) { + if ( testTableFlags(Tbl_vScrollBar) ) { + if ( !vScrollBar->isVisible() ) + sbDirty = sbDirty | verMask; + } else { + if ( vScrollBar->isVisible() ) + vScrollBar->hide(); + } + } + if ( hScrollBar ) { + if ( testTableFlags(Tbl_hScrollBar) ) { + if ( !hScrollBar->isVisible() ) + sbDirty = sbDirty | horMask; + } else { + if ( hScrollBar->isVisible() ) + hScrollBar->hide(); + } + } + if ( cornerSquare ) { + if ( testTableFlags(Tbl_hScrollBar) && + testTableFlags(Tbl_vScrollBar) ) { + if ( !cornerSquare->isVisible() ) + cornerSquare->show(); + } else { + if ( cornerSquare->isVisible() ) + cornerSquare->hide(); + } + } +} + + +/*! + Updates the scroll bars and internal state. + + Call this function when the table view's total size is changed; + typically because the result of cellHeight() or cellWidth() have changed. + + This function does not repaint the widget. +*/ + +void QtTableView::updateTableSize() +{ + bool updateOn = autoUpdate(); + setAutoUpdate( FALSE ); + int xofs = xOffset(); + xOffs++; //so that setOffset will not return immediately + setOffset(xofs,yOffset(),FALSE); //to calculate internal state correctly + setAutoUpdate(updateOn); + + updateScrollBars( horSteps | horRange | + verSteps | verRange ); + showOrHideScrollBars(); +} + + +#endif diff --git a/fifteenapplet/qttableview.h b/fifteenapplet/qttableview.h new file mode 100644 index 0000000..c5a540d --- /dev/null +++ b/fifteenapplet/qttableview.h @@ -0,0 +1,251 @@ +/********************************************************************** +** $Id$ +** +** Definition of QtTableView class +** +** Created : 941115 +** +** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +** This file contains a class moved out of the Qt GUI Toolkit API. It +** may be used, distributed and modified without limitation. +** +**********************************************************************/ + +#ifndef QTTABLEVIEW_H +#define QTTABLEVIEW_H + +#ifndef QT_H +#include "qframe.h" +#endif // QT_H + +#ifndef QT_NO_QTTABLEVIEW + +class QScrollBar; +class QCornerSquare; + + +class QtTableView : public QFrame +{ + Q_OBJECT +public: + virtual void setBackgroundColor( const QColor & ); + virtual void setPalette( const QPalette & ); + void show(); + + void repaint( bool erase=TRUE ); + void repaint( int x, int y, int w, int h, bool erase=TRUE ); + void repaint( const QRect &, bool erase=TRUE ); + +protected: + QtTableView( QWidget *parent=0, const char *name=0, WFlags f=0 ); + ~QtTableView(); + + int numRows() const; + virtual void setNumRows( int ); + int numCols() const; + virtual void setNumCols( int ); + + int topCell() const; + virtual void setTopCell( int row ); + int leftCell() const; + virtual void setLeftCell( int col ); + virtual void setTopLeftCell( int row, int col ); + + int xOffset() const; + virtual void setXOffset( int ); + int yOffset() const; + virtual void setYOffset( int ); + virtual void setOffset( int x, int y, bool updateScrBars = TRUE ); + + virtual int cellWidth( int col ); + virtual int cellHeight( int row ); + int cellWidth() const; + int cellHeight() const; + virtual void setCellWidth( int ); + virtual void setCellHeight( int ); + + virtual int totalWidth(); + virtual int totalHeight(); + + uint tableFlags() const; + bool testTableFlags( uint f ) const; + virtual void setTableFlags( uint f ); + void clearTableFlags( uint f = ~0 ); + + bool autoUpdate() const; + virtual void setAutoUpdate( bool ); + + void updateCell( int row, int column, bool erase=TRUE ); + + QRect cellUpdateRect() const; + QRect viewRect() const; + + int lastRowVisible() const; + int lastColVisible() const; + + bool rowIsVisible( int row ) const; + bool colIsVisible( int col ) const; + + QScrollBar *verticalScrollBar() const; + QScrollBar *horizontalScrollBar() const; + +private slots: + void horSbValue( int ); + void horSbSliding( int ); + void horSbSlidingDone(); + void verSbValue( int ); + void verSbSliding( int ); + void verSbSlidingDone(); + +protected: + virtual void paintCell( QPainter *, int row, int col ) = 0; + virtual void setupPainter( QPainter * ); + + void paintEvent( QPaintEvent * ); + void resizeEvent( QResizeEvent * ); + + int findRow( int yPos ) const; + int findCol( int xPos ) const; + + bool rowYPos( int row, int *yPos ) const; + bool colXPos( int col, int *xPos ) const; + + int maxXOffset(); + int maxYOffset(); + int maxColOffset(); + int maxRowOffset(); + + int minViewX() const; + int minViewY() const; + int maxViewX() const; + int maxViewY() const; + int viewWidth() const; + int viewHeight() const; + + void scroll( int xPixels, int yPixels ); + void updateScrollBars(); + void updateTableSize(); + +private: + void coverCornerSquare( bool ); + void snapToGrid( bool horizontal, bool vertical ); + virtual void setHorScrollBar( bool on, bool update = TRUE ); + virtual void setVerScrollBar( bool on, bool update = TRUE ); + void updateView(); + int findRawRow( int yPos, int *cellMaxY, int *cellMinY = 0, + bool goOutsideView = FALSE ) const; + int findRawCol( int xPos, int *cellMaxX, int *cellMinX = 0, + bool goOutsideView = FALSE ) const; + int maxColsVisible() const; + + void updateScrollBars( uint ); + void updateFrameSize(); + + void doAutoScrollBars(); + void showOrHideScrollBars(); + + int nRows; + int nCols; + int xOffs, yOffs; + int xCellOffs, yCellOffs; + short xCellDelta, yCellDelta; + short cellH, cellW; + + uint eraseInPaint : 1; + uint verSliding : 1; + uint verSnappingOff : 1; + uint horSliding : 1; + uint horSnappingOff : 1; + uint coveringCornerSquare : 1; + uint sbDirty : 8; + uint inSbUpdate : 1; + + uint tFlags; + QRect cellUpdateR; + + QScrollBar *vScrollBar; + QScrollBar *hScrollBar; + QCornerSquare *cornerSquare; + +private: // Disabled copy constructor and operator= +#if defined(Q_DISABLE_COPY) + QtTableView( const QtTableView & ); + QtTableView &operator=( const QtTableView & ); +#endif +}; + + +const uint Tbl_vScrollBar = 0x00000001; +const uint Tbl_hScrollBar = 0x00000002; +const uint Tbl_autoVScrollBar = 0x00000004; +const uint Tbl_autoHScrollBar = 0x00000008; +const uint Tbl_autoScrollBars = 0x0000000C; + +const uint Tbl_clipCellPainting = 0x00000100; +const uint Tbl_cutCellsV = 0x00000200; +const uint Tbl_cutCellsH = 0x00000400; +const uint Tbl_cutCells = 0x00000600; + +const uint Tbl_scrollLastHCell = 0x00000800; +const uint Tbl_scrollLastVCell = 0x00001000; +const uint Tbl_scrollLastCell = 0x00001800; + +const uint Tbl_smoothHScrolling = 0x00002000; +const uint Tbl_smoothVScrolling = 0x00004000; +const uint Tbl_smoothScrolling = 0x00006000; + +const uint Tbl_snapToHGrid = 0x00008000; +const uint Tbl_snapToVGrid = 0x00010000; +const uint Tbl_snapToGrid = 0x00018000; + + +inline int QtTableView::numRows() const +{ return nRows; } + +inline int QtTableView::numCols() const +{ return nCols; } + +inline int QtTableView::topCell() const +{ return yCellOffs; } + +inline int QtTableView::leftCell() const +{ return xCellOffs; } + +inline int QtTableView::xOffset() const +{ return xOffs; } + +inline int QtTableView::yOffset() const +{ return yOffs; } + +inline int QtTableView::cellHeight() const +{ return cellH; } + +inline int QtTableView::cellWidth() const +{ return cellW; } + +inline uint QtTableView::tableFlags() const +{ return tFlags; } + +inline bool QtTableView::testTableFlags( uint f ) const +{ return (tFlags & f) != 0; } + +inline QRect QtTableView::cellUpdateRect() const +{ return cellUpdateR; } + +inline bool QtTableView::autoUpdate() const +{ return isUpdatesEnabled(); } + +inline void QtTableView::repaint( bool erase ) +{ repaint( 0, 0, width(), height(), erase ); } + +inline void QtTableView::repaint( const QRect &r, bool erase ) +{ repaint( r.x(), r.y(), r.width(), r.height(), erase ); } + +inline void QtTableView::updateScrollBars() +{ updateScrollBars( 0 ); } + + +#endif // QT_NO_QTTABLEVIEW + +#endif // QTTABLEVIEW_H diff --git a/kdetoys.lsm b/kdetoys.lsm new file mode 100644 index 0000000..b1bac67 --- /dev/null +++ b/kdetoys.lsm @@ -0,0 +1,11 @@ +Begin4 +Title: kdetoys +Version: 3.5.10 +Entered-date: 2008-08-26 +Description: Toy applications for the K Desktop Environment (KDE) +Keywords: KDE X11 desktop Qt +Author: http://bugs.kde.org/ (KDE Bugtracking System) +Primary-site: http://www.kde.org/download/ +Platforms: Unix, Qt +Copying-policy: GPL, Artistic +End diff --git a/kmoon/AUTHORS b/kmoon/AUTHORS new file mode 100644 index 0000000..3acac86 --- /dev/null +++ b/kmoon/AUTHORS @@ -0,0 +1,10 @@ +KDE interface: +Stephan Kulow +M G berberich + +phase calculation code: +Christopher Osburn + +Graphics by: +Tim Beauchamp + diff --git a/kmoon/Makefile.am b/kmoon/Makefile.am new file mode 100644 index 0000000..c2875c1 --- /dev/null +++ b/kmoon/Makefile.am @@ -0,0 +1,20 @@ + +kde_module_LTLIBRARIES = kmoon_panelapplet.la + +kmoon_panelapplet_la_SOURCES = kmoonapplet.cpp phases.cpp kmoondlg.cpp kmoonwidget.cpp +kmoon_panelapplet_la_LDFLAGS = $(KDE_PLUGIN) -module $(all_libraries) +kmoon_panelapplet_la_LIBADD = $(LIB_KSYCOCA) + +lnkdir = $(kde_datadir)/kicker/applets +lnk_DATA = kmoonapplet.desktop + +INCLUDES = $(all_includes) + +METASOURCES = AUTO + +KDE_ICON = kmoon + +SUBDIRS = pics + +messages: + $(XGETTEXT) *.cpp -o $(podir)/kmoon.pot diff --git a/kmoon/hi16-app-kmoon.png b/kmoon/hi16-app-kmoon.png new file mode 100644 index 0000000000000000000000000000000000000000..8913b347a0913850b972571bb06a461d4c03f78d GIT binary patch literal 332 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)07?Fw^Pk3ZO`hr;B4q z#jU%+j(iOYJg+6;Qt;wY22epgj?pvQO(LHK%kjLI|!IVj!A@-uW zstIw?iI%SRf6G=Flso21@Z|pKVZI`us`7UKGb^AwoJ(9IN`mv#O3D+9QW+dHlr=qb z6Vp?D6Vo%3vlUGAjP%SEEG_j7%=HZn6_SfGi%TjUax05VGL!XEi}g}U3-a?y^pf*) zvzZtU1C7%H8<&}$msnB?G|$+`($vr-EzKw;$=uk`C?(k}+04kmz$nSs*v!=2#Q1C_ RV=Pb?gQu&X%Q~loCIBGtacBSl literal 0 HcmV?d00001 diff --git a/kmoon/hi32-app-kmoon.png b/kmoon/hi32-app-kmoon.png new file mode 100644 index 0000000000000000000000000000000000000000..65deb099c08c8677f7ca2ae3fbdf8df36afe6194 GIT binary patch literal 2111 zcmV-F2*CG=P)7o=$A0Y z`3@q6OQfonD2kG$rJu39JmlQDH%1Qv(|r(#GmB3lzJstu5vGaZFhU1QnVb`j(d(aN z;nWKN6upvOzeE^AfYYb@)Yawt#?%9Wbh|QIoG-Dwj>sWGn4wCysjF31SFdAc;3M3O zYs>$j>Q_HX5eMc@4|!)F}Z9 z(gvp}q?GaeABtj@5RMY#*GW5jTTSd^?*E5zbqE?vC9aAg_A&>#dA%#5O#$9)^KWoD)hg6V!1 z#NvF3`wj+32sk6$Hrmt61fYlx2>Z=Qek05b;|(J&eT)>v!vMH#pc*jSzVH=rk+hJ;a9B(>IjZe_+3Nv9E2WF-MT^UEZBhuO$c+JUv zLG|Gfol<&5$$RfDV;h;`ksc{0R06)SfsQ-#-}ojnKFQN3pWxT;{PDHXsCoS^BN`@A zIkcCe6RmCACZZE)I84rl%NRiqqv6x!t8xQ+HaWTQ1UI^?{LxudES#iN8UNl_jn6pEW+7*0bk zmaPvzDbLr2xkJ@<9DQwTy-CILL6%B_mw>E%v zg4N*)slJI@CP+h7{fih%lrD}DV&wEoKR|VwE0=x=($MRDjoHC7xUI9e`10MRX`he8 zA|g6P3^RyMwm`&i2hZ!cZDF=Ut}D#8&@hG5L1c!Mx;Wdc) z8?!Fiwki9AeLk|UL%VTpnO?t7QJg^Y9SkF=Qr91l(;Fi?oS}3 z*6vloVL1E?WpA58d#KKUM25p*WdqO$h4Y&!@@ zcZ%`x2^zM+;pp)btffSk4r^`4TiJ@>|e&i()+P2-(kTzD7p zUGQCs;shZCVw@(%M^T+1hDYg@$0^IB^!hz|{Q<}%s?)eTu{aK{RIBgdmfBKaYlswx z9J}ZB;+{Qg(|G5tw=V;2&k^+4o*a8pV3fTRl;z{Z5Wo$ybyV8hm*@;Zl_DM|lqIov ziV&VewSV6`&V9T1rt!{&x0l+sPz;sM-r|P|atQYhK?C?MWmzJ7Al%#Ty{@Y^CPIPA z!=DS{bAjAt=Hl4mOb zy*c9QO#ogx^DORd8K~1gadr_Ra|=KGQUE?4|6iXaKHl`y{9}~mqX@JyBa>9C*ExUw pCpf!=Fij{*qDG3|i(d-de*p-x^gPl9O*Q}k002ovPDHLkV1nkU?ot2% literal 0 HcmV?d00001 diff --git a/kmoon/hi48-app-kmoon.png b/kmoon/hi48-app-kmoon.png new file mode 100644 index 0000000000000000000000000000000000000000..1ce020f501efa703b0d438b5e91d3a1d764be3d7 GIT binary patch literal 4120 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 W4IR$Y93*7`0000b?k literal 0 HcmV?d00001 diff --git a/kmoon/kmoonapplet.cpp b/kmoon/kmoonapplet.cpp new file mode 100644 index 0000000..9b3dd87 --- /dev/null +++ b/kmoon/kmoonapplet.cpp @@ -0,0 +1,165 @@ +/* + * kmoon - a moon phase indicator + * $Id$ + * Copyright (C) 1998,2000 Stephan Kulow + * + * 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. + * + * 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; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "version.h" +#include "kmoondlg.h" +#include "kmoonwidget.h" +#include "kmoonapplet.h" + +const char *description = I18N_NOOP("Moon Phase Indicator for KDE"); + +extern "C" +{ + KDE_EXPORT KPanelApplet *init(QWidget *parent, const QString& configFile) + { + KGlobal::locale()->insertCatalogue("kmoon"); + return new MoonPAWidget(configFile, KPanelApplet::Normal, + KPanelApplet::About|KPanelApplet::Preferences, + parent, "kmoonapplet"); + } +} + +MoonPAWidget::MoonPAWidget(const QString& configFile, Type type, int actions, + QWidget *parent, const char *name) + : KPanelApplet(configFile, type, actions, parent, name) +{ + KConfig *config = KGlobal::config(); + config->setGroup("General"); + + QVBoxLayout *vbox = new QVBoxLayout(this, 0,0); + moon = new MoonWidget(this); + moon->setAngle(config->readNumEntry("Rotation", 0)); + moon->setNorthHemi(config->readBoolEntry("Northern", true)); + moon->setMask(config->readBoolEntry("Mask", false)); + vbox->addWidget(moon); + startTimer(1000 * 60 * 20); + + popup = new QPopupMenu(); + popup->insertItem(SmallIcon("kmoon"), + i18n("&About"), this, + SLOT(showAbout())); + popup->insertItem(SmallIcon("configure"), i18n("&Configure..."), this, + SLOT(settings())); + + // missuse timerEvent for initialising + timerEvent(0); +} + +MoonPAWidget::~MoonPAWidget() +{ + delete moon; + delete popup; +} + +void MoonPAWidget::showAbout() +{ + KDialogBase *dialog = new KDialogBase( + i18n("About Moon Phase Indicator"), + KDialogBase::Yes, + KDialogBase::Yes, KDialogBase::Yes, + 0, "about", true, true, + KStdGuiItem::ok() ); + + QPixmap ret = DesktopIcon("kmoon"); + QString text = i18n(description) + QString::fromLatin1("\n\n") + + i18n("Written by Stephan Kulow \n" + "\n" + "Made an applet by M G Berberich " + "\n" + "\n" + "Lunar code by Chris Osburn " + "\n" + "\n" + "Moon graphics by Tim Beauchamp " + ""); + + dialog->setIcon(ret); + + KMessageBox::createKMessageBox(dialog, ret, text, QStringList(), QString::null, 0, KMessageBox::Notify); +} + +void MoonPAWidget::settings() +{ + KMoonDlg dlg(moon->angle(), moon->northHemi(), moon->mask(), + this, "moondlg"); + if (dlg.exec() == KMoonDlg::Accepted) { + moon->setAngle(dlg.getAngle()); + moon->setNorthHemi(dlg.getNorthHemi()); + moon->setMask(dlg.getMask()); + KConfig *config = KGlobal::config(); + config->setGroup("General"); + config->writeEntry("Rotation", moon->angle()); + config->writeEntry("Northern", moon->northHemi()); + config->writeEntry("Mask", moon->mask()); + config->sync(); + } + repaint(); +} + +void MoonPAWidget::timerEvent( QTimerEvent * ) +{ + time_t clock; + time(&clock); + struct tm *t = localtime(&clock); + moon->calcStatus(mktime(t)); + moon->repaint(); +} + +void MoonPAWidget::mousePressEvent( QMouseEvent *e) +{ + if (!popup) + return; + + if (e->button() == RightButton) { + popup->popup(mapToGlobal(e->pos())); + popup->exec(); + } + if (e->button() == LeftButton) { + showAbout(); + } +} + +#include "kmoonapplet.moc" diff --git a/kmoon/kmoonapplet.desktop b/kmoon/kmoonapplet.desktop new file mode 100644 index 0000000..a89e167 --- /dev/null +++ b/kmoon/kmoonapplet.desktop @@ -0,0 +1,109 @@ +[Desktop Entry] +Type=Plugin +Icon=kmoon +Name=Moon Phase +Name[be]=Фаза луны +Name[bg]=Фази на луната +Name[bn]=চাঁদের কলা +Name[br]=Prantadoù al loariad +Name[ca]=Fase de la lluna +Name[cs]=Měsíční fáze +Name[cy]=Gweddau'r Lleuad +Name[da]=Månefase +Name[de]=Mondphasen-Darstellung +Name[el]=Δείκτης των φάσεων της Σελήνης +Name[eo]=Lunfazo +Name[es]=Fase lunar +Name[et]=Kuu faasid +Name[eu]=Ilargiaren fasea +Name[fa]=هلال ماه +Name[fi]=Kuunvaihenäyttäjä +Name[fr]=Phase de la Lune +Name[ga]=Céim na Gealaí +Name[gl]=Fase da Lua +Name[he]=מופע הירח +Name[hr]=Mjesečeva mjena +Name[hu]=KMoon +Name[is]=Tunglskiptabirtir +Name[it]=Fasi lunari +Name[ja]=月の満ち欠け +Name[km]=ដំណើរ​ព្រះចន្ទ +Name[ko]=달 모양 보기 +Name[lv]=Mēness fāzes +Name[mk]=Месечеви мени +Name[nb]=Se månefasene +Name[nds]=Maandwieser +Name[ne]=चन्द्रमाको रूप +Name[nl]=Maanstand +Name[nn]=Månefase +Name[pa]=ਚੰਦ ਕਲਾਵਾਂ +Name[pl]=Fazy księżyca +Name[pt]=Fase Lunar +Name[pt_BR]=Fase da Lua +Name[ro]=Fazele Lunii +Name[ru]=Фазы Луны +Name[sk]=Fázy Mesiaca +Name[sl]=Lunina mena +Name[sr]=Месечеве мене +Name[sr@Latn]=Mesečeve mene +Name[sv]=Månfaser +Name[tg]=Авзои Моҳ +Name[tr]=Ay'ın Durumu +Name[uk]=Фази місяця +Name[wa]=Fazes del lune +Name[zh_CN]=月相 +Name[zh_TW]=月亮圓缺 +Comment=Displays the current moon phase +Comment[ar]=يعرض وجه القمر الحالي +Comment[be]=Паказвае бягучаю фазу луны +Comment[bg]=Показване на текущата фаза на луната +Comment[bn]=চাঁদের বর্তমান কলা প্রদর্শন করে +Comment[br]=Diskouez ar prantad loariad red +Comment[ca]=Mostra la fase actual de la lluna +Comment[cs]=Zobrazuje aktuální fázi měsíce +Comment[cy]=Dangos gwedd gyfredol y lleuad +Comment[da]=Viser nuværende månefase +Comment[de]=Zeigt die aktuelle Mondphase an +Comment[el]=Εμφανίζει την τρέχουσα φάση της Σελήνης +Comment[eo]=Montru la nunan lunfazon +Comment[es]=Indica la fase lunar actual +Comment[et]=Kuu faaside näitaja +Comment[eu]=Uneko ilargiaren fasea bistaratzen du +Comment[fa]=هلال ماه جاری را نمایش می‌دهد +Comment[fi]=Näyttää kuun nykyisen vaiheen +Comment[fr]=Affiche la phase actuelle de la Lune +Comment[ga]=Taispeáin céim reatha na gealaí +Comment[gl]=Mostra a fase da lua +Comment[he]=מציג את מופע הירח הנוכחי +Comment[hr]=Prikazivanje trenutnih mjesečevih mjena +Comment[hu]=Megjeleníti a Hold aktuális állapotát +Comment[is]=Sýnir núverandi stöðu tunglsins +Comment[it]=Visualizza la fase lunare corrente +Comment[ja]=月の満ち欠けの状態を表示 +Comment[km]=បង្ហាញ​ដំណើរ​ព្រះចន្ទ​បច្ចុប្បន្ន +Comment[lv]=Rāda pašreizējo mēness fāzi +Comment[mk]=Ја прикажува тековната месечева мена +Comment[nb]=Vis vilken månefase vi er i +Comment[nds]=Wiest den aktuellen Maand +Comment[ne]=हालको चन्द्रमाको रूप प्रदर्शन गर्दछ +Comment[nl]=Toont de huidige maanstand +Comment[nn]=Viser månefasen +Comment[pl]=Pokazuje aktualną fazę księżyca +Comment[pt]=Mostra a fase lunar actual +Comment[pt_BR]=Mostra a atual fase da lua +Comment[ro]=Afişează faza curentă a lunii +Comment[ru]=Показывает текущую фазу Луны +Comment[sk]=Zobrazí aktuálnu fázu Mesiaca +Comment[sl]=Prikazuje trenutno Lunino meno +Comment[sr]=Приказује тренутну фазу месеца +Comment[sr@Latn]=Prikazuje trenutnu fazu meseca +Comment[sv]=Visar den nuvarande månfasen +Comment[tg]=Намоиши авзои Моҳи равон +Comment[tr]=Ayın şimdiki durumunu gösterir +Comment[uk]=Показує поточну фазу місяця +Comment[wa]=Håynêye li faze del lune do moumint +Comment[zh_CN]=显示当前的月相 +Comment[zh_TW]=顯示目前月亮的圓缺狀態 +X-KDE-Library=kmoon_panelapplet +X-KDE-UniqueApplet=true +DocPath=kmoon/index.html diff --git a/kmoon/kmoonapplet.h b/kmoon/kmoonapplet.h new file mode 100644 index 0000000..ac25d0f --- /dev/null +++ b/kmoon/kmoonapplet.h @@ -0,0 +1,67 @@ +/* + * kmoon - a moon phase indicator + * Copyright (C) 1998,2000 Stephan Kulow + * + * 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. + * + * 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; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef KMOONAPPLET +#define KMOONAPPLET + +#include +#include +#include +#include +#include +#include + +// #include "kmoonwidget.h" + +class QPopupMenu; + +class MoonWidget; + +class MoonPAWidget : public KPanelApplet +{ + Q_OBJECT + +public: + MoonPAWidget(const QString& configFile, Type t = Normal, int actions = 0, + QWidget *parent = 0, const char *name = 0); + ~MoonPAWidget(); + + int widthForHeight(int height) const { return height; } + int heightForWidth(int width) const { return width; } + +protected: + QPopupMenu *popup; + MoonWidget *moon; + QString tooltip; + + void about() { showAbout(); } + void preferences() { settings(); } + +protected slots: + + void timerEvent( QTimerEvent *e); + void showAbout(); + void settings(); + +protected: + void mousePressEvent( QMouseEvent *e); +}; + +#endif diff --git a/kmoon/kmoondlg.cpp b/kmoon/kmoondlg.cpp new file mode 100644 index 0000000..14f6f5a --- /dev/null +++ b/kmoon/kmoondlg.cpp @@ -0,0 +1,114 @@ +/* + * kmoon - a moon phase indicator + * Copyright (C) 1998 Stephan Kulow + * + * 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. + * + * 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; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "kmoondlg.h" +#include "kmoonwidget.h" + +KMoonDlg::KMoonDlg(int a, bool n, bool m, QWidget *parent, const char *name) + : KDialogBase(parent, name, true, i18n("Change View"), + Ok|Cancel|Help), angle(a), north(n), mask(m) +{ + QWidget *page = new QWidget( this ); + setMainWidget(page); + QHBoxLayout *topLayout = new QHBoxLayout( page, 0, spacingHint() ); + + QVBox *vbox = new QVBox(page); + QHBox *hbox1 = new QHBox(vbox); + hbox1->setSpacing(15); + + QLabel *label = new QLabel( i18n("View angle:"), hbox1, "caption" ); + QString text = i18n("You can use this to rotate the moon to the correct\n" + "angle for your location.\n" + "\n" + "This angle is (almost) impossible to\n" + "calculate from any system-given data,\n" + "therefore you can configure how you\n" + "want KMoon to display your moon here.\n" + "The default value is 0, but it is very\n" + "unlikely that you would see the moon\n" + "at this angle."); + QWhatsThis::add(label, text); + + slider = new QSlider( -90, 90, 2, angle, Qt::Horizontal, hbox1, "slider" ); + slider->setTickmarks(QSlider::Above); + slider->setTickInterval(45); + slider->setEnabled(QPixmap::defaultDepth() > 8); + label->setEnabled(QPixmap::defaultDepth() > 8); + QWhatsThis::add(slider, text); + connect(slider, SIGNAL(valueChanged(int)), SLOT(angleChanged(int))); + + QHBox *hbox2 = new QHBox(vbox); + hbox2->setSpacing(spacingHint()); + + hemitoggle = new QPushButton(hbox2); + hemitoggle->setText(north ? i18n("Switch to Southern Hemisphere") : + i18n("Switch to Northern Hemisphere")); + + connect(hemitoggle, SIGNAL(clicked()), SLOT(toggleHemi())); + + masktoggle = new QPushButton(hbox2); + masktoggle->setText(mask ? i18n("Switch Masking Off") : + i18n("Switch Masking On")); + + connect(masktoggle, SIGNAL(clicked()), SLOT(toggleMask())); + topLayout->addWidget(vbox); + + moon = new MoonWidget(page, "preview"); + moon->setMinimumSize(50, 50); + moon->setMaximumSize(200,200); + QWhatsThis::add(moon, i18n("The moon as KMoon would display it\n" + "following your current setting and time.")); + topLayout->addWidget(moon); + connect(this, SIGNAL(helpClicked()), SLOT(help())); + // disableResize(); +} + +void KMoonDlg::angleChanged(int value) { + angle = value; + moon->setAngle(value); +} + +void KMoonDlg::help() { + kapp->invokeHelp(QString::fromLatin1("config")); +} + +void KMoonDlg::toggleHemi() { + moon->setNorthHemi(!moon->northHemi()); + north = moon->northHemi(); + hemitoggle->setText(north ? i18n("Switch to Southern Hemisphere") : + i18n("Switch to Northern Hemisphere")); +} + +void KMoonDlg::toggleMask() { + moon->setMask(!moon->mask()); + mask = moon->mask(); + masktoggle->setText(mask ? i18n("Switch Masking Off") : + i18n("Switch Masking On")); +} + +#include "kmoondlg.moc" diff --git a/kmoon/kmoondlg.h b/kmoon/kmoondlg.h new file mode 100644 index 0000000..2533a2a --- /dev/null +++ b/kmoon/kmoondlg.h @@ -0,0 +1,55 @@ +/* + * kmoon - a moon phase indicator + * Copyright (C) 1998,2000 Stephan Kulow + * + * 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. + * + * 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; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef KMOONDLG +#define KMOONDLG + +#include + +class QSlider; +class MoonWidget; +class QPushButton; + +class KMoonDlg : public KDialogBase { + Q_OBJECT + + public: + KMoonDlg(int angle, bool north, bool mask, QWidget *parent, const char *name); + int getAngle() const { return angle; } + bool getNorthHemi() const { return north; } + bool getMask() const { return mask; } + + private: + QSlider *slider; + MoonWidget *moon; + int angle; + bool north; + bool mask; + QPushButton *hemitoggle; + QPushButton *masktoggle; + + private slots: + void help(); + void angleChanged(int); + void toggleHemi(); + void toggleMask(); +}; + +#endif diff --git a/kmoon/kmoonwidget.cpp b/kmoon/kmoonwidget.cpp new file mode 100644 index 0000000..413b555 --- /dev/null +++ b/kmoon/kmoonwidget.cpp @@ -0,0 +1,369 @@ +/* + * kmoon - a moon phase indicator + * $Id$ + * Copyright (C) 1998,2000 Stephan Kulow + * + * 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. + * + * 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; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "kmoondlg.h" +#include "kmoonwidget.h" +#include + +extern double moonphasebylunation(int lun, int phi); +extern time_t JDtoDate(double jd, struct tm *event_date); + +MoonWidget::MoonWidget(QWidget *parent, const char *name) + : QWidget(parent, name) +{ + struct tm * t; + time_t clock; + + counter = -1; + KConfig *config = KGlobal::config(); + config->setGroup("General"); + _angle = config->readNumEntry("Rotation", 0); + _north = config->readBoolEntry("Northern", true); + _mask = config->readBoolEntry("Mask", true); + old_angle = old_w = old_h = old_counter = -1; + old_north = false; + old_mask = false; + startTimer(1000 * 60 * 20); + + time(&clock); + t = gmtime(&clock); + // kdDebug() << "time " << t->tm_isdst << " " << timezone << " " << daylight << endl ; + calcStatus(mktime(t)); +} + +MoonWidget::~MoonWidget() +{ +} + +void MoonWidget::calcStatus( time_t time ) +{ + uint lun = 0; + time_t last_new = 0; + time_t next_new = 0; + + do { + double JDE = moonphasebylunation(lun, 0); + last_new = next_new; + next_new = JDtoDate(JDE, 0); + lun++; + } while (next_new < time); + + lun -= 2; + + QDateTime ln; + ln.setTime_t( last_new ); + kdDebug() << KGlobal::locale()->formatDateTime( ln ) << endl; + + time_t first_quarter = JDtoDate( moonphasebylunation( lun, 1 ), 0 ); + QDateTime fq; + fq.setTime_t( first_quarter ); + kdDebug() << KGlobal::locale()->formatDateTime( fq ) << endl; + + time_t full_moon = JDtoDate( moonphasebylunation( lun, 2 ), 0 ); + QDateTime fm; + fm.setTime_t( full_moon ); + kdDebug() << KGlobal::locale()->formatDateTime( fm ) << endl; + + time_t third_quarter = JDtoDate( moonphasebylunation( lun, 3 ), 0 ); + QDateTime tq; + tq.setTime_t( third_quarter ); + kdDebug() << KGlobal::locale()->formatDateTime( tq ) << endl; + + QDateTime nn; + nn.setTime_t( next_new ); + kdDebug() << KGlobal::locale()->formatDateTime( nn ) << endl; + + QDateTime now; + now.setTime_t( time ); + kdDebug() << KGlobal::locale()->formatDateTime( now ) << endl; + + counter = ln.daysTo( now ); + kdDebug() << "counter " << counter << " " << fm.daysTo( now ) << endl; + + if ( fm.daysTo( now ) == 0 ) { + counter = 14; + tooltip = i18n( "Full Moon" ); + return; + } else if ( counter <= 15 && counter >= 13 ) { + counter = 14 + fm.daysTo( now ); + kdDebug() << "around full moon " << counter << endl; + } + + int diff = fq.daysTo( now ); + if ( diff == 0 ) + counter = 7; + else if ( counter <= 8 && counter >= 6 ) { + counter = 7 + diff; + kdDebug() << "around first quarter " << counter << endl; + } + + diff = ln.daysTo( now ); + if ( diff == 0 ) + counter = 0; + else if ( counter <= 1 || counter >= 28 ) + { + counter = ( 29 + diff ) % 29; + diff = -nn.daysTo( now ); + if ( diff == 0 ) + counter = 0; + else if ( diff < 3 ) + counter = 29 - diff; + kdDebug() << "around new " << counter << " " << diff << endl; + } + + if ( tq.daysTo( now ) == 0 ) + counter = 21; + else if ( counter <= 22 && counter >= 20 ) + { + counter = 21 + tq.daysTo( now ); + kdDebug() << "around third quarter " << counter << endl; + } + + kdDebug() << "counter " << counter << endl; + + assert (counter >= 0 && counter < 29); + + switch (counter) { + case 0: + tooltip = i18n("New Moon"); + return; + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + tooltip = i18n("Waxing Crescent (New Moon was yesterday)", "Waxing Crescent (%n days since New Moon)", counter ); + break; + case 7: + tooltip = i18n("First Quarter"); + break; + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + tooltip = i18n( "Waxing Gibbous (Tomorrow is Full Moon)", "Waxing Gibbous (%n days to Full Moon)", -fm.daysTo( now ) ); + break; + case 14: + assert( false ); + break; + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + tooltip = i18n("Waning Gibbous (Yesterday was Full Moon)", "Waning Gibbous (%n days since Full Moon)", fm.daysTo( now ) ); + break; + case 21: + tooltip = i18n("Last Quarter"); + break; + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + kdDebug() << "nn.days " << ln.daysTo( now ) << " " << nn.daysTo( now ) << endl; + tooltip = i18n("Waning Crescent (Tomorrow is New Moon)", "Waning Crescent (%n days to New Moon)", -nn.daysTo( now ) ); + break; + default: + kdFatal() << "coolo can't count\n"; + } + + renderGraphic(); + repaint(); +} + +QImage MoonWidget::loadMoon(int index) +{ + if (index == 0) // the new moon has the wrong filename + index = 29; + QString filename = QString("kmoon/pics/moon%1.png").arg(index); + QString path = locate("data", filename); + if (path.isNull()) + kdFatal() << "cound't find " << filename << ". Exiting.\n"; + QImage image(path); + KIconEffect iconeffect; + image=iconeffect.apply(image, KIcon::Panel, KIcon::DefaultState); + return image; +} + +void MoonWidget::setAngle(int value) +{ + _angle = value; + renderGraphic(); + repaint(); +} + +void MoonWidget::setNorthHemi(bool n) +{ + _north = n; + renderGraphic(); + repaint(); +} + +void MoonWidget::setMask(bool value) +{ + _mask = value; + renderGraphic(); + repaint(); +} + +void MoonWidget::paintEvent(QPaintEvent *) +{ + bitBlt(this, 0, 0, &pixmap, 0, 0); +} + +void MoonWidget::resizeEvent(QResizeEvent *) +{ + renderGraphic(); + repaint(); +} + +void MoonWidget::renderGraphic() +{ + if (old_counter == counter && old_w == width() && old_h == height() && + old_angle == _angle && old_north == _north) + return; + old_counter = counter; + old_w = width(); + old_h = height(); + old_north = _north; + QImage im = loadMoon(counter); + assert(!im.isNull()); + im = im.convertDepth(32, 0); + assert(!im.isNull()); + + int mw = QMIN(width(), height()); + QImage dest; + + if (QPixmap::defaultDepth() > 8) { + + if (fabs(_angle)!=0) { // nothing to rotate + //We expand the image 2x before rotating, rotate it, and then average out + //the pixel for better quality + int dmw = 2 * mw; + if (!pixmap.convertFromImage(im.smoothScale(dmw, dmw), 0)) { + return; + } + QWMatrix m; + m.rotate(_angle); + QPixmap rotated = pixmap.xForm(m); + + //Copy the relevant part back to the pixmap + QRegion r(QRect(0, 0, dmw, dmw), QRegion::Ellipse); + QPainter p; + p.begin(&pixmap); + p.fillRect(0, 0, dmw, dmw, Qt::black); + p.setClipRegion(r); + p.drawPixmap(0, 0, rotated, (rotated.width() - dmw) / 2, + (rotated.height() - dmw) / 2, + dmw, dmw); + p.end(); + + //Shrink down to the proper size, averaging from the source + im = pixmap.convertToImage(); + dest = im.copy(0, 0, mw, mw); + for (int y = 0; y < mw; y++) { + QRgb *destline = (QRgb*)dest.scanLine(y); + QRgb *sourceline1 = (QRgb*)im.scanLine(2*y); + QRgb *sourceline2 = (QRgb*)im.scanLine(2*y + 1); + for (int x = 0; x < mw; x++) { + int r = qRed(sourceline1[2*x]) + qRed(sourceline1[2*x+1]); + r = r + qRed(sourceline2[2*x]) + qRed(sourceline2[2*x+1]); + int g = qGreen(sourceline1[2*x]) + qGreen(sourceline1[2*x+1]); + g = g + qGreen(sourceline2[2*x]) + qGreen(sourceline2[2*x+1]); + int b = qBlue(sourceline1[2*x]) + qBlue(sourceline1[2*x+1]); + b = b + qBlue(sourceline2[2*x]) + qBlue(sourceline2[2*x+1]); + destline[x] = qRgb(qRound(r / 4), qRound(g / 4), + qRound(b / 4)); + } + } + } else { + dest = im.smoothScale(mw, mw).convertDepth(32); + } + if (_mask) { + // generate alpha-channel + int dmw = mw*2; + QBitmap dMask(dmw, dmw); + QRegion r(QRect(0, 0, dmw, dmw), QRegion::Ellipse); + QPainter p; + p.begin(&dMask); + p.fillRect(0, 0, dmw, dmw, Qt::white); + p.setClipRegion(r); + p.fillRect(0, 0, dmw, dmw, Qt::black); + p.end(); + QImage Mask2 = dMask.convertToImage().convertDepth(32).smoothScale(mw, mw); + dest.setAlphaBuffer(true); + for (int y = 0; y < mw; y++) { + QRgb *destline = (QRgb*)dest.scanLine(y); + QRgb *sourceline = (QRgb*)Mask2.scanLine(y); + for (int x = 0; x < mw; x++) { + destline[x] = (destline[x] & RGB_MASK)|(qRed(sourceline[x]) << 24); + } + } + } + } else { + dest = im.smoothScale(mw, mw); + } + + if (!_north) + dest = dest.mirror(true, true); + + if (!pixmap.convertFromImage(dest, 0)) { + return; + } + + QToolTip::remove(this); + + QToolTip::add(this, tooltip); +} + + +#include "kmoonwidget.moc" diff --git a/kmoon/kmoonwidget.h b/kmoon/kmoonwidget.h new file mode 100644 index 0000000..474349a --- /dev/null +++ b/kmoon/kmoonwidget.h @@ -0,0 +1,68 @@ +/* + * kmoon - a moon phase indicator + * Copyright (C) 1998,2000 Stephan Kulow + * + * 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. + * + * 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; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef KMOON +#define KMOON + +#include +#include +#include +#include +#include +class QPopupMenu; + +class MoonWidget : public QWidget +{ + Q_OBJECT + +public: + MoonWidget(QWidget *parent = 0, const char *name = 0); + ~MoonWidget(); + + void calcStatus( time_t time ); + + int angle() const { return _angle; } + void setAngle(int angle); + + bool northHemi() const { return _north; } + void setNorthHemi(bool b); + + bool mask() const { return _mask; } + void setMask(bool b); + +protected: + int old_w, old_h; + int counter, old_counter; + int _angle, old_angle; + int _mask, old_mask; + bool old_north, _north; + + QPixmap pixmap; + QString tooltip; + + void paintEvent( QPaintEvent *e); + void resizeEvent( QResizeEvent *e); + +private: + QImage loadMoon(int index); + void renderGraphic(); +}; + +#endif diff --git a/kmoon/phases.cpp b/kmoon/phases.cpp new file mode 100644 index 0000000..7fc0f4c --- /dev/null +++ b/kmoon/phases.cpp @@ -0,0 +1,383 @@ +/* This file is part of the kmoon application with explicit permission by the author + Copyright (C) 1996 Christopher Osburn + + This library 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 library 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 library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +/* +** jd.c: +** 1996/02/11 +** +** Copyright 1996, Christopher Osburn, Lunar Outreach Services, +** Non-commercial usage license granted to all. +** +** convert a Julian Day number to a struct tm +** +** Parameter: +** double jd: Julian day number with fraction of day +** +** Returns: +** struct tm *event_date: Date-time group holding year, month, day, hour, +** and minute of the event +*/ + +#include +#include + +time_t JDtoDate(double jd, struct tm *event_date) +/* convert a Julian Date to a date-time group */ +{ + long a, a1, z, b, c, d, e; + double f, day; + struct tm dummy; + if ( !event_date ) + event_date = &dummy; + + jd += 0.5; + z = (long) jd; + f = jd - z; + + if (z < 2299161) + { + a = z; + } + else + { + a1 = (long) ((z - 1867216.25) / 36524.25); + a = z + 1 + a1 - (long)(a1 / 4); + } + + b = a + 1524; + c = (long)((b - 122.1) / 365.25); + d = (long)(365.25 * c); + e = (long)((b - d)/30.6001); + + day = b - d - (long)(30.6001 * e) + f; + + if (e < 14) + { + event_date->tm_mon = (e - 1) - 1; + } + else + { + event_date->tm_mon = (e - 13) - 1; + } + + if (event_date->tm_mon > (2 - 1)) + { + event_date->tm_year = c - 4716 - 1900; + } + else + { + event_date->tm_year = c - 4715 - 1900; + } + event_date->tm_mday = (int)day; + day -= event_date->tm_mday; + day *= 24; + event_date->tm_hour = (int)day; + day -= event_date->tm_hour; + day *= 60; + event_date->tm_min = (int)day; + day -= event_date->tm_min; + day *= 60; + event_date->tm_sec = (int)day; + + event_date->tm_isdst = -1; + + return mktime(event_date); +} + +double DatetoJD(struct tm *event_date) +/* convert a date-time group to a JD with fraction */ +{ + int y, m; + double d; + int a, b; + double jd; + + y = event_date->tm_year + 1900; + m = event_date->tm_mon + 1; + d = (double)(event_date->tm_mday) + (event_date->tm_hour / 24.0) + + (event_date->tm_min / 1440.0) + (event_date->tm_sec / 86400.0); + + if (m == 1 || m == 2) + { + y--; + m += 12; + } + + a = (int)(y / 100); + b = 2 - a + (int)(a / 4); + + if (y < 1583) + if ((y < 1582) || (m < 10) || ((m == 10) && (d <= 15))) + b = 0; + + jd = (long)(365.25 * (y + 4716)) + (long)(30.6001 * (m+1)) + + d + b - 1524.5; + + return jd; +} + +/* +** misc.h +** 1996/02/11 +** +** Copyright 1996, Christopher Osburn, Lunar Outreach Services, +** Non-commercial usage license granted to all. +** +** Miscellaneous routines for moon phase programs +** +*/ + +#include + +double torad(double x) +/* convert x to radians */ +{ + x = fmod(x, 360.0); /* normalize the angle */ + return ((x) * 0.01745329251994329576); + /* and return the result */ +} + +/* +** moonphase.c +** 1996/02/11 +** +** Copyright 1996, Christopher Osburn, Lunar Outreach Services, +** Non-commercial usage license granted to all. +** +** calculate phase of the moon per Meeus Ch. 47 +** +** Parameters: +** int lun: phase parameter. This is the number of lunations +** since the New Moon of 2000 January 6. +** +** int phi: another phase parameter, selecting the phase of the +** moon. 0 = New, 1 = First Qtr, 2 = Full, 3 = Last Qtr +** +** Return: Apparent JD of the needed phase +*/ + +#include +#include + +double moonphase(double k, int phi) +{ + int i; /* iterator to be named later. Every + program needs an i */ + double T; /* time parameter, Julian Centuries since + J2000 */ + double JDE; /* Julian Ephemeris Day of phase event */ + double E; /* Eccentricity anomaly */ + double M; /* Sun's mean anomaly */ + double M1; /* Moon's mean anomaly */ + double F; /* Moon's argument of latitude */ + double O; /* Moon's longitude of ascenfing node */ + double A[15]; /* planetary arguments */ + double W; /* added correction for quarter phases */ + + T = k / 1236.85; /* (47.3) */ + + /* this is the first approximation. all else is for style points! */ + JDE = 2451550.09765 + (29.530588853 * k) /* (47.1) */ + + T * T * (0.0001337 + T * (-0.000000150 + 0.00000000073 * T)); + + /* these are correction parameters used below */ + E = 1.0 /* (45.6) */ + + T * (-0.002516 + -0.0000074 * T); + M = 2.5534 + 29.10535669 * k /* (47.4) */ + + T * T * (-0.0000218 + -0.00000011 * T); + M1 = 201.5643 + 385.81693528 * k /* (47.5) */ + + T * T * (0.0107438 + T * (0.00001239 + -0.000000058 * T)); + F = 160.7108 + 390.67050274 * k /* (47.6) */ + + T * T * (-0.0016341 * T * (-0.00000227 + 0.000000011 * T)); + O = 124.7746 - 1.56375580 * k /* (47.7) */ + + T * T * (0.0020691 + 0.00000215 * T); + + /* planetary arguments */ + A[0] = 0; /* unused! */ + A[1] = 299.77 + 0.107408 * k - 0.009173 * T * T; + A[2] = 251.88 + 0.016321 * k; + A[3] = 251.83 + 26.651886 * k; + A[4] = 349.42 + 36.412478 * k; + A[5] = 84.66 + 18.206239 * k; + A[6] = 141.74 + 53.303771 * k; + A[7] = 207.14 + 2.453732 * k; + A[8] = 154.84 + 7.306860 * k; + A[9] = 34.52 + 27.261239 * k; + A[10] = 207.19 + 0.121824 * k; + A[11] = 291.34 + 1.844379 * k; + A[12] = 161.72 + 24.198154 * k; + A[13] = 239.56 + 25.513099 * k; + A[14] = 331.55 + 3.592518 * k; + + /* all of the above crap must be made into radians!!! */ + /* except for E... */ + + M = torad(M); + M1 = torad(M1); + F = torad(F); + O = torad(O); + + /* all those planetary arguments, too! */ + for (i=1; i<=14; i++) + A[i] = torad(A[i]); + + /* ok, we have all the parameters, let's apply them to the JDE. + (remember the JDE? this is a program about the JDE...) */ + + switch(phi) + { + /* a special case for each different phase. NOTE!, + I'm not treating these in a 0123 order!!! Pay + attention, there, you! */ + + case 0: /* New Moon */ + JDE = JDE + - 0.40720 * sin (M1) + + 0.17241 * E * sin (M) + + 0.01608 * sin (2.0 * M1) + + 0.01039 * sin (2.0 * F) + + 0.00739 * E * sin (M1 - M) + - 0.00514 * E * sin (M1 + M) + + 0.00208 * E * E * sin (2.0 * M) + - 0.00111 * sin (M1 - 2.0 * F) + - 0.00057 * sin (M1 + 2.0 * F) + + 0.00056 * E * sin (2.0 * M1 + M) + - 0.00042 * sin (3.0 * M1) + + 0.00042 * E * sin (M + 2.0 * F) + + 0.00038 * E * sin (M - 2.0 * F) + - 0.00024 * E * sin (2.0 * M1 - M) + - 0.00017 * sin (O) + - 0.00007 * sin (M1 + 2.0 * M) + + 0.00004 * sin (2.0 * M1 - 2.0 * F) + + 0.00004 * sin (3.0 * M) + + 0.00003 * sin (M1 + M - 2.0 * F) + + 0.00003 * sin (2.0 * M1 + 2.0 * F) + - 0.00003 * sin (M1 + M + 2.0 * F) + + 0.00003 * sin (M1 - M + 2.0 * F) + - 0.00002 * sin (M1 - M - 2.0 * F) + - 0.00002 * sin (3.0 * M1 + M) + + 0.00002 * sin (4.0 * M1); + + break; + + case 2: /* Full Moon */ + JDE = JDE + - 0.40614 * sin (M1) + + 0.17302 * E * sin (M) + + 0.01614 * sin (2.0 * M1) + + 0.01043 * sin (2.0 * F) + + 0.00734 * E * sin (M1 - M) + - 0.00515 * E * sin (M1 + M) + + 0.00209 * E * E * sin (2.0 * M) + - 0.00111 * sin (M1 - 2.0 * F) + - 0.00057 * sin (M1 + 2.0 * F) + + 0.00056 * E * sin (2.0 * M1 + M) + - 0.00042 * sin (3.0 * M1) + + 0.00042 * E * sin (M + 2.0 * F) + + 0.00038 * E * sin (M - 2.0 * F) + - 0.00024 * E * sin (2.0 * M1 - M) + - 0.00017 * sin (O) + - 0.00007 * sin (M1 + 2.0 * M) + + 0.00004 * sin (2.0 * M1 - 2.0 * F) + + 0.00004 * sin (3.0 * M) + + 0.00003 * sin (M1 + M - 2.0 * F) + + 0.00003 * sin (2.0 * M1 + 2.0 * F) + - 0.00003 * sin (M1 + M + 2.0 * F) + + 0.00003 * sin (M1 - M + 2.0 * F) + - 0.00002 * sin (M1 - M - 2.0 * F) + - 0.00002 * sin (3.0 * M1 + M) + + 0.00002 * sin (4.0 * M1); + + break; + + case 1: /* First Quarter */ + case 3: /* Last Quarter */ + JDE = JDE + - 0.62801 * sin (M1) + + 0.17172 * E * sin (M) + - 0.01183 * E * sin (M1 + M) + + 0.00862 * sin (2.0 * M1) + + 0.00804 * sin (2.0 * F) + + 0.00454 * E * sin (M1 - M) + + 0.00204 * E * E * sin (2.0 * M) + - 0.00180 * sin (M1 - 2.0 * F) + - 0.00070 * sin (M1 + 2.0 * F) + - 0.00040 * sin (3.0 * M1) + - 0.00034 * E * sin (2.0 * M1 - M) + + 0.00032 * E * sin (M + 2.0 * F) + + 0.00032 * E * sin (M - 2.0 * F) + - 0.00028 * E * E * sin (M1 + 2.0 * M) + + 0.00027 * E * sin (2.0 * M1 + M) + - 0.00017 * sin (O) + - 0.00005 * sin (M1 - M - 2.0 * F) + + 0.00004 * sin (2.0 * M1 + 2.0 * F) + - 0.00004 * sin (M1 + M + 2.0 * F) + + 0.00004 * sin (M1 - 2.0 * M) + + 0.00003 * sin (M1 + M - 2.0 * F) + + 0.00003 * sin (3.0 * M) + + 0.00002 * sin (2.0 * M1 - 2.0 * F) + + 0.00002 * sin (M1 - M + 2.0 * F) + - 0.00002 * sin (3.0 * M1 + M); + + W = 0.00306 + - 0.00038 * E * cos(M) + + 0.00026 * cos(M1) + - 0.00002 * cos(M1 - M) + + 0.00002 * cos(M1 + M) + + 0.00002 * cos(2.0 * F); + if (phi == 3) + W = -W; + JDE += W; + + break; + + default: /* oops! */ + fprintf(stderr, "The Moon has exploded!\n"); + exit(1); + break; /* unexecuted code */ + } + /* now there are some final correction to everything */ + JDE = JDE + + 0.000325 * sin(A[1]) + + 0.000165 * sin(A[2]) + + 0.000164 * sin(A[3]) + + 0.000126 * sin(A[4]) + + 0.000110 * sin(A[5]) + + 0.000062 * sin(A[6]) + + 0.000060 * sin(A[7]) + + 0.000056 * sin(A[8]) + + 0.000047 * sin(A[9]) + + 0.000042 * sin(A[10]) + + 0.000040 * sin(A[11]) + + 0.000037 * sin(A[12]) + + 0.000035 * sin(A[13]) + + 0.000023 * sin(A[14]); + + return JDE; +} + +#define LUNATION_OFFSET 953 + +double moonphasebylunation(int lun, int phi) +{ + double k; + + k = lun - LUNATION_OFFSET + phi / 4.0; + return moonphase(k, phi); +} + diff --git a/kmoon/pics/Makefile.am b/kmoon/pics/Makefile.am new file mode 100644 index 0000000..1b498cc --- /dev/null +++ b/kmoon/pics/Makefile.am @@ -0,0 +1,13 @@ + +pics_DATA = \ + moon1.png moon10.png moon11.png moon12.png moon13.png \ + moon14.png moon15.png moon16.png moon17.png moon18.png \ + moon19.png moon2.png moon20.png moon21.png moon22.png \ + moon23.png moon24.png moon25.png moon26.png moon27.png \ + moon28.png moon29.png moon3.png moon4.png moon5.png \ + moon6.png moon7.png moon8.png moon9.png + +picsdir = $(kde_datadir)/kmoon/pics + +EXTRA_DIST = $(pics_DATA) + diff --git a/kmoon/pics/moon1.png b/kmoon/pics/moon1.png new file mode 100644 index 0000000000000000000000000000000000000000..7f2ac9144451f30c5e0ec4129bbb3c408b980538 GIT binary patch literal 3186 zcmV-&42|=NP)P@S2TRfT8I{(pV>dev0w zcr?%SFVCO<^=PkO)z%HeIJhD9{2!w;KmUbzKOK8NhTul$TyI_P`raDr^U@#xWJEh^ zJH@huY4F~K!4J;a$=iX?vi@NRp4V18r#Nm%c^WzRIK(s#-t|+OO3X`Ye=K5cw2DUS z-b7zgnx-kFGzRb7;KMlOm_m-Z{{DbJcb!sQ*Xzz$H>Ox3A;L5YmM%h)AIA{qH1xlG zXT*c5YNb0aYrUK25SAqjA&dj$SnGTkoG0xPrb&Glq>6}5XF8>=aLkv>luV~d&Kcd? zz8|eNDNZS-7>4hNscNoPNs`8BtF2G7QL1f}c9xjjiO+jz2hmuPef6z~9hK77N~xx6 zjU7D<`3SPAC2iH}w(TZMP&>j;TIZDWo3BS~Dt?-_Zri$%WUT2;=v7nmVcWDM+oDUP zU%W3X0-M(~HD8U`Hg#P!L~NDP#tybOlj&NZXyj84P&aOx#(vJ6d(I`5HI84&v)O@c zx`tyKpxaBZlicKE$(?*_WvKO(ONq<2q&b$a+ z3t`7fej|u-9qO*{r-IVwkSO>(q&1b#Py`1Ra;)UsZG#+1aCE*Ge8G?0V7rnmj~v|k z0Vlu4{DV3< zpJ~t{f>xsQMtsZ}N7>Ys+Oyn)0p+o7dVZtLbT>w9&sn3pv6L5|Ms#(fm8u7#@=w)T zdqmk$H-c>29v@=zdORK*ZH#G5*Pmj-Qli3ClpFQ$kreguf>X9#)7jp8&)2l>s=cyn zb(D~YL)DU|)=tS^>r&QCdGRf!%BLYg5kHdzwY-6DN>K~2h*Nb<>xv;neW(sqO`c6h z{#EaWbz6ehN(37|ad|;eysWcwre2&Dp*JFJ)sKB!AB`2^SCu&&j>p3Ru!Sr7aQ@dC z5gtdF-6!X+TkUNxKRp6(Ijt5g4Y3XqQvOFvRRuo7y!uY=UDxqRheyR7 zy^pSH#kq-wSk!xpn;j|RZB-u*Z-{s}qN{_v9^2^rP_mJdt-4e_Ikyoj*hBWt3UuVq zh#V`yjZ$oT1KEdKl7yb>A>B6!)P?2b#ZW63?9*CowL`Cg5_DQDUA#f!)$KL8zE1&`grhpv=A_K6a{-8t3y%t^weUvKgdMeh8%ne*n^?~rov{*Q2 zHam`-$Of6#ob$GWHHLwKh5^HM{a{QS{ODu1P%YIdw$&(@54mwW0Yy5ALJQU@%QQj;4zZqax3|7N)YSB~Fxy(fe#ef>c)Pq_ayM zD^VRz?@i|)wJyL=)TW0E`Qt|7V_Xb=Q94zjQ-eQp=*0MCM&Q_^M{KoNiP(@d1fwXE z_eoN7jgj%m5=s6F<-nv3GMh2+X1p7s{El8FX9m0&L0>s~lZ;Owf+zOl`;cfB!@(w% z6$k2QI^Jn*2L=G9iWFt&gHQk+t$V=5Kn9)1IkC0m<3ht)C{JhsimCT?-nVigx+fda)KI%(UXO{T_=wN4A_irV>X< zlcUFY$|VM^k%gboD|L$1x9vXKFpiGHbo`iQD>Q294qez~I8IaX zyGr7FKRpVQa8@Q1Ggves4P|777{?q++RlZOm;KyJc0(_tx@F23(-x5i6Qqof+HvnG zelYbGH2S%nJB+sxv%HX0+Z}Bqjvsr4Uks;g;NsQoWgWO%F zX1bCzhX|Q$Cy_m@AfJiNEUx&+%2qOsUJTSDB1oHhF$kqK=Ng8O>uM)bm4Q$7Jwu1< z`MqR`vmqUZa*F6WmwZc1({mVXwqh%Oic3@v5%JqNJZa?4?h|zbLldIK&c_s3>wq*< zC9Hdi&7m;t=jF5%?nZfanr4%SzBjm^p&FFs;-qB4J@hc@rgxJ`=kg zspct{^~{b7qW!*Qx+Lo)Yp`Y}A;^Ci!4wq*8Bb#<<$9SR zAB*qAsz4emrCDPL2y1$}sErEJ`h8jA9VRtK`5DmO#Qv40ES$$YFYCH+a@qUn%KVyj zRR$D2&|1c)GZBr7hS*8Hst#C{ipNgtA=6G z6t%aLW;b8ix`2`LP6$-|2pfuJ#f~PK?;r@{kZ!MCDfH#vKSOCN?kuCabiZy4d#o@E zyYb@ z5?s%HJTF6vE^wq6|M;K>RXCc6Y|gY1Zj8POCF+sQdj^Cob)ECFlCJ0n4gr{*DwK5| zpZ)Rb_Ql{~r&Ug581h^~m?Nj%QVtnZvi3j z6J<AVoJ6g*TqXDp}dcDr7db$apHkbmoGDk0fXG_MJ0#-Zr9LPwQ!0FAJv>ZElF19bDW!Pq4HkLH7QX^Vc3~{enm2a$2{$ zyW4O7yuU8jO@PGEbB5MgTvIUIb;bO}U#=m4{ej-gFs^A%r~CW2zrMR8(Yrgoc-rRq zbju3`gdVZ-@Q`oXwmipgJtBQo=6E}u@890PefN*s?S4Ja+qSOfMLa1j)VJtW3@B7o&0b@$$yPu1`2=nc_{b#DMeb*JkP%R;duM?x{tTZucx~^gqaCb z)}`e2v^abCa{(WscIL!fNd*;38*eQ3%{L#be#gbKTy^Y^Zw{}%ONIXn*M9+y1GM9V zmS{r&001s@MObuWZ*6U5Zgc=3AW3a-Z*p{HWFTg8Z*3q{M?oNIZDD6+Iv{OtZ*DU+ YI4*Q&VPJWU7XSbN07*qoM6N<$g0jUV;{X5v literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon10.png b/kmoon/pics/moon10.png new file mode 100644 index 0000000000000000000000000000000000000000..07c8c652f65dea86053eb945b80b51f8b73882d4 GIT binary patch literal 4770 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 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon11.png b/kmoon/pics/moon11.png new file mode 100644 index 0000000000000000000000000000000000000000..f03cb68b94854f4f14b666d9f821eb4ded22c39e GIT binary patch literal 4814 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 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon12.png b/kmoon/pics/moon12.png new file mode 100644 index 0000000000000000000000000000000000000000..32eee9079a5e9cc0e9193fca5828ac983829481a GIT binary patch literal 4809 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 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon13.png b/kmoon/pics/moon13.png new file mode 100644 index 0000000000000000000000000000000000000000..e95e78a0bf853a21da880fe2361482d129bbd6b6 GIT binary patch literal 4794 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 UVa`HO@c;k-07*qoM6N<$f~#C4E&u=k literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon14.png b/kmoon/pics/moon14.png new file mode 100644 index 0000000000000000000000000000000000000000..60b7980440b88e8e63b0b33bf6e1ca74fa7624f0 GIT binary patch literal 5496 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%0AQN_>{%r z@{}s6m4jloQf^eLJ8L_YS|uBe3`lr9zB3e>@!A&+gT&@}%0r_t7_LAuJZt~ayX3b{ zp92z!a0nVN?d##HjI$FnvB|M%=j=kJQdzrDiLI<}HHziUje|E1cWYJKfS^k>7jgyN zE|WpS#uIS_Bo0GnbEQ+3nKSQ_fBMQfIGWrFrHcCcv@+35-0Ah%=NIQ=p<=31Xr$N6 zxyJb7}w>N6@8y;j|x=&)2@t=2QO<0t=h zvXNaJ>(ME-T8C>s5K7tY{Sp=)j)5W=6q(QI7_tB5GxEoP4!R270Vha?`>1egpUyln zx8w-8qv6=b#{Jh18`-T!ZS~5@$(_~Z<#E$s^NKa)4tTP=X}`6XPk|CTab)30CE<52 zzqh%a!?vQu;5HbNnd&zV%L)c^Wj9aY#`5yT#KDr$VINyN= zQPj;-i#Dj6_B*UDr+sERm@4E}%d2bUgSW5mAH98Hf3I;l>Kyf(x|J&3xGz!j$fz79 zozE9&#^x-x7k+b|QALmzC>)K1F*&0|6n)UDb1pB;*_^X;p;{u5E>$ws%QtuT_qMC+ z$48gfTLYfg%;0LaNHG+$GnknC7nqoQ^ia!wzc!tBSHu~fUJMtO3zgMUVkMd?L^Ep_ zu3fu!@@mE+@1lu#{r%y9-|6?7hWjKkqijGw@&1~1`fP_l(u2nk2+gtvfl%~DcQhID zd1B#2WM%V4sS*w5qUn6Ox^wu(f1jkRDxtDjDMhioLA790@n!lU`@pR0mG_fh!L^CS z5*&*_$D=xFD52Bqj+c_lwe5P*AFu3WgUP6WIlEfOl#ed`@QKK3U@M?S<6I2*UfL4}(A>iW(&FYWfPA)}45%)qMo65{NW6?-z zX(?0+=fc6Ya&f0r&BgT=ozgn0ot~I5I0j7aOnhN-_(S5Um!VKLNzTRK8E7i{83MLz+P@Jey!|_ffWhYY%=6$|cW^L#AQX%9^CKAhz zg?c<+S*`6B4mV2iZ+?_K^~2s#F{7V_XkKX140*T~4{jgqCu7A+R~q}f*~)U-?~0XH zFW$MaT1%zZLlI9PR4i{bR$sk-c(_^l*#BE!qL|o*5u>O}%IWJ@2g;jkSNAS$6w1es z@7&t0r;~v|Fq_$b^?JR$QroMfbIE8bT)Fz-=Iak{)^}%~|2Xp0AN8r2Dp%GyBDJ^! zyEm@vKRnsLb)&X>vUjms3cBOvt^I?QLOq|ZUs$Q-lEru_kz9Z6ohQG%zT^DrsgKWh z)C0ZR{7TH_E36;Aaed?ZTX!CuT)lH?YbzI8&ZeqITa|F59@|=7OQ+XrD{I+C;o3V- zA3drjKlv}rKR6s-_x^>I>hApq5AWZ9boKDnTbB+lluCs_EKoY$tgK`TrCcdp%Eao2 z>)Y|d?$w8{->xUVf9jL-{Xim>tsY!C{Q2W|o<4p0Xz%{b+sB8yJLN*Qc6{wLt)ukzsL!#5vZ-amSEb8G$5_3~yW zmoJ3N(NbnHU&*Dbsm#G{ZDsN0Q=gs}lZE8=;jLebPv3d_?!`Axj<25_99MJMVkWVZ z%fy3eZ#tQ6PIx1~y%|Zkzjf-f@|-SHKYZiP!{#{eKe_imk6+tsT)neXt`_%p)>2#P zVlus6O0Oi>>U-O3mB5nYk3Umv23IKEy>|2Q{YOuqK7R7_%?CI4H}bX8>SkkaWB20a zjbuDmJJ>(kIclUmLFDHFn|a<c#?OCoymz#dYKay?$001s@MObuWZ*6U5Zgc=3AW3a-Z*p{HWFTg8Z*3q{M?oNIZDD6+ gIv{OtZ*DO+HZF8$VFez8Q~&?~07*qoM6N<$f-spcDF6Tf literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon16.png b/kmoon/pics/moon16.png new file mode 100644 index 0000000000000000000000000000000000000000..179a2072db34f6df261c31dd455daf3a984a4f29 GIT binary patch literal 4818 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�&1`0G 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 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon18.png b/kmoon/pics/moon18.png new file mode 100644 index 0000000000000000000000000000000000000000..174befe6aee59228c4d58e0a652ab3ba8e8d5a51 GIT binary patch literal 4836 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 KMNUMnLSTZ=XEsd$ literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon19.png b/kmoon/pics/moon19.png new file mode 100644 index 0000000000000000000000000000000000000000..38b2c8071d94f308897192bd8c7d8ea94562c0f8 GIT binary patch literal 4858 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 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon2.png b/kmoon/pics/moon2.png new file mode 100644 index 0000000000000000000000000000000000000000..22745471ff7251edb2df970c55175f7613143ee8 GIT binary patch literal 3186 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 YGA?vyVSupBJpcdz07*qoM6N<$g1k{BlK=n! literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon20.png b/kmoon/pics/moon20.png new file mode 100644 index 0000000000000000000000000000000000000000..7bc5e87709bcecb5173cbe1d332ada7813fa403e GIT binary patch literal 4868 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 M07*qoM6N<$f;yg2r2qf` literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon22.png b/kmoon/pics/moon22.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a408f97c36de55b53ae13b9740dae16fca1283 GIT binary patch literal 4613 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 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon23.png b/kmoon/pics/moon23.png new file mode 100644 index 0000000000000000000000000000000000000000..0c08690cd221d553be02b9aa4a2d227e9cf41fad GIT binary patch literal 4317 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 LNkvXXu0mjf=xHz6 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon24.png b/kmoon/pics/moon24.png new file mode 100644 index 0000000000000000000000000000000000000000..92b6637b40c4bc760c0715648899cb779235297d GIT binary patch literal 4049 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 DdR^=j literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon25.png b/kmoon/pics/moon25.png new file mode 100644 index 0000000000000000000000000000000000000000..a95053563cd78733ae43478a377f3fee714f7e71 GIT binary patch literal 3768 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 R9HamM002ovPDHLkV1j(-#wGv& literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon27.png b/kmoon/pics/moon27.png new file mode 100644 index 0000000000000000000000000000000000000000..ea8f30c4ab756755484975dc90d96e4f25876f3d GIT binary patch literal 3341 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 XE_7#MO$_#K00000NkvXXu0mjf!sjy0 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon28.png b/kmoon/pics/moon28.png new file mode 100644 index 0000000000000000000000000000000000000000..f40055c7f94b50eab76d4fa8538109dd3baa5d00 GIT binary patch literal 3207 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 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon29.png b/kmoon/pics/moon29.png new file mode 100644 index 0000000000000000000000000000000000000000..05c06a3f2689a44efd43ff4639c03f6fb94a3dae GIT binary patch literal 3186 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 YGA?vyVd0fV6951J07*qoM6N<$g165lE&u=k literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon3.png b/kmoon/pics/moon3.png new file mode 100644 index 0000000000000000000000000000000000000000..853a0077fcce946203943eccd5984ec9234bf5c6 GIT binary patch literal 3187 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 ZGBz%BXJPZC8B+iN002ovPDHLkV1nnxJj(z8 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon4.png b/kmoon/pics/moon4.png new file mode 100644 index 0000000000000000000000000000000000000000..9d320f883c1b3f5ff5f8b6666aca5c346f7934bf GIT binary patch literal 3349 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 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon5.png b/kmoon/pics/moon5.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc46238301e3eb19f17751f8d0d9e1e21be8207 GIT binary patch literal 3611 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 literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon6.png b/kmoon/pics/moon6.png new file mode 100644 index 0000000000000000000000000000000000000000..36c14467ad199e3c8d8df0c3a83c6a66f301df6e GIT binary patch literal 3859 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 VXJKeHTSWi>002ovPDHLkV1igwb}j$_ literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon7.png b/kmoon/pics/moon7.png new file mode 100644 index 0000000000000000000000000000000000000000..aa91df188b34db9fc93637beb62f80f742790db6 GIT binary patch literal 4228 zcmV-~5PR>5P)@9f6xn9X2fz+g7B@2i9mI|8#AW9;BHna*@~ zD(OsD_0&{#&C)gVYig#eW`57yPhMiD9mnbXnIH3sl3$79_DT*NR+{V13`r1af$2Wd$X+GxF z0e?!81VNH4MbZo>D6%HYiX@2w$Fg!}X=z1WbyIWi$c;%))y7vu3?_^wf+FEC49{6C zl4P|?W=Rsv3{4+O$t!8CEUjwqpSV6W(4X>3tResrBWaSL7^pGJi;^ZPG)b8So};Nv z$ywQ#vd@-#Jl)gd{)v%p@)ZzGaBu8Rd2T-ievH#oPBDOy9YGcXDpix8{*B83TVwU^vBa6wULj zKv4imAVhdU2GlJ(VoR<79%&Te|AN7vja8G*Oi_@e2JGUQ1y@294FcOqQ1nLTOga8GOXHkBQ5T+55437Z0 zDLS?!r=qH%tIyX}-`6$R?(3SId^q`nARi|Z_y>QBVKmDLBF9pM$zXg$EbLJR-i(Tl z%_^-b%`X`AH8*q)47Sd=TiT}<{>1Fyel!ML1VR&t=NQMKY;qtQlaUBSiLMRru8lj7 zmDBK_jWX1%q<)oe#k$M$eA#TAWUXJg&)F1Q9O{61l^#_;<(`vCdz@n zac_KTT4sE1$|bkkKQ%NnaK0ovFXQTb;Wsmh*avUmlsJiz49oL8je!f3Mx<v*?>`R-Sp+{r0aEAz$_-MaP-20c1c~9C zM#Fz-3N{8y;o*@74kevBeC%L)P1nK~zqrKZyezBf=9pAdii#D&H8 zp1C$;j|U!_IR-g5paEHk$0f#4Cn9K`F`9yd-v|yS-`yO&ZAbXlsQo*4WmVTVPT!p? zON&c5b1G-~=ri}GjU;alK(ZWzQfD$CnnHaI1|)GDXKBz-Fn|Wr8#nLRzGX{zMC8sb zG3P3;4&1r#$w^E|I(^lD_1Z6=9?dH%S=v5?i-sBpNY~$@w}*M9K%o)GEE%XBTbS(dE_GuObIlU z`wawXdVg#9=BTL1U6Fe~JhV3>?V@*SdAcq=yTCU*_rViHBhG=SdEF{=sL%ncWgitC zH8Pxnp@;=*55#CRyb~T75w(5$_HDa%?~g4js&1S0&-%N2JlE#uk3WUvAqa-!1(u<3 ziZGarkO!En0%-tbNH7P6Y%&-Ea({bUVv!ueCfSS+jmBN zcwqmL_|qrOWRl)o1C){!nAc=g7eo<; z7f=(zG)8RQwfn&Sy{F^jj-E_NFRy94lASX&vvy~#r+qQvNtEcmFs?wlpkblbWyGN4 zvStZJHbK@bio`?6B>AXeY}gjP=is5Er&G?v98Wx7SyEM;o>}afS(@%>UXFiS9&jIu zHq&65;BnA&!G?iFJj`p7s9AMQ7G;j7slaT5y&thF_QMmIXJU^ZJ(75-vFK7k#<`@T zhW@szW0NNz2MM+XqNZ7>1;`Mt4){2P&B?N;NUCPB$b!fN9Y|#S*oLTsdv+z(G-M^m zA3a}Ed@esLD?2r_=yFHpgy*rf8$ojz4G>Tv@GsCaFoz&1Mp9%nT&k)piclyXIErNY zZdB}nnDUA4+RFvmmoH={ozE;QO3TcvZ*A!IKF*~f7%;(nX@WrxL_*WyIf`P;W(6=+ z1qN0b238n?%>u&_MD)&shf|xn>bwn&b#2*cXV0Eb%TLSCtLg2T@*aMiOJog!(F|xr z0T$?w6VYm-D3YQ}q9n+YBulag?;=k{?>%^=thv3mqoKE^DkU{5vn)He0Bo+?yDyt$^ct+l%5V)ogLjNHup z{L<>$mTTj)2fvOI+91H9?m$Wb8VaHyL2VS-YDROqtja(pt7cVT`8g1uTiI68cBQ_u zt+_fYJu@#ix2(LevU#X={O!k(!Du!?g{GmX1cNF83`eAdn>s{M5d%S5Z8l8l=A85*tWRAZ~(OLZt~Bs)N8JC!|%q~uFi>O1>Jnp;bYvQrb&QqoI{8*k0~2PU;A>H#Rjiv~&{G2?QkeyT4*w8!eTdi!pl$(&5lwQ@i z@aepNwC>pk8E_dBOjjsOvkayS+lefyvIg`KVKb9;@DE*v=reLtGYd;D*YtP#=12SL z%hGeQ3NFPWktuN z>zM&YAYgN11IrRT5gaAR=w*hTSyWV25mi)kS+!Vo{qR6zVM^lhl;r$E?~te4H{4WT zQF5uHyrJFu>`VlW3K}8|Lued?w9=f2bS^5`mf2O^RJnD!WNQ%OcbPJD7)`p9g} zM}ut@=Sv$K+*d~?4n03s8=z+gMocI>Mu|w(ie$CeRd@jEAbH9l9#ywi_&P5aCMTuF zoj%*u-`d*Ja=xs1<gQGmC&%_Z4;h3TIj{^WF#4NFK?-0=76tSoKYCUrBurIJ zYVGamDyk?hsJUF)+T2p-u5R|Ntc?z~1%2~?bTAg?UIwE;M6w-q2Pm`#8Vb>%I*?Wc zWkb#A>=DOPb4Fvt^0dIrZ;L%P?aEOMIYSARgB5SH* zS5!%btjfBrceJOqdC)!7(bT;>F@Iz2pGMc?Nl;4Qv9{ z*rHoOKOj+PmU>8kpSx#prqA8w_RcNdU0eI=@4x)JU;XWYpcfsU$H6GTjBt*l!FjY0 z9h^nU`%iu|#=a2pM=Wf(lEMgx zL%I%FcB|c~S)DL#pm{^nb-N-*HMI?28=oHY`A2U}`q%#9KmYjOzyD&43VQK*orCUU zg&PC=9Dt`gogsFcL$}(YOsb;T;CGh97T@UNpm%<5VR`1(;&1-zfByZC4{m+?w=h3N z?9=SBMR(Z&&1utZc0I%jo`$$-hn}lyS)F|?!$a=52X{W6n1A@izy9H$KfU>~FSY&( zJVMoMx;-@1_10g9Ijv4RN+cM%s=7j8IMS_k4K1DB{bQb~vBleWKL6yOez$x*G3aII zFC{@&EQ&2GY~7pdLm|-6P^)gU*)0~EOSOW4-nrV-=Iv=8pPin(?w|kVXZP+;{XFR9 z=QYhDyKIiIbz$q)zwL5`=?;tCuImmf@+8HoZmGH2>mKrsO^uJL$_WFc9=)2C3 zd1wZ%5T`3_eTXY06mD*@g=mmQU=%>cHFQplcxOhgFF&}qc57XH`?*z{tw#r(gYc)jvL?zakQ6!kn7j2BWYA^rR^%BeM%1FMo1E}JY z3pW?b3nKnJz(=SgZG*WI6r_R29qaK7WxpTt1Mr?4*zJuZ?2p{f_3xj*|D)%B0m##l zc~eFGod5s;E_6j$bYpLAZDnqB03aYqZE$aLbY)~9W^!+BAXG;|AZcx3XJtAdZEtUG aFgP$SbZ24Rf6tWw0000cFn@+bovpYSe)BVud+0OJ+`@CM;v9nI%Y`*M=KJsWVAAa*Z&+qsAp68FB-~Y$g z$4lG*)c>s$$@xD)vG0%e@=F|&5(tEXkn*bb)}G--eMiM>-vjT5{ye^rrYRvsQNj6D z6*blMmDSb#tGC;fzb7Io#7Pk&mC+&rpZ|7iQ&W3mYiD;~=ggA()Zmnj2H$)DBqYQ!LJc8j%#bS|&iB*quj<+?p z^>r;w%vdb;)s5}V)E5W*5r&~ChVgKWASt1kkunS&+uhw&Ut3?*H##spsh*l%vhO*K zeeb*=;t@1}gW?zjN%E<{K$@1x=;Y46uC9ubirTu49^G))kk+ueW701bzL2U=K;&Ws zhT(*S}GEg5f>|4o0_i{)YUaN4m6hbTP!XQd@R}*z(hF^2+Af&5IBjGd~qOw zqCbgEy;xV?P=4)VQBzGtaod>HxnXnL_Z(AU--d|6q#zs=MY$M4kU~B%#Ao2Y@5HBH z$j!6>47Y_6{FZ|rWL`DR3J0DQOz2SGSoNRmeqJc8z-T+W+uNy)0z z%#75GqJi1&j$!S{!rso-`sUq_4h-KYCoaO}a00l1h@dD=kOGoNhzJbfa85)g#HFNO z%t%fu>YkgKoV2+;HqX9q+q3(R*O$(I1LDI*axpH7U<6J*q=&>16yb7DMnI+}z*3x9+$}J|7W^<^m)NMMD>PJOYR&gapQg-*Zkz$Ht{3 zrzFRpkB&WGptgB$ZQS&FZyo;h*5RkS_O*H5^AVAUt>j`93cLvT6f}|I@u3+30Rbl? zV^t~XNvh-viLn`#eWtaK?`(Q~?(M(6zP01t*t}QrTu79|B4Usv7v)hDkL0sL$63Ps z15TZb$x4ooSH>r$oI798s-E+@Y%Z(OZ87=WwzWIA?nXRE;s_`bCWoyX;es3?K_SKG zvHgWCPn?NMO;AQFTF_Sf+{vnm7JKAl-tlZ+SAay;+US8HyEb92F*?sMteM$fw7ZrqbK`B*4SLf({QA`)VhvC7z}sHk@@S5-F_HWc@o%^M!`x}m1E zvbJ<&z3!`>WYq^>;FJi)#Yi5X&nLLx!WeWHN651==Mv)LqfebyW-4P6FPGQl8a=0u#0jEp#)oRxV#CAn~Pdj9sWKeyIgEy&Nl)Te%?ZVrO;Ngn&*fxr={7aD-D zmP%#GOk`B#1?9WRnQh~mg~JaFjrsYPGqV~t-+ZcU=pG+* zD4<|7z$QZx&bxkH2&L^x24W(MfUfkDyipdHa|C`uNJ5aCec|lM)2C0K zKBdZuPl=Mr&Q=r@$K zLQ?X?oHXUhw@;oqed0`vDkegyj82M9$w)t6Q`zmfx#t-vDXTUvuO&Q23_vItYQ9{? zP%P2xnm~EKC7obd!iALLa(YV4@#7~>#m1eBP{u{aC&Vjblaepw40MdmZ*6RPv~zm5 z$CL2{l24&<1n`AC5=U^d+G09x>lH9R6nGf>>APD+`Zx28tkws9QIn?i^cO&v`-*xDQSU2ry0XI9R%1!=NI*n5JowR3?`) z$12O}^K(_oL{)lvN#Vd_hbMta8l@88z_P17*6*dgdX?u0%%tuN3bHN`mf(Kl{ z7((fQk3iZK!-&MRL>d^#ywXrvR+5{O8WW$EnwFBCmQpq~-&kIp+uGY*)mm3mU0hb% zKHh4Y&w7+3%p8{h2w(_y8f;on4vOI z)g4Xh?)tKp+P;?3vZ}t3z6sr3;@5~+1NhP zKG0oMb>%|Qh3wp#Me~eRtDRnIs;Mk*s%$8&t?HT5n04nL^^&y)*fAIiGQt6i1Wk(A zr-@ihi{-S47BX+O4-ZX^OiZeWMy_4T%Dz0hWSBN+t(x)5s`|SAy1It?fkBOK)q3tR zJ^pa@vVH@V!v<%u1n?~oG7_O!$_OFNHyS$C6APP0>->CuX?kA%*wU0~X>n51*Hl?s z+fdzD-`d+d;xIZAzswTWAi%QQ0i!{NB7smOq=6eTBNG7cBBo-zrYqMY&u zwPAF5Vn)5RFi~Gq*IZxM)j85JtQ%Q*{So95NRVCNpl|3U2_wS?g|nihX(m`C5{sBO zI{Rl~mJ> z^622uKhSEL?$*767D#mWma@QmFjT+XfdcF7JHbU}H^1b$P?k%(BjVf5S01 z*;rjzT~JluyZFh$mh;9FQ%Atf*e!$ddF*_HiUa~aJjobZB9;eApb5b(J+t~5i+*IJ zwY9ONqP1^QJ8Sl>-5XixZ@gN4wY-09x20vvFK=6TW1nx-~Ndg|sH1G~13HlU^rGGg*F{K?|Ht!rbcPz$n zO?&l~{POw%mt}c*)~K6mYZ}&#nPx71xpaTX2d$GrguRIn4wx}2U?GJxj1LV;V(6fj zq2Y;9v;FTr+i<&$!%cNpbFWr)EIZa+&Z!lfuB~^Wr)$do^g~UE!pn&V7YjUhz=kPY z$gm%Qh!%^)5{Xz8+TAxktT8&bZ|)uLuk=)uTrMkVZnfL2OAfnctf#eOrgKzdc={&t z_eWqM!ZF02gV0uj5`q1QgsgrfQn^G<*AESjPc9l(uRr+tp=q$bxS^={N|nnu+GU#U zt!p12TZR&npE(8*f7sa%PfVbli;G~YC1P3@sF1)9a)u6XYU|P1bql7QonIb0C%Vdt z%M0>K7mc&C)6;cb&AYd3^X9o{@5`6C0X&M3LMK7$+=u21UJjXpv4eXsqUL5OY(}%- z+Bw{EYI{1Wi;AySPK=EV4Nmsfjc)GgowkH$A^ng53M>PEc=~fNAcn=F1I1z?cpJmW zo4TjfT8+kGFc)&2#;pXI=F>knsAX;0?~coH-c5 z7r~|#OC*6(~>|bO$Rbki8!opVn{op)*IYgclVvkI-A{Lnp(W&_U#?q`FQUiKEAsf z^c=_^^F#zHB;fo7$&;){2Fc~@tsx7P%cT9?lf!+pE3Taf_t)2Lj-3_jlG*Cpxp#2z z#Xo=k#ovCEgL*(FWQhBIcA(z5B8=aWfZ{0ccuC8yszv=S2 z9CpX#jR%-n+l}&2Rqa7oS>jzvsux6l@MR<7FYkzSx zR2Hg$M#|)jv~* zugb%Yh08(dVrkB-$>w!m-`(FfTHL<-_dmJ+>A{x8lk*~g5PwVuhJ`BL2n-1h4i1%v z$Q2-{%Wmhg+qvsC8XfkvJ9j_+r=Q*SIM#w*5Rpw3q#hb93l9rX1c!tl1&T6FCY^qB z%j9;uZ#nOL`m2v_Z200|9FR>Emj{O_0z*QM9SxN#f~3rap}94q#p1pB{{Dmgk8f_T zt>=FCzp>+Vm_iX294ZM7mjx@L7nb!Fi^Jx#dG>d9w}(~V8Si1d%wxhrUI_{h2VuT7 zv1~W5du`U+2fIBDXMR7x-=bnfkPHyzZ%!G_UWa?tS@TZl_rQA`0r0BC-bhfsbut+L z{%C&~@qhBH+*OWH6AZBuJZ6H)fK_F>u jVP|DJAZ>4NZZJ7AE_7#MY~xQ*00000NkvXXu0mjfvUk6P literal 0 HcmV?d00001 diff --git a/kmoon/pics/moon9.png b/kmoon/pics/moon9.png new file mode 100644 index 0000000000000000000000000000000000000000..04e084a2853dfb5564a788faddf9ea2a5306def0 GIT binary patch literal 4678 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 IM6N<$f=P@0ng9R* literal 0 HcmV?d00001 diff --git a/kmoon/version.h b/kmoon/version.h new file mode 100644 index 0000000..b71eb3b --- /dev/null +++ b/kmoon/version.h @@ -0,0 +1 @@ +static const char version[] = "1.1"; diff --git a/kodo/ChangeLog b/kodo/ChangeLog new file mode 100644 index 0000000..b7b93bc --- /dev/null +++ b/kodo/ChangeLog @@ -0,0 +1,42 @@ + Modification History + -------------------- + 19 Mar 1993 mhg v1.0 Initial release. + 3 Aug 1993 mhg v1.2 Added automatic trip reset feature. + 5 Jan 1994 mhg v1.3 Ported to Alpha; moved mi/km button into popup + menu; removed 'Trip' fixed label; added font + resource. + 6 Jan 1994 mhg x1.4 Main window no longer grabs input focus when + realized. + 21 Nov 1994 mhg x1.4 Added saveFile resource to make location and + name of odometer save file customizable. + 6 Mar 1995 mhg x1.5 Added automatic html generation. + 9 Mar 1995 mhg x1.6 Converted file to format with verion info! + Changed .format resource to .units. + Improved measurement unit handling and update + accuracy. Removed unneccesary label updates. + 19 Apr 1995 mhg V2.0 Removed OpenVMS-specific AST code in favor of + XtAppAddTimeout. (Works a lot better now, too.) + 26 Apr 1995 mhg X2.1-1 Fix trip reset so units is also reset. + 27 Apr 1995 mhg X2.1-2 Changed AutoReset timer to be its own timeout + on a relative timer based on seconds until + midnight. + 28 Apr 1995 mhg X2.1-3 Added pollInterval and saveFrequency resources. + 1 May 1995 mhg X2.1-4 Make disk writing (data, html) deferred so as + to allow for "continuous" display update while + mouse is in motion. + 27 Oct 1995 mhg V2.1 Final cleanup for this version and public + release. + + 18 May 1998 asn V3.0 Broke the code in all sorts of ways to turn + the mild-mannered Motif version into a + modern KDE program. Code turned into C++, + all Xm references were removed, and VMS + support was dumped! + + 22 Aug 1998 asn V3.1 Minor updates to make it compile more + gracefully on modern C++ compilers, + and updated things to KDE 1.0 specs. + Added a proper About Box. + + 16 May 2001 gb V3.2 Code cleanups, more KDE 2.0 compatible. + diff --git a/kodo/Makefile.am b/kodo/Makefile.am new file mode 100644 index 0000000..38bfbd5 --- /dev/null +++ b/kodo/Makefile.am @@ -0,0 +1,22 @@ + +# set the include path for X, qt and KDE +INCLUDES= $(all_includes) + +bin_PROGRAMS = kodo +kodo_SOURCES = main.cpp kodometer.cpp kimagenumber.cpp +METASOURCES = AUTO + +# the library search path. +kodo_LDFLAGS = $(all_libraries) $(KDE_RPATH) +kodo_LDADD = $(LIB_KDEUI) + +messages: + $(XGETTEXT) $(kodo_SOURCES) -o $(podir)/kodo.pot + +KDE_ICON = kodo + +xdg_apps_DATA = kodo.desktop + +pics_DATA = numbers.png +picsdir = $(kde_datadir)/kodo + diff --git a/kodo/configure.in.in b/kodo/configure.in.in new file mode 100644 index 0000000..0f2e0e3 --- /dev/null +++ b/kodo/configure.in.in @@ -0,0 +1,3 @@ +if test "x$kde_use_qt_mac" = "xyes"; then + DO_NOT_COMPILE="$DO_NOT_COMPILE kodo" +fi diff --git a/kodo/hi16-app-kodo.png b/kodo/hi16-app-kodo.png new file mode 100644 index 0000000000000000000000000000000000000000..cd7b9297a4f7da2d022b12c4559ceb6a8b7a7f91 GIT binary patch literal 226 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 literal 0 HcmV?d00001 diff --git a/kodo/kimagenumber.cpp b/kodo/kimagenumber.cpp new file mode 100644 index 0000000..391fb97 --- /dev/null +++ b/kodo/kimagenumber.cpp @@ -0,0 +1,79 @@ +/* + * Mouspedometa + * Based on the original Xodometer VMS/Motif sources. + * + * Written by Armen Nakashian + * Compaq Computer Corporation + * Houston TX + * 22 May 1998 + * + * If you make improvements or enhancements to Mouspedometa, please send + * them back to the author at any of the following addresses: + * + * armen@nakashian.com + * + * Thanks to Mark Granoff for writing the original Xodometer, and + * the whole KDE team for making such a nice environment to write + * programs in. + * + * + * This software is provided as is with no warranty of any kind, + * expressed or implied. Neither Digital Equipment Corporation nor + * Armen Nakashian will be held accountable for your use of this + * software. + */ + +#include "kimagenumber.h" + +KImageNumber::KImageNumber(const QString& font, QWidget* parent,const char* name) : + QFrame(parent,name), + m_value(0) +{ + fontPix = new QPixmap(font); + resize(sizeHint()); +} + +KImageNumber::~KImageNumber() +{ + delete fontPix; +} + +void KImageNumber::paintEvent(QPaintEvent*) +{ + int w = fontPix->width(); + int each = w/11; + + QString data; + data.sprintf("%06.1f", m_value); + + for(unsigned int i=0; i < data.length(); i++) { + int wl = data.at(i).latin1() - '0'; + if(data.at(i) == '.') + wl = 10; + bitBlt(this, i*each, 0, fontPix, wl*each, 0, each, fontPix->height()); + } +} + +void KImageNumber::setValue(double v) +{ + m_value = v; + repaint(false); +} + +double KImageNumber::value() const +{ + return m_value; +} + +QSize KImageNumber::sizeHint() const +{ + int w = fontPix->width(); + int each = w/11; + + QString data; + data.sprintf("%06.1f", m_value); + + return QSize(data.length()*each, fontPix->height()); +} + +#include "kimagenumber.moc" diff --git a/kodo/kimagenumber.h b/kodo/kimagenumber.h new file mode 100644 index 0000000..57f96e2 --- /dev/null +++ b/kodo/kimagenumber.h @@ -0,0 +1,53 @@ +/* + * Mouspedometa + * Based on the original Xodometer VMS/Motif sources. + * + * Written by Armen Nakashian + * Compaq Computer Corporation + * Houston TX + * 22 May 1998 + * + * If you make improvements or enhancements to Mouspedometa, please send + * them back to the author at any of the following addresses: + * + * armen@nakashian.com + * + * Thanks to Mark Granoff for writing the original Xodometer, and + * the whole KDE team for making such a nice environment to write + * programs in. + * + * + * This software is provided as is with no warranty of any kind, + * expressed or implied. Neither Digital Equipment Corporation nor + * Armen Nakashian will be held accountable for your use of this + * software. + */ + +#ifndef KIMGNUM_H +#define KIMGNUM_H + +#include +#include + +class KImageNumber : public QFrame +{ + Q_OBJECT + Q_PROPERTY( double m_value READ value WRITE setValue ) +public: + KImageNumber(const QString& font, QWidget* parent=0, const char* name=0); + + virtual ~KImageNumber(); + + void paintEvent(QPaintEvent*); + virtual QSize sizeHint() const; + double value() const; + +public slots: + void setValue(double v); + +protected: + double m_value; + QPixmap* fontPix; +}; + +#endif diff --git a/kodo/kodo.desktop b/kodo/kodo.desktop new file mode 100644 index 0000000..d577c8d --- /dev/null +++ b/kodo/kodo.desktop @@ -0,0 +1,69 @@ +[Desktop Entry] +Type=Application +Exec=kodo +Icon=kodo +DocPath=kodo/index.html +GenericName=Mouse Odometer +GenericName[be]=Мышыны адоматр +GenericName[bg]=Одометър за мишката +GenericName[bn]=মাউসের গতিমাপক যন্ত্র +GenericName[ca]=Ratometratge +GenericName[cs]=Rychlost myši +GenericName[cy]=Camfesurydd Llygoden +GenericName[da]=Musehastighedsmåler +GenericName[de]=Entfernungsmesser für die Maus +GenericName[el]=Χιλιομετρομετρητής ποντικιού +GenericName[eo]=Musomezurilo +GenericName[es]=Odómetro del ratón +GenericName[et]=Hiire odomeeter +GenericName[eu]=Mouspedometa +GenericName[fa]=کیلومترشمار موشی +GenericName[fi]=Hiirimittari +GenericName[fr]=Odomètre pour souris +GenericName[ga]=Odaiméadar Luiche +GenericName[gl]=Odómetro +GenericName[he]=מד־מרחק העכבר +GenericName[hr]=Brojač prijeđenog puta miša +GenericName[hu]=Egérmozgás-figyelő +GenericName[is]=Músametrateljari +GenericName[it]=Contachilometri mouse +GenericName[ja]=マウス走行計 +GenericName[km]=Odometer កណ្ដុរ +GenericName[ko]=마우스 거리 측정 도구 +GenericName[lv]=Peles odometrs +GenericName[mk]=Километража на глушецот +GenericName[mt]=Odometru tal-maws +GenericName[nb]=Muselengdemåler +GenericName[nds]=Muus-Wegmeter +GenericName[ne]=माउस ओडोमिटर +GenericName[nl]=Muismeter +GenericName[nn]=Musefartsmålar +GenericName[pa]=ਮਾਊਂਸ ਓਡੋਮੀਟਰ +GenericName[pl]=Licznik przebiegu dla myszki +GenericName[pt]=Ratómetro +GenericName[pt_BR]=Odômetro Para o Mouse +GenericName[ro]=Mouse-metru +GenericName[ru]=Мышеспидометр +GenericName[sk]=Merač myši +GenericName[sl]=Miškomer +GenericName[sr]=Мишометар +GenericName[sr@Latn]=Mišometar +GenericName[sv]=Vägmätaren +GenericName[ta]=சுட்டி ஓட்ட அளவி +GenericName[tg]=Спидометри Муш +GenericName[tr]=Fare Mesafe Ölçer +GenericName[uk]=Одометр для мишки +GenericName[zh_CN]=鼠标里程计 +GenericName[zh_TW]=滑鼠里程表 +Terminal=false +Name=Kodo +Name[bn]=কোডো +Name[de]=KOdometer +Name[km]=កូដូ (Kodo) +Name[ne]=कोडो +Name[pa]=ਕੋਡੋ +Name[ta]=கேஓட்ட அளவி +Name[tg]=Кодо +X-KDE-StartupNotify=true +X-DCOP-ServiceType=Unique +Categories=Qt;KDE;Utility;Amusement; diff --git a/kodo/kodometer.cpp b/kodo/kodometer.cpp new file mode 100644 index 0000000..aea6f47 --- /dev/null +++ b/kodo/kodometer.cpp @@ -0,0 +1,600 @@ +/* + * Mouspedometa + * Based on the original Xodometer VMS/Motif sources. + * + * Written by Armen Nakashian + * Compaq Computer Corporation + * Houston TX + * 22 May 1998 + * + * If you make improvements or enhancements to Mouspedometa, please send + * them back to the author at any of the following addresses: + * + * armen@nakashian.com + * + * Thanks to Mark Granoff for writing the original Xodometer, and + * the whole KDE team for making such a nice environment to write + * programs in. + * + * + * This software is provided as is with no warranty of any kind, + * expressed or implied. Neither Digital Equipment Corporation nor + * Armen Nakashian will be held accountable for your use of this + * software. + */ + +#include "kodometer.h" + +const double speedInterval = 500.0; +const double distanceInterval = 10.0; +const int speedSamples = 10; + +static struct conversionEntry ConversionTable[MAX_UNIT] = { + {inch, I18N_NOOP("inch"), I18N_NOOP("inches"), 12.0, 2.54, + I18N_NOOP("cm"), I18N_NOOP("cm"), 100.0, 3}, + {foot, I18N_NOOP("foot"), I18N_NOOP("feet"), 5280.0, 0.3048, + I18N_NOOP("meter"), I18N_NOOP("meters"), 1000.0, 4}, + {mile, I18N_NOOP("mile"), I18N_NOOP("miles"), -1.0, 1.609344, + I18N_NOOP("km"), I18N_NOOP("km"), -1.0, 5}}; + +/* + * Set the program up, do lots of ugly initialization. + * Note that we use installEventFilter on the two KImageNumber's + * to make clicks on them bring up the context-menu. + */ +Kodometer::Kodometer(QWidget* parent, const char* name) + : QFrame(parent, name), + dontRefresh(false), + speed(0.0), + lastDistance(0.0), + XCoord(0), YCoord(0), + lastXCoord(0), lastYCoord(0), + pointerScreen(-1), + lastPointerScreen(-1), + Enabled(true), + cyclesSinceLastSave(0), + pollInterval(10), + saveFrequency(10) +{ + display = KApplication::kApplication()->getDisplay(); + FindAllScreens(); + + root = RootWindow(display, DefaultScreen(display)); + + readSettings(); + if(AutoReset) { + dontRefresh = true; + resetTrip(); + dontRefresh = false; + } + + lastDistance = Distance; + + lastDUnit = distanceUnit; + lastTUnit = tripDistanceUnit; + + totalLabel = new KImageNumber(locate("appdata", "numbers.png"), this); + tripLabel = new KImageNumber(locate("appdata", "numbers.png"), this); + + totalLabel->installEventFilter(this); + tripLabel->installEventFilter(this); + + // setup help menu + help = new KHelpMenu(this, KGlobal::instance()->aboutData(), false); + KPopupMenu* helpMnu = help->menu(); + + // Make the popup menu + menu = new KPopupMenu(); + + menu->insertTitle(kapp->miniIcon(), KGlobal::instance()->aboutData()->programName()); + + enabledID = menu->insertItem(i18n("&Enable"), this, SLOT(toggleEnabled())); + metricID = menu->insertItem(i18n("&Metric Display"), this, + SLOT(toggleUnits())); + autoResetID = menu->insertItem(i18n("Auto &Reset Trip"), this, + SLOT(toggleAutoReset())); + menu->insertItem(i18n("Reset &Trip"), this, SLOT(resetTrip())); + menu->insertItem(i18n("Reset &Odometer"), this, SLOT(resetTotal())); + menu->insertSeparator(); + + menu->insertItem(SmallIconSet("help"), i18n("&Help"), helpMnu); + + menu->insertItem(SmallIconSet("exit"), i18n("&Quit"), this, SLOT(quit())); + menu->setCheckable(true); + + menu->setItemChecked(enabledID, Enabled); + menu->setItemChecked(metricID, UseMetric); + menu->setItemChecked(autoResetID, AutoReset); + + //start the timers that will rifresh the counter + distanceID = startTimer((int)distanceInterval); + speedID = startTimer((int)speedInterval); + + tripLabel->move(0, totalLabel->height()); + setFixedSize(tripLabel->width(), + totalLabel->height() + tripLabel->height()); + + UseMetric =! UseMetric; + toggleUnits(); + + refresh(); +} + +/* + * Now I'm not really sure what this does. I assume its here to find + * all the displays on your system, and measure them. During the mouse + * tracking phase, we use the information stored here to determine how + * far the mouse moved on a given screen. + * + * The point is, since you might have one 17" screen and on 21" screen, + * lets measure them differently. Surely this level of accurasy is + * only provide to prove that the original author was a man's man. + */ +void Kodometer::FindAllScreens(void) +{ + int Dh, DhMM, Dw, DwMM; + double vPixelsPerMM, hPixelsPerMM; + + screenCount = ScreenCount(display); +// kdDebug() << "Display has " << screenCount << +// " screen" << (screenCount == 1 ? "" : "s") << endl; + + for(int i = 0; i < screenCount; i++) { +// kdDebug() << "Screen " << i << endl; + screenInfo[i].root = RootWindow(display, i); + screenInfo[i].scr = XScreenOfDisplay(display, i); + + screenInfo[i].height = Dh = HeightOfScreen(screenInfo[i].scr); + DhMM = HeightMMOfScreen(screenInfo[i].scr); + screenInfo[i].width = Dw = WidthOfScreen(screenInfo[i].scr); + DwMM = WidthMMOfScreen(screenInfo[i].scr); +// kdDebug() << " Height is " << Dh << " pixels (" << DhMM << +// "mm)" << endl; +// kdDebug() << " Width is " << Dw << " pixels (" << DwMM << +// "mm)" << endl; + + vPixelsPerMM = (double)Dh / (double)DhMM; + hPixelsPerMM = (double)Dw / (double)DwMM; + screenInfo[i].PixelsPerMM = (vPixelsPerMM + hPixelsPerMM) / 2.0; +// kdDebug() << " Vertical pixels/mm are " << vPixelsPerMM << +// "mm" << endl; +// kdDebug() << " Horizontal pixels/mm are " << hPixelsPerMM << +// "mm" << endl; +// kdDebug() << " Average pixels/mm are " << +// screenInfo[i].PixelsPerMM << "mm" << endl; + } +} + +/* + * Here's where we override events to the KImgNum's to display + * the context menu + */ +bool Kodometer::eventFilter( QObject *, QEvent *e ) +{ + if ( e->type() == QEvent::MouseButtonPress ) { + mousePressEvent((QMouseEvent*)e); + return true; + } + return false; +} + +/* + * Show the context menu + */ +void Kodometer::mousePressEvent(QMouseEvent* e) +{ + //FIXME fix this! + //dontRefresh = true; + menu->popup(mapToGlobal(e->pos())); +} + +/* + * Called when the timer expires to query the pointer position, + * compare it to the last known position, and then to calculate + * the distance moved. + */ +void Kodometer::timerEvent(QTimerEvent* e) +{ + if (Enabled) { + if(e->timerId() == distanceID) { + lastPointerScreen = pointerScreen; + lastXCoord = XCoord; + lastYCoord = YCoord; + XQueryPointer (display, root, &RootIDRet, &ChildIDRet, &XCoord, + &YCoord, &WinX, &WinY, &StateMask); + if (CalcDistance()) { +// kdDebug() << "Mouse moved" << endl; + if (!dontRefresh) { + refresh(); + cyclesSinceLastSave++; + } + } + } + } +} + +// Guess! +void Kodometer::toggleEnabled() +{ + Enabled = !Enabled; + menu->setItemChecked(enabledID,Enabled); + refresh(); +} + +// Try again! +void Kodometer::toggleAutoReset() +{ + AutoReset = !AutoReset; + menu->setItemChecked(autoResetID,AutoReset); + refresh(); +} + + +// You're getting warm! +void Kodometer::toggleUnits() +{ + UseMetric =! UseMetric; + + menu->setItemChecked(metricID, UseMetric); + + QToolTip::remove(totalLabel); + QToolTip::remove(tripLabel); + if(!UseMetric) { + QToolTip::add(totalLabel, + i18n(ConversionTable[distanceUnit].fromUnitTagPlural)); + QToolTip::add(tripLabel, + i18n(ConversionTable[tripDistanceUnit].fromUnitTagPlural)); + } else { + QToolTip::add(totalLabel, + i18n(ConversionTable[distanceUnit].toUnitTagPlural)); + QToolTip::add(tripLabel, + i18n(ConversionTable[tripDistanceUnit].toUnitTagPlural)); + } + refresh(); +} + + +// Were you dropped on your head as a child? +void Kodometer::resetTrip() +{ + TripDistance = 0.0; + tripDistanceUnit = inch; + if (!dontRefresh) + refresh(); +} + +// I was! +void Kodometer::resetTotal() +{ + resetTrip(); + + Distance = 0.0; + distanceUnit = inch; + + TripDistance = 0.0; + tripDistanceUnit = inch; + refresh(); +} + +/* + * Set the values in all the KImgNums, do metric conversions, + * and make the screen look like reality. + */ +void Kodometer::refresh(void) +{ + if(distanceUnit != lastDUnit) { + lastDUnit = distanceUnit; + QToolTip::remove(totalLabel); + if(!UseMetric) + QToolTip::add(totalLabel, + i18n(ConversionTable[distanceUnit].fromUnitTagPlural)); + else + QToolTip::add(totalLabel, + i18n(ConversionTable[distanceUnit].toUnitTagPlural)); + } + + if(tripDistanceUnit != lastTUnit) { + lastTUnit = tripDistanceUnit; + QToolTip::remove(tripLabel); + if(!UseMetric) + QToolTip::add(tripLabel, + i18n(ConversionTable[tripDistanceUnit].fromUnitTagPlural)); + else + QToolTip::add(tripLabel, + i18n(ConversionTable[tripDistanceUnit].toUnitTagPlural)); + } + + //now draw everything + QString distance_s; + QString trip_s; + double distance_d = 0; + double trip_d = 0; + + if (Enabled) { + distance_d = Distance; + distance_s = FormatDistance(distance_d, distanceUnit); + trip_d = TripDistance; + trip_s = FormatDistance(trip_d, tripDistanceUnit); + } else { + distance_s = "------"; + trip_s = "------"; + } + + totalLabel->setValue(distance_d); + tripLabel->setValue(trip_d); +} + +/* + * Not sure what this does, its from the original program. + */ +double Kodometer::multiplier(Units unit) +{ + double m = 10; + + switch (unit) { + case mile : m *= 10.0; + case foot : m *= 10.0; + case inch : m *= 10.0; break; + } + return m; +} + +/* + * This is the bitch function where the _real_ work is done. I + * could have re-invented the query_pointer code, but this one is a best. + * + * This is code from the original program, responsible for converting the + * number of pixels traveled into a real-world coordinates. + */ +int Kodometer::CalcDistance(void) +{ + double dist, sum; + int X, Y; + double distMM, distInches, finalNewDist; + double oldDistance, oldTripDistance; + double newDistance, newTripDistance; + int i, j, finalScreen, increment; + Units oldDistanceUnit, oldTripDistanceUnit, currentUnit; + int distanceChanged, tripDistanceChanged; + + int screenOrientation = K_Left; + + i = j = finalScreen = increment = 0; + + if ((lastXCoord == 0) && (lastYCoord == 0)) + return false; + + if ((lastXCoord == XCoord) && (lastYCoord == YCoord)) + return false; + + //Figure out which screen the pointer is on + if (screenCount > 1) { + while (i < screenCount) + if (RootIDRet == screenInfo[i].root) + break; + else + i++; + } + + pointerScreen = i; + +// kdDebug() << "CalcDistance: screen: " << pointerScreen << +// " x: " << XCoord << " y: " << YCoord << endl; + + // Adjust XCoord or YCoord for the screen its on, relative to screen 0 + // and screenOrientation. + + if (lastPointerScreen != -1 && pointerScreen != lastPointerScreen) { + switch (screenOrientation) { + case K_Left: + case K_Top: + finalScreen = 0; + j = QMAX(pointerScreen,lastPointerScreen) - 1; + increment = -1; + break; + case K_Right: + case K_Bottom: + finalScreen = QMAX(pointerScreen,lastPointerScreen) - 1; + j = 0; + increment = 1; + break; + } + do { + switch (screenOrientation) { + case K_Left: + case K_Right: + if (pointerScreen > lastPointerScreen) + XCoord += screenInfo[j].width; + else + lastXCoord += screenInfo[j].width; + break; + case K_Top: + case K_Bottom: + if (pointerScreen > lastPointerScreen) + YCoord += screenInfo[j].height; + else + lastYCoord += screenInfo[j].height; + break; + } + if (j != finalScreen) + j += increment; + } while (j != finalScreen); +// kdDebug() << " Adjusted for screen ch: x: " << XCoord << +// " y: " << YCoord << endl; + } + +// kdDebug() << "In: Distance: " << Distance << +// " Trip Distance: " << TripDistance << endl; + + // Calculate distance in pixels first + // using Pitagora + + X = XCoord - lastXCoord; + X = X*X; + + Y = YCoord - lastYCoord; + Y = Y*Y; + + sum = (double)X + (double)Y; + dist = sqrt(sum); + + // Convert to millimeters + distMM = dist / screenInfo[pointerScreen].PixelsPerMM; + + // Convert to inches + distInches = distMM * 0.04; + + // Add an appropriate value to Distance, which may be + // in a unit other than inches + currentUnit = inch; + finalNewDist = distInches; + + while (currentUnit < distanceUnit) { + finalNewDist = + finalNewDist / ConversionTable[currentUnit].maxFromBeforeNext; + currentUnit++; +// kdDebug() << " New dist: " << dist << "p, " << distMM << "mm, " << +// distInches << "in, " << finalNewDist << " " << +// ConversionTable[currentUnit+1].fromUnitTagPlural << endl; + } + +// kdDebug() << " Next part" << endl; + + oldDistance = Distance * multiplier(distanceUnit); + + Distance += finalNewDist; + oldDistanceUnit = distanceUnit; + + if (ConversionTable[distanceUnit].maxFromBeforeNext != -1.0 && + Distance >= ConversionTable[distanceUnit].maxFromBeforeNext) + { + Distance = Distance / ConversionTable[distanceUnit].maxFromBeforeNext; + distanceUnit++; + } + + newDistance = Distance * multiplier(distanceUnit); + distanceChanged = (distanceUnit != oldDistanceUnit || + (unsigned int)oldDistance != (unsigned int)newDistance); + + // Add an appropriate value to TripDistance, which may be + // in a unit other than inches + currentUnit = inch; + finalNewDist = distInches; + + while (currentUnit < tripDistanceUnit) { + finalNewDist = finalNewDist / + ConversionTable[currentUnit].maxFromBeforeNext; + currentUnit++; + } + + oldTripDistance = TripDistance * multiplier(tripDistanceUnit); + TripDistance += finalNewDist; + oldTripDistanceUnit = tripDistanceUnit; + + if (ConversionTable[tripDistanceUnit].maxFromBeforeNext != -1.0 && + TripDistance >= ConversionTable[tripDistanceUnit].maxFromBeforeNext) + { + TripDistance = TripDistance / + ConversionTable[tripDistanceUnit].maxFromBeforeNext; + tripDistanceUnit++; + } + + newTripDistance = TripDistance * multiplier(tripDistanceUnit); + tripDistanceChanged = ((tripDistanceUnit != oldTripDistanceUnit) || + ((unsigned int)oldTripDistance != (unsigned int)newTripDistance)); + + +// kdDebug() << "Out: Distance: " << Distance << +// "Trip Distance: " << TripDistance << endl; + + if ((distanceChanged) || (tripDistanceChanged)) + return true; + else + return false; +} + +/* + * This code can probably go away. Its doing conversions from inches to + * other units. Its ugly C-style stuff, that should't be done in a + * pretty OO world. + */ +#define THERE_IS_A_NEXT (ConversionTable[unit].maxToBeforeNext != -1.0) +QString Kodometer::FormatDistance(double &dist, Units unit) +{ + QString string; + const char *tag; + int precision; + + if (UseMetric) { + dist = dist * ConversionTable[unit].conversionFactor; + if ((THERE_IS_A_NEXT) && + (dist > ConversionTable[unit].maxToBeforeNext)) + { + dist = dist / ConversionTable[unit].maxToBeforeNext; + unit++; + } + if (dist == 1.0) + tag = ConversionTable[unit].toUnitTag; + else + tag = ConversionTable[unit].toUnitTagPlural; + } else { + if (dist == 1.0) + tag = ConversionTable[unit].fromUnitTag; + else + tag = ConversionTable[unit].fromUnitTagPlural; + } + precision = ConversionTable[unit].printPrecision; + + string.sprintf ("%.*f %s", precision, dist, tag); + return string; +} + +/* + * Use KConfig to read all settings from disk. Note that whatever + * happens here overrides the defaults, but there's not much + * sanity-checking. + */ +void Kodometer::readSettings(void) +{ + KConfig* config = KGlobal::config(); + config->setGroup("Settings"); + + UseMetric = config->readNumEntry("UseMetric", false); + AutoReset = config->readNumEntry("AutoReset", true); + + TripDistance = config->readDoubleNumEntry("Trip", 0.0); + Distance = config->readDoubleNumEntry("Distance", 0.0); + + distanceUnit = config->readNumEntry("DistanceUnit", inch); + tripDistanceUnit = config->readNumEntry("TripUnit", inch); +} + + +/* + * Save reality for use in the next session. + */ +void Kodometer::saveSettings(void) +{ + KConfig* config = KGlobal::config(); + config->setGroup("Settings"); + + config->writeEntry("UseMetric", UseMetric); + config->writeEntry("AutoReset", AutoReset); + + config->writeEntry("Trip", TripDistance); + config->writeEntry("Distance", Distance); + + config->writeEntry("TripUnit", tripDistanceUnit); + config->writeEntry("DistanceUnit", distanceUnit); + + config->sync(); +} + +// What in the world can this do? +void Kodometer::quit() +{ + saveSettings(); + kapp->quit(); +} + +#include "kodometer.moc" diff --git a/kodo/kodometer.h b/kodo/kodometer.h new file mode 100644 index 0000000..3d5544c --- /dev/null +++ b/kodo/kodometer.h @@ -0,0 +1,163 @@ +/* + * Mouspedometa + * Based on the original Xodometer VMS/Motif sources. + * + * Written by Armen Nakashian + * Compaq Computer Corporation + * Houston TX + * 22 May 1998 + * + * If you make improvements or enhancements to Mouspedometa, please send + * them back to the author at any of the following addresses: + * + * armen@nakashian.com + * + * Thanks to Mark Granoff for writing the original Xodometer, and + * the whole KDE team for making such a nice environment to write + * programs in. + * + * + * This software is provided as is with no warranty of any kind, + * expressed or implied. Neither Digital Equipment Corporation nor + * Armen Nakashian will be held accountable for your use of this + * software. + */ + +// -*-C++-*-; + +#ifndef KODOMETER_H +#define KODOMETER_H + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "kimagenumber.h" + +#define MAXARGS 25 +#define K_Left 1 +#define K_Right 2 +#define K_Top 3 +#define K_Bottom 4 +#define MAX_SCREEN 16 +#define MAJOR_VERSION 3 +#define MINOR_VERSION 0 + +const int inch = 0; +const int foot = 1; +const int mile = 2; +const int MAX_UNIT = 3; +typedef int Units; + + +typedef struct { + Window root; + Screen *scr; + int height, width; + double PixelsPerMM; +} _screenInfo; + + +typedef struct conversionEntry { + Units fromUnit; + const char *fromUnitTag; + const char *fromUnitTagPlural; + double maxFromBeforeNext; + double conversionFactor; + const char *toUnitTag; + const char *toUnitTagPlural; + double maxToBeforeNext; + int printPrecision; +} conversionEntry; + +class Kodometer : public QFrame +{ + Q_OBJECT + +public: + Kodometer(QWidget* = 0, const char* = 0); + ~Kodometer() {} + void refresh(void); + void readSettings(void); + void saveSettings(void); + + void timerEvent(QTimerEvent*); + void mousePressEvent(QMouseEvent*); + bool eventFilter( QObject *, QEvent *e ); + +public slots: + void toggleEnabled(); + void toggleUnits(); + void toggleAutoReset(); + void resetTrip(); + void resetTotal(); + void quit(); + +protected: + int dontRefresh; + + double multiplier(Units); + int CalcDistance(void); + QString FormatDistance(double &dist, Units); + void FindAllScreens(); + + KImageNumber* tripLabel; + KImageNumber* totalLabel; + KImageNumber* speedLabel; + + KPopupMenu* menu; + KHelpMenu* help; + int metricID; + int autoResetID; + int enabledID; + + double speed; + QPtrList speeds; + double lastDistance; + int distanceID; + int speedID; + + Display *display; + Window root, RootIDRet, ChildIDRet; + int WinX, WinY; + unsigned int StateMask; + int XCoord, YCoord; + int lastXCoord, lastYCoord; + + Units lastDUnit, lastTUnit; + + int pointerScreen, lastPointerScreen; + int Enabled; + int UseMetric; + int AutoReset; + double Distance, TripDistance; + Units distanceUnit, tripDistanceUnit; + char startDate_s[128]; + int cyclesSinceLastSave; + int pollInterval; + int saveFrequency; + + _screenInfo screenInfo[MAX_SCREEN]; + int screenCount; +}; + +#endif diff --git a/kodo/main.cpp b/kodo/main.cpp new file mode 100644 index 0000000..72f8802 --- /dev/null +++ b/kodo/main.cpp @@ -0,0 +1,100 @@ +/* + * Mouspedometa + * Based on the original Xodometer VMS/Motif sources. + * + * Written by Armen Nakashian + * Compaq Computer Corporation + * Houston TX + * 22 May 1998 + * + * If you make improvements or enhancements to Mouspedometa, please send + * them back to the author at any of the following addresses: + * + * armen@nakashian.com + * + * Thanks to Mark Granoff for writing the original Xodometer, and + * the whole KDE team for making such a nice environment to write + * programs in. + * + * + * This software is provided as is with no warranty of any kind, + * expressed or implied. Neither Digital Equipment Corporation nor + * Armen Nakashian will be held accountable for your use of this + * software. + */ + +/* +** Xodometer +** Written by Mark H. Granoff/mhg +** Digital Equipment Corporation +** Littleton, MA, USA +** 17 March 1993 +** +** If you make improvements or enhancements to Xodometer, please send them +** back to the author at any of the following addresses: +** +** granoff@keptin.lkg.dec.com +** granoff@UltraNet.com +** 72301.1177@CompuServe.com +** +** Thanks to my friend and colleague Bob Harris for his suggestions and help. +** +** This software is provided as is with no warranty of any kind, expressed or +** implied. Neither Digital Equipment Corporation nor Mark Granoff will be +** held accountable for your use of this software. +** +** This software is released into the public domain and may be redistributed +** freely provided that all source module headers remain intact in their +** entirety, and that all components of this kit are redistributed together. +** +** Modification History +** -------------------- +** See ChangeLog +*/ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "kodometer.h" +#include + +int main(int argc, char *argv[]) +{ + /* Top level details */ + + KAboutData *aboutData = new KAboutData("kodo", + I18N_NOOP("KOdometer"), "3.2", + I18N_NOOP("KOdometer measures your desktop mileage"), + KAboutData::License_GPL, + "(c) 1998, Armen Nakashian", + I18N_NOOP("A mouse odometer"), 0, + "dev@gioelebarabucci.com"); + aboutData->addAuthor("Armen Nakashian", 0, + "armen@tourismo.com", + "http://yawara.anime.net/kodo/"); + aboutData->addCredit("Gioele Barabucci", + I18N_NOOP("KDE 2 porting and some code cleanups"), + "dev@gioelebarabucci.com", "http://www.gioelebarabucci.com"); + KCmdLineArgs::init( argc, argv, aboutData ); + + if (!KUniqueApplication::start()) + exit(0); + + KUniqueApplication a; + + Kodometer *o = new Kodometer(); + + // Get rid of the title bar. + KWin::setType(o->winId(), NET::Override ); + KWin::setState(o->winId(), NET::Sticky); + // FIXME is this a hack? +// o->setGeometry(0, 0, 0, 0); + a.setMainWidget(o); + // is the following this needed? + // a.setTopWidget(o); + + o->show(); + + return a.exec(); +} diff --git a/kodo/numbers.png b/kodo/numbers.png new file mode 100644 index 0000000000000000000000000000000000000000..27fd81fa1b91dd43ff576893b81a2920740dacdf GIT binary patch literal 2372 zcmV-K3A^@*P){7#J8KAt7U9V}yi+l$4YyDJc*T5Nm5|N=iz5 zdwYzGjGUaDT3T8{LPB$Mb1^Y7*4EbV@9*d5=e@nXwY9az#>URh&aJJjrKP3C#l_y< z-Utu~DIp=PrKKSuDKRlQdvkMbZEbUFYdJAF5C{+m2oM$)78w~C5D*9`-_>mZ00202 zMObuGZ)S9NVRB^vSXLlbWpZ!t&{LwVE(=uF7Ts_Q-?gP8?3f2hA8Uoir2C>f&^_8)IN>jgiQuHYQ;@ zKY8Ve)t8oBTd}2&R@~=K+sMmKTB}nG`zc{Z#@J_j@7rs#G;`HYrg?qCtIQ4CZkl6@ znje|Ata;qt9N7jU>R?sL>UL`bHDI+Boh)QDUkliD7v@=6#8pE75FI6U~pz^ytN`Y+wV&L}gp? z|0M)PM8ZtKB(21Qn6VcOffsB4#7=6)RG`!^Vlf9?z$P6UXi%?`P40?i>jS#(1*=CUY#4G!IuZ)Hz;38@C+; z_O_4AE!&rE$66ovFL*-Oux$IjgTczSCK665mRJh2@#XWQ7ejmj(b2Y}Qb!p~mx157;)Z&jdV7?`BHK%6j z$2oJzS!2$v!vbh&{VKl0n=^O(L`N*|a+bMuf;q-&nU|#l#>sRgw7l_h%EU)WtA?$M zF7aqs$$VmF^4DQh))ZIu-L<6=--$n-uyvLVhj#mHUD+~V*t_0S>oKkaRRDqSSRFs`*hc^j@HsWU7mRp0 zoA!#cKQM*Cn&0m?{2uQuW82R8{&YI?o+kTiiaTZEk78hgypM4e?`d;S)(SluSxeUE zF&~Z7&DQrkNl7yW;Q~PRJxB-9@OFqOo9u|PIrFyrI`VLC#FWn`2ZrLj#Mp=Okd_P$ zmZ2R~$^nI1Z{f~i|Nq3EP(4gO##OxUhP2r$gLE>ep7wXHEHc@!RiC%>+&X_?J3lpZ zzmjGuTcCJFoe=9QCgK*+cdj4=3j@DdR9hsB%OI-6h>Y58?NRsDI^&C}&&vYu_!S8J>Bu5@poH^G1r(n6>%)_a;wb}bZ7fU9kW^?(46g6GZob>{QQ=Tl z1pZ2$^Bkh~Id6BRx%|1nZ(eJ^qZtD2e6FF%8#$9%%p?pAA0dGCA73TSoeQ@*qquBg z&Yja@Yy9;luFA;Fnd^M`YLcztog^Jy_{cNd!p?zhqbWNb)%P^>Ay2j(@G_kagVX{| zWnGrbUerT)zg}s7H2ClW=vOpE92o-j`qFdmx + - bugfix: opening the configuration dialog was leaking memory + - workaround for Qt bug(?): deleting teas didn't update QListView properly (fixes #63840) + (the above two fixes based on patches by Daniel Teske) + - bugfix: when no tea was defined, one couldn't start an anonymous tea either + - bugfix: on some occasions, the tooltip wasn't updated properly + +2003-08-23 Martin Willers + - added option to visualize steeping progress in tray icon + - some work towards unified source headers + - bumped version number + +2003-08-22 Martin Willers + - fix ToolTip disappearing prematurely + (patch by "Ivan") + +2003-04-17 Martin Willers + - fixed bug with propagation of valueChanged() signals from TimeEdit + - fixed bug: removing all teas from list was leading to crash! + - changed default tea time of "anonymous" dialog to 3 minutes + +2003-04-10 Martin Willers + - have now proper wrapping time-edit widget + - added facility to start steeping an 'anonymous' tea + - using new KDE 3.1.1 method for positioning KNotifyClient + (based on patches provided by Daniel Teske) + +2003-03-14 Martin Willers + - added "Configure Events..." button for quick access to kcontrol + - some internal tidying and cleanups + - using convenience class TeaListItem instead of QListViewItem + - small optimization: don't use lastitem() of listbox (which traverses whole list), + work with itemBelow() instead + - using custom TimeEdit-widget for entering times with minutes and seconds + (patches provided by Daniel Teske) + +2003-03-07 (external) + - Implement place holder for tea sort like requested in #54551 + +2003-02-23 Martin Willers + - "beep" option now uses KNotify::event() + (need own "steeping" sound now) + (patch provided by Daniel Teske ) + +2003-02-22 Martin Willers + - don't display ticks in left-click menu + +2003-02-15 Martin Willers + - using KActions for start, stop, and configure entries + - display list of configured teas on left-click, + making one-click starting of a new tea possible + - some cleanups + +2003-02-07 Martin Willers + - fixed inserting of new items into listview + - simplified layout in config-window + - fixed sizing of labels in config-window + - using QValueVector instead of a QStringList for teas + (patches provided by Daniel Teske ) + +2003-01-07 Martin Willers + - fixed destructor of class toplevel + - finally avoiding stretching of buttons in config-dialog + (patches provided by Daniel Teske ) + +2003-01-02 Martin Willers + - configuration dialog now selects first tea available + - small optimization in TopLevel::teaSelected() + - when a tea is brewing, more menu entries are now disabled + (patches provided by Daniel Teske ) + +2002-07-14 Martin Willers + - KPassivePopup now stays on-screen until acknowlegded by mouse-click + - now saving state of actionEnable to config + +2002-06-23 Matthias Hoelzer-Kluepfel + - added left-click menu while steeping + - gave focus to name edit when a new tea is added + - now unable to start steeping if no teas exist + - added a QCheckBox to enable/disable the action field + - made text in the name edit field right-justified + (patch provided by Jackson Dunstan ) + +2002-06-20 Matthias Hoelzer-Kluepfel + - improved the display of times in the menu + (patch provided by -Jackson Dunstan ) + +2002-04-20 Martin Willers + - also displaying name of current tea when finished + +2002-04-20 Martin Willers + - now displaying name of current tea in tooltip + - better removing of unused tea-entries from config + - some cleanups + +2002-04-18 Martin Willers + - when saving config, non-used old tea-entries are now deleted from config + +2002-04-10 Martin Willers + - Bugfix: when tea was finished, click on icon -> icon ok, but + tooltip was still "tea finished" + - added "Cancel"-button to menu, and can also cancel timer by clicking + on icon while running + - showing remaining time not as "x.y", but as "xx:yy" + - can configure arbitrary amount of teas, with custom name and time diff --git a/kteatime/Makefile.am b/kteatime/Makefile.am new file mode 100644 index 0000000..82ebf40 --- /dev/null +++ b/kteatime/Makefile.am @@ -0,0 +1,27 @@ + +INCLUDES= $(all_includes) + +bin_PROGRAMS = kteatime + +kteatime_SOURCES = main.cpp toplevel.cpp tealist.cpp timeedit.cpp + +kteatime_METASOURCES = AUTO +kteatime_LDFLAGS = $(all_libraries) $(KDE_RPATH) + +# LIB_KIO needed for KNotifyDialog +kteatime_LDADD = $(LIB_KDEUI) $(LIB_KIO) + +KDE_ICON = kteatime + +KDE_OPTIONS = nofinal + +appsdata_DATA = eventsrc +appsdatadir = $(kde_datadir)/kteatime + +kteatimeicondir = $(kde_datadir)/kteatime/icons +kteatimeicon_ICON = AUTO + +messages: + $(XGETTEXT) $(kteatime_SOURCES) -o $(podir)/kteatime.pot + +xdg_apps_DATA = kteatime.desktop diff --git a/kteatime/TODO b/kteatime/TODO new file mode 100644 index 0000000..3400b2b --- /dev/null +++ b/kteatime/TODO @@ -0,0 +1,58 @@ +- create SVG icon(s) (or at least a 32x32 version for "About KTeaTime") +- Rename "shooting" +- Rename "Event" to "Notification" +- nicer placement of "Configure events" button: + "Configure Events..." --> move to same line as "Event" and rename to "Configure..."? + (and/or have a look at KStdAction::configureNotifications()!) + (common is "Configure &Notifications..." btw.) + [which gets translated in kdelibs.ps to "&Benachrichtigungen festlegen..."] + [[more often, "einrichten" is used for "configure"]] +- use "readPathEntry()" instead of "readEntry()" (expands/replaces $HOME) + +- have a look at memory consumption; seems too high for me.. +- adapt kteatime.docbook to new century... +- save default time for "anonymous" to config +- in configure-window: add "Execute: "-label in front of "action"-text edit +- KNotifyClient: "Execute" not capable of %t substitution? + (--> hence no replacement for my own "Execute: " action) +- KNotifyClient: passive popup cannot(?) have no timeout + (--> hence no replacement for my own "Popup" action) +- when steeping, display "stop " on left-click, not just "stop" + (not easy when using KAction in a simple way?) +- use QMovie for tea-is-finished-icon instead of two alternating pixmaps? + + +internals: +- 'int2time()' somewhere into class-namespace? (ie. not as global function) +- do kapp->closeAllWindows() on slotFileQuit() ? +- when in "ready"-state, left-click -> auto-go to initial state + before opening left-click menu(?) +- remember geometry of config-dialog (and its QListView!) + (or at least: x-maximize QListView's titles) +- somehow make double-click with left button start 'current' tea + without displaying start_menu? +- figure out how to use KAction for "quit"-entry of menu + (somehow doesn't work as expected..) +- some more tidying of configure-dialog + (eg. initial position!, initial size) +- DCOP interface? +- have a closer look at i18n-dos and -donts +- use XML-UI +- check for memory leaks +- make config-reading bullet-proof + + +---- new approach: + +- make it a generalized timer-application (with better UI than KTimer) + (think: cooking spaghetti, watch TV-show, etc.) + + - This needs another approach to entering timeouts, since they'll often be + needed just once -> eg. popup "Enter timeout:"-window on leftclick? + - Must be able to run arbitrary amounts of parallel timers! + (difficult to use 'useTrayVis' then..) + - Should be able to enter timeouts not just as seconds, but in any unit. + - option for "popup reminder every X minutes" + - Allow periodical timouts (eg. "Take this medication every 2 hours") + (if not clicked away, add count to window) +--> better start new application and let people migrate to it from KTeaTime diff --git a/kteatime/cr22-action-mug.png b/kteatime/cr22-action-mug.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2cc548250484886a8a84775f48f8510aa0d2a4 GIT binary patch literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fY)RhkEO>_ z%)r1c1j3A$?$-SQ3SRScaSW-L^LDBu-ysD7*Z&gN?G*Vj_B`@~m`>`6+y;>3sIgKa8Im1D#iEg)n4iI%*5`KVrUo`~k-stDPYWAwTO4bMPCv?DjL;p1qtdqq4VhseT8C-c?y|r^rp(S569p{O{@N=d#Wzp$P!} CvUubG literal 0 HcmV?d00001 diff --git a/kteatime/cr22-action-tea_anim1.png b/kteatime/cr22-action-tea_anim1.png new file mode 100644 index 0000000000000000000000000000000000000000..e6e025679763a9e8ad75522be6023536ddc8a4f7 GIT binary patch literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fY)RhkEO>_ z%)r1c2*Ql@De)75g4aA<978JRyq&s{_ppM1>wnjk#tf>H4cyF5Fz^UecIPCg^8_z2 zNn>2TU&L&hY{>~h#n62%F&`=qyqvEnFJW4;!ilwDirN;Xk6LyHwLEdhC$j8X*JgZp0W!HI6gV{Rb&5X#aFu{4nXJzf1=);T3K0RUzW Ba)O>_ z%)r1c2*Ql@De)5-7#O)cT^vIy=DeM{m-mo?K+)YrHgL#?0ztdn*Xl>QmJvJ)>K4i~Yx4$4U1_a9ura#+!}o*tEag_2=&kY;SQ{zF%f{01uc?Ra zx1H1emm4qnlvQtfBUO>}`^@*$3Ge4$zx#Jxqr+8$iZyblUKN(C6^RoCg_)-54mqJXR1+0QlV-8@aX9|;oP5C7Mz&St=Ks|muJsyu_ zoyRjGdkPi6i}az$N&FS-JlzbAKx1T!qGoJ?GjNfU?}49kQc+XnH|pb^;1m2eJ;7!m|`QXNJMi+s)>65-dfQ zLRBJY+qe6`xByiE=FHH+mb<{#d17XCTEm1v6BfH}^F}gG;SqYx=1I{X5bHb@Ir(@X zs%nSr_IDCcX?~P*ZUiCQv>KlaMRq@_^tDFsS*88qmMoVKvnHVrmcIu jq#)_ed-Mho!H>ot2L7r?5lrVl00000NkvXXu0mjfIpVk7 literal 0 HcmV?d00001 diff --git a/kteatime/eventsrc b/kteatime/eventsrc new file mode 100644 index 0000000..aae92b2 --- /dev/null +++ b/kteatime/eventsrc @@ -0,0 +1,183 @@ +[!Global!] +IconName=kteatime +Comment=The KDE Tea Cooker +Comment[ar]=طابخ شاي KDE +Comment[be]=Прыгатаўленне гарбаты пры дапамозе KDE +Comment[bg]=Програма за приготвяне на чай +Comment[bn]=কে.ডি.ই.'র চায়ের কেটলি +Comment[br]=Pod te KDE +Comment[bs]=KDE kuhač čaja +Comment[ca]=El cuiner de te de KDE +Comment[cs]=Vařič čaje pro KDE +Comment[cy]=Tegell Te KDE +Comment[da]=KDE's tekoger +Comment[de]=Der KDE-Teekocher +Comment[el]=Εργαλείο φτιαξίματος τσαγιού του KDE +Comment[eo]=La KDE-Teinfuzilo +Comment[es]=Tetera de Kde +Comment[et]=KDE teekann +Comment[eu]=KDE Te-Sukaldea +Comment[fa]=چای‌ساز KDE +Comment[fi]=Teenkeittäjä +Comment[fr]=Le préparateur de thé de KDE +Comment[ga]=Cócaire Tae KDE +Comment[gl]=Quece chás +Comment[he]=מבשל התה של KDE +Comment[hi]=केडीई चाय केतली +Comment[hr]=KDE čajnik +Comment[hu]=KDE teafőző +Comment[is]=KDE te hitarinn +Comment[it]=La teiera di KDE +Comment[ja]=KDE ティーメーカー +Comment[km]=ចង្ក្រាន​តែ KDE +Comment[ko]=KDE 차 끓이기 도구 +Comment[lv]=KDE tējas vārītājs +Comment[mk]=Чајникот на KDE +Comment[ms]=Penjerang Teh KDE +Comment[mt]=Il-Kitla tat-Tè tal-KDE +Comment[nb]=KDEs tekoker +Comment[nds]=De KDE-Teekaker +Comment[ne]=केडीई चिया बनाउने +Comment[nl]=De KDE Theezetter +Comment[nn]=KDE-tekokaren +Comment[pl]=Przyrządzanie herbaty dla KDE +Comment[pt]=Cozinheiro de chá do KDE +Comment[pt_BR]=O cozinheiro do KDE +Comment[ro]=Ceainicul KDE +Comment[ru]=Приготовление чая +Comment[sk]=Varič čaju pre KDE +Comment[sl]=Kuhalnik čaja za KDE +Comment[sr]=KDE Чајник +Comment[sr@Latn]=KDE Čajnik +Comment[sv]=KDE:s tekokare +Comment[ta]=The KDE தேநீர் குக்கர் +Comment[tg]=Пухтани Чойи KDE +Comment[tr]=Çay Pişirici +Comment[uk]=Приготування чаю KDE +Comment[uz]=KDE choy damlovchi +Comment[uz@cyrillic]=KDE чой дамловчи +Comment[wa]=Li fjheu di té di KDE +Comment[zh_CN]=KDE 煮茶器 +Comment[zh_TW]=KDE 煮茶器 + +[tea] +Name=Tea is ready +Name[ar]=الشاي جاهز +Name[be]=Гарбата гатова +Name[bg]=Чаят е готов +Name[bn]=চা প্রস্তুত +Name[br]=Prest eo an te +Name[bs]=Čaj je gotov +Name[ca]=El te està fet +Name[cs]=Čaj je připraven +Name[cy]=Mae'r te yn barod +Name[da]=Teen er klar +Name[de]=Tee ist fertig +Name[el]=Το τσάι είναι έτοιμο +Name[eo]=Teo estas preta +Name[es]=El té está listo +Name[et]=Tee on valmis +Name[eu]=Tea prest dago +Name[fa]=چای آماده است +Name[fi]=Tee on valmista +Name[fr]=Le thé est prêt +Name[ga]=Tá an tae réidh +Name[gl]=O chá está feito +Name[he]= התה מוכן +Name[hi]=चाय तैयार है +Name[hr]=Čaj je spreman +Name[hu]=Kész a tea! +Name[is]=Te hitarinn +Name[it]=Il tè è pronto +Name[ja]=お茶が入りました +Name[km]=តែ​ឆ្អិន​ហើយ +Name[ko]=차가 준비되었습니다 +Name[lv]=Tēja ir gatava +Name[mk]=Чајот е готов +Name[mt]=It-Tè lest +Name[nb]=Tekokeren +Name[nds]=Tee is fardig +Name[ne]=चिया तयार छ +Name[nl]=De thee is klaar +Name[nn]=Teen er klar +Name[pl]=Herbata jest gotowa +Name[pt]=o chá está pronto +Name[pt_BR]=O chá está pronto +Name[ro]=Gata ceaiul +Name[ru]=Чай готов +Name[sk]=Čaj je pripravený +Name[sl]=Čaj je pripravljen +Name[sr]=Чај је готов +Name[sr@Latn]=Čaj je gotov +Name[sv]=Teet är klart +Name[ta]= தேநீர் தயார் +Name[tg]=Чой тайёр шуд +Name[tr]=Çay hazır +Name[uk]=Чай готовий +Name[uz]=Choy tayyor +Name[uz@cyrillic]=Чой тайёр +Name[wa]=Li té est presse +Name[zh_CN]=茶沏好了 +Name[zh_TW]=茶煮好了 +Comment=Tea is ready +Comment[ar]=الشاي جاهز +Comment[be]=Гарбата гатова +Comment[bg]=Чаят е готов +Comment[bn]=অই চা গরমমম!!! +Comment[br]=Prest eo an te +Comment[bs]=Čaj je gotov +Comment[ca]=El te està fet +Comment[cs]=Čaj je připraven +Comment[cy]=Mae'r te yn barod +Comment[da]=Teen er klar +Comment[de]=Tee ist fertig +Comment[el]=Το τσάι είναι έτοιμο +Comment[eo]=Teo estas preta +Comment[es]=El té está listo +Comment[et]=Tee on valmis +Comment[eu]=Tea prest dago +Comment[fa]=چای آماده است +Comment[fi]=Tee on valmista +Comment[fr]=Le thé est prêt +Comment[ga]=Tá an tae réidh +Comment[gl]=O té está feito +Comment[he]=התה מוכן +Comment[hi]=चाय तैयार है +Comment[hr]=Čaj je spreman +Comment[hu]=Kész a tea! +Comment[is]=Teið er tilbúið +Comment[it]=Il tè è pronto +Comment[ja]=お茶が入りました +Comment[km]=តែ​ឆ្អិន​ហើយ +Comment[ko]=차가 준비되었습니다 +Comment[lv]=Tēja ir gatava +Comment[mk]=Чајот е готов +Comment[ms]=Teh sudah siap +Comment[mt]=It-Tè lest +Comment[nb]=Teen er klar +Comment[nds]=Tee is fardig +Comment[ne]=चिया तयार छ +Comment[nl]=De thee is klaar +Comment[nn]=Teen er klar +Comment[pl]=Herbata jest gotowa +Comment[pt]=O chá está pronto +Comment[pt_BR]=O chá está pronto +Comment[ro]=Ceaiul este gata +Comment[ru]=Чай готов +Comment[sk]=Čaj je pripravený +Comment[sl]=Čaj je pripravljen +Comment[sr]=Чај је готов +Comment[sr@Latn]=Čaj je gotov +Comment[sv]=Teet är klart +Comment[ta]= தேநீர் தயார் +Comment[tg]=Чой тайёр шуд +Comment[tr]=Çay hazır +Comment[uk]=Чай готовий +Comment[uz]=Choy tayyor +Comment[uz@cyrillic]=Чой тайёр +Comment[wa]=Li té est presse +Comment[zh_CN]=茶沏好了 +Comment[zh_TW]=茶煮好了 +default_sound=KDE_Notify.wav +default_presentation=1 + diff --git a/kteatime/hi16-app-kteatime.png b/kteatime/hi16-app-kteatime.png new file mode 100644 index 0000000000000000000000000000000000000000..49520354a21d4c9537d351494f6a8ed8f8588bdc GIT binary patch literal 815 zcmV+~1JL}5P)39vSFc`K{QLJWUQkew6Ub#omj?(S7F-&q zPMxaF$jIpS?%g}P&tJaW|Mlya2vGPn5PwHj2M|D54e0FY6Z-J!OX2UIKiD2WeY$J? z+BIjte*MaV%^Ls#gkeC6iKO_8E64Pic}3)Y{Qmp@$*s%G+CofHZ<#pWUwiZ854w7Q z0Ahp%V1}iPfv%BCla8^ftqAX50Y*+fh7&jcFvyECGbkwuGCX+n?)8z)hxe{MaJT;A zi_iCgT7HA{0R#}-fH~#vN2B87tv;{mX5f`$W?&IwWcYB0nc??E28KTm-!lmN+A?s* z_%Ik-#4I@f;A=HBJbnWN5Znt~T&!H2iuw%yoiZ8zy*44#WQ!`E(eOf0|+3v3z(Uim?5_Rf!Yr8%3mlS zVh}q!6GO#}vzK>YdOaB^a1V$d0R#}-1z$gY`NqKT6XYtWH;^?mGcYo8F|hpq!SL+u zw^u-c7f=IU0R#}-1>MU|Zd6t(G_`Q?W#JN61)3uO3<@@&IX@Wwe|^jF`N?I5^~=}% zzW(&v4WRP(K>PvZOn?A_CnR9T;o)Rv2-cKh4N#TlRgnPzBzyN20DVLPf(|iB`002ovPDHLkV1iT%eXIZg literal 0 HcmV?d00001 diff --git a/kteatime/hi32-app-kteatime.png b/kteatime/hi32-app-kteatime.png new file mode 100644 index 0000000000000000000000000000000000000000..78097e049ce0e652d0376ba13147ef089cd36816 GIT binary patch literal 2287 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, and + * Jackson Dunstan + * (and possibly others, as well) + * + * 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. + * + * 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; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include +#include +#include +#include + +#include "toplevel.h" + + +static const char description[] = + I18N_NOOP("KDE utility for making a fine cup of tea"); + +static const char version[] = "v1.1.0"; + +int main(int argc, char *argv[]) +{ + KAboutData aboutData( "kteatime", I18N_NOOP("KTeaTime"), + version, description, KAboutData::License_GPL, + "(c) 1998-1999, Matthias Hoelzer-Kluepfel\n(c) 2002-2003, Martin Willers"); + aboutData.addAuthor("Matthias Hoelzer-Kluepfel",0, "hoelzer@kde.org"); + aboutData.addAuthor("Martin Willers", 0, "willers@xm-arts.de"); + aboutData.addCredit("Daniel Teske", I18N_NOOP("Many patches"), "teske@bigfoot.com"); + KCmdLineArgs::init( argc, argv, &aboutData ); + + KApplication app; + + TopLevel toplevel; + KWin::setSystemTrayWindowFor(toplevel.winId(), 0); + toplevel.show(); + + app.setTopWidget(&toplevel); + KStartupInfo::appStarted(); + + return app.exec(); +} diff --git a/kteatime/tealist.cpp b/kteatime/tealist.cpp new file mode 100644 index 0000000..0f7aa26 --- /dev/null +++ b/kteatime/tealist.cpp @@ -0,0 +1,64 @@ +/* ------------------------------------------------------------- + + tealist.cpp + + (C) 2003 by Daniel Teske (teske@bigfoot.com) + + ------------------------------------------------------------- */ + +#include +#include +#include "tealist.h" + + +QString int2time(int time) +{ + QString str; + if (time / 60) + str.append(i18n("%1 min").arg(time / 60)); + if (time % 60) + if (str.isEmpty()) + str.append(i18n("%1 s").arg(time % 60)); + else + str.append(i18n(" %1 s").arg(time % 60)); + return str; +} + + +TeaListItem::TeaListItem(QListView * parent) + :QListViewItem(parent) +{ + +} + +TeaListItem::TeaListItem(QListView * parent, QListViewItem *after) + :QListViewItem(parent, after) +{ + +} + +TeaListItem::~TeaListItem() +{ +} + +void TeaListItem::setTime(int t) +{ + QListViewItem::setText(1, int2time(t)); + tim = t; +} + +void TeaListItem::setName(const QString &n) +{ + nam = n; + QListViewItem::setText(0, n); +} + +QString TeaListItem::name() +{ + return nam; +} + +int TeaListItem::time() +{ + return tim; +} diff --git a/kteatime/tealist.h b/kteatime/tealist.h new file mode 100644 index 0000000..8d025c8 --- /dev/null +++ b/kteatime/tealist.h @@ -0,0 +1,37 @@ +/* ------------------------------------------------------------- + + tealist.h + + (C) 2003 by Daniel Teske (teske@bigfoot.com) + + ------------------------------------------------------------- */ +#ifndef TEALIST_H +#define TEALIST_H + +#include + +class QListView; +class QListViewItem; + + +class TeaListItem : public QListViewItem +{ + +public: + TeaListItem(QListView *parent); + TeaListItem(QListView *parent, QListViewItem *after); + ~TeaListItem(); + + int time(); + QString name(); + void setTime(int v); + void setName(const QString &n); + +private: + int tim; + QString nam; +}; + + +QString int2time(int t); +#endif diff --git a/kteatime/timeedit.cpp b/kteatime/timeedit.cpp new file mode 100644 index 0000000..c101de0 --- /dev/null +++ b/kteatime/timeedit.cpp @@ -0,0 +1,146 @@ +/* ------------------------------------------------------------- + + timeedit.cpp + + (C) 2003 by Daniel Teske (teske@bigfoot.com) + + ------------------------------------------------------------- */ + +#include +#include +#include + +#include "timeedit.h" +#include "timeedit.moc" + +WrappingSpinBox::WrappingSpinBox(int minValue, int maxValue, int step, QWidget *parent, const char *name) + : QSpinBox(minValue, maxValue, step, parent, name) +{ +} + +WrappingSpinBox::~WrappingSpinBox() +{ +} + + +/** Overloaded QSpinBox method */ +void WrappingSpinBox::stepUp() +{ + bool wrap = false; + if (value() == 59) + wrap = true; + if (wrap) + emit wrapUp(); // must wrap first (to avoid double-step-up) + QSpinBox::stepUp(); +} + +/** Overloaded QSpinBox method */ +void WrappingSpinBox::stepDown() +{ + bool wrap = false; + if (value() == 0) + wrap = true; + QSpinBox::stepDown(); + if (wrap) + emit wrapDown(); +} + + +// ------------------------------------------------------------------------- + + +TimeEdit::TimeEdit(QWidget* parent, const char* name) + : QWidget(parent, name) +{ + layout = new QHBoxLayout(this); + minuteBox = new QSpinBox(0, 300, 1, this); +// minuteBox->setFixedSize(minuteBox->sizeHint()); + + QLabel* min = new QLabel(i18n(" min"), this); + min->setFixedSize(min->sizeHint()); + secondBox = new WrappingSpinBox(0, 59, 1, this); + secondBox->setWrapping(true); +// secondBox->setFixedSize(secondBox->sizeHint()); + + QLabel* sec = new QLabel(i18n(" sec"),this); + sec->setFixedSize(sec->sizeHint()); + + layout->addWidget(minuteBox); + layout->addWidget(min); + + layout->addWidget(secondBox); + layout->addWidget(sec); + + connect(minuteBox, SIGNAL(valueChanged(int)), SLOT(spinBoxValueChanged(int)) ); + connect(secondBox, SIGNAL(valueChanged(int)), SLOT(spinBoxValueChanged(int)) ); + connect(secondBox, SIGNAL(wrapUp()), SLOT(wrappedUp())); + connect(secondBox, SIGNAL(wrapDown()), SLOT(wrappedDown())); +} + +TimeEdit::~TimeEdit() +{ +} + +/** Set to specified number of seconds. */ +void TimeEdit::setValue(int val) +{ + if (val < 0) + return; + + // block signals to avoid receiption of valueChanged() + // between changing of minutes and seconds + secondBox->blockSignals(true); + minuteBox->blockSignals(true); + + secondBox->setValue(val % 60); + minuteBox->setValue(val / 60); + + secondBox->blockSignals(false); + minuteBox->blockSignals(false); + + emit valueChanged(value()); +} + +/** Return current value in seconds. */ +int TimeEdit::value() +{ + return minuteBox->value()*60 + secondBox->value(); +} + +/** SLOT: Handle wrap-up of seconds-box */ +void TimeEdit::wrappedUp() +{ + if (minuteBox->value() != minuteBox->maxValue()) { + minuteBox->stepUp(); + } else { + secondBox->setValue(58); // ugly: must cater for wrapping-first + } +} + +/** SLOT: Handle wrap-down of seconds-box */ +void TimeEdit::wrappedDown() +{ + // well, the "if" should always be true + if (minuteBox->value() != minuteBox->minValue()) { + minuteBox->stepDown(); + } else { + secondBox->setValue(0); + } +} + +/** SLOT: Handle any change in minutes of seconds */ +void TimeEdit::spinBoxValueChanged(int) +{ + if (value() == 0) { + secondBox->stepUp(); // this will give another spinBoxValueChanged() invocation + return; + } + + emit valueChanged(value()); +} + +/** SLOT (overloading QSpinBox): set focus */ +void TimeEdit::setFocus() +{ + minuteBox->setFocus(); +} diff --git a/kteatime/timeedit.h b/kteatime/timeedit.h new file mode 100644 index 0000000..cc03f58 --- /dev/null +++ b/kteatime/timeedit.h @@ -0,0 +1,72 @@ +/* ------------------------------------------------------------- + + timeedit.h + + (C) 2003 by Daniel Teske (teske@bigfoot.com) + + ------------------------------------------------------------- */ +#ifndef TIMEEDIT_H +#define TIMEEDIT_H + +#include +#include + +class QBoxLayout; + + +/** + * @short A spinbox that wraps around after reaching minValue resp. maxValue. + * @author Daniel Teske + */ +class WrappingSpinBox : public QSpinBox +{ + Q_OBJECT + +public: + WrappingSpinBox(int minValue, int maxValue, int step = 1, QWidget *parent=0, const char *name=0); + ~WrappingSpinBox(); + + void stepUp(); + void stepDown(); + +signals: + void wrapUp(); + void wrapDown(); +}; + + +/** + * @short A widget for entering a timeout in minutes and seconds. + * @author Daniel Teske + */ +class TimeEdit : public QWidget +{ + Q_OBJECT + +public: + TimeEdit(QWidget* parent = 0, const char* name = 0); + ~TimeEdit(); + + void setValue(int value); + int value(); + +public slots: + void setFocus(); + +private slots: + void spinBoxValueChanged(int); + void wrappedUp(); + void wrappedDown(); + +signals: + void valueChanged(int); + + +protected: + QSpinBox *minuteBox; + WrappingSpinBox *secondBox; + QBoxLayout* layout; +}; + +#endif + diff --git a/kteatime/toplevel.cpp b/kteatime/toplevel.cpp new file mode 100644 index 0000000..1cf0c96 --- /dev/null +++ b/kteatime/toplevel.cpp @@ -0,0 +1,856 @@ +/* + * This file is part of the KTeaTime application. + * + * Copyright (C) 1998-1999 Matthias Hoelzer-Kluepfel (hoelzer@kde.org) + * Copyright (C) 2002-2003 Martin Willers (willers@xm-arts.de) + * + * 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. + * + * 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; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "tealist.h" +#include "timeedit.h" +#include "toplevel.h" +#include "toplevel.moc" + + +const int TopLevel::DEFAULT_TEA_TIME = 3*60; + + +TopLevel::TopLevel() : KSystemTray() +{ + setBackgroundMode(X11ParentRelative); // what for? + QString n, key; + unsigned int num; + + teas.clear(); + + KConfig *config = kapp->config(); + config->setGroup("Teas"); + + if (config->hasKey("Number")) { + // assuming this is a new-style config + num = config->readNumEntry("Number", 0); + teas.resize(num); + QString tempstr; + for (unsigned int index=1; index<=num; ++index) { + key.sprintf("Tea%d Time", index); + tempstr = config->readEntry(key, NULL); + teas[index-1].time = tempstr.toInt(); + key.sprintf("Tea%d Name", index); + teas[index-1].name = config->readEntry(key, NULL); + // FIXME: check for non-existence! + } + config->setGroup("General"); + } else { + // either old-style config or first start, so provide some sensible defaults + // (which are the same as in old-style kteatime) + tea_struct temp; + temp.name = i18n("Black Tea"); + temp.time = 180; + teas.append(temp); + temp.name = i18n("Earl Grey"); + temp.time = 300; + teas.append(temp); + temp.name = i18n("Fruit Tea"); + temp.time = 480; + teas.append(temp); + + // switch back to old-style default group + config->setGroup(NULL); + // look for old-style "UserTea"-entry and add that one also + if (config->hasKey("UserTea")) { + num = config->readNumEntry("UserTea", 150); + temp.name = i18n("Other Tea"); + temp.time = num; + teas.append(temp); + } + } + current_selected = config->readNumEntry("Tea", 0); + if (current_selected >= teas.count()) + current_selected = 0; + + listempty = (teas.count() == 0); + + + startAct = new KAction(i18n("&Start"), "1rightarrow", 0, + this, SLOT(start()), actionCollection(), "start"); + stopAct = new KAction(i18n("Sto&p"), "cancel", 0, + this, SLOT(stop()), actionCollection(), "stop"); + confAct = new KAction(i18n("&Configure..."), "configure", 0, + this, SLOT(config()), actionCollection(), "configure"); + anonAct = new KAction(i18n("&Anonymous..."), 0, 0, + this, SLOT(anonymous()), actionCollection(), "anonymous"); +// KAction *quitAct = actionCollection()->action("file_quit"); + + // create app menu (displayed on right-click) + menu = new QPopupMenu(); + menu->setCheckable(true); + connect(menu, SIGNAL(activated(int)), this, SLOT(teaSelected(int))); + + // this menu will be displayed when no tea is steeping, and left mouse button is clicked + start_menu = new QPopupMenu(); + start_menu->setCheckable(true); // menu isn't tickable, but this gives some add. spacing + connect(start_menu, SIGNAL(activated(int)), this, SLOT(teaStartSelected(int))); + + rebuildTeaMenus(); // populate tops of menus with tea-entries from config + + KHelpMenu* help = new KHelpMenu(this, KGlobal::instance()->aboutData(), false); + KPopupMenu* helpMnu = help->menu(); + + start_menu->insertSeparator(); + anonAct->plug(start_menu); + + menu->insertSeparator(); + anonAct->plug(menu); + startAct->plug(menu); + stopAct->plug(menu); + menu->insertSeparator(); + confAct->plug(menu); + menu->insertItem(SmallIcon("help"), i18n("&Help"), helpMnu); + menu->insertItem(SmallIcon("exit"), i18n("Quit"), kapp, SLOT(quit())); +// quitAct->plug(menu); // FIXME: this doesn't seem to work with above definition of quitAct? + // (need special 'quit'-method?) + + // this menu will be displayed when a tea is steeping, and left mouse button is clicked + steeping_menu = new QPopupMenu(); +// steeping_menu->insertItem(SmallIcon("cancel"), i18n("Just &Cancel Current"), this, SLOT(stop())); + stopAct->plug(steeping_menu); // FIXME: can provide different text for this incarnation? + +// start_menu->insertSeparator(); +// startAct->plug(start_menu); // FIXME: include "start" entry here for quick access to current tea? + + // read remaining entries from config-file + useNotify = config->readBoolEntry("Beep", true); // "Beep" should really be named "Notify" + usePopup = config->readBoolEntry("Popup", true); + useAction = config->readBoolEntry("UseAction", true); + action = config->readEntry("Action"); + useTrayVis = config->readBoolEntry("UseTrayVis", true); + + mugPixmap = loadIcon("mug"); + teaNotReadyPixmap = loadIcon("tea_not_ready"); + teaAnim1Pixmap = loadIcon("tea_anim1"); + teaAnim2Pixmap = loadIcon("tea_anim2"); + + confdlg = 0L; + anondlg = 0L; + + stop(); // reset timer, disable some menu entries, etc. +} + +/* slot: signal shutDown() from KApplication */ +/* (not currently needed) +void TopLevel::queryExit() +{ + KConfig *config = kapp->config(); +// config->sync(); +} +*/ + + +/** Destructor */ +TopLevel::~TopLevel() +{ + delete menu; + delete steeping_menu; + delete start_menu; + // FIXME: must delete more (like all the QWidgets in config-window)? +} + + +/** Handle mousePressEvent */ +void TopLevel::mousePressEvent(QMouseEvent *event) +{ + if (event->button() == LeftButton) { + if (ready) { + stop(); // reset tooltip and stop animation + } else { + if (running) + steeping_menu->popup(QCursor::pos()); + else + start_menu->popup(QCursor::pos()); + } + } else if (event->button() == RightButton) + menu->popup(QCursor::pos()); +// else if (event->button() == MidButton) // currently unused +} + +/** Handle paintEvent (ie. animate icon) */ +void TopLevel::paintEvent(QPaintEvent *) +{ + QPixmap *pm = &mugPixmap; + + if (running) { + if (useTrayVis) + pm = &teaAnim1Pixmap; // this is 'mugPixmap' plus brown content + else + pm = &teaNotReadyPixmap; // generic "steeping" icon + } else { + // use simple two-frame "animation" + // FIXME: how about using a QMovie instead? (eg. MNG) + if (ready) { + if (firstFrame) + pm = &teaAnim1Pixmap; + else + pm = &teaAnim2Pixmap; + } + } + + // overlay pie chart onto tray icon + QPixmap base(*pm); // make copy of base pixmap + if (useTrayVis && running) { + // extend mask + QBitmap mask = *(base.mask()); + QPainter pm(&mask); + pm.setBrush(Qt::color1); // fill with "foreground-colour" + pm.setPen(Qt::NoPen); // no border needed/wanted + pm.drawPie(0+1, 9+1, 11, 11, 90*16, -360*16); // full circle of small size + pm.drawPie(0, 9, 13, 13, 90*16, percentDone*16); // pie part of big size + pm.end(); + base.setMask(mask); + + // draw pie chart + QPainter px(&base); + px.setPen(QPen(Qt::black, 0)); // black border + px.setBrush(QColor(192, 0, 0)); // red fill colour for small circle + px.drawPie(0+1, 9+1, 11, 11, 90*16, -360*16); + + px.setBrush(QColor(0, 192, 0)); // green fill colour for pie part + px.drawPie(0, 9, 13, 13, 90*16, percentDone*16); + px.end(); + } + // FIXME: over-emphasize first and last few percent? (for better visibility) + // FIXME: some optimizations (eg. store pre-drawn QPixmap with small circle) + // (and use drawEllipse() instead of drawPie() for small circle!) + + // set new tray icon + QPainter p(this); + int x = 1 + (12 - pm->width()/2); + int y = 1 + (12 - pm->height()/2); + p.drawPixmap(x, y, base); + p.end(); +} + +/** Check timer and initiate appropriate action if finished */ +void TopLevel::timerEvent(QTimerEvent *) +{ + if (running) { + // a tea is steeping; must count down + seconds--; + + if (seconds <= 0) { + // timer has run out; notify user + running = false; + ready = true; + enable_menuEntries(); + if (shooting) { + // re-check current tea + shooting = false; + if (!listempty) + menu->setItemChecked(current_selected, true); + } + + QString teaMessage = i18n("The %1 is now ready!").arg(current_name); + // invoke action + if (useNotify) { + KNotifyClient::event(winId(), "tea", teaMessage); + } + if (useAction && (!action.isEmpty())) { + QString cmd = action; + cmd.replace("%t", current_name); + system(QFile::encodeName(cmd)); + } + if (usePopup) + KPassivePopup::message(i18n("The Tea Cooker"), + teaMessage, teaAnim1Pixmap, this, "popup", 0); + // FIXME: does auto-deletion work without timeout? + setToolTip(teaMessage); + repaint(); + } else { + // timer not yet run out; just update tray-icon (if configured)... + if (useTrayVis) { + int pDone = (360 * (startSeconds - seconds)) / startSeconds; + if (pDone - percentDone > 8) { + // update icon not every second, but only if somewhat noticable + percentDone = pDone; + repaint(); + } + } + // ...and Tooltip + QString min = int2time(seconds); + setToolTip(i18n("%1 left for %2").arg(min).arg(current_name)); + } + } else { + // no tea is steeping; just animate icon + if (ready) { + firstFrame = !firstFrame; + repaint(); + } + } +} + +/** update ToolTip */ +void TopLevel::setToolTip(const QString &text, bool force) +{ + // don't update if text hasn't changed + if (lastTip == text) + return; + + // don't remove Tooltip if (probably - can't know for sure?) currently showing + // FIXME: this isn't too nice: currently mouse must stay outside for >1s for update to occur + if (force || !this->hasMouse() || (lastTip == i18n("The Tea Cooker"))) { + lastTip = text; + QToolTip::remove(this); + QToolTip::add(this, text); + } +} + + +/** add all configured teas to both menus */ +void TopLevel::rebuildTeaMenus() { + // first remove all current tea-entries from menus; these can be identified by their positive id + while (menu->idAt(0) >= 0) + menu->removeItemAt(0); // remove from right-click menu + while (start_menu->idAt(0) >= 0) + start_menu->removeItemAt(0); // remove from left-click menu + + // now add new tea-entries to top of menus + int id = 0; + int index = 0; + for (QValueVector::ConstIterator it=teas.begin(); it != teas.end(); ++it) { + // construct string with name and steeping time + QString str = it->name; + str.append(" ("); + str.append(int2time(it->time)); + str.append(")"); + + start_menu->insertItem(str, id, index); // add to left-click menu + menu->insertItem(str, id++, index++); // add to right-click menu + } + + // now select 'current' tea + if (!listempty) + menu->setItemChecked(current_selected, true); // all others aren't checked, + // because we just added them +} + +/* enable/disable menu-entries according to current running-state */ +void TopLevel::enable_menuEntries() +{ + for (int index=0; menu->idAt(index) >= 0; ++index) { + // [en|dis]able all tea-entries (all have positive menu-ids) + menu->setItemEnabled(menu->idAt(index), !running); + } + + startAct->setEnabled(!running); // "start" entry + stopAct->setEnabled(running); // "stop" entry + confAct->setEnabled(!running); // "configuration" entry + anonAct->setEnabled(!running); // "anonymous" entry +} + +/* menu-slot: tea selected in tea-menu */ +void TopLevel::teaSelected(int index) +{ + if (index >=0 && (unsigned int)index < teas.count()) { + // tick new active item in menu + menu->setItemChecked(current_selected, false); + menu->setItemChecked(index, true); + + current_selected = index; + KConfig *config = kapp->config(); + config->setGroup("General"); + config->writeEntry("Tea", current_selected); + } + // all other entries of this menu have custom handlers +} + +/* start_menu-slot: tea selected (and activated!) in tea-menu */ +void TopLevel::teaStartSelected(int index) +{ + if (index >=0 && (unsigned int)index < teas.count()) { + teaSelected(index); + + start(); + } +} + +/* menu-slot: "start" selected in menu */ +void TopLevel::start() +{ + if (listempty && !shooting) { + KMessageBox::error(this, i18n("There is no tea to begin steeping."), i18n("No Tea")); + } else { + if (!shooting) { + current_name = teas[current_selected].name; // remember name of current tea + startSeconds = teas[current_selected].time; // initialize time for current tea + seconds = startSeconds; + percentDone = 0; + } + // else both are already defined by dialog handler + + killTimers(); + startTimer(1000); // 1000ms = 1s (sufficient resolution) + + running = true; + ready = false; + enable_menuEntries(); // disable "start", enable "stop" + + repaint(); + } +} + +/* menu-slot: "stop" selected in menu */ +void TopLevel::stop() +{ + killTimers(); + + running = false; + ready = false; + enable_menuEntries(); // disable "top", enable "start" + if (shooting) { + // re-check current tea + shooting = false; + if (!listempty) + menu->setItemChecked(current_selected, true); + } + + setToolTip(i18n("The Tea Cooker"), true); + repaint(); +} + +/* open dialog to start an 'anonymous' tea */ +void TopLevel::anonymous() +{ + if (!anondlg) { + // FIXME: dialog appears centered on screen, but should be near systray icon! + anondlg = new KDialogBase(KDialogBase::Plain, i18n("Anonymous Tea"), + KDialogBase::Ok | KDialogBase::Cancel, + KDialogBase::Ok, this, "anonymous", true); + QWidget *page = anondlg->plainPage(); + QBoxLayout *top_box = new QVBoxLayout(page); + QBoxLayout *prop_box = new QHBoxLayout(top_box); + QVBox *propleft = new QVBox(page); + prop_box->addWidget(propleft); + QVBox *propright = new QVBox(page); + prop_box->addWidget(propright); + + anon_time = new TimeEdit(propright); + anon_time->setFixedHeight(anon_time->sizeHint().height()); + anon_time->setValue(DEFAULT_TEA_TIME); + QLabel *l = new QLabel(anon_time, i18n("Tea time:"), propleft); + l->setFixedSize(l->sizeHint()); + + top_box->addStretch(); + + anon_time->setFocus(); + } else { + // FIXME: do what here? + // reset time to DEFAULT_TEA_TIME? + // (why? - better use LRU, and save that to config) + } + + if (anondlg->exec() == QDialog::Accepted) { + shooting = true; + if (!listempty) + menu->setItemChecked(current_selected, false); // no item is to be checked + current_name = i18n("tea"); // some generic tea name + startSeconds = anon_time->value(); + seconds = startSeconds; + percentDone = 0; + start(); + } +} + + + + +// +// Configure-window handling +// + + +/* enable/disable buttons for editing listbox */ +void TopLevel::enable_controls() { + bool haveSelection = (listbox->currentItem() != 0); + bool amFirst = (listbox->currentItem() == listbox->firstChild()); + bool amLast = true; + if (haveSelection) + amLast = (!listbox->currentItem()->itemBelow()); // itemBelow() returns returns NULL if last + + btn_del->setEnabled(haveSelection); + btn_up->setEnabled(haveSelection && !amFirst); + btn_down->setEnabled(haveSelection && !amLast); + if (haveSelection) + listbox->ensureItemVisible(listbox->currentItem()); +} + +/* disable right side of configure-window */ +void TopLevel::disable_properties() { + editgroup->setEnabled(false); +} + +/* enable right side of configure-window */ +void TopLevel::enable_properties() { + editgroup->setEnabled(true); +} + +/* config-slot: item in tea-list selected */ +void TopLevel::listBoxItemSelected() { + if (listbox->currentItem()) { + // item selected, display its properties on right side + nameEdit->setText(static_cast(listbox->currentItem())->name()); + timeEdit->setValue(static_cast(listbox->currentItem())->time()); + enable_controls(); + } +} + +/* config-slot: name of a tea edited */ +void TopLevel::nameEditTextChanged(const QString& newText) { + /* this method also gets called when the last TeaListItem has been deleted + * (to clear the name edit widget), so check for empty listbox */ + if (listbox->currentItem() != NULL) { + listbox->blockSignals(TRUE); + static_cast(listbox->currentItem())->setName(newText); + listbox->blockSignals(FALSE); + } +} + +/* config-slot: time for a tea changed */ +void TopLevel::spinBoxValueChanged(int v) { + /* this method also gets called when the last TeaListItem has been deleted + * (to clear the time edit widget), so check for empty listbox */ + if (listbox->currentItem() != NULL) + static_cast(listbox->currentItem())->setTime(v); +} + +/* config-slot: "new" button clicked */ +void TopLevel::newButtonClicked() { + TeaListItem* item = new TeaListItem(listbox, listbox->currentItem()); + listbox->setCurrentItem(item); + + nameEdit->setText(i18n("New Tea")); + timeEdit->setValue(DEFAULT_TEA_TIME); + + nameEdit->setFocus(); + + if (listbox->childCount() == 1) { + enable_properties(); + current_item = item; + } + enable_controls(); +} + +/* config-slot: "delete" button clicked */ +void TopLevel::delButtonClicked() { + if (listbox->currentItem()) { + TeaListItem *curritem = static_cast(listbox->currentItem()); + + if (listbox->childCount() == 1) { + // no childs left after we've deleted this item + listbox->setSelected(listbox->currentItem(), false); + nameEdit->setText(""); + timeEdit->setValue(0); + disable_properties(); + } else { + // select new current item + if (listbox->firstChild() != curritem) + listbox->setSelected(listbox->firstChild(), true); + else + listbox->setSelected(listbox->firstChild()->nextSibling(), true); + } + + delete curritem; + enable_controls(); + } +} + +/* config-slot: "up" button clicked */ +void TopLevel::upButtonClicked() { + QListViewItem* item = listbox->currentItem(); + + if (item && item->itemAbove()) + item->itemAbove()->moveItem(item); + + enable_controls(); +} + +/* config-slot: "down" button clicked */ +void TopLevel::downButtonClicked() { + QListViewItem* item = listbox->currentItem(); + + if (item && item->itemBelow()) + item->moveItem(item->itemBelow()); + + enable_controls(); +} + +/* config-slot: checkbox next to "action" field toggled*/ +void TopLevel::actionEnableToggled(bool on) +{ + actionEdit->setEnabled(on); +} + +/* config-slot: "help" button clicked */ +void TopLevel::help() +{ + kapp->invokeHelp(); +} + +/* config-slot: "Configure Events..." button clicked */ +void TopLevel::confButtonClicked() +{ + KNotifyDialog::configure(btn_conf); +} + + +void TopLevel::config() +{ + if (!confdlg) { + confdlg = new KDialogBase(KDialogBase::Plain, i18n("Configure Tea Cooker"), + KDialogBase::Ok|KDialogBase::Cancel|KDialogBase::Help, + KDialogBase::Ok, this, "config", true); + QWidget *page = confdlg->plainPage(); + // FIXME: enforce sensible initial/default size of dialog + // FIXME: modal is ok, but can avoid always-on-top? + + QBoxLayout *top_box = new QVBoxLayout(page, 0, 8); // whole config-stuff + QBoxLayout *box = new QHBoxLayout(top_box); // list + properties + + /* left side - tea list and list-modifying buttons */ + QBoxLayout *leftside = new QVBoxLayout(box); + QGroupBox *listgroup = new QGroupBox(2, Vertical, i18n("Tea List"), page); + leftside->addWidget(listgroup, 0, 0); + + listbox = new QListView(listgroup, "listBox"); + listbox->addColumn(i18n("Name")); + listbox->header()->setClickEnabled(false, listbox->header()->count()-1); + listbox->addColumn(i18n("Time")); + listbox->header()->setClickEnabled(false, listbox->header()->count()-1); + listbox->setSorting(-1); + connect(listbox, SIGNAL(selectionChanged()), SLOT(listBoxItemSelected())); + + // now buttons for editing the tea-list + QWidget *listgroup_widget = new QWidget(listgroup); + QBoxLayout *hbox = new QHBoxLayout(listgroup_widget); + hbox->setSpacing(4); + btn_new = new QPushButton(QString::null, listgroup_widget); + QToolTip::add(btn_new, i18n("New")); + btn_new->setPixmap(SmallIcon("filenew")); + btn_new->setMinimumSize(btn_new->sizeHint() * 1.2); + connect(btn_new, SIGNAL(clicked()), SLOT(newButtonClicked())); + hbox->addWidget(btn_new); + + btn_del = new QPushButton(QString::null, listgroup_widget); + QToolTip::add(btn_del, i18n("Delete")); + btn_del->setIconSet(SmallIconSet("editdelete")); + btn_del->setMinimumSize(btn_new->sizeHint() * 1.2); + connect(btn_del, SIGNAL(clicked()), SLOT(delButtonClicked())); + hbox->addWidget(btn_del); + + btn_up = new QPushButton(QString::null, listgroup_widget); + QToolTip::add(btn_up, i18n("Up")); + btn_up->setIconSet(SmallIconSet("up")); + btn_up->setMinimumSize(btn_up->sizeHint() * 1.2); + connect(btn_up, SIGNAL(clicked()), SLOT(upButtonClicked())); + hbox->addWidget(btn_up); + + btn_down = new QPushButton(QString::null, listgroup_widget); + QToolTip::add(btn_down, i18n("Down")); + btn_down->setIconSet(SmallIconSet("down")); + btn_down->setMinimumSize(btn_down->sizeHint() * 1.2); + connect(btn_down, SIGNAL(clicked()), SLOT(downButtonClicked())); + hbox->addWidget(btn_down); + + hbox->addStretch(10); + + /* right side - tea properties */ + QBoxLayout *rightside = new QVBoxLayout(box); + editgroup = new QGroupBox(2, Vertical, i18n("Tea Properties"), page); + rightside->addWidget(editgroup, 0, 0); + QHBox *propbox = new QHBox(editgroup); + + // FIXME: - must enforce correct vertical alignment of each label-editor pair + // (better use one HBox for each label-editor pair?) + QVBox *propleft = new QVBox(propbox); + QVBox *propright = new QVBox(propbox); + nameEdit = new QLineEdit(propright); + nameEdit->setFixedHeight(nameEdit->sizeHint().height()); + nameEdit->setAlignment(QLineEdit::AlignLeft); + QLabel *l = new QLabel(nameEdit, i18n("Name:"), propleft); + l->setFixedSize(l->sizeHint()); + connect(nameEdit, SIGNAL(textChanged(const QString&)), SLOT(nameEditTextChanged(const QString&)) ); + + timeEdit = new TimeEdit(propright); + timeEdit->setFixedHeight(timeEdit->sizeHint().height()); + l = new QLabel(timeEdit, i18n("Tea time:"), propleft); + l->setFixedSize(l->sizeHint()); + connect(timeEdit, SIGNAL(valueChanged(int)), SLOT(spinBoxValueChanged(int))); + + /* bottom - timeout actions */ + QGroupBox *actiongroup = new QGroupBox(4, Vertical, i18n("Action"), page); + top_box->addWidget(actiongroup, 0, 0); + + QWidget *actionconf_widget = new QWidget(actiongroup); + QBoxLayout *actionconf_hbox = new QHBoxLayout(actionconf_widget); + btn_conf = new QPushButton(i18n("Configure Events..."), actionconf_widget); + actionconf_hbox->addWidget(btn_conf); + connect(btn_conf, SIGNAL(clicked()), SLOT(confButtonClicked())); + actionconf_hbox->addStretch(10); + + eventEnable = new QCheckBox(i18n("Event"), actiongroup); + popupEnable = new QCheckBox(i18n("Popup"), actiongroup); + eventEnable->setFixedHeight(eventEnable->sizeHint().height()); + popupEnable->setFixedHeight(popupEnable->sizeHint().height()); + + QHBox *actionbox = new QHBox(actiongroup); + actionEnable = new QCheckBox(actionbox); +// FIXME: add text to this line: +// QLabel *actionLabel = new QLabel(i18n("Execute: "), actiongroup); + actionEdit = new QLineEdit(actionbox); + actionEdit->setFixedHeight(actionEdit->sizeHint().height()); + QToolTip::add(actionEdit, i18n("Enter command here; '%t' will be replaced with name of steeping tea")); + connect(actionEnable, SIGNAL(toggled(bool)), SLOT(actionEnableToggled(bool))); + rightside->addStretch(); + + // single checkbox + visEnable = new QCheckBox(i18n("Visualize progress in icon tray"), page); + top_box->addWidget(visEnable, 0, 0); + + + // let listbox claim all remaining vertical space + top_box->setStretchFactor(box, 10); + + connect(confdlg, SIGNAL(helpClicked()), SLOT(help())); + } + + // now add all defined teas (and their times) to the listview + // this is done backwards because QListViewItems are inserted at the top + listbox->clear(); + for (int i=teas.count()-1; i>=0; i--) { + TeaListItem *item = new TeaListItem(listbox); + item->setName(teas[i].name); + item->setTime(teas[i].time); + if ((unsigned int)i == current_selected) + current_item = item; + } + + // select first entry in listbox; if no entries present then disable right side + if (listempty) { + enable_controls(); + disable_properties(); + nameEdit->setText(""); + timeEdit->setValue(1); + } else { + listbox->setSelected(listbox->firstChild(), true); + } + + // ------------------------- + + eventEnable->setChecked(useNotify); + popupEnable->setChecked(usePopup); + actionEnable->setChecked(useAction); + actionEdit->setText(action); + actionEdit->setEnabled(useAction); + visEnable->setChecked(useTrayVis); + + if (confdlg->exec() == QDialog::Accepted) + { + // activate new settings + useNotify = eventEnable->isChecked(); + usePopup = popupEnable->isChecked(); + useAction = actionEnable->isChecked(); + action = actionEdit->text(); + useTrayVis = visEnable->isChecked(); + + teas.clear(); + + // Copy over teas and times from the QListView + int i = 0; + teas.clear(); + teas.resize(listbox->childCount()); + for (QListViewItemIterator it(listbox); it.current() != 0; ++it) { + teas[i].name = static_cast(it.current())->name(); + teas[i].time = static_cast(it.current())->time(); + if (it.current() == current_item) + current_selected = i; + i++; + } + + listempty = (teas.count() == 0); + + rebuildTeaMenus(); + + // and store to config + KConfig *config = kapp->config(); + // remove old-style entries from default-group (if present) + if (config->hasKey("UserTea")) + config->deleteEntry("UserTea"); + + config->setGroup("General"); + config->writeEntry("Beep", useNotify); + config->writeEntry("Popup", usePopup); + config->writeEntry("UseAction", useAction); + config->writeEntry("Action", action); + config->writeEntry("Tea", current_selected); + config->writeEntry("UseTrayVis", useTrayVis); + // first get rid of all previous tea-entries from config, then write anew + config->deleteGroup("Teas", true); // deep remove of whole group + config->setGroup("Teas"); + config->writeEntry("Number", teas.count()); + QString key; + int index = 1; + for (QValueVector::ConstIterator it = teas.begin(); it != teas.end(); ++it) { + key.sprintf("Tea%d Name", index); + config->writeEntry(key, it->name); + key.sprintf("Tea%d Time", index); + config->writeEntry(key, it->time); + index++; + } + + config->sync(); + } +} diff --git a/kteatime/toplevel.h b/kteatime/toplevel.h new file mode 100644 index 0000000..a172189 --- /dev/null +++ b/kteatime/toplevel.h @@ -0,0 +1,124 @@ +/* + * This file is part of the KTeaTime application. + * + * Copyright (C) 1998-1999 Matthias Hoelzer-Kluepfel (hoelzer@kde.org) + * Copyright (C) 2002-2003 Martin Willers (willers@xm-arts.de) + * + * 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. + * + * 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; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ + +#ifndef TOPLEVEL_H +#define TOPLEVEL_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class KAction; +class KDialogBase; +class QCheckBox; +class TimeEdit; + +class TopLevel : public KSystemTray +{ + Q_OBJECT + +public: + + TopLevel(); + ~TopLevel(); + +protected: + + void paintEvent(QPaintEvent *); + void mousePressEvent(QMouseEvent *); + void timerEvent(QTimerEvent *); + +private slots: + + void teaSelected(int index); + void teaStartSelected(int index); + void start(); + void stop(); + void config(); + void help(); + void anonymous(); + void setToolTip(const QString &text, bool force=false); + void rebuildTeaMenus(); + + void listBoxItemSelected(); + void nameEditTextChanged(const QString& newText); + void spinBoxValueChanged(int v); + void newButtonClicked(); + void delButtonClicked(); + void upButtonClicked(); + void downButtonClicked(); + void confButtonClicked(); + void enable_menuEntries(); + void disable_properties(); + void enable_properties(); + void enable_controls(); + void actionEnableToggled(bool on); + +private: + + static const int DEFAULT_TEA_TIME; + + struct tea_struct { + QString name; + int time; + }; + QValueVector teas; // list of tea-names and times + + bool running, ready, firstFrame, listempty; + int seconds; // variable for counting down seconds + int startSeconds; // steeping time for current tea + int percentDone; // ok, this isn't really "per 100", but "per 360" + + unsigned current_selected; // index of currently +selected+ tea in menu + QListViewItem *current_item; // ptr to currently +selected+ tea in ListView + QString current_name; // name of currently +running+ tea (if any) + bool shooting; // anonymous tea currently steeping? + + bool useNotify, usePopup, useAction; + QString action; + bool useTrayVis; // visualize progress in tray icon + + QPixmap mugPixmap, teaNotReadyPixmap, teaAnim1Pixmap, teaAnim2Pixmap; + + KAction *startAct, *stopAct, *confAct, *anonAct; + QPopupMenu *menu, *steeping_menu, *start_menu; + QListView *listbox; + QLineEdit *nameEdit, *actionEdit; + TimeEdit *timeEdit; + QGroupBox *editgroup; + QPushButton *btn_new, *btn_del, *btn_up, *btn_down, *btn_conf; + + QString lastTip; + KDialogBase *anondlg, *confdlg; + TimeEdit *anon_time; + QCheckBox *eventEnable, *popupEnable, *actionEnable, *visEnable; +}; + +#endif diff --git a/ktux/AUTHORS b/ktux/AUTHORS new file mode 100644 index 0000000..394a242 --- /dev/null +++ b/ktux/AUTHORS @@ -0,0 +1,2 @@ +Code: Martin Jones +Graphics: Carlos Rego diff --git a/ktux/Makefile.am b/ktux/Makefile.am new file mode 100644 index 0000000..8a32552 --- /dev/null +++ b/ktux/Makefile.am @@ -0,0 +1,38 @@ +## Makefile.am for ktux + +# this has all of the subdirectories that make will recurse into. if +# there are none, comment this out +SUBDIRS = sprites + +# this is the program that gets installed. it's name is used for all +# of the other Makefile.am variables +bin_PROGRAMS = ktux + +# set the include path for X, qt and KDE +INCLUDES = $(all_includes) + +# the library search path. +ktux_LDFLAGS = $(all_libraries) $(KDE_RPATH) + +# the libraries to link against. +ktux_LDADD = $(LIB_KDEUI) -lkscreensaver + +# which sources should be compiled for ktux +ktux_SOURCES = spriteanim.cpp spritemisc.cpp spritepm.cpp sprite.cpp + +# these are the headers for your project +noinst_HEADERS = sprite.h spriteanim.h spritemisc.h spritepm.h + +# let automoc handle all of the meta source files (moc) +METASOURCES = AUTO + +# make messages.po. Move this one to ../po/ and "make merge" in po +# the -x is for skipping messages already translated in kdelibs +messages: + $(XGETTEXT) *.cpp -o $(podir)/ktux.pot + +KDE_ICON = ktux + +appsdir = $(kde_appsdir)/System/ScreenSavers +apps_DATA = ktux.desktop + diff --git a/ktux/hi16-app-ktux.png b/ktux/hi16-app-ktux.png new file mode 100644 index 0000000000000000000000000000000000000000..e21db29382fcca106ba25b980ffcd5d99d3fb5b6 GIT binary patch literal 628 zcmV-)0*n2LP)#TBzwS=M?}uCV200 z&e68*X$jtYmPPmH^yVFW{}T7QD-Oy3kzfZ2X_`iI-E`Dl5tF28+LvI1VTBOb?RHe> zUt`7V{RDu@okR8#K7HhRKOxI9k|ZI|bDjZyG#X)MIOq8A?H8A?U%=Z-E}rkXcy$KZ zd*BE4=if}HQ?}bJo6Uyxdi_^>S(a9orKzfU@6Gha%+_XRW_n}ZdsEeTuP%hE)|RP|nq8$<7#s+yS%u;c&HcjB?BSS%J4MRCe_kH(|F@xS91FiGI{ zSu7CL0000?dQ@0+Q*UN;cVTj6004N}bI?%M^vq36PxVbq&rHr%Fwry8Gg7d$)Hg8I zH!xI4F3Kz}sdUJ#EH24R)=MqcODQeL&nwYO&d&t^^h*+e^xec>0000pdQ@0+Q)y>z zVRUtJWdHzp+Do!XHaAN$wM?-{Oi4^JGPO)Hw=}Udv@o?WPBk($umk{=eh7YIH|^yB O0000L z0)}`jWbxR+V0kdqTR>#40|IOCaK(n)5S0|&=0Ic!;SKNLnxW@GkkBrn1YQT}J>Th% zE8Q&zwi5ge@^h3EqB57>Y~2BxCnT=-9{-zyWJin^PdpFvaHPbDF~?4 zWvo;xDS#wN2*Z#hNix3=t{?IHxlBnZl~PKz+ieA?YPG5WRjbv^Gi_2zRjbu9^V;pU zdB&I{8W%WfcXt=h^8g6L5CG5fa2$s)3~9Am2qDY@*L7K3T*UJ{q9`)!(mvMK)`l>@ z97CWsIXTJf>@3H}$9SGcxm@Pp;DDW-9gdEUn3|emYHEu4`FZmBJOEFgJYjo#o0*vz z%H=YJLV++0xpe6gdwYAleEAY!>s$&{t5pCVJa~X*Su`3Agb=u{%cd)`v*(xKxevhO zcNKylz;#_#S64}rgh!7a0nltVhcM5|T?HVeG~ks=h5M617BoEqJokr4+_-ULEZ&&} zq?CkVNF2x5wmlj=ZO$}ACp{&?cLYH|rBcE3JWXN<&!nM_Tz%DQHGt9J{qf$0&$r7z zac`q1Kha5#1aN<{2Oh^UNs`d_XZ-i^P6;%dO{A14rI1o$+qPjjv~%FzhK~?}_4Rdx z5W^(qm&`iLvaoGCOo2zag^j0PoY}+=zEz2_B^_bT{ z4<9}xj$^YZ2m&0(!Sg(}8gVc6^v(2w#1DD(}_HaP@n*`b`!*I$^6J zxN_wRckbNb;NXD6!$aP_eM`67rQ7ZD^yyQ8++bP^)oWdnbvkakq8AUTGlp9|@V@L@ z4S{Xjc%Da+BrGf}Fv4=?V~m+pTwGklvaI2nkgfy$0tCZ71JG$Wgg34isA{#!%E}5# zDPFvIL9tlm=FOYjy?d8Jp+NoDKluI6%N)Oc&++T`{37$*zI~f=xy+k4Z+P|U6|Gha z+qRjTo8#KGYdm}Qtj2kIL8(+y`}_MijzbhhX6I=&;55C`QJo|SQ4|@av>H(qjjV?G z5%_9sbfE$aNg)J62$q(XOe@wVrDS<|S#>&{+*t%nA5ZUI2tlXQ z0Wbhs6>U1TI-L%#>(Xd6GDO2LG(OHGFqpGK2-8YCoerf^Nu`fMOYi$WdUwrc)3kJb z9NO=BOjWB@HPE0k&j(-2^y}E*yb-=WtN@T}Hk*3#2jBP8Wqi<&R%4v6i~KQBySuyQ zX4L!Mc`X023)1#6XL_bY7g6C~^!2}e9{UHme|a~Vz$tS8002ySR9JLVZ)S9NVRB^v z0C?JS&`{R&%uP&B^-WCAOwLv?(KFIBQn0ktH!#&VFjPn`$}BFabjYnNF3C*ROD)z* zDJ{s)E742N&jkSVOA>(e-Nar1001+3R9JLVX=iR>bairN004N}Gc+_$Gqf-@FiSNw tG&M=GNJ&dJNK7$GGBmR=GBY002ovPDHLkV1lSzelGw3 literal 0 HcmV?d00001 diff --git a/ktux/ktux.desktop b/ktux/ktux.desktop new file mode 100644 index 0000000..9895467 --- /dev/null +++ b/ktux/ktux.desktop @@ -0,0 +1,212 @@ +[Desktop Entry] +Name=KTux +Name[af]=Ktux +Name[bg]=Тъкс +Name[bn]=কে-টাক্স +Name[eo]=Tuĉjo +Name[hi]=के-टक्स +Name[ne]=केडीई टक्स +Name[ta]= KTux +Name[tg]=KТукс +Name[th]=ตุ๊กซ์ +Exec=ktux %i %m -caption "%c" +Icon=ktux +Type=Application +Actions=Setup;InWindow;Root; +X-KDE-Category=Flying Things +Terminal=false + +[Desktop Action Setup] +Exec=ktux -setup +Name=Setup... +Name[af]=Opstelling... +Name[ar]=اعداد... +Name[az]=Qurulum... +Name[be]=Настаўленні... +Name[bg]=Настройване... +Name[bn]=প্রস্তুতি... +Name[br]=Kefluniadur ... +Name[bs]=Postavke... +Name[ca]=Configuració... +Name[cs]=Nastavení... +Name[cy]=Gosod ... +Name[da]=Opsætning... +Name[de]=Einrichtung ... +Name[el]=Ρύθμιση... +Name[eo]=Agordo... +Name[es]=Configuración... +Name[et]=Seadistused... +Name[eu]=Konfigurazioa... +Name[fa]=برپایی... +Name[fi]=Asetukset... +Name[fr]=Configuration... +Name[ga]=Socraigh... +Name[gl]=Configuración... +Name[he]=הגדרות... +Name[hi]=सेटअप... +Name[hr]=Postavke... +Name[hu]=Beállítás... +Name[id]=Aturan... +Name[is]=Stillingar... +Name[it]=Impostazioni... +Name[ja]=セットアップ... +Name[km]=រៀបចំ... +Name[ko]=설정... +Name[lt]=Nustatymas... +Name[lv]=Uzstādījumi... +Name[mk]=Поставување... +Name[ms]=Tetapan... +Name[nb]=Oppsett … +Name[nds]=Instellen... +Name[ne]=सेटअप... +Name[nl]=Instellingen... +Name[nn]=Oppsett … +Name[pa]=ਸੈੱਟਅੱਪ... +Name[pl]=Ustawienia... +Name[pt]=Configurar... +Name[pt_BR]=Configurar... +Name[ro]=Setări... +Name[ru]=Настройка... +Name[rw]=Iboneza... +Name[sk]=Nastavenie... +Name[sl]=Nastavitve ... +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[wa]=Apontyî... +Name[xh]=Iyacwangciswa... +Name[zh_CN]=设置... +Name[zh_TW]=設定... +Name[zu]=Iyalungiselela... +Icon=kscreensaver + +[Desktop Action InWindow] +Exec=ktux -window-id %w +Name=Display in Specified Window +Name[be]=Паказваць у зададзеным вакне +Name[bg]=Стартиране в избран прозорец +Name[bn]=উল্লেখকৃত উইন্ডোতে দেখাও +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 vorgegebenem Fenster anzeigen +Name[el]=Εμφάνιση σε προκαθορισμένο παράθυρο +Name[eo]=Montru en indikita fenestro +Name[es]=Mostrar en la ventana especificada +Name[et]=Määratud aknas näitamine +Name[eu]=Zehaztutako lehioan erakutsi +Name[fa]=نمایش در پنجرۀ مشخص‌شده +Name[fi]=Näytä määrätyssä ikkunassa +Name[fr]=Affichage dans la fenêtre indiquée +Name[ga]=Taispeáin san Fhuinneog Sonraithe +Name[gl]=Mostrar na fiestra indicada +Name[he]=הצג בחלון המצויין +Name[hr]=Prikazianje u određenom prozoru +Name[hu]=Megjelenítés a megadott ablakban +Name[id]=Ditampilkan di Window Khusus +Name[is]=Birta í ákveðnum glugga +Name[it]=Mostra nella finestra specificata +Name[ja]=指定ウィンドウで表示 +Name[km]=បង្ហាញ​ក្នុង​បង្អួច​ជាក់លាក់ +Name[ko]=지정한 창에 표시하기 +Name[lt]=Rodyti nurodytame lange +Name[lv]=Rādīt norādītajā logā +Name[mk]=Приказ во зададениот прозорец +Name[mt]=Uri fil-window speċifikata +Name[nb]=Vis i det oppgitte vinduet +Name[nds]=In't angeven Finster wiesen +Name[ne]=निर्दिष्ट सञ्झ्यालमा प्रदर्शन गर्नुहोस् +Name[nl]=Weergeven in een gedefinieerd venster +Name[nn]=Vis i oppgjeve vindauge +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 zadatom prozoru +Name[sv]=Visa i angivet fönster +Name[ta]= குறிப்பிட்ட சாளர காட்சியை காட்டு +Name[tg]=Дар Тирезаи Муайяншуда Намоиш додан +Name[tr]=Belirtilen Pencerede Göster +Name[uk]=Відобразити у вказаному вікні +Name[wa]=Håyner dins l' purnea specifyî +Name[zh_CN]=在指定的窗口中显示 +Name[zh_TW]=在指定的視窗中顯示 +NoDisplay=true + +[Desktop Action Root] +Exec=ktux -root +Name=Display in Root Window +Name[be]=Паказваць у фанавым вакне +Name[bg]=Стартиране в главния прозорец +Name[bn]=রুট উইন্ডোতে দেখাও +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]=Im Hintergrundfenster anzeigen +Name[el]=Προβολή στο βασικό παράθυρο +Name[eo]=Montru en radika fenestro +Name[es]=Mostrar en la ventana raíz +Name[et]=Juuraknas näitamine +Name[eu]=Lehio nagusian erakutsi +Name[fa]=نمایش در پنجرۀ ریشه +Name[fi]=Näytä juuri-ikkunassa +Name[fr]=Affichage dans la fenêtre principale +Name[ga]=Taispeáin sa bhFréamhfhuinneog +Name[gl]=Mostrar na fiestra raiz +Name[he]=הצג בחלון השורש +Name[hr]=Prikazivanje u korijenskom prozoru +Name[hu]=Megjelenítés a gyökérablakban +Name[id]=Ditampilkan di Root Window +Name[is]=Birta í rótarglugga +Name[it]=Mostra sullo sfondo +Name[ja]=ルートウィンドウで表示 +Name[km]=បង្ហាញ​ក្នុង​បង្អួច Root +Name[ko]=주 창에 표시하기 +Name[lt]=Rodyti root lange +Name[lv]=Rādīt galvenajā logā +Name[mk]=Приказ во коренскиот прозорец +Name[mt]=Uri fil-window ewlenija +Name[nb]=Vis i rotvinduet +Name[nds]=In't Hööftfinster wiesen +Name[ne]=मूल सञ्झ्यालमा प्रदर्शन गर्नुहोस् +Name[nl]=Weergeven in hoofdvenster +Name[nn]=Vis i rotvindauget +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]=Прикажи у кореном прозору +Name[sr@Latn]=Prikaži u korenom prozoru +Name[sv]=Visa i rotfönster +Name[ta]=மூல சாளரத்தில் காட்டு +Name[tg]=Дар Тирезаи Решавӣ Намоиш додан +Name[tr]=Kök Pencerede Göster +Name[uk]=Відобразити на тлі екрана +Name[wa]=Håyner e purnea raecene (li fond do scribanne) +Name[zh_CN]=在根窗口中显示 +Name[zh_TW]=在根視窗中顯示 +NoDisplay=true +X-DCOP-ServiceType=Multi diff --git a/ktux/sprite.cpp b/ktux/sprite.cpp new file mode 100644 index 0000000..205c754 --- /dev/null +++ b/ktux/sprite.cpp @@ -0,0 +1,254 @@ +//----------------------------------------------------------------------------- +// +// KTux - QCanvas based screensaver +// +// Copyright (c) Martin R. Jones 1999 +// + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "spritepm.h" +#include "spritemisc.h" +#include "sprite.h" +#include "sprite.moc" + + +// libkscreensaver interface +extern "C" +{ + KDE_EXPORT const char *kss_applicationName = "ktux"; + KDE_EXPORT const char *kss_description = I18N_NOOP( "Tux Screen Saver" ); + KDE_EXPORT const char *kss_version = "1.0.0"; + + KDE_EXPORT KScreenSaver *kss_create( WId id ) + { + return new KSpriteSaver( id ); + } + + KDE_EXPORT QDialog *kss_setup() + { + return new KSpriteSetup(); + } +} + +//----------------------------------------------------------------------------- + +KSpriteSetup::KSpriteSetup( QWidget *parent, const char *name ) + : QDialog( parent, name, TRUE ) +{ + KGlobal::locale()->insertCatalogue("ktux"); + saver = 0; + + readSettings(); + + setCaption(i18n("Setup KTux") ); + + QVBoxLayout *tl = new QVBoxLayout(this, 10, 10); + QHBoxLayout *tl1 = new QHBoxLayout; + tl->addLayout(tl1); + QVBoxLayout *tl11 = new QVBoxLayout(5); + tl1->addLayout(tl11); + + QLabel *label = new QLabel( i18n("Speed:"), this ); + label->setMinimumSize(label->sizeHint()); + tl11->addStretch(1); + tl11->addWidget(label); + + QSlider *sb = new QSlider(0, 100, 10, speed, QSlider::Horizontal, this ); + tl11->addWidget(sb); + connect( sb, SIGNAL( valueChanged( int ) ), SLOT( slotSpeed( int ) ) ); + + preview = new QWidget( this ); + preview->setFixedSize( 220, 170 ); + preview->setBackgroundColor( black ); + preview->show(); // otherwise saver does not get correct size + saver = new KSpriteSaver( preview->winId() ); + tl1->addWidget(preview); + + KButtonBox *bbox = new KButtonBox(this); + QButton *button = bbox->addButton( i18n("About")); + connect( button, SIGNAL( clicked() ), SLOT(slotAbout() ) ); + bbox->addStretch(1); + + button = bbox->addButton( KStdGuiItem::ok()); + connect( button, SIGNAL( clicked() ), SLOT( slotOkPressed() ) ); + + button = bbox->addButton(KStdGuiItem::cancel()); + connect( button, SIGNAL( clicked() ), SLOT( reject() ) ); + bbox->layout(); + tl->addWidget(bbox); + + tl->freeze(); +} + +KSpriteSetup::~KSpriteSetup() +{ + delete saver; +} + +// read settings from config file +void KSpriteSetup::readSettings() +{ + KConfig *config = KGlobal::config(); + config->setGroup( "Settings" ); + + speed = config->readNumEntry( "Speed", 50 ); + if (speed > 100) + speed = 100; + else if (speed < 0) + speed = 0; +} + +void KSpriteSetup::slotSpeed(int s) +{ + speed = s; + if (saver) + saver->setSpeed(speed); +} + +// Ok pressed - save settings and exit +void KSpriteSetup::slotOkPressed() +{ + KConfig *config = KGlobal::config(); + config->setGroup("Settings"); + config->writeEntry("Speed", speed); + config->sync(); + accept(); +} + +void KSpriteSetup::slotAbout() +{ + QMessageBox::message(i18n("About KTux"), + i18n("KTux Version 1.0\n\nWritten by Martin R. Jones 1999\nmjones@kde.org"), + i18n("OK")); +} + + +//----------------------------------------------------------------------------- + +KSpriteSaver::KSpriteSaver( WId id ) : KScreenSaver( id ) +{ + KGlobal::dirs()->addResourceType("sprite", KStandardDirs::kde_default("data") + "ktux/sprites/"); + + initialise(); + readSettings(); + blank(); + + connect(&mTimer, SIGNAL(timeout()), SLOT(slotTimeout())); + mTimer.start(120-mSpeed, true); +} + +//----------------------------------------------------------------------------- +KSpriteSaver::~KSpriteSaver() +{ + mTimer.stop(); + delete mView; + delete mCanvas; +} + +//----------------------------------------------------------------------------- +// +void KSpriteSaver::setSpeed(int speed) +{ + mSpeed = speed; + mTimer.changeInterval(120-mSpeed); +} + +//----------------------------------------------------------------------------- +// read settings from config file +// +void KSpriteSaver::readSettings() +{ + QString str; + + KConfig *config = KGlobal::config(); + config->setGroup("Settings"); + + mSpeed = config->readNumEntry("Speed", 50); + + QString path = KGlobal::dirs()->findResourceDir( "sprite", "bg.png" ); + + SpritePixmapManager::manager()->setPixmapDir(path); + + path += "spriterc"; + + KSimpleConfig *mConfig = new KSimpleConfig(path, true); + mConfig->setGroup("Config"); + QStrList list; + int groups = mConfig->readListEntry("Groups", list); + mTimerIds.resize(groups); + for (int i = 0; i < groups; i++) + { + kdDebug() << "Group: " << list.at(i) << endl;; + mConfig->setGroup(list.at(i)); + SpriteGroup *obj = new SpriteGroup(mCanvas, *mConfig); + mTimerIds[i] = startTimer(obj->refreshTime()); + mGroups.append(obj); + } + delete mConfig; +} + +//----------------------------------------------------------------------------- +void KSpriteSaver::initialise() +{ + mCanvas = new QCanvas(); + QPixmap pm( locate("sprite", "bg.png") ); + mCanvas->setBackgroundPixmap( pm ); + mCanvas->resize( width(), height() ); + mView = new QCanvasView(mCanvas); + mView->viewport()->setBackgroundColor( black ); + mView->resize( size()); + mView->setFrameStyle( QFrame::NoFrame ); + mView->setVScrollBarMode( QScrollView::AlwaysOff ); + mView->setHScrollBarMode( QScrollView::AlwaysOff ); + embed( mView ); + mView->show(); + SpriteRange::setFieldSize(mView->size()); +} + +//----------------------------------------------------------------------------- +void KSpriteSaver::slotTimeout() +{ + mTimer.start(120-mSpeed, true); + SpriteGroup *grp; + + for (grp = mGroups.first(); grp; grp = mGroups.next()) + { + grp->next(); + } + + mCanvas->advance(); +} + +//----------------------------------------------------------------------------- +void KSpriteSaver::timerEvent(QTimerEvent *ev) +{ + for (unsigned i = 0; i < mTimerIds.size(); i++) + { + if (mTimerIds[i] == ev->timerId()) + { + mGroups.at(i)->refresh(); + killTimer(ev->timerId()); + mTimerIds[i] = startTimer(mGroups.at(i)->refreshTime()); + break; + } + } +} + +//----------------------------------------------------------------------------- +void KSpriteSaver::blank() +{ + setBackgroundColor( black ); + erase(); +} + diff --git a/ktux/sprite.h b/ktux/sprite.h new file mode 100644 index 0000000..d93e285 --- /dev/null +++ b/ktux/sprite.h @@ -0,0 +1,72 @@ +//----------------------------------------------------------------------------- +// +// ksprite - QCanvas based screensaver +// +// Copyright (c) Martin R. Jones 1996 +// + +#ifndef __SPRITE_H__ +#define __SPRITE_H__ + +#include +#include +#include +#include +#include +#include +#include "spriteanim.h" + +//----------------------------------------------------------------------------- +class KSpriteSaver : public KScreenSaver +{ + Q_OBJECT +public: + KSpriteSaver( WId id ); + virtual ~KSpriteSaver(); + + void setSpeed(int speed); + +private: + void readSettings(); + void initialise(); + void blank(); + +protected slots: + void slotTimeout(); + +protected: + virtual void timerEvent(QTimerEvent *); + +protected: + QCanvas *mCanvas; + QCanvasView *mView; + QTimer mTimer; + int mSpeed; + QPtrList mGroups; + QMemArray mTimerIds; +}; + +class KSpriteSetup : public QDialog +{ + Q_OBJECT +public: + KSpriteSetup( QWidget *parent = NULL, const char *name = NULL ); + ~KSpriteSetup(); + +protected: + void readSettings(); + +private slots: + void slotSpeed(int s); + void slotOkPressed(); + void slotAbout(); + +private: + int speed; + QWidget *preview; + KSpriteSaver *saver; +}; + + +#endif + diff --git a/ktux/spriteanim.cpp b/ktux/spriteanim.cpp new file mode 100644 index 0000000..2c21838 --- /dev/null +++ b/ktux/spriteanim.cpp @@ -0,0 +1,161 @@ +//--------------------------------------------------------------------------- +// +// spriteanim.cpp +// +// Copyright (c) 1999 Martin R. Jones +// + +#include "spritemisc.h" +#include "spritepm.h" +#include "spriteanim.h" +#include + +//=========================================================================== +// +// SpriteObject stores the animations that create an object +// +SpriteObject::SpriteObject(SpritePixmapSequence *seq, QCanvas *c ) + : QCanvasSprite(seq, c), + mCycle(0), + mLifeSpan(-1), + mSeq(seq) +{ +} + +//--------------------------------------------------------------------------- +void SpriteObject::age() +{ + if (mLifeSpan > 0) + { + mLifeSpan--; + } + mCycle++; + if (mCycle > mSeq->delay(frame())) + { + setFrame((frame()+1)%frameCount()); + mCycle = 0; + } +} + +void SpriteObject::setBounds( int x1, int y1, int x2, int y2 ) +{ + mBound = QRect( x1, y1, x2-x1, y2-y1 ); +} + +bool SpriteObject::outOfBounds() const +{ + bool in = mBound.contains( static_cast(x()), static_cast(y()) ); + return !in; +} + +//=========================================================================== +// +// SpriteDef stores the animations that create an object +// +SpriteDef::SpriteDef(KConfigBase &config) +{ + read(config); +} + +//--------------------------------------------------------------------------- +SpriteObject *SpriteDef::create( QCanvas *c ) +{ + SpriteObject *sprite = 0; + if (mSeq) + { + int startX = mStartX.random(); + int startY = mStartY.random(); + sprite = new SpriteObject(mSeq, c); + sprite->setVelocity(mDirX.random(), mDirY.random()); + if ( mDirX.min() != 0 || mDirX.max() != 0 || + mDirY.min() != 0 || mDirY.max() != 0 ) { + sprite->setAnimated( true ); + } + sprite->move(startX, startY); + sprite->setBounds(startX-1, startY-1, mEndX.random()+1, mEndY.random()+1); + sprite->setLifeSpan(mLifeSpan); + sprite->setZ(mZ); + sprite->show(); + } + + return sprite; +} + +//--------------------------------------------------------------------------- +void SpriteDef::read(KConfigBase &config) +{ + mDirX.set(config.readEntry("DirectionX", "0")); + mDirY.set(config.readEntry("DirectionY", "0")); + mStartX.set(config.readEntry("StartX", "0")); + mStartY.set(config.readEntry("StartY", "0")); + mEndX.set(config.readEntry("EndX", "10000")); + mEndY.set(config.readEntry("EndY", "10000")); + mLifeSpan = config.readNumEntry("LifeSpan", -1); + mZ = config.readNumEntry("Z", 1); + QString animation = config.readEntry("Animation", ""); + mSeq = SpriteSequenceManager::manager()->load(config, animation); + kdDebug() << "Set Z = " << mZ << endl; +} + +//=========================================================================== +// +// SpriteGroup +// +SpriteGroup::SpriteGroup(QCanvas *c, KConfigBase &config) + : mCanvas(c) +{ + mAvailable.setAutoDelete(true); + mActive.setAutoDelete(true); + read(config); +} + +//--------------------------------------------------------------------------- +void SpriteGroup::next() +{ + QPtrListIterator it(mActive); + + for (; it.current(); ++it) + { + SpriteObject *sprite = it.current(); + if (sprite->outOfBounds() || sprite->dead()) + { + mActive.removeRef(sprite); + } + else + { +// sprite->forward(1); + sprite->age(); + } + } +} + +//--------------------------------------------------------------------------- +void SpriteGroup::refresh() +{ + if (((int) mActive.count()) < mCount) + { + SpriteObject *sprite = mAvailable.first()->create(mCanvas); + mActive.append(sprite); + } +} + + +//--------------------------------------------------------------------------- +void SpriteGroup::read(KConfigBase &config) +{ + SpriteRange countRange(config.readEntry("Count", "1")); + mCount = countRange.random(); + + mRefresh.set(config.readEntry("Refresh", "1000")); + + QStrList anims; + config.readListEntry("Animations", anims); + + for (anims.first(); anims.current(); anims.next()) + { + config.setGroup(anims.current()); + SpriteDef *obj = new SpriteDef(config); + mAvailable.append(obj); + } +} + diff --git a/ktux/spriteanim.h b/ktux/spriteanim.h new file mode 100644 index 0000000..9d5417b --- /dev/null +++ b/ktux/spriteanim.h @@ -0,0 +1,96 @@ +//--------------------------------------------------------------------------- +// +// spriteanim.h +// +// Copyright (c) 1999 Martin R. Jones +// + +#ifndef SPRITEANIM_H +#define SPRITEANIM_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include + +//--------------------------------------------------------------------------- +// +// SpriteObject stores the animations that create an object +// +class SpriteObject : public QCanvasSprite +{ +public: + SpriteObject(SpritePixmapSequence *seq, QCanvas *c); + + void setLifeSpan(int l) { mLifeSpan = l; } + void age(); + bool dead() const { return (mLifeSpan == 0); } + void setBounds( int x1, int y1, int x2, int y2 ); + bool outOfBounds() const; + +protected: + int mCycle; + int mLifeSpan; + SpritePixmapSequence *mSeq; + QRect mBound; +}; + +//--------------------------------------------------------------------------- +// +// SpriteDef stores the definition of a sprite +// +class SpriteDef +{ +public: + SpriteDef(KConfigBase &config); + + SpriteObject *create( QCanvas *c ); + +protected: + void read(KConfigBase &config); + +protected: + SpriteRange mDirX; + SpriteRange mDirY; + SpriteRange mStartX; + SpriteRange mStartY; + SpriteRange mEndX; + SpriteRange mEndY; + int mLifeSpan; + int mZ; + SpritePixmapSequence *mSeq; +}; + +//--------------------------------------------------------------------------- +// +// SpriteGroup +// +class SpriteGroup +{ +public: + SpriteGroup(QCanvas *c, KConfigBase &config); + + void next(); + void refresh(); + int refreshTime() const { return mRefresh.random(); } + +protected: + void read(KConfigBase &config); + +protected: + QPtrList mAvailable; + QPtrList mActive; + int mCount; + SpriteRange mRefresh; + QCanvas *mCanvas; +}; + +#endif // SPRITEANIM_H + diff --git a/ktux/spritemisc.cpp b/ktux/spritemisc.cpp new file mode 100644 index 0000000..f3a9a73 --- /dev/null +++ b/ktux/spritemisc.cpp @@ -0,0 +1,69 @@ +//----------------------------------------------------------------------------- +// +// spritemisc +// +// Copyright (c) Martin R. Jones 1999 +// + +#include +#include "spritemisc.h" + +QSize SpriteRange::mFieldSize; + +SpriteRange::SpriteRange(const QString &str) +{ + set(str); +} + +int SpriteRange::random() const +{ + int val = mMin; + + if (mMax != mMin) + { + val = (KApplication::random()%(mMax-mMin)) + mMin; + } + + return val; +} + +void SpriteRange::set(const QString &str) +{ + int r = str.find(".."); + + if (r > 0) + { + mMin = parse(str.left(r)); + mMax = parse(str.mid(r+2, 10)); + } + else + { + mMin = mMax = parse(str); + } +} + +void SpriteRange::setFieldSize(const QSize &size) +{ + mFieldSize = size; +} + +int SpriteRange::parse(const QString &str) +{ + int val = 0; + + if (str == "WIDTH") + { + val = mFieldSize.width(); + } + else if (str == "HEIGHT") + { + val = mFieldSize.height(); + } + else + { + val = str.toInt(); + } + + return val; +} + diff --git a/ktux/spritemisc.h b/ktux/spritemisc.h new file mode 100644 index 0000000..0a0d058 --- /dev/null +++ b/ktux/spritemisc.h @@ -0,0 +1,41 @@ +//----------------------------------------------------------------------------- +// +// spritemisc +// +// Copyright (c) Martin R. Jones 1999 +// + +#ifndef __SPRITEMISC_H__ +#define __SPRITEMISC_H__ + +#include +#include + +class SpriteRange +{ +public: + SpriteRange(const QString &str); + SpriteRange(int l=0, int h=0) : mMin(l), mMax(h) {} + + int min() const { return mMin; } + int max() const { return mMax; } + + int random() const; + + void set(int l, int h) { mMin=l; mMax=h; } + void set(const QString &str); + + static void setFieldSize(const QSize &size); + static QSize fieldSize() { return mFieldSize; } + +protected: + int parse(const QString &str); + +protected: + int mMin; + int mMax; + static QSize mFieldSize; +}; + +#endif + diff --git a/ktux/spritepm.cpp b/ktux/spritepm.cpp new file mode 100644 index 0000000..ec9ba47 --- /dev/null +++ b/ktux/spritepm.cpp @@ -0,0 +1,176 @@ +//--------------------------------------------------------------------------- +// +// spritepm.cpp +// +// Copyright (c) 1999 Martin R. Jones +// + +#include +#include +#include "spritepm.h" + +// static +SpritePixmapManager *SpritePixmapManager::mManager = 0; + +//--------------------------------------------------------------------------- +// +// Constructor +// +SpritePixmapManager::SpritePixmapManager() + : mPixmapDir(".") +{ + mPixmaps.setAutoDelete(true); +} + +//--------------------------------------------------------------------------- +// +// Destructor +// +SpritePixmapManager::~SpritePixmapManager() +{ +} + +//--------------------------------------------------------------------------- +// +// Load an image into the image manager +// +// Returns: +// pointer to pixmap if loaded successfully, 0 otherwise. +// +const QPixmap *SpritePixmapManager::load(const QString & img) +{ + QPixmap *pixmap = mPixmaps.find(img); + + if (!pixmap) + { + // pixmap has not yet been loaded. + kdDebug() << "Reading pixmap: " << img << endl; + QString path = mPixmapDir + QString("/") + img; + pixmap = new QPixmap(path); + + if (!pixmap->isNull()) + { + mPixmaps.insert(img,pixmap); + } + else + { + delete pixmap; + pixmap = 0; + kdDebug() << "read failed" << endl;; + } + } + + return pixmap; +} + +//--------------------------------------------------------------------------- +// +// returns a pointer to the pixmap manager. +// +SpritePixmapManager *SpritePixmapManager::manager() +{ + if (!mManager) + { + mManager = new SpritePixmapManager(); + } + + return mManager; +} + +//=========================================================================== +// +SpritePixmapSequence::SpritePixmapSequence(QPtrList pm, QPtrList hs, + QMemArray d) + : QCanvasPixmapArray(pm, hs), mDelays(d) +{ +} + +// static +SpriteSequenceManager *SpriteSequenceManager::mManager = 0; + +//=========================================================================== +// +// Constructor +// +SpriteSequenceManager::SpriteSequenceManager() +{ + mSprites.setAutoDelete(true); +} + +//--------------------------------------------------------------------------- +// +// Destructor +// +SpriteSequenceManager::~SpriteSequenceManager() +{ +} + +//--------------------------------------------------------------------------- +// +// Load an image into the sprite manager +// +// Returns: +// pointer to sprite if loaded successfully, 0 otherwise. +// +SpritePixmapSequence *SpriteSequenceManager::load(KConfigBase &config, + const QString & name) +{ + SpritePixmapSequence *sprite = mSprites.find(name); + + if (!sprite) + { + kdDebug() << "Reading sprite: " << name << endl; + config.setGroup(name); + sprite = read(config); + if (sprite) + { + mSprites.insert(name, sprite); + } + } + + return sprite; +} + +//--------------------------------------------------------------------------- +// +SpritePixmapSequence *SpriteSequenceManager::read(KConfigBase &config) +{ + QStrList strImages; + QStrList strDelays; + QPtrList pixmaps; + QPtrList hotspots; + + int frames = config.readListEntry("Images", strImages); + config.readListEntry("Delays", strDelays); + + QMemArray delays(frames); + + for (int i = 0; i < frames; i++) + { + const QPixmap *pixmap = + SpritePixmapManager::manager()->load(strImages.at(i)); + if (pixmap) + { + pixmaps.append(pixmap); + hotspots.append(new QPoint(0,0)); + delays[i] = atoi(strDelays.at(i)); + } + } + + return new SpritePixmapSequence(pixmaps, hotspots, delays); +} + +//--------------------------------------------------------------------------- +// +// returns a pointer to the sprite manager. +// +SpriteSequenceManager *SpriteSequenceManager::manager() +{ + if (!mManager) + { + mManager = new SpriteSequenceManager(); + } + + return mManager; +} + diff --git a/ktux/spritepm.h b/ktux/spritepm.h new file mode 100644 index 0000000..e9f24be --- /dev/null +++ b/ktux/spritepm.h @@ -0,0 +1,85 @@ +//--------------------------------------------------------------------------- +// +// spritepm.h +// +// Copyright (c) 1999 Martin R. Jones +// + +#ifndef SPRITEPM_H +#define SPRITEPM_H + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include +#include +#include +#include + +//--------------------------------------------------------------------------- +// +// SpritePixmapManager stores the frames used in animations. +// +class SpritePixmapManager +{ +public: + SpritePixmapManager(); + virtual ~SpritePixmapManager(); + + void setPixmapDir(const QString &dir) + { mPixmapDir = dir; } + void reset() + { mPixmapDir = "."; mPixmaps.clear(); } + const QPixmap *load(const QString & img); + const QPixmap *pixmap(const char *img) const + { return mPixmaps.find(img); } + + static SpritePixmapManager *manager(); + +public: + QString mPixmapDir; // get pixmaps from here + QDict mPixmaps; // list of pixmaps + static SpritePixmapManager *mManager; // static pointer to instance +}; + +//--------------------------------------------------------------------------- +// +class SpritePixmapSequence : public QCanvasPixmapArray +{ +public: + SpritePixmapSequence(QPtrList pm, QPtrList hs, QMemArray d); + + int delay(int i) const { return mDelays[i]; } + +protected: + QMemArray mDelays; +}; + +//--------------------------------------------------------------------------- +// +// SpriteManager stores the animation sequences +// +class SpriteSequenceManager +{ +public: + SpriteSequenceManager(); + ~SpriteSequenceManager(); + + SpritePixmapSequence *load(KConfigBase &config, const QString & name); + SpritePixmapSequence *sprite(const char *name) + { return mSprites.find(name); } + + static SpriteSequenceManager *manager(); + +protected: + SpritePixmapSequence *read(KConfigBase &config); + +protected: + QDict mSprites; + static SpriteSequenceManager *mManager; +}; + +#endif // SPRITEPM_H + diff --git a/ktux/sprites/Makefile.am b/ktux/sprites/Makefile.am new file mode 100644 index 0000000..8f27a80 --- /dev/null +++ b/ktux/sprites/Makefile.am @@ -0,0 +1,8 @@ +# Add all of your pixmaps here +sprite_DATA = anim0001.png anim0002.png anim0003.png anim0004.png \ + anim0005.png anim0006.png anim0007.png anim0008.png \ + anim0009.png anim0010.png bg.png flare0001.png \ + flare0002.png spriterc star0001.png star0002.png + +# This is where it will all be installed +spritedir = $(kde_datadir)/ktux/sprites diff --git a/ktux/sprites/anim0001.png b/ktux/sprites/anim0001.png new file mode 100644 index 0000000000000000000000000000000000000000..f53aef7e55df21488c7016a53ce8f73d13f7ed38 GIT binary patch literal 23517 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 pVIIN>EV!H=5_)!t9?6c3_ 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 literal 0 HcmV?d00001 diff --git a/ktux/sprites/anim0004.png b/ktux/sprites/anim0004.png new file mode 100644 index 0000000000000000000000000000000000000000..b48da815a1d58f35f12b4be12ab0b6cee36215d1 GIT binary patch literal 23725 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 literal 0 HcmV?d00001 diff --git a/ktux/sprites/anim0005.png b/ktux/sprites/anim0005.png new file mode 100644 index 0000000000000000000000000000000000000000..3c308ecaf376b3db084b804700fe47b37f798f46 GIT binary patch literal 23541 zcmdR0V{<57vyE-rIH4`B( zD+UXN1qA>A04pIbtoVC<|21$ zTYh(G((eqUy|{)G001=7e+S^gw(sZfB)GGLj0pG~I4TG_4sK{S8vp{ImB4?@zCYx-xL7bJO*wOQHO~^H+=j> zl~ADhzE9jY55GH9sKH#3SX`d<5dIV7^I_v zY|P(bWG++^9b=y!Cl8&7Fd4+;UzBD@%~vb|l%dZ4$?TGc=g#@TIE)hl=cVnX4`jvm z!1{UnC-h@P&Q6X}U*G&oFxKyy((`-1Y3cgsxL&V(e)t5GjD^t* z_BI4Ghx{GK#k2Y~3Xz7xn8}dw%7tg*NHX%;vyBrk^lE}hiXeJ7S=J6TxXCyKHli+$ zR<1gE++zsfUtyLBe$$y#%kxou5o=ez1b7?4SY7tVlN4vzyk?>IAbuYCD~^t*;0I$D z3yTHp`tkNQ%s0bu4zka&T#}=4qW_g5#vEesT6h{YJu6QD!hOAmc%b-(tOE#~9;ZZ$ z7KK`RHph4QrAhf*2bxaZ$X)D`VvoY3d+ztKgggbk0>8!=aWL?I&hbe5-kRNxeyV%Z zK7+lxo7ln)qLbvz*3VHp)cSzbj><|@6M=LMiI7YAFP?>Nj4*^`0^11>#A|J@-g^S( zQMlm)MjulGq)JwG>Wpr9aT8MSKc)7Nzp}CN6zl}gu(vfZzX)~vcV55sy5k!KDKvy* z@baB`$4WnlgaX|NJ-1Udc`rS1JQ^YkR0od6n$3xMV^W~Ddx~^lui-|)$*U*<=s39H z0fJQixy9ZFscC+c#PIgTU7afv=vhPl#7@qgvlA?iN7Hs3I~8v7!$7a|IZ0=D>~TZH zi9=4jG6rQkbOJ~|L}<7LP%2je<5sh%xhb4O89Q>CLQfn@>zB`d{bIB%A3L9*)(1Oa zh3*Pcf-G8L($c+9zk*x+2l8vA2Axg)BR~g^*^uU_dCfD(4_GnzqgsJeeaB(^UAK0h zqkA7f-7%Iq?H9{S#J0zj`=}AT(<#plc_|3uw(K!1v}gN}{?w#nL*zc|=rLgwsM-^O zJgAC@&2!RZ#){TB)L(ERWwSu$M3&%8;QSABc1si|EGep4B^4!gb6bwM*y0|vqV`Dr zn2Z%%{iKkct~mV|21XoWy|LXyAyK(YI~>mxhuR=XLK45L z`r7xw+gE90*K4)lK1$aW$5AgZc>q=|+FzHiCJA5;qOc{q-usbyvw%exZXL-W&73)v67zQXjJKPbJ_UDPLqZ! z*OZsg-MZL&Aiqj{epgg%Hg7i&L!G$1*S6;hpeXY9tQ8SEs!l6I|74~W=_-#5YkN@0 z&I`V#KwGq4PQU5B^)Mj&qgNk45mDEc-t)1|aj-kKyIb*CoMjA%GWa`ES@9s^&MTjSH z)bF~zQ(+ysUG2CJWN9(!wauKVB?fVOs`|k8|8<{%7~$>Y%ORLW$a9D-blkm~%{Yg> z!^W+r-Pr^CnuDj1I!=SI7YMbPV{vm-xUD;cKP({#&V+z9@_emV_@fvY#x2?+&K}ZK zv>X%|Xorq?b@FwR`OBwcTvToI4;<8_i=0t_p#J%sfcp}fJyFKTmJl2nSbr?j1zI&n zyszg5|4uSdqpx5le^4w8MWq;SX4=tauH*Q3BJwJP$_RALwB%%ou7xu&aQ17C&CYDX zW2DJSKMj2o7m`0(okF~77IYrQGwedt5wX-+K3%tQ>BnFU_`u=$u7=&IgM9CCm4;J% zMaNyAw6~K(f^z>|Liu_o@G2tCmhz`v55LAKymn9;D+>=G;8(l!EDqlI)^hg9cS4@C zEYpNthvKM~5SliiKI}Uo8I%B^e$!E2wyVq4BO(~8{qWYfaGNh7vnOvT^9U+j8oIsE zs&bq(85M$H6j+QYgRHb*qVYlM~ zHDohM%0Z7*Usdu14i=CKnqtwTa|Kkc0L{4qHR}A80f+n!Tz}fQPyK5u)af5~ebBf( zc;bvqh?j^gM>X>Ffbtb6jFzVYGfI~5D!~cVxaG)73zr+zapAZ**hu{X0mY&ls@$p_ z`yl_+xLwquwu~D6LjeE+gpT8R=f&&1p+FlRt=sKKYD$nW^LQM?<@P*;%k6fI)#-%8 zM5pW7LjHh{`1LJ*eA|_EthRHA?~VH7u|A0Xu9!mm&=PNKfX>mDhbuepOhHQ#2zBDn z^URTR`}~TFCT&-18-=NMG>lwuhu%QlKfef3Noa)z;9M;!Kuy>o8XtmIp<0w8PN04n zJVBGF8KK%CFp<$;!gq9ko27 z%_-)1%!q1D;TmyANRIz8>o-#S`OlC3`@E=k=hx7He}7Z0PSqVaxb@YYVpe%loK|au zMrOLjJl>u1y7zd00TN@azW2k8+!B^x$BA6{qobx%b2k4J&v`n!DJnAX^qv5kW@xcC zK37AeJiX{S@9XRZ`B|_60&iN7tTk-*do)hbTIE(#8$~PS`a>D_#Ln|O#4@8~XM~?3 zl8s(Gf$Ta^yuDqr(wbC3hb({HVns{+3N7;qO+zdMPz=Co44Pk`VB+R$rPsjv$Cvwv zEEO>0@)K(|n-|<)&YYp;20+)~AoF7%oo^QZb6oFH`wgF-C(0KVH%dpm8e&Jv(%ir# zppXBtgbhs2x$MK+X&BR=w>PqkVh%3}d?T>c*71ZZTo+QRI98W_`)O(T0HY}EmIGw# z-}<#{mWZxP_NYeInj=n@aZv$FN1Q;fppey^G>@YNnX7F--H+DDN9HUDvCJVqi|)5)tP+5to=~`c`AkynJvNUQdv_ zckB}#x3Tn&RqwMr%(nda zs(X-~u`S9v<(k_r4~Lm*%3tx1jc6MnPnG}-$hd~(tClJM9C_G0Abx&rRYM6H0tvPO zai}s?QV+M((Ajy99*c>=et!R3Wyx5ztCZSUY9(tCo#{n;=ix zXAf`Zr85%;gLJnp2zR(GwBJw0O`Wex1ZrR!|QW-6xR>uf>?=#AVCF)l$adarr z=Xc)M4bS8^@V*PAPfwcys;LV*2L6^QiPZ+|s7m*KIP5QavA^LkTnNVx)tDMcy@OjSW}KaJiaCAipjGsZhIGSZpajh^sRdgO&wX%PLI-_&$B};qXVh#N6s1{$v^!L#(rt9^Yzt@STNJ4|UF`0i-R&92>cW)rinD$b z?%;{+PHdnJ1;5%d;crF8k2DDdFqFTBs-IGQCpA(^YReHzma&lYk~|m+e}OtpL9K0d z@hn+nn<8wN5z#Pzavk8G{+Wz&rEQyE8{T5#KCfYGtMPXDcGT#vP5Jmo_je##`6kxv zA3Lttw0@@hYa_bdkZ~L0|FqJjT1J&mqWhjMiuURq-ulX{ zq{Xt>sn71$$2jY?vUk5)a>`5x5KASBYxbeNGGdwkUB=mgY{$$sYIPQ)KTzB5M zLh+(owWC}_RhISnI6Zj3{=5ni=TO}a(|z$gNj2K3&wGuG&P8E?itx{z@WW;NVQftb zL?qe0b8dxAdpLc=2_eINdt{wnHVIV;AZ3Xv3#m(mRXSW%-;90LMmyt_s!^q~k+LcM zD_SQBiW5uJoGIJWkpK)oPJ?B__1y#E$bWP{yiT*?)wpYCygc~^bv6tG1AYfSjV(>) z_SNO?|9FlA$Rp!wT&j^yyvE^lM;*8myYJNKw5s#@{PT=Hg8%j5_YnFOsz@}l3+Ny3=IoSWpZi9o-?7AOpgh{B@jU&q+=olO}A-MQ%(X5--Yx-gU zL!8iS?%Qv?)83Y;IV^}vt<7f_M*(Ab-)UQV-D>Oa1-;%jGfZ)&D7A7s!>Xf#v9y{Yx{v-VS<)(=E)j)5-(h>M zA<$xvt8k0@-LW}#`U`5LBd5f)$4w$eektu%{nDM>NkOG+B z^28wtd=q)&m>_iJrdjNCGggHt(yQME+A}(fUbSlF+mpDjHpI*vb-rJo@(gWM&;d`15=q*xcR#Z{?&78?l zZu4J90Oh?8aM}(C-%xnYcT9kdC%4ok1df;&$XO(5@~DM&U-| z;uXvArV*@D5tFGjZm_7zEar-yv%>Ny60g@FI#q=bF0%h#4uR7euIaeUmZC<;=nnK_ zp7@@V{l4n`y7H^YJ4rn%sqs>35YpnSC3n;PWktWF&ip8wx^yzQ*yj-EPi8Yqjdo5U zhex=}jFCC#ye~f2$FqaQ7d0L42U3V(Yz|_8RJlb(f&%ZymJ`31VpxjCoyF0c@4TP+*Pxxx|7O47;coRmX?|J!eGFs96jmeC$?F5( zSF*y`^nJ=r*H|$Xc`x~1XQ*h*aXbt%FoFudmH)oz>NyOf;f!q3<(1QVU!m%_xs`As zVB&)4d{o);R2B~XnG!}4k$MgqN-H}MHPaG1in3|dZVfxc=MM}F z&tSvGp?j%G@2@O9GG0gQPS0eyjdKR%>0Jnhg z3yg~LIZdl+fY?6uYl^WA;?JQh;=w8v!d-$XOg z&Gt<7c3=}IiPVrvG2&l>G)-lv>+#w1a?Q5R4%ztb!Mi8gZ;~#8eXFDXX+&Lk6)1{B z16mE)zjkMHJ^bwBZ3lsnOu#= zL`f;(mEiHoy1GO^WuRU*OteT~!+*lt9kuc;`3*J|{=U|x{Gfs$t~%lUCK4)|-P0EK zX~hsG=*m?{On`Aw5O4|0?JPm{#so__6pJzr>&RZJ=TuejQb1MlQ;x#Iyg+>s*32cS zlHIFm#0pKgc|ydPrzGvphT)G6)!S*$D97fRb3>?)TLh^}siq3l=*W=+y?0T!&g~C! zb@%Ti>aA(VgUb3j_)ON^wfc;HbeKrH%NWmRPn!z zB3nY>YDnU}1%AG2nS!|$??&(IVuzsty3tt^BlYVFr=cW(gm7hQdQk=Yg!h5niyW-1 zrq;>WG0>T4cvH+UyQ_=|i}r4*s@-n1d9{*KtaZ5E%oxXxAT(OQr&^+3bN_Xb?*4TL ztt{sSuoeJrB7|i2M5zkJ8PA)|`<2bF!YlU|E`QJ zS}&L;u#ZxzVDhET9(i$Wn~WNp2=K;g59nf~oAHKOeWT(Su@=i`+qf3iE5LMzZ1sBB zV27;Krun!2I$M98qKOM@gm&H5Tm|rNJUT|FC7!(4a#+>L=5t7V={kWh!}|exxyIkC zFM`4}3O&&}21zmGl{35o+Vl>qw``p2L0rb*w{A^%o`edil5E!$vm%Yp;u>3Cg@k)- zblRcS<#uqCy8c=g*0Zn>x01(_Zfr>dm4qtVI70=@{jS%}^b#~3qn9rl2{sY^Eazb6PseOlA{PJV z^ePs1P1j0(@iJm@Om?%nZ9-bAJ&MS!ZIC5!UgNCyPongUIB@*Z#Ib|hrCDF5@mH{h zkuPyQTNBtU-vf?4{Kqq8*Fy^;5MIhAUN^M=T3s}eIZmfjcAVcOcDB0zkT+)3;-tMZ zzHZIJJ~DeTeB!hpsK0hU4y#Fn#SEPZM;*ANNX(rLqwdYfw7HYX_OxOU?$VJ7#?GKN z?`Z#*(dh%#6dg$bMDIHl-wsv67v5XKtXQw7X~5GJG1dg z7sMK7hI5m|N!EdD%Cm|;ss1(*rMWqxQyz1;y6>&Sfa;QyT?Z{i(Qnfc#G(cKqz40K z72e0Sc)hZRS$AlIQ{3QT_<>>np7CbNDuq)3#w&0)Iy6W|%a%sz{yC8kY(U9%*(Z85 z3_<2wx$G-?Q8DV;lG^eU=oG3_2c2c^@S^$iI*VcK#UmHp@J3=S9CvH2P$hwlD1pwi|ZsM;Jpd^UXURA_}yUSK*-qI9UG3#A+Y)uC!s-!&#q5vyzK za5E3?zJGUP&5>qPkAa+&1W;w7l+EYy?b&}a4HJ<$n=nA_qLQ z3g|q7x(rqoSz|N=W-Lx;7Vrl=fl<5?^r=V=d5?4Ez4L{O&#mS7z^hGBHdoShY_(Qm zib(kcg-<>RLbodK$5W}fh0FdG;8kHVvFzqOnyNaLKPl1;o?5(cK96bdzfLgyZWXb) zDR+^MLS!g){^^#|zmlgcF)l1}idKm}D9 z4nA~l0KJBL#Jz_nOmZKuYkpcr#g3@sd=a~vBl}4jN>X#w4d;LKmog7yz)p^7o!o4& zqg*hH3+jAs#M$K65Z$RO>`g3k4D0!eynT4Oju+}VaY&kxEXm*pp(@Lh9x>ezJ3i<= z26x92jCjz$y>`WDA14;FZ^isRM@6}Lq4=5jMkJkL#@DzkigooxD*aW>L_z==ggNVH zhWN8xT=2~F@acNlL-gG;b>x^~(<=K1iWvjDLx4~g(O0$f@Pwcay%tb=A?Dpa`ZS1oJ^+4;2?vw&_|n-Ud)6wsM#|K>IK{{ zveJDH)cV1zZB$RkX`ce*y}t6@Ui98!Q$zx9%KNhey1vOac+N-pbodiyq4Ntg9sG@} ztyaT8IG{GEj)pLK%!jr_GRI1Z1WASrH#$Uf%vNUc7K}P42xk{R)GG*)4cDpl&~;Iv z|0ogj`K{MP9U?HNtEFM456!DKa;Fs=DVw5}m$R9{v|;q%KHC;SJ1Z`z^`tpkEJ_p>zzQ1QtY z&`FfEhp9##VkW9iQNfB6Vv--De-x%}TBbLL_K7#Wnr~~9 z*n;QibiFm&zG4SQ2I0G*Yn>p%^oB1KUd={h@5Yz-;x%aHUH?GDf-NfswN=hki5P_g zNOeFv5-9SgUH(O5qE1D^6qX+c7x?!zV>+ zId4wqL&DrCKWI0F;+&Mij39%)<7T8Zw%|@Kvpd*2}4(o{-i~-3>odv29KktK0}U()6_Xq zuE9rO(`m2KOt+!`GzaD~nhPUx`bwXsH_t6&F5>}Z%Nqi`^UiN6z614;M3Fh+D5Gc7 z@-$#?6X+|DOH(cKS(CapiLk?Gg0{7%3mI*RwE;E5uXA=iIknvFp$VU~2VNr_>}Un& z=O+hcnDqu#|O#BwJdFYiYp|0B_;lrZcE%ULISrQCL z_(y$pL4hoC*$^KGo9qu0DzP~0qh0YrHkMtVIg8l2@|%be$ojE3tp@T_?;KrbMyRV@ z2K^`DyM^THJe2c(RYj& z+ykQrzi?eNw)Ulx-JnQ#KaUHTe>1{ZO#Tp2N0Tt%)4DfrmS}lQ{uMO`PGB3|`zX|! zNgfR_5~lRkyOsr~xz{kPI*#c-N)?y?SZ3Uf<9*ZGZPuXQOf#0=7XO}1tIn_?wGW>S z9J{)Zmz*j_D;9~)(INL90DoQ^jdDCZ&fY)S`DSF;@k((!2K@G^f$3ckOBQP5DPil$ zQ0v59g~z8^fkjdI9Q;u7<^=EFC}?wwiuXbG!tkK`!tZgHGNUfcKtIEwXG_r>Q zyV~mdG`j^mvz3jPB`6A%~z+#BCuZs3)A4EV#>O9D0Mt-?!jqK zYr|DFJO@>B(F|n7jI&yzA@%?Wl%^cpd%k-2*00 zo7sO%9p^v>Dw1|>Xe@I{Ek(xEorDKkY_W|`N?tC*yM*dh4D{WCV8}Hl+D}!R0SZ;k z*3$NZ;=b|Zy1fGl{|rQO8ANsoX>dxLG5SR?bBH+Qg>q5YCq=hM;Zclw}unl zM+V`BLOUtK@xaFM*c3Qk?GZVb4j*10eVbC7t>5^KPJ)tJqlIk&lmP_MwowPjKI|7( zO97t8P&BZ#v{*2kvh(tIWJwxAcW>!3(!|F&+SA>E6*Wka9(SJ9;-n9avPYF&Ycqua zI&`Ia2_A>Lgm~Qc$q5QfCAT3=q`BNY!;`hri-}djg$5JadtZEP8y9M?lwEtlJsDPh z%)dR)%Z-)U0waYHve5J{CoVJHwGp?TZyA^{OoaO=(?8Z7T{BU1dHZ>|9_fbVA1mNA!?tSKE~CeZN%~%A#a^v8gXHh_ zZ#WolP>DCXO#=^qBX3jevQJ%YyIUHkOeNP1-o>T?GF2FT4y0K^NX<7Jbh>_MhCcT6 zP3d}0nLa<_zEMe6k%}XMjS2#G>j*n6xp{bIwQjni3Rh+4G{~D>bCD+rA1!ktT5$%7 zg4OBCR}JQ~*A7%x;^=Ot7s&}+W5e691#0wBw7V1|`L(tNU+cwP;b4c{cl!VVj*rd8 zXr~x|fn;r4Y>kg&{LDIV*5}PiJ4g4hmhZuXXr5v^A|Q9|*LgKhR~-i>%i!(48kq{f zz@_Q5O|K`mqp#^li%rZz+8ymcg8p8h!dzG!&vu6=mluHIBHSX~!|ytT=_`e3sVh>5gmoC+P#^#13Zcmmsbv<` zoVJ}cDtA_--gxBTJ_7r`4?hBMNq0HF`iHGPr5z3_UWbe-b7wUW?jc0@sMaKN~r5Wi=Fb8mAakkM; z`T~HX-%%Yoma{AAn)>SM==s9Z?~oo@*jXE*jC$`0bKC7BX8GQdHB#DWWSs~Cf7MWT zqUQYfqWhzgr?p{LIzP3(9}iudAG$azWcHbCJns0jT|b@N4=)c@7v!hNb~o2t4Mxd& z?|R>ndp4Ngr?o$L3Rd*B$rw<}8cnuha#cbagYitv6DIpXafnN`iM2HPG@A;aj5YBV z!}I6c%JUs1j2%w+uT6UM*&3^cb>)0njcC z`YxS`J4j(lHPG=8NQ3jCt!4l%6J=@lN-9>kEp8iQ9cz z)36>G)%DCpUxF#mACvymf7#A?z>x7V`kb!g2m?($RcI;${WEhH)a5aXr_1XSIor(* zH9e`G>~Oqnp)FK2f?Zv^3!jx|Uf^~r{NNV1CGi=H>U&26Z~s^i?(tw`M^uVd*VI`q zEhBRm_Ve^Z?63#q*-5w`k7O3h9jM8y^U{)1gHDw%ew^4p4<=eIz>x;P4=MI5-BhP^ zA(G^yG6Ym;NGi-JjCzNF8!?|{Wm(m+V#|!DQqjbVFs%=yLm;oTBFGiKYafR=5eO-b z;|uCY=0_0{&dI;95H>6O@QA7S<2iiBm?hYREo8h=n^NiG2#Pvyagwqm@eF#?b>?RF z+f6ug>y3M8{4*n+LqxjvhjeA_5BP6C@N%82Kc6u=)3J{J$GWxha=23B-+St2`>kW3 z@jYc-4lpk4-fv~|#_!VL{mWqC2}%jw^zHZ^iw*^P*8%Z4I*Hae zUBzjtdWI>>=C;qA4?NJPWDOehv5=q4FSbBGTnHTA@pM<9$LE~1=k?y9ZFj)FV(liA zx#~pCR^!4~3IeyKTYbPf%VX(AQoY!& z>IIM!?^Ri>@^GAho~qW~)BwS+V7b3s6>bO-)fpk@HrE7R&&d|(*l#s*o^zD`+Y&%8 ztK~8{sq}N}m-mP7`eOJdQ5edkL0m&6&CoeKy@m`eB4#(Hn&tkWhGt@N?`Fiy3aYe1 z$Lwtow)O_Mnq(z9M#z5QeWo}2HU=cYw&UO&xBL2}+qYmDXReUeNk6iqqhnN>j(=`W zI%|MI!|lHzPhL%*sVSsQc6X$iEbI_tr!Ihjy{#Ds-shqG-88x68jWUi%(}%#X^oy^bFz`I^&2G=g3JP}?b1E131OAygHGITI=!+1EfoZV zu9yoH3{W>FccSC&rwZ{IF7#?EQxSMm+b;t2O-UaErztsD<@Dub4YvON7NdF;bombov?wfT!TBn zl{Qpn{_UlzN)YK)Gchqu?|rbQI`v={d4+Pg?z-mke#4Ak62arPCGDL;z}E76l=F9Y z7fRQw1Jp+I=;Vfp z0QWfEMTCQiyE|K?yWM(FO;iLqE7*j+8=9gq*|w7?(39dw%O`e@8%25RN(PfKRF7)> zOG>E3?=00s62ajT`_}IJJlg7DK8u(8vyV)z%S?R!%i@RU#WYr?vqYV7teB-W75Y4< zDOnSNi+Nm{jpn)jG*?Z|xDtxPZo`a3Ahmm^s5wGPs%Ci*L!O3*gP0S%k=J>g+^*py zV;##7Z{}hiyKdZ#MPaPUp%8Z}w|$EcY*rbRnFL;CDbb_!omtd(yds6gcH^ErD?pJV zx|9QHMi$HyI*P*3xP^+iV8u-fRId@-$n5t|6kZRc*&*I~di*k-XzPT9Vv`bX4_VZe z*Mr`-TI%u#ge#%GODRhKKd$tkbgd^XA792BXy132l#R39eeTl7GD%6&`yzB`5~u|# z-I0vU{988%gLb~bUZNv!BTlmpoLI+4=8vgRD^I~QqMcQ#lRf1kPJGajGejIPgO{I$ zQm&$R47IcmkLBbT7%UJVqL`b#c_%Zt=)bBY^A6Ak1zEEw)yzINu{(YJCI=0R(x=j#4&OvQ-CT1~BBBSI={#J+$#aJ1 z6Bc+s19=U~D*TBENEaBHq4`Vs+C%bA5ED-;xCF2eJq)HNrWsl}4JQv1fn#OyI2dU;e}p%IPZ za11-Hm820I_ZXrXX)Bg6v#K5h`FCqNTy-}%OeA4JBSLP7ao1${&jb^D*Y(5N0fGIg zN2#1;Pg7_wI**d_Z04$3&YF8i_bQ3#NL8N76fCzBs)pa&5VR@0c^U>Q_R&U8Q~Q?pn=RR)l|>HncWtV)k2np!+GCFc?|RjMZI!+S#;j$*=WztToN2M z-lpdkNR}-RuEL+HWvm=IZTxzTi(4tM7e}Sib z13XnkZp9FrHbPy(u%UD@aEX_YIGWj~mmcICcVai)XKlbCUU^<6S(i{#q)lVST5>>8 z(ec@x(Ko*kWAm^NG-U4zkzOO>re1<$G0UQU6?wP9AHN}#8OYYjF(lP^l8&x@iq|y| zyR4r60TtpCOOjw_p4e`0NofZ}MhI2P*clo{@pZ#+^^4Kac2MRY^(+5Jdxl?a!V>d) z4jfb}<%%KP`UQFIiAH9Q(25j6ld)2~jo z-SF9^aSXf0r^vKpH3EjCdCq0tZYT}!2QEN7UGKA5Pv6osmMH?}Mf%#HrA~H#-$OAI zR7e@|(jeLsiUf0q6_C(O|4G(S|6cadFyS}Ux{3w=wku;pJxonQIf?r} zN(jw0%_0IWwms-aZ$bk9ympPe9f3SAI6Ozk8scM)rc?s4E)}D4AMsKHGs54j3H9!%#IIDcp?sLmpHMend!80f29=g8#BZHy0uySLoH-@Bos`pU zXsk5KI}miLLSi!rhXIGx1x|L_95}5Nf=DC)Rz1PUcp>y!3)oA@;|V6q1`S)+E<4;T zqoR)3eRdl!Xvq40Xb?pTSI&{N(ofIy_;7c6Cmc#b#q$S}X5yq;UUs&|i9N$UjFVS! zKi(R^$p!m^sgN9_d#~Y|N?3XSfaJyt%Dcsv9|}|wif2uEn(f6tTM4#@?>%SMa9fAt zvVy>yHtD|H(Xb3YK7f`eR(@U#zA*kpA3F@Vy`(P+cm1nj_i+~hKpxgM&Cvc=8BB;?I3OOS8> zIPZ36XqYKY8b^3~ytdHD(p~%^8F2a_#5t?k9atEr4)kY|d>3TAOupf_$@$L;>#M|U*5)MtYm8vuuFj?*5UG6xUepg&y%@oE@_RK6<1macgza!B<0Et15!D-hTeHlQ^smo@5V$tp;1 zUb}YefMei}EN{OZ4wvN8jqo3AI zl3Z+jb-gqbsm-^VBxv8T?chLHox?g6#WY9~%9A$E(9AySyTypZ;THB`=u@^xi6>07 zuq*ng3V*AHCG&Pn@6shxtB6-chdjR5Ms#-Kvq?FY#8t4EC-+PsmQ_7jKoN#VVH~T$ zk~C@aqK>MJZagknVvMJ`PzLBPMoQH3k7Dr(Qnz6fJvtvTvso@UHhq}t!bZe{e8BfT z*{P@R4eYL+$h|f2z2W(qWBn6yU8DAoU7jH8ICRJej6EW zX)F&OowHpQ%ac>k_SX|Q#JK=~3j1^NFi(XeRdf6R3n4Jclo-T56dbtQX2t1~Lgj** zwMa-g7?!a!N6Bc;BgqQK#RuULV4)q6xfBd;7Do3n1^WQ2M4_yayUaAY%L)TPD3m_I z!IT$p;6n9;ipv0pGxCQi7rb^g`TJ?8#u_Cl7U=@**wM>_#0CSz*a0FxE%ey{^KQ8j z0le?HFAbvy2JX}WvriCIXOpJlIO6Uf?eRGWMsm4-i+N|bjf_=k4mo5?-iQQNT^WzO zR}}|U`wyO7x1X^SCvDW9re^_-Gx90o-+nf^R!>D|9(sPj0LJ@$00Li*bSkSzYE>_E z*6V4s8rT%*%5zF$bt+{K*j>Cbf8~V>k85XVrQTy4ygV+NCy#5RF36p($a<8dsaLuv zlN}lnmsL%jnoedK@n>T9a0vU!B*6*7muI<&t1hgA<})`mV{pBxkq!@2J@8)R&&`pz`2T_;mp3 zvQj>vXiPj-X|b))a-FzsWl}ZZq9(<_+ELiMNh}>~{}jsN1VHJ?Vx6WTAQf}6-Liqh zc;YRdpHh!XtFkwCiLP-1kkSSWO%VulyKN04W-D`G;`(20?0ju(eHlIdzrKMqP$cg( zfuTk!_bFt=n#tLT{C;PsVx~8$R*%C*@*NS|;Vcf;EN&E=tk=38H$V>$OoxmtBcq~i zML*~m;*Sg-#$n=bJl0if+pdWckKyCMaeh&yYEsmS08eQ2EgH-<^=GsYXntvvTxG>Z}~G89{~BnHiKE!37) zfRnJqQyo2n;!RgWmMiCHKTCy*;%n&INbDX?$(hG%D z{ICJ1NMkTFm4^a7aq7_ymd+HT(<|0~r}BMUnjKuiSyYD<)Zi*OJDj&jt?7oyCQ6yQ z1?_PkO!~DN|MJsV;LPs>5_w#1xdJP{Sq&F)hCNzGdhhRMbWw%@V+M*Fg+obcA-6Xu z+S*mTqL)Dghv_n)=DAP$li7T273a>CC6-Ue%*qCfYBQSTG3$!fg{rT2gKU|tN`we@ zQg9PH`AKP;_ZbrCyLcd~>*l)i%u8?2mxnFK(}yu~f8`Ps3fAV56n#oK6R&CU%rm^Y zMVlmLNDZ?FHER1$M6c<58{9eju4~1(F*?YL(yR~9WrHWJuEjvigwCdo@SQ*9rU zXTkszdUcGF)0F$O6zul2bRNt24;AkS`s;q~>@h)+*du_juQ%#d3(6a@CD#(MM?gpn zE#02CgkHXhGDmSVQ>Dq=0_MyXQW!cK#c1ZC3HB0M5Akq)aTYf|~}6$(T-=tv3pxEj^r?>A=(R2-yRRY;XGg9#SL3y>vJS|}@Q`Zm*ldMs9~ ztkEW!C&)mZ8z61u%JF0damlaw=~CtvECk0%5_-%i$YbxvT6-qrX!*uc#^zbu0iCzs zsqKnr=5=n!OSX`Us$w@uz&1e8e;l6{IWLfl`=VGglSI z>hX5(Mx6-WFB@1de#6^KJpa{%UrT&}1VKIoAS2i8fxq;|?1n0+X3GJMj3CP7{(YYxb7n915M~Lyh9<5%S#U z#63-vO)~gxZ7Gp#od|}?DPLwEfxg?WC4Wo_b4A;j%Pl~HO|G?R(7kLQUMnml{BcYO zxrZ1twZM7e+c2?m&1x0n5^F3*v5Dr8*|JT!S-aQIs~FQM@vKqMxZO5j_Vanc{a6I8 zT>w!LcIdbtMMZ1d#uqe+<~CrRDJFxy^AWH8@0zspGus5YKbpLKq2hkHw_ThO$z*rh zjj_1R>t;H78=4y=`fl^*y47yXc^z;5h2O?wp6H|AU{aQi+rezPQN4&KKdn`CZvkma zD^VvR%sq{@-}x_pg}!64O7oH!Ny@fMF5nBtOCPCI$O4tgly>MIF}go;)yseGyJC}q zm#?cwHlIf-0VjLNUOnt#&^*;H6%{W&0B4?oLb}}`r*^Lz<4edW+Ce8vfhRh@kFrmw ztJyPg((`D8=G)bWx||!#jcF6GHplZ4n8r$K;kR9 zUD*vhG{EqZu^f(xn{%jhA3L}?>F)woaoxC~kUV0d8UO&c=70YMIQcXjpNOhmXLUnZ zkFlAuk_tv+&6g)k%OKF}I`=DBCrKKo79w^aYtn)!rfw9nH8v2PDPrDWIi0YKc(9s% z!0vrVl+A6!ZJ|UvYo)xrR6f12!>_!-I7Ljd<9^lYc`95s?O>VX2u&^v)mY6@10ZEO z|0luClsAN-Bw6UN>(KLSv`-_`l@XF_!lY_OsBRzi23-5(N(G0mU-$#|!iU#lkoSJi z&aQOBB7=sxwUdWKjJ;DzoZtT9mbjF_Q}{p7`zlf7wV& zACl(+^d4&4ue^2SGGJhS*F-|m2l*y--uBR&~E#CgY3w1VUJ(|I`Sh zA22m&=?y2}yxi&w#C#jb#!xSY8t~dBYfMOq?>agNxKL#>6%-f0vMX1nH9-n*>1+e% z31>Bn#Nt^pww^;Cruh3t@CkT}l(yzPA^&a2_ai$feft;kx0i?ml$?KlLX{grb*FQY z<@~NaW224m!tqb|-HZS1rac~pC>a3=u>9kM{pv?y^(WC;{+k&khGu*Qn8K(4b(a(V zH%i<;WY{E<$THT!^MuLM7-yQrV0CPz5{do-F!GQHhRppHLWe3GhPwvoF9_VBOHGy zXX|$#nNMdy!CX)F?ltLDXz5fGXIK~MsqqT{hyD|bNsfBuSmop6$`#*SD<4p=5$K)M zsrPNz*ln!mUoEO*o+YuZ!x9)lnmfBP%m@j62rRsI~-h0-zuc8aSx+5D#kCdE!y*abBqK0+WVqW=a z8$Eh`0{G%*J-oD>*{uZZux;b+LMd0D2P<7 z4Ih$*pUEVB{@%M!v^vc|oE*Rdf{fI36W|~G;epZp*8?P0`w1$w)DkXMdYr}2UN!ZQB~vA2D9Gz$PwE?p0F^1| zAm^#ftXJ(Ezk5{Rl6&7v(ejPRGp)2Oq?rAg=!k8wst*-Kib0)HThQ=j~qHXf+V6+0r4rJyU?fn5wmjZfW0yji4(+p85(N8QSY^~xb zL!?K?`<^XtAdV`S6Jt!S-OxbTZ+T@gVK>`Ixr>c+cNH%> zYz74fuJ1$G*UZ&!D3K8=Slv7EvS8<&sxje@yxbeA)FLbeuso|WaSc93E*CS1)rrir zD66{Rk^z@xVn2#u)|#Ta+8HT@@W6AsO=5!s2R-}B#DBt7l2(Yti*;7bSEc~B+(ob*+LJlPSpI9}4k4-bO5ODjo zDsWr#nw}8Puu7rq(bw$dzr^U6Wy3yX!?&BNE=2>3+#SoEJy%MctE9ZhQ=A|r>~#O} z8KO+{MQ6--;Q4Z?h(TQu_TSE9y0-i8M!>ZnVqTY*a_;U|8u{jUW*Mvh0spp`{jyp8 zU^vkxDntnOIH^`BH_BbkIZCi)S7OPFbvxdo4qBz9tD=@ze{cCq)_EhoVNc#~Gkcos z!w1iX%o;AgHy}Y2D-ZZvr{%+npu}Z7$@w7?_OkBGM2`%0Z)Ua{nX=8=8EIN#8j_ZV z@yGI+p;xsvS)XhC}^=*q7(rd&%tZ1huf_$hA+UlcK?!S&{>5X$g=?~yon^Zvb6QOIR?M4F0N&}X^hk24{0k(qYnn>sC!X6XYthW z6dQ?FrN7+MgXxr0Z6P&!lrLTgWpCUF-7?VUnO$YP_`5KsL{I3FlWXOSbxO7R%lkru zvY9TOfj?cU2I)_0DmA4sx-#bi5Sg`jkyP~O(mKV|*hP@erqFykmoLk=aj>cwpW~Nn z(8ix5-DTeJXINhsdVs<$-KZ;9HI3S&m|)8zPK5>P5dzco{6Etl)g7Iu?k|D*H!tDb zMz~q&6qso6;Dij%-rwdYnhZxcXNX8%%Ly|NpWeNXKJ3aZbP8|y?i@ziV7elfSFCG1 zI_6Mr$OlIO@{oj7h)LN~up1FAmu1D2fgc$wd2q%jCTITB?xuM))0*-PRV!!~ilW}2 z5FlbgjqvT|e6$YnPB}i7ZAWZeQEV?Hmn>qwl5eLs8l|2~?ZELLT6tUbbC&66dprUE z{M9QuT%Q*;%TVJsX4K{w4T|LK?fqA$Du%__yJtKdPh-;+w9D)N-9aX5r-~{jcD&T! zeqW@i-5vOJzQ|h-t_p~75W=4_d%d9>m!>f$xQUKfjqyuwMY5&TMF#emk$ z&vrIhY{Odi4kRP&*z1%z^v)#~h>u73WDdt!g3&Ai4(*2nD*>~a3UMTIPl z!g%Dv<>CQf{HqDqrIWW=yLaK#!D0Zw+isKejlfB%p{CZ%LcVpThMN{Uj7EJeY-Q?- z^oMn%hgtT7a~gP!aTMsDG#a#ado#u4MUuPa_Gn?l|M94)`VkE(|=(11K zP=*a4clok7Xc+DSyw@@E14uv>mj4XyBhz;vDKHk{3SJipp_Pb7#`p1Zi|<&)ry0fL(+Z>Fq4`9_O}xNte5v z(7zY}jN)?=@o#C{ZfCMzx=p~Rfe&&to-s_k1p@s<@~-Sy*P+hsaSB#h-TR7L&*UuK zPZ$bdvf`Bu)5w{vobHqZbK`m2vIA2Bz<&b;&k4n@9%cgBl|UIvE{VwY$+mp z!kvB;fPLQLzijG*mCSg$Y2}@5ok_ag{z$!k|H?Fd>pw2gKzV-gq+r*BM*vnEKij{T z{5pR4Qlw&nO!sE{O$TQG_g$Ae`(`P<(Aa;$W8sNaCPruXi>~c1Gs!8K4xqYbQU%j~tdHERAw((l?n_82wjQQ~SOH z<4F<}Mc5uXrAe`@$%#G-Df1yQ?vV(r{z8HU_KQocJ7|9Rk{Ih+>BQ8$dlVwmx6=>q({x@~!T-im?zxS@FXfXAp=4)rNfb zr;BxQZhco&^&6=a`ATvHGQWwX&Qa z_B>0(*_ax5AN0Id+>t>?iGmSl^XSjv&^$QODhRiWN!Eg_L@ot6BC{ncYQFo{)_0bO zYH>?sO=PYq=%(KMnw*6DU(m~Sm}u)WKVvd~K0WHyEa012PtKW4#sPA8Yh1M+`BN%K z=W>i^bH{LBPHweB32Oe{M5Fc1{hGU*=z94q9LDL4mVUzWZDdz)I6k$t6W<3lCN!D zN9LBXO7LAhbRsQ?JJ8fm@;}>xwwhAbZJRC<0hVzJ<~}{XeCV8pSi*xUj#h3aSFiZD zeXlLeG>f0DkR`BDjQ#C)p6@3@pCZRkySzBWc6tQ z&HH8z<3vY9>rs|NjuVbg-m83jIwdUl@)mz^`xqc|7>7!=@Xr6gc5Oa!=F`}JU=}5q zUmD3x(`7|*cpk6oqvjZTr-=(=>(DGdqDp3q{g}ko)D8c4?Ghw=IW4B}(4j+J#bNzj zgn?rzU8Q5o`~8;Q0G-YZR60M%rmx$ih$OWhQ)y*WufI^XoR6&-$FjA#t1qQl`pd>x z`CCos>(8NflG5W}78f(k8-ExRoUsr1D6C0>jRt>3h;!aHYFgj&Ipb%~u;UfHG>#J_bQXp)PYW|!l% zTh}E0+QjZo_N#f#?-kA1Ymq!hIXC5bnw?_^_1`SPZ?^hm?w-cT_7>w7uhI@BFEdNm+0dsV6q@1Y} zupq|!b2Li{hgjV6ZNU_yo86c){a5s69%`TE?$0U<3Brx9mNb(Uzls9fJpAO;M!4^x zMCjv0j8mc#tUkW>%3vGH@XlGaw$FZN5iY>U8Tk?RlxHAv?fZ%Lbf*?d`*Dh!*7g>5 zjRZmYc8ojl4u`-}BUe{L*CVwKxQ1oGlktR+i~{+>x90VaJ@gU&OyG8gPdfx6z2w)J zNsA@OIrHb@h?jg;{O55eX6=_`%X8md4gfjTMywuXPF|#(me+w=@5rVfPDpRg@`($T zghz)^3a#G<00!_yjnLhK!*|Usmaqe^#+32V*JOnA{jwTOZwL12G3Qf{n zf+BO&8tSnkD5&jw25We=V*oVPT#xbe&AZvC@=r4i&*u>%UN+F+BG0ygq8;`is#g2f zw_uQ#25-E&&@S#BOrFz8U9ezdrWq0NO%69y<;`^+42CI}TQX`zEbi}HZ85@QD({)|Z4%V0)mtm|(w}M~4Nx%3uZ$Kt z)1XoPi+TWF3ijinNaQYwYC-5mqC=bK5-9oMhwQ_nSmLw5lkkechnshOGiAu5tc1h< zaE$THXSuST&c=(<4f$!!)pMfjDN7+K(t{|`Ca@6EFANTp>6+$9wu-BGE%>MKW{5GW z#$)!ew0E-AR%|heyliidljr z#BUMY?P~JkQWDzO;K2A_W9I5t4WTY8{#8UuvoKmUoT%J%U)8p55_`6)TU1Cq+Zh~A zFKg<9YD0Xh)4y!QOI3M<4uMe0HcZU2%k{Ec25NsE+7O?`uO3X3-CZ*NZNr}^1!Lb!{%8Y7t-(Nd$rVn* zWJ86%YLg;OC>1-70W6)P8eg?_@^;%46`_g=4U$eZ2@x7Dd6N z>NeEG7AZJZJs90c(){Sayn0gn0VEoivpIcn|N1WEFG|Dz+G9RCz$fdzgYGuPJEWh( z^u7<~+4vT-nzpN2*I#G;Z_V=HG-tUNzSRB3%dal2bFwoE5@*=p)7<`S)qj+DdZ+c` zUiLP3@y=ER+95vkcHPN;kH5KpD6*${?e*Ewh1Fhx1pSS@<*ohaE>U6R?m^X5;Ol+5VWVC#4`c zWvML;YN>d-gMx|MeY+#W{*?ysBedF84|WAg1Y-R$=do#ul%QPVaX ziTRIZe~@nnv>sMP?S_oyI)zLL|FqHz4arIlC5Y{ti-%2v<6LCUzI!s?yTr5$z?^99 za{0*}glND=f+^8t5d;)GqD}B-RdFg->z%{AtD~8_X*fyjffWZWd zlzkD=^Fhm`kJ~I^YYm%*iwpab zFiJ^Eit)C@wyyX$2Hc2{6f>1qpU!QEfiUH{I#3eH^r4zM^K@jjRJ=DfTpnj$+hvi9+{ z>TXNa0^sBmws2o%?h#ZHQd5)27HGID3kd%qRWr7G2UO6G`x4GxyFw1-Gd2o*`CbGgK)GihGTb_PG1q3RK6q z$Q;SP9PWT1{VnRY2o}nF3Xp>dMF4PN>;K7qN(Vn86u+{JL$=UV`6{O@eiDTLKc;R; a40|RX`n$YSz59@x0Hmy;RHYNY;4=+Kff2xhj^~JdS<#`P1jUcpQ>|a z!sTVfVWF^~0002&ZwV2_pX=LCONIdZIX|x@;rv`c%mifw0f4$#=nn(XpFWtOl(-1s z`@bW%t0eJf1kz4I!w~?0M*6P-&2RdA{0xFS{gx30p9Mz+L1&=Xom&I|2mrrD1eM(~ zFS=a+5cl3DrKD+t`7+^S^%-atXHw#;MAj=on0&(PUlVHo^I= z-%Ck&!***+ojo|IM02U6&d!i3a*6eYkZiyxO!tf9CV&Xd@&$;_*b|6P-Y_XRtPnY} z+4Tvz%eF*+KK?I%X9_;{z*_@T*;V&bt&&nQApnF4cu2v<)^-Qu*sMe{|K~crl52R_ z5SM@__wp>m9cz?B(#0OhEaI1ER?O_S@XsSDM81YycV)zHL3oOZ-M~LH{;kM;fYGOr z1!)3#<>7ych>qmf9XxeXqC&OP00v;hFg^3njWCz=^hJ*JJh$gGwFBj{$*~c;h^HoM=0rRhm!9Q^QV|N{K4tFHu($zDwaDy z7>CnF0|yL=Vf7^s#~Ec}b2}`|phP~R)@d2Jfr)tKL9~U4J%{j$i9cM^atZYS(Q%r0 zF0j}BSfk0h3+AFb@v`T^!nne(iN5zqAjmN>Q5}T+G(b#D1rr0q{F?lwYfu!uVYcxg zCdo(>Sp9S8oWGI{eraXx*iT*Cy~<=$2ai8rbQnECz`C3E&GpU0xs?+)ZyQiCa2pfe z^^X_-Wsw}?DmtM#-Jj(jZQ}1P0lghap`H6>`yV?Ash&f8=}3y7 zunR~{L)Rir`B1Z8e@px_*k&<);JxMOlNoSo6PXXdhMuJ`HxCK3>PT6AK!Q6KJ(J21 ztkM5BK8fva==k%pJ|d#hXPAARf%7)j(Ol0J?g9yy$J{`OmH<*sR`2&(s-8`?YPQ>> z^S>4k`M@d}OQ&2xzUhjHA2Q?@6$5^3NqgIkiD8YgRR~FwKt0&n*NE5(rDX z1^f$&0a#mZc}UBiOv2$0=di0c7b2=-(h z8y`CQKTm6g#7}Gm&P}Z~p0VfNa&{A6cSgxivGESRKmPd|W#VNFoY{45*#I6cxO;!) zd|8m0nw3&BokSPs%48Onc9<**K@MG7^=wJd{z90EBsepc9|Hsy5ur~{D^U&k1-Sc6 zg}q0s(_XP|-dUPMzOT`FpLb!#0;Ws{E};k~{A0eq=<*YRJ0g~m@6VQNyybea*xuNm z7fLGkch~WWSWt}2^{KJJ#KS;7TR$1w*)JG1c?11eH@2E>v6$MQY>lWg^vBN(i}U>t z1klbv1{7%M;2p!M{^SJ>9Wr*@tP*Lus0dj1qS$j)1(X-i){v*D0w_unT4{io#-vcN zPoL-xgX5o?`E7l&=$@lRbzQ?PvyZW`^r85cXV*5}eYXT?mezgs->!aMjm?^b%gfko z-H9zy#eiUywyx2x_naUR_S?(s=QlU~*Uq|jCr4lVW5EN6Np&f@22~2i79*5^Bvfvj z6oAA3Z%O~OC*BZ*3!_Pxx^^xLzZA2`flzXCun7GEfW=B3ggiPRr1X5zdBG5T^;dEM z$g1$BtN%feY#YNbkTDW^pyHDW62?DR_iE&$sN*|Lc^X&%8g!8l*uW^Ws+AhlFXt~$ zshf)SI{;!Hu*eG5mVh(C;88qyG;~SMrTUX=Sj=qAu2{E;)WLE+F^Z}FGBMx*7QX)P zxP0a0t=`uyhmM0^+_DUl8X#80ZXYn*Y4M50$RBtMfhr(VM!;Fy%2WK0?#Ke=zI4_n z`sn<`1WU%g1i|72m1z}*GA6<1quDg9!YJevzgSB_T5cJRWmh@x-uMky&2=Hj~nQ{3F57CW*GJTmQ;hS_qLY8;dx@t zy|cPYE-Zc`Q+=6TgZ3V6GoGJ}bRa*8vGNF!t_qr)U;eR^MocoDV?3-fax*sgd9Lu- z$a%Flx#Q`5F`-K1p0{} zrPOfrYHnJfzwk@Bh{fF&$&(fuGme$I;gGSC6nt}a9l@K=xQ}23m7poJ*!9|nuhW&E9+!8r*t=kOh?tzq@EdXt z(IZh+xvS~Z^r_8gKsEvSezIt07JFrS#ZtUF1CcD$P^?Outb=1rz>7U(IfS*UVUmZr z+T^W-fI?$TU(>EBL1;-Pa&1=1Jedb51ze-F05~MQI7UFeDq$8H;}7UX+{~gKx0?2@ zN4@`9rYOZKV|r}S8wMU5L;UwO0A$=ILNu#BJC`6SK8py=3qu!s0yMsT0>^g74dlc9 z*A%c&_1YKAKnIgXvB@p}Q!laACfbOZBk`LKNF^LuBIaTn=%OU#(3SD$5`^z(iSM+T z&o_Kj&qsmpGUB_O-+%r!1y=yn>2w4kdfD+`plfqWOaFeGX!DTvX<~4Ijn?0qhEc0M zq28a5;0=?60<=*Op^IWY@uW`#A}LGgbq2I*7vz^y2pl{?$hzXz?#+oxdW3X(U|I>l z)(Tc@vkX)_OR$LAG-X7GN2MuJTdJa^7L6zg+oT>RYR%XEy@zOkq)S!<_G@xTt0hcC zVDZ4!fsh5QC=sh=A6&vU*b^R*uSBfn!obehD@rt*ygqU)aN@Mr=&%RfRr?;Axf{v( z?!3kSy5>K3I@~tp64Dcu+OS>9ukrcDW`!H?4S8~@&Lc$6G`~W+HAIgtbEk;_o}%;U zJp{@%n91OKqw1dnOdzA*9*aheGmSyl%(Av(=L`VEVIPjn7G(^Mf|T4=1;^~4+8yhq zT&O%i0Vx-Qpo@v_bY!s#)G6^1L{d}F)!hn}Vdf}t2pV*z1V%0wCK@8Qpk-za>L_W8 z4(Z>|*I(QOI(PUuGAZR_jA< z)U!^f2L}F^qY1Z7xDWS0QaLm_Qcg$vC`aw0kk(ey6UB{l0BifE==;K)D ztA-Z;3@GnM`FVbF+{Qr4yY)BrTH`SF6eku}$Qn_xQI)w3QU_Sr6gs3rADv!m;^f;g zLa(Xgvw!Yq9zcRMNEhMq3b=*EM`09_o;gl;3A-l%{vEICqb7kC}c|o2GJp<` zKiZGeX8Ta~F8J7IFmMdV^%B>>+}wMlzDK5$6#r8bx<~VZ{azt-UuQHg_10ta``J?0 z=~@_n@aTTe_XRE}F-4$;sX#X`7NX57d~Ijxu4Hx}H%|YJ zc-eu~j=xfgu2!3A7oyKS{MV(-bqbtq7W>1TElF<+SH^i@>?gFCm>Lw?S+&PI#wPX? zMl7D&P5bB5WzSUDpr=Ola;>q<_U%frR3lkr=lXvbv4j7XW1kH%Qfs*05gTCd4GpmA z3X+mpn5AZU08uJj9n<&xj#3}iW4}MBk?tJc`8yrN7tO&QYA16Sqe^uXjV`;3M6ctD zN4u@<)LyD7w_jI1se_)S>vagmx+yz-DO47n>wwaxOfvSU^R#^4+%kI}naSmXWg83K z!y7Osq4S(=s8izRjy4kKhjU@`cJks#Fv#M+Y){+ss8tK2u1 z?`=_!xPtMt*-=^sr?kJ|ReI)L%J;%?6zL;o_h*#_6*~D=Q$GB|lj8D3u9`d}dEpNl z-tbZm;@SgqMAIydD~i_?8(7QsnniNA_JLDQ3bA3xeNQursU^(Nv0Q?xA(d3eHPw;c4jJl3ZEaG({E zoFV|Tdb!+ba8noS*nOmwo6JR1`P)5ZIds*S`?6uR=H<8jwLy>N`@#La-SNckLx0=O zy07gpTg!!Gi(zdGda7CyE-4zX*pdMs!?V zOGR950|yA#8^mW~DBypYgOG5$r{MRDIBxnp3ZXUCQeoAUt3NQQunt`8iH6KG-KWUu zPc7O|H2yOTLao!gE>O$h<2v}q5MpOC<)h_dL(Eqj&;K^C-Lv~#p)z^iqj^)mFxB%m zwJoTjXS8titJVH4K9*)OTTa!W?fmcQqwqGvod z+xt!D@x2?pZ92aO?dt5fW?6^+52b;yc|qN0UMPp}8<86Nw4$S*4E_CGk{PCr6#xs%!};z19o;jKMXvOqw>xn(5vr{h9#3d3BCh%8@_ z^~L9TTXA8b6>9Fxvi%;|-btA{`NRdk9+br=?1{B13!1TzjYZ9(W7b!rQkbJ|rLx3M zR;C>Duz=538n}j8SpGM0xA&T%OHEjjhlO4XV^uhzV^)@YSjN0>siAF^7-=+e0_hycs-H{)JY8^1Rx;yHMIvr>xy zVk`n2*!a1L(u9FY%bpN}O_?sv5^Z_or*|U}FS>w5$`ovAnJK20zxp8*Hz2f{cz{vwU9N>9o6rw&P9*O8#9Ff};#3Ko?2%5wG2HLK#mO+&w~_ z)k|_^<(H;KD^@9%D6q{4Qi;|&g@d$r>|RU-)1itcM`Gz{=g+sKg|+n0?*WsO(e1~I zuX5Ig>%C5vY<kqm-T7uiNN>cbq2fVb9Kh0@{K?_5AOk|v%s^Cm> z$GL#khQNBg-o&2@_*uKuDL>Hg7x{?zj+~votd=@6E%eQ4XX6S`#WGN`;h7sV-#ZiG z3F(`xF9Nx=1cSw{H8M4ej@#-Io0be)Otwh?F5u=PVChc!mWRF>m~DIA>sHO5Y(+Ti|j`# z=45sNj4~4^)gj1fLI#ir1}3DQD;>L3ds=peVJ}u8T72qE6f-X>A!>~LHR4NI&Km_h zzT2SN+l?!?;kTLHK((jk`;;meZ31%hT`*_0wdMGbKWA0%ql zdOFwv@&b-P<3y>#@%<GH%z4-dNbYCoIQEQ?S%h?$h|Iyb|~m?A@QTuH)Wa8N2k| ze`v#pG-9U?sq2{UUUW<>0qR7BCIZHz>66RjpI1=Qa>jb}&;eFm3zVb?uPzvEpa7(B z&CkYFjt3MgI#}}0d?z#=KP7>+%H`C9zbp73onpme{4XfFLzq=ke&73|p54h)W~(iR zNa5xL+9U)iIuDcJhW&kjn}6JVDABffAidE(U7TLOwVtW|f(OkTPq1R#&?_j~{O=1m zrH$1;Kt$MU#}3vwyJ8Ze@o)Vs`L4LXMU?Yoi#3V8-$2e=#9m&v-ydakYfx6d!IS%5{{uF`7e7P_LV*7N|`y?;0_`ivIzmfV%@z?S8tB>5H@c-kzNOL-$@d_FqVIC zRHAlK*>;NihLG`Oy}nWB?}cfi@ki)7Ft-f$w_K)pgr z<)Z)N`P(fvT1*ypL0(FA%^c|}gaJD?u*E-3bD24{e=uxAa>5P-k~SahoRp#q;00>%NF7SffX>-4(>`4%T7Jo@it0{Ko#c zFv^N?5<$$pX~qS^%Z(` z6Vge`x}OORy7;E@=a30qmY0EZqG!m`(cdPT59?pCx6HR$R<|Q3 zF4YCgS47OoM|+U)dhZjq4rknI8eXqBV*P^dmBYdKwMWb5ttcp zJby%7t_Zt7W12^46S98H?*1_l%b-G$x@wysCQRS-Y5hQTqLSd@kMQ(#Uu$C>sjDny zZNK~o4B0ig=KxmGDAKH8+$~R}#WtD@`|w5-Y!&a}Q&cZycTV?H8C1I0vc-y%Dp8V_ z(IcwziM4)zva>Ve$NzrOZKplvY;DN#y|2Ry5r$Mc5TMI2vESus+wjQT5Y?ey*qJ!G zo~I$aOhNUMB@b2v?dq1$9ZxKy$$Ox%!qP~aY+r zIa+PEK^nJ!O9uxJzHZO19^#ibxk&LNuj!OlzYe9u-NOj3r$g zqSFHF@5U(W3D@O{FpubvgWmjzT15?&hBU?=}?%_pM=Imk@jn=i9soN9=s}48C6~ z(MHELy}`skd9g?dddD^RqEn#gBkE$O*z~FBK&5bw(4b;tTp~+usOR);=;cum8N(2_KYd;=y@`S@!CBv`w5FUi~r8Q-&bkK;Xd#Q@gUZ9lS7 z8%vDoA*y#bh;%{g=AbvFX>unE3HJ$?R4^2pGe;+Wb5I12j~(x?K&@KN z3*`yX-r#szf|to4k{+VF(4LcHOZvB${%u;jCO6QUi-IE^G388}a`#fR)Cn`jLauU! z-HQizxRU{pN5T4kz`}v+>pmV*J9VY~hixF7v{Fs-+WRActMVGSa0$xtN*Y$51(T#X z`P=tE7kzx?9%)^k*JmX2ouFIxc`2sk!TfJs-})PD^%<20a5FRq6HyPmA$3mK8k;!P z9b8~6Lzq_6pAhYyoNwb6ARU{FdDZ(4Drp)lpk;uzMbWb*8!t9?C8>ta4|qPSw?|;D zXc>5UWK)gKGqW98Y8-w`%|G)GzYX?UQ|D7&Mz1`7n`4!gftvnf+#7F4jg$q6JSdcl zC7@t3*c?AdP2<^X8U+dUn1b(MBZ6lk0pE;}7NV{DAtmN#>Zfp-MRm&OOf2GNElC_f zlUW;d-xH{i6o^hrW{8spvENRs7$3La(tP&L_kud zI6&{fx{8(OACz0yzRBvvw42pYDy91I*(LI3goEK8b{Y|PB-Wx9 zN_O2k3-tB1S~G`wj|Ag_3@DF!BS`gRzD$) z9r)mEA#Vfb9zi5ld>G`!9YCeZYnlX+SzvprOVR7nNEz&~` z&LNsYD7K7?(>4uW86tsIVV)5CCDr6kq^hU2bBU_ds1c*X6G&hVBBE5u4mG@b#%Kfn ze_8-i?i%e7H99#&`?T&y{Td;4g;5nFD@=f;w3r=eX}i@*gbG^f;ZEp|8)5&hJ%=#n zo#{-$TskAYKLw`-%DA*i^6Kfe;9}Opql@FUQA=X#th(}jri!C-=zi2gNa`f2o%;t1 z19F7sJ+P+qDdZ1p=LUA;IpgpUYPQOSLWFT)YX8CE-4(d;x-%d~j{X(xt_JbB7mwWk zA6xN#w=)7biEzL55b<%j7W`VjP#c>x8EZocGDKP}+W$w8(!zXh&*+z^p)xQp{lynC z=?B0Nm&f*GEIu9s@byW#++w&tGRZD&K6oX!0aBrnOzSa4x`t7TYq7+Dq%`zDn|+Kc z5+@gF&{PT(W)c4(DZM?U8?jOlvV_iRh6@3bUtz}bn(}&qik2VdNRK5$v=>pn4pver z&Gp;d>3(=Bx>!z5Qs=S=89gDoj&-A>3Jd4;NX_ttl!PcN7{V2uNg3(XksKvX2bYLG z-QbsY4(?`Eh^kmcDCdINsm?P3YQ8bxttWYz0u2wSNv{t(o_-@?UILdUWV6A{=tu4+ zBF*7bu)kGUDJ5nMrja|;@o|41kc}f)?2Yfa*v0W@4ZLg+doGO6XKh$6QNCZL^bVH4 z4oe`xI(`?CzXtMu1j?d+$=p;UaHSeNK-s@nC~N$TL2 z7f&PC?GlhSbWgn>mw-zWe%mIhi@`nB$OR6H8>wY@R<3cmxR-1$;qnHV!MyzNXFVMn z4m)5(a+9=~`9PBwNWo!2pA^=Gl)-H1@HTP63`2QO$4N^A(nqfuneUBVu+RhLgcA9TO-S&9w1VI@B)#l&|J2hw5_{V7{z>q28HM%8Ao zzA)S$FDUaklYyc(6%WMDH0fkhLhga2_Gi}Q4C&KV)cP2k(0MN*+;a9)xS0L;>W^U& zxq5@|M?g4HnAzZ;nc6>P!Is72m!EI!kHOpQOfnz(fi*RQ^CM>V2rEq18(Qza5Kt09 zcun(yN#xb!^jo$=7nW)CqGbCWuxd{FHFR3U7MCM7SmleQ+9Hci`HK~58;90?diDnN z7=ChJ;8_Zmg5gsf*h!FJ&ZCo}ls!YFroTe=U}L3`6o&+&y)p<4oBn*1R@0`IE;=ew zcy0tdyq`hXK-z*0r*(%NoDNSAk@wIbR9D!^aY$KoRyOFO6XZ9XviTYv z=IY)cpG+C9@0@neEpDfi6F5F^CdJ*iyn|PPJbXx|OQ=WU%u3pBRHFSp*@Xqzk;d%E z9x%{>5jm~=5pt#b&K+fDatz#Ny2Lp>DUzH(AUCTU2SlJBQi5bhQO)r%8q!aRT7*1H<3K`JGWH-={_O;$QTE87d93u~E@b&W5>cq~P-YcowJrUeyoOxX5;ov=W=tpB}x zQ+^$W`sN6a#LUL#tmeX$soYm*7=j}((6-6YE6pC)0Z~x`KcvUIN)8qQ(1spVw1Cw} z;3fQYi?!l8IXaWVHY<0p>MFxt=N~xXaG6G?v~*l5bhMQoRcc*itSn zN|(n`l;R|k>m+~;zEzOixdpo>2lsx6kH7^-HTi~nr=d<550TENrX;75hp@ zO+zy*Lm+no%<4WYVwgY_C+WH_)2J52odW!2Btzw5s- zJI{l<(=B})lbg03ZwN!09~<_cU^6{lndrT)Iqg`~ZW>ct?76at?9YI~#j**uOAB6b zH|loby4#L9%wn}k3^-+48Rvbh6zZersxA(~bGj1IeLswHS5fIttSfY$Juolv_YUqu zf1<8-8lCq?UpX!p82WE{Z8?q@w#}&){#$o=L0vTLiIT;8vukE5XF`a{(1bRGl#iu)%zj$BnTWYjU+yM$Pk z^$WvSj}%xDC$WLQM-)-@anRtT@2!@pK{}`T^C&#YFLw_Gd%+YYX))4?t}Gz$Z_O#7 z2$T5wBrvZ2W>}f(`{lXXW&}>Y5b5=q(>;+?hxv78xlMo*t+>9lj`;rL$Y^g(8w`-g zDa(A$Ki<4N2O7gwLO#vJ)R58#3xz;tfqjhJb64^4R^htG>JnF*31-d@%pwHobGpnQ zl)5>|O#VgPrAW_AB2aHMN6iAo6|Wg_Ct2ULwk>L= zbzC?iw+ZUf_lIpHzrG;6>-cD7v320$=d91|hMENs&!Sn{0s?h=LbI!*VPZ4$>K1pr z{^0ek_{Vbv?=Vo`Hg2S>hwN`~b4BPWjFwW7H=2NX`^-ve|06s3&1wI(v(sw|=W~?e zcKRXOecMk+HZ9w0m#Ha-@m@^0zbWr`usP@{d14!4X}0Zs+-7^*`fS8e$?7E(U&TGa z^EPPYbxbX{%j#0OsF2@6sW|@Eh%km#BvcL-`Be|nnr!=EoMA6-t zKv!V-DLfs}UmnMJ!q}|2zP#q0x!xYPbp6F)9W6G;sf5E`T(1;Av9Y$|E4BB>Rdim*gek}LEMin%Kie~;IUj)6HNB^dspS%t zTQe@cbh-BhtL1+6Vu{1W2GJxHHqKSN$e8IJINVWHy(5?Y+%&7D&EYF;HzsKGo@^ji zLvyntes$apzcKY0yD2XA55fCrFcO(u?nX_|H$4%W`I01=k8%=41BBJgWfL{6okU?S zB3EKjhba35Al4>H$Q+x2Vd&U((=J7#=~!n@TVGo8KcRxH2ESPCRD40- z<4i>n6SiY}BA6Ny&%+L1&0$0%vqyrZIeadwAga>SzpSpvCH+Qj+dfWi!;zn{Pq%faw%%M{_Z{RNkm^9eXV!<&SMXC z@zq=V&U$z`vXP`N&b@5@hAnX?>SqS}qV${xziJ%^x4JIMIsV2d$D_Bn$J&Ji*a_c$jMuOc~;}L$kXJ_i6f5nuG$)@>~?)%cg;Ix_D7bL`yFW(OW-b@eUVIj6iDT)2{V~^YSmvntSFWUB<8KSZc?09S6I37w5j2O!3k+y zXcv*YN!}R2NV+-j6(sSrDjd#-NS;?)uOZ79)t4=fhrOKL-lz0T%<=Q;a?GxyyRO56-{r4p$T|gcV~-hEs`zXbdRGmZGL4duCy6x63CRGRybo>@0iy31m!qzFa=2~2i2 zWBhd|Io|YLM^^t&U5Qok(G_3wqrWmmT%nzKCnHZiG zs3}o+K+0+;JM-9BM$?g<7OmnP6Zg%<;Bx*o?);E)enl}-t1&C7Ah|Y}gV!F>We1XD z<*JLgsv*k&Dm69J=qfTDYNJxn03Fj@x^v5&hLBV#{*f(i*Lr6PkurjW$;HxB<_FlP zc8F6b8;1I5$d7cmU}(%~bv>r%y<`*#;AcS6bgYrr|*{o70x zvVsj1MY~VwX@Ne>TXkYL0_Bu1$JMfoY&G_DY-3&AE<5xLsZ&J9jUq?9fL{1)?K_tQ=jx>4>D7r;n{HvW`pyE&5uWxB@AS6^DcOZ3HTWrADaX1T{;VlQ zh%okc%a_{OJTlK{)XvVxBQv@NR9#U@(S#7FVC@E{4&l-31M*ZzQEQ`#2F-@$vsyFpkd~h(cq~K|biqg7ShMYP?b)L{IuNk+o zRuPh-1$Y<3HKQARjWMv^yk74QkY4;wOn6g_p7nN8D0L?gUE%7LKVJd3MKZCD4M!CU zHpC5{{b5&{DvB~azQ~+C!XzD*+f*3twiu1Wfoq5N@#~j|s9+Khqd|56>oc{WPj*v! zV4@TWXdh1aCo~aWdw^An@;fs_@BXQ_2!0@oY>)Z#hRy;)FsGM7?dDWXqjbVAV#@kU zFIjfJHl3)HwPzte-Di`q8Ex#8MDHV#-2UkS85`pE&T<>TDAGtD0q}YpBt(jYzC;YM zs{!2GIo#sZ-7$RPu`5nm$U6P@pJ$HPk+XC7lX;Er6Kz5K#}tU|NA8EVX$_@IpAlQ- zTYWYCYr^o?hfn(f!HC%~hy4pE9~$;S_U5~MCS3%e4Ah|w_|vJOo4U8eWxEf|H&tyK z#$JMJr0%5c+1vQbx(xGKx8R4Ml93`tQ#17%%2*&%Td>0zyiG&XP2g~UBLYYgOk0EF z=TdQ|S{&`@A}ZgsrXpk@D}UUj8)<0c)$3}#BlaRet@{t1T!Y9dFt93sY4eBdM1MI89CK6uh~@=^ z-q0J*)fJsSI+nRinGpp)WUpYCVU4sMTP&|jDAvvyPIyYc6mzsvQ?%P;( zw#(LX&Y8v|@netW%Dj~Ji82{u(KC%`6K)Vvb_nN><<-6B5z(`0b1gI9q>(55-C3I& z!nBS*VZ-EYeRBT99>{7Y{?^TeI+Lbn(c+R>+-?W1PW70^g2mOIplFL$hvL~QWGDCFhyo^e` z=UccxLPVz`Aq~&S(h1y*Y`V6!6=o$h9_ayD%ue^{R_FZ`e{-y1+bcpG|C1kM)1Vk# zZT=o5lCM4nXRT7es{~svMW}X{KxHyOS1gW1X`^aH1tJ(HWZlx`u&?o=LUbm=S?=|d zMoyN&@k4xrd3L~?`?+C+B5oX*Q@U=XV-*#Oxz>>#``rlV_A@nw3Sy^L8FhSGKB=D z?1AU8lu~8=sBfcDRJsB1af+x)?bUG4!XPR*B+56$`G+lxDVl^2cZO;U3n%}==yd?f z_fydfFx~szhu5$3Td~#jgif!fG0;A}uA!?mzilw#y?B{4OAQf~9kQu6rTfFgqoAO0 zd_+TA+f+8EK<%t3he79y$<=msW&nTXHxHhP)D9z0Kf;f5r8H$|6Nu@TBq5W_B0aZp zrs)n6N#!OpZ0Oo$gmViKx_;g%Cm6GV*mbSwfg9L`DU%K4omNQG@Pyjm02F!>^@WL3 zer>BnJH<-ZQukg)xWgLf07rzX!TWv}FCTPCh@Vunw%aAAx-Ld_o{NHLLj+(mkdL&W zg_?)s5Y(lbI+zB`eG&Sc#c-F(1##xl*U_-3TO(odQ72zWjuj{GG-xJNCX=LPlS4XT zqA9-dGz}qz0LS^Mr#eO+1wgfhEM0Z~+G!NP?MybIc}Q#u6`+^Df4dpe;K|Ptbw!XP z4Bc@tM3Ig^K1Vf=&`w@%N3DQ_4SI?8{hTOOQ!&;cTPe9Q)04J$FbL5dv(j&VO7|bi zwPog8cF~TGwmM~hUXH@REdN1yKN!+2$f{dpgTld9FQ_Uo5Qo3cFbQd%sub;DKI25DWk+76|GBQw(hSQ$lM)iiG<_P9m%h308r#$b|26pv3D^__8lH>Byttqd_h_|I16xG~C+*?)C_-G#9`Bdt*32 zv6Q#ii$$Z*4_kPH8esl_knBL>@n(Sn?6#Olur|ebrP4^#Rcx`Sq%!Z`l(pZT?tH#y z+5Xh+&wv9Kc@4boLFB}JWmqvH{5?wqP)m_n&ZA5B??GQc_IeCf8!Zh@O<+q*M^AJ6 zas;VriKnV=6#^?>(ORd~+by!2U3O@;s-A#E_@6zlD&vE(b2J zHZK<@A0{s*AEuR#MfoRtJloCWA_P3wejagk>oof+`@6+=rU!qb*hm&QnIhmX7<<_% zosFN460LPfzl3I%HLQa|mWT*3A#C0`)*){&6KM4X_^8Eok@h+v;_rp>pwm%H5Y%Wi za*nLEgIDMfvf3r9#P~X73oDX#QHHeCXK8MBH1s15%zu#SBst-tY1x0|X*b7BEn^8y zFj&#Z{;urz@ZRw1wrjJ6nAQW<_^7oFOgvH4S@#af;*0(iakD73lEclH@Q}2oD5E$1 z6$#iB3DBnLU#6#1@;dPJy12MJiD$6T0gfsaCgYGcHU2yJ0eqTAP}adWtoAol58W6a zVKZ2hlRmiQ*m;Y^WG#fwFqI_bnUo9T^)O-S;MS3!ylM7FkP;_$^dbUGmqIDNc2Ta= z|0_F&1c9WZc}AW}n9SXO+9hhUU7F6~AmkV@nIDIXdUr}XERlPLRmPz`_bbX`Kp9zh zF^!B{rQl9G+^tIpnfUP^k!MwwU%e#l_9O92QdNX{R8wmA7fao!iD{z7ULBw*m(kIh z9znqRQb~Pl&o;+1S?5yWNBnuMbM2%nCF&|=&FvFoVC%U_F9&h!;%x(0CSUu#MT`DJ zTl+_*P^5H^fZO;$o0*|WAQaB7u{(e>u%rqwjdk=R7Al9;m`_<|U;N7V%m~rkc<3< zTHj#pqIM-r_n1)Ftafm^2ghz2n%5S~!veF*z`aXmmnPvEAV4*Ku?Nh*PKl@`r$kkg z&yFP~>t%%APxy6}@twrJ^-)tTnUAjdz9_|j9LZ!qDUl@usti2m{satE=#-fhN$vG` z{hh614gD7qXWzV+tWzufS!J#&bYE~@E39sv1Uh00W3^Taz+mceGWE8KAIAo=9) zQpZ1m%nite0Z`AjDS}%KV>W`4MOnTbJk!)DvrWfst^APw)@W-?6Qpy~Y+HH?`8XL& z5V?}pin|OBU9z-4(>0G+!`MiTT1Zpm;A=gRp^A*OO>-a2k2=b?Z3Xbi?K)rG8^-FNuSL9>+iU)dG_lr zvZ6P?6TZ@O^CkK`qeQjozvn0*WrV@_8+$ur7s6@l(_QCq;z=QwVqSRN0kM#q|ORk?_l+ zGD_?y3P)qH`U5rgm6bIYoC=jCg#xlyO@)zsbVNwJf~?8}Nz>o4diiPX@#xF+_Rs9y zWAnqmm;NHfD6cu* zW*)F&3Pg!cqz>jZL-J4~Xs$+!zcU5P6m^IPlyNAM!GXrcDdqJK^)~<-i{Oy8XH;Q^ z{i=@mjD&~n|M+udNvGTtjB%V!F=l)3LU~q!WmMr7GZp-G4p)^Xf^OcVTB}LhVVJ}v zu2Q8GF)=;_`M!nDIqo>_9@Mm4(~EfTLTAB<=gkMlJ1Oo?N79-xj+=+Pk)UlJrAONG zDTO-n$BRy^!7~0HkDZB!2*K@u|wb7i+gY62lr@Yfz` zmg4-4pw&S%)@K0cl4J~6oT37hLYkSci+>0H3(&+2T|+SjZ4u7=dVs`DMQ1S{eCN(` z9KvX(EP^!VwbmbheJWu`6I9A920XN2V3f$_rGq6bn)+)=+;MpR7?jAHz9IGpiKoF) z?zTJyG7hI0-@CExj-yP+U-^2VXXn(4CxZd9WHyb?*%x$*>tfI9t>zgEus84fR8;}S%-NGdFFjSbDsBj$)dtmqKt;1 z^F8Cy4tazTQV)q~nCE3c!kZ=5rjEry!IDdD=P#)u(yGqjgD*}2p1VreZEQH2Xz7T* z$|W6i5`u8Lk8?K|V!qwxtv%{~BZC^I4E)2=4B##+J!mH^%e@>v?%a#VNz80hVT#Ki zUi`RVi#V9hcfYS;o9r1tXIAHLuuy)5j1lRhZijDV1}%IEldaMY<7mqP1v-&!&fVesovRdrbS} zQ2OMif0;+H$6AG@m+7Y9?kZ@jD(Ia4nPQg_gZiHK*Owep6S-fr44r$g|HxtbjB@ zj+bXI;!7wih$;tT3{-etv^@+6r_a`|t&QAJS}QT`;{^~2gI zo=MU<6hY_Q_2zp|ak)&V;XK0~(p+ffw})80W;3c2_V#M5&@2bX3j4;yr$)0(N)@5G z?-pyCX}QoLkt3*gpG>!JdOc6o@h zO1w-E?=bQDIOxeY%it|jLG0F^x6T)M*&;3=piqsFH;#7#FFS2|6Wk6^-p5S_UUvba z0vA6dndQ?Jrl`Nf@>X+fajuSKO=TK;_PjHJ^|qNHQi>mBgv# zmEiEq>_vq^yi=SC(XLsAQIaOOTrVe0FNxmVq^Pyc&SS>iZ)&{j9P+oK@}}Y-P!R_J zj=fB*Vv+Q)-QQKr*suwS$LYC|Yh0*{9f;o2cr1v+8wIew^XYGLnLpmrC&(vL0P=nQ zrGKsBxjh^`o`sUrd@p8RL#^1yLS6#A;U_je+B2E@gWvUDQP?o9p8w3LuQ4%HFm`H` zh%mq(ieQOWge>;ic(Y$iy*QJO;!DoF`7Ci07DMG;Ke2? zO4Z;Tu*v$AZtP z?d!Vhj`Y#D&;77k{>6~ zmw_mR#1f0BOl#IHEUw~!_JPl__0$wXGGm3=B5BWe#VzcA7JnZN%OZ+UYaxP4Bxxok zLANb-J`Yvu;#dmNDp%GPsyk=1qE`404oKfcI5^$x7co}||E9M!giN?Y^0B-f=#%F? z$V{WpNZ43&?)g0Z3ZE4>44U1ivFAy5+r#X?TX%RthkH%+$1{!JR$@V$k1F=H)$3oDA~s`& z<7ld4g~_L6hN7bTbf|e7AZx=SNi+P$_-YCNQYXqtI7af)*Y`@PvQA*b~(ZYr( zzl_OZO3|cC)~!^IGlMX5&f$+$eeb#DRe9>|lB;GwA>FHLMjZS#abN2@L%5Z)X80ES zMQ{VAACy6A#)iVfiyi^Z&jN0fp6#X#de2*kNJMZ}FBr1;b8ef5^Hb2^@l|%QArJt| zm9_i!NJUEemrycE3w&_Bv2~#RGqvemgSXGA&9FwSpV~iW@Mie0at@KSEvrNDwVSHz z8JU3V-z4{*j8o1bYoP40VSVMvX4Pc>ntsVwMvYt@6482Wo9ecnev1K;doJ*aj*jij zd2dKb8fUAC6UI zCfHs>s6uLub`9Xq30}kyF_&Z!#}|gTd|n`5c}SuEdPsSQ%-T-3JnheR%HE;qk!a!m z#s6S5LdtycW&1mHmQP@BOj+jqn!#*^0F4u>q*oV4B^TZ@u`pQLWC>(U+eg?3=`2Jv zOClkH8@S=7@InAmsbSC}%%(HO3!-G6v;+Pv4Ji&|NE0B77aI5Zw=c19YnXyq-cs4d~$Gd5Ii<4{PX_>{;(3{lXZtFp_QI2Kl&y|&8~K;=+-in2lR zfUS5*;Jt6)FZg&tGm@zpGjQ&GktlVjo6)}!5WC4yoG3vo!m@;yuZw+C$vlnf5WK)T z$MCHt#B9}D1Cnt8b%c_ERkYx%{z~=ZfTP!-$tK9;@NrA*{!e93hN(I-^gH+`^tG@{ zGO9fOEot`bUo9qUl(c<=ayb2m6br>tJ=QMpuqge*6d%Icdt40FJ97#Ngu8DI>VS(3 z{3#`IStv%SwVHU!MwKU8HJa8Fp5+!?kEB4x?rAF${ zaFz7cc>@Y4tkyRGX}? z46nn-+E1wcX=>1_nr()WV*+63K1sZAa5-!7y&LLQ|ItS?AsKtsise*lJj1=D?_fX)wL1Pv47jOO)yEzRP-0Zp?3>`kGD2lCHuUftQ zhf4#%KU4y}lU!sx;4y=Th3=rEIp_ed1V$hOl`Qs;V9TU z8kKJBg8J#4eW?}Q-%7rgx;a;KoiBDz0K^|HS#`zYaXj<$OTd@m|BJn{6gliMM%>r5 z7ZD?qCXk#df)D5BvswohbmdqHApycuw9&j2sV=q69b)7C&r}b$#)0t? zt2dT{Ijm;}ndZEstry8Ab?FG`yZYo7;Q@2r*#%d-JQ#jC=v-AB*d_D2==hckWgW)QJ zN<~xck6Bo`UYUi9-c(*m3+~#Y=(1-#du%@&v&b%Uk1bX)ADMHmo$o2@e{ygSvkHo) zq`TSW3)_#(-YFy}fTX3Yit12-<|IgadpopVp{yQ|GMnl3c#nNJ)wydCT2fm&D8bDp zDo-OqXhd{EP>P%-#gwIAMph7ZaocEFX2JWl>u3Faf1jk=G1=87C6sJ&)Q_)sB1QvL z_5Jmib9mo`zwi_}-P!5iK0{JO^3J@Z?~Z~8y;TGsQtE*sijzjCKxjE=36t?!&BMuT zvQ10|X#6F2En8y1K+{_FRkJgYAYC!T2`s>@6EhR-K@*1avOuio<5&D8n#eqw7(GWL z(=`(m3?MlYbak>|YGzbP24?y5S z`Aj}t670{X_49Yiw%1X{3aETUiPe;GBFE)|IT6FZc4a#}XqozsxTNi&;0j8?% z{PX7^E?d36f+66YBrDOg^-5Muc@7W-$S3v06J6GZBe8)_YSayy}HCz zP$cSarr%Iu)|R7O0;hHnrfWVlY3*)Z#C2G+p>v)oJBxMM)LM+xrfbEMs>x|PdVn=& z!z_&ksaVGb3iupCd7-y*Gb;q>{CArFaM@keJ@D51nDI6DSB~71)ctgWujS{`NCmf_ z?x4c8hg$|iu3v3-s&ROxk~>_v#NoII^-CmarWeWO^a@M&MgHu9^g0nB~?hZ-3~i;&YAV8 z+kY3`mJSl#rn?*Fn)oGQpqR)42JPjs1xo5__`ow+6McWP9V9ZL<#u zfk<ij2>Jr?VAN{PI(B@7Vs&!Y39sjjn#5UQYb_B$Fo z06p(b<^C1mqwYZv^M|4B1#z3Rb(*M(mq{jZL*_7Px;DnqqQ;sV$yFba?``K^A;RH) zbL|TgEDl?gx;BZL-nz8royjP*BXmI=v_ zR^ao!yT2F_Y)oWKwvgltd;AfOXZ+Q#C9e{+_S_;P=FsO*mv$$(T*-%aL1QEbJ~4q9 zDrmn!lw7orvj(gB47tGU7mO3?{O zU^A}txTvhgu0uIr+ukB!+9wI-E%`UY7q9Mb^S6o2R%pn?VBi_vmWcySDx<}1lNvFK zJWFFDsJTfi(=lSOEB)p-Kc0YFqeR1P4KBQEfN@;lGX zr&qWRSC!tW)p!88i5WnNDU*GH8MFAnkN*zfu6Ddq3GYoCR^%8yCciCN4@H);6gaI$_few0TBZOrQ zl(lBKQE()OaywI}R4x5-|A7dnj8;qff=ep`rEpQTxCuJ}D=cUqmJOOksT3Pj8s5w? zwY2IyD(r}5PT6G5N!KB?j1LKTG1c?^uMtJ=VXqhJM;r%%bT}KxJw>Kf3#CsV$d&Pz zlh1PAq>97;0Xq!{UzG`?ynRo0l{BCm!TGv6ICPyt68KEAwyBIGbOB56ktG~TsquQb zwl&Usj$Ek%agb8?hrxTIXZqWS($;)2*`inu*!-f?jh_~MZ}tD;HSUoKzwfG8FV$c2 zbl4bXb$pJrZj>1_V+aF5|1bWDMew3`lep3s~Gw>sZ{dN-#mB%Tum^4fGF_Tq3$VwFUsMEW3;J5 z%A1xApUDG#|3ek(+_l}+sb}1Xr6&GD<;WJK6>HH6~^6reQ%BwV66`i5rvDXnFN*0GP`TVowtm|=LMJ4l; zN`GAX2c8GA?!Dx73S!o&9+n$VW-kR5XytIndQbh%jqpvwzD?{#V4k`k=io|~>)m>q zEdqwzd_+ziud6#XL!gt99?MHYQz03B+Or>LldV$-Ry_$^o?eE@0GL{FVTXG>Q$5VL zuT`DR=Dfw99*A{`FIOJ-p6n&BFcI@i@tDNZn%TOS0hQfa&&qe@^`f!)=3eep+)1;? zd6KLo&s6bDeIqHU>733>__L7wkKxP^HZVU#$1=Gqc-1TNrm`Ob!Jp)o8~o=Ya6`1? zlz7>&Aa!}k04eLISc@%%*3w;r=NX`sMZfBMzBdPb2DROR-FBjh>6la6S!$s9CSPRN zy?l_m@{Y81u2fai#(qbHa&7ykoyjX2c@b4ql5WEG-?lH?I$>`kl-wN7nIsz&e^fH3 zjUG zR$C65`i12@2+$l{`4>=Jcc?_!3fC8J*~JmWrlDfj#}}kH5!EX&5~RDNP9g;Mse_IT z4RYpheCE_iP035zZVpnyie>@74bIo(FFBYohzMZo+_H^m#NNNWG6{7UG=b$Ze{vZ` zhe!2KS2t`j0Dn}zDLJ6`mA^q|GeN@phr(*@UOaLfk@mTe3O2mn7!@d)PWyE#tqI2_ z^LRkV5;~fZVkOM8YD(VePxXpLLv(^J!hj=Pbwu~=Fawv}LcRa%h!~O-zelcAJ8NC| zw*O=#F)73Q$2;EvEc$h~KaUO>*DN4cTULbeyWsR2Ou}5}Xh1H5O`*=pwJi8Xj-}}; zJB{^(79odTQjJ3$SKnPK_U~q1kJ1Oi#S#M@J0@RNC<$`A-qZL3Qzot_f>-Kn%}*66 zt>GtGttn@}a|oP!>j)}bso9TRy)O`R%Y%HFrws)DAC8GIgkqFk?&qh0`_1q#Uqp4O zuktD0yTCqPcD&M9T@l>hdeW9iXleX-mKv!0`^8zai2TeBOQcjO)K4tLRjnAKtCrvL zs3EI^##>x`EJ6I)kX}>it&8jPZl%BC$<>Z#V@~e#A_c__otXR#m!$oB={qipWTsML zl5y$6!&%W1(Et&5D8t=q^;q^bMcdybqf5bSmFYFunpVSO+VsDIVf&Cc0 zVlsli_0#>JR7u~l{3S2nyy49n;ZYq;gBH>Re9D^(T-IxvMgw zMP2H@=$=u8^l7VP*)d^Nf+nk!HsruCj4pP}rL*xi79dcR!-?(oKH6?AuTKNwl{{ss`dGY`N literal 0 HcmV?d00001 diff --git a/ktux/sprites/anim0007.png b/ktux/sprites/anim0007.png new file mode 100644 index 0000000000000000000000000000000000000000..48ce5c8eea6cfbe0267ddd7c51ca723b899d8d98 GIT binary patch literal 23537 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�D*L*L>d`;fpWNJoiTY3|T;%j@P$b(KnYZ z<%NbkCGZcmTIPRYlq%KqrHIL)cog5GZ@v3;fR092tYhthy|i>AE8X;gTr)&j)_vpO zOn$y1T4c+k^fG)`MzJT6u1Q#Ni-R|Y#^I)Cq8WNBv|7L;k&?fTl;H0oUUU`B(8Y5*g~d}S5cv>GGHjo`zJ~^ zNHO%9ko`jRwW+<|+CI%bI9l^ z4pW{50B6=Lx&u{sOsJ1Di*%z_)w1nVx1o1M&_yrCuz#BTNp4D0ujhA(#;ZQyCb;Yi zCefd;cRVo4(S4T*6j9}BY~X<7%Z6(lTUl2 zm!#V8278cj-cc=k@QV`TlxsnyTYBjm==a2MLH;&Hr#=CmN)1nk=9~2u-{+=n-VEn^ ztF+(i=UjsSJS3xtcJqC+S%N>b%b%61MBbRWno^}ym13d7A2X#FcfOBaMm~Ue^H4zh z54OERTKU}w(rPt3Sb(Ij+9BTknm*M*uiZ)y?dBcrtSwjkFYVq>Y{eT{hK;PeC}IFR z?&L7?6(vWL!Nv9`50BM27&u(*)U9!McU8$_DCp1L7Z_T&c_%p?i#&vGt#6KmsS=1{ zWIIX@3`walkUWmjkP90r+DcDqH@7{Yu1G34+k$!E?aHy9t~dLC5is*G+!cFpYg}k^ zyky^Xm+QaDn9Ns+N>(%A>H=m@-z~}i;R`q~Qqa6)dwua=R(Z4HSSwh)#&0g)kt#!w zK6~EbF;KVZMP&B5qE)&J;%v;CDe_38WC&_3tIGTB%>Yc|+&iIDf_I^i*{>+0aCSte z+-_#S(n+|7-Tza%od%0byyb$2ef)aY5Z7Xk6m_NT4Clu{>y?K50ZWQH1b0ei6Sq1IQyIm)2giQeDz z`+qf^{5Tk42bg7V)a}jHTWtolKBg!6Z#nIrZu}wryXNEPJG}imagDh(ns}E5>^Hgx z%4o<|^{{5%@UajJdTiWUzJ*c_9JNdL6zuK`2K7*7`(KM=oCm7Xig62 zmBSX2etaA|py2o0g{jop_{fwK^E0tTZ3-0Mj24L(`m{7pgI+lm#2+VY%u>C4=a!Wd zF7r;j%-sVn(1kvMzJ#IdiB0<>mndeHE^aQeu6t7^Q)}26!h%9&xWZy>y!jS7UV_!7 zI%V@3T-=~IlD%R<;b0}Qz|T1vR)L3BsX-kwX;WsV%ClsBg zqk#-k(l%h=zJHQQOg^QYlI>|-f%lZmgtMJl|T zC+Eqdwy=eSbl)t0xXvtL1d4|SXp$m1Tik~yC!(_oX(TE$ke)TqsxBvqgMD4P%{`G{ zVuJwtEv_Iz=GL6`pyUE{o8Z3*I;WqnjS#=bj$Nz(Q^(Bg-T`*6XAeMS(#sIKAk(78 zfd>7jHY8P6{>K}?kJbN$OdyfCIo}{hY`Jcb$gWQGf$UgM z_@@XUWK)n8`(ghFwq^@&eAA9_V^Yv;D(%5Pv(ryWM7qZLMs2iQZmaph;{{r7vbo@$ z%Xa8Hj(qai$m=%eHJl9E$Mq3{4Nnr^GWUxiIdem{vHq}p`+GKUFvzqVQqod|#PK8S z_Smz#JFIk5{wP5d=sQGK7y@$^aMAg3_^!0NfZCz{MB6_grTglP>12R>JHXYZn=?YN zeCfp;d8~|(=i~WR9RYme=6PbOYbx8T&EJ61KPJb3F?&<01|()j_{tC`GM58I5(_@7 z-)nPiTh%>UK1Elth7)tb520cCFmr_(R-fE2C^O}h%ag!+wPY1kI~wE5?} zPNhV-v__O)uS<$4E5%2M-P;nE11>?wOx}?Mk53~8y{gWr-eFtS2XzM3qdm?x?mL~0 z;GN4$GpLt#M8%Td{y%^b_*x9g>lxod*iiKQZXDpRLy9z@NbQ3>%zLLk@}u#s>56%a zM!a0Kkx!@t{O@cTp=UB(pHR7X8pvxAaEnLz!z_9j*IypU_I{JHFYu8+dgWc%K%;+o54m}nsM zVTCP)o2s#>W_&I+H-yhHV$A9Yl7v_S;Q{i&jBxuAY_G8_4 zYuwmhL40q8kRh=~STZ$SMPohIQ%4)nkrnJ2PH-cRyQFi}%7NH`9D{>^$!=Z}^}YGE z$&J%8>`|%fQfGk#y6%7xjLuZx?Z&L2h08AbwZ^RwK`nudmQbPNcZ{40JicVFeOWpB z^yi2)i#C$|a#^}xj@{gh-)wGojfKPkFZ3!y0rQG+&thpuH^9y@>i4+icZfBovaI zYZ^5I6{0h{A??S?{;>NI3^wv|(cN@R!SRF|a(JY~(h;g@hH3hwmA&eX!Z22mD3;DI zIlkX`n2>NU!nq$O=22>Ju=ZH^#OBnpj;Mltcy#{b;fbo+Ez=p?mtV_DKK%d;k~b5E+& z9H?FNPn^r%m&aKG-sYJ=eK{o}a!s*&LI34XHF-5qD;9v|^9ht>qrZJu!ekGDzkmx6 zRa_+uFxVumiD@qzWN@qWDv|8kaS^RN3C3MSMf$7)yuUu@sr%F|1a}E;pA{b~#<(i9 zF?l7Jk&hF-`Act;mD|c+OD~+9n(yH(WG#Gm3S)VNW}Z~*Vk$q zJ@{w_Iq~}G-+%q8^_`N?c{i=}hIzF3XaDlDJB=B^gjMmkgpEQ1Wof@H{@j0Y-S#)) zkG#Sb|LX{%mAikEb+@cet;s$DM1lpKLKU(yyCPaWlSz<&wFpMB8!FFn(RYidnfV^k zCU+2VUh2`KY-`V(G!=IBn^A8GMw$Cz=j3vJ0&VF*4$+&RR_kI+5&VGyb9iC;kK{1l zmWXyywHiHXy^}KyBgVm?y(M6*TR#n*TRSH>6XrzG zL3(6ubT88Uv?Cil`omrzD8t!}hm)M~)tpy^GU59&)l&og+ndD_;JUw^o6a+jqJI4x0)oa zSudjl-bq6+w9~+q;rAD*OHA(tH$t;Ktv>3insc|45Ssi~Ks&!(4VLiKT|!(1ES-J^}#Ts$H5&UvX+hE?m^bjWpTSe{pC zqLR$rnAABt67h&5(4mmo#IJEl&P#4(dL4ZJdE;iIS}pW$=J|g>MIigx{AC8;NA#&2 z`)}W23lLd-4DG4v6VQ`*c@h*b-L8wG0)GnZQWR<*G?@9J)2bpD!F**04XkOPuZ>BW z;TAgh@%bn z-G9;eB8J1)cG2MovMBsd(U@%J0ORXiM;Y5MS}J=jcqn;M>idl>7&oteBY8( zG)_KHU0nCMpxycwtZ7ix!yHKGVWGt*eP80&p2?ufG&6TV^Xx?o{pcz)j#K1-;d}ah zrh*#4dqwI+xdTm#j}B}4s&>&&0VYk+&sV9nQd?ju)}oX)g4rzjS-7haY29ngXUI7r z8839tCC}Y@6w1Cafs^#%D_WNYC_a!l`_@$k;ekMI?-;yqMVd!3_c<9CrU|5FUgSJ? zyk>zAeUVdqvwm~Q(nM#rC;Iw^ubg}TC)up72$6Kb;TD>5*z2;fWkZ0VZr!!7tvRV! z{<5c`I(!sFIs=)~L=AAQTx(fQVkhQNd@)*SHr5tR&Zn)?<=wS1rd6(06=7u75d~_% zJJW!n4g;U5zJ4_-McE6z#6+rFkxy-Hws#t09?Y9bZs}8PVH~%aAm5h(i5%Ngs{`;$+anM5Ff-C0?sCF=*EcY@Z zc$~yElNA4V_;J@%EJt=#a^iM|ZPj%Lq70Mr*|$p7|C(&*cfP&Fq@Yu+>7^ESOKi6N z0SG+3X&cuQwd2|u#4dVP`NjKCZx*DHuyrJb8uN4t^>s~Q*c*8K04g+OBb0S(8O4xA zzQh8#t{u&m!vfm6^>B94U(FHX{nr8A9d%(^8~(0$`N_RkJO;{u!trAmJ9~j^w6m_a zNrNHB3(|eR?L06%FYoSXEf=E3L=4^(eBP>-^09FI0W{xFO5IiT)IR;{Vtd0+`Iy@L zV7Rj14eW^NVEZfjIoR8*sv}LQd4DVAz$-#9nTUVVymsCfR7k0s zPFg){91CD7+|(tgivpk4FH0W4eih{y^?D*rah;;FLlGevE+?OIZ?_JPJWQrx*QCfw z47EGX2k)%X&*?=AOrq4Es`gXE2?od(Po1)L*}2X3iy*qM#U2|*HmJW>R?w+hoY)=L z6a$NU@7wfa)5kPx|GB_LCBeS|Q6JE@5u4 zTTn;Kx(kwoVb(gtTKV=s`mg0U@3np+wD8q39%D|5rX)LBrl$PlPHF)x5MQ3Cw(^%~Q00Wwx`!==VS>3de%u4(6}f@G)0`Lc1_k!RIE1zM~lc{uW$l)e&d+ zZ7WV!h)=^In@}RAlml63-U@a>$bgiRsU=$%7Yz_3VX-?FN+^^#-y<2~!}>Ja<5$Ad zQ^LCQbQ7y9ip46-#+IWr?#k_GJ?+-Dxz3C4=a%kMUazVSjk4!rKa@qDKm7&&^mhN2 z_wK@UczKz@7R}m-Lgy@YS^q0n@|A)E8v8uvXVuf~(g*pblX#RyLHpG*!3gPO#js1O z)Q|?e6(Q!uRI0?)X0LSV;+s7JZ<8MNy0%E~c$bj(dv2@mVvE@IQ3O?3huMZO~?c zCy$>^P!#2F(8S|={Tr#QnkhKGT{Z^XR=7I|v^|B6vVRm4*iN`zb_laG25FB%`_!{o z4(EpaXCcytgz7!x*0>8;N@6b#0s_ z+*y}jq0~f-ZBLHB-n14&raJv1IOTLdtj>SOP-T0*`vGa#@vuQuhm@ku6suf1V+HzQ zj5ybi;A%mmhb4v|55K5?_&ox9H-JCmR={r9cJ~<2nMeax{s+W2$o0OZF6)b<{6WCVr zkh;{gyjEO94Dd)E6a_BFtL~ryL^wf04R^L?(41ON!t*##> z?irRsU{O8)WG7Q9bJJH%>9tIf6w{tRF!qZzvlrw~XjD`drT0ukRS3HnY`!sL+_1eh zdKMOjq#&DkXe^88#+;2Yr4G>>r`V_d;=c(sOe^2F++*Ux(PoW%IW@&H;KFa_0k!H! zY=NMh9Z~vJGfr68?-ST&+NGOp%LT#iOH7iLol`1$(v+mfY-N7S&E)PmA_kx1P$$(( zOWMdJBtUKU#`x_=6zP7K_b5#KB!jgrTE#@-o!(Z~yGXK-_s(m1eTnX?P5o46Pu2kX zQE(I@0FkH%g*7=(CBE_<1q(z03(&RS-GnQLKYqMVkSQqw{#YCYF;#!eZ)YJ0b3Oye zeh&=kzzFiL4rzaX58x)A2TURHl*fCE_^>YQCSBr;)JmhMVxP_;YxER?uV%FT9UsIi z)yr;IO6V#9m0mL(ezv~^%IsBYzYAoPvcr-bfm8Wi1FKDa1}i3-jZ*Ch4hS_d{l|Pi z7P1eMnQPl;MsCa*6s}D-gyG%56t`3iumlbMmZeY-VN0zpl$!D)PFX4 zeb0y$CF-|Whah6etP*v#%>TVj^Sx&WpTA1mG4*uEo#F7MHl@e@e=zmj6MTa-0}AqY S!XL!Au~e0`6sz7?1pg1^*VF<4 literal 0 HcmV?d00001 diff --git a/ktux/sprites/anim0008.png b/ktux/sprites/anim0008.png new file mode 100644 index 0000000000000000000000000000000000000000..2a299a4bede6ee95ba6c7ce9377fc6aeefc8512c GIT binary patch literal 23680 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 o_s6v6C=B9S(@zGiK)iEG^7j>)rc^bkjPY) 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 literal 0 HcmV?d00001 diff --git a/ktux/sprites/flare0001.png b/ktux/sprites/flare0001.png new file mode 100644 index 0000000000000000000000000000000000000000..0e7b1469e8758fe66cf7b7a3277b74ac112509b2 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmUKs7M+SzC{oH>NS%G}EByV>Y zhW{YAVDIwDKoQOYkH}&M25un`X1sK_?hjCqy~NYkmHh&{D2s?;aml7eppd_(i(^Q| zoVVvT@-`?)us%G@5@nX)mTS7POf_3QiRn(`{tX}Y{fm|Jn6#vS>4^&KV;Zbkt+l?v xYgLOB(s%e}NS%G}EByV>Y zhW{YAVDIwDKoQOYkH}&M25un`X1sK_?hjCqy~NYkmHh&{D2s?@f`ry}pwJ;t7srr_ zId3m*Yu0OseMMN@nqlTv@^X9ur-{L=rt(@L?;)Bv{!ynx5 zOe5;%zvcUWC-`}j;W3HN>F=hWp4|GS;=pIl%M-azap@UEdlm9*m$qORD!HAgy5}p~ zr84!o?31yJaJ(02cLRUbEGO&0w`Z3D PeZ%1C>gTe~DWM4fNH%}E literal 0 HcmV?d00001 diff --git a/ktux/sprites/spriterc b/ktux/sprites/spriterc new file mode 100644 index 0000000..16e3929 --- /dev/null +++ b/ktux/sprites/spriterc @@ -0,0 +1,62 @@ +[Config] +Groups=G_Ship,G_Star,G_Flare +Background=bg.ppm + +# Ship +[G_Ship] +Animations=O_Fly +Count=1 +Refresh=4000 + +[O_Fly] +Animation=A_Base +DirectionX=5 +DirectionY=2 +StartX=-250 +StartY=-300..HEIGHT +EndX=WIDTH +EndY=HEIGHT +Z=100 + +[A_Base] +Images=anim0001.png,anim0002.png,anim0003.png,anim0004.png,anim0005.png,anim0006.png,anim0007.png,anim0008.png,anim0009.png,anim0010.png +Delays=1,1,1,1,1,1,1,1,1,1 + +# Star +[G_Star] +Animations=O_Star +Count=10 +Refresh=100..500 + +[O_Star] +Animation=A_Star +DirectionX=0 +DirectionY=0 +StartX=0..WIDTH +StartY=0..HEIGHT +LifeSpan=2000 +Z=5 + +[A_Star] +Images=star0001.png,star0002.png +Delays=3,3 + +# Flare +[G_Flare] +Animations=O_Flare +Count=2 +Refresh=500..5000 + +[O_Flare] +Animation=A_Flare +DirectionX=0 +DirectionY=0 +StartX=0..WIDTH +StartY=0..HEIGHT +LifeSpan=110 +Z=10 + +[A_Flare] +Images=flare0001.png,flare0002.png,flare0001.png +Delays=5,100,5 + diff --git a/ktux/sprites/star0001.png b/ktux/sprites/star0001.png new file mode 100644 index 0000000000000000000000000000000000000000..9913b173823a3ff6e51dca032ebf692341b8fac0 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BSE>%y{W;-5;PJdx@v7EBgg@Q5F#%ZJB=)fI{}3E{-7; zbCONUf1G#VOjzXceFb9+ug1A3UxTg!sen0Kf9+qmP|?v@;^WfhM{BPBuU_72G%1(C hFk!;+LmY+-3`-^ptO%L2{3g&S22WQ%mvv4FO#p{&JvjgX literal 0 HcmV?d00001 diff --git a/ktux/sprites/star0002.png b/ktux/sprites/star0002.png new file mode 100644 index 0000000000000000000000000000000000000000..a42d0e7b93da6cf4f86ce4651ff479b7af5da2e8 GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;RN#5=* z4F5rJ!QSPQfg+p*9+AZi4BSE>%y{W;-5;PJdx@v7EBgg@Q5F$d$2IqofI< +Nadeem Hasan diff --git a/kweather/Makefile.am b/kweather/Makefile.am new file mode 100644 index 0000000..4db22b5 --- /dev/null +++ b/kweather/Makefile.am @@ -0,0 +1,81 @@ +SUBDIRS = graphics + +METASOURCES = AUTO +INCLUDES = $(all_includes) + +check_PROGRAMS = sun_test stationdatabase_test metar_parser_test +bin_PROGRAMS = kweatherservice +lib_LTLIBRARIES = +kdeinit_LTLIBRARIES = kweatherreport.la +kde_module_LTLIBRARIES = weather_panelapplet.la kcm_weather.la kcm_weatherservice.la + +sun_test_SOURCES = sun_test.cpp sun.cpp +sun_test_LDFLAGS = $(all_libraries) +sun_test_LDADD = -lqt-mt + +stationdatabase_test_SOURCES = stationdatabase_test.cpp stationdatabase.cpp +stationdatabase_test_LDFLAGS = $(all_libraries) +stationdatabase_test_LDADD = -lqt-mt -lkdecore + +metar_parser_test_SOURCES = metar_parser_test.cpp metar_parser.cpp\ + stationdatabase.cpp sun.cpp +metar_parser_test_LDFLAGS = $(all_libraries) +metar_parser_test_LDADD = -lqt-mt -lkdecore + +weather_panelapplet_la_SOURCES = reportview.cpp kweather.cpp dockwidget.cpp \ + weatherIface.skel weatherservice.stub \ + weatherbutton.cpp +weather_panelapplet_la_LDFLAGS = $(KDE_PLUGIN) -module $(all_libraries) +weather_panelapplet_la_LIBADD = $(LIB_KHTML) + +appletdir = $(kde_datadir)/kicker/applets +applet_DATA = kweather.desktop + +stationdir = $(kde_datadir)/kweatherservice +station_DATA = stations.dat + +kcm_weather_la_SOURCES = kcmweather.cpp prefdialogdata.ui weatherservice.stub +kcm_weather_la_LDFLAGS = -module $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) \ + -avoid-version -no-undefined +kcm_weather_la_LIBADD = $(LIB_KDEUI) $(LIB_KIO) + +kcm_weatherservice_la_SOURCES = kcmweatherservice.cpp serviceconfigwidget.cpp \ + serviceconfigdata.ui weatherservice.stub +kcm_weatherservice_la_LDFLAGS = -module $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) \ + -avoid-version -no-undefined +kcm_weatherservice_la_LIBADD = $(LIB_KDEUI) + +#weather_sidebar_la_SOURCES = sidebarwidgetbase.ui sidebarwidget.cpp dockwidget.cpp weatherbar.cpp weatherbar.skel +#weather_sidebar_la_LDFLAGS = $(all_libraries) -module -no-undefined +#weather_sidebar_la_LIBADD = $(LIB_KPARTS) $(LIB_KFILE) -lkonqsidebarplugin + +#globalentrydir = $(kde_datadir)/konqsidebartng/entries +#globalentry_DATA = weatherbar.desktop + +#globaladddir = $(kde_datadir)/konqsidebartng/add +#globaladd_DATA = weatherbar_add.desktop + +kweatherservice_LDFLAGS = $(all_libraries) $(KDE_RPATH) +kweatherservice_LDADD = $(LIB_KIO) +kweatherservice_SOURCES = main.cpp metar_parser.cpp weatherlib.cpp \ + weatherservice.cpp weatherservice.skel \ + stationdatabase.cpp sun.cpp weatherservice.stub + +service_DATA = kweatherservice.desktop +servicedir = $(kde_servicesdir) + +kde_services_DATA = kcmweather.desktop kcmweatherservice.desktop + +kweatherreport_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -module -avoid-version +kweatherreport_la_LIBADD = $(LIB_KHTML) reportview.lo +kweatherreport_la_SOURCES = reportmain.cpp weatherservice.stub + +KDE_ICON = kweather + +kweatherdatadir = $(kde_datadir)/kweatherservice +kweatherdata_DATA = weather_stations.desktop + +messages: rc.cpp + $(EXTRACTRC) *.ui > rc.cpp + $(XGETTEXT) rc.cpp *.cpp *.h -o $(podir)/kweather.pot + rm -f rc.cpp diff --git a/kweather/configure.in.in b/kweather/configure.in.in new file mode 100644 index 0000000..4fab26d --- /dev/null +++ b/kweather/configure.in.in @@ -0,0 +1 @@ +#DO_NOT_COMPILE="$DO_NOT_COMPILE kweather" diff --git a/kweather/dockwidget.cpp b/kweather/dockwidget.cpp new file mode 100644 index 0000000..6d9dd92 --- /dev/null +++ b/kweather/dockwidget.cpp @@ -0,0 +1,467 @@ +/*************************************************************************** + dockwidget.cpp - description + ------------------- + begin : Thu Jul 6 2000 + copyright : (C) 2000-2003 by Ian Reinhart Geiser + : (C) 2002-2003 Nadeem Hasan + email : geiseri@msoe.edu + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 "dockwidget.h" +#include "weatherbutton.h" +#include "weatherservice_stub.h" + +#include +#include +#include +#include +#include + +#include +#include +#include + +dockwidget::dockwidget(const QString &location, QWidget *parent, + const char *name) : QWidget(parent,name), m_locationCode( location ), m_orientation( Horizontal ) +{ + m_font = KGlobalSettings::generalFont(); + setBackgroundOrigin( AncestorOrigin ); + initDock(); + connect(m_button, SIGNAL( clicked() ), SIGNAL( buttonClicked() )); + + m_weatherService = new WeatherService_stub( "KWeatherService", "WeatherService" ); +} + +dockwidget::~dockwidget() +{ + delete m_weatherService; +} + +void dockwidget::setLocationCode(const QString &locationCode) +{ + m_locationCode = locationCode; + showWeather(); +} + +void dockwidget::setViewMode(int _mode) +{ + kdDebug(12004) << "View mode " << _mode << endl; + m_mode = _mode; + if (m_mode == ShowIconOnly) + { + m_lblTemp->hide(); + m_lblWind->hide(); + m_lblPres->hide(); + } + else if (m_mode == ShowTempOnly) + { + m_lblTemp->show(); + m_lblWind->hide(); + m_lblPres->hide(); + } + else if (m_mode == ShowAll) + { + m_lblTemp->show(); + m_lblWind->show(); + m_lblPres->show(); + } +} + +void dockwidget::showWeather() +{ + QString tip = ""; + + QString temp = "?"; + QString wind = "?"; + QString pressure = "?"; + + if ( !m_locationCode.isEmpty() ) + { + temp = m_weatherService->temperature( m_locationCode ); + wind = m_weatherService->wind( m_locationCode ); + pressure = m_weatherService->pressure( m_locationCode ); + + QString dewPoint = m_weatherService->dewPoint( m_locationCode); + QString relHumidity = m_weatherService->relativeHumidity( m_locationCode ); + QString heatIndex = m_weatherService->heatIndex( m_locationCode ); + QString windChill = m_weatherService->windChill( m_locationCode ); + QString sunRiseTime = m_weatherService->sunRiseTime( m_locationCode ); + QString sunSetTime = m_weatherService->sunSetTime( m_locationCode ); + + tip += "

" + + m_weatherService->stationName( m_locationCode ) + " (" + + m_weatherService->stationCountry( m_locationCode ) + ")

"; + + if ( m_weatherService->currentIconString( m_locationCode ) == "dunno" ) // no data + tip += "
" + i18n("The network is currently offline...") + "
"; + + tip += QString("
" + "" + "" + + "" + "" + + "") + .arg(temp).arg(dewPoint).arg(pressure).arg(relHumidity).arg(wind); + + if ( !heatIndex.isEmpty() ) + tip += QString("").arg(heatIndex); + else if ( !windChill.isEmpty() ) + tip += QString("").arg(windChill); + else + tip += ""; + tip += ""; + + tip += QString("" + + "") + .arg(sunRiseTime).arg(sunSetTime); + + tip += "
" + i18n( "Temperature:" ) + "%1" + i18n( "Dew Point:" ) + "%2
" + i18n( "Air Pressure:" ) + "%3" + i18n( "Rel. Humidity:" ) + "%4
" + i18n( "Wind Speed:" ) + "%5" + i18n( "Heat Index:" ) + "%1" + i18n( "Wind Chill:" ) + "%1  
" + i18n( "Sunrise:" ) + "%1" + i18n( "Sunset:" ) + "%2
"; + + if ( m_weatherService->stationNeedsMaintenance( m_locationCode ) ) + { + tip += "
" + i18n("Station reports that it needs maintenance\n" + "Please try again later"); + } + } + else + { + tip += i18n("Temperature: ") + temp + "
"; + tip += i18n("\nWind: ") + wind + "
"; + tip += i18n("\nAir pressure: ") + pressure + "
"; + } + + tip += ""; + + // On null or empty location code, or if the station needs maintenance, this will return the dunno icon. + QPixmap icon = m_weatherService->icon( m_locationCode ); + + QToolTip::remove(this); + QToolTip::add(this, tip); + + kdDebug(12004) << "show weather: " << endl; + kdDebug(12004) << "location: " << m_locationCode << endl; + kdDebug(12004) << "temp,wind,pressure: " << temp << " " << wind << " " << pressure << endl; + kdDebug(12004) << "tip: " << tip << endl; + + m_lblTemp->setText(temp); + m_lblWind->setText(wind); + m_lblPres->setText(pressure); + + m_button->setPixmap( icon ); +} + +void dockwidget::initDock() +{ + kdDebug(12004) << "Init dockwidget " << endl; + + m_button= new WeatherButton(this,"m_button"); + + m_lblTemp= new QLabel(this,"lblTemp"); + m_lblWind= new QLabel(this,"lblWind"); + m_lblPres= new QLabel(this,"lblPres"); + + m_lblTemp->setBackgroundOrigin(AncestorOrigin); + m_lblWind->setBackgroundOrigin(AncestorOrigin); + m_lblPres->setBackgroundOrigin(AncestorOrigin); + + m_lblTemp->setMargin(0); + m_lblWind->setMargin(0); + m_lblPres->setMargin(0); + + QBoxLayout *mainLayout = new QBoxLayout(this, QBoxLayout::TopToBottom); + mainLayout->setSpacing(0); + mainLayout->setMargin(0); + mainLayout->addWidget(m_button, 0, Qt::AlignCenter); + + QBoxLayout *layout = new QBoxLayout(mainLayout, QBoxLayout::TopToBottom); + layout->setSpacing(0); + layout->setMargin(0); + layout->addWidget(m_lblTemp); + layout->addWidget(m_lblWind); + layout->addWidget(m_lblPres); + + mainLayout->addSpacing(8); + + updateFont(); + + QTimer::singleShot( 0, this, SLOT( showWeather() ) ); +} + +/** resize the view **/ +void dockwidget::resizeView( const QSize &size ) +{ + kdDebug(12004) << "Changing to size " << size << endl; + resize(size); + + if ( m_orientation == Horizontal ) // Kicker in horizontal mode + { + int h = size.height(); + + if ( m_mode == ShowAll ) + { + if ( h <= 128 ) // left to right layout + { + static_cast(layout())->setDirection(QBoxLayout::LeftToRight); + m_lblTemp->setAlignment(Qt::AlignAuto | Qt::AlignVCenter); + m_lblWind->setAlignment(Qt::AlignAuto | Qt::AlignVCenter); + m_lblPres->setAlignment(Qt::AlignAuto | Qt::AlignVCenter); + } + else // top to bottom + { + static_cast(layout())->setDirection(QBoxLayout::TopToBottom); + QFontMetrics fm(m_font); + h = 128 - (3 * fm.height()); // 3 lines of text below the button + m_lblTemp->setAlignment(Qt::AlignCenter); + m_lblWind->setAlignment(Qt::AlignCenter); + m_lblPres->setAlignment(Qt::AlignCenter); + } + m_button->setFixedSize(h, h); + } + else if ( m_mode == ShowTempOnly ) + { + if ( h <= 32 ) // left to right + { + static_cast(layout())->setDirection(QBoxLayout::LeftToRight); + m_lblTemp->setAlignment(Qt::AlignAuto | Qt::AlignVCenter); + } + else // top to bottom + { + static_cast(layout())->setDirection(QBoxLayout::TopToBottom); + QFontMetrics fm(m_font); + h = QMIN(128, h) - fm.height(); + m_lblTemp->setAlignment(Qt::AlignCenter); + } + m_button->setFixedSize(h, h); + } + else + { + h = QMIN(h, 128); + m_button->setFixedSize(h, h); + } + } + else // Kicker in vertical mode + { + int w = size.width(); + int h = size.height(); + + if ( m_mode == ShowAll ) + { + if ( w <= 128 ) // top to bottom + { + static_cast(layout())->setDirection(QBoxLayout::TopToBottom); + m_lblTemp->setAlignment(Qt::AlignCenter); + m_lblWind->setAlignment(Qt::AlignCenter); + m_lblPres->setAlignment(Qt::AlignCenter); + + QFontMetrics fm(m_font); + h = h - (3 * fm.height()); // 3 lines of text below the button + h = QMIN(w, h); + } + else // left to right layout + { + static_cast(layout())->setDirection(QBoxLayout::LeftToRight); + m_lblTemp->setAlignment(Qt::AlignAuto | Qt::AlignVCenter); + m_lblWind->setAlignment(Qt::AlignAuto | Qt::AlignVCenter); + m_lblPres->setAlignment(Qt::AlignAuto | Qt::AlignVCenter); + } + m_button->setFixedSize(h, h); + } + else if ( m_mode == ShowTempOnly ) + { + if ( w <= 128 ) // top to bottom + { + static_cast(layout())->setDirection(QBoxLayout::TopToBottom); + m_lblTemp->setAlignment(Qt::AlignCenter); + + h = w; + } + else // left to right layout + { + static_cast(layout())->setDirection(QBoxLayout::LeftToRight); + m_lblTemp->setAlignment(Qt::AlignAuto | Qt::AlignVCenter); + + h = static_cast(w * 0.33); + } + m_button->setFixedSize(h, h); + } + else + { + w = QMIN(w, 128); + m_button->setFixedSize(w, w); + } + } +} + +int dockwidget::widthForHeight(int h) +{ + int w; + QFontInfo fi(KGlobalSettings::generalFont()); + + if ( m_mode == ShowAll ) + { + if ( h <= 128 ) // left to right layout + { + int pixelSize = h/3 - 3; + pixelSize = QMIN(pixelSize, fi.pixelSize()); // don't make it too large + m_font.setPixelSize(pixelSize); + QFontMetrics fm(m_font); + w = h + QMAX(fm.width(m_lblWind->text()), fm.width(m_lblPres->text())) + 1; + } + else // top to bottom + { + if ( fi.pixelSize() * 3 <= (h/2) ) // half icon, half text + { + m_font = KGlobalSettings::generalFont(); + } + else + { + m_font.setPixelSize(h/2/3); + } + QFontMetrics fm(m_font); + // size of icon + h = 128 - (3 * fm.height()); // 3 lines of text below the button + w = QMAX(fm.width(m_lblWind->text()), fm.width(m_lblPres->text())) + 1; + w = QMAX(h, w); // at least width of square icon + } + } + else if ( m_mode == ShowTempOnly ) + { + if ( h <= 32 ) // left to right layout + { + int pixelSize = h - 3; + pixelSize = QMIN(pixelSize, fi.pixelSize()); // don't make it too large + m_font.setPixelSize(pixelSize); + QFontMetrics fm(m_font); + w = h + fm.width(m_lblTemp->text()) + 1; + } + else // top to bottom + { + if ( fi.pixelSize() <= (h/2) ) // half icon, half text + { + m_font = KGlobalSettings::generalFont(); + } + else + { + m_font.setPixelSize(h/2); + } + QFontMetrics fm(m_font); + // size of icon + h = QMIN(128, h) - fm.height(); + w = fm.width(m_lblTemp->text()) + 1; + w = QMAX(h, w); // at least width of square icon + } + } + else + { + w = QMIN(128, h); // don't make it too large + } + + updateFont(); + return w + 4; +} + +int dockwidget::heightForWidth( int w ) +{ + int h; + + if ( m_mode == ShowAll ) + { + QFontMetrics fmg(KGlobalSettings::generalFont()); + int maxWidth = fmg.width("888 km/h NNWW"); // a good approximation + + if ( w <= 128 ) // top to bottom + { + if ( maxWidth <= w ) // enough space to use global font + { + m_font = KGlobalSettings::generalFont(); + } + else // we have to reduce the fontsize + { + m_font.setPixelSize(static_cast(fmg.height() * double(w) / maxWidth)); + } + + QFontMetrics fm(m_font); + h = w + (3 * fm.height()); // 3 lines of text below the button + } + else + { + if ( w >= (maxWidth * 1.5) ) // half of text width shall be icon + { + m_font = KGlobalSettings::generalFont(); + } + else + { + m_font.setPixelSize(static_cast(fmg.height() * (w*0.66) / maxWidth)); + } + + QFontMetrics fm(m_font); + h = 3 * fm.height(); // 3 lines of text + + } + } + else if ( m_mode == ShowTempOnly ) + { + QFontMetrics fmg(KGlobalSettings::generalFont()); + int maxWidth = fmg.width("888.88 CC"); // a good approximation + + if ( w <= 128 ) // top to bottom + { + if ( maxWidth <= w ) // enough space to use global font + { + m_font = KGlobalSettings::generalFont(); + } + else // we have to reduce the fontsize + { + m_font.setPixelSize(static_cast(fmg.height() * double(w) / maxWidth)); + } + + QFontMetrics fm(m_font); + h = w + fm.height(); // text below the button + } + else + { + if ( w >= (maxWidth * 1.5) ) // half of text width shall be icon + { + m_font = KGlobalSettings::generalFont(); + } + else + { + m_font.setPixelSize(static_cast(fmg.height() * (w*0.66) / maxWidth)); + } + + QFontMetrics fm(m_font); + h = QMAX(fm.height(), static_cast(w * 0.33)); + } + } + else + { + h = QMIN(128, w); // don't make it too large + } + + updateFont(); + return h; +} + + +void dockwidget::updateFont() +{ + //kdDebug(12004) << "Update font: " << m_font.pixelSize() << endl; + m_lblTemp->setFont(m_font); + m_lblWind->setFont(m_font); + m_lblPres->setFont(m_font); +} + +#include "dockwidget.moc" + +// vim:ts=4:sw=4:et diff --git a/kweather/dockwidget.h b/kweather/dockwidget.h new file mode 100644 index 0000000..f61f6b1 --- /dev/null +++ b/kweather/dockwidget.h @@ -0,0 +1,74 @@ +/*************************************************************************** + dockwidget.h - description + ------------------- + begin : Thu Jul 6 2000 + copyright : (C) 2000-2003 by Ian Reinhart Geiser + : (C) 2002-2003 Nadeem Hasan + email : geiseri@msoe.edu + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 DOCKWIDGET_H +#define DOCKWIDGET_H + +#include +#include +#include + +#include + +class QLabel; +class WeatherService_stub; +class WeatherButton; + +class dockwidget : public QWidget +{ + Q_OBJECT + +public: + dockwidget(const QString &location, QWidget *parent=0, const char *name=0); + ~dockwidget(); + + enum {ShowIconOnly=1, ShowTempOnly=2, ShowAll=3 }; + + void setLocationCode(const QString &locationCode); + void setViewMode(int); + void setOrientation(Orientation o) { m_orientation = o; } + /** resize the view **/ + void resizeView(const QSize &size); + int widthForHeight(int h); + int heightForWidth(int w); + +public slots: + void showWeather(); + +signals: // Signals + void buttonClicked(); + +private: + void initDock(); + void updateFont(); + + int m_mode; + QString m_locationCode; + QFont m_font; + QPixmap m_icon; + WeatherButton *m_button; + QLabel *m_lblTemp; + QLabel *m_lblWind; + QLabel *m_lblPres; + Orientation m_orientation; + + WeatherService_stub *m_weatherService; +}; + +#endif + +// vim:ts=4:sw=4:et diff --git a/kweather/graphics/Makefile.am b/kweather/graphics/Makefile.am new file mode 100644 index 0000000..c87fc25 --- /dev/null +++ b/kweather/graphics/Makefile.am @@ -0,0 +1,2 @@ +wdir = $(kde_datadir)/kweather +w_DATA = overcast.png sunny.png dunno.png cloudy1.png cloudy2.png cloudy3.png cloudy4.png cloudy5.png fog.png hail.png light_rain.png mist.png shower1.png shower2.png shower3.png sleet.png snow1.png snow2.png snow3.png snow4.png snow5.png tstorm1.png tstorm2.png tstorm3.png cloudy1_night.png cloudy2_night.png cloudy3_night.png cloudy4_night.png fog_night.png mist_night.png shower1_night.png shower2_night.png snow1_night.png snow2_night.png snow3_night.png sunny_night.png tstorm1_night.png tstorm2_night.png diff --git a/kweather/graphics/cloudy1.png b/kweather/graphics/cloudy1.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdeb260e49ce14bb9dca3aae226c2f408e504bf GIT binary patch literal 25863 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 CUz=|L literal 0 HcmV?d00001 diff --git a/kweather/graphics/cloudy2.png b/kweather/graphics/cloudy2.png new file mode 100644 index 0000000000000000000000000000000000000000..88a5f412ccc4523c641e1a900fe5f569d69dc99f GIT binary patch literal 30104 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 LNkvXXu0mjfeHr}3 literal 0 HcmV?d00001 diff --git a/kweather/graphics/cloudy2_night.png b/kweather/graphics/cloudy2_night.png new file mode 100644 index 0000000000000000000000000000000000000000..93cdacff38539364d084beed77cac0f2b394418d GIT binary patch literal 15873 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 IT2w#qe>_3fpa1{> literal 0 HcmV?d00001 diff --git a/kweather/graphics/cloudy3.png b/kweather/graphics/cloudy3.png new file mode 100644 index 0000000000000000000000000000000000000000..c9658e97e96e04d8600f123f4a747dd09535f35e GIT binary patch literal 34246 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

>g_P0I9ujY-U6`WT|zoVh- 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 BlaK%a literal 0 HcmV?d00001 diff --git a/kweather/graphics/cloudy4_night.png b/kweather/graphics/cloudy4_night.png new file mode 100644 index 0000000000000000000000000000000000000000..c08ba197a0768a3e626f83b1a10969c42525b3bf GIT binary patch literal 22352 zcmV)eK&HQmP)@xH{@!4P^pqOC`BoYw?ilT1{0#pG7)o}afG{0u=z1EuVkF|g2-0Gl! zf+|d{G4|N!{?0w;?7in)v-!^NoEsim53PsRL+hdS(0XV+v>sXyt%ue_>!J0((2@uG z0v?d{M;|mGSAaYcco=XHs6iK?r%?R_A>EAOX8!f>rgPu(OOubBO$T!@{^0$B$P+=n5yLlL=KN)qvtwtBu|_aJQiv%LVq_5`pJ=;d>~6mXDgNyD z-tye=oxge8Yu@qw?wOOp=&g_VkLMQ;^ex>V>+ik-yz+fDm~TS({>uyh#F6)P%7 zcrg@45a}O-DoK?tCAyesV`LU0i?-$Fw%dB@@xOle_5b$&_)37;3(Yg$d2;j3Pyc_8 z#Ru~CKG*ekR{>t}z9GW5+Z6uo!w18wM^(kJC>VH0WetTj6e3s@L6M}ylt`M0smu7t z%ZI1CeA{iWx#jnN^hH+yuz8&U^ovai{%$G2%ir@X;HMus7(9709GG!gGAcYn?-+Q; zz#2*?RK`#maDWvsn$XlMKumNY(#6Q43$!WHgv25#i

p*&0kkWP7pT*y-c#_7D91 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 literal 0 HcmV?d00001 diff --git a/kweather/graphics/dunno.png b/kweather/graphics/dunno.png new file mode 100644 index 0000000000000000000000000000000000000000..07358ec8e4cb075ffa0001893772b4bdecf31037 GIT binary patch literal 30291 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 literal 0 HcmV?d00001 diff --git a/kweather/graphics/fog.png b/kweather/graphics/fog.png new file mode 100644 index 0000000000000000000000000000000000000000..771d7130e1da0f0bac83d343143d8c1c889f599c GIT binary patch literal 24326 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 FV1h7vfEWM( literal 0 HcmV?d00001 diff --git a/kweather/graphics/fog_night.png b/kweather/graphics/fog_night.png new file mode 100644 index 0000000000000000000000000000000000000000..035444cdec588875a5e9b49af6c64f04d5441d8f GIT binary patch literal 10668 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 literal 0 HcmV?d00001 diff --git a/kweather/graphics/light_rain.png b/kweather/graphics/light_rain.png new file mode 100644 index 0000000000000000000000000000000000000000..b9ba7c7e60e06bd8a6d626bb70e8ad443590b622 GIT binary patch literal 15829 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 WRV^_lo^=ll^pKHMl&BRm4*h?K!Ydg7 literal 0 HcmV?d00001 diff --git a/kweather/graphics/mist.png b/kweather/graphics/mist.png new file mode 100644 index 0000000000000000000000000000000000000000..bbc3a5cb79eda4bd8a1fb0919f8c89cbd1178047 GIT binary patch literal 20351 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

duS^ph{!6+NcqVWjr7tXJs9yB! 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 literal 0 HcmV?d00001 diff --git a/kweather/graphics/overcast.png b/kweather/graphics/overcast.png new file mode 100644 index 0000000000000000000000000000000000000000..4c45c4388e84fda460241501a52f5ca5ba0a21df GIT binary patch literal 32965 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 literal 0 HcmV?d00001 diff --git a/kweather/graphics/shower1.png b/kweather/graphics/shower1.png new file mode 100644 index 0000000000000000000000000000000000000000..94e4871df3618cb04205bb724afbcf093e94f957 GIT binary patch literal 24250 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 C003zK literal 0 HcmV?d00001 diff --git a/kweather/graphics/shower1_night.png b/kweather/graphics/shower1_night.png new file mode 100644 index 0000000000000000000000000000000000000000..40e8900a27bac140c5f2835201845d54131605be GIT binary patch literal 18561 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 X_UzIPdmJ4YbjM|V>56$N#4Y+i-RiaO literal 0 HcmV?d00001 diff --git a/kweather/graphics/shower2_night.png b/kweather/graphics/shower2_night.png new file mode 100644 index 0000000000000000000000000000000000000000..fe384f8182748e6631347d2b30e3675344fd42db GIT binary patch literal 18310 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 literal 0 HcmV?d00001 diff --git a/kweather/graphics/sleet.png b/kweather/graphics/sleet.png new file mode 100644 index 0000000000000000000000000000000000000000..9d134f7364e8be416a05d5ae6f3ce802d2b5e3c8 GIT binary patch literal 23754 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 Bs_*~+ literal 0 HcmV?d00001 diff --git a/kweather/graphics/snow1.png b/kweather/graphics/snow1.png new file mode 100644 index 0000000000000000000000000000000000000000..63d4cab935811724879bbb0a6a976389386ba27e GIT binary patch literal 24645 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 M07*qoM6N<$f|`885&!@I literal 0 HcmV?d00001 diff --git a/kweather/graphics/snow1_night.png b/kweather/graphics/snow1_night.png new file mode 100644 index 0000000000000000000000000000000000000000..f75df16c91faba5d2a79ba61ecd499f4633c75b0 GIT binary patch literal 20625 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 literal 0 HcmV?d00001 diff --git a/kweather/graphics/snow2.png b/kweather/graphics/snow2.png new file mode 100644 index 0000000000000000000000000000000000000000..c4c18540c23821430ea42ddecda4dd6a859447d5 GIT binary patch literal 21863 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

i?DLgTL+t)2>)thqM7QASzd{V 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 z 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 N002ovPDHLkV1h0A_3Hot literal 0 HcmV?d00001 diff --git a/kweather/graphics/sunny.png b/kweather/graphics/sunny.png new file mode 100644 index 0000000000000000000000000000000000000000..fffe5e57e4d3da292cb18f51411ae71fe11a29aa GIT binary patch literal 20311 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 literal 0 HcmV?d00001 diff --git a/kweather/graphics/tstorm1_night.png b/kweather/graphics/tstorm1_night.png new file mode 100644 index 0000000000000000000000000000000000000000..c35fc2f16cc65ef7e7e2d48034a2b6b85d40b5f6 GIT binary patch literal 20512 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

1Pk4%1?lI8mzy2!a<+5j<59%&!QJ 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

jpXl(By?i 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 literal 0 HcmV?d00001 diff --git a/kweather/graphics/tstorm2_night.png b/kweather/graphics/tstorm2_night.png new file mode 100644 index 0000000000000000000000000000000000000000..d113626a2436f8d7f2497c529dfcedadb9a86968 GIT binary patch literal 21538 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␑rPs1;F+ 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 Z{|3!u(8jQBp!NU&002ovPDHLkV1nv|ht~iA literal 0 HcmV?d00001 diff --git a/kweather/graphics/tstorm3.png b/kweather/graphics/tstorm3.png new file mode 100644 index 0000000000000000000000000000000000000000..474b0da679fa2f0a5341e711140f001e03ba0faf GIT binary patch literal 20220 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 literal 0 HcmV?d00001 diff --git a/kweather/hi32-app-kweather.png b/kweather/hi32-app-kweather.png new file mode 100644 index 0000000000000000000000000000000000000000..a8f5a9ceba553342782db8fcf6ee33eeb326ac8f GIT binary patch literal 2603 zcmV+`3e@$9P){>7!dbZi5U%pT=|U_J9{lMHf7e~j^k zpJn10gve0G^F);k6cQVm^k!8%rnZH5^2nw5*4~lcukjx8wAd=ohaN;OSkAANVex=B zARpswT`SQQm-D%eaPS-OMz(=`uwgCy$5&B`bYCh1Zwny!GAaAF#u3hVhPo)& zWk15F^)dZ!db&|Hxt{mm4C~fGJOz>8!{Sq*w?lF%q(>l@Lkw_hu$huDlqw?dspp^* z;aBE^$iMju+=mIB9;e6oBfGm?I*hicB)Lj(`+A6_Vg7nhlfW6UzX#61OaOWk_B{@N zC_}#mJ`^XwzmFWS3sZIc(vNer^$EW9H#Gn-yPb>} zj6ih[JMKYfDI?k7>s6$r-~u=GX(y#_azp)izTC=KQUNNo5lH!nc6%mFJ3G62_sVgZ>xOL61`>5*x2 zPK3qVRgB>R^n!d5+%SJI7VtRv=%(^?al+cgKL7~%T_V_Yp`kJ*uHJBAx(P-n zv?K{my)dZmWe$L5_lhr?Z)l&BiiR)Z$ZM9N-?16GF9$^fdU1bqkWj~RSh^Bw8z6Tc zJa2|ST?HcoAsuvusOQpH+|P7xm7!;#`vxG;prHn)Dsbp!lok%XsR6rQ?h==|M{VEb z{JF7BvFFBaiL)2+v72D=)%cksXn7A7ErR++$Y-EZ0TIk7NWEClg${ZhQ}zP>Q`y9+ z>sRB)5*Wn^Iz!KL^WeAXer;HaPM%;9TlncaXu$sp%fuezsJONPuJT}E4tG>TchSr0zaye$}ecp0=>0%7Z5m@|q;%uuh+WWFcc#Z#FNGOr;)d!u0ROonznpgxe8ibP0>E+DQ- z;)a52)I@hA4?MNGb0p{YYGv?lP)4)#XXn~avX;f_)7+C-!hH=j0zp0KEg;kxaOneb zhHeE86`J@}`Bv^+(8euo8aKuTJrP0JbI?4AloF8mzRy^(%8(jm@v7D2@B8kO{dFH* zEz5yVVk_Fx?;wHO-&Cc`l@Nne481NPI2L|;B^=T3qkBGF zwulR}T)tGili~0N=GRAAZ3qI#Azf_b)O3|l5MW9L1&I_e*HSo=t}syuhzg&oV>428 zkYS6EA7COd6-kS!Fj=X+0>-*D0J(!}Ffhq#YZ;uoj`vzr`}T3S^91c(*RZisqg97` z0n!igqf(WSVNh~BoWLMZX0}svM5DzB7&@Ov3tTFtGN+3U(YPdSg{jz*biTy%hmIHj z`0QXG5Y^x1xkj7tO0WZ`@j15$yJ-ETeFIfwrMo$VE6%h#|s>q%p*g!+}Na( zvJ_5DW;yBDG+1F05sj|e5JR@ZXs*in=?dwh&7`AI$hn+5dx2L^j4*lN=&@qP7yw4K zVwI>N98a%t4lt|uyCA{-(E?iUoa=s(G}VysAtXFLy>F0ErA#T4MuuawcDFP7+AwD` z)7Vnbnn=)QnbaGgNsx*lYK8F?g?!*KnVlk36Cs|6@M>Km&FO4EFr~#FX3X0`ow6PK ztx{O^%(aKQ19y$?LyaEr&+Q>zIy}bo1)EaL;J|MW;ub4-MUTmX%i*R9rYzHVc95>d zD$eXqq~1!Xa2{oJjDf1`&!*mEYLt?8wloU(Zyv|mMey==LWOF$`^x1Ba%D13hiOo%xM-?EW;)5~@o9>##}tyWK;`7QB9*BunHB>>`Y4$`8itOs>`#4c zC|47E`nn(Z(ZG@^AOd6o`B$ab+;x2My=QkF?p<_Oc%h{;-%^-oX{5p`^`^koRTKe2 zfam&DY!BBDDEU4U6_1nC4zFb@RE0{^GzbDo|JieF-t&2G9y*NK>f70*`PkMI*M0rz zHx^_7PXNS!(RW=(eeJdzT5GOrQo-_V{7Q*Rp#YwXr70w0VG_{@mZ2h;DKx(CV|xLP zln6zoDg|dM0i)%BLI6TnsrZtS=XYm6@ahk@-qLgO8B43`6&JI$hC#6nw7Q=iUpF7; znRa3G{-{U9cPW<296LA8D}!e!RBccctcXQ(yn*_#ff@u3OYKXtdVNjG^E^G2%VK6H%M;zpicPiQrl_G4k2jF2 zi&1B&X!$&^r>6;*vK%4;tT=i&SgJdeQiVj!|lJh=Q9`W`iiDu>wDI(kEWcU zLnPV%Sa8M1cf4}7_&{X;P`~Tm^{{VA$ToJ(d9xea? N002ovPDHLkV1k}U1(pB+ literal 0 HcmV?d00001 diff --git a/kweather/hi48-app-kweather.png b/kweather/hi48-app-kweather.png new file mode 100644 index 0000000000000000000000000000000000000000..2162177e126845fb0d9f4701628162a743ad5591 GIT binary patch literal 4987 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 FV1mDjUOE5( literal 0 HcmV?d00001 diff --git a/kweather/kcmweather.cpp b/kweather/kcmweather.cpp new file mode 100644 index 0000000..26b029f --- /dev/null +++ b/kweather/kcmweather.cpp @@ -0,0 +1,222 @@ +/* + This file is part of KWeather. + Copyright (c) 2003 Tobias Koenig + + 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. + + 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; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + As a special exception, permission is given to link this program + with any edition of Qt, and distribute the resulting executable, + without including the source code for Qt in the source distribution. +*/ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "dockwidget.h" +#include "prefdialogdata.h" + +#include "kcmweather.h" +#include "weatherservice_stub.h" + +extern "C" +{ + KDE_EXPORT KCModule *create_weather( QWidget *parent, const char * ) + { + return new KCMWeather( parent, "kweather" ); + } +} + +KCMWeather::KCMWeather( QWidget *parent, const char *name ) + : KCModule( parent, name ) +{ + mWeatherService = new WeatherService_stub( "KWeatherService", + "WeatherService" ); + QVBoxLayout *layout = new QVBoxLayout( this ); + mWidget = new prefsDialogData( this ); + + mWidget->m_reportLocation->setFocus(); + layout->addWidget( mWidget ); + layout->addStretch(); + + fillStationList(); + load(); + connect( mWidget->m_enableLog, SIGNAL( toggled( bool ) ), + SLOT( enableLogWidgets( bool ) ) ); + connect( mWidget->m_viewMode, SIGNAL( released( int ) ), + SLOT( changeViewMode( int ) ) ); + connect( mWidget->m_reportLocation, SIGNAL( activated( const QString& ) ), + SLOT( reportLocationChanged() ) ); + connect( mWidget->m_textColor, SIGNAL( changed(const QColor &) ), + SLOT( textColorChanged(const QColor &) ) ); + + KAboutData *about = new KAboutData( + I18N_NOOP( "kcmweather" ), + I18N_NOOP( "KWeather Configure Dialog" ), + 0, 0, KAboutData::License_GPL, + I18N_NOOP( "(c), 2003 Tobias Koenig" ) ); + + about->addAuthor( "Tobias Koenig", 0, "tokoe@kde.org" ); + setAboutData(about); +} + +KCMWeather::~KCMWeather() +{ + delete mWeatherService; +} +void KCMWeather::showEvent( QShowEvent * ) +{ + fillStationList(); +} + +void KCMWeather::fillStationList() +{ + // store current selection + QString current = mWidget->m_reportLocation->currentText(); + + mWidget->m_reportLocation->clear(); + + QStringList stationList = mWeatherService->listStations(); + QStringList::Iterator idx = stationList.begin(); + + // get station name from station id for sorting afterwards + for(; idx != stationList.end(); ++idx) + *idx = mWeatherService->stationName(*idx); + + stationList.sort(); + + idx = stationList.begin(); + for(; idx != stationList.end(); ++idx) + mWidget->m_reportLocation->insertItem(*idx); + + // restore previous selection + if ( current.isEmpty() ) + { + // nothing defined yet; show this situation to the user, otherwise + // he will see the first available setting which is not what he selected to view + mWidget->m_reportLocation->insertItem(""); + mWidget->m_reportLocation->setCurrentText(""); + } + else + { + for (int i = 0; i < mWidget->m_reportLocation->count(); i++) + if ( mWidget->m_reportLocation->text(i) == current ) + { + mWidget->m_reportLocation->setCurrentItem(i); + break; + } + } + + if ( current != mWidget->m_reportLocation->currentText() ) + reportLocationChanged(); +} + +void KCMWeather::changeViewMode( int mode ) +{ + mViewMode = mode; + emit changed( true ); +} + +void KCMWeather::enableLogWidgets( bool value ) +{ + mWidget->m_logFile->setEnabled( value ); + mWidget->m_labelLogFile->setEnabled( value ); + + emit changed( true ); +} + +void KCMWeather::reportLocationChanged() +{ + kdDebug() << "New station: " << mWidget->m_reportLocation->currentText() + << " Code: " << mWeatherService->stationCode( mWidget->m_reportLocation->currentText() ) << endl; + emit changed( true ); +} + +void KCMWeather::textColorChanged(const QColor &) +{ + emit changed( true ); +} + +void KCMWeather::load() +{ + kdDebug() << "Load" << endl; + KConfig config( "weather_panelappletrc" ); + + config.setGroup( "General Options" ); + bool enabled = config.readBoolEntry( "logging", false ); + mWidget->m_enableLog->setChecked( enabled ); + enableLogWidgets( enabled ); + + static QColor black(Qt::black); + QColor textColor = config.readColorEntry("textColor", &black); + mWidget->m_textColor->setColor(textColor); + + QString loc = config.readEntry( "report_location" ); + + mWidget->m_logFile->setURL( config.readPathEntry( "log_file_name" ) ); + + if ( ! loc.isEmpty() ) + mWidget->m_reportLocation->setCurrentText( mWeatherService->stationName( loc ) ); + + mWidget->m_viewMode->setButton( config.readNumEntry( "smallview_mode", dockwidget::ShowAll ) ); + changeViewMode( config.readNumEntry( "smallview_mode", dockwidget::ShowAll ) ); + emit changed( false ); +} + +void KCMWeather::save() +{ + kdDebug() << "Save" << endl; + KConfig config( "weather_panelappletrc" ); + + config.setGroup( "General Options" ); + config.writeEntry( "logging", mWidget->m_enableLog->isChecked() ); + config.writeEntry( "log_file_name", mWidget->m_logFile->url() ); + config.writeEntry( "textColor", mWidget->m_textColor->color() ); + + // Station idx to local idx; if nothing selected yet, keep it empty + QString loc; + if ( ! mWidget->m_reportLocation->currentText().isEmpty() ) + loc = mWeatherService->stationCode( mWidget->m_reportLocation->currentText() ); + config.writeEntry( "report_location", loc); + + config.writeEntry( "smallview_mode", mViewMode ); + config.sync(); + + emit changed( false ); +} + +void KCMWeather::defaults() +{ + mWidget->m_enableLog->setChecked( false ); + enableLogWidgets( false ); + + mWidget->m_logFile->setURL( "" ); + mWidget->m_reportLocation->setCurrentText( "" ); + changeViewMode( dockwidget::ShowAll ); + + emit changed( true ); +} + +#include "kcmweather.moc" diff --git a/kweather/kcmweather.desktop b/kweather/kcmweather.desktop new file mode 100644 index 0000000..34893f9 --- /dev/null +++ b/kweather/kcmweather.desktop @@ -0,0 +1,178 @@ +[Desktop Entry] +Icon=configure +Type=Service +ServiceTypes=KCModule + +X-KDE-ModuleType=Library +X-KDE-Library=weather +X-KDE-FactoryName=weather +X-KDE-ParentApp=weather_panelapplet +X-KDE-ParentComponents=weather_panelapplet + +Name=Display +Name[ar]=الشاشة +Name[be]=Паказваць +Name[bg]=Показване +Name[bn]=ডিসপ্লে +Name[br]=Diskwel +Name[bs]=Prikaz +Name[ca]=Pantalla +Name[cs]=Zobrazení +Name[cy]=Dangos +Name[da]=Visning +Name[de]=Anzeige +Name[el]=Εμφάνιση +Name[eo]=Vidigilo +Name[es]=Visualización +Name[et]=Vaade +Name[eu]=Pantaila +Name[fa]=نمایش +Name[fi]=Näyttö +Name[fr]=Affichage +Name[ga]=Taispeáint +Name[gl]=Mostrar +Name[he]=תצוגה +Name[hi]=प्रकटन +Name[hr]=Zaslon +Name[hu]=Képernyő +Name[id]=Tampilan +Name[is]=Skjáborð +Name[it]=Visualizzazione +Name[ja]=表示 +Name[km]=បង្ហាញ +Name[ko]=표시 +Name[lv]=Displejs +Name[mk]=Приказ +Name[nb]=Vis +Name[nds]=Dorstellen +Name[ne]=प्रदर्शन गर्नुहोस् +Name[nn]=Vising +Name[pa]=ਡਿਸਪਲੇਅ +Name[pl]=Wyświetlanie +Name[pt]=Aparência +Name[pt_BR]=Tela +Name[ro]=Ecran +Name[ru]=Показ +Name[rw]=Kwerekana +Name[sk]=Displej +Name[sl]=Prikaz +Name[sr]=Приказ +Name[sr@Latn]=Prikaz +Name[sv]=Visning +Name[ta]= காட்சி +Name[tg]=Нишон диҳед +Name[tr]=Görünüm +Name[uk]=Дисплей +Name[uz]=Koʻrsatish +Name[uz@cyrillic]=Кўрсатиш +Name[wa]=Håynaedje +Name[zh_CN]=显示 +Name[zh_TW]=顯示 +Comment=Display Setup +Comment[ar]=تعيين الشاشة +Comment[be]=Настаўленне паказу +Comment[bg]=Настройки на показването +Comment[bn]=ডিসপ্লে সংক্রান্ত প্রস্তুতি +Comment[br]=Kefluniadur an Diskwel +Comment[bs]=Postavke prikaza +Comment[ca]=Configuració de pantalla +Comment[cs]=Nastavení zobrazení +Comment[cy]=Gosod Ymddangosiad +Comment[da]=Opsætning af visning +Comment[de]=Einrichtung der Anzeige +Comment[el]=Ρύθμιση εμφάνισης +Comment[eo]=Vidigilagordo +Comment[es]=Configuración de vistas +Comment[et]=Vaateseadistused +Comment[eu]=Pantaila Egokitu +Comment[fa]=برپایی نمایش +Comment[fi]=Näytön asetukset +Comment[fr]=Configuration de l'affichage +Comment[ga]=Socrú an Taispeáint +Comment[gl]=Configurar visualización +Comment[he]=הגדרות תצוגה +Comment[hi]=प्रकटन सेटअप +Comment[hr]=Podešavanje prikazivanja +Comment[hu]=A képernyő beállításai +Comment[is]=Stillingar skjáborðs +Comment[it]=Impostazione visualizzazione +Comment[ja]=表示設定 +Comment[km]=បង្ហាញ​ការ​រៀបចំ +Comment[ko]=표시 설정 +Comment[lv]=Displeja uzstādījumi +Comment[mk]=Поставување на приказот +Comment[mt]=Set tad-Display +Comment[nb]=Visningsoppsett +Comment[nds]=Dorstell-Optschonen +Comment[ne]=सेटअप प्रदर्शन गर्नुहोस् +Comment[nl]=Display-instellingen +Comment[nn]=Oppsett av skjermvising +Comment[pa]=ਡਿਸਪਲੇਅ ਸੈੱਟਅੱਪ +Comment[pl]=Ustawienia wyświetlania +Comment[pt]=Configuração da Aparência +Comment[pt_BR]=Configurações da Tela +Comment[ro]=Setări ecran +Comment[ru]=Параметры показа +Comment[sk]=Nastavenie displeja +Comment[sl]=Nastavitev prikaza +Comment[sr]=Подешавање приказа +Comment[sr@Latn]=Podešavanje prikaza +Comment[sv]=Inställning av visning +Comment[ta]=அமைப்பை காட்டு +Comment[tg]=Соз кардани намоиш +Comment[tr]=Görünüm Ayarı +Comment[uk]=Налаштування дисплею +Comment[wa]=Apontiaedje do håynaedje +Comment[zh_CN]=显示设置 +Comment[zh_TW]=顯示設定 +Keywords=kweather, weather, configure, settings, display +Keywords[ar]=kweather برنامج, الطقس, تهيئة, إعدادات, شاشة +Keywords[bg]=време, метеорологично, метеорология, показване, състояние, доклад, kweather, weather, configure, settings, display +Keywords[bn]=কে-ওয়েদার, আবহাওয়া, কনফিগার, বৈশিষ্ট্য, ডিসপ্লে +Keywords[br]=kweather, amzer, kefluniañ, dibarzhoù, diskwel +Keywords[bs]=kweather, weather, configure, settings, display, vrijeme, podesi, postavke, prikaz +Keywords[ca]=kweather, temps, configuració, paràmetres, pantalla +Keywords[cs]=kweather,počasí,nastavení,zobrazení +Keywords[cy]=kweather, ktywydd, tywydd, ffurfweddu, gosodiadau, ymddangosiad +Keywords[da]=kweather, vejr, indstil, opsætning, visning +Keywords[de]=kweather, kwetter, wetter, einrichten, einstellungen, anzeige +Keywords[el]=kweather, καιρός, ρύθμιση, ρυθμίσεις, εμφάνιση +Keywords[es]=kweather, clima, configurar, parámetros, visualización +Keywords[et]=kweather, ilm, seadistamine, seadistused, vaade +Keywords[eu]=kweather, eguraldia, configuratu, ezarpenak, pantaila +Keywords[fa]=kweather، آب و هوا، پیکربندی، تنظیمات، نمایش +Keywords[fi]=kweather, sää, aseta, asetukset, näyttö +Keywords[fr]=kweather, temps, configurer, affichage, météo +Keywords[ga]=kweather, aimsir, cumraigh, socruithe, taispeáint +Keywords[gl]=kweather, clima, configurar, axustes, mostrar +Keywords[he]=kweather, weather, configure, settings, display, מזג אוויר, הגדרות, הגדרות, תצוגה +Keywords[hi]=के-वेदर,वेदर,कॉन्फ़िगर,विन्यास,प्रकटन +Keywords[hr]=kweather, weather service, configure, settings, prikazivanje, podešavanje, postavke, meteorologija, vrijeme, meteorološki izvještaj, prognoza, prikaz, kvrijeme +Keywords[hu]=kweather,időjárás,beállítás,konfiguráció,képernyő +Keywords[it]=kweather,tempo,meteo,configurazione,impostazioni,visualizzazione +Keywords[ja]=kweather, 気象, 設定, 設定, 表示 +Keywords[km]=kweather, អាកាសធាតុ, កំណត់​រចនាសម្ព័ន្ធ, ការ​កំណត់, បង្ហាញ +Keywords[ko]=kweather, 날씨, 설정, 표시 +Keywords[lv]=kweather, laikapstākļi, konfigurēt, uzstādījumi, displejs +Keywords[mk]=kweather, weather, configure, settings, display, време, конфигурација, поставувања, приказ +Keywords[nb]=kweather, vær, oppsett, innstillinger, visning +Keywords[nds]=kweather, kweder, weder, instellen, setten, Schirm +Keywords[nl]=kweather,weerbericht,configureren,instellen,display +Keywords[nn]=kweather,vêr,oppsett,innstillingar,vising +Keywords[pl]=kweather, pogoda, konfiguruj, konfiguracja, ustawienia, wyświetlanie +Keywords[pt]=kweather, tempo, meteorologia, configurar, configuração, aparência +Keywords[pt_BR]=kweather, tempo, configurar,configurações,tela +Keywords[ro]=kweather,meteo,configurare,setări,ecran +Keywords[ru]=kweather, weather, configure, settings, display, настройка, погода +Keywords[sk]=kweather,počasie,nastaviť,displej,zobrazenie +Keywords[sl]=kweather,kvreme,vreme,nastavi,prikaz +Keywords[sr]=kweather, weather service, configure, settings, подеси, подешавања, поставке, прогноза, време, временска прогноза, приказ +Keywords[sr@Latn]=kweather, weather service, configure, settings, podesi, podešavanja, postavke, prognoza, vreme, vremenska prognoza, prikaz +Keywords[sv]=kweather,väder,anpassa,inställningar,visning +Keywords[ta]= k வானிலை, வானிலை, உள்ளமை,அமைப்புகள், காட்சி +Keywords[tg]=kҳаво, ҳаво, дигаргуниҳо, танзимотҳо, намоиш +Keywords[tr]=kweather, hava, ayar, seçenek, görünüm +Keywords[uk]=kweather, погода, налаштування, параметри, дисплей +Keywords[wa]=kweather, meteyo, tins, apontyî, apontiaedjes, håyner, håynaedje +Keywords[zh_CN]=kweather, weather, configure, settings, display, 天气, 配置, 设置, 显示 +DocPath=kweather?anchor=configuring-kweather diff --git a/kweather/kcmweather.h b/kweather/kcmweather.h new file mode 100644 index 0000000..4fe2326 --- /dev/null +++ b/kweather/kcmweather.h @@ -0,0 +1,58 @@ +/* + This file is part of KWeather. + Copyright (c) 2003 Tobias Koenig + + 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. + + 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; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + As a special exception, permission is given to link this program + with any edition of Qt, and distribute the resulting executable, + without including the source code for Qt in the source distribution. +*/ + +#ifndef KCMWEATHER_H +#define KCMWEATHER_H + +#include + +class prefsDialogData; + +class KCMWeather : public KCModule +{ + Q_OBJECT + + public: + KCMWeather( QWidget *parent = 0, const char *name = 0 ); + ~KCMWeather(); + + virtual void load(); + virtual void save(); + virtual void defaults(); + + protected: + void fillStationList(); + virtual void showEvent( QShowEvent * ); + + private slots: + void enableLogWidgets( bool value ); + void changeViewMode( int mode ); + void reportLocationChanged(); + void textColorChanged(const QColor &); + + private: + prefsDialogData *mWidget; + WeatherService_stub *mWeatherService; + int mViewMode; +}; + +#endif diff --git a/kweather/kcmweatherservice.cpp b/kweather/kcmweatherservice.cpp new file mode 100644 index 0000000..ee7fb0f --- /dev/null +++ b/kweather/kcmweatherservice.cpp @@ -0,0 +1,72 @@ +/* + This file is part of KWeather. + Copyright (c) 2003 Tobias Koenig + + 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. + + 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; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + As a special exception, permission is given to link this program + with any edition of Qt, and distribute the resulting executable, + without including the source code for Qt in the source distribution. +*/ + +#include + +#include +#include +#include + +#include "serviceconfigwidget.h" + +#include "kcmweatherservice.h" + +extern "C" +{ + KDE_EXPORT KCModule *create_weatherservice( QWidget *parent, const char * ) { + return new KCMWeatherService( parent, "kweather" ); + } +} + +KCMWeatherService::KCMWeatherService( QWidget *parent, const char *name ) + : KCModule( parent, name ) +{ + QVBoxLayout *layout = new QVBoxLayout( this ); + mWidget = new ServiceConfigWidget( this ); + + // not needed, as a change immediately changes the service + //connect(mWidget, SIGNAL(changed(bool)), this, SIGNAL(changed(bool))); + + layout->addWidget( mWidget ); + KAboutData *about = new KAboutData( "kcmweatherservice", + I18N_NOOP( "KWeather Configure Dialog" ), + 0, 0, KAboutData::License_GPL, + I18N_NOOP( "(c), 2003 Tobias Koenig" ) ); + + about->addAuthor( "Tobias Koenig", 0, "tokoe@kde.org" ); + setAboutData(about); +} + +void KCMWeatherService::load() +{ +} + +void KCMWeatherService::save() +{ +} + +void KCMWeatherService::defaults() +{ +} + +#include "kcmweatherservice.moc" diff --git a/kweather/kcmweatherservice.desktop b/kweather/kcmweatherservice.desktop new file mode 100644 index 0000000..d7522d2 --- /dev/null +++ b/kweather/kcmweatherservice.desktop @@ -0,0 +1,181 @@ +[Desktop Entry] +Icon=kweather +Type=Service +ServiceTypes=KCModule + +X-KDE-ModuleType=Library +X-KDE-Library=weatherservice +X-KDE-FactoryName=weatherservice +X-KDE-ParentApp=weather_panelapplet +X-KDE-ParentComponents=weather_panelapplet,kontact_weatherplugin +X-KDE-CfgDlgHierarchy=KontactSummary + +Name=Weather Service +Name[ar]=خدمة الأرصاد الجوية +Name[be]=Сервіс надвор'я +Name[bg]=Сървър +Name[bn]=আবহাওয়া সার্ভিস +Name[br]=Servij an amzer +Name[bs]=Servis vremenske prognoze +Name[ca]=Servei meteorològic +Name[cs]=Služba počasí +Name[cy]=GwasanaethTywydd +Name[da]=Vejrtjeneste +Name[de]=Wetterdienst +Name[el]=Υπηρεσία καιρού +Name[eo]=VeteroServo +Name[es]=Servicio de meteorología +Name[et]=Ilmateenistus +Name[eu]=Eguraldi Serbitzua +Name[fa]=خدمت آب و هوا +Name[fi]=Sääpalvelu +Name[fr]=KWeatherService +Name[ga]=Seirbhís Aimsire +Name[gl]=Servizo Meteorolóxico +Name[he]=שרות ה־DCOP של KWeather +Name[hi]=मौसम सेवा +Name[hr]=Meteorološki izvještaj +Name[hu]=Időjárás-előrejelzés +Name[is]=Veðurþjónustan +Name[it]=Servizio meteorologico +Name[ja]=気象サービス +Name[km]=សេវា​អាកាសធាតុ +Name[ko]=날씨 서비스 +Name[lv]=Laikapstākļu serviss +Name[mk]=Сервис за\nвременска\nпрогноза +Name[mt]=Servizz tat-Temp +Name[nb]=Værtjeneste +Name[nds]=Wederdeenst +Name[ne]=मौसम सेवा +Name[nl]=Weerbericht +Name[nn]=Vêrteneste +Name[pa]=ਮੌਸਮ ਸੇਵਾ +Name[pl]=Serwis pogodowy +Name[pt]=Serviço Meteorológico +Name[pt_BR]=Serviço do Tempo +Name[ro]=Meteo +Name[ru]=Погода +Name[sk]=Predpoveď počasia +Name[sl]=Vremenske storitve +Name[sr]=Сервис временске прогнозе +Name[sr@Latn]=Servis vremenske prognoze +Name[sv]=Väderlekstjänst +Name[ta]= வானிலை சேவை +Name[tg]=Хизмати Ҳаво +Name[tr]=Hava Servisi +Name[uk]=Служба погоди +Name[uz]=Ob-havo xizmati +Name[uz@cyrillic]=Об-ҳаво хизмати +Name[wa]=Siervice meteyo +Name[zh_CN]=气象服务 +Name[zh_TW]=氣象服務 +Comment=Weather Service Setup +Comment[be]=Настаўленне сервісу надвор'я +Comment[bg]=Настройки на метеорологичния сървър +Comment[bn]=আবহাওয়া সার্ভিস প্রস্তুতি +Comment[br]=Kefluniadur servij an amzer +Comment[bs]=Postavke servisa vremenske prognoze +Comment[ca]=Configuració del servei meteorològic +Comment[cs]=Nastavení služby počasí +Comment[cy]=Gosod GwasanaethTywydd +Comment[da]=Opsætning af vejrtjeneste +Comment[de]=Einrichtung des Wetterdienstes +Comment[el]=Ρύθμιση υπηρεσίας καιρού +Comment[eo]=Agordo de VeteroServo +Comment[es]=Configuración del servicio de meteorología +Comment[et]=Ilmateenistuse seadistamine +Comment[eu]=Eguraldi Serbitzua Egokitu +Comment[fa]=برپایی خدمت آب و هوا +Comment[fi]=Sääpalvelun asetukset +Comment[fr]=Configuration du service Weather +Comment[ga]=Socrú na Seirbhíse Aimsire +Comment[gl]=Configuración do Servizo Meteorolóxico +Comment[he]=הגדרות שרות ה־DCOP של KWeather +Comment[hi]=मौसम सेवा सेटअप +Comment[hr]=Podešavanje usluga meteorološkog izvještaja +Comment[hu]=Az időjárás-előrejelző szolgáltatás beállításai +Comment[is]=Stilla veðurþjónustuna +Comment[it]=Impostazione servizio meteorologico +Comment[ja]=気象サービスの設定 +Comment[km]=ការ​រៀបចំ​សេវា​អាកាសធាតុ +Comment[ko]=날씨 서비스 설정 +Comment[lv]=Laikapstākļu servisa uzstādījumi +Comment[mk]=Поставување на сервисот за временска прогноза +Comment[mt]=Konfigurazzjoni tas-Servizz tat-Temp +Comment[nb]=Oppsett av værtjeneste +Comment[nds]=Wederdeenst instellen +Comment[ne]=मौसम सेवा सेटअप +Comment[nl]=Instellingen voor weerbericht +Comment[nn]=Oppsett av vêrteneste +Comment[pl]=Ustawienia serwisu pogodowego +Comment[pt]=Configuração do Serviço Meteorológico +Comment[pt_BR]=Configuração do Serviço do Tempo +Comment[ro]=Setare serviciu meteo +Comment[ru]=Настройка информации о погоде +Comment[sk]=Nastavenie služby pre predpoveď počasia +Comment[sl]=Nastavitev vremenskih storitev +Comment[sr]=Подешавање сервиса временске прогнозе +Comment[sr@Latn]=Podešavanje servisa vremenske prognoze +Comment[sv]=Inställning av väderlekstjänst +Comment[ta]= வானிலை சேவை அமைப்பு +Comment[tg]=Соз Кардани Хизмати Ҳаво +Comment[tr]=Hava Servis Ayarı +Comment[uk]=Налаштування служби погоди +Comment[uz]=Ob-havo xizmatini oʻrnatish +Comment[uz@cyrillic]=Об-ҳаво хизматини ўрнатиш +Comment[wa]=Apontiaedje do siervice meteyo +Comment[zh_CN]=气象服务设置 +Comment[zh_TW]=氣象服務設定 +Keywords=kweather, weather service, configure, settings +Keywords[ar]=kweather برنامج, خدمة الأرصاد الجوية والطقس, تهيئة, إعدادات, شاشة +Keywords[bg]=време, метеорологично, метеорология, показване, състояние, доклад, kweather, weather service, configure, settings +Keywords[bn]=কে-ওয়েদার, আবহাওয়া সার্ভিস, কনফিগার, বৈশিষ্ট্য +Keywords[bs]=kweather, weather service, configure, settings, servis, vremenska prognoza, postavke +Keywords[ca]=kweather, servei meteorològic, configuració, paràmetres +Keywords[cs]=kweather,služba počasí,nastavení +Keywords[cy]=kweather, ktywydd, tywydd, ffurfweddu, gosodiadau +Keywords[da]=kweather, vejrtjeneste, indstilling, opsætning +Keywords[de]=kweather, kwetter, wetterdienst, einrichten, einstellungen +Keywords[el]=kweather, υπηρεσία καιρού, ρύθμιση, ρυθμίσεις +Keywords[es]=kweather, servicio de meteorología, configurar, parámetros +Keywords[et]=kweather, ilmateenistus, seadistamine, seadistused +Keywords[eu]=kweather,eguraldi serbitzua, konfiguratu, ezarpenak +Keywords[fa]=kweather، خدمت آب و هوا، پیکربندی، تنظیمات +Keywords[fi]=kweather, sääpalvelu, aseta, asetukset +Keywords[fr]=kweather, weather service, configurer, réglages +Keywords[ga]=kweather, seirbhís aimsire, cumraigh, socruithe +Keywords[gl]=kweather, servizo meteorolóxico, configurar, axustes +Keywords[he]=kweather, weather service, configure, settings, שרות ה־DCOP של kweather, הגדרות, הגדרות, שרות ה-DCOP של kweather +Keywords[hi]=के-वेदर,वेदर सर्विस,कॉन्फ़िगर,विन्यास +Keywords[hr]=kweather, weather service, configure, settings, podesi, podešavanja, postavke, meteorologija, vrijeme, vremenska prognoza, meteorološki izvještaj +Keywords[hu]=kweather,időjárás-előrejelzés,beállítás,konfiguráció +Keywords[it]=kweather,servizio meteorologico,meteo,configurazione,impostazioni +Keywords[ja]=kweather, 気象サービス, 設定, 設定 +Keywords[km]=kweather, សេវា​អាកាសធាតុ, កំណត់​រចនាសម្ព័ន្ធ, ការ​កំណត់ +Keywords[ko]=kweather, 날씨 서비스, 설정 +Keywords[lv]=kweather, laikapstākļu serviss, konfigurēt, uzstādījumi +Keywords[mk]=kweather, weather service, configure, settings, сервис за време, конфигурација, поставувања +Keywords[mt]=kweather, weather service, configure, settings, servizz tat-temp, konfigurazzjoni +Keywords[nb]=kweather, værtjeneste, oppsett, innstillinger +Keywords[nds]=KWeather, KWeder, Wederdeenst, Instellen +Keywords[nl]=kweather,weerberichten,instellen,configureren +Keywords[nn]=kweather,vêrteneste,oppsett,innstillingar +Keywords[pl]=kweather, ustawienia, konfiguruj, konfiguracja, serwis pogodowy +Keywords[pt]=kweather, serviço meteorológico, configurar, configuração +Keywords[pt_BR]=kweather, serviço de tempo, configurar,configurações +Keywords[ro]=kweather,serviciu,meteo,configurare,setări +Keywords[ru]=kweather, weather service, configure, settings, настройки, погода +Keywords[sk]=kweather,služba počasia,predpoveď počasia,nastavenie +Keywords[sl]=kweather,kvreme,vreme,nastavi,storit +Keywords[sr]=kweather, weather service, configure, settings, подеси, подешавања, поставке, прогноза, време, временска прогноза +Keywords[sr@Latn]=kweather, weather service, configure, settings, podesi, podešavanja, postavke, prognoza, vreme, vremenska prognoza +Keywords[sv]=kweather,väderlekstjänst,anpassa,inställningar +Keywords[ta]=k வானிலை, வானிலை சேவை, உள்ளமை,அமைப்புகள் +Keywords[tg]=kҳаво, хизмати ҳаво, дигаргуниҳо, танзимотҳо +Keywords[tr]=kweather, hava servisi, ayar, seçenek +Keywords[uk]=kweather, служба погоди, налаштування, параметри +Keywords[uz]=kweather, ob-havo xizmati, moslash, moslamalar +Keywords[uz@cyrillic]=kweather, об-ҳаво хизмати, мослаш, мосламалар +Keywords[wa]=kweather, meteyo, tins, siervice meteyo, apontyî, apontiaedjes +Keywords[zh_CN]=kweather, weather service, configure, settings, 气象服务, 配置, 设置 +DocPath=kweather?anchor=weather-service diff --git a/kweather/kcmweatherservice.h b/kweather/kcmweatherservice.h new file mode 100644 index 0000000..c5466d4 --- /dev/null +++ b/kweather/kcmweatherservice.h @@ -0,0 +1,46 @@ +/* + This file is part of KWeather. + Copyright (c) 2003 Tobias Koenig + + 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. + + 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; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + As a special exception, permission is given to link this program + with any edition of Qt, and distribute the resulting executable, + without including the source code for Qt in the source distribution. +*/ + +#ifndef KCMWEATHERSERVICE_H +#define KCMWEATHERSERVICE_H + +#include + +class ServiceConfigWidget; + +class KCMWeatherService : public KCModule +{ + Q_OBJECT + + public: + KCMWeatherService( QWidget *parent = 0, const char *name = 0 ); + + virtual void load(); + virtual void save(); + virtual void defaults(); + + private: + ServiceConfigWidget *mWidget; +}; + +#endif diff --git a/kweather/kweather.cpp b/kweather/kweather.cpp new file mode 100644 index 0000000..5410b10 --- /dev/null +++ b/kweather/kweather.cpp @@ -0,0 +1,425 @@ +/*************************************************************************** + kweather.cpp - description + ------------------- + begin : Wed Jul 5 23:09:02 CDT 2000 + copyright : (C) 2000-2003 by Ian Reinhart Geiser + : (C) 2002-2003 Nadeem Hasan + email : geiseri@msoe.edu + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "kweather.h" +#include "reportview.h" +#include "dockwidget.h" +#include "weatherservice_stub.h" + +extern "C" +{ + KDE_EXPORT KPanelApplet* init(QWidget *parent, const QString& configFile) + { + KGlobal::locale()->insertCatalogue("kweather"); + kweather *theApplet = new kweather(configFile, KPanelApplet::Normal, + 0, parent, "kweather"); + return theApplet; + } +} + +kweather::kweather(const QString& configFile, Type t, int actions, + QWidget *parent, const char *name): + KPanelApplet(configFile, t, actions, parent, name), weatherIface(), + mFirstRun( false ), mReport( 0 ), mClient( 0 ), + mContextMenu( 0 ), mWeatherService( 0 ), settingsDialog( 0 ), mTextColor(Qt::black) +{ + kdDebug(12004) << "Constructor " << endl; + setObjId("weatherIface"); + + setBackgroundOrigin( QWidget::AncestorOrigin ); + loadPrefs(); + initContextMenu(); + initDCOP(); + + dockWidget = new dockwidget(reportLocation, this, "dockwidget"); + connect(dockWidget, SIGNAL(buttonClicked()), SLOT(doReport())); + dockWidget->setViewMode(mViewMode); + setLabelColor(); + + timeOut = new QTimer(this, "timeOut" ); + connect(timeOut, SIGNAL(timeout()), SLOT(timeout())); + timeOut->start(10*60*1000); + + if(mFirstRun) + preferences(); + else + timeout(); +} + +kweather::~kweather() +{ + delete mWeatherService; +} + +void kweather::initContextMenu() +{ + mContextMenu = new KPopupMenu(this); + mContextMenu->insertTitle(i18n("KWeather - %1").arg( reportLocation ), -1, 0); + mContextMenu->insertItem(SmallIcon("viewmag"), i18n("Show &Report"), + this, SLOT(doReport()), 0, -1, 1); + mContextMenu->insertItem(SmallIcon("reload"), i18n("&Update Now"), + this, SLOT(slotUpdateNow()), 0, -1, 2); + mContextMenu->insertSeparator(); + mContextMenu->insertItem(SmallIcon("kweather"), i18n("&About KWeather"), this, SLOT(about())); + mContextMenu->insertItem(SmallIcon("configure"), + i18n("&Configure KWeather..."), this, SLOT(preferences())); + setCustomMenu(mContextMenu); +} + +void kweather::initDCOP() +{ + if ( !mClient ) + mClient = KApplication::dcopClient(); + + if(!mClient->isAttached()) + mClient->attach(); + + if(!attach()) + return; + + kdDebug(12004) << "attached to the server..." << endl; + + if ( mWeatherService ) + delete mWeatherService; + + mWeatherService = new WeatherService_stub( "KWeatherService", "WeatherService" ); + + if (!connectDCOPSignal(0, 0, "fileUpdate(QString)", + "refresh(QString)",false)) + kdDebug(12004) << "Could not attach dcop signal..." << endl; + else + kdDebug(12004) << "attached dcop signals..." << endl; +} + +/** about box */ +void kweather::about(){ + kdDebug(12004) << "Telling about" << endl; + KAboutData aboutData("KWeather", "KWeather", "2.1.0", + I18N_NOOP("Weather applet for the Kicker"), KAboutData::License_GPL_V2); + aboutData.addAuthor("Ian Reinhart Geiser", "", "geiseri@kde.org", + "http://www.kde.org/"); + //aboutData.addAuthor("Nadeem Hasan", "", "nhasan@nadmm.com", "http://www.nadmm.com/"); + aboutData.addCredit("Nadeem Hasan", I18N_NOOP("Lots of bugfixes," + " improvements and cleanups."), "nhasan@nadmm.com"); + aboutData.addCredit("Will Andrews", I18N_NOOP("Fixed for BSD port"), + "wca@users.sourceforge.net", ""); + aboutData.addCredit("Ben Burton", I18N_NOOP("Debian fixes"), "benb@acm.org"); + aboutData.addCredit("Otto Bruggeman", I18N_NOOP("Fixed the i18n stuff and" + " made sure the indentation was consistent :P"), "bruggie@home.nl"); + aboutData.addCredit( "Carles Carbonell Bernado", + I18N_NOOP( "Great new weather icons" ), "mail@carlitus.net" ); + aboutData.addCredit( "John Ratke", + I18N_NOOP( "Improvements and more code cleanups" ), "jratke@comcast.net" ); + + KAboutApplication about(&aboutData, this, 0); + about.setProgramLogo( KGlobal::instance()->iconLoader()->iconPath( "kweather", -KIcon::SizeLarge ) ); + about.exec(); +} + +/** prefs */ +void kweather::preferences() +{ + kdDebug(12004) << "prefs" << endl; + + savePrefs(); + + if ( settingsDialog == 0 ) + { + settingsDialog = new KCMultiDialog( this ); + connect( settingsDialog, SIGNAL( configCommitted() ), SLOT( slotPrefsAccepted() ) ); + + settingsDialog->addModule( "kcmweather.desktop" ); + settingsDialog->addModule( "kcmweatherservice.desktop" ); + } + + settingsDialog->show(); + settingsDialog->raise(); +} + +/** The help handler */ +void kweather::help() +{ + kapp->invokeHelp(QString::null, QString::fromLatin1("kweather")); +} + +/** Display the current weather report. */ +void kweather::doReport() +{ + if ( reportLocation.isEmpty() ) + { + // no station to display defined -> open settings dialog + preferences(); + return; + } + + kdDebug(12004) << "Showing out the report" << endl; + if ( mReport == 0 ) + { + mReport = new reportView(reportLocation); + + connect( mReport, SIGNAL( finished() ), SLOT( slotReportFinished() ) ); + } + + mReport->show(); + mReport->raise(); +} + +void kweather::slotReportFinished(){ + mReport->delayedDestruct(); + mReport = 0; +} + +/** load the application */ +void kweather::loadPrefs(){ + kdDebug(12004) << "Loading Prefs" << endl; + KConfig *kcConfig = config(); + kcConfig->reparseConfiguration(); + + if (!kcConfig->hasGroup ("General Options") ) + mFirstRun = true; + + kcConfig->setGroup("General Options"); + logOn = kcConfig->readBoolEntry("logging", false); + fileName = kcConfig->readPathEntry("log_file_name"); + reportLocation = kcConfig->readEntry("report_location"); + mViewMode = kcConfig->readNumEntry("smallview_mode", dockwidget::ShowAll); + + static QColor black(Qt::black); + mTextColor = kcConfig->readColorEntry("textColor", &black); +} + +/** Save the application mPrefs. */ +void kweather::savePrefs(){ + kdDebug(12004) << "Saving Prefs..." << endl; + KConfig *kcConfig = config(); + + kcConfig->setGroup("General Options"); + kcConfig->writeEntry("logging", logOn); + kcConfig->writeEntry("report_location", reportLocation); + kcConfig->writeEntry("smallview_mode", mViewMode); + kcConfig->writePathEntry("log_file_name", fileName ); + kcConfig->sync(); +} + +void kweather::showWeather() +{ + kdDebug(12004) << "Show weather" << endl; + dockWidget->showWeather(); + emit updateLayout(); +} + +void kweather::writeLogEntry() +{ + // Write data line in the CSV format + if (logOn && !fileName.isEmpty()) + { + kdDebug(12004)<< "Try log file:" << fileName << endl; + QFile logFile(fileName); + QTextStream logFileStream(&logFile); + if (logFile.open(IO_Append | IO_ReadWrite)) + { + QString temperature = mWeatherService->temperature(reportLocation ); + QString wind = mWeatherService->wind(reportLocation ); + QString pressure = mWeatherService->pressure(reportLocation ); + QString date = mWeatherService->date(reportLocation ); + QStringList weather = mWeatherService->weather(reportLocation ); + QStringList cover = mWeatherService->cover(reportLocation ); + QString visibility = mWeatherService->visibility(reportLocation ); + logFileStream << date << ","; + logFileStream << wind << ","; + logFileStream << temperature << ","; + logFileStream << pressure << ","; + logFileStream << cover.join(";") << ","; + logFileStream << visibility << ","; + logFileStream << weather.join(";"); + logFileStream << endl; + } + else + { + KMessageBox::sorry( this, + i18n("For some reason the log file could not be written to.\n" + "Please check to see if your disk is full or if you " + "have write access to the location you are trying to " + "write to."), + i18n("KWeather Error")); + } + logFile.close(); + } +} + +/** get new data */ +void kweather::timeout() +{ + if ( !mWeatherService ) + initDCOP(); + + if ( mWeatherService ) + { + // isEmtpy is true for null and 0 length strings + if ( !reportLocation.isEmpty() ) + { + kdDebug(12004)<< "Requesting new data for " << reportLocation << endl; + mWeatherService->update(reportLocation); + } + } +} + +int kweather::widthForHeight(int h) const +{ + //kdDebug(12004) << "widthForHeight " << h << endl; + dockWidget->setOrientation(Horizontal); + int w = dockWidget->widthForHeight(h); + return w; +} + +int kweather::heightForWidth(int w) const +{ + kdDebug(12004) << "heightForWidth " << w<< endl; + dockWidget->setOrientation(Vertical); + int h = dockWidget->heightForWidth( w ); + return h; +} + +void kweather::refresh(QString stationID) +{ + kdDebug(12004) << "refresh " << stationID << endl; + if( stationID == reportLocation) + { + showWeather(); + writeLogEntry(); + } +} + +void kweather::slotPrefsAccepted() +{ + // Preferences have been saved in the config file by the KCModule, + // so read them out. + loadPrefs(); + + dockWidget->setLocationCode(reportLocation); + dockWidget->setViewMode(mViewMode); + setLabelColor(); + emit updateLayout(); + + if (logOn && !fileName.isEmpty()) + { + QFile logFile(fileName); + // Open the file, create it if not already exists + if (logFile.open(IO_ReadWrite)) + { + if (logFile.size() == 0) + { + // Empty file, put the header + QTextStream logFileStream(&logFile); + logFileStream << "Date,Wind Speed & Direction,Temperature,Pressure,Cover,Visibility,Current Weather" << endl; + } + logFile.close(); + } + else + { + kdDebug(12004) << "There was an error opening the file...." << endl; + KMessageBox::sorry( this, + i18n("For some reason a new log file could not be opened.\n" + "Please check to see if your disk is full or if you have " + "write access to the location you are trying to write to."), + i18n("KWeather Error")); + } + } + + timeout(); +} + +void kweather::mousePressEvent(QMouseEvent *e) +{ + if ( e->button() != RightButton ) + { + KPanelApplet::mousePressEvent( e ); + return; + } + + mContextMenu->exec(e->globalPos()); +} + +void kweather::slotUpdateNow() +{ + if ( !mWeatherService ) + initDCOP(); + + mWeatherService->forceUpdate(reportLocation ); +} + +bool kweather::attach() +{ + QString error; + kdDebug(12004) << "Looking for dcop service..." << endl; + if (!mClient->isApplicationRegistered("KWeatherService")) + { + kdDebug(12004) << "Could not find service so I am starting it..." + << endl; + if (!KApplication::startServiceByDesktopName("kweatherservice", + QStringList(), &error)) + { + kdDebug(12004) << "Starting KWeatherService failed with message: " + << error << endl; + return false; + } + + kdDebug (12004) << "Service Started..." << endl; + } + else + { + kdDebug(12004) << "Found weather service..." << endl; + } + + return true; +} + +void kweather::resizeEvent(QResizeEvent *e) +{ + kdDebug(12004) << "KWeather Resize event " << e->size() << endl; + dockWidget->resizeView(e->size()); +} + +void kweather::setLabelColor() +{ + setPaletteForegroundColor(mTextColor); +} + +void kweather::paletteChange(const QPalette &) +{ + setLabelColor(); +} + +#include "kweather.moc" diff --git a/kweather/kweather.desktop b/kweather/kweather.desktop new file mode 100644 index 0000000..ee354fe --- /dev/null +++ b/kweather/kweather.desktop @@ -0,0 +1,113 @@ +[Desktop Entry] +Type=Plugin +Comment=Stay informed of the weather outside +Comment[ar]=كن على علم دوماً بحالة الطقس في الخارج +Comment[be]=Застаньцеся інфармаванымі аб надвор'і +Comment[bg]=Информация за метеорологичното време +Comment[bn]=বাহিরের আবহাওয়া সম্পর্কে অবহিত থাকুন +Comment[ca]=Estigueu informat del temps de l'exterior +Comment[cs]=Informuje o počasí +Comment[cy]=Cael eich hysbysu am y tywydd tu allan +Comment[da]=Vær informeret om vejret udenfor +Comment[de]=Hält Sie über das Wetter auf dem Laufenden +Comment[el]=Ενημερωθείτε για τον καιρό +Comment[eo]=Estu informita de la ekstera vetero +Comment[es]=Manténgase informado del clima que hace afuera +Comment[et]=Näitab väljas olevat ilma +Comment[eu]=Eskuratu kanpoko eguraldiaren informazioa +Comment[fa]=با خبر ماندن از آب و هوای بیرون +Comment[fi]=Seuraa säätilan muutoksia +Comment[fr]=Restez informé(e) sur le temps à l'extérieur +Comment[ga]=Faigh eolas faoin aimsir +Comment[gl]=Estexa informado do tempo que fai +Comment[he]=קבל עדכונים אודות מזג האוויר +Comment[hr]=Budite u tijeku s meteorološki uvjetima oko vas +Comment[hu]=Aktuális időjárási információk lekérdezése +Comment[is]=Haltu þér upplýstum um veðrið úti +Comment[it]=Tieniti informato sul tempo che c'è fuori +Comment[ja]=外の天気を知らせます +Comment[km]=នៅ​តែ​ជូន​ដំណឹង​អំពី​អាកាសធាតុ​ខាងក្រៅ +Comment[lv]=Saņemiet informāciju par laikapstākļiem ārpusē +Comment[mk]=Бидете информирани за времето +Comment[nb]=Få informasjon om været +Comment[nds]=Jümmers dat opstunns aktuelle Weder +Comment[ne]=निमन्त्रणा गरिएको बाहिरको मौसम लाई राखि राख्नुहोस् +Comment[nl]=Blijf geïnformeerd over het weer buiten +Comment[nn]=Hald greie på vêret på utsida +Comment[pl]=Informuje o pogodzie na zewnątrz +Comment[pt]=Saiba como está o tempo lá fora +Comment[pt_BR]=Mantenha-se informado sobre o tempo +Comment[ro]=Vă ţine informat despre starea vremii de afară +Comment[ru]=Какая на дворе погода +Comment[sk]=Buďte informovaný o počasí vonku +Comment[sl]=Ostanite obveščeni o vremenu zunaj +Comment[sr]=Будите обавештени о времену напољу +Comment[sr@Latn]=Budite obavešteni o vremenu napolju +Comment[sv]=Håll dig informerad om vädret utanför +Comment[tg]=Дар бораи ҳаво огоҳ шавед +Comment[tr]=Hava durumundan haberdar olun +Comment[uk]=Інформація про погодні умови надворі +Comment[uz]=Yerning turli joyidagi ob-havo haqida maʼlumot +Comment[uz@cyrillic]=Ернинг турли жойидаги об-ҳаво ҳақида маълумот +Comment[zh_CN]=知晓户外天气 +Comment[zh_TW]=留住外面的天氣報告 +Name=Weather Report +Name[ar]=تقرير الطقس +Name[be]=Прагноз надвор'я +Name[bg]=Метеорологично време +Name[bn]=আবহাওয়া রিপোর্ট +Name[ca]=Informació del temps +Name[cs]=Zpráva o počasí +Name[cy]=Adroddiad Tywydd +Name[da]=Vejrudsigt +Name[de]=Wetterbericht +Name[el]=Μετεωρολογική αναφορά +Name[eo]=VeterRaporto +Name[es]=Informe meteorológico +Name[et]=Ilmateade +Name[eu]=Eguraldiaren txostena +Name[fa]=گزارش آب و هوا +Name[fi]=Navigointipalkin säätiedotus +Name[fr]=Rapport météorologique +Name[ga]=Tuairisc Aimsire +Name[gl]=Parte Meteorolóxico +Name[he]=דו"ח מזג אוויר +Name[hr]=Meteorološki izvještaj +Name[hu]=Időjárás-jelentés +Name[is]=Veðurfréttir +Name[it]=Bollettino meteorologico +Name[ja]=気象情報 +Name[km]=របាយការណ៍​អាកាសធាតុ +Name[ko]=날씨 보고 +Name[lv]=Laikapstākļu atskaite +Name[mk]=Извештај за време +Name[mt]=Rapport Tat-Temp +Name[nb]=Værmelding +Name[nds]=Wederbericht +Name[ne]=मौसम प्रतिवेदन +Name[nl]=Weerbericht +Name[nn]=Vêrmelding +Name[pa]=ਮੌਸਮ ਰਿਪੋਰਟ +Name[pl]=Raport o pogodzie +Name[pt]=Boletim Meteorológico +Name[pt_BR]=Relatório do Tempo +Name[ro]=Raport meteo +Name[ru]=Информация о погоде +Name[sk]=Správa o počasí +Name[sl]=Vremensko poročilo +Name[sr]=Временска прогноза +Name[sr@Latn]=Vremenska prognoza +Name[sv]=Väderprognos +Name[ta]=வானிலை அறிக்கை +Name[tg]=Ахборот дар бораи ҳаво +Name[tr]=Hava Durumu +Name[uk]=Інформація про погоду +Name[uz]=Ob-havo haqida hisobot +Name[uz@cyrillic]=Об-ҳаво ҳақида ҳисобот +Name[wa]=Rapoirt meteyo +Name[zh_CN]=气象报告 +Name[zh_TW]=氣象報告 +Icon=kweather +DocPath=kweather/index.html +X-KDE-Library=weather_panelapplet +X-KDE-UniqueApplet=true diff --git a/kweather/kweather.h b/kweather/kweather.h new file mode 100644 index 0000000..d139411 --- /dev/null +++ b/kweather/kweather.h @@ -0,0 +1,90 @@ +/*************************************************************************** + kweather.h - description + ------------------- + begin : Wed Jul 5 23:09:02 CDT 2000 + copyright : (C) 2000 by Ian Reinhart Geiser + email : geiseri@msoe.edu + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 KWEATHER_H +#define KWEATHER_H + +#include +#include + +#include "weatherIface.h" + +class QTimer; +class dockwidget; +class reportView; +class KPopupMenu; +class WeatherService_stub; +class QPalette; + +class kweather : public KPanelApplet, public weatherIface +{ + Q_OBJECT + +public: + kweather(const QString& configFile, Type t = Normal, int actions = 0, QWidget *parent = 0, const char *name = 0); + ~kweather(); + void help(); + void resizeEvent(QResizeEvent*); + int heightForWidth(int i) const; + int widthForHeight(int i) const; + void refresh(QString); + void setBackground(); + void setLabelColor(); + +public slots: // Public slots + void preferences(); + void about(); + +protected: + void paletteChange(const QPalette &); + +protected slots: + void doReport(); + void timeout(); + void slotPrefsAccepted(); + void slotReportFinished(); + void slotUpdateNow(); + +private: // Private methods + void initContextMenu(); + void initDCOP(); + void loadPrefs(); + void savePrefs(); + void showWeather(); + void writeLogEntry(); + void mousePressEvent(QMouseEvent *e); + + bool attach(); + + QString reportLocation; + QString fileName; + QString metarData; + bool logOn; + bool mFirstRun; + int mViewMode; + QTimer *timeOut; + dockwidget *dockWidget; + reportView *mReport; + DCOPClient *mClient; + //DCOPRef *mWeatherService; + KPopupMenu *mContextMenu; + WeatherService_stub *mWeatherService; + KCMultiDialog *settingsDialog; + QColor mTextColor; +}; + +#endif diff --git a/kweather/kweather.kdevprj b/kweather/kweather.kdevprj new file mode 100644 index 0000000..75578e0 --- /dev/null +++ b/kweather/kweather.kdevprj @@ -0,0 +1,296 @@ +[./AUTHORS] +dist=true +install=false +install_location= +type=DATA +[./Makefile.am] +files=./AUTHORS,./dockwidget.cpp,./dockwidget.h,./kweather.cpp,./kweather.desktop,./kweather.h,./prefsDialog.cpp,./prefsDialog.h,./prefsDialogData.cpp,./prefsDialogData.h,./reportview.cpp,./reportview.h,./weatherIface.h,./weatherlib.cpp,./weatherlib.h,./kweather.kdevprj, +sub_dirs= +type=normal +[./dockwidget.cpp] +dist=true +install=false +install_location= +type=SOURCE +[./dockwidget.h] +dist=true +install=false +install_location= +type=HEADER +[./kweather.cpp] +dist=true +install=false +install_location= +type=SOURCE +[./kweather.desktop] +dist=true +install=false +install_location= +type=DATA +[./kweather.h] +dist=true +install=false +install_location= +type=HEADER +[./kweather.kdevprj] +dist=true +install=false +install_location= +type=DATA +[./prefsDialog.cpp] +dist=true +install=false +install_location= +type=SOURCE +[./prefsDialog.h] +dist=true +install=false +install_location= +type=HEADER +[./prefsDialogData.cpp] +dist=true +install=false +install_location= +type=SOURCE +[./prefsDialogData.h] +dist=true +install=false +install_location= +type=HEADER +[./reportview.cpp] +dist=true +install=false +install_location= +type=SOURCE +[./reportview.h] +dist=true +install=false +install_location= +type=HEADER +[./weatherIface.h] +dist=true +install=false +install_location= +type=HEADER +[./weatherlib.cpp] +dist=true +install=false +install_location= +type=SOURCE +[./weatherlib.h] +dist=true +install=false +install_location= +type=HEADER +[Config for BinMakefileAm] +addcxxflags= +bin_program=kweather +cxxflags= -O1 +ldadd= +ldflags= +libtool_dir= +path_to_bin_program=. +[General] +author=ian reinhart geiser +dir_where_make_will_be_called= +email=geiseri@yahoo.com +kdevprj_version=1.3 +lfv_open_groups= +make_options= -j1 +makefiles=./Makefile.am,graphics/Makefile.am, +modifyMakefiles=true +project_name=kweather +project_type=normal_empty +short_info=A kickerapplet that will display the current weather outside +sub_dir= +version=2.0 +version_control=CVS +workspace=1 +[LFV Groups] +Desktop=*.desktop, +GNU=AUTHORS,COPYING,ChangeLog,INSTALL,README,TODO,NEWS, +Headers=*.h,*.hxx,*.hpp,*.H, +Others=*, +Sources=*.cpp,*.c,*.cc,*.C,*.cxx,*.ec,*.ecpp,*.lxx,*.l++,*.ll,*.l, +Translations=*.ts,*.po, +User Interface=*.ui,*.kdevdlg,*.rc, +groups=Headers,Sources,GNU,Translations,User Interface,Desktop,Others +[graphics/Makefile.am] +files=graphics/cloudy1.png,graphics/cloudy2.png,graphics/cloudy3.png,graphics/cloudy4.png,graphics/cloudy5.png,graphics/dunno.png,graphics/fog.png,graphics/hail.png,graphics/light_rain.png,graphics/mcloudy.png,graphics/mist.png,graphics/overcast.png,graphics/part-cloud.png,graphics/pcloudy.png,graphics/rain.png,graphics/rainy.png,graphics/shower1.png,graphics/shower2.png,graphics/shower3.png,graphics/sleet.png,graphics/slop.png,graphics/snow.png,graphics/snow1.png,graphics/snow2.png,graphics/snow3.png,graphics/snow4.png,graphics/snow5.png,graphics/snowshowers.png,graphics/sunny.png,graphics/thunderstorm.png,graphics/tstorm.png,graphics/tstorm1.png,graphics/tstorm2.png,graphics/tstorm3.png,graphics/wind.png, +sub_dirs= +type=normal +[graphics/cloudy1.png] +dist=true +install=false +install_location= +type=DATA +[graphics/cloudy2.png] +dist=true +install=false +install_location= +type=DATA +[graphics/cloudy3.png] +dist=true +install=false +install_location= +type=DATA +[graphics/cloudy4.png] +dist=true +install=false +install_location= +type=DATA +[graphics/cloudy5.png] +dist=true +install=false +install_location= +type=DATA +[graphics/dunno.png] +dist=true +install=false +install_location= +type=DATA +[graphics/fog.png] +dist=true +install=false +install_location= +type=DATA +[graphics/hail.png] +dist=true +install=false +install_location= +type=DATA +[graphics/light_rain.png] +dist=true +install=false +install_location= +type=DATA +[graphics/mcloudy.png] +dist=true +install=false +install_location= +type=DATA +[graphics/mist.png] +dist=true +install=false +install_location= +type=DATA +[graphics/overcast.png] +dist=true +install=false +install_location= +type=DATA +[graphics/part-cloud.png] +dist=true +install=false +install_location= +type=DATA +[graphics/pcloudy.png] +dist=true +install=false +install_location= +type=DATA +[graphics/rain.png] +dist=true +install=false +install_location= +type=DATA +[graphics/rainy.png] +dist=true +install=false +install_location= +type=DATA +[graphics/shower1.png] +dist=true +install=false +install_location= +type=DATA +[graphics/shower2.png] +dist=true +install=false +install_location= +type=DATA +[graphics/shower3.png] +dist=true +install=false +install_location= +type=DATA +[graphics/sleet.png] +dist=true +install=false +install_location= +type=DATA +[graphics/slop.png] +dist=true +install=false +install_location= +type=DATA +[graphics/snow.png] +dist=true +install=false +install_location= +type=DATA +[graphics/snow1.png] +dist=true +install=false +install_location= +type=DATA +[graphics/snow2.png] +dist=true +install=false +install_location= +type=DATA +[graphics/snow3.png] +dist=true +install=false +install_location= +type=DATA +[graphics/snow4.png] +dist=true +install=false +install_location= +type=DATA +[graphics/snow5.png] +dist=true +install=false +install_location= +type=DATA +[graphics/snowshowers.png] +dist=true +install=false +install_location= +type=DATA +[graphics/sunny.png] +dist=true +install=false +install_location= +type=DATA +[graphics/thunderstorm.png] +dist=true +install=false +install_location= +type=DATA +[graphics/tstorm.png] +dist=true +install=false +install_location= +type=DATA +[graphics/tstorm1.png] +dist=true +install=false +install_location= +type=DATA +[graphics/tstorm2.png] +dist=true +install=false +install_location= +type=DATA +[graphics/tstorm3.png] +dist=true +install=false +install_location= +type=DATA +[graphics/wind.png] +dist=true +install=false +install_location= +type=DATA diff --git a/kweather/kweatherreport.desktop b/kweather/kweatherreport.desktop new file mode 100644 index 0000000..aeff765 --- /dev/null +++ b/kweather/kweatherreport.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Exec=kweatherreport +Icon=kweatherreport +MimeType= +Path= +Terminal=false +Type=Application +X-KDE-SubstituteUID=false +X-KDE-Username= diff --git a/kweather/kweatherservice.desktop b/kweather/kweatherservice.desktop new file mode 100644 index 0000000..97dcfef --- /dev/null +++ b/kweather/kweatherservice.desktop @@ -0,0 +1,88 @@ +[Desktop Entry] +Type=Service +Name=KWeatherService +Name[ar]=خدمة الأرصاد الجوية KWeatherService +Name[bn]=কে-ওয়েদার-সার্ভিস +Name[ca]=Servei KTemps +Name[cy]=KGwasanaethTywydd +Name[eo]=VeteroServo +Name[et]=KIlmajaam +Name[eu]=KweatherSerbitzua +Name[fi]=Sääpalvelu +Name[hi]=के-वेदर-सर्विस +Name[hr]=KMeteorološki izvještaj +Name[lv]=KWeather serviss +Name[mk]=КВременскиСервис +Name[ne]=केडीई मौसम सेवा +Name[pa]=ਕੇ-ਮੌਸਮ ਸੇਵਾ +Name[pl]=Serwis pogodowy +Name[pt_BR]=Serviço do Tempo +Name[ro]=Serviciu meteo +Name[ru]=Сервис определения погоды +Name[sl]=KVremenskiServis +Name[sv]=Kweather-tjänst +Name[ta]= K வானிலை சேவை +Name[tg]=KХизматиҲаво +Name[th]=รายงานอากาศ K +Name[uz]=Ob-havo xizmati +Name[uz@cyrillic]=Об-ҳаво хизмати +Name[wa]=Siervice meteyo +Name[xh]=Inkonzo ye KWeather +Name[zh_CN]=K 气象服务 +Name[zh_TW]=KDE 天氣服務 +Exec=kweatherservice +X-DCOP-ServiceType=Unique +X-DCOP-ServiceName=KWeatherService +X-KDE-StartupNotify=false +Comment= A DCOP service to provide weather data. +Comment[be]=DCOP-сервіс, які дае звесткі пра надвор'е +Comment[bg]=Услуга DCOP за метеорологични данни +Comment[bn]= আবহাওয়া তথ্য সরবরাহের জন্য একটি ডিকপ সার্ভিস। +Comment[ca]=Un servei DCOP per proveir dades del temps. +Comment[cs]=Služba DCOP poskytující údaje o počasí. +Comment[cy]=Gwasanaeth DCOP i ddarparu data tywydd. +Comment[da]= En DCOP-tjeneste som sørger for vejrdata. +Comment[de]=DCOP-Dienst für Wetterdaten +Comment[el]=Μια υπηρεσία DCOP που προσφέρει μετεωρολογικά δεδομένα. +Comment[eo]=DCOP-servo por montri la vetero-datumojn. +Comment[es]= Un servicio DCOP para proporcionar datos meteorológicos. +Comment[et]=DCOP teenus ilmaandmete esitamiseks. +Comment[eu]=Eguraldiari buruzko datuak eskeintzeko DCOP zerbitzua +Comment[fa]=یک خدمت DCOP برای فراهم کردن داده‌های آب و هوا +Comment[fi]=DCOP-palvelu säätietojen välittämiseen. +Comment[fr]=Un service DCOP pour fournir des données sur le temps. +Comment[ga]= Seirbhís DCOP chun faisnéis aimsire a chur ar fáil. +Comment[gl]=Un servizo DCOP para obter dados climáticos. +Comment[he]=שירות DCOP לסיפוק נתוני מזג אוויר +Comment[hr]=DCOP usluga s podacima o meteorološki uvjetima. +Comment[hu]=DCOP-szolgáltatás időjárási adatok lekérdezéséhez +Comment[is]=DCOP þjónusta sem veitir veðurupplýsingar. +Comment[it]=Servizio DCOP per fornire dati meteorologici +Comment[ja]=気象データを提供する DCOP サービス。 +Comment[km]= សេវា DCOP សម្រាប់​ផ្ដល់​ទិន្នន័យ​អាកាសធាតុ ។ +Comment[ko]=날씨 데이터를 제공하는 DCOP 서비스 +Comment[lv]=DCOP laikapstākļu piegādātājs. +Comment[mk]= DCOP-сервис за обезбедување на податоци за времето. +Comment[mt]= Servizz DCOP li jipprovdi informazzjoni dwar it-temp. +Comment[nb]=En DCOP-tjeneste som skaffer værdata. +Comment[nds]= DCOP-Deenst för Wederdaten +Comment[ne]=मौसम डेटा प्रदान गर्न DCOP सेवा +Comment[nl]=Een DCOP-service die weergegevens aanlevert. +Comment[nn]=Ei DCOP-teneste som kan levera vêrdata. +Comment[pl]=Usługa DCOP podająca dane o pogodzie. +Comment[pt]=Um serviço DCOP que fornece boletins meteorológicos. +Comment[pt_BR]=Um serviço DCOP para fornecer dados sobre o tempo. +Comment[ro]=Serviciu DCOP ce furnizează date despre starea vremii. +Comment[ru]=Сервис DCOP, предоставляющий данные о погоде. +Comment[sk]=Služba DCOP poskytujúca dáta o počasí. +Comment[sl]=Servis DCOP za zagotavljanje vremenskih podatkov. +Comment[sr]=DCOP сервис који пружа информације о времену. +Comment[sr@Latn]=DCOP servis koji pruža informacije o vremenu. +Comment[sv]=En DCOP-tjänst för att tillhandahålla värderrapporter. +Comment[ta]= வானிலை தகவலை வழங்க ஒரு டிகாப் சேவை. +Comment[tg]=Хизмати DCOP барои пуштибон кардани маълумоти ҳаво. +Comment[tr]=Meteoroloji bilgisi sağlamak için DCOP servisi. +Comment[uk]=Служба DCOP для надання даних про погоду. +Comment[wa]=On siervice DCOP po dner des dnêyes sol meteyo. +Comment[zh_CN]=提供气象数据的 DCOP 服务。 +Comment[zh_TW]=一個提供氣象資料的 DCOP 服務 diff --git a/kweather/main.cpp b/kweather/main.cpp new file mode 100644 index 0000000..d6e8caa --- /dev/null +++ b/kweather/main.cpp @@ -0,0 +1,35 @@ +#include +#include +#include +#include +#include +#include +#include "weatherservice.h" + +int main (int argc, char *argv[]) +{ + KLocale::setMainCatalogue("kdelibs"); + KAboutData aboutdata("KWeatherService", I18N_NOOP("KDE"), + "0.8", I18N_NOOP("KWeather DCOP Service"), + KAboutData::License_GPL, "(C) 2002, Ian Reinhart Geiser"); + aboutdata.addAuthor("Ian Reinhart Geiser",I18N_NOOP("Developer"),"geiseri@kde.org"); + aboutdata.addAuthor("Nadeem Hasan",I18N_NOOP("Developer"),"nhasan@kde.org"); + + KCmdLineArgs::init( argc, argv, &aboutdata ); + // KCmdLineArgs::addCmdLineOptions( options ); + KUniqueApplication::addCmdLineOptions(); + + if (!KUniqueApplication::start()) + { + kdDebug() << "dcopservice is already running!" << endl; + return (0); + } + + KUniqueApplication app; + // This app is started automatically, no need for session management + app.disableSessionManagement(); + kdDebug() << "starting dcopservice " << endl; + new WeatherService(&app, "WeatherService"); + return app.exec(); + +} diff --git a/kweather/metar_parser.cpp b/kweather/metar_parser.cpp new file mode 100644 index 0000000..771d4d7 --- /dev/null +++ b/kweather/metar_parser.cpp @@ -0,0 +1,871 @@ +/*************************************************************************** + metar_parser.cpp - Metar Parser + Based on code originally in weatherlib.cpp. + ------------------- +begin : Wed June 7 2004 +copyright : (C) 2004 by John Ratke + : (C) 2002-2004 Nadeem Hasan + : (C) 2002-2004 Ian Geiser +email : jratke@comcast.net +***************************************************************************/ + +/*************************************************************************** +* * +* 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 "config.h" + +#include +#include +#include + +#include "metar_parser.h" +#include "stationdatabase.h" +#include "sun.h" + +// Temperature conversion macros +#define TEMP_C_TO_F(x) ( ((x) * 9/5) + 32 ) +#define TEMP_F_TO_C(x) ( ((x) - 32) * 5/9 ) + +MetarParser::MetarParser(StationDatabase *stationDB, + KLocale::MeasureSystem units, + QDate date, + QTime time, + unsigned int localUTCOffset) : + m_stationDb(stationDB), m_units(units), m_date(date), m_time(time), m_localUTCOffset(localUTCOffset) +{ + CoverRegExp = QRegExp("^(FEW|SCT|BKN|OVC|SKC|CLR|CAVOK)([0-9]{3})?(?:TCU|CB)?$"); + CurrentRegExp = QRegExp("^(\\+|-|VC)?([A-Z]{2,4})$"); + WindRegExp = QRegExp("^([0-9]{3}|VRB)([0-9]{2,3})(?:G([0-9]{2,3}))?(KT|KMH|MPS)$"); + VisRegExp = QRegExp("^([0-9]{1,2})SM$"); + VisFracRegExp = QRegExp("^1/(2|4)SM$"); + TempRegExp = QRegExp("^(M)?([0-9]{2})/(?:(M)?([0-9]{2}))?$"); + TimeRegExp = QRegExp("^([0-9]{2}:[0-9]{2})$"); + DateRegExp = QRegExp("^([0-9]{4}/[0-9]{2}/[0-9]{2})$"); + PressRegExp = QRegExp("^([AQ])([0-9]{4})$"); + TempTenRegExp = QRegExp("^T([01][0-9]{3})([01][0-9]{3})$"); +} + +void MetarParser::reset() +{ + // Initialize the WeatherInfo structure + weatherInfo.theWeather = QString::null; + weatherInfo.clouds = 0; + weatherInfo.windMPH = 0; + weatherInfo.tempC = 0; + weatherInfo.dewC = 0; + weatherInfo.heavy = false; + weatherInfo.qsCoverList.clear(); + weatherInfo.qsCurrentList.clear(); + weatherInfo.qsDate = m_date; + weatherInfo.qsTime = m_time; + weatherInfo.qsPressure = QString::null; + weatherInfo.qsTemperature = QString::null; + weatherInfo.qsDewPoint = QString::null; + weatherInfo.qsRelHumidity = QString::null; + weatherInfo.qsVisibility = QString::null; + weatherInfo.qsWindSpeed = QString::null; + weatherInfo.qsWindChill = QString::null; + weatherInfo.qsHeatIndex = QString::null; + weatherInfo.qsWindDirection = QString::null; + weatherInfo.stationNeedsMaintenance = false; +} + +struct WeatherInfo MetarParser::processData(const QString &stationID, const QString &metar) +{ + reset(); + + weatherInfo.reportLocation = stationID; + + kdDebug(12006) << "Processing data: " << metar << endl; + + // Split at whitespace into tokens + QStringList dataList = QStringList::split(QRegExp("\\s+"), metar); + bool found = false; + bool beforeRemark = true; + + for (QStringList::ConstIterator it = dataList.begin(); + it != dataList.end(); ++it) + { + // Don't try to parse the ICAO location code + if ((!found) && (*it == weatherInfo.reportLocation.upper().stripWhiteSpace())) + { + found = true; + continue; + } + + kdDebug(12006) << "Processing Token: " << *it << endl; + + if (*it == "RMK") + { + beforeRemark = false; + continue; + } + + if (beforeRemark) + { + if (parseDate(*it)) + continue; + if (parseTime(*it)) + continue; + if (parseWindSpeed(*it)) + continue; + if (parseVisibility(it)) // Note, pass in iterator. + continue; + if (parseTemperature(*it)) + continue; + if (parsePressure(*it)) + continue; + if (parseCover(*it)) + continue; + if (parseCurrent(*it)) + continue; + } + else + { + if (parseTemperatureTenths(*it)) + continue; + if (parseStationNeedsMaintenance(*it)) + continue; + } + } + + calcTemperatureVariables(); + calcWindChill(); + calcCurrentIcon(); + + return weatherInfo; +} + +/** Parse the current cover type */ +bool MetarParser::parseCover(const QString &s) +{ + if (CoverRegExp.search(s) > -1) + { + kdDebug(12006) << "Cover: " << CoverRegExp.capturedTexts().join("-") + << endl; + + QString sCode = CoverRegExp.cap(1); + float height = CoverRegExp.cap(2).toFloat(); // initially in 100's of feet + QString sClouds; + QString skycondition; + + height *= 100; + if (m_units == KLocale::Metric) + { + height = height * 0.3048; + // using plural i18n form for proper translations + sClouds = i18n("1 meter", "%n meters", (int)height); + } + else + { + // using plural i18n form for proper translations + sClouds = i18n("1 foot", "%n feet", (int)height); + } + + if (sCode == "FEW") + { + skycondition = i18n( "Few clouds at %1" ).arg(sClouds); + weatherInfo.clouds += 2; + } + else if (sCode == "SCT") + { + skycondition = i18n( "Scattered clouds at %1" ).arg(sClouds); + weatherInfo.clouds += 4; + } + else if (sCode == "BKN") + { + skycondition = i18n( "Broken clouds at %1" ).arg(sClouds); + weatherInfo.clouds += 8; + } + else if (sCode == "OVC") + { + skycondition = i18n( "Overcast clouds at %1" ).arg(sClouds); + weatherInfo.clouds += 64; + } + else if ((sCode == "CLR") || (sCode == "SKC") || (sCode == "CAVOK")) + { + skycondition = i18n("Clear skies"); + weatherInfo.clouds = 0; + } + + kdDebug(12006) << "*** Clouds: " << weatherInfo.clouds << endl; + weatherInfo.qsCoverList << skycondition; + + return true; + } + return false; +} + +/** Parse the current weather conditions */ +bool MetarParser::parseCurrent(const QString &s) +{ + if (CurrentRegExp.search(s) > -1) + { + QString sIntensity = CurrentRegExp.cap(1); + QString sCode = CurrentRegExp.cap(2); + QString intensity, descriptor, phenomena, currentWeather; + + kdDebug(12006) << "Current: " << CurrentRegExp.capturedTexts().join("-") << endl; + + // Decode the intensity + if (sIntensity == "+") + { + intensity = i18n("Heavy"); + weatherInfo.heavy = true; + } + else if (sIntensity == "-") + { + intensity = i18n("Light"); + weatherInfo.heavy = false; + } + + // Decode the descriptor + if (sCode.contains("MI")) + descriptor = i18n("Shallow"); + else if (sCode.contains("PR")) + descriptor = i18n("Partial"); + else if (sCode.contains("BC")) + descriptor = i18n("Patches"); + else if (sCode.contains("DR")) + descriptor = i18n("Low Drifting"); + else if (sCode.contains("BL")) + descriptor = i18n("Blowing"); + else if (sCode.contains("SH")) + { + descriptor = i18n("Showers"); + weatherInfo.theWeather = "shower"; + } + else if (sCode.contains("TS")) + { + descriptor = i18n("Thunder Storm"); + weatherInfo.theWeather = "tstorm"; + } + else if (sCode.contains("FZ")) + { + descriptor = i18n("Freezing"); + } + + // Decode weather phenomena + if (sCode.contains("DZ")) + { + phenomena = i18n("Drizzle"); + weatherInfo.theWeather = "light_rain"; + } + else if (sCode.contains("RA")) + { + phenomena = i18n("Rain"); + weatherInfo.theWeather = "shower"; + } + else if (sCode.contains("SN")) + { + phenomena = i18n("Snow"); + weatherInfo.theWeather = "snow"; + } + else if (sCode.contains("SG")) + { + phenomena = i18n("Snow Grains"); + weatherInfo.theWeather = "snow4"; + } + else if (sCode.contains("IC")) + { + phenomena = i18n("Ice Crystals"); + weatherInfo.theWeather = "hail"; + } + else if (sCode.contains("PE")) + { + phenomena = i18n("Ice Pellets"); + weatherInfo.theWeather = "hail"; + } + else if (s.contains("GR")) + { + phenomena = i18n("Hail"); + weatherInfo.theWeather = "hail"; + } + else if (sCode.contains("GS")) + { + phenomena = i18n("Small Hail Pellets"); + weatherInfo.theWeather = "hail"; + } + else if (s.contains("UP")) + { + phenomena = i18n("Unknown Precipitation"); + weatherInfo.theWeather = iconName("shower1"); + } + else if (sCode.contains("BR")) + { + phenomena = i18n("Mist"); + // Mist has lower priority than say rain or snow + if ( weatherInfo.theWeather.isEmpty() ) + { + weatherInfo.theWeather = "mist"; + } + } + else if (sCode.contains("FG")) + { + phenomena = i18n("Fog"); + // Fog has lower priority than say rain or snow + if ( weatherInfo.theWeather.isEmpty() ) + { + weatherInfo.theWeather = "fog"; + } + } + else if (sCode.contains("FU")) + phenomena = i18n("Smoke"); + else if (sCode.contains("VA")) + phenomena = i18n("Volcanic Ash"); + else if (sCode.contains("DU")) + phenomena = i18n("Widespread Dust"); + else if (sCode.contains("SA")) + phenomena = i18n("Sand"); + else if (sCode.contains("HZ")) + phenomena = i18n("Haze"); + else if (sCode.contains("PY")) + phenomena = i18n("Spray"); + else if (sCode.contains("PO")) + phenomena = i18n("Dust/Sand Swirls"); + else if (sCode.contains("SQ")) + phenomena = i18n("Sudden Winds"); + else if (sCode.contains("FC")) + { + if (sIntensity == "+") + currentWeather = i18n("Tornado"); + else + phenomena = i18n("Funnel Cloud"); + } + else if (sCode.contains("SS")) + phenomena = i18n("Sand Storm"); + else if (sCode.contains("DS")) + phenomena = i18n("Dust Storm"); + + if (currentWeather.isEmpty()) currentWeather = i18n("%1 is the intensity, %2 is the descriptor and %3 is the phenomena", "%1 %2 %3").arg(intensity).arg(descriptor).arg(phenomena); + + if (!currentWeather.isEmpty()) + weatherInfo.qsCurrentList << currentWeather; + + return true; + } + return false; +} + +/** Parse out the current temperature */ +bool MetarParser::parseTemperature(const QString &s) +{ + if (TempRegExp.search(s) > -1) + { + kdDebug(12006) << "Temp: " << TempRegExp.capturedTexts().join("-") + << endl; + + float fTemp = TempRegExp.cap(2).toFloat(); + if (TempRegExp.cap(1) == "M" && fTemp != 0 ) + fTemp *= -1; + float fDew = TempRegExp.cap(4).toFloat(); + if (TempRegExp.cap(3) == "M" && fDew != 0 ) + fDew *= -1; + + weatherInfo.tempC = fTemp; + weatherInfo.dewC = fDew; + return true; + } + return false; +} + +bool MetarParser::parseTemperatureTenths(const QString &s) +{ + if (TempTenRegExp.search(s) > -1) + { + kdDebug(12006) << "Temp Tenths: " << TempTenRegExp.capturedTexts().join("-") + << endl; + + float temperature = TempTenRegExp.cap( 1 ).toFloat() / 10; + float dewPoint = TempTenRegExp.cap( 2 ).toFloat() / 10; + + if ( temperature >= 100 ) + { + temperature -= 100; + temperature *= -1; + } + if ( dewPoint >= 100 ) + { + dewPoint -= 100; + dewPoint *= -1; + } + + weatherInfo.tempC = temperature; + weatherInfo.dewC = dewPoint; + + return true; + } + return false; +} + +void MetarParser::calcTemperatureVariables() +{ +#define E(t) ::pow(10, 7.5*t/(237.7+t)) + float fRelHumidity = E(weatherInfo.dewC)/E(weatherInfo.tempC) * 100; + if (fRelHumidity > 100.0) fRelHumidity = 100.0; + + weatherInfo.qsRelHumidity.sprintf("%.1f", fRelHumidity); + removeTrailingDotZero(weatherInfo.qsRelHumidity); + weatherInfo.qsRelHumidity += "%"; + + float fHeatIndex = 0; + float tempF = TEMP_C_TO_F(weatherInfo.tempC); + if (tempF >= 80) + { +#define SQR(a) ((a)*(a)) + fHeatIndex = -42.379 + (2.04901523*tempF) + + (10.14333127*fRelHumidity) + - (0.22475541*tempF*fRelHumidity) + - (0.00683783*SQR(tempF)) + - (0.05481717*SQR(fRelHumidity)) + + (0.00122874*SQR(tempF)*fRelHumidity) + + (0.00085282*tempF*SQR(fRelHumidity)) + - (0.00000199*SQR(tempF)*SQR(fRelHumidity)); + + if ( fHeatIndex <= tempF ) + fHeatIndex = 0; + } + + QString unit; + if (m_units == KLocale::Metric) + { + unit = i18n("°C"); + weatherInfo.qsTemperature.sprintf("%.1f", weatherInfo.tempC); + weatherInfo.qsDewPoint.sprintf("%.1f", weatherInfo.dewC); + if (fHeatIndex >= 80) + weatherInfo.qsHeatIndex.sprintf("%.1f", TEMP_F_TO_C(fHeatIndex)); + } + else + { + unit = i18n("°F"); + weatherInfo.qsTemperature.sprintf("%.1f", tempF); + weatherInfo.qsDewPoint.sprintf("%.1f", TEMP_C_TO_F(weatherInfo.dewC)); + if (fHeatIndex >= 80) + weatherInfo.qsHeatIndex.sprintf("%.1f", (fHeatIndex)); + } + + removeTrailingDotZero(weatherInfo.qsTemperature); + removeTrailingDotZero(weatherInfo.qsDewPoint); + removeTrailingDotZero(weatherInfo.qsHeatIndex); + + weatherInfo.qsTemperature += unit; + weatherInfo.qsDewPoint += unit; + if (!weatherInfo.qsHeatIndex.isEmpty()) + weatherInfo.qsHeatIndex += unit; +} + +void MetarParser::removeTrailingDotZero(QString &string) +{ + if ( string.right( 2 ) == ".0" ) + { + string = string.left( string.length() - 2 ); + } +} + +/** Parse out the current date. */ +bool MetarParser::parseDate(const QString &s) +{ + if (DateRegExp.search(s) > -1) + { + kdDebug(12006) << "Date: " << DateRegExp.capturedTexts().join("-") + << endl; + QString dateString = DateRegExp.cap(1); + QString day, month, year; + + day = dateString.mid(8,2); + month = dateString.mid(5,2); + year = dateString.mid(0,4); + + QDate theDate(year.toInt(), month.toInt(), day.toInt()); + + + weatherInfo.qsDate = theDate; + return true; + } + return false; +} + +/** Parse out the current time. */ +bool MetarParser::parseTime(const QString &s) +{ + if (TimeRegExp.search(s) > -1) + { + kdDebug(12006) << "Time: " << TimeRegExp.capturedTexts().join("-") + << endl; + + QString hour, minute, dateString; + + dateString = TimeRegExp.cap(1); + hour = dateString.mid(0,2); + minute = dateString.mid(3,2); + QTime theTime(hour.toInt(), minute.toInt()); + + weatherInfo.qsTime = theTime; + return true; + } + return false; +} + +/** Parse out the current visibility */ +bool MetarParser::parseVisibility(QStringList::ConstIterator it) +{ + float fVisibility = 0; + + if (VisRegExp.search(*it) > -1) + { + fVisibility = VisRegExp.cap(1).toFloat(); + + kdDebug(12006) << "Visibility: " << VisRegExp.capturedTexts().join("-") + << endl; + + } + else if (VisFracRegExp.search(*it) > -1) + { + // got a fractional visibility, go back to previous string in the list + // and get the whole part. + fVisibility = (*(it--)).toFloat(); + // shouldn't be necessary? + //it++; + fVisibility += ( 1 / VisFracRegExp.cap(1).toFloat() ); + } + + if (fVisibility > 0) + { + if (m_units == KLocale::Metric) + { + fVisibility *= 1.6; + weatherInfo.qsVisibility.setNum(fVisibility); + weatherInfo.qsVisibility += i18n("km"); + } + else + { + weatherInfo.qsVisibility.setNum(fVisibility); + weatherInfo.qsVisibility += i18n("m"); + } + return true; + } + else + { + return false; + } +} + +/** Parse out the current pressure. */ +bool MetarParser::parsePressure( const QString &s) +{ + if (PressRegExp.search(s) > -1) + { + QString type = PressRegExp.cap(1); + float fPressure = PressRegExp.cap(2).toFloat(); + + kdDebug(12006) << "Pressure: " << PressRegExp.capturedTexts().join("-") + << endl; + + if (m_units == KLocale::Metric) + { + if (type == "A") + fPressure *= (33.8639/100); + weatherInfo.qsPressure.setNum(fPressure, 'f', 0); + weatherInfo.qsPressure += i18n(" hPa"); + } + else + { + if (type == "Q") + fPressure /= 33.8639; + else + fPressure /= 100; + weatherInfo.qsPressure.setNum(fPressure, 'f', 2); + weatherInfo.qsPressure += i18n("\" Hg"); + } + return true; + } + return false; +} + +struct wind_info +{ + unsigned int number; + QString name; +}; + +static const struct wind_info wind_direction[] = +{ + { 0, i18n("N") }, // North is 0 to 11, and so on + { 12, i18n("NNE") }, + { 33, i18n("NE") }, + { 57, i18n("ENE") }, + { 79, i18n("E") }, + { 102, i18n("ESE") }, + { 124, i18n("SE") }, + { 147, i18n("SSE") }, + { 169, i18n("S") }, + { 192, i18n("SSW") }, + { 214, i18n("SW") }, + { 237, i18n("WSW") }, + { 259, i18n("W") }, + { 282, i18n("WNW") }, + { 304, i18n("NW") }, + { 327, i18n("NNW") }, + { 349, i18n("N") }, + { 360, i18n("N") } +}; + + +QString MetarParser::parseWindDirection(const unsigned int direction) +{ + unsigned int i = 0; + + for (i = 0; i < (sizeof(wind_direction) / sizeof(wind_info)) - 1; i++) + { + if (direction >= wind_direction[i].number && + direction < wind_direction[i + 1].number) + { + break; + } + } + + return wind_direction[i].name; +} + +/** Parse the wind speed */ +bool MetarParser::parseWindSpeed(const QString &s) +{ + if (WindRegExp.search(s) > -1) + { + unsigned int direction = WindRegExp.cap(1).toInt(); + float windSpeed = WindRegExp.cap(2).toFloat(); + float gustSpeed = WindRegExp.cap(3).toFloat(); + QString sWindUnit = WindRegExp.cap(4); + + kdDebug(12006) << "Wind: " << WindRegExp.capturedTexts().join("-") + << endl; + + if (m_units == KLocale::Metric) + { + if (sWindUnit == "KT") + { + windSpeed = (windSpeed * 3.6 / 1.94); + gustSpeed = (gustSpeed * 3.6 / 1.94); + } + else if (sWindUnit == "MPS") + { + windSpeed = (windSpeed * 3.6); + gustSpeed = (gustSpeed * 3.6); + } + weatherInfo.windMPH = (windSpeed / 1.61); + weatherInfo.qsWindSpeed = i18n("1 km/h", "%n km/h", (int) windSpeed); + } + else + { + if (sWindUnit == "KT") + { + windSpeed = (windSpeed * 2.24 / 1.94); + gustSpeed = (gustSpeed * 2.24 / 1.94); + } + else if (sWindUnit == "KMH") + { + windSpeed = (windSpeed / 1.61); + gustSpeed = (gustSpeed / 1.61); + } + else if (sWindUnit == "MPS") + { + windSpeed = (windSpeed * 2.24); + gustSpeed = (gustSpeed * 2.24); + } + weatherInfo.windMPH = windSpeed; + weatherInfo.qsWindSpeed = i18n("1 MPH", "%n MPH", (int) windSpeed); + } + + if (gustSpeed >= 1) + { + if (m_units == KLocale::Metric) + { + weatherInfo.qsCurrentList << i18n("Wind gusts up to 1 km/h", + "Wind gusts up to %n km/h", (int) gustSpeed); + } + else + { + weatherInfo.qsCurrentList << i18n("Wind gusts up to 1 MPH", + "Wind gusts up to %n MPH", (int) gustSpeed); + } + } + + if ((WindRegExp.cap(1) != "VRB") && (windSpeed >= 1)) + { + weatherInfo.qsWindDirection = parseWindDirection(direction); + } + return true; + } + return false; +} + +bool MetarParser::parseStationNeedsMaintenance(const QString &s) +{ + if (s == "$") + { + weatherInfo.stationNeedsMaintenance = true; + kdDebug(12006) << "Station Needs Maintenance" << endl; + return true; + } + + return false; +} + +void MetarParser::calcCurrentIcon() +{ + // Default to overcast clouds + if ( weatherInfo.clouds == -1 ) + weatherInfo.clouds = 64; + + if (weatherInfo.theWeather.isEmpty()) + { + if (weatherInfo.clouds == 0) + weatherInfo.theWeather = iconName("sunny"); + else if (weatherInfo.clouds > 0 && weatherInfo.clouds <= 2) + weatherInfo.theWeather = iconName("cloudy1"); + else if ( weatherInfo.clouds > 2 && weatherInfo.clouds <= 4) + weatherInfo.theWeather = iconName("cloudy2"); + else if ( weatherInfo.clouds > 4 && weatherInfo.clouds <= 8) + weatherInfo.theWeather = iconName("cloudy3"); + else if ( weatherInfo.clouds > 8 && weatherInfo.clouds < 63) + weatherInfo.theWeather = iconName( "cloudy4" ); + else + weatherInfo.theWeather = "cloudy5"; + } + else if (weatherInfo.theWeather == "tstorm") + { + if ( weatherInfo.heavy ) + weatherInfo.clouds = 30; + + if (weatherInfo.clouds >= 0 && weatherInfo.clouds <= 10) + weatherInfo.theWeather = iconName("tstorm1"); + else if ( weatherInfo.clouds > 10 && weatherInfo.clouds <= 20) + weatherInfo.theWeather = iconName("tstorm2"); + else + weatherInfo.theWeather = "tstorm3"; + } + else if (weatherInfo.theWeather == "shower") + { + if ( weatherInfo.heavy ) + weatherInfo.clouds = 30; + + if (weatherInfo.clouds >= 0 && weatherInfo.clouds <= 10) + weatherInfo.theWeather = iconName("shower1"); + else if ( weatherInfo.clouds > 10 && weatherInfo.clouds <= 20) + weatherInfo.theWeather = iconName("shower2"); + else + weatherInfo.theWeather = "shower3"; + } + else if (weatherInfo.theWeather == "snow") + { + if ( weatherInfo.heavy ) + weatherInfo.clouds = 30; + + if (weatherInfo.clouds >= 0 && weatherInfo.clouds <= 8) + weatherInfo.theWeather = iconName("snow1"); + else if ( weatherInfo.clouds > 8 && weatherInfo.clouds <= 16) + weatherInfo.theWeather = iconName("snow2"); + else if (weatherInfo.clouds > 16 && weatherInfo.clouds <= 24) + weatherInfo.theWeather = iconName("snow3"); + else + weatherInfo.theWeather = "snow5"; + } + else if (isNight(weatherInfo.reportLocation) && weatherInfo.theWeather == "mist") + weatherInfo.theWeather = "mist_night"; + else if (isNight(weatherInfo.reportLocation) && weatherInfo.theWeather == "fog") + weatherInfo.theWeather = "fog_night"; + else if ( weatherInfo.theWeather == "mist" || weatherInfo.theWeather == "fog" ) + { + if ( weatherInfo.clouds >= 63 ) + weatherInfo.theWeather = "cloudy5"; + } + + kdDebug(12006) << "Clouds: " << weatherInfo.clouds << ", Icon: " + << weatherInfo.theWeather << endl; +} + +void MetarParser::calcWindChill() +{ + float windChill = 35.74 + (0.6215 * TEMP_C_TO_F(weatherInfo.tempC)) + - (35.75 * ::pow(weatherInfo.windMPH, 0.16)) + + (0.4275 * TEMP_C_TO_F(weatherInfo.tempC) * ::pow(weatherInfo.windMPH, 0.16)); + + kdDebug(12006) << "Wind Chill: " << windChill << endl; + + if (windChill < 48) + { + if (m_units == KLocale::Metric) + { + weatherInfo.qsWindChill.setNum(TEMP_F_TO_C(windChill), 'f', 1); + removeTrailingDotZero(weatherInfo.qsWindChill); + weatherInfo.qsWindChill += i18n("°C"); + } + else + { + weatherInfo.qsWindChill.setNum(windChill, 'f', 1); + removeTrailingDotZero(weatherInfo.qsWindChill); + weatherInfo.qsWindChill += i18n("°F"); + } + } +} + +bool MetarParser::isNight(const QString &stationID) const +{ + QString upperStationID = stationID.upper(); + QString latitude = m_stationDb->stationLatitudeFromID(upperStationID); + QString longitude = m_stationDb->stationLongitudeFromID(upperStationID); + + if ( latitude.compare( i18n("Unknown Station" ) ) == 0 || + longitude.compare( i18n("Unknown Station" ) ) == 0 ) + { + return false; + } + else + { + Sun theSun( latitude, longitude , m_date, m_localUTCOffset ); + + QTime currently = m_time; + + QTime civilStart = theSun.computeCivilTwilightStart(); + QTime civilEnd = theSun.computeCivilTwilightEnd(); + + kdDebug (12006) << "station, current, lat, lon, start, end, offset: " << + upperStationID << " " << currently << " " << latitude << " " << + longitude << " " << civilStart << " " << civilEnd << " " << + m_localUTCOffset << endl; + + if (civilStart != civilEnd) + { + if (civilEnd < civilStart) + /* Handle daylight past midnight in local time */ + /* for weather stations located at other timezones */ + return (currently < civilStart && currently > civilEnd); + else + return (currently < civilStart || currently > civilEnd); + } + else + { + // Midnight Sun & Polar Night - In summer, the Sun is always + // over the horizon line ... so use latitude & today date to + // set isNight() value. + return ((m_date.daysInYear() >= 80 || m_date.daysInYear() <= 264) && latitude.contains("S")); + } + } +} + +QString MetarParser::iconName( const QString &icon ) const +{ + QString _iconName = icon; + + if ( isNight( weatherInfo.reportLocation ) ) + _iconName += "_night"; + + return _iconName; +} + diff --git a/kweather/metar_parser.h b/kweather/metar_parser.h new file mode 100644 index 0000000..946c34d --- /dev/null +++ b/kweather/metar_parser.h @@ -0,0 +1,123 @@ +/*************************************************************************** + metar_parser.h - Metar Parser + ------------------- +begin : Wed June 7 2004 +copyright : (C) 2004 by John Ratke +email : jratke@comcast.net +***************************************************************************/ + +/*************************************************************************** +* * +* 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 METAR_PARSER_H +#define METAR_PARSER_H + +#include +#include +#include + +#include +#include +#include + +class StationDatabase; + +struct WeatherInfo +{ + /** The current weather state outside */ + QString theWeather; + int clouds; + float windMPH; + float tempC; + float dewC; + bool heavy; + QStringList qsCoverList; + QStringList qsCurrentList; + QDate qsDate; + QString qsPressure; + QString qsTemperature; + QString qsDewPoint; + QString qsRelHumidity; + QTime qsTime; + QString qsVisibility; + QString qsWindSpeed; + QString qsWindChill; + QString qsHeatIndex; + QString qsWindDirection; + QString reportLocation; + bool stationNeedsMaintenance; +}; + + +class MetarParser +{ + public: + MetarParser(StationDatabase *stationDB, + KLocale::MeasureSystem units = KLocale::Imperial, + QDate date = QDate::currentDate(), + QTime time = QTime::currentTime(), + unsigned int localUTCOffset = KRFCDate::localUTCOffset()); + + /* + * Process a METAR string (the second parameter) and return a WeatherInfo struct + * + * The first parameter is the station ICAO code, which is needed to match + * the code present in the METAR string in order to parse the rest of the + * data correctly. But the station code is also used to lookup the station + * latitude and longitude to calculate the sunrise and sunset time to see if + * the day or night icon should be used. + */ + struct WeatherInfo processData(const QString &stationID, const QString &metar); + + private: + bool parseCover(const QString &s); + bool parseCurrent(const QString &s); + bool parseTemperature(const QString &s); + bool parseTemperatureTenths(const QString &s); + void calcTemperatureVariables(); + void removeTrailingDotZero(QString &string); + bool parseDate(const QString &s); + bool parseTime(const QString &s); + bool parseVisibility(QStringList::ConstIterator it); + bool parsePressure( const QString &s ); + QString parseWindDirection(const unsigned int direction); + bool parseWindSpeed(const QString &s); + bool parseStationNeedsMaintenance(const QString &s); + void calcCurrentIcon(); + void calcWindChill(); + bool isNight(const QString &stationID) const; + QString iconName( const QString &icon ) const; + + /* + * Reset the internal WeatherInfo struct of the class so that + * processing can be run again. (processData can be run again) + */ + void reset(); + + StationDatabase* const m_stationDb; + const KLocale::MeasureSystem m_units; + const QDate m_date; + const QTime m_time; + const unsigned int m_localUTCOffset; + + struct WeatherInfo weatherInfo; + + QRegExp CoverRegExp; + QRegExp CurrentRegExp; + QRegExp WindRegExp; + QRegExp VisRegExp; + QRegExp VisFracRegExp; + QRegExp TempRegExp; + QRegExp TimeRegExp; + QRegExp DateRegExp; + QRegExp PressRegExp; + QRegExp TempTenRegExp; +}; + +#endif diff --git a/kweather/metar_parser_test.cpp b/kweather/metar_parser_test.cpp new file mode 100644 index 0000000..8b79695 --- /dev/null +++ b/kweather/metar_parser_test.cpp @@ -0,0 +1,218 @@ +/**************************************************************************** + * metar_parser_test.cpp - MetarParser Test Program + * + * Run all of the unit tests with "make check". Run just this + * test with "make metar_parser_test; ./metar_parser_test" + * ------------------- + * begin : Wednesday June 16 2004 + * copyright : (C) 2004 by John Ratke + * email : jratke@comcast.net + ****************************************************************************/ + +/**************************************************************************** + * * + * 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 +using namespace std; + +#include +#include +#include + +#include + +#include "stationdatabase.h" +#include "metar_parser.h" + +void test1(); +void test2(); + +void displayWeatherInfo(const struct WeatherInfo &wi); +const char *getString(const QString &str); + +int localUTCOffset = -300; + +StationDatabase *stationDb; + +bool anyFailed = false; + +int main() +{ + bool found = false; + + // try the stations.dat file in the current directory first. + QString path("stations.dat"); + + if (QFile::exists(path)) + { + found = true; + } + else + { + // If we couldn't find it, then maybe the build directory is not the + // same as the source directory. If that is the case, try to read it + // from its location in the share/apps/kweatherservice directory, which + // means that make install would have had to be done first before calling + // make check so that the file will be there. + + QString kdeDirs(getenv("KDEDIR")); + + path = kdeDirs + "/share/apps/kweatherservice/stations.dat"; + if (QFile::exists(path)) + { + found = true; + } + } + + if (found) + { + cout << "found stations.dat at " << path.latin1() << endl; + } + else + { + cout << "couldn't find stations.dat!! try \"make install\" before \"make check\"" << endl; + return 1; + } + + stationDb = new StationDatabase(path); + + test1(); + test2(); + + delete stationDb; + + // If success, return 0, else return 1 + if (anyFailed) + { + return 1; + } + else + { + return 0; + } +} + +void test1() +{ + QDate Date(2004, 6, 17); // June 17th. + QTime Time(21, 7); // hours, minutes, seconds and ms defaults to 0 + + // Construct a MetarParser object for our tests. + MetarParser parser( stationDb, KLocale::Imperial, Date, Time, localUTCOffset ); + + struct WeatherInfo results = parser.processData("KUGN", "2004/06/18 00:55 KUGN 180055Z AUTO 04004KT 9SM SCT050 17/15 A3005 RMK AO2 SLP167 T01670150 TSNO"); + + if (results.theWeather == "cloudy2_night" && + results.qsCoverList[0] == "Scattered clouds at 5000 feet" && + results.qsVisibility == "9m" && + results.qsPressure == "30.05\" Hg" && + results.qsTemperature == "62.1F" && + results.qsDewPoint == "59F" && + results.qsRelHumidity == "89.7%" && + results.qsWindSpeed == "4 MPH" && + results.qsWindChill.isNull() && + results.qsHeatIndex.isNull() && + results.qsWindDirection == "NE" && + results.reportLocation == "KUGN" && + results.stationNeedsMaintenance == false) + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + displayWeatherInfo(results); + anyFailed = true; + } +} + +void test2() +{ + QDate Date(2004, 6, 18); // June 18th. + QTime Time(18, 43); // hours, minutes, seconds and ms defaults to 0 + + // Construct a MetarParser object for our tests. + MetarParser parser( stationDb, KLocale::Imperial, Date, Time, localUTCOffset ); + + struct WeatherInfo results = parser.processData("KUGN", "2004/06/18 22:55 KUGN 182255Z 29005KT 10SM BKN110 21/13 A3010 RMK AO2 SLP187 T02110133"); + + if (results.theWeather == "cloudy3" && + results.qsCoverList[0] == "Broken clouds at 11000 feet" && + results.qsVisibility == "10m" && + results.qsPressure == "30.10\" Hg" && + results.qsTemperature == "70F" && + results.qsDewPoint == "55.9F" && + results.qsRelHumidity == "61.1%" && + results.qsWindSpeed == "5 MPH" && + results.qsWindChill.isNull() && + results.qsHeatIndex.isNull() && + results.qsWindDirection == "WNW" && + results.reportLocation == "KUGN" && + results.stationNeedsMaintenance == false) + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + displayWeatherInfo(results); + anyFailed = true; + } +} + +void displayWeatherInfo(const struct WeatherInfo &wi) +{ + cout << "theWeather: " << getString(wi.theWeather) << endl; + cout << "clouds: " << wi.clouds << endl; + cout << "windMPH: " << wi.windMPH << endl; + cout << "tempC: " << wi.tempC << endl; + cout << "dewC: " << wi.dewC << endl; + cout << "heavy: " << wi.heavy << endl; + + unsigned int i = 0; + for ( QStringList::ConstIterator it = wi.qsCoverList.begin(); + it != wi.qsCoverList.end(); + ++it, i++ ) { + cout << "qsCoverList[" << i << "]: " << (*it).latin1() << endl; + } + i = 0; + for ( QStringList::ConstIterator it = wi.qsCurrentList.begin(); + it != wi.qsCurrentList.end(); + ++it, i++ ) { + cout << "qsCurrentList[" << i << "]: " << (*it).latin1() << endl; + } + + cout << "qsDate: " << wi.qsDate.toString().latin1() << endl; + cout << "qsPressure: " << getString(wi.qsPressure) << endl; + cout << "qsTemperature: " << getString(wi.qsTemperature) << endl; + cout << "qsDewPoint: " << getString(wi.qsDewPoint) << endl; + cout << "qsRelHumidity: " << getString(wi.qsRelHumidity) << endl; + cout << "qsTime: " << wi.qsTime.toString().latin1() << endl; + cout << "qsVisibility: " << getString(wi.qsVisibility) << endl; + cout << "qsWindSpeed: " << getString(wi.qsWindSpeed) << endl; + cout << "qsWindChill: " << getString(wi.qsWindChill) << endl; + cout << "qsHeatIndex: " << getString(wi.qsHeatIndex) << endl; + cout << "qsWindDirection: " << getString(wi.qsWindDirection) << endl; + cout << "reportLocation: " << getString(wi.reportLocation) << endl; + cout << "stationNeedsMaintenance: " << wi.stationNeedsMaintenance << endl; +} + +static const char *nullString = "[null]"; + +const char *getString(const QString &str) +{ + if (str.isNull()) + { + return nullString; + } + else + { + return str.latin1(); + } +} diff --git a/kweather/prefdialogdata.ui b/kweather/prefdialogdata.ui new file mode 100644 index 0000000..e3d0f2e --- /dev/null +++ b/kweather/prefdialogdata.ui @@ -0,0 +1,360 @@ + +prefsDialogData +ian reinhart geiser <geiseri@kde.org> + + + prefsDialogData + + + + 0 + 0 + 429 + 341 + + + + + 3 + 3 + 0 + 0 + + + + + 0 + 0 + + + + TabFocus + + + + unnamed + + + 0 + + + + GroupBox2 + + + + 1 + 1 + 0 + 0 + + + + GroupBoxPanel + + + Sunken + + + Weather Station Options + + + + unnamed + + + + TextLabel1_4_2_2 + + + &Location: + + + m_reportLocation + + + + + m_reportLocation + + + + 3 + 0 + 0 + 0 + + + + + 0 + 0 + + + + + + spacer2 + + + Horizontal + + + MinimumExpanding + + + + 40 + 20 + + + + + + + + m_viewMode + + + + 1 + 1 + 0 + 0 + + + + 0 + + + Panel Display Options + + + AlignVCenter|AlignLeft + + + true + + + + unnamed + + + + m_smallView + + + + 1 + 0 + 0 + 0 + + + + &Show icon only + + + 1 + + + <qt>Click here to show only the weather icon.</qt> + + + This feature will allow you to make KWeather take up only one slot on the kicker. Normally this application will take up two slots. The small view will only show the weather icon, while the normal view will display both the icon and the current weather statistics. For the small view the weather statistics will be put on the buttons tool tip. + + + + + CheckBox9 + + + Show &icon and temperature + + + 2 + + + + + CheckBox10 + + + Show icon, temperature, &wind and pressure information + + + true + + + 3 + + + + + + + GroupBox1 + + + + 1 + 1 + 0 + 0 + + + + Logging Options + + + + unnamed + + + + m_enableLog + + + E&nable logging + + + + + Spacer6_2 + + + Horizontal + + + Expanding + + + + 294 + 16 + + + + + + m_labelLogFile + + + false + + + Log &file: + + + m_logFile + + + + + m_logFile + + + false + + + + 252 + 0 + + + + Enter the logfile name. + + + Enter the full path and filename to enable logging in KWeather. + + + + + + + groupBox3 + + + Text + + + + unnamed + + + + layout1 + + + + unnamed + + + + textLabel1 + + + Color: + + + + + m_textColor + + + + + + + + + + spacer3 + + + Horizontal + + + Expanding + + + + 170 + 20 + + + + + + + + + + + + m_enableLog + toggled(bool) + m_labelLogFile + setEnabled(bool) + + + m_enableLog + toggled(bool) + m_logFile + setEnabled(bool) + + + + kdialog.h + + + + + kcombobox.h + kurlrequester.h + klineedit.h + kpushbutton.h + kcolorbutton.h + + diff --git a/kweather/reportmain.cpp b/kweather/reportmain.cpp new file mode 100644 index 0000000..198263a --- /dev/null +++ b/kweather/reportmain.cpp @@ -0,0 +1,63 @@ +#include "reportview.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +static KCmdLineOptions options[] = +{ + { "+location", I18N_NOOP( "METAR location code for the report" ), 0 }, + KCmdLineLastOption +}; + +extern "C" KDE_EXPORT int kdemain(int argc, char *argv[]) +{ + KAboutData aboutData("reportview", I18N_NOOP("Weather Report"), + "0.8", I18N_NOOP("Weather Report for KWeatherService"), + KAboutData::License_GPL, "(C) 2002-2003, Ian Reinhart Geiser"); + aboutData.addAuthor("Ian Reinhart Geiser", I18N_NOOP("Developer"), + "geiseri@kde.org"); + aboutData.addAuthor("Nadeem Hasan", I18N_NOOP("Developer"), + "nhasan@kde.org"); + + KGlobal::locale()->setMainCatalogue( "kweather" ); + + KCmdLineArgs::init( argc, argv, &aboutData ); + KCmdLineArgs::addCmdLineOptions( options ); + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + + if ( args->count() != 1 ) + { + args->usage(); + return -1; + } + + KApplication app; + + DCOPClient *client = app.dcopClient(); + client->attach(); + QString error; + if (!client->isApplicationRegistered("KWeatherService")) + { + if (KApplication::startServiceByDesktopName("kweatherservice", + QStringList(), &error)) + { + kdDebug() << "Starting kweatherservice failed: " << error << endl; + return -2; + } + } + + QString reportLocation = args->arg( 0 ); + reportView *report = new reportView(reportLocation); + args->clear(); + report->exec(); + + delete report; + + return 0; +} diff --git a/kweather/reportview.cpp b/kweather/reportview.cpp new file mode 100644 index 0000000..af37d9b --- /dev/null +++ b/kweather/reportview.cpp @@ -0,0 +1,185 @@ +/*************************************************************************** + reportview.cpp - description + ------------------- + begin : Sun Oct 15 2000 + copyright : (C) 2000 by Ian Reinhart Geiser + : ( C ) 2002-2004 Nadeem Hasan + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "reportview.h" +#include "weatherservice_stub.h" + +reportView::reportView(const QString &reportLocation) + : KDialogBase( (QWidget *)0, "report", false, QString::null, Close ), + m_locationCode(reportLocation) +{ + QVBox *vbox = makeVBoxMainWidget(); + m_reportView = new KHTMLPart(vbox, "m_reportView"); + + KConfig config( "weather_panelappletrc" ); + config.setGroup( "General Options" ); + QSize defaultSize( 450, 325 ); + resize( config.readSizeEntry( "reportview_size", &defaultSize ) ); + + centerOnScreen( this ); + + m_weatherService = new WeatherService_stub( "KWeatherService", "WeatherService" ); + + QPixmap icon = m_weatherService->icon( m_locationCode ); + setIcon( icon ); + + render(); +} + +reportView::~reportView(){ + delete m_weatherService; + // we do not have to delete m_reportView because this class is + // the parent of the QVBox, and that is the parent of the KHTMLPart. + + KConfig config( "weather_panelappletrc" ); + config.setGroup( "General Options" ); + config.writeEntry( "reportview_size", size() ); +} + +/** Render the document */ +void reportView::render(){ + QFont generalFont = KGlobalSettings::generalFont(); + QString fntFamily = generalFont.family(); + int fntSize = generalFont.pointSize(); + if (fntSize == -1) + fntSize = QFontInfo(generalFont).pointSize(); + + QString textColor = KGlobalSettings::textColor().name(); + QString baseColor = KGlobalSettings::baseColor().name(); + QColorGroup cg = palette().active(); + QString bgColor = cg.background().name(); + QString hlColor = cg.highlight().name(); + QString hlTextColor = cg.highlightedText().name(); + + QString locationName = m_weatherService->stationName(m_locationCode); + QString countryName = m_weatherService->stationCountry(m_locationCode); + QString temp = m_weatherService->temperature(m_locationCode); + QString dewPoint = m_weatherService->dewPoint( m_locationCode); + QString relHumidity = m_weatherService->relativeHumidity(m_locationCode ); + QString heatIndex = m_weatherService->heatIndex(m_locationCode ); + QString windChill = m_weatherService->windChill(m_locationCode ); + QString pressure = m_weatherService->pressure(m_locationCode ); + QString wind = m_weatherService->wind(m_locationCode ); + QString sunRiseTime = m_weatherService->sunRiseTime(m_locationCode ); + QString sunSetTime = m_weatherService->sunSetTime(m_locationCode ); + QString date = m_weatherService->date(m_locationCode ); + QString icon = m_weatherService->iconFileName(m_locationCode ); + QStringList cover = m_weatherService->cover(m_locationCode ); + QStringList weather = m_weatherService->weather(m_locationCode ); + + setCaption(i18n("Weather Report - %1").arg( locationName ) ); + + QString weatherText = "
    \n"; + + if ( m_weatherService->stationNeedsMaintenance( m_locationCode ) ) + { + weatherText += "
  • " + i18n( "Station reports that it needs maintenance" ) + " \n"; + } + for (QStringList::const_iterator it = cover.begin(); + it != cover.end(); ++it) + weatherText += "
  • " + *it + "\n"; + + for (QStringList::const_iterator it = weather.begin(); + it != weather.end(); ++it) + weatherText += "
  • " + *it + "\n"; + + weatherText += "
\n"; + + QString contents = + "").arg( QApplication::reverseLayout()?"rtl":"ltr") + + "
" + i18n( "Weather Report - %1 - %2" ).arg( locationName ).arg( countryName ) + + "
\n"; + + if ( ! date.isEmpty() ) + contents += "
" + i18n( "Latest data from %1" ).arg(date) + "
\n"; + + contents += QString( + "" + "") + .arg(bgColor).arg(KURL(icon).url()).arg(weatherText) + + "
" + "%3
" + + QString("" + "" + "" + "" + "" + "" + "") + .arg(temp).arg(dewPoint).arg(pressure).arg(relHumidity) + .arg(wind) + ""; + + if (!heatIndex.isEmpty()) + contents += QString("").arg(heatIndex); + else if (!windChill.isEmpty()) + contents += QString("").arg(windChill); + else + contents += ""; + contents += ""; + + contents += QString("" + + "") + .arg(sunRiseTime).arg(sunSetTime); + + contents += "
" + i18n( "Temperature:" ) + + "%1 " + i18n( "Dew Point:" ) + + "%2
" + i18n( "Air Pressure:" ) + + "%3 " + i18n( "Rel. Humidity:" ) + + "%4
" + i18n( "Wind Speed:" ) + + "%5 " + + i18n( "Heat Index:" ) + "%1" + + i18n( "Wind Chill:" ) + "%1  
" + + i18n( "Sunrise:" ) + "%1 " + + i18n( "Sunset:" ) + "%2
"; + + m_reportView->begin(); + m_reportView->write( contents ); + m_reportView->end(); + + QScrollView *view = m_reportView->view(); + kdDebug() << "Size " << view->size().height() << "," << view->size().width() << endl; + kdDebug() << "Size " << view->visibleHeight() << "," << view->visibleWidth() << endl; + + m_reportView->view()->resize(view->size().width(), view->size().height()); + +} + +#include "reportview.moc" + +/* vim: et sw=4 ts=4 +*/ + diff --git a/kweather/reportview.h b/kweather/reportview.h new file mode 100644 index 0000000..569a071 --- /dev/null +++ b/kweather/reportview.h @@ -0,0 +1,47 @@ +/*************************************************************************** + reportview.h - description + ------------------- + begin : Sun Oct 15 2000 + copyright : (C) 2000 by Ian Reinhart Geiser + email : geiseri@msoe.edu + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 REPORTVIEW_H +#define REPORTVIEW_H + +#include +#include + + +class KHTMLPart; +class WeatherService_stub; + +/**This is the main report generated for the user. + *@author Ian Reinhart Geiser + */ + +class reportView : public KDialogBase { + Q_OBJECT + +public: + reportView(const QString &reportLocation); + ~reportView(); + + void render(); + +private: + WeatherService_stub *m_weatherService; + KHTMLPart *m_reportView; + QString m_locationCode; +}; + +#endif diff --git a/kweather/serviceconfigdata.ui b/kweather/serviceconfigdata.ui new file mode 100644 index 0000000..5ebdcde --- /dev/null +++ b/kweather/serviceconfigdata.ui @@ -0,0 +1,258 @@ + +wsPrefs +Ian Reinhart Geiser <geiseri@kde.org> + + + wsPrefs + + + + 0 + 0 + 374 + 315 + + + + + unnamed + + + 0 + + + + mAddButton + + + A&dd + + + + + textLabel2 + + + Se&lected stations: + + + mSelectedStations + + + + + textLabel1 + + + A&vailable stations: + + + mAllStations + + + + + spacer1 + + + Vertical + + + Expanding + + + + 20 + 86 + + + + + + + Selected + + + false + + + false + + + + mSelectedStations + + + + 5 + 7 + 1 + 0 + + + + LastColumn + + + false + + + false + + + false + + + + + mRemoveButton + + + &Remove + + + + + spacer2 + + + Vertical + + + Expanding + + + + 20 + 85 + + + + + + + All + + + false + + + false + + + + mAllStations + + + + 5 + 7 + 1 + 0 + + + + true + + + LastColumn + + + false + + + false + + + false + + + + + layout1 + + + + unnamed + + + + mExit + + + &Stop Weather Service + + + + + mUpdate + + + &Update All + + + + + + + + + + + mAddButton + clicked() + wsPrefs + addStation() + + + mRemoveButton + clicked() + wsPrefs + removeStation() + + + mUpdate + clicked() + wsPrefs + updateStations() + + + mExit + clicked() + wsPrefs + exitWeatherService() + + + mSelectedStations + selectionChanged(QListViewItem*) + wsPrefs + selectionChanged(QListViewItem*) + + + + mAllStations + mSelectedStations + mAddButton + mRemoveButton + mExit + mUpdate + + + kiconloader.h + kdialog.h + knuminput.h + + + exitWeatherService() + removeStation() + updateStations() + addStation() + selectionChanged( QListViewItem* ) + + + + + klistview.h + klistview.h + + diff --git a/kweather/serviceconfigwidget.cpp b/kweather/serviceconfigwidget.cpp new file mode 100644 index 0000000..5372984 --- /dev/null +++ b/kweather/serviceconfigwidget.cpp @@ -0,0 +1,239 @@ +/* + This file is part of KWeather. + Copyright (c) 2004 Tobias Koenig + + 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. + + 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; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "serviceconfigwidget.h" +#include "weatherservice_stub.h" + +class StationItem : public QListViewItem +{ + public: + StationItem( QListView *view, const QString &name, const QString &uid ) + : QListViewItem( view, name ), mUID( uid ) + { + } + + StationItem( QListViewItem *item, const QString &name, const QString &uid ) + : QListViewItem( item, name ), mUID( uid ) + { + } + + QString uid() const { return mUID; } + + private: + QString mUID; +}; + +static void parseStationEntry( const QString &line, QString &name, QString &uid ); + +ServiceConfigWidget::ServiceConfigWidget( QWidget *parent, const char *name ) + : wsPrefs( parent, name ), mService(0) +{ + mService = new WeatherService_stub( "KWeatherService", "WeatherService" ); + connect( mAllStations, SIGNAL( doubleClicked ( QListViewItem *, const QPoint &, int ) ), SLOT( addStation() ) ); + connect( mSelectedStations, SIGNAL( doubleClicked ( QListViewItem *, const QPoint &, int ) ), SLOT( removeStation() ) ); + + initGUI(); + loadLocations(); + scanStations(); +} + +ServiceConfigWidget::~ServiceConfigWidget() +{ + delete mService; +} + +void ServiceConfigWidget::addStation() +{ + if ( !dcopActive() ) + return; + + StationItem *item = dynamic_cast( mAllStations->selectedItem() ); + if ( item == 0 ) + return; + + mService->addStation( item->uid() ); + scanStations(); + + modified(); +} + +void ServiceConfigWidget::removeStation() +{ + if ( !dcopActive() ) + return; + + StationItem *item = dynamic_cast( mSelectedStations->selectedItem() ); + if ( item == 0 ) + return; + + mService->removeStation( item->uid() ); + scanStations(); + + modified(); +} + +void ServiceConfigWidget::updateStations() +{ + if ( !dcopActive() ) + return; + + mService->updateAll( ); + scanStations(); +} + +void ServiceConfigWidget::exitWeatherService() +{ + if ( !dcopActive() ) + return; + + mService->exit(); + modified(); +} + +void ServiceConfigWidget::scanStations() +{ + if ( !dcopActive() ) + return; + + QStringList list = mService->listStations( ); + + mSelectedStations->clear(); + for ( uint i = 0; i < list.count(); ++i ) { + QPixmap pm = mService->icon( list[ i ] ); + QImage img = pm.convertToImage(); + img = img.smoothScale( 22, 22 ); + pm.convertFromImage( img ); + + QString uid = list[ i ]; + if (mStationMap[ uid ].isEmpty()) + { + mStationMap[ uid ] = uid; + } + StationItem *item = new StationItem( mSelectedStations, mStationMap[ uid ], uid ); + + item->setPixmap( 0, pm ); + } +} + +void ServiceConfigWidget::selectionChanged( QListViewItem *item ) +{ + mRemoveButton->setEnabled( item != 0 ); +} + +void ServiceConfigWidget::modified() +{ + emit changed( true ); +} + +void ServiceConfigWidget::initGUI() +{ + mAllStations->header()->hide(); + mSelectedStations->header()->hide(); +} + +void ServiceConfigWidget::loadLocations() +{ + KConfig config( locate( "data", "kweatherservice/weather_stations.desktop" ) ); + + config.setGroup( "Main" ); + QStringList regions = QStringList::split( ' ', config.readEntry( "regions" ) ); + + QStringList::ConstIterator regionIt; + for ( regionIt = regions.begin(); regionIt != regions.end(); ++regionIt ) { + config.setGroup( *regionIt ); + QString name = config.readEntry( "name" ); + QStringList states = config.readListEntry( "states", ' ' ); + + QListViewItem *regionItem = new QListViewItem( mAllStations, name ); + regionItem->setSelectable( false ); + + QStringList::ConstIterator stateIt; + for ( stateIt = states.begin(); stateIt != states.end(); ++stateIt ) { + config.setGroup( *regionIt + "_" + *stateIt ); + QString name = config.readEntry( "name" ); + + QListViewItem *stateItem = new QListViewItem( regionItem, name ); + stateItem->setSelectable( false ); + + QMap entries = config.entryMap( *regionIt + "_" + *stateIt ); + QMap::ConstIterator entryIt; + for ( entryIt = entries.begin(); entryIt != entries.end(); ++entryIt ) { + if ( entryIt.key() != "name" ) { + QString station, uid; + // get station and uid from the data + parseStationEntry( entryIt.data(), station, uid ); + new StationItem( stateItem, station, uid ); + mStationMap.insert( uid, QString( "%1, %2" ) + .arg( station ).arg( *stateIt ) ); + } + } + } + } +} + +bool ServiceConfigWidget::dcopActive() +{ + QString error; + QCString appID; + bool isGood = true; + DCOPClient *client = kapp->dcopClient(); + if ( !client->isApplicationRegistered( "KWeatherService" ) ) { + if ( KApplication::startServiceByDesktopName( "kweatherservice", QStringList(), &error, &appID ) ) + isGood = false; + } + + return isGood; +} + +void parseStationEntry( const QString &line, QString &name, QString &uid ) +{ + QStringList list = QStringList::split( ' ', line ); + + bool inName = true; + + for ( uint i = 0; i < list.count(); ++i ) { + if ( inName ) { + if ( list[ i ].endsWith( "\\" ) ) { + name.append( list[ i ].replace( "\\", " " ) ); + } else { + name.append( list[ i ] ); + inName = false; + } + } else { + uid = list[ i ]; + return; + } + } +} + +#include "serviceconfigwidget.moc" diff --git a/kweather/serviceconfigwidget.h b/kweather/serviceconfigwidget.h new file mode 100644 index 0000000..f9b04f5 --- /dev/null +++ b/kweather/serviceconfigwidget.h @@ -0,0 +1,58 @@ +/* + This file is part of KWeather. + Copyright (c) 2004 Tobias Koenig + + 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. + + 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; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ + +#ifndef SERVICECONFIGWIDGET_H +#define SERVICECONFIGWIDGET_H + +#include + +class QListViewItem; +class WeatherService_stub; + +class ServiceConfigWidget : public wsPrefs +{ + Q_OBJECT + + public: + ServiceConfigWidget( QWidget *parent, const char *name = 0 ); + virtual ~ServiceConfigWidget(); + + signals: + void changed( bool ); + + public slots: + void addStation(); + void removeStation(); + void updateStations(); + void exitWeatherService(); + + void selectionChanged( QListViewItem* ); + void modified(); + + private: + void initGUI(); + void loadLocations(); + bool dcopActive(); + void scanStations(); + + QMap mStationMap; + WeatherService_stub *mService; +}; + +#endif diff --git a/kweather/sidebarwidget.cpp b/kweather/sidebarwidget.cpp new file mode 100644 index 0000000..fa2f008 --- /dev/null +++ b/kweather/sidebarwidget.cpp @@ -0,0 +1,49 @@ + /* + * This file is part of the KDE project + * Copyright (C) 2002 Ian Reinhart Geiser + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License version 2.0 as published by the Free Software Foundation. + * + * This library 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 library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + * $Id$ + */ + + #include "sidebarwidget.h" + #include + + sidebarwidget::sidebarwidget(QWidget* parent, const char* name) : + sidebarwidgetbase(parent,name) + { + view = new QVBox(reportGrid->viewport()); + reportGrid->addChild(view); + reportGrid->setResizePolicy(QScrollView::AutoOneFit); + } + + sidebarwidget::~sidebarwidget() + { + + } + + void sidebarwidget::addWidget(QWidget *w, const QString &s) + { + w->setFixedWidth(reportGrid->visibleWidth ()); + } + + QWidget *sidebarwidget::viewport() + { + return view; + } + +#include "sidebarwidget.moc" + diff --git a/kweather/sidebarwidget.h b/kweather/sidebarwidget.h new file mode 100644 index 0000000..0dbeb86 --- /dev/null +++ b/kweather/sidebarwidget.h @@ -0,0 +1,43 @@ +/* + * This file is part of the KDE project + * Copyright (C) 2002 Ian Reinhart Geiser + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License version 2.0 as published by the Free Software Foundation. + * + * This library 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 library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#ifndef __SIDEBARWIDGET_H__ +#define __SIDEBARWIDGET_H__ + + +#include +#include + +class sidebarwidget : public sidebarwidgetbase +{ +Q_OBJECT +public: + sidebarwidget(QWidget* parent, const char* name = 0); + virtual ~sidebarwidget(); + void addWidget(QWidget *w, const QString &s); + QWidget *viewport(); + QVBox *view; + +}; + +#endif + + diff --git a/kweather/sidebarwidgetbase.ui b/kweather/sidebarwidgetbase.ui new file mode 100644 index 0000000..fe84dce --- /dev/null +++ b/kweather/sidebarwidgetbase.ui @@ -0,0 +1,112 @@ + +sidebarwidgetbase +ian reinhart geiser <geiseri@kde.org> + + + Form1 + + + + 0 + 0 + 338 + 480 + + + + + unnamed + + + + GroupBox2 + + + Station Manager + + + + unnamed + + + + Layout1 + + + + unnamed + + + + stationList + + + + + addStation + + + Add + + + + + + + Spacer4 + + + Horizontal + + + Expanding + + + + 20 + 20 + + + + + + + + reportGroup + + + Weather Report + + + + unnamed + + + + reportGrid + + + + + + + + + QScrollView +
qscrollview.h
+ + 25 + 25 + + 1 + + 3 + 3 + 0 + 0 + + image0 +
+
+ +
diff --git a/kweather/stationdatabase.cpp b/kweather/stationdatabase.cpp new file mode 100644 index 0000000..00f13c1 --- /dev/null +++ b/kweather/stationdatabase.cpp @@ -0,0 +1,170 @@ +// +// +// C++ Implementation: $MODULE$ +// +// Description: +// +// +// Author: ian reinhart geiser , (C) 2003 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#include "stationdatabase.h" + +#include +#include +#include + +class StationInfo +{ + public: + QString cityName; + QString country; + QString longitude; + QString latitude; + StationInfo () {} +}; + +StationDatabase::StationDatabase(const QString path) : mPath(path) +{ +} + + +StationDatabase::~StationDatabase() +{ +} + +bool StationDatabase::loadStation( const QString & stationID ) +{ + QFile file( mPath ); + bool found = FALSE; + + if ( !file.open( IO_ReadOnly ) ) + return false; + + QTextStream stream( &file ); + stream.setEncoding( QTextStream::UnicodeUTF8 ); + QString line; + while ( !stream.eof() ) + { + line = stream.readLine(); // line of text excluding '\n' + QStringList data = QStringList::split( ";", line, true ); + + if ( data[ 0 ].stripWhiteSpace() == stationID ) + { + StationInfo station; + station.cityName = data[ 3 ].stripWhiteSpace(); + station.country = data[ 5 ].stripWhiteSpace(); + station.latitude = data[ 7 ].stripWhiteSpace(); + station.longitude = data[ 8 ].stripWhiteSpace(); + + theDB.insert( data[ 0 ], station ); + found = TRUE; + break; + } + } + + file.close(); + return found; +} + +/*! + \fn StationDatabase::stationNameFromID(const QString& id) + */ +QString StationDatabase::stationNameFromID( const QString & stationID ) +{ + QString result; + + if ( theDB.find( stationID ) == theDB.end() ) + { + if ( loadStation( stationID ) ) + result = theDB[ stationID ].cityName; + else + result = i18n( "Unknown Station" ); + } + else + { + result = theDB[ stationID ].cityName; + } + + return result; +} + +/*! + \fn StationDatabase::stationLongitudeFromID( const QString &stationID) + */ +QString StationDatabase::stationLongitudeFromID( const QString & stationID ) +{ + QString result; + + if ( theDB.find( stationID ) == theDB.end() ) + { + if ( loadStation( stationID ) ) + result = theDB[ stationID ].longitude; + else + result = i18n( "Unknown Station" ); + } + else + { + result = theDB[ stationID ].longitude; + } + + return result; +} + +/*! + \fn StationDatabase::stationLatitudeFromID(const QString &stationID) + */ +QString StationDatabase::stationLatitudeFromID( const QString & stationID ) +{ + QString result; + + if ( theDB.find( stationID ) == theDB.end() ) + { + if ( loadStation( stationID ) ) + result = theDB[ stationID ].latitude; + else + result = i18n( "Unknown Station" ); + } + else + { + result = theDB[ stationID ].latitude; + } + + return result; +} + +/*! + \fn StationDatabase::stationCountryFromID( const QString &stationID) + */ +QString StationDatabase::stationCountryFromID( const QString &stationID ) +{ + QString result; + + if ( theDB.find( stationID ) == theDB.end() ) + { + if ( loadStation( stationID ) ) + result = theDB[ stationID ].country; + else + result = i18n( "Unknown Station" ); + } + else + { + result = theDB[ stationID ].country; + } + + return result; +} + +QString StationDatabase::stationIDfromName( const QString &name ) +{ + QMap::Iterator itr = theDB.begin(); + for( ; itr != theDB.end(); ++itr) + { + kdDebug() << "Checking " << itr.data().cityName << endl; + if( itr.data().cityName == name ) + return itr.key(); + } + return "0000"; +} diff --git a/kweather/stationdatabase.h b/kweather/stationdatabase.h new file mode 100644 index 0000000..1e020a9 --- /dev/null +++ b/kweather/stationdatabase.h @@ -0,0 +1,54 @@ +// +// +// C++ Interface: $MODULE$ +// +// Description: +// +// +// Author: ian reinhart geiser , (C) 2003 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef STATIONDATABASE_H +#define STATIONDATABASE_H + +#include +#include + +#include +#include + +/** +This is the main database for mapping METAR codes to Station information. + +@author ian reinhart geiser +*/ + +class StationInfo; + +class StationDatabase +{ +public: + StationDatabase(const QString path = locate("data", "kweatherservice/stations.dat")); + ~StationDatabase(); + + QString stationNameFromID(const QString& id); + + QString stationLongitudeFromID( const QString &stationID); + + QString stationLatitudeFromID(const QString &stationID); + + QString stationCountryFromID( const QString &stationID); + + QString stationIDfromName( const QString &name ); + +private: + QMap theDB; + + bool loadStation( const QString & stationID ); + + const QString mPath; +}; + +#endif diff --git a/kweather/stationdatabase_test.cpp b/kweather/stationdatabase_test.cpp new file mode 100644 index 0000000..902b7ab --- /dev/null +++ b/kweather/stationdatabase_test.cpp @@ -0,0 +1,226 @@ +/**************************************************************************** + * stationdatabase_test.cpp - Test Program for StationDatabase Class + * ------------------- + * begin : Friday June 4 2004 + * copyright : (C) 2004 by John Ratke + * email : jratke@comcast.net + ****************************************************************************/ + +/**************************************************************************** + * * + * 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 +#include +using namespace std; + +#include +#include +#include +#include + +#include "stationdatabase.h" + + +int main() +{ + bool anyFailed = false; + bool found = false; + + // try the stations.dat file in the current directory first. + QString path("stations.dat"); + + if (QFile::exists(path)) + { + found = true; + } + else + { + // If we couldn't find it, then maybe the build directory is not the + // same as the source directory. If that is the case, try to read it + // from its location in the share/apps/kweatherservice directory, which + // means that make install would have had to be done first before calling + // make check so that the file will be there. + + QString kdeDirs(getenv("KDEDIR")); + + path = kdeDirs + "/share/apps/kweatherservice/stations.dat"; + if (QFile::exists(path)) + { + found = true; + } + } + + if (found) + { + cout << "found stations.dat at " << path.latin1() << endl; + } + else + { + cout << "couldn't find stations.dat!! try \"make install\" before \"make check\"" << endl; + return 1; + } + + StationDatabase stationDb(path); + + cout << "Testing station name from ID with known station..."; + + if (stationDb.stationNameFromID("KORD") == "Chicago, Chicago-O'Hare International Airport") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing station name from ID with unknown station..."; + + if (stationDb.stationNameFromID("KXYZ") == "Unknown Station") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing station name from ID with known station already loaded..."; + + // station should be cached this time. + if (stationDb.stationNameFromID("KORD") == "Chicago, Chicago-O'Hare International Airport") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing latitude from ID with known station..."; + + if (stationDb.stationLatitudeFromID("KPWK") == "42-07-15N") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing latitude from ID with unknown station..."; + + if (stationDb.stationLatitudeFromID("KZZZ") == "Unknown Station") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing latitude from ID with known station already loaded..."; + + if (stationDb.stationLatitudeFromID("KPWK") == "42-07-15N") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing longitude from ID with known station..."; + + if (stationDb.stationLongitudeFromID("KAAA") == "089-20-06W") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing longitude from ID with unknown station..."; + + if (stationDb.stationLongitudeFromID("KZYY") == "Unknown Station") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing longitude from ID with known station already loaded..."; + + if (stationDb.stationLongitudeFromID("KAAA") == "089-20-06W") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing country from ID with known station..."; + + if (stationDb.stationCountryFromID("KUGN") == "United States") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing country from ID with unknown station..."; + + if (stationDb.stationCountryFromID("KYYY") == "Unknown Station") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing country from ID with known station already loaded..."; + + if (stationDb.stationCountryFromID("KUGN") == "United States") + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + // If success, return 0, else return 1 + if (anyFailed) + { + return 1; + } + else + { + return 0; + } + +} diff --git a/kweather/stations.dat b/kweather/stations.dat new file mode 100644 index 0000000..3db1fc1 --- /dev/null +++ b/kweather/stations.dat @@ -0,0 +1,6615 @@ +AGGH;91;520;Honiara / Henderson;;Solomon Islands;5;09-25S;160-03E;;;8;9;P +AGGL;91;541;Santa Cruz;;Solomon Islands;5;10-42S;165-48E;10-42S;165-48E;23;24;P +AGGM;91;503;Munda;;Solomon Islands;5;08-20S;157-16E;;;6;6;P +ANAU;91;530;Nauru Airport;;Nauru;5;00-32S;166-55E;;;6;6; +AYMD;94;014;Madang;;Papua New Guinea;5;05-13S;145-47E;05-13S;145-47E;3;5;P +AYMO;--;---;Manus Island/Momote;;Papua New Guinea;5;02-03-43S;147-25-27E;;;4;; +AYPY;94;035;Moresby;;Papua New Guinea;5;09-26S;147-13E;09-26S;147-13E;38;49;P +AYWK;94;004;Wewak;;Papua New Guinea;5;03-34S;143-38E;;;6;;P +BGAM;04;360;Tasiilaq;;Greenland;6;65-36N;037-38W;65-36N;037-38W;50;52;P +BGAS;04;285;Angisoq;;Greenland;6;59-59N;045-12W;;;16;16; +BGAT;04;351;Aputiteeq;;Greenland;6;67-47N;032-18W;;;13;12; +BGBW;04;270;Narsarsuaq;;Greenland;6;61-10N;045-25W;61-11N;045-26W;34;32;P +BGCO;04;341;Constable Pynt;;Greenland;6;70-45N;022-39W;;;14;10; +BGDB;04;330;Daneborg;;Greenland;6;74-18N;020-13W;;;44;44; +BGDH;04;320;Danmarkshavn;;Greenland;6;76-46N;018-40W;76-46N;018-40W;11;12;P +BGEM;04;220;Egedesminde;;Greenland;6;68-42N;052-45W;68-42N;052-45W;43;41;P +BGFH;04;260;Frederikshaab;;Greenland;6;62-00N;049-40W;;;13;15;P +BGGD;04;261;Groennedal;;Greenland;6;61-14N;048-06W;;;35;32; +BGGH;04;250;Godthaab / Nuuk;;Greenland;6;64-10N;051-45W;;;80;70;P +BGHB;04;230;Holsteinsborg;;Greenland;6;66-55N;053-40W;;;12;9;P +BGJH;04;272;Julianehaab;;Greenland;6;60-43N;046-03W;;;32;34;P +BGJN;04;221;Jacobshavn Lufthavn;;Greenland;6;69-14N;051-04W;;;29;31; +BGKK;04;361;Kulusuk Lufthavn;;Greenland;6;65-35N;037-09W;;;35;37; +BGKT;04;340;Cape Tobin Automated Reporting Station ;;Greenland;6;70-25N;021-58W;70-25N;021-58W;41;41; +BGPC;04;390;Prins Christian Sund;;Greenland;6;60-03N;043-10W;;;88;75; +BGSC;04;339;Scoresbysund;;Greenland;6;70-29N;021-57W;70-29N;021-58W;65;69; +BGSF;04;231;Sdr Stroemfjord;;Greenland;6;67-01N;050-42W;67-00N;050-48W;50;53;P +BGTL;04;202;Thule A. B.;;Greenland;6;76-32N;068-45W;76-32N;068-45W;77;77;P +BIAR;04;063;Akureyri;;Iceland;6;65-41N;018-05W;;;23;27;P +BIEG;04;089;Egilsstadir;;Iceland;6;65-17N;014-24W;;;23;23; +BIGR;04;065;Grimsey;;Iceland;6;66-32N;018-01W;;;15;16; +BIHN;04;082;Akurnes;;Iceland;6;64-18N;015-13W;;;17;21;P +BIKF;04;018;Keflavikurflugvollur;;Iceland;6;63-58N;022-36W;63-58N;022-36W;52;54;P +BIRG;04;077;Raufarhofn;;Iceland;6;66-27N;015-57W;;;8;8;P +BIRK;04;030;Reykjavik;;Iceland;6;64-08N;021-54W;;;54;61;P +BIST;04;013;Stykkisholmur;;Iceland;6;65-05N;022-44W;;;8;8; +BIVM;04;048;Vestmannaeyjar;;Iceland;6;63-24N;020-17W;;;118;124;P +BIVO;04;085;Skjaldthingsstadir;;Iceland;6;65-42N;014-49W;;;44;48; +BIX1;--;---;Biloxi, Keesler Air Force Base, Navu;MS;United States;4;30-24-07N;088-55-04W;40-18-00N;088-08-00W;224;228; +BIX2;--;---;Biloxi, Keesler Air Force Base, Navu;MS;United States;4;30-24-34N;088-55-08W;30-24-34N;088-55-08W;7;10; +BIX3;--;---;Biloxi, Keesler Air Force Base, Navu;MS;United States;4;30-24-36N;088-55-09W;30-24-34N;088-55-08W;7;10; +CTPP;--;---;Camp Canargus;;Haiti;4;18-34N;072-19W;;;38;; +CWAC;71;483;Nitinat Lake Meteorological Aeronautical Presentation System ;;Canada;4;48-40N;124-50W;;;41;; +CWAD;--;---;Cape Mudge Light House ;;Canada;4;50-00N;125-12W;;;4;; +CWAE;--;---;Whistler ;;Canada;4;50-08N;122-57W;;;658;; +CWAF;71;426;Ile Rouge Meteorological Aeronautical Presentation System ;;Canada;4;48-05N;069-33W;;;5;; +CWAG;71;806;La Scie, Nfld.;;Canada;4;49-55N;055-40W;;;192;194;P +CWAH;71;410;Amherst, N. S.;;Canada;4;45-51N;064-16W;;;22;23;P +CWAJ;71;465;Erieau Meteorological Aeronautical Presentation System ;;Canada;4;42-15N;081-54W;;;178;; +CWAN;71;112;Amphitrite Point;;Canada;4;48-55N;125-33W;;;27;; +CWAQ;71;516;Coronach Spc;;Canada;4;49-03N;105-29W;;;756;; +CWAR;71;807;Argentia, Nfld;;Canada;4;47-18N;054-00W;47-17N;054-00W;16;16;P +CWAS;71;211;Pam Rocks;;Canada;4;49-29N;123-18W;;;;; +CWAU;--;---;Dryad Point Light House ;;Canada;4;52-11N;128-07W;;;4;; +CWAV;71;248;Sundre;;Canada;4;51-46N;114-41W;;;1114;; +CWAX;71;819;St. Anthony, Nfld.;;Canada;4;51-22N;055-38W;;;106;111;P +CWBA;71;122;Banff, Alta.;;Canada;4;51-11N;115-34W;;;1397;1384;P +CWBE;71;460;Killarney Meteorological Aeronautical Presentation System ;;Canada;4;45-58N;081-29W;;;196;; +CWBF;--;---;Burgeo Automated Reporting Station ;;Canada;4;47-37N;057-38W;;;12;; +CWBG;71;760;Big Creek ;;Canada;4;51-15N;123-05W;;;1670;; +CWBI;71;632;Britt, Ont.;;Canada;4;45-48N;080-32W;;;190;;P +CWBJ;71;162;Inner Whalebacks;;Canada;4;61-55N;113-44W;;;165;; +CWBK;71;415;Caribou Point Meteorological Aeronautical Presentation System ;;Canada;4;45-46N;062-41W;;;2;; +CWBL;71;143;Bachelors Island Automated Reporting Station ;;Canada;4;51-45N;099-54W;;;256;; +CWBM;71;230;Beaverlodge;;Canada;4;55-12N;119-24W;;;745;; +CWBO;71;457;Brooks Automatic Weather Reporting System ;;Canada;4;50-33N;111-51W;;;747;; +CWBR;71;049;B, R;;Canada;4;66-02N;091-50W;;;31;; +CWBT;71;512;Longue Point De Mingan, Que.;;Canada;4;50-16N;064-14W;;;11;; +CWBV;71;403;Beaven Island, N. S.;;Canada;4;44-49N;062-20W;;;14;10;P +CWBY;71;810;Port Menier, Que.;;Canada;4;49-50N;064-18W;;;53;53;P +CWBZ;71;712;St Anicet;;Canada;4;45-07N;074-17W;45-07N;074-17W;49;49; +CWCA;71;818;Cartwright, Nfld.;;Canada;4;53-42N;057-02W;;;14;14;P +CWCB;--;---;Nanakwa Shoals;;Canada;4;53-49N;128-50W;;;0;; +CWCD;71;513;Saskatoon Kernen;;Canada;4;52-09N;106-33W;;;510;; +CWCF;71;158;Berens River CS , Man.;;Canada;4;52-21N;097-02W;;;222;; +CWCH;71;748;Atikokan Automated Reporting Station ;;Canada;4;48-45N;091-37W;;;424;; +CWCI;71;433;Caribou Island, Ont.;;Canada;4;47-20N;085-50W;;;187;;P +CWCJ;71;750;Pukaskwa ;;Canada;4;48-36N;086-18W;;;206;; +CWCL;71;474;Clinton, B. C.;;Canada;4;51-09N;121-30W;;;1057;1057;P +CWCM;71;170;Carberry Mcdc;;Canada;4;49-54N;099-21W;;;384;; +CWCN;--;---;Malloch Dome Automatic Weather Reporting System ;;Canada;4;78-13N;101-03W;;;12;; +CWCO;71;270;Collingwood Automatic Weather Reporting System ;;Canada;4;44-30N;080-13W;;;180;; +CWCQ;--;---;Chatham Automatic Weather Reporting System ;;Canada;4;47-00N;065-28W;;;34;; +CWCS;--;---;Cote-Ste-Cath Mot;;Canada;4;45-25N;073-34W;;;17;; +CWCT;--;---;Coronation Automated Reporting Station ;;Canada;4;52-04N;111-28W;;;791;; +CWCU;71;436;Barrie, Ont.;;Canada;4;44-23N;079-47W;;;295;;P +CWCV;--;---;Nootka Lightstation, B. C.;;Canada;4;49-36N;126-37W;;;16;; +CWCX;71;056;Clut Lake Automated Reporting Station ;;Canada;4;66-00N;117-46W;;;185;; +CWCZ;--;---;Addenbrooke Island Light, B. C.;;Canada;4;51-36N;127-52W;;;21;; +CWDA;71;417;Englee Meteorological Aeronautical Presentation System ;;Canada;4;50-43N;056-07W;;;29;; +CWDB;71;967;Burwash Automatic Weather Reporting System ;;Canada;4;61-22N;139-03W;;;806;; +CWDC;71;076;Uranium City, Sask.;;Canada;4;59-34N;108-29W;;;318;318;P +CWDD;--;---;Belle River, Ont.;;Canada;4;42-18N;082-42W;;;184;; +CWDE;71;520;Lac Benoit;;Canada;4;51-33N;071-07W;;;549;; +CWDF;71;283;Oliphant \ Ont;;Canada;4;44-44N;081-17W;;;182;; +CWDH;71;185;Daniel's Harbour, Nfld;;Canada;4;50-14N;057-35W;;;18;19;P +CWDI;71;400;Badger, Nfld;;Canada;4;48-58N;056-04W;;;105;;P +CWDJ;71;514;Regina University;;Canada;4;50-24N;104-35W;;;573;; +CWDK;71;234;Claresholm Automatic Weather Reporting System ;;Canada;4;50-01N;113-38W;;;1012;; +CWDL;71;958;Dease Lake B. C.;;Canada;4;58-25N;130-00W;;;816;816;P +CWDM;71;814;Chevery, Que.;;Canada;4;50-28N;059-38W;;;6;6;P +CWDN;--;---;Wasaga Beach Automatic Weather Reporting System ;;Canada;4;44-31N;080-01W;;;182;; +CWDO;71;402;Twillingate Meteorological Aeronautical Presentation System ;;Canada;4;49-41N;054-48W;;;92;; +CWDP;71;521;Manouane-Est Automated Reporting Station ;;Canada;4;50-40N;070-32W;;;496;; +CWDQ;71;378;La Tuque;;Canada;4;47-25N;072-48W;;;169;; +CWDS;71;802;St. Lawrence, Nfld.;;Canada;4;46-55N;055-23W;;;46;49;P +CWDT;71;522;Chute Des Passes;;Canada;4;49-54N;071-15W;;;399;; +CWDU;71;235;Cop Upper;;Canada;4;51-05N;114-13W;;;1235;; +CWDV;71;435;Upsala, Ont.;;Canada;4;49-02N;090-28W;;;489;489;P +CWDZ;--;---;Drumheller East;;Canada;4;51-26N;112-40W;;;678;; +CWEA;71;448;Pinawa Automatic Weather Reporting System ;;Canada;4;50-11N;096-04W;;;268;; +CWEB;71;894;Estevan Point, B. C.;;Canada;4;49-23N;126-33W;;;7;;P +CWEC;71;751;Welcome Island;;Canada;4;48-22N;089-07W;;;209;; +CWEE;71;523;Chamouchouane Automatic Weather Reporting System;;Canada;4;49-17N;073-21W;;;305;; +CWEF;71;418;Saint Paul Island Meteorological Aeronautical Presentation System ;;Canada;4;47-14N;060-08W;;;26;; +CWEG;--;---;Alberta Weather Centre ;;Canada;4;53-30N;113-30W;;;;; +CWEH;71;131;Eastend Cypress, Sask;;Canada;4;49-26N;108-59W;;;1078;;P +CWEI;71;447;Melita, Man;;Canada;4;49-17N;100-59W;;;446;446;P +CWEJ;--;---;Bow Drill Iii;;Canada;4;47-12N;055-06W;;;0;; +CWEK;71;476;Grey Islet Meteorological Aeronautical Presentation System ;;Canada;4;54-35N;130-42W;;;8;; +CWEL;71;772;Entrance Island Automatic Weather Reporting System ;;Canada;4;49-13N;123-48W;;;5;; +CWEM;--;---;Egg Island Light;;Canada;4;51-15N;127-50W;;;14;; +CWEO;71;421;Lac Eon, Que;;Canada;4;51-52N;063-17W;;;561;561;P +CWEP;71;412;East Point, P. E. I;;Canada;4;46-27N;061-58W;;;11;13;P +CWEQ;71;443;Swan River, Man.;;Canada;4;52-07N;101-14W;;;335;335;P +CWER;71;424;Ile D'Orleans Automated Reporting Station ;;Canada;4;47-00N;070-49W;;;5;; +CWES;71;111;Cape Scott Light;;Canada;4;50-47N;128-26W;;;70;; +CWET;--;---;Egbert Meteorological Aeronautical Presentation System ;;Canada;4;44-14N;079-47W;;;251;; +CWEU;71;917;Eureka, N. W. T.;;Canada;4;79-59N;085-56W;79-59N;085-56W;10;10;P +CWEV;71;085;Ellice River Automated Reporting Station ;;Canada;4;67-42N;104-28W;;;42;; +CWEW;71;524;L'Assomption;;Canada;4;45-49N;073-26W;45-49N;073-26W;21;21; +CWEZ;71;473;Saturna Island Meteorological Aeronautical Presentation System ;;Canada;4;48-47N;123-03W;;;24;; +CWFD;71;094;Cape Dyer, N. W. T.;;Canada;4;66-35N;061-37W;;;393;393;P +CWFE;71;238;Elk Island National Park;;Canada;4;53-41N;112-52W;;;716;; +CWFF;71;456;Melfort Automatic Weather Reporting System ;;Canada;4;52-49N;104-36W;;;490;; +CWFG;71;478;Sartine Island Meteorological Aeronautical Presentation System ;;Canada;4;50-49N;128-54W;;;112;; +CWFH;--;---;St. Shotts;;Canada;4;46-43N;053-29W;;;143;; +CWFJ;71;153;Cardston Automated Reporting Station ;;Canada;4;49-12N;113-17W;;;1136;; +CWFL;71;073;Fort Reliance ;;Canada;4;62-43N;109-10W;;;164;; +CWFM;--;---;Chatham Point Lighthouse ;;Canada;4;50-20N;125-26W;;;23;; +CWFN;71;920;Cree Lake Meteorological Aeronautical Presentation System ;;Canada;4;57-21N;107-08W;57-21N;107-08W;495;497; +CWFP;--;---;Nain;;Canada;4;56-33N;061-42W;;;7;; +CWFQ;71;373;Frelighsburg;;Canada;4;45-03N;072-50W;;;152;; +CWFR;--;---;Horsefly River, B. C.;;Canada;4;52-17N;121-03W;;;846;; +CWFU;--;---;Little Macatina;;Canada;4;52-14N;061-19W;;;321;; +CWFW;71;829;Baie Comeau;;Canada;4;49-16N;068-09W;;;129;; +CWFX;71;055;Colville Lake;;Canada;4;67-02N;126-05W;;;259;; +CWFY;--;---;Conne River;;Canada;4;48-10N;055-29W;;;183;; +CWFZ;71;160;Fort Reliance, N. W. T.;;Canada;4;62-43N;109-11W;;;168;; +CWGB;71;769;Ballenas Island Automatic Weather Reporting System ;;Canada;4;49-21N;124-10W;;;5;; +CWGD;71;261;Goderich Automatic Weather Reporting System ;;Canada;4;43-46N;081-43W;;;214;; +CWGF;71;253;Garden River Automatic Weather Reporting System ;;Canada;4;58-41N;113-53W;;;241;; +CWGH;71;281;Grenadier Island ;;Canada;4;44-25N;075-51W;;;82;; +CWGJ;--;---;Montreal River Radar Site;;Canada;4;47-14N;084-31W;;;559;; +CWGL;71;282;Lagoon City ;;Canada;4;44-32N;079-13W;;;221;; +CWGM;71;154;Waterton Park Gate;;Canada;4;59-08N;113-48W;;;1296;; +CWGN;71;441;Gretna, Man.;;Canada;4;49-02N;097-34W;;;251;253;P +CWGP;71;777;Pemberton Automatic Weather Reporting System ;;Canada;4;50-18N;122-44W;;;204;; +CWGQ;71;736;Roquemaure;;Canada;4;48-38N;079-27W;;;269;; +CWGR;71;710;Iles-De-La-Madelein;;Canada;4;47-25N;061-48W;;;10;; +CWGT;71;781;Sisters Island Automatic Weather Reporting System ;;Canada;4;49-29N;124-26W;;;5;; +CWGU;71;857;Gypsumville;;Canada;4;51-40N;098-45W;;;265;; +CWGV;--;---;Carp Radar Site;;Canada;4;45-19N;076-00W;;;;; +CWGW;71;782;Sparwood Automatic Weather Reporting System ;;Canada;4;49-45N;114-54W;;;1137;; +CWGX;--;---;Gillam, Man.;;Canada;4;56-22N;094-42W;;;145;; +CWGY;71;240;Esther 1;;Canada;4;51-40N;110-12W;;;707;; +CWGZ;--;---;Grise Fiord Airport;;Canada;4;76-25N;082-54W;;;45;; +CWHA;71;241;Highvale;;Canada;4;53-27N;114-28W;;;747;; +CWHC;71;201;Vancouver Automatic Weather Reporting System ;;Canada;4;49-18N;123-07W;;;2;; +CWHE;71;239;Ellerslie;;Canada;4;53-25N;113-12W;;;694;; +CWHH;71;142;Hunters Point Mar;;Canada;4;53-02N;100-56W;;;256;; +CWHI;71;249;Three Hills;;Canada;4;51-42N;113-13W;;;907;; +CWHL;71;440;Holland Rock Automatic Weather Reporting System ;;Canada;4;54-10N;130-22W;;;5;; +CWHM;71;184;Varennes;;Canada;4;45-43N;073-23W;;;19;; +CWHN;--;---;Jimmy Lake ;;Canada;4;54-55N;109-57W;54-55N;109-58W;658;625; +CWHO;71;900;Hopedale Meteorological Aeronautical Presentation System ;;Canada;4;55-27N;060-14W;;;8;; +CWHP;71;423;Heath Point Meteorological Aeronautical Presentation System ;;Canada;4;49-05N;061-42W;;;4;; +CWHQ;71;389;Deschambaults , Que.;;Canada;4;46-41N;071-57W;;;55;; +CWHS;71;062;Bernard Harbour;;Canada;4;68-47N;114-50W;;;65;; +CWHT;71;505;Haines Junction;;Canada;4;60-46N;137-35W;;;599;; +CWHU;--;---;Star Brook;;Canada;4;48-35N;057-14W;;;290;; +CWHV;71;323;Beauceville;;Canada;4;46-12N;070-47W;;;229;; +CWHW;71;193;Comfort Cove, Nfld.;;Canada;4;49-16N;054-53W;;;96;99;P +CWHY;71;618;Mont-Orford;;Canada;4;45-19N;072-15W;;;851;; +CWIA;--;---;Saint Henri , Que.;;Canada;4;48-39N;071-51W;;;103;; +CWIC;71;074;Isachsen Meteorological Aeronautical Presentation System ;;Canada;4;78-47N;103-33W;;;58;; +CWID;71;087;Fort Providence;;Canada;4;61-19N;117-36W;;;161;; +CWIE;71;161;Indian River ;;Canada;4;64-23N;115-01W;;;478;; +CWIF;--;---;Quatsino Light Station ;;Canada;4;50-26N;128-02W;;;21;; +CWIG;--;---;Ile Aux Grues, Que.;;Canada;4;47-04N;070-32W;;;18;; +CWII;71;552;Victoria Beach ;;Canada;4;50-42N;096-34W;;;220;; +CWIJ;71;496;Lupin, N. W. T.;;Canada;4;65-46N;111-14W;;;500;500;P +CWIK;71;861;Broadview, Sask.;;Canada;4;50-23N;102-41W;50-23N;102-35W;598;602;P +CWIL;71;084;Hat Island, N. W. T.;;Canada;4;68-19N;100-05W;;;36;; +CWIM;--;---;Upsala Radar Site ;;Canada;4;49-02N;090-25W;;;480;; +CWIO;71;762;Iskut River ;;Canada;4;56-44N;131-40W;;;15;; +CWIP;71;390;Pointe Noire , Que.;;Canada;4;50-10N;066-26W;;;25;; +CWIQ;71;124;Primrose Lake ;;Canada;4;54-45N;110-03W;54-45N;110-03W;702;700; +CWIR;--;---;Victoria Marine ;;Canada;4;48-22N;123-45W;;;32;; +CWIS;71;319;Charlevoix CS , Que.;;Canada;4;47-17N;070-38W;;;719;; +CWIT;71;614;Saint Clothilde Automated Reporting Station ;;Canada;4;45-10N;073-41W;;;52;; +CWIU;--;---;Saint Gedeon, Que.;;Canada;4;48-29N;071-47W;;;103;; +CWIW;71;511;Watrous East Automated Reporting Station ;;Canada;4;51-40N;105-24W;;;526;; +CWIX;71;381;Mistook Automated Reporting Station ;;Canada;4;48-46N;071-43W;;;113;; +CWIY;--;---;St Leonard Automatic Weather Reporting System;;Canada;4;47-09N;067-49W;;;49;; +CWIZ;71;372;L'Acadie;;Canada;4;45-18N;073-21W;;;45;; +CWJA;71;888;Jasper, Alta.;;Canada;4;52-53N;118-04W;;;1061;1061;P +CWJB;71;392;Ste Foy CS , Que.;;Canada;4;47-18N;071-16W;;;91; +CWJC;71;923;Ennadai Lake Meteorological Aeronautical Presentation System ;;Canada;4;61-08N;100-54W;;;357;; +CWJD;71;858;Grand Rapids, Man.;;Canada;4;53-11N;099-16W;;;223;223;P +CWJG;--;---;Ivory Island Light;;Canada;4;52-16N;128-25W;;;10;; +CWJH;71;451;Southend Automatic Weather Reporting System ;;Canada;4;56-20N;103-17W;;;344;; +CWJI;71;487;Assiniboia Airport Automated Reporting Station;;Canada;4;49-44N;105-56W;;;724;; +CWJM;71;290;Upper Rideau Lake;;Canada;4;44-42N;076-18W;;;125;; +CWJN;71;501;Herschel Island Automatic Weather Reporting System ;;Canada;4;69-34N;138-55W;;;1;; +CWJO;71;617;Jonquiere Automated Reporting Station ;;Canada;4;48-25N;071-13W;;;133;; +CWJP;71;167;Porter Lake;;Canada;4;61-40N;108-25W;;;396;; +CWJR;71;770;Creston Automatic Weather Reporting System ;;Canada;4;49-05N;116-30W;;;646;; +CWJT;71;376;St Jovite Automatic Weather Reporting System ;;Canada;4;46-04N;074-32W;;;239;; +CWJU;71;899;Langara, B. C.;;Canada;4;54-15N;133-03W;;;41;41;P +CWJV;--;---;Vernon, B. C.;;Canada;4;50-14N;119-18W;;;556;; +CWJW;71;486;Jasper Warden Automated Reporting Station ;;Canada;4;52-56N;118-19W;52-56N;118-19W;1020;1020; +CWJX;71;459;Leader Airport Automatic Weather Reporting System ;;Canada;4;50-54N;109-30W;;;672;; +CWJY;71;507;Yathkyed Lake Meteorological Aeronautical Presentation System ;;Canada;4;62-42N;098-18W;;;148;; +CWJZ;71;499;Dubawnt Lake Meteorological Aeronautical Presentation System ;;Canada;4;63-14N;101-46W;;;237;; +CWKD;71;383;Bonnard 1, Que.;;Canada;4;50-44N;071-01W;;;497;; +CWKE;71;919;Pelly Bay;;Canada;4;68-26N;089-43W;;;326;; +CWKG;71;599;Kejimkujik 1, N. S.;;Canada;4;44-26N;065-12W;;;127;; +CWKH;71;774;Malahat Automatic Weather Reporting System ;;Canada;;48-35N;123-35W;;;366;; +CWKI;--;---;Kitimat;;Canada;4;54-03N;128-41W;;;13;; +CWKK;71;468;Katatota Island;;Canada;4;49-43N;088-20W;;;260;; +CWKM;71;046;Komakuk Beach, Y. T.;;Canada;4;69-37N;140-12W;;;13; +CWKO;71;135;Rockglen, Sask.;;Canada;4;49-10N;105-59W;;;915;917;P +CWKR;--;---;King Radar Site;;Canada;4;43-58N;079-34W;;;390;; +CWKS;--;---;Sikanni Chief, B. C.;;Canada;4;57-15N;122-43W;;;937;; +CWKU;--;---;Whiskey Automated Reporting Station ;;Canada;4;81-02N;076-57W;;;829;; +CWKV;--;---;Hope Slide;;Canada;4;49-17N;121-14W;;;674;; +CWKW;71;176;Cape Kakkiviak;;Canada;4;59-59N;064-10W;;;551;; +CWKX;71;222;Dease Lake Coastal Station;;Canada;4;58-25N;130-00W;;;816;; +CWLA;71;899;Langara, B. C.;;Canada;4;54-15N;133-08W;;;41; +CWLB;71;931;Lac La Biche, Alta.;;Canada;4;54-46N;112-01W;;;565;567;P +CWLC;--;---;Lucy Island, B. C.;;Canada;4;54-18N;130-36W;;;27;; +CWLE;71;455;Lucky Lake Automatic Weather Reporting System ;;Canada;4;50-57N;107-09W;;;665;; +CWLF;71;846;Lansdowne House ;;Canada;4;52-14N;087-53W;;;242;; +CWLG;71;164;Little Chicago;;Canada;4;67-12N;130-13W;;;63;; +CWLI;71;960;Liverpool Bay;;Canada;4;69-36N;130-54W;;;102;; +CWLM;71;200;Victoria Automatic Weather Reporting System ;;Canada;4;48-25N;123-19W;;;70;; +CWLO;71;853;Shilo;;Canada;4;49-47N;099-38W;49-47N;099-38W;373;373; +CWLP;71;485;Herbert Island Meteorological Aeronautical Presentation System ;;Canada;4;50-56N;127-38W;;;17;; +CWLQ;71;271;Nipissing;;Canada;4;46-19N;079-28W;;;204;; +CWLS;71;631;Mount Forest, Ont.;;Canada;4;43-59N;080-45W;;;415;;P +CWLT;71;082;Alert, N. W. T.;;Canada;4;82-30N;062-20W;82-30N;062-20W;63;66;P +CWLU;--;---;Lauzon, Que.;;Canada;4;46-50N;071-10W;;;20;; +CWLV;71;454;Waskesiu Lake Automated Reporting Station ;;Canada;4;53-55N;106-04W;;;569;; +CWLX;71;091;Longstaff Bluff, N. W. T.;;Canada;4;68-53N;075-08W;;;162;161;P +CWLY;71;891;Lytton, B. C.;;Canada;4;50-14N;121-35W;;;229;229;P +CWLZ;71;146;Candle Lake;;Canada;4;53-44N;105-16W;53-44N;105-16W;503;503; +CWMA;--;---;Masset A;;Canada;4;54-01N;132-07W;;;5;; +CWMD;--;---;Mould Bay Camp;;Canada;4;76-14N;119-19W;;;12;; +CWME;71;482;Cathedral Point Meteorological Aeronautical Presentation System ;;Canada;4;52-11N;127-28W;;;32;; +CWMH;71;817;Mary's Harbour, Nfld.;;Canada;4;52-18N;055-50W;;;10;11;P +CWMI;71;719;Miscou Island, N. B.;;Canada;4;48-01N;064-30W;;;3;4;P +CWMJ;71;721;Maniwaki;;Canada;4;46-17N;076-00W;;;200;; +CWMM;71;775;P. Meadows Coastal Station Automatic Weather Reporting System;;Canada;;49-12N;122-41W;;;5;; +CWMN;71;626;Mcgill Radar Site;;Canada;4;45-25N;073-56W;;;63;; +CWMP;71;168;Powder Lake;;Canada;4;61-03N;109-20W;;;396;; +CWMQ;71;453;Maplecreek Automatic Weather Reporting System ;;Canada;4;49-54N;109-28W;;;767;; +CWMR;--;---;Merry Island ;;Canada;4;49-28N;123-55W;;;8;; +CWMS;71;897;Mcinnes Island, B. C.;;Canada;4;52-16N;128-43W;;;25;26;P +CWMT;71;163;Lac La Martre;;Canada;4;63-09N;117-16W;;;271;; +CWMU;71;981;Rampart River Automatic Weather Reporting System ;;Canada;4;65-57N;130-28W;;;155;; +CWMV;71;986;St Charles Creek;;Canada;4;64-45N;124-13W;;;341;; +CWMW;71;722;Maniwaki, Que.;;Canada;4;46-23N;075-58W;46-22N;075-59W;170;173;P +CWMX;71;255;Mildred Lake;;Canada;4;57-32N;111-34W;;;310;; +CWMZ;71;438;Western Island Meteorological Aeronautical Presentation System ;;Canada;4;45-02N;080-22W;;;191;; +CWNB;71;466;S. E. Shoal Meteorological Aeronautical Presentation System ;;Canada;4;41-50N;082-28W;;;195;; +CWNC;71;431;Cobourg, Ont.;;Canada;4;43-57N;078-10W;;;78;78;P +CWND;71;502;Pelly Island Automatic Weather Reporting System ;;Canada;4;69-38N;135-26W;;;12;; +CWNE;--;---;North Point, Prince Edward Island;;Canada;4;47-05N;064-00W;;;15;; +CWNH;71;715;Riviere Du Loup, Que.;;Canada;4;47-48N;069-33W;;;148;148;P +CWNI;--;---;Nipterk Base;;Canada;4;69-37N;135-20W;;;10;; +CWNJ;--;---;Green Island Light Station - Heliport, B. C.;;Canada;4;54-34N;130-42W;;;12;; +CWNK;71;147;Carman U Of M;;Canada;4;49-30N;098-02W;;;268;; +CWNL;71;462;Great Duck Island;;Canada;4;45-38N;082-58W;;;183;; +CWNM;71;776;Nelson Automatic Weather Reporting System ;;Canada;4;49-30N;117-18W;;;535;; +CWNO;71;976;Satah River Automatic Weather Reporting System;;Canada;4;66-52N;134-12W;;;86;; +CWNP;71;216;Nakusp Automatic Weather Reporting System ;;Canada;;50-16N;117-49W;;;524;; +CWNQ;71;723;Nicolet Automatic Weather Reporting System ;;Canada;4;46-13N;072-39W;;;10;; +CWNR;71;245;Nakiska Ridgetop ;;Canada;4;50-57N;115-11W;;;2543;; +CWNT;71;250;Turtle Mountain;;Canada;4;49-35N;114-25W;;;2164;; +CWNW;71;982;Haldane River Automatic Weather Reporting System;;Canada;4;67-04N;121-06W;;;186;; +CWNX;71;763;Nechako River ;;Canada;4;53-41N;124-50W;;;715;; +CWNZ;71;832;Nagagami, Ont.;;Canada;4;49-45N;084-10W;;;259;263;P +CWOA;71;060;Camsell River, N. W. T.;;Canada;4;65-37N;118-07W;;;230;;P +CWOB;71;097;Brevoort Island;;Canada;4;63-20N;064-09W;;;367;; +CWOC;71;619;New Carlisle1;;Canada;4;48-01N;065-20W;;;47;; +CWOD;71;379;Normandin;;Canada;4;48-50N;072-33W;;;137;; +CWOE;71;116;Onefour Automatic Weather Reporting System ;;Canada;4;49-07N;110-28W;;;935;; +CWOH;71;720;Ste Agathe Des Mont;;Canada;4;46-03N;074-17W;;;395;; +CWOI;71;978;Ivvavik Park Automatic Weather Reporting System;;Canada;4;69-09N;140-09W;;;244;; +CWOK;71;450;Elbow Marine Aviation Reporting Station ;;Canada;4;51-08N;106-35W;;;595;; +CWOL;--;---;Sable Island Man ;;Canada;4;43-55N;059-55W;;;4;; +CWON;--;---;Dawson Automatic Weather Reporting System ;;Canada;4;64-03N;139-09W;;;370;; +CWOU;71;127;Primrose Lake 2;;Canada;4;54-47N;110-04W;54-47N;110-04W;606;606; +CWOY;--;---;Wynyard Marine Aviation Reporting Station ;;Canada;4;51-46N;104-13W;;;561;; +CWPA;71;979;Henderickson Automatic Weather Reporting System;;Canada;4;53-47N;118-26W;;;1542;; +CWPB;71;272;Beausoleil Island Automated Reporting Station ;;Canada;4;44-51N;079-52W;;;183;; +CWPC;71;463;Port Colborne Automated Reporting Station ;;Canada;4;42-52N;079-15W;;;184;; +CWPD;71;382;Parc Des Laurentid;;Canada;4;47-34N;071-14W;;;803;; +CWPE;--;---;Point Lepreau, N. B.;;Canada;4;45-04N;066-28W;;;1;; +CWPF;71;798;Esquimalt Harbour, B. C.;;Canada;4;48-26N;123-26W;;;3;; +CWPH;71;907;Inukjuak, Que;;Canada;4;58-27N;078-07W;58-27N;078-07W;3;6;P +CWPI;71;105;Pine Island Meteorological Aeronautical Presentation System ;;Canada;4;50-59N;127-44W;;;9;; +CWPJ;71;414;Point Escuminac Meteorological Aeronautical Presentation System ;;Canada;4;47-04N;064-48W;;;5;; +CWPK;71;726;Parent, Que.;;Canada;4;47-55N;074-37W;;;442;441;P +CWPL;71;845;Pickle Lake, Ont.;;Canada;4;51-27N;090-12W;51-27N;090-12W;389;386;P +CWPO;71;148;Pilot Mound, Man.;;Canada;4;49-12N;098-54W;;;470;470;P +CWPQ;71;675;Montreal-Est;;Canada;4;45-38N;070-33W;;;51;; +CWPR;71;032;Princeton Automatic Weather Reporting System ;;Canada;4;50-36N;120-31W;;;700;; +CWPS;71;464;Long Point Meteorological Aeronautical Presentation System ;;Canada;4;42-34N;080-03W;;;175;; +CWPU;71;050;Puntzi Mountain, B. C.;;Canada;4;52-07N;124-08W;;;910;910;P +CWPX;--;---;Cape Peel West, N. W. T.;;Canada;4;69-02N;107-49W;;;165;; +CWPY;--;---;Fort Chipewyan Automated Reporting Station ;;Canada;4;58-46N;111-08W;;;232;; +CWPZ;71;952;Burns Lake CS , B. C.;;Canada;4;54-23N;125-57W;;;713;; +CWQC;71;475;Port Alberni, B. C.;;Canada;4;49-15N;124-50W;;;2;2;P +CWQE;71;284;Toronto Headland;;Canada;4;43-37N;079-21W;;;87;; +CWQF;71;980;Rabbit Kettle Automated Reporting Station;;Canada;4;61-58N;127-13W;;;634;; +CWQG;71;151;Valcartier;;Canada;4;46-54N;071-30W;;;168;; +CWQH;71;611;Lennoxville;;Canada;4;45-22N;071-49W;;;181;; +CWQJ;--;---;Sedco 710;;Canada;4;46-30N;048-30W;;;0;; +CWQK;71;778;Race Rocks Automatic Weather Reporting System ;;Canada;4;48-18N;123-32W;;;5;; +CWQL;71;243;Lethbridge Automated Reporting Station ;;Canada;4;49-42N;112-47W;;;921;; +CWQM;71;186;Cap Rouge;;Canada;4;48-23N;070-32W;;;7;; +CWQO;71;385;Ile Bicquette, Que.;;Canada;4;48-24-56N;068-53-36W;;;7;; +CWQP;71;430;Point Petre , Ont.;;Canada;4;43-50N;077-09W;;;79;79;P +CWQQ;71;242;Lacombe Cda;;Canada;4;52-27N;113-45W;;;874;; +CWQR;71;375;Ile Aux Perroquets, Que.;;Canada;4;50-13-25N;064-12-30W;;;9;; +CWQS;71;472;Kindakun Rocks, B. C.;;Canada;4;53-19N;132-45W;;;14;14;P +CWQV;71;189;Puinte Claveau;;Canada;4;48-16N;070-07W;;;0;; +CWQW;71;374;Cape Whittle;;Canada;4;50-10N;060-04W;;;7;; +CWQY;71;963;Hanbury River Automated Reporting Station ;;Canada;4;63-35N;105-09W;;;317;; +CWQZ;--;---;Quesnel Automatic Weather Reporting System ;;Canada;4;53-02N;122-32W;;;545;; +CWRA;71;800;Cape Race, Nfld;;Canada;4;46-39N;053-04W;;;27;28;P +CWRD;71;246;Red Earth;;Canada;4;56-32N;115-16W;;;546;; +CWRF;71;918;Pelly Bay 1;;Canada;4;69-26N;089-44W;;;325;; +CWRH;71;972;Resolution Island, N. W. T.;;Canada;4;61-35N;64-39W;;;369;; +CWRJ;71;510;Rosetown East, Sask;;Canada;4;51-34N;107-55W;;;586;;P +CWRK;--;---;Bancroft Automatic Weather Reporting System;;Canada;4;45-04N;077-52W;;;331;; +CWRM;--;---;Rocky House Marine Aviation Reporting Station ;;Canada;4;52-26N;114-56W;;;988;; +CWRN;71;419;Hart Island Meteorological Aeronautical Presentation System ;;Canada;4;45-21N;060-59W;;;4;; +CWRO;71;477;Rose Spit Meteorological Aeronautical Presentation System ;;Canada;4;54-10N;131-40W;;;7;; +CWRP;71;956;Nicholson Peninsul ;;Canada;4;69-56N;128-58W;;;89;; +CWRQ;--;---;Trois Rivieres;;Canada;4;46-23N;072-37W;;;11;; +CWRT;71;236;Crowsnest;;Canada;4;49-38N;114-29W;;;1303;; +CWRU;71;479;Solander Island Meteorological Aeronautical Presentation System ;;Canada;4;50-07N;127-56W;;;99;; +CWRV;71;254;Camrose;;Canada;4;53-02N;112-49W;;;739;; +CWRW;71;416;Fourchu Head Meteorological Aeronautical Presentation System ;;Canada;4;45-43N;060-14W;;;10;; +CWRX;--;---;Rowley Island, N. W. T.;;Canada;4;69-04N;079-04W;;;41;; +CWRY;71;244;Milk River;;Canada;4;49-08N;112-03W;;;1050;; +CWRZ;71;429;Cap D'Espoir , Que.;;Canada;4;48-25N;064-19W;;;16;; +CWSA;71;600;Sable Island, N. S.;;Canada;4;43-56N;060-01W;43-56N;060-01W;4;4;P +CWSD;--;---;Summerside Automatic Weather Reporting System ;;Canada;4;46-26N;063-51W;;;24;; +CWSE;71;119;Edmonton Stony Plain Alta.;;Canada;4;53-32N;114-06W;53-33N;114-06W;766;766;P +CWSF;71;425;Cap Madeleine Meteorological Aeronautical Presentation System ;;Canada;4;49-15N;065-20W;;;29;; +CWSG;71;428;Cap Chat CS, Que.;;Canada;4;49-07N;066-39W;;;5;; +CWSH;71;247;Sousa Crk Avt ;;Canada;4;58-35N;118-30W;;;373;; +CWSI;71;527;Simcoe, Ont.;;Canada;4;42-51N;080-16W;;;241;;P +CWSK;71;207;Squamish Airport, B. C;;Canada;4;49-47N;123-10W;;;59;52;P +CWSL;71;218;Salmon Arm Automatic Weather Reporting System ;;Canada;;50-42N;119-17W;;;351;; +CWSO;--;---;Exeter Radar Site;;Canada;4;43-22N;081-23W;;;;; +CWSP;71;780;Sheringham Automatic Weather Reporting System ;;Canada;4;48-23N;123-55W;;;21;; +CWSQ;71;974;Aulvik National Park;;Canada;4;74-08N;119-59W;;;32;; +CWSR;71;133;Spiritwood West, Sask;;Canada;4;53-22N;107-33W;;;584;590;P +CWSS;71;607;St. Stephen, N. B.;;Canada;4;45-13N;067-15W;;;26;;P +CWST;71;713;La Pocatiere;;Canada;4;47-21N;070-02W;;;31;; +CWSV;--;---;Blue River Marine Aviation Reporting Station ;;Canada;4;52-06N;119-18W;;;683;; +CWSW;--;---;Sparwood / Elk Valley;;Canada;4;49-45N;114-53W;;;1138;; +CWSY;71;051;Sachs Harbour, N. W. T.;;Canada;4;72-00N;125-16W;72-00N;125-16W;88;88;P +CWSZ;71;442;Fisher Branch Marine Aviation Reporting Station ;;Canada;4;51-05N;097-33W;;;253;; +CWTA;71;612;Mc Tavish Automated Reporting Station ;;Canada;4;45-30N;073-35W;;;63;; +CWTB;71;901;Border, Que.;;Canada;4;55-20N;063-13W;;;479;479;P +CWTC;71;102;Ethelda Bay;;Canada;4;53-03N;129-41W;;;10;; +CWTD;71;490;Robertson Lake Automated Reporting Station ;;Canada;4;65-06N;102-26W;;;244;; +CWTE;71;166;Trout Lake;;Canada;4;60-26N;121-14W;;;498;; +CWTF;71;134;Beartooth Island;;Canada;4;59-13N;109-42W;;;238;; +CWTG;71;427;Pointe-Des-Monts , Que.;;Canada;4;49-19N;067-23W;;;5;; +CWTH;--;---;Tetsa River;;Canada;4;58-39N;124-14W;;;804;; +CWTI;--;---;Triple Island Light, B. C.;;Canada;4;54-18N;130-53W;;;21;; +CWTN;71;384;Cap Tourmente;;Canada;4;47-04N;070-48W;;;6;; +CWTO;71;638;Toronto Aes Hq ;;Canada;4;43-47N;079-28W;43-47N;079-28W;187;187; +CWTU;--;---;Tukialik Bay, Nfld.;;Canada;4;54-43N;058-21W;;;683;; +CWTY;71;724;Trois Rivieres;;Canada;4;46-21N;072-31W;;;6;; +CWTZ;--;---;Toronto Island;;Canada;4;43-38N;079-25W;;;77;; +CWUL;--;---;Quebec Fcst Office;;Canada;4;45-30N;073-41W;;;;; +CWUM;71;949;Faro, Y. T.;;Canada;4;62-14N;133-21W;;;717;717;P +CWUP;71;093;Cape Hooper, N. W. T.;;Canada;4;68-28N;066-48W;;;401;390;P +CWUR;71;398;Truro, N. S.;;Canada;4;45-22N;063-16W;;;40;;P +CWUS;71;768;Summerland Automatic Weather Reporting System ;;Canada;4;49-34N;119-39W;;;454;; +CWUT;71;150;Shoal Lake Airport Automated Reporting Station ;;Canada;4;50-27N;100-36W;;;561;; +CWUU;71;080;Mackar Inlet;;Canada;4;68-18N;085-40W;;;395;; +CWUW;71;092;Dewar Lakes, N. W. T.;;Canada;4;68-39N;071-10W;;;518;527;P +CWUX;71;388;La Baie , Que.;;Canada;4;48-18N;70-56W;;;135;; +CWUY;71;734;Rouyn;;Canada;4;48-15N;079-02W;;;318;; +CWVA;71;196;Bonavista, Nfld.;;Canada;4;48-40N;053-07W;;;25;27;P +CWVB;71;484;Bonilla Island Light;;Canada;4;53-30N;130-38W;;;16;; +CWVC;71;446;Swift Current Automatic Weather Reporting System ;;Canada;4;50-16N;107-44W;;;825;; +CWVD;71;096;Broughton Island;;Canada;4;67-32N;063-47W;;;584;; +CWVE;--;---;Valleyfield;;Canada;4;45-14N;074-06W;;;46;; +CWVF;--;---;Sand Heads CS, B. C.;;Canada;4;49-06N;123-18W;;;13;; +CWVH;71;052;Storm Hills , N. W. T.;;Canada;4;68-54N;133-56W;;;261;; +CWVI;71;458;Vegreville Automatic Weather Reporting System ;;Canada;4;53-37N;112-02W;;;639;; +CWVK;71;115;Vernon, B. C.;;Canada;4;50-14N;119-17W;;;555;556;P +CWVN;71;137;Val Marie Southeast, Sask;;Canada;4;49-04N;107-35W;;;785;785;P +CWVO;71;251;Vauxhall Cda;;Canada;4;50-03N;112-08W;;;779;; +CWVP;71;139;Cypress Hills Park;;Canada;4;49-39N;109-31W;;;1271;; +CWVQ;71;377;Ste Anne De Bell 1;;Canada;4;45-26N;073-56W;;;39;; +CWVT;71;077;Buffalo Narrows, Sask.;;Canada;4;55-50N;108-26W;;;434;434;P +CWVU;71;988;Brier Island, N. S.;;Canada;4;44-17-09N;066-20-48W;;;16;; +CWVV;--;---;Vic. Hartland Automatic Weather Reporting System;;Canada;4;48-32N;123-28W;;;154;; +CWVY;71;616;Villeroy Radar Site;;Canada;4;46-26N;071-56W;;;108;; +CWVZ;--;---;Ile Charron, Que.;;Canada;4;45-35N;073-30W;;;12;; +CWWA;71;784;W Vancouver Automatic Weather Reporting System ;;Canada;4;49-21N;123-11W;;;178;; +CWWB;71;437;Burlington Piers ;;Canada;4;43-18N;079-48W;;;77;; +CWWC;71;075;Collins Bay Automatic Weather Reporting System ;;Canada;4;58-11N;103-42W;;;492;; +CWWE;71;411;Western Head, N. S.;;Canada;4;43-59N;064-40W;;;9;;P +CWWF;71;452;Weyburn Automatic Weather Reporting System ;;Canada;4;49-42N;103-48W;;;589;; +CWWK;71;785;White Rock Automatic Weather Reporting System ;;Canada;4;49-01N;122-47W;;;15;; +CWWL;71;484;Bonilla Island Meteorological Aeronautical Presentation System ;;Canada;4;53-30N;130-38W;;;17;; +CWWM;--;---;Grant Automatic Weather Reporting System ;;Canada;4;82-30N;065-05W;;;1242;; +CWWN;71;434;Peawanuck Meteorological Aeronautical Presentation System ;;Canada;4;54-59N;085-26W;;;52;; +CWWO;71;252;Willow Creek;;Canada;4;53-23N;118-20W;;;1402;; +CWWP;71;444;Wasagaming, Man.;;Canada;4;50-39N;099-56W;;;626;627;P +CWWQ;71;945;Muncho Lake;;Canada;4;58-55N;125-46W;;;835;; +CWWS;71;445;George Island Meteorological Aeronautical Presentation System ;;Canada;4;52-48N;097-37W;;;223;; +CWWU;--;---;Ingenika Point;;Canada;4;56-48N;124-54W;;;680;; +CWWV;71;098;Killinek Meteorological Aeronautical Presentation System ;;Canada;4;60-25N;064-51W;;;31;; +CWWX;71;439;Cove Island Meteorological Aeronautical Presentation System ;;Canada;4;45-20N;081-44W;;;181;; +CWWZ;71;432;Port Weller, Ont.;;Canada;4;43-15N;079-13W;;;79;;P +CWXA;71;232;Bow Valley;;Canada;4;51-05N;115-04W;;;1298;; +CWXC;71;387;Onatchiway, Que.;;Canada;4;48-53N;071-02W;;;304;; +CWXH;71;562;Holberg, B. C.;;Canada;4;50-38N;128-07W;;;568;; +CWXI;--;---;Ferolle Point Meteorological Aeronautical Presentation System ;;Canada;4;51-01N;057-06W;;;8;; +CWXJ;--;---;Bull Arm Automatic Weather Reporting System;;Canada;4;47-49N;053-54W;;;119;; +CWXL;71;231;Bow Island;;Canada;4;49-38N;111-27W;;;838;; +CWXM;71;481;Helmcken Island Meteorological Aeronautical Presentation System ;;Canada;4;50-24N;125-52W;;;19;; +CWXO;--;---;Rowan Gorilla Iii;;Canada;4;43-53N;060-33W;;;44;; +CWXP;71;826;Pangnirtung;;Canada;4;66-09N;065-44W;;;23;; +CWXR;--;---;Croker River, N. W. T.;;Canada;4;69-16N;119-13W;;;69;; +CWXV;71;498;Back River Meteorological Aeronautical Presentation System ;;Canada;4;66-05N;096-30W;;;28;; +CWXW;71;183;Alexis River Meteorological Aeronautical Presentation System ;;Canada;4;52-39N;056-52W;;;43;; +CWYB;--;---;N. Bay Weather Office;;Canada;4;46-19N;079-27W;;;;; +CWYE;71;551;Outlook Pfra;;Canada;4;51-29N;107-03W;;;541;; +CWYG;--;---;Charlottetown;;Canada;4;46-14N;063-08W;;;50;; +CWYH;71;165;Rae Lakes;;Canada;4;64-07N;117-22W;;;231;; +CWYJ;71;783;Victoria University;;Canada;;48-27N;123-18W;;;60;; +CWYK;71;177;Cape Kiglapait, Nfld.;;Canada;4;57-08N;061-29W;;;834;; +CWYL;71;786;Yoho Park Automatic Weather Reporting System ;;Canada;;51-27N;116-20W;;;1615;; +CWYM;71;975;Cape Mercy;;Canada;4;64-57N;063-35W;;;583;; +CWYO;71;865;Wynyard, Sask.;;Canada;4;51-46N;104-12W;;;561;561;P +CWYY;71;215;Osoyoos Automatic Weather Reporting System ;;Canada;;49-02N;119-26W;;;283;; +CWZA;71;113;Agassiz Automated Reporting Station ;;Canada;;49-15N;121-46W;;;15;; +CWZB;71;197;Port-Aux-Basques, Nfld.;;Canada;4;47-34N;059-10W;47-34N;059-10W;40;40;P +CWZD;--;---;Scudder Point Meteorological Aeronautical Presentation System ;;Canada;4;52-27N;131-14W;;;5;; +CWZG;--;---;Banff Marine Aviation Reporting Station ;;Canada;4;51-12N;115-33W;;;1397;; +CWZL;--;---;Cumshewa Island Meteorological Aeronautical Presentation System ;;Canada;4;53-02N;131-36W;;;17;; +CWZM;--;---;Boat Bluff Light;;Canada;4;52-39N;128-31W;;;11;; +CWZN;71;408;Sagona Island Meteorological Aeronautical Presentation System ;;Canada;4;47-22N;055-48W;;;35;; +CWZO;--;---;Kelp Reefs, B. C.;;Canada;4;48-33N;123-14W;;;0;; +CWZQ;71;597;Grand Etang, N. S.;;Canada;4;46-33N;061-03W;;;13;; +CWZS;71;386;Amqui , Que.;;Canada;4;48-28N;067-26W;;;166;; +CWZT;71;550;Dauphin Coastal Station;;Canada;4;51-06N;100-03W;;;305;; +CWZV;71;048;Virginia Falls;;Canada;4;61-38N;125-48W;;;610;; +CWZW;--;---;Teslin Marine Aviation Reporting Station ;;Canada;4;60-10N;132-46W;;;705;; +CWZZ;71;804;Saglek Bay ;;Canada;4;58-20N;062-35W;;;483;; +CXBK;71;569;Bratts Lake, Sask.;;Canada;4;50-12N;104-42W;;;580;; +CXBO;71;578;Beauport CS, Que.;;Canada;4;46-50N;071-12W;;;10;; +CXBP;--;---;Confederation Bridge, Prince Edward Island ;;Canada;4;46-14N;063-44W;;;54;; +CXCH;--;---;Cheticamp, N. S.;;Canada;4;46-39N;060-57W;;;44;; +CXCK;71;039;Carmacks CS, Y. T.;;Canada;4;62-07N;136-11W;;;632;; +CXDE;71;503;Deline , N. W. T.;;Canada;4;65-13N;123-26W;;;213;; +CXDI;71;573;Delhi CS, Ont.;;Canada;4;42-52N;080-33W;;;232;; +CXDW;71;840;Deerwood RCS , Man.;;Canada;4;49-24N;098-19W;;;341;; +CXEC;71;157;Edmonton Municipal CR10 , Alta.;;Canada;4;53-34N;113-31W;;;671;; +CXEG;71;155;Edmonton International CS , Alta.;;Canada;4;53-18N;113-36W;;;715;; +CXGH;71;577;Gimli Harbour CS, Man.;;Canada;4;50-37-52N;096-58-56W;;;217;; +CXHF;71;391;High Falls , Que.;;Canada;4;45-50N;075-39W;;;190;; +CXKT;71;605;Kentville , N. S.;;Canada;4;45-04N;064-29W;;;49;; +CXLC;71;680;Lower Carp Lake , N. W. T.;;Canada;4;63-36N;113-52W;;;373;; +CXLL;71;682;Lindberg Landing , N. W. T.;;Canada;4;61-07N;122-51W;;;183;; +CXMD;71;564;Morden CDA CS , Man.;;Canada;4;49-11N;098-05W;;;298;; +CXMI;--;---;McNabs Island , N. S.;;Canada;4;44-36N;063-32W;;;15;; +CXMM;71;585;Fort McMurray CS, Alta.;;Canada;4;56-39N;111-13W;;;369;; +CXMY;--;---;Malay Falls , N. S.;;Canada;4;44-59N;062-29W;;;40;; +CXNM;71;604;North Mountain , N. S.;;Canada;4;46-49N;060-40W;;;439;; +CXOX;71;586;La Ronge , Sask.;;Canada;4;55-09N;105-16W;;;378;; +CXPV;71;593;Prairie River, Alta;;Canada;4;58-37-20N;111-40-21W;;;212;; +CXQA;71;583;Qavvik Lake, N. W. T.;;Canada;4;68-15-28N;122-06-13W;;;530;; +CXRH;71;588;Rocky Harbour CS, Nfld.;;Canada;4;49-34N;057-53W;;;68;; +CXSH;71;370;Shawinigan CS , Que.;;Canada;4;46-35N;072-35W;;;110;; +CXSR;71;571;Spirit River Auto Station, Alta;;Canada;4;55-41-43N;119-14-03W;;;1015;; +CXSW;71;587;St. John's West CDA CS, Nfld.;;Canada;4;47-30-56N;052-47-05W;;;114;; +CXTN;71;492;Tuktut Nogait , N. W. T.;;Canada;4;69-11N;122-21W;;;552;; +CXTP;71;589;Terra Nova National Park CS, Nfld.;;Canada;4;48-33-25N;053-58-28W;;;107;; +CXTV;71;683;Trail Valley , N. W. T.;;Canada;4;68-45N;133-30W;;;85;; +CXWN;71;579;Winnipeg The Forks, Man.;;Canada;4;49-53N;097-08W;;;230;; +CXXX;71;073;Cluff Lake , Sask.;;Canada;4;58-23N;109-30W;;;339;; +CXZU;71;256;Whitecourt , Alta.;;Canada;4;54-09N;115-47W;;;785;; +CYAD;--;---;La Grande Iii Supplementary Aviation Weather Reporting Station ;;Canada;4;53-34N;076-12W;;;233;; +CYAH;71;823;La Grande Iv, Que.;;Canada;4;53-45N;073-40W;53-45N;073-40W;306;307;P +CYAJ;71;969;Komakuk Beach Airport;;Canada;4;69-35N;140-11W;;;7;; +CYAM;71;260;Sault Ste Marie, Ont.;;Canada;4;46-29N;084-30W;;;187;192;P +CYAS;--;---;Kangirsuk Supplementary Aviation Weather Reporting Station ;;Canada;4;60-01N;070-00W;;;117;; +CYAW;71;601;Shearwater, N. S.;;Canada;4;44-38N;063-30W;44-38N;063-30W;51;51;P +CYAY;--;---;Saint Anthony Airport;;Canada;4;51-24N;056-05W;;;28;; +CYAZ;71;106;Tofino Airport;;Canada;4;49-05N;125-46W;;;24;; +CYBB;--;---;Pelly Bay Airport;;Canada;4;68-32N;089-49W;;;15;; +CYBC;71;187;Baie Comeau, Que.;;Canada;4;49-08N;068-12W;;;21;22;P +CYBD;71;206;Bella Coola Airport ;;Canada;4;52-23N;126-35W;;;35;; +CYBG;71;727;Bagotville, Que.;;Canada;4;48-20N;071-00W;48-20N;071-00W;159;159;P +CYBK;71;926;Baker Lake, N. W. T.;;Canada;4;64-18N;096-05W;64-18N;096-00W;18;18;P +CYBL;--;---;Campbell River Airport;;Canada;4;49-57N;125-16W;;;106;; +CYBN;--;---;Borden, Ont.;;Canada;4;44-15N;079-55W;;;223;; +CYBR;71;140;Brandon, Man.;;Canada;4;49-55N;099-57W;;;409;409;P +CYBU;71;130;Nipawin, Sask.;;Canada;4;53-20N;104-00W;;;372;372;P +CYBV;71;859;Berens River Airport;;Canada;4;52-21N;097-02W;;;222;; +CYBW;--;---;Calgary / Springbank;;Canada;4;51-06N;114-22W;;;1200;; +CYBX;71;808;Blanc Sablon, Que.;;Canada;4;51-27N;057-11W;;;30;36;P +CYCA;--;---;Cartwright Man ;;Canada;4;53-41N;057-02W;;;12;; +CYCB;71;925;Cambridge Bay, N. W. T.;;Canada;4;69-06N;105-07W;69-08N;105-04W;23;27;P +CYCD;71;890;Nanaimo Airport;;Canada;4;49-03N;123-52W;;;28;; +CYCG;71;884;Castlegar Airport;;Canada;4;49-18N;117-38W;49-18N;117-38W;495;495; +CYCH;71;717;Chatham Can-Mil ;;Canada;4;47-00N;065-27W;47-01N;065-27W;31;34; +CYCL;71;711;Charlo, N. B.;;Canada;4;47-59N;066-20W;;;38;38;P +CYCO;71;938;Coppermine, N. W. T.;;Canada;4;67-49N;115-08W;67-50N;115-07W;22;22;P +CYCP;71;883;Blue River, B. C.;;Canada;4;52-08N;119-18W;;;679;683;P +CYCQ;--;---;Chetwynd Airport;;Canada;4;55-42N;121-38W;;;609;; +CYCS;--;---;Chesterfield Inlet;;Canada;4;63-20N;090-43W;;;11;; +CYCT;71;873;Coronation Marine Aviation Reporting Station ;;Canada;4;52-04N;111-27W;;;791;; +CYCX;71;701;Gagetown Can-Mil ;;Canada;4;45-50N;066-26W;45-50N;066-26W;51;51; +CYCY;71;090;Clyde, N. W. T.;;Canada;4;70-29N;068-31W;70-27N;068-33W;25;26;P +CYDA;71;966;Dawson, Y. T.;;Canada;4;64-03N;139-08W;;;370;370;P +CYDB;--;---;Burwash Airport;;Canada;4;61-22N;139-02W;;;807;; +CYDC;71;886;Princeton Airport ;;Canada;4;49-28N;120-31W;;;700;; +CYDF;71;809;Deer Lake, Nfld.;;Canada;4;49-13N;057-24W;;;17;22;P +CYDM;--;---;Ross River Airport;;Canada;4;61-58N;132-26W;;;705;; +CYDN;71;855;Dauphin, Man.;;Canada;4;51-06N;100-03W;51-06N;100-03W;305;305;P +CYDP;71;902;Nain, Nfld;;Canada;4;56-33N;061-41W;;;6;7;P +CYDQ;--;---;Dawson Creek Airport ;;Canada;4;55-45N;120-11W;;;655;; +CYED;71;121;Edmonton Namao Alta.;;Canada;4;53-40N;113-28W;53-40N;113-28W;688;688;P +CYEG;71;123;Edmonton International, Alta.;;Canada;4;53-18N;113-35W;53-19N;113-35W;715;723;P +CYEK;--;---;Arviat Airport;;Canada;4;61-06N;094-04W;;;10;; +CYEL;--;---;Elliot Lake Supplementary Aviation Weather Reporting Station ;;Canada;4;46-21N;082-34W;;;329;; +CYEN;71;862;Estevan, Sask.;;Canada;4;49-13N;102-58W;;;572;581;P +CYET;71;881;Edson, Alta.;;Canada;4;53-35N;116-28W;;;921;927;P +CYEU;--;---;Eureka Man ;;Canada;4;80-00N;085-49W;;;78;; +CYEV;71;957;Inuvik, N. W. T.;;Canada;4;68-18N;133-29W;68-19N;133-32W;59;68;P +CYFB;71;909;Iqaluit, N. W. T.;;Canada;4;63-45N;068-33W;63-45N;068-33W;34;34;P +CYFC;71;700;Fredericton, N. B.;;Canada;4;45-52N;066-32W;;;17;20;P +CYFO;--;---;Flin Flon Airport;;Canada;4;54-41N;101-41W;;;304;; +CYFR;--;---;Fort Resolution;;Canada;4;61-11N;113-41W;;;164;; +CYFS;71;946;Fort Simpson, N. W. T.;;Canada;4;61-45N;121-14W;;;168;169;P +CYFT;--;---;Makkovik Airport;;Canada;4;55-05N;059-11W;;;71;; +CYGE;--;---;Golden Airport;;Canada;4;51-18N;116-59W;;;785;; +CYGH;--;---;Fort Good Hope Airport;;Canada;4;66-16N;128-37W;;;60;; +CYGK;71;620;Kingston, Ont.;;Canada;4;44-13N;076-36W;;;93;93;P +CYGL;71;827;La Grande Riviere, Que;;Canada;4;53-38N;077-42W;;;195;195;P +CYGM;71;856;Gimli Industrial, Man;;Canada;4;50-37N;097-02W;;;230;232;P +CYGP;71;188;Gaspe, Que.;;Canada;4;48-46N;064-29W;;;33;33;P +CYGQ;71;834;Geraldton, Ont.;;Canada;4;49-47N;086-56W;49-42N;086-57W;349;349;P +CYGR;71;709;Iles De La Madeleineque.;;Canada;4;47-25N;061-47W;;;10;10;P +CYGT;--;---;Igloolik Airport;;Canada;4;69-22N;081-49W;;;51;; +CYGV;71;313;Havre St Pierre ;;Canada;4;50-17N;063-37W;;;33;; +CYGW;71;905;Kuujjuarapik, Que.;;Canada;4;55-17N;077-46W;;;21;10;P +CYGX;71;912;Gillam, Man.;;Canada;4;56-21N;094-42W;;;145;145;P +CYHA;71;904;Quaqtaq Airport;;Canada;4;61-03N;069-38W;;;30;; +CYHB;71;868;Hudson Bay, Sask.;;Canada;4;52-49N;102-19W;;;357;358;P +CYHD;--;---;Dryden Airport;;Canada;4;49-50N;092-45W;;;413;; +CYHE;71;114;Hope, B. C.;;Canada;4;49-22N;121-29W;;;39;39;P +CYHH;--;---;Nemiscau Airport Supplementary Aviation Weather Reporting Station ;;Canada;4;51-42N;076-07W;;;244;; +CYHI;--;---;Holman Island Airport;;Canada;4;70-46N;117-48W;;;36;; +CYHK;--;---;Gjoa Haven Airport;;Canada;4;68-38N;095-51W;;;46;; +CYHM;71;263;Hamilton Airport ;;Canada;4;43-10N;079-56W;;;237;; +CYHU;71;371;Saint Hubert Airport ;;Canada;4;45-31N;073-25W;;;27;; +CYHY;71;935;Hay River, N. W. T.;;Canada;4;60-50N;115-47W;;;164;166;P +CYHZ;71;395;Halifax International Airport ;;Canada;4;44-53N;063-30W;;;145;; +CYID;--;---;Digby Airport Aviation Weather Reporting Station ;;Canada;4;44-33N;065-47W;;;152;; +CYIK;--;---;Ivujivik Airport Supplementary Aviation Weather Reporting Station ;;Canada;4;62-25N;077-57W;;;42;; +CYIO;71;095;Pond Inlet, N. W. T.;;Canada;4;72-42N;077-58W;;;59;55;P +CYIV;71;145;Island Lake, Man.;;Canada;4;53-51N;094-39W;53-52N;094-40W;237;237;P +CYJF;--;---;Fort Liard Airport;;Canada;4;60-14N;123-29W;;;215;; +CYJT;71;815;Stephenville, Nfld.;;Canada;4;48-32N;058-33W;48-32N;058-33W;8;26;P +CYKA;71;887;Kamloops, B. C.;;Canada;4;50-42N;120-27W;;;345;346;P +CYKD;--;---;Aklavik Airport;;Canada;4;68-13N;135-00W;;;7;; +CYKF;71;368;Waterloo Well ;;Canada;4;43-28N;080-23W;;;317;; +CYKG;--;---;Kangiqsujuaq Supplementary Aviation Weather Reporting Station ;;Canada;4;61-35N;071-56W;;;151;; +CYKJ;71;488;Key Lake;;Canada;4;57-15N;105-37W;;;509;; +CYKL;71;828;Schefferville, Que.;;Canada;4;54-48N;066-48W;54-48N;066-49W;521;518;P +CYKO;--;---;Akulivik Airport;;Canada;4;60-49N;078-09W;;;20;; +CYKQ;--;---;Waskaganish Airport;;Canada;4;51-29N;078-45W;;;23;; +CYKY;71;129;Kindersley, Sask.;;Canada;4;51-31N;109-10W;51-31N;109-11W;694;694;P +CYKZ;--;---;Toronto Buttonville;;Canada;4;43-52N;079-22W;;;198;; +CYLA;--;---;Aupaluk, Que.;;Canada;4;59-17-48N;069-35-59W;;;35;; +CYLC;--;---;Kimmirut A Nwt;;Canada;4;62-51N;069-53W;;;53;; +CYLD;--;---;Chapleau, Ont.;;Canada;4;47-49N;083-21W;;;447;; +CYLJ;71;125;Meadow Lake, Sask.;;Canada;4;54-08N;108-31W;;;480;480;P +CYLK;--;---;Lutsel KE, N. W. T.;;Canada;4;62-25N;110-40W;;;179;; +CYLL;71;871;Lloydminister, Alta.;;Canada;4;53-19N;110-04W;;;665;669;P +CYLT;--;---;Alert Airport;;Canada;4;82-31N;062-17W;;;31;; +CYLU;--;---;Kangiksualujjuaq A;;Canada;4;58-43N;065-59W;;;60;; +CYLW;71;203;Kelowna Airport;;Canada;4;49-58N;119-23W;49-58N;119-23W;430;430; +CYMA;71;965;Mayo Airport;;Canada;4;63-37N;135-52W;;;504;; +CYMD;71;072;Mould Bay, N. W. T.;;Canada;4;76-14N;119-20W;76-15N;119-21W;15;12;P +CYMH;--;---;Mary's Harbour ;;Canada;4;52-18N;055-51W;;;11;; +CYMJ;71;864;Moose Jaw, Sask.;;Canada;4;50-20N;105-33W;;;577;577;P +CYML;--;---;Charlevoix Airport;;Canada;4;47-36N;070-14W;;;298;; +CYMM;71;932;Fort Mcmurray, Alta.;;Canada;4;56-39N;111-13W;56-39N;111-13W;369;369;P +CYMO;71;836;Moosonee, Ont.;;Canada;4;51-16N;080-39W;51-16N;080-39W;10;10;P +CYMT;71;822;Chibougamau-Chapais, Que;;Canada;4;49-46N;074-32W;;;388;387;P +CYMU;--;---;Umiujaq;;Canada;4;56-32N;076-31W;;;71;; +CYMX;--;---;Montreal / Mirabel;;Canada;4;45-41N;074-02W;;;82;; +CYNA;71;813;Natashquan, Que.;;Canada;4;50-11N;061-49W;;;7;11;P +CYNC;--;---;Aeroport de Wemindji, Que.;;Canada;4;53-00-39N;078-49-49W;;;15;; +CYND;--;---;Gatineau Airport;;Canada;4;45-31N;075-34W;;;64;; +CYNE;71;141;Norway House, Man.;;Canada;4;53-58N;097-50W;;;223;223;P +CYNM;71;821;Matagami, Que.;;Canada;4;49-46N;077-49W;;;281;281;P +CYOA;--;---;Ekati, N. W. T.;;Canada;4;64-42N;110-37W;;;469;; +CYOC;--;---;Old Crow Airport;;Canada;4;67-34N;139-49W;;;251;; +CYOD;71;120;Cold Lake, Alta.;;Canada;4;54-25N;110-17W;54-25N;110-17W;541;541;P +CYOJ;71;066;High Level, Alta;;Canada;4;58-37N;117-10W;;;338;338;P +CYOW;71;628;Ottawa Int'L. Ont.;;Canada;4;45-19N;075-40W;45-19N;075-40W;116;114;P +CYOY;71;716;Valcartier Airport;;Canada;4;46-54N;071-30W;46-54N;071-29W;168;178; +CYPA;71;869;Prince Albert, Sask.;;Canada;4;53-13N;105-41W;53-13N;105-41W;428;428;P +CYPC;--;---;Paulatuk Airport;;Canada;4;69-21N;124-02W;;;6;; +CYPD;--;---;Port Hawkesbury;;Canada;4;45-40N;061-23W;;;114;; +CYPE;71;068;Peace River, Alta.;;Canada;4;56-14N;117-26W;;;571;571;P +CYPG;71;851;Portage Southport A;;Canada;4;49-54N;098-16W;;098-16W;269;259; +CYPH;--;---;Inukjuak Airport Supplementary Aviation Weather Reporting Station ;;Canada;4;58-28N;078-05W;;;25;; +CYPL;--;---;Pickle Lake Man ;;Canada;4;51-27N;090-12W;;;386;; +CYPN;--;---;Port Menier Man ;;Canada;4;49-50N;064-17W;;;51;; +CYPQ;71;629;Peterborough Airport ;;Canada;4;44-14N;078-22W;;;191;; +CYPR;71;898;Prince Rupert, B. C.;;Canada;4;54-18N;130-26W;;;34;34;P +CYPW;71;208;Powell River Airport ;;Canada;4;49-50N;124-30W;;;130;; +CYPX;--;---;Povungnituq;;Canada;4;60-03N;077-17W;;;23;; +CYPY;71;933;Fort Chipewyan, Alta.;;Canada;4;58-46N;111-07W;;;232;232;P +CYPZ;71;952;Burns Lake ;;Canada;4;54-23N;125-57W;;;713;; +CYQA;71;630;Muskoka, Ont.;;Canada;4;44-58N;079-18W;;;280;282;P +CYQB;71;714;Quebec, Que;;Canada;4;46-48N;071-23W;46-48N;071-23W;70;74;P +CYQD;71;867;The Pas, Man.;;Canada;4;53-58N;101-06W;53-58N;101-06W;271;271;P +CYQF;71;878;Red Deer, Alta.;;Canada;4;52-11N;113-54W;52-11N;113-54W;905;905;P +CYQG;71;538;Windsor, Ont.;;Canada;4;42-16N;082-58W;;;190;190;P +CYQH;71;953;Watson Lake, Y. T.;;Canada;4;60-07N;128-49W;60-07N;128-49W;690;690;P +CYQI;71;603;Yarmouth, N. S.;;Canada;4;43-50N;066-05W;43-52N;066-06W;43;43;P +CYQK;71;850;Kenora, Ont.;;Canada;4;49-47N;094-22W;;;407;410;P +CYQL;71;874;Lethbridge, Alta.;;Canada;4;49-38N;112-48W;49-38N;112-48W;929;929;P +CYQM;71;705;Moncton, N. B.;;Canada;4;46-07N;064-41W;;;71;71;P +CYQQ;71;893;Comox, B. C.;;Canada;4;49-43N;124-54W;49-43N;124-54W;24;24;P +CYQR;71;863;Regina, Sask.;;Canada;4;50-26N;104-40W;50-26N;104-40W;577;577;P +CYQT;71;749;Thunder Bay, Ont.;;Canada;4;48-22N;089-19W;;;199;199;P +CYQU;71;940;Grande Prairie, Alta.;;Canada;4;55-11N;118-53W;;;666;669;P +CYQV;71;138;Yorkton, Sask.;;Canada;4;51-16N;102-28W;;;498;498;P +CYQW;71;876;North Battleford, Sask.;;Canada;4;52-46N;108-15W;;;548;548;P +CYQX;71;803;Gander Int. Airport, Nfld.;;Canada;4;48-57N;054-34W;48-57N;054-34W;151;151;P +CYQY;71;707;Sydney, N. S.;;Canada;4;46-10N;060-03W;46-10N;060-03W;56;62;P +CYQZ;71;103;Quesnel Airport;;Canada;4;53-02N;122-31W;;;545;; +CYRB;71;924;Resolute, N. W. T.;;Canada;4;74-43N;094-59W;74-42N;094-58W;67;67;P +CYRJ;71;728;Roberval, Que.;;Canada;4;48-31N;072-16W;;;179;179;P +CYRL;71;854;Red Lake, Ont.;;Canada;4;51-04N;093-48W;;;375;383;P +CYRM;71;928;Rocky Mountain House, Alta;;Canada;4;52-26N;114-55W;52-23N;114-55W;988;988;P +CYRT;71;083;Rankin Inlet, N. W. T.;;Canada;4;62-49N;092-07W;;;31;31;P +CYRV;71;882;Revelstoke, B. C.;;Canada;4;50-58N;118-11W;;;443;443;P +CYSA;--;---;Sable Island Airport ;;Canada;4;43-56N;060-00W;;;4;; +CYSB;71;730;Sudbury, Ont.;;Canada;4;46-37N;080-48W;;;348;348;P +CYSC;71;610;Sherbrooke, Que.;;Canada;4;45-24N;071-53W;;;170;;P +CYSD;71;128;Suffield Airport;;Canada;4;50-16N;111-11W;;;770;; +CYSF;71;132;Stony Rapids Airport;;Canada;4;59-15N;105-50W;;;250;; +CYSJ;71;609;Saint John, N. B.;;Canada;4;45-20N;065-53W;;;103;109;P +CYSK;--;---;Sanikiluaq Airport;;Canada;4;56-32N;079-15W;;;32;; +CYSL;71;703;Saint Leonard Airport ;;Canada;4;47-09N;067-50W;;;241;; +CYSM;71;934;Fort Smith, N. W. T.;;Canada;4;60-01N;111-57W;60-02N;111-56W;203;205;P +CYSN;--;---;Saint Catharines Airport;;Canada;4;43-12N;079-10W;;;98;; +CYSR;--;---;Nanisivik Airport ;;Canada;4;72-59N;084-38W;;;649;; +CYSU;71;702;Summerside Can-Mil ;;Canada;4;46-26N;063-50W;46-26N;063-50W;24;24; +CYSY;--;---;Sachs Harbour Airport;;Canada;4;72-00N;125-17W;;;86;; +CYTE;71;910;Cape Dorset, N. W. T.;;Canada;4;64-13N;076-32W;;;51;50;P +CYTH;71;079;Thompson Weather Office, Man;;Canada;4;55-48N;097-51W;55-48N;097-52W;204;222;P +CYTJ;--;---;Terrace Bay Supplementary Aviation Weather Reporting Station ;;Canada;4;48-49N;087-06W;;;287;; +CYTL;71;848;Big Trout Lake;;Canada;4;53-50N;089-52W;53-50N;089-52W;224;224; +CYTN;--;---;Trenton Municipal A, N. S.;;Canada;4;45-36-41N;062-37-19W;;;97;; +CYTQ;--;---;Tasiujaq A;;Canada;4;58-40N;069-57W;;;31;; +CYTR;71;621;Trenton, Ont.;;Canada;4;44-07N;077-32W;44-07N;077-32W;85;86;P +CYTS;71;739;Timmins, Ont.;;Canada;4;48-34N;081-22W;;;295;295;P +CYTZ;71;265;Toronto Island Airport Automated Reporting Station;;Canada;4;43-38N;079-24W;;;77;; +CYUA;71;968;Shingle Point, Y. T.;;Canada;4;68-57N;137-13W;;;56;38;P +CYUB;71;954;Tuktoyaktuk ;;Canada;4;69-27N;133-01W;69-27N;133-01W;5;5; +CYUI;71;939;Cape Young Airport;;Canada;4;68-56N;116-55W;;;16;; +CYUJ;71;937;Lady Franklin Point, N. W. T.;;Canada;4;68-30N;113-13W;;;21;16;P +CYUK;71;929;Byron Bay Airport;;Canada;4;68-45N;109-04W;;;92;; +CYUL;71;627;Montreal / Pierre Elliot Trudeau International Airport, Que;;Canada;4;45-28N;073-45W;45-28N;073-45W;31;36;P +CYUQ;71;071;Jenny Lind Island Airport;;Canada;4;68-39N;101-44W;;;18;; +CYUS;71;911;Shepherd Bay, N. W. T.;;Canada;4;68-49N;093-26W;;;51;42;P +CYUT;--;---;Repulse Bay Airport;;Canada;4;66-32N;086-15W;;;24;; +CYUV;--;---;Longstaff Blf Airport;;Canada;4;68-56N;075-17W;;;14;; +CYUX;71;081;Hall Beach, N. W. T.;;Canada;4;68-47N;081-15W;68-46N;081-13W;8;8;P +CYUY;--;---;Rouyn Airport;;Canada;4;48-12N;078-50W;;;301;; +CYVC;71;922;La Ronge, Sask;;Canada;4;55-09N;105-16W;;;375;379;P +CYVM;--;---;Broughton Island Airport;;Canada;4;67-33N;064-02W;;;6;; +CYVO;71;725;Val D'Or, Que.;;Canada;4;48-04N;077-47W;;;337;337;P +CYVP;71;906;Kuujjuaq, Que.;;Canada;4;58-06N;068-25W;58-06N;068-25W;37;37;P +CYVQ;71;043;Norman Wells, N. W. T.;;Canada;4;65-17N;126-48W;65-17N;126-45W;67;74;P +CYVR;71;892;Vancouver International Air-Port, B. C.;;Canada;4;49-11N;123-10W;49-11N;123-10W;3;2;P +CYVT;--;---;Buffalo Narrows Man;;Canada;4;55-50N;108-27W;;;434;; +CYVV;71;633;Wiarton, Ont.;;Canada;4;44-45N;081-06W;;;222;222;P +CYWA;71;625;Petawawa, Ont.;;Canada;4;45-57N;077-19W;45-57N;077-19W;130;130;P +CYWG;71;852;Winnipeg Int. Airportman.;;Canada;4;49-54N;097-14W;49-54N;097-14W;239;239;P +CYWH;--;---;Victoria Harbour;;Canada;4;48-25N;123-20W;;;5;; +CYWJ;--;---;Fort Franklin Airport;;Canada;4;65-12N;123-26W;;;176;; +CYWK;71;825;Wabush Lake, Nfld.;;Canada;4;52-56N;066-52W;;;551;551;P +CYWL;71;104;Williams Lake, B. C.;;Canada;4;52-11N;122-03W;;;940;940;P +CYWO;--;---;Lupin Airport Supplementary Aviation Weather Reporting Station ;;Canada;4;65-46N;111-15W;;;494;; +CYWV;--;---;Wainwright Airport;;Canada;4;52-48N;110-53W;;;662;; +CYWY;--;---;Wrigley Airport;;Canada;4;63-13N;123-26W;;;150;; +CYXC;71;880;Cranbrook, B. C.;;Canada;4;49-37N;115-47W;;;939;939;P +CYXD;71;879;Edmonton Municipal Alta.;;Canada;4;53-34N;113-31W;53-34N;113-31W;671;671;P +CYXE;71;866;Saskatoon, Sask.;;Canada;4;52-10N;106-41W;52-10N;106-41W;501;504;P +CYXH;71;872;Medicine Hat, Alta.;;Canada;4;50-01N;110-43W;;;717;717;P +CYXJ;71;943;Fort St John, B. C.;;Canada;4;56-14N;120-44W;;;695;695;P +CYXL;71;842;Sioux Lookout, Ont.;;Canada;4;50-07N;091-54W;;;389;390;P +CYXN;--;---;Whale Cove Airport;;Canada;4;62-14N;092-36W;;;20;; +CYXP;--;---;Pangnirtung Airport;;Canada;4;66-09N;065-43W;;;23;; +CYXQ;--;---;Beaver Creek Airport;;Canada;4;62-25N;140-52W;;;649;; +CYXR;71;735;Earlton, Ont.;;Canada;4;47-42N;079-51W;;;243;243;P +CYXS;71;896;Prince George, B. C.;;Canada;4;53-53N;122-41W;53-53N;122-40W;691;691;P +CYXT;71;951;Terrace, B. C.;;Canada;4;54-28N;128-35W;;;217;217;P +CYXU;71;623;London, Ont.;;Canada;4;43-02N;081-09W;;;278;278;P +CYXX;71;108;Abbotsford, B. C.;;Canada;4;49-02N;122-22W;;;54;58;P +CYXY;71;964;Whitehorse, Y. T.;;Canada;4;60-43N;135-04W;60-43N;135-04W;703;703;P +CYXZ;71;738;Wawa, Ont.;;Canada;4;47-58N;084-47W;;;287;287;P +CYYB;71;731;North Bay, Ont.;;Canada;4;46-21N;079-26W;46-22N;079-25W;358;371;P +CYYC;71;877;Calgary International, Alta.;;Canada;4;51-07N;114-01W;51-07N;114-01W;1077;1084;P +CYYD;71;950;Smithers, B. C.;;Canada;4;54-49N;127-11W;;;523;523;P +CYYE;71;945;Fort Nelson, B. C.;;Canada;4;58-50N;122-35W;58-50N;122-36W;382;382;P +CYYF;71;889;Penticton, B. C.;;Canada;4;49-28N;119-36W;;;344;344;P +CYYG;71;706;Charlottetown, P. E. I.;;Canada;4;46-17N;063-08W;;;48;54;P +CYYH;--;---;Spence Bay Airport ;;Canada;4;69-33N;093-35W;;;28;; +CYYJ;71;799;Victoria Int. Airport, B. C.;;Canada;4;48-39N;123-26W;48-39N;123-26W;20;19;P +CYYL;71;078;Lynn Lake, Man.;;Canada;4;56-52N;101-05W;56-52N;101-05W;357;357;P +CYYN;71;870;Swift Current, Sask.;;Canada;4;50-17N;107-41W;;;818;818;P +CYYQ;71;913;Churchill, Man.;;Canada;4;58-44N;094-04W;58-44N;094-05W;28;29;P +CYYR;71;816;Goose, Nfld.;;Canada;4;53-19N;060-25W;53-18N;060-22W;46;49;P +CYYT;71;801;St. John's, Nfld;;Canada;4;47-37N;052-44W;47-40N;052-45W;134;140;P +CYYU;71;831;Kapuskasing, Ont.;;Canada;4;49-25N;082-28W;;;227;227;P +CYYW;71;841;Armstrong, Ont.;;Canada;4;50-18N;089-02W;;;351;351;P +CYYY;71;718;Mont Joli, Que.;;Canada;4;48-36N;068-13W;;;48;52;P +CYYZ;71;624;Toronto Pearson Int'L. Ont.;;Canada;4;43-40N;079-38W;43-41N;079-38W;173;173;P +CYZE;71;733;Gore Bay, Ont.;;Canada;4;45-53N;082-34W;;;193;193;P +CYZF;71;936;Yellowknife, N. W. T.;;Canada;4;62-28N;114-27W;;;205;206;P +CYZG;--;---;Salliut Airport Supplementary Aviation Weather Reporting Station ;;Canada;4;62-11N;075-40W;;;226;; +CYZH;71;069;Slave Lake, Alta;;Canada;4;55-18N;114-47W;55-18N;114-47W;581;581;P +CYZP;71;101;Sandspit, B. C.;;Canada;4;53-15N;131-49W;;;6;6;P +CYZR;71;634;Sarnia Airport ;;Canada;4;43-00N;082-19W;;;181;; +CYZS;71;915;Coral Harbour, N. W. T.;;Canada;4;64-12N;083-22W;64-12N;083-22W;64;64;P +CYZT;71;109;Port Hardy, B. C.;;Canada;4;50-41N;127-22W;50-41N;127-22W;22;22;P +CYZU;71;930;Whitecourt, Alta.;;Canada;4;54-09N;115-47W;;;783;782;P +CYZV;71;811;Sept-Iles, Que.;;Canada;4;50-13N;066-16W;50-13N;066-15W;55;55;P +CYZW;71;045;Teslin, Y. T.;;Canada;4;60-10N;132-44W;;;711;705;P +CYZX;71;397;Greenwood, N. S.;;Canada;4;44-59N;064-55W;;;28;28;P +CYZY;71;944;Mackenzie, B. C.;;Canada;4;55-18N;123-08W;;;695;690;P +CZAG;--;---;La Grande Iv Remote Environment Automatic Data Acquisition Concept;;Canada;4;53-45N;073-41W;;;307;; +CZBF;--;---;Bathurst Airport Aviation Weather Reporting Station ;;Canada;4;47-38N;065-45W;;;59;; +CZCP;--;---;Cape Parry, N. W. T.;;Canada;4;70-06N;124-43W;;;87;; +CZDI;71;180;Churchill Falls;;Canada;4;53-34N;064-06W;;;440;; +CZEM;--;---;Eastmain River Airport;;Canada;4;52-14N;078-31W;;;7;; +CZFA;--;---;Faro Airport;;Canada;4;62-12N;133-22W;;;717;; +CZFM;--;---;Fort Mcpherson Airport;;Canada;4;67-24N;134-51W;;;43;; +CZFN;--;---;Fort Norman Airport;;Canada;4;64-55N;125-34W;;;98;; +CZNB;--;---;North Bay Remote Environment Automatic Data Acquisition Concept ;;Canada;4;46-22N;079-25W;;;364;; +CZOC;71;044;Old Crow Automatic Weather Reporting System ;;Canada;4;67-34N;139-50W;;;251;; +CZPC;--;---;Pincher Creek Airport;;Canada;4;49-31N;113-59W;;;1190;; +CZPK;71;984;Paulatuk Automated Reporting Station ;;Canada;4;69-21N;124-03W;;;6;; +CZST;71;955;Stewart Airport;;Canada;4;55-56N;129-59W;;;7;; +CZUB;71;985;Tuktoyaktuk Automated Reporting Station ;;Canada;4;69-26N;133-02W;;;6;; +CZUE;71;948;Cape Parry, N. W. T.;;Canada;4;70-10N;124-42W;;;17;17;P +CZUM;71;182;Churchill Falls, Nfld.;;Canada;4;53-33N;064-06W;;;440;440;P +CZVL;--;---;Edmonton / Villeneuve;;Canada;4;53-40N;113-52W;;;686;; +CZWN;--;---;Wainwright Automatic Weather Reporting System ;;Canada;4;52-49N;111-05W;;;684;; +DAAD;60;515;Bou-Saada;;Algeria;1;35-20N;004-12E;;;461;461;P +DAAE;60;402;Bejaia;;Algeria;1;36-43N;005-04E;36-43N;005-04E;2;2;P +DAAF;--;---;Aoulef ;;Algeria;1;26-58N;001-05E;;;309;; +DAAG;60;390;Dar-El-Beida;;Algeria;1;36-43N;003-15E;36-43N;003-15E;25;25;P +DAAJ;60;670;Djanet;;Algeria;1;24-33N;009-28E;24-33N;009-28E;1054;1054;P +DAAP;60;640;Illizi;;Algeria;1;26-30N;008-25E;26-30N;008-25E;558;558;P +DAAS;60;445;Setif;;Algeria;1;36-11N;005-25E;36-11N;005-25E;1038;1081;P +DAAT;--;---;Tamanrasset / Aguenna;;Algeria;1;22-49N;005-28E;;;1377;; +DAAV;60;351;Jijel Achouat;;Algeria;1;36-53N;005-49E;;;2;10;P +DAAY;60;549;Mecheria;;Algeria;1;34-56N;000-26W;34-56N;000-26W;1149;1149;P +DABB;60;360;Annaba;;Algeria;1;36-50N;007-49E;36-50N;007-49E;4;4;P +DABC;60;419;Constantine;;Algeria;1;36-17N;006-37E;36-17N;006-37E;694;694;P +DABP;60;355;Skikda;;Algeria;1;36-56N;006-57E;36-56N;006-57E;7;7;P +DABS;60;475;Tebessa;;Algeria;1;35-29N;008-08E;35-29N;008-08E;813;813;P +DABT;60;468;Batna;;Algeria;1;35-33N;006-11E;;;1052;1052;P +DAFH;--;---;Tilrempt/Hassi R'mel;;Algeria;1;32-55-48N;003-18-44E;;;774;; +DAFI;60;535;Djelfa;;Algeria;1;34-41N;003-15E;34-41N;003-15E;1144;1144;P +DAOB;60;511;Tiaret;;Algeria;1;35-15N;001-26E;;;1127;1127;P +DAOF;60;656;Tindouf;;Algeria;1;27-40N;008-08W;27-40N;008-08W;431;431;P +DAOI;60;425;Chlef;;Algeria;1;36-13N;001-20E;36-13N;001-20E;143;143;P +DAOL;--;---;Oran/Tafaraoui;;Algeria;1;35-32-33N;000-31-56W;;;112;; +DAON;60;531;Tlemcen Zenata ;;Algeria;1;35-01N;001-28W;;;247;247;P +DAOO;60;490;Oran / Es Senia;;Algeria;1;35-38N;000-36W;35-38N;000-36W;90;90;P +DAOR;60;571;Bechar;;Algeria;1;31-37N;002-14W;31-37N;002-14W;773;773;P +DAOV;60;507;Mascara-Ghriss;;Algeria;1;35-12N;000-08E;;;514;; +DATG;--;---;In Guezzam;;Algeria;1;19-34N;005-45E;;;399;; +DATM;--;---;Bordj Mokhtar;;Algeria;1;21-22-30N;000-55-26E;;;396;; +DAUA;60;620;Adrar;;Algeria;1;27-53N;000-17W;27-53N;000-17W;263;263;P +DAUB;60;525;Biskra;;Algeria;1;34-48N;005-44E;34-48N;005-44E;87;87;P +DAUE;60;590;El Golea;;Algeria;1;30-34N;002-52E;30-34N;002-52E;397;397;P +DAUG;60;566;Ghardaia;;Algeria;1;32-23N;003-49E;32-23N;003-49E;450;450;P +DAUH;60;581;Hassi-Messaoud;;Algeria;1;31-40N;006-09E;;;142;142;P +DAUI;--;---;In Salah North;;Algeria;1;27-15N;002-31E;;;269;; +DAUK;60;555;Touggourt;;Algeria;1;33-07N;006-08E;33-07N;006-08E;85;85;P +DAUL;60;545;Laghouat;;Algeria;1;33-46N;002-56E;33-46N;002-56E;765;765;P +DAUO;60;559;El Oued;;Algeria;1;33-30N;006-07E;33-30N;006-47E;63;63;P +DAUT;60;607;Timimoun;;Algeria;1;29-15N;000-17E;29-15N;000-17E;312;312;P +DAUU;60;580;Ouargla;;Algeria;1;31-55N;005-24E;31-55N;005-24E;141;141;P +DAUZ;60;611;In Amenas;;Algeria;1;28-03N;009-38E;28-03N;009-38E;562;562;P +DBBB;65;344;Cotonou;;Benin;1;06-21N;002-23E;06-21N;002-23E;5;9;P +DBBC;65;338;Bohicon;;Benin;1;07-10N;002-04E;;;166;167;P +DBBK;65;306;Kandi;;Benin;1;11-08N;002-56E;11-08N;002-56E;290;292;P +DBBN;65;319;Natitingou;;Benin;1;10-19N;001-23E;;;460;461;P +DBBP;65;330;Parakou;;Benin;1;09-21N;002-37E;09-21N;002-37E;392;393;P +DBBS;65;335;Save;;Benin;1;08-02N;002-28E;;;199;200;P +DFCC;65;502;Ouahigouya;;Burkina Faso;1;13-34N;002-25W;;;337;336; +DFCO;65;516;Boromo;;Burkina Faso;1;11-45N;002-56W;;;270;271; +DFCP;65;518;Po;;Burkina Faso;1;11-09N;001-09W;;;320;322; +DFEE;65;501;Dori;;Burkina Faso;1;14-02N;000-02W;14-02N;000-02W;276;277; +DFEF;65;507;Fada N'Gourma;;Burkina Faso;1;12-02N;000-22E;;;308;309; +DFFD;65;503;Ouagadougou;;Burkina Faso;1;12-21N;001-31W;12-21N;001-31W;316;306;P +DFOD;65;505;Dedougou;;Burkina Faso;1;12-28N;003-29W;;;300;300; +DFOG;65;522;Gaoua;;Burkina Faso;1;10-20N;003-11W;;;333;335; +DFOO;65;510;Bobo-Dioulasso;;Burkina Faso;1;11-10N;004-19W;11-10N;004-19W;460;460;P +DGAA;65;472;Accra;;Ghana;1;05-36N;000-10W;05-36N;000-10W;68;69;P +DGAD;65;475;Ada;;Ghana;1;05-47N;000-38E;;;5;7;P +DGAH;65;453;Ho;;Ghana;1;06-36N;000-28E;;;158;158;P +DGAK;65;460;Akuse;;Ghana;1;06-06N;000-07E;;;17;19;P +DGAS;65;469;Saltpond;;Ghana;1;05-12N;001-04W;;;44;47;P +DGAT;65;473;Tema;;Ghana;1;05-37N;00-00E;;;14;18; +DGKA;65;457;Akim Oda;;Ghana;1;05-56N;000-59W;;;139;140;P +DGKK;65;459;Koforidua;;Ghana;1;06-05N;000-15W;;;166;167;P +DGLB;65;416;Bole;;Ghana;1;09-02N;002-29W;09-02N;002-29W;299;301;P +DGLE;65;418;Tamale;;Ghana;1;09-30N;000-51W;09-30N;000-51W;168;173;P +DGLN;65;401;Navrongo;;Ghana;1;10-54N;001-06W;;;201;203;P +DGLW;65;404;Wa;;Ghana;1;10-03N;002-30W;;;323;323;P +DGLY;65;420;Yendi;;Ghana;1;09-27N;000-01W;;;195;197;P +DGSB;65;445;Sefwi Bekwai;;Ghana;1;06-12N;002-20W;;;171;172;P +DGSI;65;442;Kumasi;;Ghana;1;06-43N;001-36W;06-43N;001-36W;287;293;P +DGSN;65;439;Sunyani;;Ghana;1;07-20N;002-20W;;;309;312;P +DGSW;65;432;Wenchi;;Ghana;1;07-45N;002-06W;;;339;340;P +DGTK;65;467;Takoradi;;Ghana;1;04-53N;001-46W;04-53N;001-46W;5;9;P +DGTX;65;465;Axim;;Ghana;1;04-52N;002-14W;;;38;40;P +DIAD;65;585;Adiake;;Cote d'Ivoire;1;05-18N;003-18W;;;33;39;P +DIAP;65;578;Abidjan;;Cote d'Ivoire;1;05-15N;003-56W;05-15N;003-56W;7;8;P +DIBK;65;555;Bouake;;Cote d'Ivoire;1;07-44N;005-04W;07-44N;005-04W;376;376;P +DIBU;65;545;Bondoukou;;Cote d'Ivoire;1;08-03N;002-47W;;;369;370;P +DIDK;65;562;Dimbokro;;Cote d'Ivoire;1;06-39N;004-42W;;;92;92;P +DIDL;65;560;Daloa;;Cote d'Ivoire;1;06-52N;006-28W;;;276;277;P +DIGA;65;557;Gagnoa;;Cote d'Ivoire;1;06-08N;005-57W;;;205;210;P +DIKO;65;536;Korhogo;;Cote d'Ivoire;1;09-25N;005-37W;09-25N;005-37W;381;381;P +DIMN;65;548;Man;;Cote d'Ivoire;1;07-23N;007-31W;07-23N;007-31W;339;340;P +DIOD;65;528;Odienne;;Cote d'Ivoire;1;09-30N;007-34W;09-30N;007-34W;434;421;P +DISP;65;594;San Pedro;;Cote d'Ivoire;1;04-45N;006-39W;;;30;30;P +DISS;65;599;Sassandra;;Cote d'Ivoire;1;04-57N;006-05W;;;62;66;P +DITB;65;592;Tabou;;Cote d'Ivoire;1;04-25N;007-22W;04-25N;007-22W;21;21;P +DIYO;65;563;Yamoussoukro;;Cote d'Ivoire;1;06-54N;005-21W;;;196;213;P +DNBI;65;112;Bida;;Nigeria;1;09-06N;006-01E;;;137;143;P +DNCA;65;264;Calabar;;Nigeria;1;04-58N;008-21E;;;63;63;P +DNEN;65;257;Enugu;;Nigeria;1;06-28N;007-33E;;;137;; +DNGU;65;015;Gusau;;Nigeria;1;12-10N;006-42E;;;463;469;P +DNIB;65;208;Ibadan;;Nigeria;1;07-26N;003-54E;07-26N;003-54E;234;228;P +DNIL;65;101;Ilorin;;Nigeria;1;08-29N;004-35E;;;308;305;P +DNJO;65;134;Jos;;Nigeria;1;09-52N;008-54E;;;1295;1285;P +DNKA;65;019;Kaduna;;Nigeria;1;10-36N;007-27E;;;645;642;P +DNKN;65;046;Kano;;Nigeria;1;12-03N;008-32E;12-03N;008-32E;476;481;P +DNMA;65;082;Maiduguri;;Nigeria;1;11-51N;013-05E;;;354;; +DNMK;65;271;Makurdi;;Nigeria;1;07-41N;008-37E;07-41N;008-37E;113;97;P +DNMM;65;201;Lagos / Ikeja;;Nigeria;1;06-35N;003-20E;06-35N;003-20E;40;38;P +DNOS;65;215;Oshogbo;;Nigeria;1;07-47N;004-29E;;;305;304;P +DNPO;65;250;Port Harcourt;;Nigeria;1;04-51N;007-01E;04-51N;007-01E;18;18;P +DNSO;65;010;Sokoto;;Nigeria;1;13-01N;005-15E;;;351;302;P +DNYO;65;167;Yola;;Nigeria;1;09-14N;012-28E;09-14N;012-28E;191;174;P +DNZA;65;030;Zaria;;Nigeria;1;11-08N;007-41E;;;664;664;P +DRRB;61;075;Birni-N'Konni;;Niger;1;13-48N;005-15E;13-48N;005-15E;272;273; +DRRG;61;099;Gaya;;Niger;1;11-53N;003-27E;;;202;203; +DRRI;61;017;Bilma;;Niger;1;18-41N;012-55E;18-41N;012-55E;355;357; +DRRL;61;036;Tillabery;;Niger;1;14-12N;001-27E;;;209;210; +DRRM;61;080;Maradi;;Niger;1;13-28N;007-05E;13-28N;007-05E;372;373; +DRRN;61;052;Niamey-Aero;;Niger;1;13-29N;002-10E;13-29N;002-10E;223;227; +DRRT;61;043;Tahoua;;Niger;1;14-54N;005-15E;;;386;391; +DRZA;61;024;Agadez;;Niger;1;16-58N;007-59E;16-58N;007-59E;501;502; +DRZF;61;085;Diffa;;Niger;1;13-25N;012-47E;;;303;305; +DRZG;61;045;Goure;;Niger;1;13-59N;010-18E;;;464;460; +DRZM;61;096;Maine-Soroa;;Niger;1;13-14N;011-59E;;;338;337; +DRZR;61;090;Zinder;;Niger;1;13-47N;008-59E;13-47N;008-59E;452;453; +DTKA;60;710;Tabarka;;Tunisia;1;36-57N;008-45E;36-57N;008-45E;20;21; +DTMB;--;---;Habib Bourguiba ;;Tunisia;1;35-46N;010-45E;;;2;; +DTTA;60;715;Tunis-Carthage;;Tunisia;1;36-50N;010-14E;36-50N;010-14E;3;4;P +DTTB;60;714;Bizerte;;Tunisia;1;37-15N;009-48E;37-14N;009-49E;5;3;P +DTTD;60;775;Remada;;Tunisia;1;32-19N;010-24E;32-19N;010-24E;300;301;P +DTTF;60;745;Gafsa;;Tunisia;1;34-25N;008-49E;34-25N;008-49E;313;314;P +DTTG;60;765;Gabes;;Tunisia;1;33-53N;010-06E;33-53N;010-06E;4;5; +DTTJ;60;769;Djerba Mellita;;Tunisia;1;33-52N;010-46E;33-52N;010-46E;3;4;P +DTTK;60;735;Kairouan;;Tunisia;1;35-40N;010-06E;35-40N;010-06E;60;68;P +DTTL;60;720;Kelibia;;Tunisia;1;36-51N;011-05E;37-04N;011-02E;29;30;P +DTTM;60;740;Monastir-Skanes;;Tunisia;1;35-40N;010-45E;35-45N;010-45E;2;3;P +DTTN;60;725;Jendouba;;Tunisia;1;36-29N;008-48E;36-29N;008-48E;143;144;P +DTTR;60;780;El Borma;;Tunisia;1;31-41N;009-10E;31-41N;009-12E;258;259;P +DTTX;60;750;Sfax El-Maou;;Tunisia;1;34-43N;010-41E;34-43N;010-41E;21;23;P +DTTZ;60;760;Tozeur;;Tunisia;1;33-55N;008-06E;33-55N;008-10E;87;93;P +DXAK;65;376;Atakpame;;Togo;1;07-35N;001-07E;;;400;402;P +DXMG;65;352;Mango;;Togo;1;10-22N;000-28E;;;145;146;P +DXNG;65;355;Niamtougou;;Togo;1;09-46N;001-06E;;;342;343;P +DXSK;65;361;Sokode;;Togo;1;08-59N;001-09E;08-59N;001-09E;386;387;P +DXTA;65;380;Tabligbo;;Togo;1;06-35N;001-30E;;;44;44;P +DXXX;65;387;Lome;;Togo;1;06-10N;001-15E;06-10N;001-15E;20;25;P +EBAW;06;450;Antwerpen / Deurne;;Belgium;6;51-12N;004-28E;;;12;14;P +EBBE;06;458;Beauvechain;;Belgium;6;50-45N;004-46E;;;105;127;P +EBBL;06;479;Kleine Brogel;;Belgium;6;51-10N;005-28E;51-10N;005-28E;55;64;P +EBBR;06;451;Bruxelles National;;Belgium;6;50-54N;004-32E;50-54N;004-28E;55;58;P +EBBT;06;452;Brasschaat;;Belgium;6;51-20N;004-30E;;;22;23;P +EBBX;06;467;Bertrix Bel-Afb ;;Belgium;6;49-54N;005-13E;;;461;; +EBCI;06;449;Charleroi / Gosselies;;Belgium;6;50-28N;004-27E;;;187;192;P +EBCV;06;432;Chievres;;Belgium;6;50-34N;003-50E;;;60;63;P +EBDT;06;465;Schaffen;;Belgium;6;51-00N;005-04E;;;30;54; +EBFN;06;400;Koksijde;;Belgium;6;51-05N;002-39E;;;4;9;P +EBFS;06;456;Florennes;;Belgium;6;50-14N;004-39E;;;279;299;P +EBGT;06;431;Gent / Industrie-Zone;;Belgium;6;51-11N;003-49E;;;10;13;P +EBLB;06;496;Elsenborn;;Belgium;6;50-28N;006-11E;50-28N;006-11E;564;570;P +EBLG;06;478;Bierset;;Belgium;6;50-39N;005-27E;;;186;178;P +EBMB;06;448;Melsbroek Bel-Afb ;;Belgium;6;50-54N;004-30E;;;55;; +EBMT;06;428;Munte;;Belgium;6;50-56N;003-44E;;;55;60;P +EBOS;06;407;Oostende Airport ;;Belgium;6;51-12N;002-52E;;;4;5;P +EBSP;06;490;Spa / La Sauveniere;;Belgium;6;50-29N;005-55E;;;470;482;P +EBST;06;470;Sint-Truiden;;Belgium;6;50-48N;005-12E;;;74;75;P +EBSU;06;476;St-Hubert;;Belgium;6;50-02N;005-24E;50-02N;005-24E;563;557;P +EBTN;06;463;Goetsenhoven;;Belgium;6;50-47N;004-57E;;;71;81;P +EBWE;06;462;Weelde Military ;;Belgium;6;51-25N;005-00E;;;60;; +EBZW;06;481;Genk;;Belgium;6;50-56N;005-30E;;;61;63;P +EDAC;--;---;Altenburg Nobitz;;Germany;;50-58N;012-30E;;;195;; +EDAH;--;---;Heringsdorf;;Germany;6;53-53N;014-09E;;;28;; +EDBM;--;---;Magdeburg, Sachsen-Anhalt;;Germany;6;52-04-35N;011-37-25E;;;82;; +EDDB;10;385;Berlin-Schoenefeld;;Germany;6;52-23N;013-31E;52-23N;013-31E;47;50;P +EDDC;10;488;Dresden-Klotzsche;;Germany;6;51-08N;013-45E;;;230;232;P +EDDE;10;554;Erfurt-Bindersleben;;Germany;6;50-59N;010-58E;;;315;322;P +EDDF;10;637;Frankfurt / M-Flughafen;;Germany;6;50-03N;008-36E;50-03N;008-35E;111;113;P +EDDG;10;315;Muenster / Osnabrueck;;Germany;6;52-08N;007-42E;;;48;53;P +EDDH;10;147;Hamburg-Fuhlsbuettel;;Germany;6;53-38N;010-00E;;;16;15;P +EDDI;10;384;Berlin-Tempelhof;;Germany;6;52-28N;013-24E;52-29N;013-25E;50;49;P +EDDK;10;513;Koeln / Bonn;;Germany;6;50-52N;007-10E;50-52N;007-08E;91;100;P +EDDL;10;400;Duesseldorf;;Germany;6;51-18N;006-46E;;;45;41;P +EDDM;10;866;Munchen;;Germany;6;48-21N;011-47E;48-08N;011-43E;453;; +EDDN;10;763;Nuernberg;;Germany;6;49-30N;011-03E;49-30N;011-05E;318;318;P +EDDP;10;469;Leipzig-Schkeuditz;;Germany;6;51-25N;012-14E;;;144;149;P +EDDR;10;708;Saarbruecken / Ensheim;;Germany;6;49-13N;007-07E;49-13N;007-07E;322;320;P +EDDS;10;738;Stuttgart-Echterdingen;;Germany;6;48-41N;009-13E;48-41N;009-13E;396;391;P +EDDT;10;382;Berlin-Tegel;;Germany;6;52-34N;013-19E;;;37;37; +EDDV;10;338;Hannover;;Germany;6;52-28N;009-41E;52-28N;009-42E;56;59;P +EDDW;10;224;Bremen;;Germany;6;53-03N;008-48E;;;3;5;P +EDFH;10;616;Hahn;;Germany;6;49-57N;007-16E;;;491;498; +EDFM;10;729;Baden Württemberg, Neuostheim;;Germany;6;49-28-21N;008-30-56E;;;100;; +EDGS;--;---;Hessen;;Germany;6;50-42-28N;008-04-59E;;;602;; +EDHI;10;149;Hamburg-Finkenwerder;;Germany;6;53-32N;009-50E;;;5;13; +EDHK;--;---;Kiel / Holtenau Civilian;;Germany;;54-23N;010-10E;;;31;; +EDHL;10;156;Luebeck-Blankensee;;Germany;6;53-49N;010-42E;;;14;15; +EDLN;--;---;Monchengladbach;;Germany;6;51-13-49N;006-30-16E;;;38;; +EDLP;10;426;Paderborn / Lippstadt;;Germany;6;51-37N;008-37E;;;213;; +EDLV;--;---;Niederrhein;;Germany;6;51-36-09N;006-08-32E;;;32;; +EDLW;10;416;Dortmund / Wickede;;Germany;6;51-31N;007-37E;;;127;; +EDMA;10;852;Augsburg;;Germany;6;48-26N;010-56E;48-23N;010-51E;461;463;P +EDMO;--;---;Oberpfaffenhofen;;Germany;6;48-05N;011-17E;;;600;; +EDNY;10;935;Friedrichshafen;;Germany;6;47-40N;009-31E;;;416;424; +EDOP;10;745;Mecklenburg-Vorpommern, Parchim;;Germany;6;53-25-37N;011-47-01E;;;52;; +EDQD;10;677;Bayreuth;;Germany;6;49-59N;011-38E;;;488;498; +EDQM;10;685;Hof;;Germany;6;50-19N;011-53E;;;567;568;P +EDRZ;--;---;Zweibrucken, Rheinland-Pfalz;;Germany;6;49-12-34N;007-24-04E;;;344;; +EDSB;10;613;Karlsruhe, Baden Württemberg;;Germany;6;48-46-43N;008-04-47E;;;124;; +EDTD;10;912;Donaueschingen / Villingen;;Germany;6;47-58N;008-31E;;;680;; +EDTL;--;---;Lahr, CAN-AFB;;Germany;6;48-22-09N;007-49-40E;;;156;; +EDTZ;10;929;Konstanz;;Germany;6;47-41N;009-11E;;;443;447;P +EDVE;10;348;Braunschweig;;Germany;6;52-18N;010-27E;;;81;88;P +EDVK;10;436;Kassel / Calden;;Germany;6;51-24N;009-23E;;;277;283; +EDWD;--;---;Lemwerder;;Germany;6;53-09N;008-37E;;;30;; +EDXW;10;018;Westerland / Sylt;;Germany;6;54-55N;008-21E;;;16;20; +EDZE;10;410;Essen;;Germany;6;51-24N;006-58E;51-24N;006-58E;152;161; +EEKA;26;116;Kardla;;Estonia;6;58-59N;022-49E;;;5;; +EEKE;--;---;Kuressaare;;Estonia;6;58-13-48N;022-30-34E;;;4;; +EEPU;--;---;Parnu;;Estonia;6;58-25-09N;024-28-22E;;;14;; +EETN;--;---;Tallinn;;Estonia;6;59-24N;024-49E;59-27N;024-48E;40;34; +EETU;--;---;Tartu/Ulenurme;;Estonia;6;58-18N;026-44E;;;59;; +EFET;--;---;Enontekio;;Finland;6;68-21-52N;023-25-39E;;;308;; +EFHA;02;945;Halli;;Finland;6;61-51N;024-48E;;;143;145; +EFHF;02;975;Helsinki-Malmi;;Finland;6;60-15N;025-03E;;;17;28; +EFHK;02;974;Helsinki-Vantaa;;Finland;6;60-19N;024-58E;60-19N;024-58E;51;56;P +EFHL;02;874;Hailuoto;;Finland;6;65-02N;024-48E;;;6;6; +EFHT;02;924;Ahtari;;Finland;6;62-32N;024-13E;;;157;161; +EFIL;--;---;Ilmajoki;;Finland;6;62-42N;022-50E;;;92;; +EFIV;02;807;Ivalo;;Finland;6;68-37N;027-25E;;;147;148;P +EFJO;02;929;Joensuu;;Finland;6;62-40N;029-38E;;;119;117;P +EFJY;02;935;Jyvaskyla;;Finland;6;62-24N;025-41E;62-24N;025-40E;141;145;P +EFKA;02;913;Kauhava;;Finland;6;63-06N;023-02E;;;42;44; +EFKE;02;864;Kemi;;Finland;6;65-47N;024-35E;;;15;; +EFKI;02;897;Kajaani;;Finland;6;64-17N;027-41E;;;143;136;P +EFKK;02;903;Kruunupyy;;Finland;6;63-43N;023-09E;;;25;; +EFKS;02;869;Kuusamo;;Finland;6;65-58N;029-11E;;;262;263;P +EFKT;--;---;Kittila;;Finland;6;67-42N;024-51E;;;643;; +EFKU;02;917;Kuopio;;Finland;6;63-01N;027-48E;63-01N;027-48E;98;102;P +EFLP;02;958;Lappeenranta;;Finland;6;61-02-45N;028-08-55E;;;106;; +EFMA;02;970;Mariehamn / Aland Island;;Finland;6;60-07N;019-54E;;;6;; +EFMI;02;947;Mikkeli;;Finland;6;61-44N;027-18E;;;138;138; +EFOU;02;875;Oulu;;Finland;6;64-56N;025-22E;;;12;15;P +EFPE;02;844;Pello;;Finland;6;66-48N;024-00E;;;84;84; +EFPO;02;952;Pori;;Finland;6;61-28N;021-48E;;;13;17;P +EFPU;02;867;Pudasjarvi;;Finland;6;65-22N;027-01E;;;114;117; +EFRO;02;845;Rovaniemi;;Finland;6;66-34N;025-50E;;;197;201; +EFSA;02;948;Savonlinna;;Finland;6;61-57N;028-57E;;;95;95; +EFSI;--;---;Seinajoki-Ilmajok;;Finland;6;62-41-37N;022-49-55E;;;91;; +EFSO;02;836;Sodankyla;;Finland;6;67-22N;026-39E;67-22N;026-39E;179;179;P +EFSU;02;879;Suomussalmi;;Finland;6;64-54N;029-01E;;;223;224; +EFTP;02;944;Tampere / Pirkkala;;Finland;6;61-25N;023-35E;;;112;112;P +EFTU;02;972;Turku;;Finland;6;60-31N;022-16E;60-31N;022-16E;49;59;P +EFUT;02;966;Utti;;Finland;6;60-54N;026-56E;;;100;100; +EFVA;02;911;Vaasa;;Finland;6;63-03N;021-46E;;;4;; +EFVI;02;915;Viitasaari;;Finland;6;63-05N;025-52E;;;132;132; +EFVR;--;---;Varkaus;;Finland;6;62-10N;027-52E;;;87;; +EGAA;03;917;Belfast / Aldergrove Airport;;United Kingdom;6;54-39N;006-13W;;;81;0;P +EGAC;03;924;Belfast / Harbour;;United Kingdom;6;54-36N;005-53W;;;5;0; +EGAE;--;---;Eglinton / Londonderr;;United Kingdom;6;55-03N;007-09W;;;9;; +EGBB;03;534;Birmingham / Airport;;United Kingdom;6;52-27N;001-44W;;;99;0;P +EGBE;--;---;Coventry Airport ;;United Kingdom;6;52-22N;001-29W;;;82;; +EGBJ;--;---;Staverton Private ;;United Kingdom;6;51-54N;002-10W;;;29;; +EGCC;03;334;Manchester Airport;;United Kingdom;6;53-21N;002-17W;;;69;0;P +EGDB;03;827;Plymouth;;United Kingdom;6;50-21N;004-07W;;;50;0;P +EGDC;03;707;Chivenor;;United Kingdom;6;51-05N;004-09W;;;8;0; +EGDG;03;817;Saint Mawgan;;United Kingdom;6;50-26N;005-00W;;;119;0;P +EGDK;--;---;Kemble Royal Air Force Base ;;United Kingdom;6;51-40N;002-03W;;;133;; +EGDL;03;740;Lyneham;;United Kingdom;6;51-30N;001-59W;;;145;0;P +EGDM;03;746;Boscombe Down;;United Kingdom;6;51-10N;001-45W;;;124;0;P +EGDP;03;858;Portland / Rnas;;United Kingdom;6;50-34N;002-27W;;;3;0; +EGDR;03;809;Culdrose;;United Kingdom;6;50-05N;005-15W;;;78;0;P +EGDX;--;---;St Athan Royal Air Force Base;;United Kingdom;6;51-24N;003-26W;;;50;; +EGDY;03;853;Yeovilton;;United Kingdom;6;51-00N;002-38W;;;23;0;P +EGEC;--;---;Campbeltown;;United Kingdom;6;55-26-14N;005-41-11W;;;13;; +EGFF;03;715;Cardiff-Wales Airport;;United Kingdom;6;51-24N;003-21W;51-24N;003-21W;67;0;P +EGFH;--;---;Swansea;;United Kingdom;6;51-36N;004-04W;;;90;; +EGGD;--;---;Bristol / Lulsgate ;;United Kingdom;6;51-23N;002-43W;;;189;; +EGGP;--;---;Liverpool Airport ;;United Kingdom;6;53-20N;002-51W;;;26;; +EGGW;--;---;Luton Airport ;;United Kingdom;6;51-52N;000-22W;;;160;; +EGHD;--;---;Plymouth / Roborough;;United Kingdom;6;50-25N;004-07W;;;25;; +EGHE;03;803;Scilly, Saint Mary'S;;United Kingdom;6;49-55N;006-18W;;;31;0; +EGHH;03;862;Bournemouth Airport;;United Kingdom;6;50-47N;001-50W;;;11;0;P +EGHI;03;865;Southampton / Weather Centre;;United Kingdom;6;50-54N;001-24W;;;9;0; +EGJA;--;---;Alderney / Channel Island;;United Kingdom;6;49-43N;002-12W;;;71;; +EGJB;03;894;Guernsey Airport;;United Kingdom;6;49-26N;002-36W;;;102;0;P +EGJJ;03;895;Jersey Airport;;United Kingdom;6;49-13N;002-12W;;;84;0;P +EGKA;03;876;Shoreham Airport;;United Kingdom;6;50-50N;000-17W;;;2;0; +EGKB;--;---;Biggin Hill ;;United Kingdom;6;51-19N;000-02E;;;183;; +EGKK;03;776;London / Gatwick Airport;;United Kingdom;6;51-09N;000-11W;;;62;0;P +EGLC;--;---;London City Airport;;United Kingdom;6;51-30N;000-30W;;;5;; +EGLF;03;768;Farnborough;;United Kingdom;6;51-17N;000-46W;;;65;0; +EGLL;03;772;London / Heathrow Airport;;United Kingdom;6;51-29N;000-27W;;;24;0;P +EGMC;--;---;Southend-On-Sea ;;United Kingdom;6;51-34N;000-42E;;;15;; +EGMD;--;---;Lydd Airport ;;United Kingdom;6;50-57N;000-56E;;;3;; +EGMH;--;---;Manston, South East;;United Kingdom;6;51-20-31N;001-20-46E;;;55;; +EGNC;03;222;Carlisle;;United Kingdom;6;54-56N;002-57W;;;26;; +EGNH;03;318;Blackpool Airport;;United Kingdom;6;53-46N;003-02W;;;10;0;P +EGNJ;--;---;Humberside;;United Kingdom;6;53-35N;000-21W;;;31;; +EGNL;03;214;Walney Island;;United Kingdom;6;54-07N;003-15W;;;15;0; +EGNM;--;---;Leeds And Bradford;;United Kingdom;6;53-52N;001-39W;;;208;; +EGNR;03;321;Hawarden;;United Kingdom;6;53-10N;002-59W;;;10;0; +EGNS;03;204;Isle Of Man / Ronaldsway Airport;;United Kingdom;6;54-05N;004-38W;;;17;0;P +EGNT;--;---;Newcastle ;;United Kingdom;6;55-02N;001-42W;;;81;; +EGNV;--;---;Tees-Side;;United Kingdom;6;54-31N;001-25W;;;37;; +EGNX;--;---;East Midlands;;United Kingdom;6;52-50N;001-20W;;;94;; +EGOD;--;---;Llanbedr;;United Kingdom;6;52-49N;004-08W;;;9;; +EGOM;03;165;Spadeadam;;United Kingdom;6;55-03N;002-33W;;;325;; +EGOP;03;605;Pembrey Sands;;United Kingdom;6;51-43N;004-22W;;;3;; +EGOS;03;414;Shawbury;;United Kingdom;6;52-48N;002-40W;;;76;0;P +EGOV;03;302;Valley;;United Kingdom;6;53-15N;004-32W;;;1;0;P +EGOW;--;---;Woodvale;;United Kingdom;6;53-34-54N;003-03-20W;;;11;; +EGOY;03;132;West Freugh;;United Kingdom;6;54-51N;004-57W;;;11;0; +EGPA;03;017;Kirkwall Airport;;United Kingdom;6;58-57N;002-54W;;;21;0;P +EGPB;03;003;Sumburgh Cape ;;United Kingdom;6;59-53N;001-18W;;;5;; +EGPC;03;075;Wick;;United Kingdom;6;58-27N;003-05W;;;39;0;P +EGPD;03;091;Aberdeen / Dyce;;United Kingdom;6;57-12N;002-13W;57-12N;002-13W;65;0;P +EGPE;03;059;Inverness / Dalcross;;United Kingdom;6;57-32N;004-03W;;;9;0; +EGPF;03;140;Glasgow Airport;;United Kingdom;6;55-52N;004-26W;;;8;0;P +EGPH;03;160;Edinburgh Airport;;United Kingdom;6;55-57N;003-21W;;;41;0;P +EGPI;--;---;Islay;;United Kingdom;6;55-40-55N;006-15-24W;;;16;; +EGPK;03;135;Prestwick Airport;;United Kingdom;6;55-30N;004-35W;;;20;0;P +EGPL;03;022;Benbecula;;United Kingdom;6;57-28N;007-22W;;;6;0;P +EGPM;--;---;Scatsa / Shetland Island;;United Kingdom;6;60-26N;001-18W;;;22;; +EGPN;--;---;Dundee / Riverside;;United Kingdom;6;56-27N;003-01W;;;4;; +EGPO;03;026;Stornoway;;United Kingdom;6;58-13N;006-19W;58-13N;006-19W;9;13;P +EGPT;--;---;Perth / Scone ;;United Kingdom;6;56-27N;003-22W;;;121;; +EGPU;03;100;Tiree;;United Kingdom;6;56-30N;006-53W;;;12;0;P +EGPW;--;---;Unst Island;;United Kingdom;6;60-44N;000-49W;;;285;; +EGQA;03;062;Tain Range;;United Kingdom;6;57-49N;003-58W;;;4;0; +EGQJ;03;111;Machrihanish;;United Kingdom;6;55-26N;005-42W;;;13;0; +EGQK;03;066;Kinloss;;United Kingdom;6;57-39N;003-34W;57-39N;003-34W;7;0;P +EGQL;03;171;Leuchars;;United Kingdom;6;56-23N;002-52W;;;12;0;P +EGQM;03;240;Boulmer;;United Kingdom;6;55-25N;001-36W;55-25N;001-36W;23;0;P +EGQS;03;068;Lossiemouth;;United Kingdom;6;57-43N;003-19W;;;13;;P +EGRB;03;779;London Weather Centre;;United Kingdom;6;51-31N;000-07W;;;5;0; +EGRR;03;763;Bracknell / Beaufort Park;;United Kingdom;6;51-23N;000-47W;;;74;0; +EGSC;--;---;Cambridge;;United Kingdom;6;52-12N;000-11E;;;15;; +EGSH;03;492;Norwich Weather Centre;;United Kingdom;6;52-38N;001-18E;;;14;0; +EGSS;03;683;Stansted Airport;;United Kingdom;6;51-53N;000-14E;;;106;0;P +EGSY;--;---;Yorkshire and Humberside, Sheffield City;;United Kingdom;6;53-23-39N;001-23-18W;;;70;; +EGTC;--;---;Cranfield;;United Kingdom;6;52-04N;000-37W;;;111;; +EGTE;03;839;Exeter Airport;;United Kingdom;6;50-44N;003-25W;;;30;; +EGTG;--;---;Filton Private ;;United Kingdom;6;51-31N;002-35W;;;69;; +EGTH;--;---;Hatfeild Private ;;United Kingdom;6;51-46N;000-15W;;;77;; +EGUA;--;---;Upper Heyford Royal Air Force Base ;;United Kingdom;6;51-56N;001-15W;;;134;; +EGUB;03;658;Benson;;United Kingdom;6;51-37N;001-05W;;;63;0;P +EGUC;03;502;Aberporth;;United Kingdom;6;52-08N;004-34W;52-08N;004-34W;133;134;P +EGUF;03;766;Farnborough Military ;;United Kingdom;6;51-17N;000-46W;;;72;; +EGUL;03;583;Lakenheath Royal Air Force Base;;United Kingdom;6;52-25N;000-34E;;;10;; +EGUM;03;797;Manston;;United Kingdom;6;51-21N;001-21E;;;55;0;P +EGUN;03;577;Mildenhall Royal Air Force Base;;United Kingdom;6;52-22N;000-29E;;;10;; +EGUO;--;---;Colerne;;United Kingdom;6;51-26-21N;002-17-11W;;;181;; +EGUP;--;---;Sculthorpe Af Met ;;United Kingdom;6;52-51N;000-46E;;;65;; +EGUW;03;590;Wattisham;;United Kingdom;6;52-07N;000-58E;;;87;0;P +EGUY;03;566;Wyton Royal Air Force Base;;United Kingdom;6;52-21N;000-07W;;;41;; +EGVA;03;644;Fairford Royal Air Force Base;;United Kingdom;6;51-41N;001-47W;;;87;; +EGVG;--;---;Woodbridge Royal Air Force Base ;;United Kingdom;6;52-05N;001-24E;;;29;; +EGVI;--;---;Greenham Common Royal Air Force Base;;United Kingdom;6;51-23N;001-17W;;;122;; +EGVJ;--;---;Bentwaters Royal Air Force Base ;;United Kingdom;6;52-08N;001-26E;;;26;; +EGVN;03;649;Brize Norton;;United Kingdom;6;51-45N;001-35W;51-45N;001-35W;88;0;P +EGVO;03;761;Odiham;;United Kingdom;6;51-14N;000-57W;;;123;0; +EGVP;03;749;Middle Wallop;;United Kingdom;6;51-09N;001-34W;;;91;0; +EGWC;--;---;Cosford Royal Air Force Base;;United Kingdom;6;52-38N;002-18W;;;83;; +EGWU;03;672;Northolt;;United Kingdom;6;51-33N;000-25W;;;38;0; +EGWZ;03;562;Alconbury Royal Air Force Base;;United Kingdom;6;52-22N;000-13W;;;49;; +EGXC;03;391;Coningsby Royal Air Force Base;;United Kingdom;6;53-05N;000-10W;;;7;; +EGXD;03;261;Disforth;;United Kingdom;6;54-08N;001-25W;;;36;0; +EGXE;03;257;Leeming;;United Kingdom;6;54-18N;001-32W;54-18N;001-32W;40;40; +EGXF;--;---;Cowden;;United Kingdom;6;53-51N;006-06W;;;15;; +EGXG;03;355;Church Fenton;;United Kingdom;6;53-50N;001-12W;;;9;0; +EGXH;03;586;Honington Royal Air Force Base;;United Kingdom;6;52-20N;000-46E;52-20N;000-46E;54;54; +EGXJ;03;453;Cottesmore;;United Kingdom;6;52-44N;000-39W;;;138;; +EGXN;--;---;Newton;;United Kingdom;6;52-58N;000-59W;;;55;; +EGXP;--;---;Scampton;;United Kingdom;6;53-18-27N;000-33-03W;;;62;; +EGXT;03;462;Wittering;;United Kingdom;6;52-37N;000-28W;;;84;0; +EGXU;03;266;Linton-On-Ouse;;United Kingdom;6;54-03N;001-15W;;;16;0; +EGXV;03;384;Leconfield;;United Kingdom;6;53-52N;000-26W;;;6;0; +EGXW;03;377;Waddington;;United Kingdom;6;53-10N;000-31W;53-10N;000-31W;68;0;P +EGXZ;--;---;Topcliffe Royal Air Force Base ;;United Kingdom;6;54-12N;001-23W;;;28;; +EGYC;03;495;Coltishall;;United Kingdom;6;52-26N;001-21E;;;20;0;P +EGYD;03;379;Cranwell;;United Kingdom;6;53-02N;000-30W;;;67;0; +EGYE;--;---;Barkston Heath Royal Air Force Base ;;United Kingdom;6;52-58N;000-34W;;;112;; +EGYH;03;469;Holbeach;;United Kingdom;6;52-52N;000-09E;;;3;0; +EGYM;03;482;Marham;;United Kingdom;6;52-39N;000-34E;;;23;0;P +EGYP;88;889;Mount Pleasant Airport;;South Georgia and the Islands;3;51-49S;058-27W;51-49S;058-27W;74;73; +EGYW;03;392;Wainfleet;;United Kingdom;6;53-05N;000-16E;;;3;0; +EHAM;06;240;Amsterdam Airport Schiphol;;Netherlands;6;52-18N;004-46E;;;-4;-2;P +EHBK;06;380;Maastricht Airport Zuid Limburg;;Netherlands;6;50-55N;005-47E;;;114;116; +EHDB;06;260;De Bilt;;Netherlands;6;52-06N;005-11E;52-06N;005-11E;2;15;P +EHDL;06;275;Deelen;;Netherlands;6;52-04N;005-53E;;;48;52; +EHEH;06;370;Eindhoven;;Netherlands;6;51-27N;005-25E;;;23;28; +EHGG;06;280;Groningen Airport Eelde;;Netherlands;6;53-08N;006-35E;;;4;4; +EHGR;06;350;Gilze-Rijen;;Netherlands;6;51-34N;004-56E;;;15;24; +EHKD;06;235;De Kooy;;Netherlands;6;52-55N;004-47E;;;0;14;P +EHLE;06;269;Lelystad;;Netherlands;6;52-27N;005-31E;;;0;; +EHLW;06;270;Leeuwarden;;Netherlands;6;53-13N;005-46E;;;1;11;P +EHRD;06;344;Rotterdam Airport Zestienhoven;;Netherlands;6;51-57N;004-27E;;;-5;-4; +EHSB;06;265;Soesterberg;;Netherlands;6;52-08N;005-17E;;;20;25; +EHTW;06;290;Twenthe;;Netherlands;6;52-16N;006-54E;52-16N;006-54E;35;57;P +EHVB;06;210;Valkenburg;;Netherlands;6;52-11N;004-25E;52-11N;004-25E;0;2; +EHVK;06;375;Volkel;;Netherlands;6;51-39N;005-42E;;;22;21;P +EHVL;06;242;Vlieland;;Netherlands;6;53-15N;004-55E;53-15N;004-55E;11;12; +EHWO;06;340;Woensdrecht;;Netherlands;6;51-27N;004-20E;51-27N;004-20E;20;17; +EICK;03;955;Cork Airport;;Ireland;6;51-51N;008-29W;;;153;162;P +EIDW;03;969;Dublin Airport;;Ireland;6;53-26N;006-15W;;;68;85;P +EIKN;--;---;Connaught;;Ireland;6;53-54-37N;008-49-05W;;;203;; +EIME;03;967;Casement Aerodrome;;Ireland;6;53-18N;006-26W;;;97;93;P +EINN;03;962;Shannon Airport;;Ireland;6;52-42N;008-55W;;;14;20;P +EKAH;06;070;Tirstrup;;Denmark;6;56-18N;010-37E;;;23;25;P +EKAT;06;078;Anholt Island Automated Reporting Station ;;Denmark;6;56-42N;011-33E;;;8;; +EKAV;06;150;Avno Danish Air Force Base ;;Denmark;6;55-05N;011-47E;;;4;; +EKBI;06;104;Billund Lufthavn;;Denmark;6;55-44N;009-10E;;;75;79;P +EKCH;06;180;Koebenhavn / Kastrup;;Denmark;6;55-37N;012-39E;55-38N;012-40E;5;5;P +EKEB;06;080;Esbjerg;;Denmark;6;55-32N;008-34E;;;30;29; +EKHO;06;054;Lindtorp Airport;;Denmark;6;56-24N;008-27E;;;15;; +EKHS;06;048;Hadsund;;Denmark;6;56-43N;010-07E;;;2;2; +EKKA;06;060;Karup;;Denmark;6;56-18N;009-07E;;;52;53;P +EKMB;06;143;Maribo Lufthavn;;Denmark;6;54-42N;011-27E;;;5;5; +EKOD;06;120;Odense / Beldringe;;Denmark;6;55-29N;010-20E;;;17;17;P +EKRK;06;170;Koebenhavn / Roskilde;;Denmark;6;55-35N;012-08E;;;44;44; +EKRN;06;190;Roenne;;Denmark;6;55-04N;014-45E;;;16;16; +EKSB;06;118;Soenderborg Lufthavn;;Denmark;6;54-58N;009-47E;;;7;14; +EKSN;06;034;Sindal Flyveplads;;Denmark;6;57-30N;010-13E;;;28;28; +EKSP;06;110;Skrydstrup;;Denmark;6;55-14N;009-16E;;;43;47;P +EKST;06;124;Sydfyns Flyveplads;;Denmark;6;55-01N;010-34E;;;6;; +EKSV;06;062;Skive Lufthavn;;Denmark;6;56-33N;009-10E;;;23;21; +EKTS;06;024;Thisted Lufthavn;;Denmark;6;57-04N;008-43E;;;7;7; +EKVA;06;100;Vandel;;Denmark;6;55-42N;009-12E;;;73;76; +EKVD;06;108;Vamdrup;;Denmark;6;55-26N;009-20E;;;44;45; +EKVG;06;010;Soervaag / Vagar;;Denmark;6;62-04N;007-17W;;;85;92; +EKVJ;06;066;Stauning Lufthavn;;Denmark;6;56-00N;008-21E;;;5;5; +EKVL;06;160;Vaerloese;;Denmark;6;55-46N;012-20E;;;18;31; +EKYT;06;030;Aalborg;;Denmark;6;57-06N;009-51E;57-06N;009-52E;3;13;P +ELLX;06;590;Luxembourg / Luxembourg;;Luxembourg;6;49-37N;006-13E;49-37N;006-13E;376;379;P +ENAL;01;210;Alesund / Vigra;;Norway;6;62-34N;006-07E;;;2;22; +ENAN;01;010;Andoya;;Norway;6;69-18N;016-09E;69-18N;016-09E;1;14;P +ENAS;01;004;Ny-Alesund Ii;;Norway;6;78-55N;011-56E;78-55N;011-56E;8;8; +ENAT;01;049;Alta Lufthavn;;Norway;6;69-59N;023-22E;;;0;3;P +ENBJ;01;028;Bjornoya;;Norway;6;74-31N;019-01E;74-31N;019-01E;16;16;P +ENBL;--;---;Forde / Bringeland;;Norway;6;61-27N;005-52E;;;150;; +ENBM;01;336;Voss-Bo;;Norway;6;60-39N;006-30E;;;125;122; +ENBN;01;112;Bronnoysund / Bronnoy;;Norway;6;65-28N;012-13E;;;0;9; +ENBO;01;152;Bodo Vi;;Norway;6;67-16N;014-22E;67-15N;014-24E;1;13;P +ENBR;01;311;Bergen / Flesland;;Norway;6;60-17N;005-14E;;;5;50;P +ENBS;--;---;Batsfjord;;Norway;6;70-38N;029-44E;;;10;; +ENBV;01;083;Berlevag;;Norway;6;70-52N;029-02E;;;1;13; +ENCN;01;452;Kristiansand / Kjevik;;Norway;6;58-12N;008-05E;;;1;17;P +ENDI;--;---;Dagali;;Norway;6;60-25N;008-31E;;;798;; +ENDR;--;---;Draugen;;Norway;6;64-21-20N;007-47-30E;;;0;; +ENDU;01;023;Bardufoss;;Norway;6;69-04N;018-32E;;;7;79;P +ENEK;--;---;Ekofisk Oil Platform;;Norway;6;56-33N;003-15E;;;3;; +ENEV;01;183;Evenes;;Norway;6;68-31N;016-41E;;;26;26; +ENFB;01;488;Oslo / Fornebu;;Norway;6;59-54N;010-38E;;;1;17;P +ENFG;01;368;Fagernes Leirin;;Norway;6;61-00N;009-18E;;;822;; +ENFL;01;310;Floro;;Norway;6;61-35N;005-02E;;;0;9; +ENFR;--;---;Frigg;;Norway;6;59-56N;002-00E;;;;; +ENGC;--;---;Gullfax Platform ;;Norway;6;61-02N;002-02E;;;10;; +ENGM;01;384;Oslo / Gardermoen;;Norway;6;60-12N;011-05E;60-12N;011-06E;20;204;P +ENHD;01;408;Haugesund / Karmoy;;Norway;6;59-21N;005-13E;;;2;24; +ENHE;--;---;Heidrun;;Norway;6;65-19-30N;002-19-36E;;;0;; +ENHF;01;052;Hammerfest;;Norway;6;70-40N;023-40E;;;8;81; +ENHK;--;---;Hasvik;;Norway;6;70-29N;022-09E;;;10;; +ENHO;01;062;Hopen;;Norway;6;76-30N;025-04E;;;6;10;P +ENHV;01;068;Honningsvag / Valan;;Norway;6;71-01N;025-59E;;;1;14; +ENJA;01;001;Jan Mayen;;Norway;6;70-56N;008-40W;70-56N;008-40W;10;9;P +ENKA;01;047;Kautokeino;;Norway;6;69-00N;023-02E;;;305;308; +ENKB;01;223;Kristiansund / Kvernberget;;Norway;6;63-07N;007-50E;;;6;62; +ENKR;01;089;Kirkenes Lufthavn;;Norway;6;69-44N;029-54E;;;9;91;P +ENLI;01;428;Lista Flyplass;;Norway;6;58-06N;006-38E;;;1;10; +ENLK;01;141;Leknes;;Norway;6;68-09N;013-37E;;;2;26; +ENMH;01;074;Mehamn;;Norway;6;71-02N;027-50E;;;1;13; +ENML;01;217;Molde / Aro;;Norway;6;62-45N;007-16E;;;0;3; +ENMS;01;122;Mosjoen Kjaerstad;;Norway;6;65-48N;013-08E;;;70;; +ENNA;01;059;Banak;;Norway;6;70-04N;024-59E;;;0;8;P +ENNK;01;194;Narvik Iii;;Norway;6;68-28N;017-30E;;;17;23; +ENNM;01;290;Namsos Lufthavn;;Norway;6;64-28N;011-35E;;;0;2; +ENNO;--;---;Notodden;;Norway;6;59-34N;009-13E;;;19;; +ENOA;--;---;Oseberg ;;Norway;6;59-19N;010-27E;;;15;; +ENOL;01;241;Orland Iii;;Norway;6;63-42N;009-36E;63-42N;009-36E;0;7;P +ENOV;01;209;Orsta-Volda / Hovden;;Norway;6;62-11N;006-04E;;;7;74; +ENRA;01;151;Mo I Rana / Rossvoll;;Norway;6;66-22N;014-18E;;;7;70; +ENRM;01;282;Rorvik / Ryum;;Norway;6;64-50N;011-09E;;;4;; +ENRO;01;289;Roros Lufthavn;;Norway;6;62-35N;011-21E;;;62;626; +ENRS;01;107;Rost Flyplass;;Norway;6;67-31N;012-06E;;;4;; +ENRY;01;494;Rygge;;Norway;6;59-23N;010-47E;;;5;53;P +ENSB;01;008;Svalbard Lufthavn;;Norway;6;78-15N;015-28E;;;2;29;P +ENSD;01;320;Sandane / Anda;;Norway;6;61-50N;006-07E;;;6;60; +ENSG;01;347;Sogndal / Haukasen;;Norway;6;61-09N;007-08E;;;49;497; +ENSH;01;161;Svolvaer / Helle;;Norway;6;68-15N;014-40E;;;0;9; +ENSK;01;162;Storkmarknes / Skagen;;Norway;6;68-35N;015-01E;;;0;3; +ENSN;01;475;Skien-Geiteryggen;;Norway;6;59-11N;009-34E;;;1;14; +ENSO;--;---;Stord / Soerstokken;;Norway;6;59-48N;005-21E;;;49;; +ENSR;01;046;Sorkjosen;;Norway;6;69-47N;020-58E;;;0;6; +ENSS;01;097;Svartnes;;Norway;6;70-21N;031-03E;;;12;; +ENST;01;116;Sandnessjoen / Stokka;;Norway;6;65-58N;012-28E;;;1;17; +ENTC;01;025;Tromso / Langnes;;Norway;6;69-41N;018-55E;;;1;10;P +ENTO;01;483;Torp;;Norway;6;59-12N;010-16E;;;8;88; +ENVA;01;271;Trondheim / Vaernes;;Norway;6;63-28N;010-56E;;;1;17;P +ENVD;01;088;Vadso;;Norway;6;70-04N;029-51E;;;3;39; +ENZV;01;415;Stavanger / Sola;;Norway;6;58-53N;005-38E;58-52N;005-40E;0;9;P +EPGD;12;150;Gdansk-Rebiechowo;;Poland;6;54-23N;018-28E;54-23N;018-28E;135;138;P +EPKK;12;566;Krakow;;Poland;6;50-05N;019-48E;50-05N;019-48E;237;237;P +EPKO;12;105;Koszalin;;Poland;6;54-12N;016-09E;54-12N;016-11E;32;34; +EPKT;12;560;Katowice;;Poland;6;50-14N;019-02E;;;284;284;P +EPPO;12;330;Poznan;;Poland;6;52-25N;016-50E;52-25N;016-50E;86;92;P +EPRZ;12;580;Rzeszow-Jasionka;;Poland;6;50-06N;022-03E;50-06N;022-03E;200;202;P +EPSC;12;205;Szczecin;;Poland;6;53-24N;014-37E;53-24N;014-37E;1;3;P +EPSK;--;---;Slupsk ;;Poland;6;54-28N;017-01E;;;25;; +EPWA;12;375;Warszawa-Okecie;;Poland;6;52-10N;020-58E;52-11N;020-59E;106;107;P +EPWR;12;424;Wroclaw Ii;;Poland;6;51-06N;016-53E;;;120;121;P +EPZG;12;400;Zielona Gora;;Poland;6;51-56N;015-32E;;;192;192;P +ESCF;02;562;Linkoping / Malmen;;Sweden;6;58-24N;015-31E;;;93;117;P +ESCL;02;376;Soderhamn;;Sweden;6;61-16N;017-06E;;;26;36;P +ESCM;02;458;Uppsala;;Sweden;6;59-53N;017-36E;;;21;41;P +ESDA;02;630;Ljungbyhed, Ljungbyhed, SWE-AFB;;Sweden;6;56-05-07N;013-12-26E;;;52;52;P +ESDB;02;607;Angelholm;;Sweden;6;56-18N;012-51E;;;20;47;P +ESDF;02;664;Ronneby;;Sweden;6;56-16N;015-17E;;;58;74;P +ESGG;02;526;Goteborg / Landvetter;;Sweden;6;57-40N;012-18E;;;169;; +ESGJ;02;550;Jonkoping Flygplats;;Sweden;6;57-46N;014-05E;;;226;232;P +ESGP;02;512;Goteborg / Save;;Sweden;6;57-47N;011-53E;;;20;53;P +ESGR;02;535;Skovde Flygplats;;Sweden;6;58-27N;013-58E;;;98;105; +ESGT;--;---;Trollhattan Private ;;Sweden;6;58-19N;012-21E;;;41;; +ESIB;02;520;Satenas;;Sweden;6;58-26N;012-42E;;;54;74;P +ESKM;--;---;Siljan / Mora;;Sweden;6;60-58N;014-31E;;;193;; +ESKN;--;---;Stockholm/Skavsta;;Sweden;6;58-47N;016-55E;;;43;; +ESMK;02;651;Kristianstad / Everod;;Sweden;6;55-55N;014-05E;;;23;; +ESMQ;02;672;Kalmar;;Sweden;6;56-44N;016-18E;;;16;; +ESMS;02;636;Malmo / Sturup;;Sweden;6;55-33N;013-22E;;;106;; +ESMT;02;604;Halmstad Swedish Air Force Base ;;Sweden;6;56-41N;012-50E;;;30;; +ESMV;02;556;Hagshult;;Sweden;6;57-18N;014-08E;;;169;172;P +ESMX;02;641;Vaxjo;;Sweden;6;56-51N;014-50E;;;199;200; +ESNG;02;049;Gallivare;;Sweden;6;67-09N;020-39E;;;359;360; +ESNJ;02;142;Jokkmokk;;Sweden;6;66-38N;019-39E;;;263;264;P +ESNK;02;259;Kramfors Flygplats;;Sweden;6;63-03N;017-46E;;;10;19;P +ESNL;--;---;Lycksele;;Sweden;6;64-32-51N;018-43-03E;;;211;; +ESNN;02;366;Sundsvall-Harnosand Flygplats;;Sweden;6;62-32N;017-27E;62-32N;017-27E;4;10;P +ESNO;02;267;Ornskoldsvik Airport;;Sweden;6;63-24N;018-58E;;;103;; +ESNQ;02;044;Kiruna Airport;;Sweden;6;67-49N;020-20E;;;452;; +ESNS;02;293;Skelleftea Airport;;Sweden;6;64-38N;021-05E;;;49;; +ESNU;02;286;Umea Flygplats;;Sweden;6;63-48N;020-17E;;;7;14;P +ESNY;--;---;Soderhamn;;Sweden;6;61-15-41N;017-05-57E;;;27;; +ESOE;--;---;Orebro Private ;;Sweden;6;59-14N;015-03E;;;57;; +ESOK;--;---;Karlstad ;;Sweden;6;59-26-41N;013-20-15E;;;107;; +ESOW;02;446;Vasteras / Hasslo;;Sweden;6;59-35N;016-38E;;;6;31;P +ESPA;02;186;Lulea / Kallax;;Sweden;6;65-33N;022-08E;65-33N;022-08E;17;34;P +ESPC;02;226;Ostersund / Froson;;Sweden;6;63-11N;014-30E;63-11N;014-30E;376;370;P +ESPD;02;128;Gunnarn;;Sweden;6;64-58N;017-42E;;;280;283;P +ESPE;02;154;Vidsel;;Sweden;6;65-52N;020-08E;;;180;182; +ESSA;02;460;Stockholm / Arlanda;;Sweden;6;59-39N;017-57E;;;38;61;P +ESSB;02;464;Stockholm / Bromma;;Sweden;6;59-21N;017-57E;59-21N;017-57E;14;14; +ESSD;02;435;Borlange;;Sweden;6;60-26N;015-31E;;;145;0; +ESSF;02;565;Hultsfred Swedish Air Force Base ;;Sweden;6;57-31N;015-50E;;;112;; +ESSK;02;443;Gavle / Sandviken Air Force Base;;Sweden;6;60-36N;016-57E;;;79;; +ESSL;--;---;Linkoping / Saab;;Sweden;6;58-24N;015-41E;;;52;; +ESSP;02;571;Norrkoping;;Sweden;6;58-35N;016-09E;;;34;0; +ESSQ;02;418;Karlstad Flygplats;;Sweden;6;59-22N;013-28E;;;46;55;P +ESSV;02;590;Visby Flygplats;;Sweden;6;57-40N;018-21E;;;51;47;P +ESTL;--;---;Ljungbyhed;;Sweden;6;56-04N;013-12E;;;43;; +ETAD;10;607;Spangdahlem;;Germany;6;49-59N;006-42E;;;365;356; +ETAR;10;614;Ramstein;;Germany;6;49-26N;007-36E;;;238;237; +ETAS;10;712;Sembach United States Air Force Operated Base In Foreign Country ;;Germany;6;49-30N;007-52E;;;321;; +ETBA;10;503;Aachen / Merzbruck;;Germany;6;50-49N;006-11E;50-49N;006-11E;191;190; +ETCE;--;---;Mebstetten / Albstadt;;Germany;6;50-07N;009-07E;;;475;; +ETEB;10;755;Ansbach / Katterbach;;Germany;6;49-19N;010-38E;49-19N;010-38E;467;476; +ETEH;10;627;Bad Kreuznach;;Germany;6;49-51N;007-53E;;;103;105; +ETEU;10;653;Giebelstadt;;Germany;6;49-39N;009-58E;49-39N;009-58E;298;298; +ETGB;10;238;Bergen;;Germany;6;52-49N;009-56E;52-49N;009-56E;70;69; +ETGG;10;033;Gluecksburg / Meierwik;;Germany;6;54-50N;009-30E;;;27;33; +ETGI;10;618;Idar-Oberstein;;Germany;6;49-42N;007-20E;49-42N;007-20E;376;377; +ETGK;10;771;Kuemmersruck;;Germany;6;49-26N;011-54E;49-26N;011-54E;419;418; +ETGW;10;272;Wittstock;;Germany;6;53-12N;012-31E;53-12N;012-31E;72;74; +ETGY;10;404;Kalkar;;Germany;6;51-44N;006-16E;;;31;43; +ETGZ;10;827;Messstetten;;Germany;6;48-11N;009-00E;;;920;930; +ETHA;10;954;Altenstadt;;Germany;6;47-50N;010-52E;47-50N;010-52E;739;757; +ETHB;10;335;Bueckeburg;;Germany;6;52-17N;009-05E;;;70;78; +ETHC;10;343;Celle;;Germany;6;52-36N;010-01E;;;39;52; +ETHE;10;306;Rheine-Bentlage;;Germany;6;52-18N;007-23E;;;40;49; +ETHF;10;439;Fritzlar;;Germany;6;51-07N;009-17E;;;172;181; +ETHI;10;142;Itzehoe;;Germany;6;54-00N;009-35E;;;25;26; +ETHL;10;837;Laupheim;;Germany;6;48-13N;009-55E;;;538;550; +ETHM;10;514;Mendig;;Germany;6;50-22N;007-19E;;;182;190; +ETHN;10;743;Niederstetten;;Germany;6;49-24N;009-58E;;;468;473; +ETHR;10;765;Roth;;Germany;6;49-13N;011-06E;49-13N;011-06E;388;395; +ETHS;10;246;Fassberg;;Germany;6;52-55N;010-11E;;;75;88; +ETHT;10;492;Cottbus Flugplatz ;;Germany;6;51-46N;014-18E;;;67;68; +ETIC;10;687;Grafenwoehr;;Germany;6;49-42N;011-57E;49-06N;011-08E;415;415; +ETID;10;642;Hanau;;Germany;6;50-10N;008-58E;50-10N;008-57E;112;114; +ETIE;10;734;Heidelberg;;Germany;6;49-24N;008-39E;;;110;109; +ETIH;10;775;Hohenfels;;Germany;6;49-13N;011-50E;;;442;442; +ETIK;10;752;Illesheim;;Germany;6;49-28N;010-23E;;;325;347; +ETIN;10;669;Kitzingen Usa \ Af ;;Germany;6;49-45N;010-12E;49-45N;010-12E;210;210; +ETME;10;034;Eggebek;;Germany;6;54-38N;009-21E;;;20;22; +ETMK;10;046;Kiel-Holtenau;;Germany;6;54-23N;010-09E;54-23N;010-09E;31;31; +ETMN;10;136;Nordholz;;Germany;6;53-46N;008-40E;;;23;31; +ETND;10;321;Diepholz;;Germany;6;52-35N;008-21E;;;39;43; +ETNG;10;500;Geilenkirchen;;Germany;6;50-58N;006-03E;;;90;98; +ETNH;10;038;Hohn;;Germany;6;54-19N;009-32E;;;12;17; +ETNJ;10;122;Jever;;Germany;6;53-32N;007-53E;;;7;21; +ETNL;10;172;Laage;;Germany;6;53-55N;012-17E;;;40;46; +ETNN;10;502;Noervenich;;Germany;6;50-50N;006-40E;;;118;135; +ETNP;10;314;Hopsten;;Germany;6;52-20N;007-32E;;;39;43; +ETNR;10;493;Preschen;;Germany;6;51-40N;014-38E;;;100;; +ETNS;10;037;Schleswig-Jagel;;Germany;6;54-28N;009-31E;;;22;25; +ETNT;10;126;Wittmundhaven;;Germany;6;53-33N;007-40E;;;8;12; +ETNU;10;281;Trollenhagen;;Germany;6;53-36N;013-19E;;;71;70; +ETNW;10;334;Wunstorf;;Germany;6;52-27N;009-26E;;;57;70; +ETOR;10;728;Coleman Mannheim ;;Germany;6;49-34N;008-28E;;;96;95; +ETOU;10;633;Wiesbaden;;Germany;6;50-03N;008-20E;;;140;; +ETSA;10;857;Landsberg;;Germany;6;48-04N;010-54E;;;623;628; +ETSB;10;613;Buechel;;Germany;6;50-10N;007-04E;;;478;486; +ETSE;10;869;Erding;;Germany;6;48-19N;011-57E;;;462;467; +ETSF;10;858;Fuerstenfeldbruck;;Germany;6;48-12N;011-16E;;;519;535; +ETSH;10;476;Holzdorf;;Germany;6;51-46N;013-11E;;;79;83; +ETSI;10;860;Ingolstadt;;Germany;6;48-43N;011-32E;;;367;370; +ETSL;10;856;Lechfeld;;Germany;6;48-11N;010-52E;;;555;562; +ETSM;10;947;Memmingen;;Germany;6;47-59N;010-14E;;;634;644; +ETSN;10;853;Neuburg / Donau;;Germany;6;48-43N;011-13E;;;380;387; +ETSP;10;626;Pferdsfeld;;Germany;6;49-51N;007-36E;;;396;403; +ETUL;10;405;Laarbruch;;Germany;6;51-36N;006-09E;;;32;31; +ETUN;10;308;Nordhorn;;Germany;6;52-27N;007-10E;;;26;26; +ETUO;10;320;Guetersloh;;Germany;6;51-55N;008-18E;;;72;72; +ETUR;10;401;Brueggen;;Germany;6;51-12N;006-08E;;;73;76; +ETWM;--;---;Meppen-Mil;;Germany;6;52-43-24N;007-19-35E;;;21;; +EVLA;--;---;Liepaja International Airport;;Latvia;6;56-31N;021-05E;;;5;; +EVRA;--;---;Riga International Airport;;Latvia;6;56-55N;023-58E;;;10;; +EYKA;--;---;Kaunas;;Lithuania;6;54-54N;023-55-12E;;;77;; +EYPA;--;---;Palanga Intl.;;Lithuania;6;55-55-12N;021-03E;;;10;; +EYSA;--;---;Siauliai Intl./Mil.;;Lithuania;6;55-53-38N;023-23-42E;;;135;; +EYVI;26;730;Vilnius;;Lithuania;6;54-38N;025-06E;;;162;156;P +FAAB;68;406;Alexander Bay;;South Africa;1;28-34S;016-32E;28-34S;016-32E;21;0;P +FAAN;68;546;Aliwal North;;South Africa;1;30-43S;026-43E;;;1348;1300;P +FABL;68;442;Bloemfontein, Bloemfontein Airport;;South Africa;1;29-06S;026-18E;29-06S;026-18E;1354;1400;P +FABM;68;461;Bethlehem Airport;;South Africa;1;28-15S;028-20E;28-15S;028-20E;1686;1700;P +FABY;68;728;Beaufort West;;South Africa;1;32-21S;022-35E;32-21S;022-35E;842;900;P +FACL;68;380;Carolina;;South Africa;1;26-04S;030-07E;;;1693;1700; +FACT;68;816;Cape Town, Cape Town International Airport;;South Africa;1;33-59S;018-36E;33-58S;018-36E;42;0;P +FACV;68;618;Calvinia;;South Africa;1;31-28S;019-46E;;;975;1000;P +FADA;68;536;De Aar;;South Africa;1;30-39S;024-01E;;;1247;; +FADN;68;588;Durban, Durban International Airport;;South Africa;1;29-58S;030-57E;29-58S;030-57E;14;0;P +FADY;68;538;De Aar;;South Africa;1;30-38S;023-55E;;;384;; +FAEL;68;858;East London, East London Airport;;South Africa;1;33-02S;027-50E;33-02S;027-50E;125;0;P +FAEO;--;---;Ermelo;;South Africa;1;26-30S;029-59E;;;1737;; +FAER;68;156;Ellisras;;South Africa;1;23-43-35S;027-41-18E;;;851;; +FAFF;68;362;Frankfort;;South Africa;1;27-16S;028-30E;;;1499;1500;P +FAFR;68;624;Fraserburg;;South Africa;1;31-55S;021-31E;;;1264;1300;P +FAGB;68;116;Gobabis;;Namibia;1;22-28S;018-58E;;;1440;1400;P +FAGE;68;906;Gough Island;;South Africa;1;40-21S;009-53W;40-21S;009-53W;54;0;P +FAGG;68;828;George, George Airport;;South Africa;1;34-00S;022-23E;33-58S;022-25E;193;0;P +FAGM;--;---;Rand;;South Africa;1;26-15S;028-00E;;;1668;; +FAGR;68;736;Graaff Reinet;;South Africa;1;32-15S;024-32E;;;752;800;P +FAGY;--;---;Greytown;;South Africa;1;29-07S;030-34E;;;1100;; +FAHS;68;290;Hoedspruit;;South Africa;1;24-22S;031-02E;;;513;500;P +FAIR;68;263;Pretoria Irene ;;South Africa;1;25-55S;028-13E;25-55S;028-13E;1523;1500; +FAJS;68;368;Johannesburg International Airport;;South Africa;1;26-08S;028-14E;26-08S;028-14E;1694;1700;P +FAKD;68;347;Klerksdorp;;South Africa;1;26-52S;026-43E;;;1355;; +FAKM;68;438;Kimberley, Kim-Apt;;South Africa;1;28-48S;024-46E;28-48S;024-46E;1198;1200;P +FALA;--;---;Lanseria;;South Africa;1;25-56S;027-56E;;;1377;; +FALT;--;---;Lichtenburg;;South Africa;1;26-11S;026-11E;;;1486;; +FALW;68;714;Langebaanweg;;South Africa;1;32-58S;018-10E;;;31;0;P +FALY;68;476;Ladysmith;;South Africa;1;28-34S;029-46E;28-34S;029-46E;1078;1100;P +FAMB;68;638;Middelburg;;South Africa;1;31-29S;025-02E;;;1270;1300;P +FAME;68;994;Marion Island;;South Africa;1;46-53S;037-52E;46-53S;037-52E;22;0;P +FAMG;--;---;Margate;;South Africa;1;30-51S;030-21E;;;151;; +FAMM;68;242;Mafikeng Intl. Ad;;South Africa;1;25-47S;025-32E;25-47S;025-32E;1281;1300;P +FAMO;68;928;Mossel Bay Cape Saint Blaize ;;South Africa;1;34-11S;022-09E;;;59;0;P +FANC;--;---;Newcastle;;South Africa;1;27-47S;029-59E;;;1251;; +FANS;68;288;Nelspruit;;South Africa;1;25-26S;030-59E;;;671;700;P +FAOB;--;---;Overberg;;South Africa;1;34-36S;020-17E;;;75;; +FAOH;68;826;Oudtshoorn;;South Africa;1;33-34S;022-13E;;;359;0;P +FAPB;68;174;Pietersburg;;South Africa;1;23-52S;029-27E;23-52S;029-27E;1228;1200;P +FAPE;68;842;Port Elizabeth, Port E Apt;;South Africa;1;33-59S;025-36E;33-59S;025-36E;61;0;P +FAPG;--;---;Plettenberg Bay;;South Africa;1;34-05-17S;023-19-46E;;;139;; +FAPH;68;190;Phalaborwa;;South Africa;1;23-56S;031-09E;;;427;400;P +FAPI;--;---;Pietersburg Civil ;;South Africa;1;23-54S;029-28E;;;1327;; +FAPJ;68;674;Port St Johns;;South Africa;1;31-38S;029-33E;;;47;0;P +FAPM;--;---;Pietermaritzburg;;South Africa;1;29-39S;030-24E;;;739;; +FAPR;68;262;Pretoria;;South Africa;1;25-44S;028-11E;25-44S;028-11E;1330;1300;P +FAPS;--;---;Potchefstroom;;South Africa;1;26-40-16S;027-04-55E;;;1378;; +FAQT;68;648;Queenstown;;South Africa;1;31-54S;026-52E;;;1094;1100;P +FARB;68;498;Richard Bay;;South Africa;1;28-48S;032-06E;;;47;0;P +FARG;--;---;Rustenburg;;South Africa;1;25-38-39S;027-16-16E;;;1128;; +FASB;68;512;Springbok;;South Africa;1;29-40S;017-52E;29-40S;017-52E;1006;1000;P +FASI;--;---;Springs;;South Africa;1;26-14-54S;028-23-51E;;;1628;; +FASR;--;---;Standerton;;South Africa;1;26-56S;029-13E;;;1581;; +FASS;--;---;Sishen;;South Africa;1;27-38-59S;023-00E;;;1173;; +FATC;68;902;Tristan Da Cunha;;South Africa;1;37-03S;012-19W;;;23;0; +FATZ;--;---;Tzaneen ;;South Africa;1;23-49S;030-20E;;;583;; +FAUL;--;---;Ulundi;;South Africa;1;28-19-06S;031-25-04E;;;525;; +FAUP;68;424;Upington, Up-Apt;;South Africa;1;28-24S;021-16E;28-24S;021-16E;839;800;P +FAUT;68;668;Umtata;;South Africa;1;31-32S;028-40E;;;742;700;P +FAVB;68;338;Vryburg;;South Africa;1;26-57S;024-38E;;;1234;1200;P +FAVG;--;---;Durban/Virginia;;South Africa;1;29-46-14S;031-03-37E;;;6;; +FAVR;68;614;Vredendal;;South Africa;1;31-40S;018-30E;;;34;0;P +FAVV;--;---;Vereeniging;;South Africa;1;26-34-29S;027-57-45E;;;1483;; +FAVY;--;---;Vryheid;;South Africa;1;27-47S;030-48E;;;1158;; +FAWB;--;---;Wonderboom / Pretoria;;South Africa;1;25-39S;028-13E;;;1248;; +FAWI;--;---;Witbank;;South Africa;1;25-49-51S;029-11-32E;;;1553;; +FAWK;68;264;Waterkloof (SAAF);;South Africa;1;25-50S;028-13E;;;1498;1500;P +FAWM;68;346;Welkom;;South Africa;1;28-00S;026-40E;;;1338;1300;P +FBFT;68;054;Francistown;;Botswana;1;21-13S;027-30E;21-10S;027-29E;1001;1000;P +FBGZ;68;024;Ghanzi;;Botswana;1;21-42S;021-39E;21-42S;021-39E;1131;1100;P +FBJW;68;234;Jwaneng;;Botswana;1;24-36S;024-40E;;;1189;1200; +FBKE;68;029;Kasane;;Botswana;1;17-49S;025-09E;;;968;1000; +FBLT;68;040;Letlhakane;;Botswana;1;21-25S;025-36E;;;986;985; +FBMN;68;032;Maun;;Botswana;1;19-59S;023-25E;19-59S;023-25E;945;900;P +FBSK;68;240;Seretse Khama International Airport;;Botswana;1;24-13S;025-55E;24-13S;025-55E;1005;1005; +FBSN;68;038;Sua-Pan;;Botswana;1;20-28S;025-59E;20-28S;025-59E;903;904; +FBSP;--;---;Selebi Phikwe;;Botswana;1;22-03-19S;027-49-13E;;;892;; +FBSW;68;026;Shakawe;;Botswana;1;18-22S;021-51E;;;1032;1000;P +FBTE;68;226;Tshane;;Botswana;1;24-01S;021-53E;;;1118;1100;P +FBTS;68;328;Tsabong;;Botswana;1;26-03S;022-27E;26-03S;022-27E;960;1000;P +FCBB;64;450;Brazzaville / Maya-Maya;;Congo, Republic of the;1;04-15S;015-15E;04-15S;015-15E;319;316;P +FCBD;64;453;Djambala;;Congo, Republic of the;1;02-32S;014-46E;02-32S;014-46E;791;790;P +FCBM;64;402;Mouyondzi;;Congo, Republic of the;1;03-59S;013-55E;;;509;512;P +FCBO;64;452;M'Pouya;;Congo, Republic of the;1;02-37S;016-13E;;;311;312;P +FCBS;64;405;Sibiti;;Congo, Republic of the;1;03-41S;013-21E;;;530;531;P +FCOG;64;454;Gamboma;;Congo, Republic of the;1;01-52S;015-52E;;;476;377;P +FCOI;64;459;Impfondo;;Congo, Republic of the;1;01-37N;018-04E;01-37N;018-04E;335;326;P +FCOM;64;456;Makoua;;Congo, Republic of the;1;00-01S;015-35E;00-01S;015-35E;394;379;P +FCOS;64;460;Souanke;;Congo, Republic of the;1;02-04N;014-08E;;;549;550;P +FCOU;64;458;Ouesso;;Congo, Republic of the;1;01-37N;016-03E;01-37N;016-03E;352;352;P +FCPA;64;403;Makabana;;Congo, Republic of the;1;03-29S;012-37E;;;160;161;P +FCPL;64;401;Loubomo;;Congo, Republic of the;1;04-12S;012-42E;04-13S;012-40E;329;330;P +FCPP;64;400;Pointe-Noire;;Congo, Republic of the;1;04-49S;011-54E;04-49S;011-54E;17;17;P +FDMS;68;396;Manzini / Matsapa Airport;;Swaziland;1;26-32S;031-18E;;;641;; +FEFA;64;662;Alindao;;Central African Republic;1;05-03N;021-12E;;;447;449;P +FEFB;64;659;Obo;;Central African Republic;1;05-24N;026-30E;;;650;651;P +FEFF;64;650;Bangui;;Central African Republic;1;04-24N;018-31E;04-24N;018-31E;365;366;P +FEFG;64;656;Bangassou;;Central African Republic;1;04-44N;022-50E;04-44N;022-50E;499;500;P +FEFI;64;658;Birao;;Central African Republic;1;10-17N;022-47E;;;463;464;P +FEFL;64;605;Bossembele;;Central African Republic;1;05-16N;017-38E;;;673;674;P +FEFM;64;660;Bambari;;Central African Republic;1;05-51N;020-39E;;;474;475;P +FEFN;64;654;N'Dele;;Central African Republic;1;08-24N;020-39E;08-24N;020-39E;510;511;P +FEFO;64;601;Bouar;;Central African Republic;1;05-58N;015-38E;05-58N;015-38E;1019;1020;P +FEFR;64;655;Bria;;Central African Republic;1;06-32N;021-59E;;;583;584;P +FEFS;64;610;Bossangoa;;Central African Republic;1;06-29N;017-26E;06-29N;017-26E;464;465;P +FEFT;64;600;Berberati;;Central African Republic;1;04-15N;015-48E;04-13N;015-47E;582;583;P +FEFY;64;661;Yalinga;;Central African Republic;1;06-30N;023-16E;;;601;602;P +FGSL;64;810;Malabo/Fernando Poo;;Equatorial Guinea;1;03-45N;008-46E;;;56;; +FHAW;61;902;Wide Awake Field Ascension Island ;;Saint Helena;1;07-58S;014-24W;07-58S;014-24W;86;79;P +FIMP;61;990;Plaisance Mauritius ;;Mauritius;1;20-26S;057-40E;;;55;57;P +FIMR;61;988;Rodrigues;;Mauritius;1;19-41S;063-25E;19-41S;063-25E;58;59;P +FJDG;61;967;Diego Garcia;;British Indian Ocean Territory;1;07-18S;072-24E;07-18S;072-24E;1;3;P +FKAB;64;880;Banyo;;Cameroon;1;06-47N;011-49E;;;1110;; +FKAF;64;920;Bafia;;Cameroon;1;04-44N;011-15E;;;500;500;P +FKAG;64;960;Abong-Mbang;;Cameroon;1;03-58N;013-12E;;;693;; +FKAL;64;961;Lomie;;Cameroon;1;03-09N;013-37E;;;624;; +FKAM;64;882;Meiganga;;Cameroon;1;06-32N;014-22E;;;1027;1027;P +FKAN;64;911;Nkongsamba;;Cameroon;1;04-57N;009-56E;04-57N;009-56E;816;821;P +FKAO;64;901;Betare-Oya;;Cameroon;1;05-36N;014-04E;;;815;804; +FKAY;64;900;Yoko;;Cameroon;1;05-33N;012-22E;05-33N;012-22E;1027;1031;P +FKKA;64;851;Maroua-Salak;;Cameroon;1;10-27N;014-15E;;;423;422;P +FKKB;64;971;Kribi;;Cameroon;1;02-57N;009-54E;;;10;16;P +FKKC;64;912;Tiko;;Cameroon;1;04-05N;009-22E;;;52;; +FKKD;64;910;Douala Obs.;;Cameroon;1;04-00N;009-44E;04-01N;009-42E;10;9;P +FKKF;64;890;Mamfe;;Cameroon;1;05-43N;009-17E;;;126;; +FKKI;64;931;Batouri;;Cameroon;1;04-28N;014-22E;04-28N;014-22E;656;656;P +FKKM;64;893;Koundja;;Cameroon;1;05-39N;010-45E;05-39N;010-45E;1208;1210;P +FKKN;64;870;Ngaoundere;;Cameroon;1;07-21N;013-34E;07-21N;013-34E;1114;1104;P +FKKR;64;860;Garoua;;Cameroon;1;09-20N;013-23E;09-20N;013-23E;242;244;P +FKKV;64;892;Bamenda ;;Cameroon;1;06-03N;010-07E;;;1239;; +FKKY;--;---;Younde Ii;;Cameroon;1;03-50N;011-32E;;;751;; +FKYS;64;950;Yaounde;;Cameroon;1;03-50N;011-31E;03-50N;011-31E;751;760;P +FLBA;67;413;Mbala;;Zambia;1;08-51S;031-20E;;;1673;; +FLCH;67;753;Choma;;Zambia;1;16-50S;027-04E;;;1213;1278;P +FLCP;67;581;Chipata;;Zambia;1;13-33S;032-35E;13-33S;032-35E;1028;1032;P +FLIK;67;481;Isoka;;Zambia;1;10-07S;032-38E;;;1360;; +FLKB;67;403;Kawambwa;;Zambia;1;09-48S;029-05E;;;1323;1324;P +FLKO;67;641;Kaoma;;Zambia;1;14-48S;024-48E;;;1213;1213;P +FLKS;67;475;Kasama;;Zambia;1;10-13S;031-08E;10-13S;031-08E;1382;1384;P +FLKW;67;663;Kabwe;;Zambia;1;14-27S;028-28E;14-27S;028-28E;1206;1207;P +FLLC;67;666;Lusaka City Airport;;Zambia;1;14-27S;028-28E;15-25S;028-19E;1280;1280; +FLLD;67;583;Lundazi;;Zambia;1;12-17S;033-12E;;;1143;; +FLLI;67;743;Livingstone;;Zambia;1;17-49S;025-49E;17-49S;025-49E;985;986;P +FLLS;67;665;Lusaka Internationalairport;;Zambia;1;15-19S;028-27E;15-19S;028-27E;1152;1154;P +FLMA;67;461;Mansa;;Zambia;1;11-06S;028-51E;;;1382;1384;P +FLMF;--;---;Mfuwe;;Zambia;1;13-15-32S;031-56-12E;;;573;; +FLMG;67;633;Mongu;;Zambia;1;15-15S;023-09E;15-15S;023-09E;1052;1053;P +FLMP;67;477;Mpika;;Zambia;1;11-54S;031-26E;;;1400;1402;P +FLMW;67;441;Mwinilunga;;Zambia;1;11-45S;024-26E;11-45S;024-26E;1361;1363;P +FLND;67;561;Ndola;;Zambia;1;13-00S;028-39E;13-00S;028-39E;1269;1270;P +FLPA;67;541;Kasempa;;Zambia;1;13-32S;025-51E;;;1234;1234;P +FLPE;67;673;Petauke;;Zambia;1;14-15S;031-17E;;;1035;1036;P +FLPO;67;543;Kabompo;;Zambia;1;13-36S;024-12E;;;1075;; +FLSE;67;571;Serenje;;Zambia;1;13-14S;030-13E;;;1384;; +FLSN;67;731;Senanga;;Zambia;1;16-06S;023-16E;;;1027;; +FLSS;67;741;Sesheke;;Zambia;1;17-28S;024-18E;;;949;951;P +FLSW;67;551;Solwezi;;Zambia;1;12-11S;026-23E;;;1386;; +FLZB;67;531;Zambezi;;Zambia;1;13-32S;023-07E;;;1077;1078;P +FMCH;67;002;Hahaya International Airport;;Comoros;1;11-32S;043-16E;11-32S;043-16E;29;29; +FMCV;67;004;Ouani Anjouan ;;Comoros;1;12-07S;044-26E;12-07S;044-26E;19;12;P +FMCZ;67;005;Dzaoudzi / Pamanzi Mayotte ;;Comoros;1;12-48S;045-17E;12-48S;045-17E;8;7;P +FMEE;61;980;Saint-Denis / Gillot;;Reunion;1;20-53S;055-31E;20-53S;055-31E;21;25;P +FMEP;61;984;Saint-Pierre;;Reunion;1;21-20S;055-29E;21-20S;055-29E;52;53;P +FMME;67;107;Antsirabe;;Madagascar;1;19-49S;047-04E;19-49S;047-04E;1523;1532; +FMMH;67;113;Mahanoro;;Madagascar;1;19-50S;048-48E;19-50S;048-48E;5;5;P +FMMI;67;083;Antananarivo / Ivato;;Madagascar;1;18-48S;047-29E;18-48S;047-29E;1279;1276;P +FMMO;67;073;Maintirano;;Madagascar;1;18-03S;044-02E;18-03S;044-02E;23;23;P +FMMS;67;072;Sainte-Marie Aerodrome;;Madagascar;1;17-05S;049-49E;17-05S;049-49E;2;3;P +FMMT;67;095;Tamatave;;Madagascar;1;18-07S;049-24E;18-07S;049-24E;5;6;P +FMMV;67;117;Morondava;;Madagascar;1;20-17S;044-19E;20-17S;044-19E;7;8;P +FMNA;67;009;Diego-Suarez;;Madagascar;1;12-21S;049-18E;12-21S;049-18E;114;105;P +FMND;67;022;Andapa;;Madagascar;1;14-39S;049-37E;;;473;474; +FMNH;67;025;Antalaha;;Madagascar;1;14-53S;050-15E;15-00S;050-20E;87;88;P +FMNL;67;019;Analalava;;Madagascar;1;14-38S;047-46E;14-38S;047-46E;105;57;P +FMNM;67;027;Majunga;;Madagascar;1;15-40S;046-21E;14-53S;050-15E;26;18;P +FMNN;67;012;Fascene Nossi-Be ;;Madagascar;1;13-19S;048-19E;13-19S;048-19E;10;9;P +FMNQ;67;037;Besalampy;;Madagascar;1;16-45S;044-29E;16-45S;044-29E;38;36; +FMNS;67;023;Sambava;;Madagascar;1;14-17S;050-10E;14-17S;050-10E;5;5; +FMNV;67;017;Vohemar;;Madagascar;1;13-22S;050-00E;13-22S;050-00E;6;5; +FMSD;67;197;Fort-Dauphin;;Madagascar;1;25-02S;046-57E;25-02S;046-57E;8;9;P +FMSF;67;137;Fianarantsoa;;Madagascar;1;21-27S;047-06E;21-27S;047-06E;1115;1109;P +FMSG;67;157;Farafangana;;Madagascar;1;22-48S;047-50E;22-48S;047-50E;8;6;P +FMSM;67;143;Mananjary;;Madagascar;1;21-12S;048-22E;21-12S;048-22E;5;6;P +FMSO;67;152;Ranohira;;Madagascar;1;22-33S;045-24E;22-33S;045-24E;824;824;P +FMSR;67;131;Morombe;;Madagascar;1;21-45S;043-22E;21-45S;043-22E;5;4; +FMST;67;161;Tulear;;Madagascar;1;23-23S;043-44E;23-23S;043-44E;8;8;P +FNBG;66;310;Monbaca Benguela ;;Angola;1;12-35S;013-25E;;;33;4;P +FNCA;66;104;Cabinda;;Angola;1;05-33S;012-11E;;;25;20;P +FNHU;66;318;Huambo Nova Lisboa ;;Angola;1;12-48S;015-45E;12-48S;015-45E;1710;1701;P +FNKU;66;325;Bie Silva Porto ;;Angola;1;12-23S;016-57E;;;1701;1699;P +FNLU;66;160;Luanda;;Angola;1;08-51S;013-14E;08-51S;013-14E;74;70;P +FOGM;64;550;Mouila;;Gabon;1;01-52S;011-01E;;;88;89;P +FOGR;64;551;Lambarene;;Gabon;1;00-43S;010-14E;;;27;26;P +FOOB;64;510;Bitam;;Gabon;1;02-05N;011-29E;02-05N;011-29E;600;599;P +FOOC;64;504;Cocobeach;;Gabon;1;01-00N;009-36E;;;12;13;P +FOOD;64;565;Moanda;;Gabon;1;01-32S;013-16E;01-32S;013-16E;572;573;P +FOOE;64;545;Mekambo;;Gabon;1;01-01N;013-56E;;;499;501;P +FOOG;64;501;Port-Gentil;;Gabon;1;00-42S;008-45E;00-42S;008-45E;3;4;P +FOOK;64;556;Makokou;;Gabon;1;00-34N;012-52E;;;509;515;P +FOOL;64;500;Libreville;;Gabon;1;00-27N;009-25E;00-27N;009-25E;12;15;P +FOOM;64;552;Mitzic;;Gabon;1;00-47N;011-32E;;;583;583;P +FOON;--;---;Franceville / Mvengue;;Gabon;1;01-39S;013-26E;;;441;; +FOOR;64;560;Lastoursville;;Gabon;1;00-50S;012-43E;;;483;485;P +FOOT;64;507;Tchibanga;;Gabon;1;02-51S;011-01E;;;83;79;P +FOOY;64;503;Mayumba;;Gabon;1;03-25S;010-39E;;;31;34;P +FPPR;61;934;Principe;;Sao Tome and Principe;1;01-39N;007-25E;;;3;5;P +FPST;61;931;S. Tome;;Sao Tome and Principe;1;00-23N;006-43E;00-23N;006-43E;8;13;P +FQBR;67;297;Beira;;Mozambique;1;19-48S;034-54E;19-48S;034-54E;8;16; +FQCB;67;231;Cuamba;;Mozambique;1;14-49S;036-32E;;;606;607; +FQCH;67;295;Chimoio;;Mozambique;1;19-07S;033-28E;;;731;732; +FQIN;67;323;Inhambane;;Mozambique;1;23-52S;035-23E;23-52S;035-23E;14;15; +FQLC;67;217;Lichinga;;Mozambique;1;13-18S;035-14E;13-17S;035-15E;1364;1365; +FQLU;67;241;Lumbo;;Mozambique;1;15-02S;040-40E;15-02S;040-40E;10;11; +FQMA;67;341;Maputo / Mavalane;;Mozambique;1;25-55S;032-34E;25-55S;032-34E;39;44; +FQMP;67;205;Mocimboa Da Praia;;Mozambique;1;11-21S;040-22E;;;27;29; +FQNP;67;237;Nampula;;Mozambique;1;15-06S;039-17E;15-06S;039-17E;438;441; +FQPB;67;215;Pemba;;Mozambique;1;12-59S;040-32E;12-58S;040-30E;101;50; +FQQL;67;283;Quelimane;;Mozambique;1;17-53S;036-53E;17-53S;036-53E;6;16; +FQTE;67;261;Tete;;Mozambique;1;16-11S;033-35E;16-11S;033-35E;149;150; +FQTT;--;---;Tete / Chingozi;;Mozambique;1;16-06S;033-38E;;;160;; +FQVL;67;315;Vilanculos;;Mozambique;1;22-00S;035-19E;;;20;21; +FQXA;67;335;Xai Xai;;Mozambique;1;25-03S;033-38E;;;4;5; +FSIA;63;980;Seychelles Inter-National Airport;;Seychelles;1;04-40S;055-31E;04-40S;055-31E;3;3;P +FSSS;63;985;Seychelles International Airport Rawinsonde Station ;;Seychelles;1;04-41S;055-32E;04-41S;055-32E;4;4; +FTTA;64;750;Sarh;;Chad;1;09-09N;018-23E;09-09N;018-23E;365;365;P +FTTC;64;756;Abeche;;Chad;1;13-51N;020-51E;13-51N;020-51E;545;549;P +FTTD;64;706;Moundou;;Chad;1;08-37N;016-04E;;;428;422;P +FTTJ;64;700;Ndjamena;;Chad;1;12-08N;015-02E;12-08N;015-02E;295;295;P +FTTK;64;708;Bokoro;;Chad;1;12-23N;017-03E;;;300;301;P +FTTL;64;702;Bol-Berim;;Chad;1;13-26N;014-44E;;;291;292;P +FTTN;64;754;Am-Timan;;Chad;1;11-02N;020-17E;;;433;436;P +FTTP;64;709;Pala;;Chad;1;09-22N;014-55E;;;467;455;P +FTTY;64;753;Faya;;Chad;1;18-00N;019-10E;18-00N;019-10E;235;234;P +FVBB;67;991;Beitbridge;;Zimbabwe;1;22-13S;030-00E;22-13S;030-00E;456;457;P +FVBI;67;755;Binga;;Zimbabwe;1;17-37S;027-20E;;;620;617; +FVBU;67;965;Bulawayo Airport;;Zimbabwe;1;20-01S;028-37E;20-01S;028-37E;1326;1326;P +FVCH;67;983;Chipinge;;Zimbabwe;1;20-12S;032-37E;;;1131;1132;P +FVCZ;67;977;Buffalo Range;;Zimbabwe;1;21-01S;031-35E;21-01S;031-35E;429;430;P +FVFA;67;843;Victoria Falls;;Zimbabwe;1;18-06S;025-51E;18-06S;025-51E;1061;1062;P +FVGO;67;861;Gokwe;;Zimbabwe;1;18-13S;028-56E;18-13S;028-56E;1282;1282;P +FVHA;67;775;Harare Kutsaga ;;Zimbabwe;1;17-55S;031-08E;17-56S;031-06E;1479;1480;P +FVKA;67;765;Karoi;;Zimbabwe;1;16-50S;029-37E;16-50S;029-37E;1343;1344;P +FVKB;67;761;Kariba;;Zimbabwe;1;16-31S;028-53E;16-31S;028-53E;518;518; +FVMT;67;781;Mutoko;;Zimbabwe;1;17-25S;032-13E;17-25S;032-13E;1244;1244; +FVMV;67;975;Masvingo;;Zimbabwe;1;20-04S;030-52E;20-04S;030-52E;1094;1095;P +FVRU;67;881;Rusape;;Zimbabwe;1;18-32S;032-08E;18-32S;032-09E;1430;1430;P +FVTL;67;867;Gweru;;Zimbabwe;1;19-27S;029-51E;19-27S;029-51E;1428;1429;P +FVWN;67;853;Hwange National Park;;Zimbabwe;1;18-38S;027-00E;18-38S;026-51E;1079;1077;P +FWCL;67;693;Chileka;;Malawi;1;15-41S;034-58E;15-41S;034-58E;766;767;P +FWCT;67;421;Chitipa;;Malawi;1;09-42S;033-16E;;;1278;1278;P +FWDZ;67;689;Dedza;;Malawi;1;14-19S;034-16E;;;1630;1632; +FWKA;67;423;Karonga;;Malawi;1;09-57S;033-53E;09-57S;033-54E;529;529;P +FWKI;67;586;Lilongwe International Airport;;Malawi;1;13-47S;033-46E;13-47S;033-47E;1229;1229;P +FWKK;67;591;Nkhota Kota;;Malawi;1;12-55S;034-16E;;;500;500; +FWMG;67;695;Mangochi;;Malawi;1;14-26S;035-15E;;;485;485;P +FWMY;67;690;Monkey Bay;;Malawi;1;14-05S;034-55E;;;474;474; +FWMZ;67;485;Mzimba;;Malawi;1;11-53S;033-37E;11-53S;033-37E;1349;1351;P +FWSM;67;597;Salima;;Malawi;1;13-45S;034-35E;13-45S;034-35E;513;513;P +FWUU;67;489;Mzuzu;;Malawi;1;11-27S;034-01E;11-27S;034-01E;1251;1253;P +FXMM;--;---;Maseru / Moshoeshoe;;Lesotho;1;29-27S;027-33E;;;1631;; +FXMU;68;454;Maseru-Mia;;Lesotho;1;29-27S;027-33E;;;1631;1628;P +FYGF;68;014;Grootfontein;;Namibia;1;19-36S;018-07E;19-36S;018-07E;1411;1400;P +FYKM;--;---;Katima Mulilo;;Namibia;1;17-38-04S;024-10-36E;;;985;; +FYKT;68;312;Keetmanshoop;;Namibia;1;26-32S;018-07E;26-32S;018-07E;1067;1100;P +FYLZ;--;---;Luderitz / Diaz Point;;Namibia;1;26-41S;015-15E;;;130;; +FYOA;--;---;Ondangwa;;Namibia;1;17-52-42S;015-57-09E;;;1096;; +FYRK;--;---;Rooikop Saaf / Civ ;;Namibia;1;22-59S;014-39E;;;88;; +FYRU;68;018;Rundu;;Namibia;1;17-55S;019-46E;;;1083;1100;P +FYWB;--;---;Walvis Bay;;Namibia;1;22-58-59S;014-39E;;;46;; +FYWH;68;112;J. G. Strijdom;;Namibia;1;22-29S;017-28E;22-29S;017-28E;1715;1700;P +FYWW;--;---;Windhoek, Town MET;;Namibia;1;22-34S;017-06E;;;1725;; +FZAA;64;210;Kinshasa / N'Djili;;Congo, Democratic Republic of the;1;04-23S;015-26E;04-23S;015-26E;309;312;P +FZAG;64;201;Moanda;;Congo, Democratic Republic of the;1;06-00S;012-25E;;;27;27;P +FZAM;64;207;Matadi;;Congo, Democratic Republic of the;1;05-48S;013-26E;05-48S;013-26E;355;340;P +FZAN;64;206;Inga;;Congo, Democratic Republic of the;1;05-31S;013-35E;;;277;277;P +FZBA;64;115;Inongo;;Congo, Democratic Republic of the;1;01-58S;018-16E;01-58S;018-16E;300;300;P +FZBO;64;108;Bandundu;;Congo, Democratic Republic of the;1;03-18S;017-21E;;;324;324;P +FZCA;64;222;Kikwit;;Congo, Democratic Republic of the;1;05-02S;018-48E;05-02S;018-48E;518;449;P +FZCS;64;217;Kenge;;Congo, Democratic Republic of the;1;04-55S;017-04E;;;563;563;P +FZEA;64;005;Mbandaka;;Congo, Democratic Republic of the;1;00-03N;018-16E;00-03N;018-16E;345;317;P +FZFK;64;006;Gemena;;Congo, Democratic Republic of the;1;03-17N;019-47E;;;475;446;P +FZGN;64;126;Boende;;Congo, Democratic Republic of the;1;00-13S;020-51E;00-13S;020-51E;351;351;P +FZIA;64;040;Kisangani;;Congo, Democratic Republic of the;1;00-31N;025-11E;00-31N;025-11E;415;396;P +FZMB;64;072;Butembo;;Congo, Democratic Republic of the;1;00-08N;029-16E;;;1840;1840;P +FZNA;64;184;Goma;;Congo, Democratic Republic of the;1;01-41S;029-14E;;;1552;1552;P +FZNC;64;157;Rutshuru;;Congo, Democratic Republic of the;1;01-11S;029-27E;;;1275;1275;P +FZOA;64;155;Kindu;;Congo, Democratic Republic of the;1;02-57S;025-55E;02-57S;025-55E;497;497;P +FZQA;64;360;Lubumbashi-Luano;;Congo, Democratic Republic of the;1;11-40S;027-29E;;;1276;1298;P +FZQM;64;328;Kolwezi;;Congo, Democratic Republic of the;1;10-43S;025-27E;;;1405;1526;P +FZRA;64;282;Manono;;Congo, Democratic Republic of the;1;07-17S;027-26E;07-17S;027-26E;614;633;P +FZRF;64;285;Kalemie;;Congo, Democratic Republic of the;1;05-53S;029-11E;05-52S;029-11E;790;818;P +FZRQ;64;276;Kongolo;;Congo, Democratic Republic of the;1;05-21S;027-00E;;;561;561; +FZSA;64;315;Kamina / Base;;Congo, Democratic Republic of the;1;08-38S;025-15E;08-38S;025-15E;1088;1106;P +FZUA;64;235;Kananga;;Congo, Democratic Republic of the;1;05-53S;022-25E;;;654;657;P +FZUK;64;228;Tshikapa;;Congo, Democratic Republic of the;1;06-25S;020-51E;;;521;481;P +FZVA;64;146;Lodja;;Congo, Democratic Republic of the;1;03-29S;023-28E;;;479;500;P +FZVI;64;246;Lusambo;;Congo, Democratic Republic of the;1;04-58S;023-26E;;;424;424;P +FZVS;64;224;Ilebo;;Congo, Democratic Republic of the;1;04-20S;020-35E;;;465;420;P +FZWA;64;247;Mbuji-Mayi;;Congo, Democratic Republic of the;1;06-10S;023-37E;;;633;677;P +GABG;61;296;Bougouni;;Mali;1;11-25N;007-30W;11-25N;007-30W;350;351;P +GABS;61;291;Bamako / Senou;;Mali;1;12-32N;007-57W;12-32N;007-57W;380;381;P +GAGO;61;226;Gao;;Mali;1;16-16N;000-03W;16-16N;000-03W;265;260;P +GAHB;61;240;Hombori;;Mali;1;15-20N;001-41W;;;287;288;P +GAKA;61;285;Kenieba;;Mali;1;12-51N;011-14W;;;132;132;P +GAKL;61;214;Kidal;;Mali;1;18-26N;001-21E;18-26N;001-21E;458;459;P +GAKO;61;293;Koutiala;;Mali;1;12-23N;005-28W;;;365;367;P +GAKT;61;270;Kita;;Mali;1;13-04N;009-28W;;;333;334;P +GAKY;61;257;Kayes;;Mali;1;14-26N;011-26W;14-26N;011-26W;47;47;P +GAMB;61;265;Mopti;;Mali;1;14-31N;004-06W;14-31N;004-06W;276;272;P +GAMK;61;250;Menaka;;Mali;1;15-52N;002-13E;;;278;278;P +GANK;61;233;Nara;;Mali;1;15-10N;007-17W;15-10N;007-17W;271;265;P +GANR;61;230;Nioro Du Sahel;;Mali;1;15-14N;009-21W;;;235;237;P +GASG;61;272;Segou;;Mali;1;13-24N;006-09W;13-26N;006-17W;288;289;P +GASK;61;297;Sikasso;;Mali;1;11-21N;005-41W;11-21N;005-41W;374;375;P +GASN;61;277;San;;Mali;1;13-20N;004-50W;;;283;284;P +GATB;61;223;Tombouctou;;Mali;1;16-43N;003-00W;16-43N;003-00W;263;264;P +GATS;61;202;Tessalit;;Mali;1;20-12N;000-59E;20-12N;000-59E;494;491;P +GBYD;61;701;Banjul / Yundum;;Gambia, The;1;13-21N;016-48W;13-21N;016-48W;36;36;P +GCFV;60;035;Fuerteventura / Aeropuerto;;Spain;1;28-27N;013-52W;;;22;30; +GCHI;60;001;Hierro / Aeropuerto;;Spain;1;27-49N;017-53W;;;32;32; +GCLA;60;005;La Palma / Aeropuerto;;Spain;1;28-37N;017-45W;;;29;31;P +GCLP;60;030;Gran Canaria - Canary Islands;;Spain;1;27-56N;015-23W;27-56N;015-23W;23;47;P +GCRR;60;040;Lanzarote / Aeropuerto;;Spain;1;28-57N;013-36W;;;14;21;P +GCTS;60;025;Tenerife Sur;;Spain;1;28-03N;016-34W;;;64;77; +GCXO;60;015;Tenerife / Los Rodeos;;Spain;1;28-28N;016-19W;;;632;617;P +GEML;60;338;Melilla;;Spain;1;35-17N;002-57W;;;47;55;P +GFLL;61;856;Lungi;;Sierra Leone;1;08-37N;013-12W;08-37N;013-12W;25;27;P +GGBF;61;781;Bafata;;Guinea-Bissau;1;12-10N;014-40W;;;42;43; +GGOV;61;766;Bissau Aeroport ;;Guinea-Bissau;1;11-53N;015-39W;11-53N;015-39W;39;36; +GLRB;65;660;Grand Bassa, Roberts Field;;Liberia;1;06-15N;010-21W;;;18;; +GMAA;60;250;Agadir;;Morocco;1;30-23N;009-34W;30-23N;009-34W;27;23;P +GMAD;60;252;Agadir Al Massira;;Morocco;1;30-20N;009-24W;30-20N;009-25W;74;74; +GMAT;60;285;Tan-Tan;;Morocco;1;28-27N;011-09W;;;229;200;P +GMFF;60;141;Fes-Sais;;Morocco;1;33-56N;004-59W;33-56N;004-59W;579;579;P +GMFI;60;160;Ifrane;;Morocco;1;33-30N;005-10W;33-30N;005-10W;1664;1665;P +GMFK;60;210;Errachidia;;Morocco;1;31-56N;004-24W;31-58N;004-25W;1034;1042;P +GMFM;60;150;Meknes;;Morocco;1;33-53N;005-32W;33-53N;005-32W;576;549;P +GMFN;60;340;Nador;;Morocco;1;35-09N;002-55W;35-09N;002-55W;3;16;P +GMFO;60;115;Oujda;;Morocco;1;34-47N;001-56W;34-47N;001-57W;468;470;P +GMFZ;60;127;Taza;;Morocco;1;34-13N;004-00W;34-13N;004-00W;509;510;P +GMMC;60;155;Casablanca;;Morocco;1;33-34N;007-40W;33-34N;007-40W;62;62;P +GMME;60;135;Rabat-Sale;;Morocco;1;34-03N;006-46W;34-03N;006-46W;84;75;P +GMMF;60;060;Sidi Ifni;;Morocco;1;29-22N;010-11W;29-22N;010-11W;58;66;P +GMMI;60;220;Essaouira;;Morocco;1;31-31N;009-47W;31-31N;009-47W;15;8;P +GMML;--;---;Laayoune/Hassan Isl;;Morocco;1;27-10N;013-12-59W;;;6;; +GMMN;60;156;Nouasseur;;Morocco;1;33-22N;007-35W;;;200;206;P +GMMS;60;185;Safi;;Morocco;1;32-17N;009-14W;32-17N;009-14W;52;45;P +GMMW;--;---;Nador/Arwi;;Morocco;1;34-59-20N;003-01-42W;;;175;; +GMMX;60;230;Marrakech;;Morocco;1;31-37N;008-02W;31-37N;008-02W;468;466;P +GMMY;60;120;Kenitra;;Morocco;1;34-18N;006-36W;;;5;14;P +GMMZ;60;265;Ouarzazate;;Morocco;1;30-56N;006-54W;30-56N;006-54W;1139;1140;P +GMTA;60;107;Al Hoceima;;Morocco;1;35-11N;003-51W;35-11N;003-51W;27;14;P +GMTN;60;318;Tetuan / Sania Ramel;;Morocco;1;35-35N;005-20W;;;10;10;P +GMTT;60;101;Tanger Aerodrome ;;Morocco;1;35-44N;005-54W;35-44N;005-54W;19;21;P +GOGG;61;695;Ziguinchor;;Senegal;1;12-33N;016-16W;12-33N;016-16W;26;23;P +GOGK;61;698;Kolda;;Senegal;1;12-53N;014-58W;;;10;10;P +GOGS;61;697;Cap-Skirring;;Senegal;1;12-24N;016-45W;;;16;13; +GOOD;61;666;Diourbel;;Senegal;1;14-39N;016-14W;;;7;9;P +GOOG;61;627;Linguere;;Senegal;1;15-23N;015-07W;;;20;21;P +GOOK;61;679;Kaolack;;Senegal;1;14-08N;016-04W;;;6;7;P +GOOY;61;641;Dakar / Yoff;;Senegal;1;14-44N;017-30W;14-44N;017-30W;27;24;P +GOSM;61;630;Matam;;Senegal;1;15-39N;013-15W;;;15;17;P +GOSP;61;612;Podor;;Senegal;1;16-39N;014-58W;;;6;7;P +GOSS;61;600;Saint-Louis;;Senegal;1;16-03N;016-27W;16-03N;016-27W;4;4;P +GOTK;61;699;Kedougou;;Senegal;1;12-34N;012-13W;;;178;167;P +GOTT;61;687;Tambacounda;;Senegal;1;13-46N;013-41W;13-46N;013-41W;49;50;P +GQNA;61;499;Aioun El Atrouss;;Mauritania;1;16-42N;009-36W;16-42N;009-36W;223;223;P +GQNB;61;461;Boutilimit;;Mauritania;1;17-32N;014-41W;;;77;75;P +GQND;61;450;Tidjikja;;Mauritania;1;18-34N;011-26W;;;396;402;P +GQNF;61;498;Kiffa;;Mauritania;1;16-38N;011-24W;16-38N;011-24W;115;115;P +GQNI;61;497;Nema;;Mauritania;1;16-36N;007-16W;16-36N;007-16W;269;269;P +GQNJ;61;437;Akjoujt;;Mauritania;1;19-45N;014-22W;;;123;120;P +GQNK;61;492;Kaedi;;Mauritania;1;16-09N;013-31W;;;18;18; +GQNN;61;442;Nouakchott;;Mauritania;1;18-06N;015-57W;18-06N;015-57W;2;3;P +GQNR;61;489;Rosso;;Mauritania;1;16-30N;015-49W;;;5;6;P +GQPA;61;421;Atar;;Mauritania;1;20-31N;013-04W;20-31N;013-04W;226;224;P +GQPP;61;415;Nouadhibou;;Mauritania;1;20-56N;017-02W;20-56N;017-02W;5;3;P +GQPT;61;401;Bir Moghrein;;Mauritania;1;25-14N;011-37W;25-14N;011-37W;364;360;P +GSVO;60;096;Villa Cisneros;;Western Sahara;1;23-42N;015-52W;23-42N;015-56W;10;10;P +GUCY;61;832;Conakry / Gbessia;;Guinea;1;09-34N;013-37W;09-34N;013-38W;26;26; +GUFH;61;833;Faranah / Badala;;Guinea;1;10-02N;010-45W;;;458;459; +GUID;61;818;Kindia;;Guinea;1;10-03N;012-52W;;;458;459; +GUKU;61;834;Kissidougou;;Guinea;1;09-11N;010-06W;;;525;525; +GULB;61;809;Labe;;Guinea;1;11-19N;012-18W;11-19N;012-18W;1025;1026; +GUMA;61;847;Macenta;;Guinea;1;08-32N;009-28W;;;543;544; +GUNZ;61;849;N'Zerekore;;Guinea;1;07-44N;008-50W;;;470;470; +GUOK;61;816;Boke;;Guinea;1;10-56N;014-19W;;;69;69; +GUSI;61;811;Siguiri;;Guinea;1;11-26N;009-10W;;;362;366; +GUXD;61;829;Kankan;;Guinea;1;10-23N;009-18W;10-23N;009-18W;377;384; +GVAC;08;594;Sal;;Cape Verde;1;16-44N;022-57W;16-44N;022-57W;54;55;P +HAAB;63;450;Addis Ababa;;Ethiopia;1;08-59N;038-48E;08-59N;038-48E;2355;2324;P +HAAG;--;---;Agordat ;;Ethiopia;1;15-33N;037-53E;;;626;; +HAAM;63;500;Arba Minch;;Ethiopia;1;06-04N;037-40E;;;1219;; +HAAW;--;---;Awash ;;Ethiopia;1;08-59N;040-10E;;;1052;; +HAAX;--;---;Axum;;Ethiopia;1;14-07N;038-43E;;;2134;; +HABC;--;---;Baco / Bako ;;Ethiopia;1;05-50N;036-37E;;;1311;; +HABD;63;332;Bahar Dar;;Ethiopia;1;11-36N;037-24E;;;1820;1805;P +HADC;63;333;Combolcha;;Ethiopia;1;11-05N;039-43E;;;1864;1916;P +HADM;63;334;Debremarcos;;Ethiopia;1;10-21N;037-43E;;;2476;2440;P +HADR;63;471;Dire Dawa;;Ethiopia;1;09-36N;041-52E;;;1146;1146;P +HAGH;--;---;Ghinnir / Ginir ;;Ethiopia;1;07-09N;040-43E;;;1844;; +HAGN;63;331;Gondar;;Ethiopia;1;12-32N;037-26E;;;1985;1966;P +HAGO;63;478;Gode;;Ethiopia;1;05-06N;044-35E;05-06N;044-35E;320;320;P +HAGR;63;403;Gore;;Ethiopia;1;08-10N;035-33E;;;1974;1974;P +HAHM;63;451;Harar Meda;;Ethiopia;1;08-44N;039-00E;08-44N;039-00E;1876;1876;P +HAJJ;63;473;Jiggiga;;Ethiopia;1;09-20N;042-43E;;;1644;1644;P +HAJM;63;402;Jimma;;Ethiopia;1;07-40N;036-50E;;;1676;1577;P +HAKD;--;---;Kabre Dare Military ;;Ethiopia;1;06-45N;044-17E;;;550;; +HALA;63;460;Awassa;;Ethiopia;1;07-04N;038-30E;;;1652;1652;P +HAMK;63;330;Makale;;Ethiopia;1;13-30N;039-29E;;;2212;2212;P +HAML;--;---;Masslo / Meslo ;;Ethiopia;1;06-22N;039-50E;;;2274;; +HAMS;63;023;Massawa;;Ethiopia;1;15-37N;039-27E;;;10;10;P +HANG;63;533;Neghelli;;Ethiopia;1;05-17N;039-45E;05-17N;039-45E;1455;1455;P +HASB;63;043;Assab;;Ethiopia;1;13-04N;042-43E;;;14;14;P +HASO;--;---;Assosa / Asosa ;;Ethiopia;1;10-02N;034-32E;;;1733;; +HATS;--;---;Tessenei / Teseney ;;Ethiopia;1;15-07N;036-41E;;;615;; +HBBA;64;390;Bujumbura;;Burundi;1;03-19S;029-19E;03-19S;029-19E;782;783;P +HCMH;63;170;Hargeisa;;Somalia;1;09-30N;044-05E;;;1326;; +HCMI;63;160;Berbera;;Somalia;1;10-25N;045-01E;;;9;; +HCMM;63;260;Mogadiscio;;Somalia;1;02-02N;045-21E;02-02N;045-21E;9;9;P +HCMN;63;240;Belet Uen;;Somalia;1;04-42N;045-13E;;;173;173;P +HCMV;63;175;Burao;;Somalia;1;09-30N;045-34E;;;1032;; +HDAM;--;---;Djibouti \ Ambouli;;Djibouti;1;11-33N;043-10E;;;49;; +HEAR;62;337;El Arish;;Egypt;1;31-05N;033-49E;31-05N;033-50E;31;32; +HEAT;62;393;Asyut;;Egypt;1;27-03N;031-01E;27-11N;031-06E;226;70;P +HEAX;62;318;Alexandria / Nouzha;;Egypt;1;31-12N;029-57E;31-12N;029-57E;-2;7;P +HEBA;--;---;Alexandria Borg El Arab;;Egypt;1;31-31N;030-10E;;;54;; +HECA;62;366;Cairo Airport;;Egypt;1;30-08N;031-24E;;;64;74;P +HEGN;62;463;Hurguada;;Egypt;1;27-09N;033-43E;27-09N;033-43E;16;14; +HELX;62;405;Luxor;;Egypt;1;25-40N;032-42E;25-40N;032-42E;93;99;P +HEMM;62;306;Mersa Matruh;;Egypt;1;31-20N;027-13E;31-20N;027-13E;25;30; +HEPS;62;333;Port Said;;Egypt;1;31-16N;032-18E;31-16N;032-14E;6;6; +HESH;--;---;Sharm El Sheikhintl;;Egypt;1;27-58N;034-23E;;;50;; +HESN;62;414;Asswan;;Egypt;1;23-58N;032-47E;23-58N;032-47E;200;194;P +HETB;--;---;Taba;;Egypt;1;29-35-57N;034-46-36E;;;749;; +HETR;62;459;El Tor;;Egypt;1;28-14N;032-37E;28-14N;033-37E;21;14;P +HFFF;63;125;Djibouti;;Djibouti;1;11-33N;043-09E;11-33N;043-09E;13;19;P +HHAS;63;021;Asmara;;Ethiopia;1;15-17N;038-55E;15-17N;038-55E;2356;2325;P +HKEL;63;686;Eldoret;;Kenya;1;00-32N;035-17E;00-32N;035-17E;2120;2133;P +HKEM;63;720;Embu;;Kenya;1;00-30S;037-27E;00-30S;037-27E;1493;1493;P +HKGA;63;723;Garissa;;Kenya;1;00-28S;039-38E;00-28S;039-38E;138;147;P +HKIS;--;---;Isiolo ;;Kenya;1;00-21N;037-35E;;;1067;; +HKJK;--;---;Nairobi/Jomo Kenyatta Airport TWR/APP/NOF/Civil Airlines;;Kenya;1;01-19S;036-55E;;;1624;1624;P +HKKG;63;687;Kakamega;;Kenya;1;00-17N;034-47E;;;1530;; +HKKI;63;708;Kisumu;;Kenya;1;00-06S;034-45E;00-06S;034-45E;1157;1146;P +HKKR;63;710;Kericho;;Kenya;1;00-22S;035-21E;00-22S;035-21E;2184;2184;P +HKKS;63;709;Kisii;;Kenya;1;00-40S;034-47E;;;1493;; +HKKT;63;661;Kitale;;Kenya;1;01-01N;035-00E;01-01N;035-00E;1890;1875;P +HKLO;63;612;Lodwar;;Kenya;1;03-07N;035-37E;03-07N;035-37E;506;515;P +HKLU;63;772;Lamu;;Kenya;1;02-16S;040-50E;;;6;;P +HKMA;63;624;Mandera;;Kenya;1;03-56N;041-52E;03-56N;041-52E;230;231;P +HKMB;63;641;Marsabit;;Kenya;1;02-18N;037-54E;02-18N;037-54E;1219;1345;P +HKME;63;695;Meru;;Kenya;1;00-05N;037-39E;00-05N;037-39E;1554;1554;P +HKML;63;799;Malindi;;Kenya;1;03-14S;040-06E;03-14S;040-06E;20;23;P +HKMO;63;820;Mombasa;;Kenya;1;04-02S;039-37E;04-02S;039-37E;57;55;P +HKMU;63;766;Makindu;;Kenya;1;02-17S;037-50E;02-17S;037-50E;1000;1000;P +HKMY;63;619;Moyale;;Kenya;1;03-32N;039-03E;03-32N;039-03E;1097;1097;P +HKNA;63;740;Nairobi ACC/FIC/RCC/MET/COM/;;Kenya;1;01-19S;036-56E;;;1624;; +HKNC;63;741;Nairobi / Dagoretti;;Kenya;1;01-18S;036-45E;01-18S;036-45E;1798;1798;P +HKNI;63;717;Nyeri;;Kenya;1;00-30S;036-58E;00-30S;036-58E;1759;1759;P +HKNK;63;714;Nakuru;;Kenya;1;00-16S;036-06E;00-16S;036-04E;1901;1901;P +HKNO;63;737;Narok;;Kenya;1;01-08S;035-50E;01-06S;035-50E;1890;1890;P +HKNW;63;742;Nairobi / Wilson;;Kenya;1;01-19S;036-49E;;;1683;1679;P +HKNY;--;---;Nanyuki ;;Kenya;1;00-04S;037-02E;;;1905;; +HKVO;63;793;Voi;;Kenya;1;03-24S;038-34E;03-24S;038-34E;579;579;P +HKWJ;63;671;Wajir;;Kenya;1;01-45N;040-04E;01-45N;040-04E;244;244;P +HLGT;62;212;Ghat;;Libya;1;25-08N;010-09E;25-08N;010-08E;699;693;P +HLKF;62;271;Kufra;;Libya;1;24-13N;023-18E;24-13N;023-18E;417;436;P +HLLB;62;053;Benina;;Libya;1;32-06N;020-16E;32-05N;020-16E;131;132;P +HLLS;62;124;Sebha;;Libya;1;27-01N;014-27E;27-01N;014-26E;435;432;P +HLLT;62;010;Tripoli Inter-National Airport;;Libya;1;32-40N;013-09E;32-41N;013-10E;80;82;P +HLTD;62;103;Ghadames;;Libya;1;30-08N;009-30E;30-08N;009-30E;346;347;P +HRYG;64;381;Gisenyi;;Rwanda;1;01-40S;029-15E;;;1556;1554;P +HRYR;64;387;Kigali;;Rwanda;1;01-58S;030-07E;01-58S;030-07E;1491;1497;P +HSAT;62;680;Atbara;;Sudan;1;17-42N;033-58E;17-42N;033-58E;347;345;P +HSDN;62;650;Dongola;;Sudan;1;19-10N;030-29E;19-10N;030-29E;226;226;P +HSDZ;62;805;Damazine;;Sudan;1;11-47N;034-23E;11-47N;034-23E;474;470;P +HSFS;62;760;El Fasher;;Sudan;1;13-37N;025-20E;13-37N;025-20E;733;730;P +HSGF;62;752;Gedaref;;Sudan;1;14-02N;035-24E;14-02N;035-24E;599;599;P +HSGN;62;770;Geneina;;Sudan;1;13-29N;022-27E;13-29N;022-27E;805;805;P +HSKA;62;730;Kassala;;Sudan;1;15-28N;036-24E;15-28N;036-24E;500;500;P +HSKI;62;772;Kosti;;Sudan;1;13-10N;032-40E;13-10N;032-40E;381;381;P +HSLI;62;810;Kadugli;;Sudan;1;11-00N;029-43E;;;499;499;P +HSNL;62;790;Nyala;;Sudan;1;12-03N;024-53E;;;67;674;P +HSNR;62;762;Sennar;;Sudan;1;13-33N;033-37E;;;418;418;P +HSOB;62;771;El Obeid;;Sudan;1;13-10N;030-14E;13-10N;030-14E;574;574;P +HSPN;--;---;Port Sudan International;;Sudan;1;19-26N;037-14E;;;138;; +HSRN;62;801;Renk;;Sudan;1;11-45N;032-47E;;;282;282; +HSSJ;62;941;Juba;;Sudan;1;04-52N;031-36E;04-52N;031-36E;460;457;P +HSSM;62;840;Malakal;;Sudan;1;09-33N;031-39E;09-33N;031-39E;387;388;P +HSSP;62;641;Port Sudan;;Sudan;1;19-35N;037-13E;19-35N;037-13E;3;2;P +HSSS;62;721;Khartoum;;Sudan;1;15-36N;032-33E;15-36N;032-33E;382;380;P +HSSW;62;600;Wadi Halfa;;Sudan;1;21-49N;031-29E;21-48N;031-31E;183;183;P +HTAR;63;789;Arusha;;Tanzania;1;03-20S;036-37E;03-20S;036-37E;1387;1387;P +HTBU;63;729;Bukoba;;Tanzania;1;01-20S;031-49E;01-20S;031-49E;1137;1137;P +HTDA;63;894;Dar Es Salaam Airport;;Tanzania;1;06-52S;039-12E;06-52S;039-12E;55;55;P +HTDO;63;862;Dodoma;;Tanzania;1;06-10S;035-46E;06-10S;035-46E;1119;1120;P +HTIR;63;887;Iringa;;Tanzania;1;07-40S;035-45E;07-40S;035-45E;1426;1428;P +HTKA;63;801;Kigoma;;Tanzania;1;04-53S;029-38E;04-53S;029-38E;882;885;P +HTKI;--;---;Kilwa Masoko ;;Tanzania;1;08-56S;039-31E;;;18;; +HTKJ;63;791;Kilimanjaro Airport;;Tanzania;1;03-25S;037-04E;03-25S;037-04E;891;896;P +HTMB;63;932;Mbeya;;Tanzania;1;08-56S;033-28E;08-56S;033-28E;1704;1707;P +HTMG;63;866;Morogoro;;Tanzania;1;06-50S;037-39E;06-50S;037-39E;526;526;P +HTMO;63;818;Mombo;;Tanzania;1;04-53S;038-17E;04-55S;038-14E;511;411; +HTMS;63;790;Moshi;;Tanzania;1;03-21S;037-20E;;;854;831;P +HTMT;63;971;Mtwara;;Tanzania;1;10-16S;040-11E;10-16S;040-11E;113;113;P +HTMU;63;733;Musoma;;Tanzania;1;01-30S;033-48E;;;1147;1147;P +HTMW;63;756;Mwanza;;Tanzania;1;02-28S;032-55E;02-28S;032-55E;1139;1140;P +HTNA;63;969;Nachingwea;;Tanzania;1;10-21S;038-45E;;;463;465; +HTPE;63;845;Pemba / Karume Airport;;Tanzania;1;05-15S;039-49E;;;25;; +HTSE;63;816;Same;;Tanzania;1;04-05S;037-43E;04-05S;037-43E;872;872;P +HTSO;63;962;Songea;;Tanzania;1;10-41S;035-35E;10-41S;035-35E;1067;1067;P +HTSY;--;---;Shinyanga;;Tanzania;1;03-30S;033-00E;;;1100;; +HTTB;63;832;Tabora Airport;;Tanzania;1;05-05S;032-50E;05-05S;032-50E;1181;1190;P +HTTG;63;844;Tanga;;Tanzania;1;05-05S;039-04E;05-05S;039-04E;39;35;P +HTZA;63;870;Zanzibar / Kisauni;;Tanzania;1;06-13S;039-13E;;;15;15;P +HUAR;63;602;Arua;;Uganda;1;03-03N;030-55E;03-03N;030-55E;1204;1211;P +HUEN;63;705;Entebbe Airport;;Uganda;1;00-03N;032-27E;00-03N;032-27E;1155;1155;P +HUFP;--;---;Fort Portal ;;Uganda;1;00-40N;030-17E;;;1533;; +HUGU;63;630;Gulu;;Uganda;1;02-45N;032-20E;02-45N;032-20E;1104;1105;P +HUJI;63;682;Jinja;;Uganda;1;00-27N;033-11E;;;1175;1173;P +HUKB;63;726;Kabale;;Uganda;1;01-15S;029-59E;01-15S;029-59E;1867;1869;P +HUKS;63;674;Kasese;;Uganda;1;00-11N;030-06E;00-11N;030-06E;959;961;P +HULI;--;---;Lira;;Uganda;1;02-15N;032-54E;;;1091;; +HUMA;63;702;Mbarara;;Uganda;1;00-37S;030-39E;00-37S;030-39E;1412;1413;P +HUMI;63;654;Masindi;;Uganda;1;01-41N;031-43E;01-41N;031-43E;1146;1147;P +HUMO;--;---;Moroto ;;Uganda;1;02-32N;034-39E;;;1280;; +HUSO;63;658;Soroti;;Uganda;1;01-43N;033-37E;01-43N;033-37E;1132;1123;P +HUTO;63;684;Tororo;;Uganda;1;00-41N;034-10E;00-41N;034-10E;1170;1171;P +K01R;74;755;Claiborne Range, Airways Facilities Sector ;LA;United States;4;31-08N;092-34W;31-11N;092-38W;67;67; +K01T;--;---;High Island;LA;United States;4;28-08N;094-24W;;;30;; +K03Y;--;---;Hallock;MN;United States;4;48-47N;096-57W;;;250;; +K04V;--;---;Saguache, Saguache Municipal Airport;CO;United States;4;38-05-50N;106-10-07W;;;2385;; +K05F;--;---;Gatesville, City-County Airport;TX;United States;4;31-25-16N;097-47-49W;;;276;; +K07G;--;---;Charlotte, Fitch H Beach Airport;MI;United States;4;42-34-28N;084-48-41W;;;271;; +K07S;--;---;Deer Park, Deer Park Airport;WA;United States;4;47-58-27N;117-25-42W;47-57-44N;117-26-06W;672;668; +K0B9;--;---;Goat Island Remote Automatic Meteorological Observing System ;ME;United States;4;43-20N;070-24W;;;12;; +K0D1;--;---;South Haven, South Haven Area Regional Airport;MI;United States;4;42-21-03N;086-15-22W;;;203;; +K0E4;--;---;Payson;AZ;United States;4;34-14N;111-20W;;;1498;; +K0J4;--;---;Florala, Florala Municipal Airport;AL;United States;4;31-02-33N;086-18-42W;31-02-55N;086-18-69W;96;; +K0L3;--;---;Zuma Beach;CA;United States;4;34-01N;118-49W;;;6;; +K0V1;--;---;Custer, Custer County Airport;SD;United States;4;43-43-59N;103-36-41W;43-44-00N;103-36-50W;1711;1725; +K0W8;--;---;Chincoteague;VA;United States;4;37-56N;075-23W;;;2;; +K0Y2;--;---;Sturgeon Bay;WI;United States;4;44-47N;087-19W;;;176;; +K11J;--;---;Blakely, Early County Airport;GA;United States;4;31-23-49N;084-53-42W;;;65;; +K11R;--;---;Brenham, Brenham Municipal Airport;TX;United States;4;30-13-08N;096-22-27W;;;94;; +K12B;--;---;New Castles Coast Guard Light Station;NH;United States;4;43-07N;070-29W;;;1;; +K12C;--;---;Rochelle, Rochelle Municipal-Koritz Field Airport;IL;United States;4;41-53-35N;089-04-42W;;;238;; +K12N;--;---;Andover, Aeroflex-Andover Airport;NJ;United States;4;41-00-32N;074-44-12W;41-00-29N;074-44-22W;177;177; +K13A;--;---;Nogales Automatic Meteorological Observing System;AZ;United States;4;31-25N;110-51W;;;1198;; +K13G;--;---;Niagara Coast Guard Station;NY;United States;4;43-16N;079-04W;;;82;; +K14B;--;---;Great Duck Island Coast Guard Light Station;ME;United States;4;44-09N;068-15W;;;1;; +K14C;--;---;Frankfort Coast Guard Station;MI;United States;4;44-38N;086-15W;;;174;; +K14R;--;---;Caldwell, Caldwell Municipal Airport;TX;United States;4;30-30-55N;096-42-14W;;;119;; +K15B;--;---;Halfway Rock Coast Guard Light Station;ME;United States;4;43-39N;070-02W;;;1;; +K15C;--;---;Milwaukee Coast Guard Light Station;WI;United States;4;43-01N;087-57W;;;179;; +K16B;--;---;Heron Neck Coast Guard Light Station;ME;United States;4;44-02N;068-52W;;;1;; +K16C;--;---;Kenosha Coast Guard Station;WI;United States;4;42-35N;087-45W;;;223;; +K17C;--;---;Ludington Coast Guard Station;MI;United States;4;43-57N;086-28W;;;182;; +K17W;--;---;Wadena, Wadena Municipal Airport;MN;United States;4;46-26-48N;095-12-42W;;;418;; +K17Y;--;---;Mc Gregor, Isedor Iverson Airport;MN;United States;4;46-37-07N;093-18-35W;;;374;; +K18B;--;---;Monhegan / Manana Island;ME;United States;4;43-46N;069-20W;;;1;; +K18C;--;---;Michigan City Coast Guard Station;IN;United States;4;41-43N;086-55W;;;177;; +K18N;--;---;New London Ledge Coast Guard Station;CT;United States;4;41-18N;072-05W;;;8;; +K19C;--;---;Muskegon Coast Guard Station;MI;United States;4;43-14N;086-20W;;;182;; +K19D;--;---;Mora Municipal Automatic Weather Observing / Reporting System ;MN;United States;4;45-53N;093-16W;;;309;; +K19G;--;---;Buffalo Coast Guard Station;NY;United States;4;42-53N;078-53W;;;180;; +K19R;--;---;Ship Shoal Platform;LA;United States;4;28-41N;091-13W;;;18;; +K1A5;--;---;Franklin, Macon County Airport;NC;United States;4;35-13N;083-25W;;;616;; +K1A6;--;---;Middlesboro, Middlesboro-Bell County Airport;KY;United States;4;36-36-38N;083-44-14W;;;352;; +K1B7;--;---;Boothville Heliport;LA;United States;4;29-21N;89-26W;;;1;; +K1F0;--;---;Ardmore, Ardmore Downtown Executive Airport;OK;United States;4;34-08-49N;097-07-21W;;;257;; +K1F9;--;---;Bridgeport, Bridgeport Municipal Airport;TX;United States;4;33-10-31N;097-49-42W;;;260;; +K1G2;--;---;Granite Falls, Granite Falls Municipal Airport/Lenzen-Roe Memorial Field;MN;United States;4;44-45-11N;095-33-21W;;;319;; +K1G7;--;---;Mississippi Canyon;LA;United States;4;28-47N;089-03W;;;18;; +K1H2;--;---;Effingham, Effingham County Memorial Airport;IL;United States;4;39-04-14N;088-32-00W;;;179;; +K1J1;--;---;Saint Simon Island Coast Guard Station;GA;United States;4;31-08N;081-22W;;;1;; +K1J2;--;---;Tybee Coast Guard Station;GA;United States;4;32-01N;080-51W;;;2;; +K1J3;--;---;Ponce De Leon Inlet;FL;United States;4;29-04N;080-55W;;;3;; +K1J4;--;---;Cape San Blas Coast Guard Station;FL;United States;4;29-41N;085-22W;;;2;; +K1J5;--;---;Santa Rosa Coast Guard Station;FL;United States;4;30-19N;087-15W;;;2;; +K1K5;72;460;Elkhart / Elkhart-Morton County Airport;KS;United States;4;37-00N;101-53W;;;1102;1102;P +K1L2;--;---;Santa Monica Pier;CA;United States;4;34-00N;118-30W;;;2;; +K1M4;--;---;Haleyville, Posey Field Airport;AL;United States;4;34-16-49N;087-36-01W;;;284;; +K1O5;--;---;Montague;CA;United States;4;41-44N;122-33W;;;770;; +K1P1;--;---;Plymouth, Plymouth Municipal Airport;NH;United States;4;43-46-45N;071-45-13W;;;154;; +K1V1;--;---;Rifle Aviation Weather Reporting Station ;CO;United States;4;39-32N;107-48W;;;1622;; +K1V4;72;614;Saint Johnsbury;VT;United States;4;44-25-10N;072-01-10W;44-25-10N;072-01-10W;212;210; +K1W9;--;---;Wrightsville Beach;NC;United States;4;34-11N;077-49W;;;3;; +K20B;--;---;Rockland Coast Guard Station;ME;United States;4;44-06N;069-06W;;;1;; +K20C;--;---;Saint Joseph Coast Guard Station;MI;United States;4;42-07N;086-29W;;;176;; +K20G;--;---;Ashtabula Coast Guard Station;OH;United States;4;41-55N;080-48W;;;178;; +K20J;--;---;West Jonesport Coast Guard Station;ME;United States;4;44-32N;067-37W;;;5;; +K20V;--;---;Kremmling, Mc Elroy Airfield;CO;United States;4;40-03-13N;106-22-08W;;;2259;; +K215;--;---;Rantoul, Frank Elliott Field Airport;IL;United States;4;40-17-03N;088-08-03W;;;225;; +K21C;--;---;Sheboygan Coast Guard Station;WI;United States;4;43-45N;087-42W;;;1;; +K21G;--;---;Marblehead Coast Guard Station;OH;United States;4;41-33N;082-44W;;;196;; +K23B;--;---;Seguin Island Coast Guard Light Station;ME;United States;4;43-40N;069-46W;;;1;; +K23G;--;---;Cleveland Harbor Coast Guard Station;OH;United States;4;41-30N;081-43W;;;181;; +K24B;--;---;West Quoddy Head Coast Guard Light Station;ME;United States;4;44-48N;066-57W;;;1;; +K24G;--;---;Toledo Coast Guard Station;OH;United States;4;41-42N;083-27W;;;180;; +K25B;--;---;Portsmouth Harbor;NH;United States;4;43-04N;070-43W;;;1;; +K25G;--;---;Erie Coast Guard Station;PA;United States;4;42-07N;080-05W;;;175;; +K25R;--;---;Edinburg, Edinburg International Airport;TX;United States;4;26-26-31N;098-07-46W;;;24;; +K26B;--;---;Isle Of Shoals Coast Guard Station;NH;United States;4;42-58N;070-37W;;;1;; +K26G;--;---;Rochester Coast Guard Light Station;NY;United States;4;43-15N;077-36W;;;82;; +K27A;--;---;Elberton, Elbert County Airport-Patz Field;GA;United States;4;34-05-42N;082-48-57W;;;184;; +K27B;--;---;Cape Neddick Coast Guard Light Station;ME;United States;4;43-10N;070-36W;;;12;; +K27G;--;---;Lorain Coast Guard Station;OH;United States;4;41-28N;082-11W;;;176;; +K27U;--;---;Salmon;ID;United States;4;45-11N;113-54W;;;1210;; +K27Y;--;---;Grand Marais Coast Guard Station;MI;United States;4;46-40N;085-59W;;;183;; +K28G;--;---;Oswego Coast Guard Station;NY;United States;4;43-28N;076-31W;;;78;; +K28K;--;---;Grncyn Blk52 Supplementary Aviation Weather Reporting Station ;LA;United States;4;27-53N;091-30W;;;1;; +K28T;--;---;Sabine Pass;TX;United States;4;29-42N;093-57W;;;5;; +K28Y;--;---;North Manitou Shoal;MI;United States;4;45-01N;085-57W;;;177;; +K29B;--;---;Boston / Hull Coast Guard Light Station;MA;United States;4;42-19N;070-53W;;;0;; +K29G;--;---;Ravenna / Portage County;OH;United States;4;41-13N;081-15W;;;365;; +K29Y;--;---;Devils Island Light Station;WI;United States;4;47-05N;090-44W;;;192;; +K2B8;--;---;Portland Head Coast Guard Light Station;ME;United States;4;43-37N;070-12W;;;23;; +K2C2;72;269;White Sands;NM;United States;4;32-23N;106-29W;32-24N;106-22W;1244;1244; +K2DP;74;695;Dare County Gunnery Range;NC;United States;4;35-40N;075-54W;35-41N;075-54W;3;3; +K2F8;--;---;Bastrop, Morehouse Memorial Airport;LA;United States;4;32-45-21N;091-52-50W;;;51;; +K2G6;--;---;Meadville, Port Meadville Airport;PA;United States;4;41-37-33N;080-12-44W;41-37-33N;080-12-39W;426;428; +K2GL;--;---;Galliano, Galliano Heliport;LA;United States;4;29-24-48N;090-17-56W;;;2;; +K2H1;--;---;Huntington B. Oil;CA;United States;4;33-34N;118-08W;;;36;; +K2I4;--;---;Columbus / Bolton Field;OH;United States;4;39-54N;083-08W;;;280;; +K2I5;--;---;Rantoul, Rantoul Natl Aviation Cntr-Frank Elliott Fld Airp.;IL;United States;4;40-17-37N;088-08-33W;;;225;; +K2L6;--;---;Marina Del Rey;CA;United States;4;33-58N;118-26W;;;8;; +K2L7;--;---;Solana Beach;CA;United States;4;32-59N;117-16W;;;5;; +K2P3;--;---;Paynesville, Paynesville Municipal Airport;MN;United States;4;45-22-20N;094-44-47W;;;360;; +K2PJ;74;792;Poinsett Range, Sumpter;SC;United States;4;33-51N;080-29W;33-51N;080-29W;68;68; +K2R8;--;---;Port Aransas, Mustang Beach Airport;TX;United States;4;27-48-41N;097-05-20W;;;2;; +K2S9;--;---;Willapa Harbor;WA;United States;4;46-42N;123-49W;;;5;; +K2U7;--;---;Stanley, Stanley Airport;ID;United States;4;44-12-30N;114-56-04W;;;1952;1980; +K2V9;--;---;Gunnison Aviation Weather Reporting Station ;CO;United States;4;38-36N;106-55W;;;2380;; +K2WX;--;---;Buffalo;SD;United States;4;45-36-16N;103-32-47W;45-36-16N;103-32-48W;915;915; +K30B;--;---;Sandwich Coast Guard Station;MA;United States;4;41-47N;070-30W;;;1;; +K30G;--;---;Saginaw River Coast Guard Station;MI;United States;4;43-38N;083-51W;;;177;; +K30N;--;---;Faulkner Island Coast Guard Light Station;CT;United States;4;41-13N;072-40W;;;15;; +K30Y;--;---;Duluth Harbor Coast Guard Station;MN;United States;4;46-46N;092-05W;;;186;; +K31B;--;---;Chatham Coast Guard Station;MA;United States;4;41-40N;069-57W;;;1;; +K31F;--;---;Seminole, Gaines County Airport;TX;United States;4;32-40-31N;102-39-09W;;;1010;; +K31G;--;---;Belle Isle Coast Guard Station;MI;United States;4;42-20N;082-58W;;;177;; +K31Y;--;---;Eagle Harbor Coast Guard Light Station;MI;United States;4;47-28N;088-10W;;;186;; +K32N;--;---;Little Gulf Island Light Station;CT;United States;4;41-12N;072-06W;;;6;; +K32Y;--;---;Portage Coast Guard Station;MI;United States;4;47-14N;088-38W;;;190;; +K33B;--;---;Buzzards Bay Coast Guard Light Station;MA;United States;4;41-23N;071-02W;;;1;; +K33G;--;---;Port Huron Coast Guard Station;MI;United States;4;43-00N;082-25W;;;177;; +K34B;--;---;Gloucester Coast Guard Station;MA;United States;4;42-35N;070-40W;;;1;; +K34N;--;---;Eatons Neck Coast Guard Station;NY;United States;4;40-57N;073-24W;;;1;; +K34Y;--;---;Marquette Coast Guard Light Station;MI;United States;4;46-33N;087-23W;;;203;; +K35B;--;---;Merrimac River Coast Guard Station;MA;United States;4;42-49N;070-52W;;;1;; +K36B;--;---;Race Point Coast Guard Station;MA;United States;4;42-03N;070-11W;;;1;; +K36U;--;---;Heber, Heber City Municipal-Russ McDonald Field Airport;UT;United States;4;40-28-55N;111-25-44W;;;1718;; +K36Y;--;---;Point Betsie / Frankfort;MI;United States;4;44-37N;086-12W;;;183;; +K37B;--;---;Scituate Coast Guard Station;MA;United States;4;42-12N;070-43W;;;1;; +K37W;--;---;Erwin, Harnett County Airport;NC;United States;4;35-22-43N;078-44-01W;;;60;; +K38Y;--;---;Saint Ignace;MI;United States;4;45-51N;084-43W;;;176;; +K39Y;--;---;Tawas Point Coast Guard Station;MI;United States;4;44-15N;083-26W;;;178;; +K3A1;--;---;Cullman, Folsom Field Airport;AL;United States;4;34-16-07N;086-51-30W;;;294;; +K3A6;--;---;Newhall;CA;United States;4;34-22N;118-34W;;;427;; +K3B1;--;---;Greenville, Greenville Municipal Airport;ME;United States;4;45-27-47N;069-33-06W;45-27-44N;069-35-43W;427;;P +K3B2;--;---;Marshfield Airport;MA;United States;4;42-06N;070-41W;;;3;; +K3B6;--;---;Eugene Island 330;LA;United States;4;28-05N;92-42W;;;0;; +K3B9;--;---;Chester, Chester Airport;CT;United States;4;41-23-02N;072-30-21W;;;127;; +K3D4;--;---;Frankfort, Frankfort Dow Memorial Field Airport;MI;United States;4;44-37-30N;086-12-02W;;;193;; +K3DU;--;---;Drummond;MT;United States;4;46-40N;113-09W;;;1202;; +K3HE;--;---;Howell;MI;United States;4;42-38N;083-59W;;;293;; +K3HT;--;---;Harlowton;MT;United States;4;46-26N;109-50W;;;1268;; +K3I2;--;---;Point Pleasant, Mason County Airport;WV;United States;4;38-54-52N;082-05-54W;;;196;; +K3J7;--;---;Greensboro, Greene County Regional Airport;GA;United States;4;33-35-51N;083-08-20W;;;206;; +K3KM;--;---;Wichita, Colonel James Jabara Airport;KS;United States;4;37-44-59N;097-13-08W;;;434;; +K3L3;--;---;Newport Beach;CA;United States;4;33-36N;117-53W;;;3;; +K3LC;--;---;Lincoln, Logan County Airport;IL;United States;4;40-09-31N;089-20-06W;;;182;; +K3LF;--;---;Litchfield, Litchfield Municipal Airport;IL;United States;4;39-09-44N;089-40-28W;;;210;; +K3MW;--;---;Mount Werner;CO;United States;4;40-26-94N;106-44-95W;;;3241;; +K3O6;--;---;Treasure Island;CA;United States;4;37-48N;122-22W;;;8;; +K3OI;--;---;Lamoni;IA;United States;4;40-37N;093-57W;;;342;; +K3R1;--;---;Bay City, Bay City Municipal Airport;TX;United States;4;28-58N;095-51W;;;14;; +K3RN;74;365;Graying Air Force Range;MI;United States;4;44-50N;084-33W;44-50N;084-33W;387;387; +K3S2;--;---;Aurora State;OR;United States;4;45-15N;122-46W;;;60;; +K3SE;--;---;Spencer;IA;United States;4;43-10N;095-09W;;;404;408;P +K3T1;--;---;Mineola/Quitman, Wood County Airport;TX;United States;4;32-44-31N;095-29-47W;;;132;; +K3T5;--;---;La Grange, Fayette Regional Air Center Airport;TX;United States;4;29-54-29N;096-57-00W;;;99;; +K3TH;--;---;Thompson Falls;MT;United States;4;47-36N;115-22W;;;725;; +K3V8;--;---;Venice Heliport;LA;United States;4;29-07N;089-12W;;;80;; +K3W4;--;---;Swansboro / Bogue;NC;United States;4;34-39N;077-06W;;;2;; +K40B;--;---;Clayton Lake;ME;United States;4;46-37N;069-32W;;;314;; +K40G;--;---;Grand Canyon, Valle Airport;AZ;United States;4;35-39-03N;112-08-46W;;;1829;; +K40J;--;---;Perry-Foley, Perry-Foley Airport;FL;United States;4;30-04-19N;083-34-25W;30-04-41N;083-34-48W;13;13; +K40N;--;---;Chester County Airport;PA;United States;4;39-59N;075-52W;;;201;; +K40Y;--;---;Thunder Bay Island;MI;United States;4;45-04N;083-33W;;;178;; +K41G;--;---;Bath;MI;United States;4;42-51N;084-29W;;;261;; +K41I;--;---;Eugene Island;LA;United States;4;28-28N;091-47W;;;30;; +K43F;--;---;Litchfield Municipal;MN;United States;4;45-06N;094-30W;;;347;; +K43S;--;---;West Point Coast Guard Light Station;WA;United States;4;47-40N;122-26W;;;4;; +K44N;--;---;Millbrook / Sky Acres;NY;United States;4;41-42N;073-44W;;;213;; +K44W;74;696;Diamond Shoals Coast Guard Station;NC;United States;4;35-09N;075-18W;;;1;; +K44Y;--;---;Sault Ste. Marie Coast Guard Station;MI;United States;4;46-30N;084-20W;;;176;; +K45B;--;---;Brant Point Coast Guard Station;MA;United States;4;41-17N;070-05W;;;8;; +K45J;--;---;Rockingham, Rockingham-Hamlet Airport;NC;United States;4;34-53-27N;079-45-32W;;;109;; +K45N;--;---;Bay Shore / Fire Island;NY;United States;4;40-38N;073-16W;;;5;; +K45W;--;---;Oracoke Coast Guard Station;NC;United States;4;35-07N;075-59W;;;2;; +K47A;--;---;Canton, Cherokee County Airport;GA;United States;4;34-18-38N;084-25-26W;;;372;; +K48I;--;---;Sutton, Braxton County Airport;WV;United States;4;38-41-13N;080-39-06W;;;387;; +K48N;--;---;Montauk Point Coast Guard Light Station;NY;United States;4;41-04N;071-56W;;;1;; +K49N;--;---;East Moriches Coast Guard Station;NY;United States;4;40-47N;072-45W;;;1;; +K49Y;--;---;Preston, Fillmore County Airport;MN;United States;4;43-40-36N;092-10-47W;;;389;; +K4A9;--;---;Fort Payne, Isbell Field Airport;AL;United States;4;34-28-25N;085-43-17W;;;267;; +K4BK;--;---;Brookings;OR;United States;4;42-03N;124-17W;;;24;; +K4BL;--;---;Blanding ;UT;United States;4;37-37N;109-28W;;;1840;; +K4BM;--;---;Wilkerson Pass;CO;United States;4;39-03-01N;105-30-52W;;;3438;; +K4BQ;--;---;Broadus ;MT;United States;4;45-26N;105-24W;;;922;; +K4CB;74;618;Cuddleback Gunnery Range;CA;United States;4;35-16N;117-26W;35-16N;117-26W;864;864; +K4CR;--;---;Corona / Lincoln;NM;United States;4;34-06N;105-41W;;;1981;; +K4DG;72;568;Douglas;WY;United States;4;42-45N;105-23W;;;1477;; +K4F4;--;---;Gilmer, Fox Stephens Field - Gilmer Municipal Airport;TX;United States;4;32-41-56N;094-56-56W;;;127;; +K4HV;--;---;Hanksville ;UT;United States;4;38-22N;110-43W;;;1314;; +K4L7;--;---;Hermosa Beach Pier;CA;United States;4;33-52N;118-24W;;;8;; +K4LW;--;---;Lakeview;OR;United States;4;42-13N;120-21W;;;1455;; +K4MR;74;638;Melrose Gunnery Range;NM;United States;4;34-18N;103-48W;34-18N;103-48W;1326;1326; +K4MY;--;---;Moriarty;NM;United States;4;34-59N;106-03W;;;1890;; +K4O4;--;---;Idabel, Mc Curtain County Regional Airport;OK;United States;4;33-54-33N;094-51-33W;;;144;; +K4OM;--;---;Omak;WA;United States;4;48-25N;119-32W;;;374;382;P +K4SL;--;---;Torreon;NM;United States;4;35-48N;107-11W;;;2106;; +K4SU;74;619;Superior Valley Gunnery Range;CA;United States;4;36-20N;117-06W;36-20N;117-06W;962;962; +K4SV;--;---;Strevell;ID;United States;4;42-01N;113-15W;;;1612;; +K4T6;--;---;Midlothian/Waxahachie, Mid-Way Regional Airport;TX;United States;4;32-27-21N;096-54-44W;;;217;; +K4V5;--;---;Durango Aviation Weather Reporting Station;CO;United States;4;37-17N;107-52W;;;2012;; +K50N;--;---;Rockaway Coast Guard Station;NY;United States;4;40-34N;073-53W;;;3;; +K50Q;72;495;Farallon Island;CA;United States;4;37-42N;123-00W;;;12;; +K51N;--;---;Short Beach Coast Guard Station;NY;United States;4;40-35N;073-33W;;;1;; +K51Q;--;---;San Francisco Pbs ;CA;United States;4;37-45N;122-42W;;;5;; +K52N;--;---;Wildwood;NJ;United States;4;39-00N;074-49W;;;2;; +K52Q;--;---;Davis Point Aviation Weather Reporting Station ;CA;United States;4;38-03N;122-16W;;;18;; +K53D;--;---;Glenwood;MN;United States;4;45-39N;095-23W;;;423;; +K53Q;--;---;Pillar Pt / El Granda;CA;United States;4;37-30N;122-30W;;;40;; +K53S;--;---;Point Wilson Coast Guard Light Station;WA;United States;4;48-07N;122-45W;;;1;; +K54N;--;---;Manasquan Inl Coast Guard Station;NJ;United States;4;40-06N;074-01W;;;1;; +K54Q;--;---;Castroville / Moss;CA;United States;4;36-48N;121-48W;;;5;; +K55D;--;---;Grayling, Grayling AAF Airport;MI;United States;4;44-40-49N;084-43-44W;;;353;; +K55N;--;---;Atlantic City Coast Guard Station;NJ;United States;4;39-23N;074-25W;;;4;; +K56N;--;---;Sandy Hook Coast Guard Station;NJ;United States;4;40-28N;074-01W;;;5;; +K5D3;--;---;Owosso, Owosso Community Airport;MI;United States;4;42-59-34N;084-08-20W;;;224;; +K5G9;--;---;Lambertville, Toledo Suburban Airport;MI;United States;4;41-44-09N;083-39-19W;;;204;; +K5I3;--;---;Pikeville Remote Automatic Meteorological Observing System ;KY;United States;4;37-29N;082-31W;;;446;; +K5J0;--;---;John Day, John Day State Airport;OR;United States;4;44-24-15N;118-57-45W;;;1127;; +K5L8;--;---;Long Beach ;CA;United States;4;33-46N;118-10W;;;3;; +K5R0;--;---;East Addition B323;TX;United States;4;28-13N;093-45W;;;26;; +K5R5;--;---;Wharton, Wharton Regional Airport;TX;United States;4;29-15-15N;096-09-15W;;;31;; +K5SM;--;---;Sunlight;CO;United States;4;39-25-32N;107-22-45W;;;3232;; +K5T5;--;---;Hillsboro, Hillsboro Municipal Airport;TX;United States;4;32-05-00N;097-05-50W;;;209;; +K5T6;--;---;Santa Teresa, Dona Ana County Airport at Santa Teresa;NM;United States;4;31-52-51N;106-42-17W;;;1253;; +K60Y;--;---;Slayton, Slayton Municipal Airport;MN;United States;4;43-59-12N;095-46-57W;;;495;; +K61N;--;---;Indian River Coast Guard Station;DE;United States;4;38-37N;075-04W;;;1;; +K61W;--;---;Annapolis Coast Guard Station;MD;United States;4;38-55N;076-28W;;;8;; +K62G;--;---;Wilmette Marines;IL;United States;4;42-04N;087-41W;;;183;; +K62H;--;---;Giddings, Giddings-Lee County Airport;TX;United States;4;30-10-09N;096-58-48W;;;148;; +K62W;--;---;Cape Henry Coast Guard Light Station;VA;United States;4;36-56N;076-00W;;;1;; +K63G;--;---;Chicago / Calumet Coast Guard Station;IL;United States;4;41-43N;087-32W;;;180;; +K63W;--;---;Milford Haven Coast Guard Station;VA;United States;4;37-29N;076-19W;;;1;; +K64W;--;---;Parramore Beach;VA;United States;4;37-32N;075-37W;;;1;; +K65W;--;---;Thomas Point Coast Guard Station;MD;United States;4;38-54N;076-26W;;;1;; +K66W;--;---;Cove Point Coast Guard Light Station;MD;United States;4;38-23N;076-23W;;;1;; +K67B;--;---;Castle Hill Coast Guard Station;RI;United States;4;41-27N;071-21W;;;15;; +K67W;--;---;Stillpond Coast Guard Station;MD;United States;4;39-20N;076-06W;;;8;; +K69R;--;---;Rocksprings, Edwards County Airport;TX;United States;4;29-56-48N;100-10-25W;;;723;; +K6A3;--;---;Andrews, Andrews-Murphy Airport;NC;United States;4;35-11-40N;083-51-53W;;;518;; +K6L9;--;---;Huntington Beach;CA;United States;4;33-39N;118-00W;;;35;; +K6R6;--;---;Dryden, Terrel County Airport;TX;United States;4;30-02-53N;102-12-47W;;;707;701; +K6R9;--;---;Llano, Llano Municipal Airport;TX;United States;4;30-47-01N;098-39-43W;;;336;; +K6V3;--;---;Richlands, Tazewell County Airport;VA;United States;4;37-03-49N;081-47-53W;;;808;; +K75S;--;---;Burlington / Mt Vern;WA;United States;4;48-28N;122-25W;;;43;; +K76S;--;---;Oak Harbor Airpark;WA;United States;4;48-15N;122-40W;;;58;; +K77M;--;---;Malta;ID;United States;4;42-19N;113-20W;;;1375;; +K77W;--;---;Cape Lookout Coast Guard Station;NC;United States;4;34-36N;076-32W;;;4;; +K78D;--;---;Caro, Tuscola Area Airport;MI;United States;4;43-27-31N;083-26-43W;;;214;; +K78N;--;---;Reidsville, Rockingham County NC Shiloh Airport;NC;United States;4;36-26-14N;079-51-03W;;;211;; +K78W;--;---;South Port / Oak Island Coast Guard Station;NC;United States;4;33-53N;078-01W;;;1;; +K79J;--;---;Andalusia, Andalusia-Opp Municipal Airport;AL;United States;4;31-18-00N;086-23-00W;;;94;94; +K79W;--;---;Oregon Inlet Coast Guard Station;NC;United States;4;35-46N;075-31W;;;1;; +K7A9;--;---;Plains / Peterson Field;GA;United States;4;32-05N;084-22W;;;160;; +K7B5;--;---;West Cameron 560A;LA;United States;4;28-17N;93-11W;;;0;; +K7BM;--;---;Cottonwood Pass;CO;United States;4;38-46-57N;106-13-05W;;;2995;; +K7D2;--;---;Troy, Oakland/Troy Airport;MI;United States;4;42-32-34N;083-10-40W;;;222;; +K7F6;--;---;Clarksville, Clarksville-Red River County Airport;TX;United States;4;33-35-35N;095-03-48W;;;134;; +K7F9;--;---;Comanche, Comanche County-City Airport;TX;United States;4;31-55N;098-36-01W;;;423;; +K7R1;--;---;Venice, Venice Heliport;LA;United States;4;29-15-46N;089-21-48W;29-15-45N;089-21-46W;0;3; +K7R2;--;---;Leeville;LA;United States;4;29-13N;090-14W;;;2;; +K7R3;--;---;Amelia / Lake Palourd;LA;United States;4;29-42N;091-06W;;;2;; +K7R4;--;---;Intracoastal City;LA;United States;4;29-47N;092-08W;;;5;; +K7R5;--;---;Cameron Heliport;LA;United States;4;29-47N;093-18W;;;1;; +K7R8;--;---;South Marsh Island;LA;United States;4;28-18N;091-59W;;;1;; +K82S;--;---;Cape Disappointment;WA;United States;4;46-17N;124-03W;;;55;; +K83S;--;---;Coos Bay Coast Guard Station;OR;United States;4;43-21N;124-20W;;;23;; +K84J;--;---;Folly Beach Long Range Navigation;SC;United States;4;32-41N;079-53W;;;3;; +K84Q;--;---;Blunts Reef Coast Guard Station;CA;United States;4;40-26N;124-30W;;;8;; +K84S;--;---;Grays Harbor Coast Guard Station;WA;United States;4;46-55N;124-06W;;;6;; +K85J;--;---;Georgetown Coast Guard Light Station;SC;United States;4;33-13N;079-11W;;;8;; +K85Q;--;---;Santa Cruz Harbor;CA;United States;4;36-58N;122-00W;;;1;; +K85S;--;---;Siuslaw River Coast Guard Station;OR;United States;4;44-00N;124-07W;;;12;; +K86J;--;---;Sullivans Island Coast Guard Station;SC;United States;4;32-46N;079-51W;;;3;; +K86Q;--;---;St George Reef Coast Guard Light Station;CA;United States;4;41-50N;124-24W;;;45;; +K86S;--;---;Smith Island Coast Guard Light Station;WA;United States;4;48-19N;122-51W;;;1;; +K87Q;72;390;Point Piedras Blanca;CA;United States;4;35-39-56N;121-17-05W;;;17;27;P +K87S;--;---;Quillayute River Coast Guard Light Station;WA;United States;4;47-54N;124-38W;;;1;; +K88Q;--;---;Samoa / Humboldt Bay;CA;United States;4;40-46N;124-14W;;;2;; +K88S;--;---;Tillamook Bay Coast Guard Station;OR;United States;4;45-34N;123-55W;;;15;; +K89Q;--;---;Point Arena Coast Guard Light Station;CA;United States;4;38-57N;123-44W;;;18;; +K8A0;--;---;Albertville, Albertville Municipal Airport;AL;United States;4;34-13-44N;086-15-20W;;;315;; +K8B9;--;---;Egg Rock Light Station;ME;United States;4;44-21N;068-08W;;;12;; +K8D3;--;---;Sisseton, Sisseton Municipal Airport;SD;United States;4;45-40-08N;096-59-29W;45-40-04N;096-59-52W;354;354; +K8F7;--;---;Decatur, Decatur Municipal Airport;TX;United States;4;33-15-16N;097-34-50W;;;319;; +K8R0;--;---;Pascagoula Coast Guard Station;MS;United States;4;30-22N;088-34W;;;8;; +K8R1;--;---;Mobile Point Coast Guard Station;AL;United States;4;30-14N;088-02W;;;1;; +K8R3;--;---;Southwest Pass Coast Guard Station;LA;United States;4;28-55N;089-26W;;;1;; +K8R5;--;---;Grand Isle Coast Guard Station;LA;United States;4;29-16N;089-57W;;;2;; +K8R6;--;---;Calcasieu Coast Guard Station;LA;United States;4;29-47N;093-21W;;;1;; +K8R7;--;---;Sabine Pass Coast Guard Station;TX;United States;4;29-44N;093-52W;;;1;; +K8R8;--;---;Freeport Coast Guard Station;TX;United States;4;28-57N;095-18W;;;2;; +K8S0;--;---;Browning, Starr-Browning Airstrip;MT;United States;4;48-36-04N;113-06-53W;;;1419;; +K8Y2;--;---;Buffalo, Buffalo Municipal Airport;MN;United States;4;45-09-32N;093-50-35W;;;295;; +K8Y8;--;---;Crane Lake Automatic Weather Observing / Reporting System;MN;United States;4;46-16N;092-34W;;;350;; +K90S;--;---;Umpqua River Coast Guard Station;OR;United States;4;43-41N;124-10W;;;41;; +K91Q;--;---;Point Blunt Coast Guard Light Station;CA;United States;4;37-51N;122-25W;;;73;; +K91S;--;---;Alki Point Coast Guard Light Station;WA;United States;4;47-31N;122-25W;;;1;; +K92Q;--;---;Bodega Bay Coast Guard Light Station;CA;United States;4;38-19N;123-03W;;;3;; +K92S;--;---;Cape Blanco Coast Guard Station;OR;United States;4;42-50N;124-34W;;;57;; +K93Q;--;---;Pigeon Point Coast Guard Light Station;CA;United States;4;37-11N;122-24W;;;1;; +K93S;--;---;Cape Flattery Coast Guard Light Station;WA;United States;4;48-23N;124-44W;;;26;; +K94B;--;---;Wood Island Light Station;ME;United States;4;43-27N;070-19W;;;9;; +K94Q;--;---;Point Bonita Coast Guard Light Station;CA;United States;4;37-48N;122-31W;;;1;; +K95B;--;---;Cape Vincent Marine Aviation Reporting Station;NY;United States;4;44-07N;076-20W;;;75;; +K95Q;--;---;Point Pinos Coast Guard Light Station;CA;United States;4;36-38N;121-56W;;;6;; +K95S;--;---;Yaquina Bay Coast Guard Station;OR;United States;4;44-37N;124-03W;;;1;; +K96B;--;---;Owl's Head Light Station;ME;United States;4;44-05N;069-02W;;;15;; +K96Q;--;---;Trinidad Head Coast Guard Light Station;CA;United States;4;41-03N;124-09W;;;58;; +K96S;--;---;New Dungeness Coast Guard Station;WA;United States;4;48-10N;123-06W;;;12;; +K97Q;--;---;Point Reyes Coast Guard Station;CA;United States;4;38-00N;123-01W;;;87;; +K97S;--;---;Point No Point Coast Guard Station;WA;United States;4;47-55N;122-32W;;;1;; +K98Q;--;---;Rio Vista Coast Guard Light Station;CA;United States;4;38-09N;121-42W;;;1;; +K99M;--;---;Moorhead, Moorhead Municipal Airport;MN;United States;4;46-50-21N;096-39-47W;;;280;; +K99Q;--;---;Port Chicago;CA;United States;4;38-02N;122-02W;;;12;; +K99S;--;---;Point Robinson Coast Guard Light Station;WA;United States;4;47-23N;122-22W;;;0;; +K9B2;72;612;Newport;VT;United States;4;44-56N;072-12W;;;233;233; +K9B5;--;---;Bear Island Coast Guard Station;ME;United States;4;44-17N;068-16W;;;12;; +K9BB;--;---;Wells;NV;United States;4;41-07N;114-58W;;;1722;; +K9F2;--;---;Fourchon Supplementary Aviation Weather Reporting Station;LA;United States;4;29-06N;090-12W;;;2;; +K9L0;--;---;Dana Point;CA;United States;4;33-27N;117-41W;;;15;; +K9L2;--;---;Edwards, Edwards Air Force Auxiliary North Base;CA;United States;4;34-59N;117-51W;;;701;; +K9R0;--;---;Galveston Coast Guard Station;TX;United States;4;29-20N;094-46W;;;1;; +K9R1;--;---;Port Aransas Coast Guard Station;TX;United States;4;27-50N;097-04W;;;1;; +K9V9;72;653;Chamberlain, Chamberlain Municipal Airport;SD;United States;4;43-46-00N;099-19-06W;43-46-00N;099-19-06W;516;519; +K9W7;--;---;Currituck, Currituck County Airport;NC;United States;4;36-23-56N;076-00-58W;;;5;; +KA21;--;---;Portage Glacier, Portage Visitor Center;AK;United States;4;60-47-03N;148-50-46W;60-47-59N;148-50-20W;31;28; +KAAA;--;---;Lincoln, Logan County Airport;IL;United States;4;40-09-31N;089-20-06W;;;182;; +KAAF;72;220;Apalachicola, Apalachicola;FL;United States;4;29-43-37N;085-01-29W;29-43-20N;085-01-32W;6;5;P +KAAO;--;---;Wichita, Colonel James Jabara Airport;KS;United States;4;37-44-59N;097-13-08W;37-44-52N;097-13-28W;432;434; +KAAT;--;---;Alturas;CA;United States;4;41-29-29N;120-33-52W;41-28-59N;120-33-51W;1333;1331; +KABE;72;517;Allentown, Lehigh Valley International Airport;PA;United States;4;40-39-03N;075-26-57W;40-39-12N;075-25-59W;120;114; +KABI;72;266;Abilene, Abilene Regional Airport;TX;United States;4;32-24-37N;099-40-54W;32-24-45N;099-40-52W;545;548;P +KABQ;72;365;Albuquerque, Albuquerque International Airport;NM;United States;4;35-02-30N;106-36-53W;35-02-13N;106-37-18W;1631;1618;P +KABR;72;659;Aberdeen, Aberdeen Regional Airport;SD;United States;4;45-26-36N;098-24-47W;45-27-25N;098-25-36W;396;400;P +KABX;--;---;Albuquerque Nexrad;NM;United States;4;35-09N;106-49W;;;1814;; +KABY;72;216;Albany, Southwest Georgia Regional Airport;GA;United States;4;31-32-08N;084-11-40W;31-32-12N;084-14-3W;60;58; +KACB;--;---;Bellaire, Antrim County Airport;MI;United States;4;44-59-18N;085-11-54W;;;190;; +KACK;--;---;Nantucket, Nantucket Memorial Airport;MA;United States;4;41-15-14N;070-03-35W;41-15-26N;070-03-49W;14;16; +KACP;--;---;Oakdale, Allen Parish Airport;LA;United States;4;30-45-02N;092-41-19W;;;33;; +KACQ;--;---;Waseca, Waseca Municipal Airport;MN;United States;4;44-04-24N;093-33-11W;;;343;; +KACT;72;256;Waco, Waco Regional Airport;TX;United States;4;31-37-02N;097-13-40W;31-36-33N;097-13-18W;157;151;P +KACV;--;---;Arcata / Eureka, Arcata Airport;CA;United States;4;40-58-41N;124-06-31W;40-58-14N;124-06-25W;66;67; +KACY;72;407;Atlantic City, Atlantic City International Airport;NJ;United States;4;39-27-53N;074-35-12W;39-26-58N;074-34-02W;23;35;P +KADC;--;---;Wadena, Wadena Municipal Airport;MN;United States;4;46-27-01N;095-12-39W;;;417;; +KADG;--;---;Adrian, Lenawee County Airport;MI;United States;4;41-52-04N;084-04-46W;41-52-24N;084-04-28W;244;241; +KADH;--;---;Ada, Ada Municipal Airport;OK;United States;4;34-48-16N;096-40-17W;;;310;; +KADM;--;---;Ardmore, Ardmore Municipal Airport;OK;United States;4;34-18-11N;097-01-10W;;;232;; +KADQ;--;---;Kodiak, Kodiak Airport;AK;United States;4;57-45-04N;152-29-08W;57-44-52N;152-29-29W;22;33; +KADS;--;---;Dallas / Addison Airport;TX;United States;4;32-58N;096-50W;;;196;; +KADU;--;---;Audubon, Audubon County Airport;IA;United States;4;41-42-04N;094-55-13W;;;392;; +KADW;74;594;Camp Springs / Andrews Air Force Base;MD;United States;4;38-49N;076-51W;;;86;88;P +KAEG;--;---;Albuquerque, Double Eagle II Airport;NM;United States;4;35-08-42N;106-47-42W;;;1779;; +KAEL;--;---;Albert Lea, Albert Lea Municipal Airport;MN;United States;4;43-41N;093-22W;;;384;; +KAEX;74;754;Alexandria, Alexandria International Airport;LA;United States;4;31-20-05N;092-33-31W;31-19-26N;092-32-37W;27;27; +KAFF;74;531;Air Force Academy;CO;United States;4;38-58N;104-49W;38-58N;104-49W;2003;1999; +KAFJ;--;---;Washington, Washington County Airport;PA;United States;4;40-08N;080-17W;;;361;; +KAFK;--;---;Nebraska City, Nebraska City Municipal Airport;NE;United States;4;40-36N;095-51W;;;354;; +KAFN;--;---;Jaffrey, Jaffrey Municipal-Silver Ranch Airport;NH;United States;4;42-48-21N;072-00-02W;42-48-23N;072-00-10W;317;313; +KAFP;--;---;Wadesboro, Anson County Airport;NC;United States;4;35-01-14N;080-04-37W;;;91;; +KAFW;--;---;Fort Worth, Fort Worth Alliance Airport;TX;United States;4;32-58-24N;097-19-05W;32-59-17N;097-18-39W;220;233; +KAGC;--;---;Pittsburgh, Allegheny County Airport;PA;United States;4;40-21-17N;079-55-18W;40-20-44N;079-55-37W;382;389; +KAGR;74;796;Avon Park Gunnery Range;FL;United States;4;27-39N;081-20W;27-39N;081-20W;20;20; +KAGS;72;218;Augusta, Bush Field;GA;United States;4;33-21-52N;081-57-48W;33-22-18N;081-58-27W;44;44;P +KAHN;72;311;Athens, Athens Airport;GA;United States;4;33-57-03N;083-19-41W;33-57-05N;083-19-25W;246;244;P +KAIA;--;---;Alliance, Alliance Municipal Airport;NE;United States;4;42-03-26N;102-48-00W;42-03-51N;102-48-57W;1197;1196; +KAID;--;---;Anderson Municipal;IN;United States;4;40-07N;085-37W;;;280;; +KAIG;--;---;Antigo, Langlade County Airport;WI;United States;4;45-09N;089-06W;;;464;; +KAIO;--;---;Atlantic;IA;United States;4;41-24N;095-03W;;;360;; +KAIT;--;---;Aitkin, Aitkin Municipal Airport-Steve Kurtz Field;MN;United States;4;46-33N;093-41W;;;367;; +KAIZ;--;---;Kaiser Lake Ozark, Lee C Fine Memorial Airport;MO;United States;4;38-06N;092-33W;;;265;; +KAJG;--;---;Mount Carmel, Mount Carmel Municipal Airport;IL;United States;4;38-36-23N;087-43-36W;;;131;; +KAKH;--;---;Gastonia, Gastonia Municipal Airport;NC;United States;4;35-11-48N;081-09-21W;35-12-01N;081-09-12W;243;243; +KAKO;--;---;Akron, Akron-Washington County Airport;CO;United States;4;40-10-28N;103-12-52W;40-10-15N;103-12-31W;1431;1421; +KAKQ;--;---;Wakefield, Wakefield Municipal Airport;VA;United States;4;36-58-53N;077-00-04W;36-58-48N;077-00-08W;34;33; +KAKR;--;---;Akron, Akron Fulton International Airport;OH;United States;4;41-02-15N;081-27-51W;41-02-17N;081-27-26W;325;363; +KAKW;--;---;Klawock, Klawock Airport;AK;United States;4;55-34-34N;133-04-34W;55-34-49N;133-04-08W;15;18; +KALB;72;518;Albany, Albany International Airport;NY;United States;4;42-44-53N;073-48-06W;;;87;; +KALI;--;---;Alice, Alice International Airport;TX;United States;4;27-44-28N;098-01-37W;27-44-31N;098-01-59W;54;53; +KALM;--;---;Alamogordo-White;NM;United States;4;32-50N;105-59W;;;1279;; +KALN;--;---;Alton/St. Louis, St. Louis Regional Airport;IL;United States;4;38-54N;090-03W;;;166;; +KALO;72;548;Waterloo, Waterloo Municipal Airport;IA;United States;4;42-33-16N;092-24-04W;42-33-00N;092-23-52W;266;264; +KALS;72;462;Alamosa, San Luis Valley Regional Airport;CO;United States;4;37-26-20N;105-51-41W;37-26-36N;105-51-52W;2297;2299;P +KALW;--;---;Walla Walla, Walla Walla Regional Airport;WA;United States;4;46-05-42N;118-17-03W;46-05-35N;118-16-55W;367;363; +KALX;--;---;Alexander City, Thomas C Russell Field Airport;AL;United States;4;32-54-53N;085-57-46W;;;209;; +KAMA;72;363;Amarillo, Amarillo International Airport;TX;United States;4;35-13-12N;101-43-02W;35-13-58N;101-42-28W;1099;1093;P +KAMG;--;---;Alma, Bacon County Airport;GA;United States;4;31-32-10N;082-30-24W;31-32-27N;082-30-30W;61;59; +KAMN;--;---;Alma, Gratiot Community Airport;MI;United States;4;43-19-19N;084-41-16W;;;229;; +KAMW;--;---;Ames, Ames Municipal Airport;IA;United States;4;41-59-26N;093-37-08W;41-59-57N;093-37-22W;288;279; +KAMX;--;---;Miami Nexrad;FL;United States;4;25-37N;080-25W;;;34;; +KANB;--;---;Anniston, Anniston Metropolitan Airport;AL;United States;4;33-35-26N;085-50-51W;33-35-25N;085-51-04W;186;183; +KAND;--;---;Anderson, Anderson County Airport;SC;United States;4;34-29-52N;082-42-35W;34-30-04N;082-42-54W;238;239; +KANE;--;---;Minneapolis / Blaine;MN;United States;4;45-09N;093-13W;;;278;; +KANJ;72;734;Sault Ste. Marie;MI;United States;4;46-28-46N;084-21-26W;46-28-45N;084-21-24W;210;219;P +KANN;--;---;Annette, Annette Island Airport;AK;United States;4;55-01-49N;131-34-34W;55-01-44N;131-34-38W;36;34; +KANW;--;---;Ainsworth Municipal;NE;United States;4;42-35N;100-00W;;;789;; +KAOH;--;---;Lima, Lima Allen County Airport;OH;United States;4;40-42-29N;084-01-17W;40-42-17N;084-01-36W;297;296; +KAOO;--;---;Altoona, Altoona-Blair County Airport;PA;United States;4;40-18-00N;078-19-01W;40-17-37N;078-19-20W;458;455; +KAPA;--;---;Denver, Centennial Airport;CO;United States;4;39-33-50N;104-50-54W;39-34-30N;104-50-42W;1793;1775; +KAPC;--;---;Napa, Napa County Airport;CA;United States;4;38-12-27N;122-16-46W;38-12-28N;122-16-41W;10;13; +KAPF;--;---;Naples, Naples Municipal Airport;FL;United States;4;26-09N;081-46W;;;2;; +KAPG;--;---;Phillips Army Air Field / Aberdeen;MD;United States;4;39-28N;076-10W;;;18;; +KAPN;72;639;Alpena, Alpena County Regional Airport;MI;United States;4;45-04-18N;083-33-52W;45-04-12N;083-33-59W;210;210; +KAPV;--;---;Apple Valley;CA;United States;4;34-35N;117-11W;;;932;; +KAQO;--;---;Llano, Llano Municipal Airport;TX;United States;4;30-47-01N;098-39-43W;;;336;; +KAQP;--;---;Appleton, Appleton Municipal Airport;MN;United States;4;45-13-39N;096-00-15W;;;310;; +KAQQ;72;220;Apalachicola, Apalachicola;FL;United States;4;29-43-37N;085-01-29W;29-43-20N;085-01-32W;6;5;P +KAQR;--;---;Atoka, Atoka Municipal Airport;FL;United States;4;34-23-54N;096-08-53W;;;180;; +KAQV;--;---;Ft. Polk, Peason Ridge;LA;United States;4;31-40N;093-27W;;;111;; +KAQW;--;---;North Adams, Harriman-And-West Airport;MA;United States;4;42-41-50N;073-10-13W;42-41-50N;073-09-51W;199;201; +KARA;--;---;New Iberia, Acadiana Regional Airport;LA;United States;4;30-01-44N;091-53-04W;30-01-47N;091-52-35W;7;18; +KARB;--;---;Ann Arbor, Ann Arbor Municipal Airport;MI;United States;4;42-13-26N;083-44-24W;42-13-31N;083-44-47W;255;251; +KARG;--;---;Walnut Ridge, Walnut Ridge Regional Airport;AR;United States;4;36-08N;090-55W;;;83;; +KARL;--;---;Arlington;WY;United States;4;41-42N;106-13W;;;2179;; +KARM;--;---;Wharton, Wharton Regional Airport;TX;United States;4;29-15-15N;096-09-15W;;;31;; +KARR;--;---;Aurora, Aurora Municipal Airport;IL;United States;4;41-46-12N;088-28-53W;41-46-05N;088-27-57W;215;215; +KART;--;---;Watertown, Watertown International Airport;NY;United States;4;43-59-31N;076-01-18W;43-59-38N;076-01-25W;99;100; +KARV;--;---;Minocqua/Woodruff, Lakeland Airport/Noble F. Lee Memorial Field;WI;United States;4;45-56N;089-44W;;;497;; +KASD;--;---;Slidell, Slidell Airport;LA;United States;4;30-20-35N;089-49-19W;30-20-25N;089-49-20W;9;8; +KASE;--;---;Aspen, Aspen-Pitkin County Airport;CO;United States;4;39-13-44N;106-52-10W;39-13-33N;106-52-04W;2382;2354; +KASG;--;---;Springdale Municipal;AR;United States;4;36-11N;094-07W;;;412;; +KASH;--;---;Nashua, Boire Field Airport;NH;United States;4;42-46-54N;071-30-53W;;;61;; +KASJ;--;---;Ahoskie, Tri-County Airport;NC;United States;4;36-17-51N;077-10-15W;;;21;; +KAST;72;791;Astoria, Astoria Regional Airport;OR;United States;4;46-09-25N;123-52-57W;46-09-22N;123-52-51W;3;3; +KASW;--;---;Warsaw, Warsaw Municipal Airport;IN;United States;4;41-16-28N;085-50-24W;;;259;; +KASX;--;---;Ashland, Kennedy Memorial Airport;WI;United States;4;46-32-59N;090-55-06W;46-33-09N;090-54-57W;251;251; +KATL;72;219;Atlanta, Hartsfield - Jackson Atlanta International Airport;GA;United States;4;33-38-25N;084-25-37W;;;313;; +KATS;--;---;Artesia, Artesia Municipal Airport;NM;United States;4;32-51-09N;104-28-03W;;;1079;; +KATT;72;254;Austin City, Austin Camp Mabry;TX;United States;4;30-19N;097-46W;;;200;;P +KATW;--;---;Appleton / Outagamie;WI;United States;4;44-15N;088-31W;;;280;; +KATX;--;---;Seattle NEXRAD;WA;United States;4;48-12N;122-30W;;;185;; +KATY;--;---;Watertown, Watertown Municipal Airport;SD;United States;4;44-54-17N;097-08-58W;44-55-17N;097-09-38W;532;532; +KAUB;--;---;Auburn University Automatic Meteorological Observing System;AL;United States;4;32-36N;085-30W;;;198;; +KAUD;--;---;Audubon Park;LA;United States;4;29-56N;090-08W;;;2;; +KAUG;--;---;Augusta, Augusta State Airport;ME;United States;4;44-19-14N;069-47-50W;44-19-03N;069-47-39W;107;109; +KAUH;--;---;Aurora, Aurora Municipal Airport;NE;United States;4;40-53-38N;097-59-40W;;;550;; +KAUM;--;---;Austin Municipal;MN;United States;4;43-40N;092-56W;;;375;; +KAUN;--;---;Auburn, Auburn Municipal Airport;CA;United States;4;38-57N;121-04W;;;467;; +KAUO;--;---;Auburn-Opelika Airport;AL;United States;4;32-37N;085-26W;;;236;; +KAUS;--;---;Austin, Austin-Bergstrom International Airport;TX;United States;4;30-11-40N;097-40-12W;30-11-57N;097-40-13W;165;172; +KAUW;--;---;Wausau, Wausau Downtown Airport;WI;United States;4;44-55-43N;089-37-36W;44-55-46N;089-37-39W;366;362; +KAVC;--;---;South Hill, Mecklenburg-Brunswick Regional Airport;VA;United States;4;36-41-19N;078-03-15W;;;135;; +KAVK;--;---;Alva, Alva Regional Airport;OK;United States;4;36-46-23N;098-40-12W;;;449;; +KAVL;72;315;Asheville, Asheville Regional Airport;NC;United States;4;35-25-55N;082-32-15W;35-26-04N;082-32-14W;660;670; +KAVP;72;513;Wilkes-Barre - Scranton, Wilkes-Barre / Scranton International Airport;PA;United States;4;41-20-20N;075-43-36W;41-20-10N;075-43-50W;293;291; +KAVX;72;292;Avalon, Catalina Airport;CA;United States;4;33-24-18N;118-24-57W;33-24-12N;118-24-48W;488;482; +KAWG;--;---;Washington;IA;United States;4;41-17N;091-40W;;;230;; +KAWH;--;---;Wildhorse Reservation / Elko;NV;United States;4;41-40N;115-47W;;;1902;; +KAWI;--;---;Wainwright, Wainwright Airport;AK;United States;4;70-38-19N;160-00-24W;70-38-19N;160-00-24W;9;8; +KAWM;--;---;West Memphis, West Memphis Municipal Airport;AR;United States;4;35-08N;090-14W;;;65;; +KAWO;--;---;Arlington Municipal;WA;United States;4;48-10N;122-10W;;;42;; +KAXA;--;---;Algona;IA;United States;4;43-05N;094-16W;;;372;; +KAXN;--;---;Alexandria, Chandler Field;MN;United States;4;45-52-07N;095-23-39W;45-51-55N;095-23-23W;434;433; +KAXO;--;---;Grand Isle Supplementary Aviation Weather Reporting Station;LA;United States;4;29-15N;089-58W;;;2;; +KAXS;--;---;Altus, Altus/Quartz Mountain Regional Airport;OK;United States;4;34-41-55N;099-20-17W;;;437;; +KAYE;--;---;Fort Devens / Ayer;MA;United States;4;42-34N;071-36W;;;82;; +KAYS;72;213;Waycross / Ware County, Ga;GA;United States;4;31-15N;082-24W;31-15N;082-24W;46;46;P +KAZC;--;---;Colorado City, Colorado City Municipal Airport;AZ;United States;4;36-57N;113-00W;;;1486;; +KAZO;--;---;Kalamazoo, Kalamazoo / Battle Creek International Airport;MI;United States;4;42-13-45N;085-32-47W;42-14-22N;085-33-22W;266;272; +KB23;--;---;Battle Mountain;NV;United States;4;40-36N;116-52W;;;1381;; +KBAB;--;---;Marysville, Beale Air Force Base;CA;United States;4;39-08N;121-26W;;;34;; +KBAD;--;---;Barksdale Air Force Base;LA;United States;4;32-30N;093-40W;;;51;; +KBAF;--;---;Westfield, Barnes Municipal Airport;MA;United States;4;42-09-35N;072-42-46W;42-09-25N;072-43-06W;82;83; +KBAK;--;---;Columbus / Bakalar ;IN;United States;4;39-16N;085-54W;;;200;; +KBAX;--;---;Bad Axe, Huron County Memorial Airport;MI;United States;4;43-46-51N;082-59-08W;;;233;; +KBAZ;--;---;New Braunfels, New Braunfels Municipal Airport;TX;United States;4;29-42-31N;098-02-43W;29-42-20N;098-02-08W;197;195; +KBBB;--;---;Benson Municipal;MN;United States;4;45-19N;095-39W;;;317;; +KBBD;--;---;Brady, Curtis Field Airport;TX;United States;4;31-10-45N;099-19-26W;;;557;; +KBBW;--;---;Broken Bow, Broken Bow Municipal Airport;NE;United States;4;41-26N;099-39W;;;776;; +KBCB;--;---;Virginia Tech Airport;VA;United States;4;37-13N;080-25W;;;650;; +KBCE;--;---;Bryce Canyon, Bryce Canyon Airport;UT;United States;4;37-42-23N;112-08-44W;37-42-05N;112-09-16W;2312;2312; +KBCG;--;---;Butte La Rose;LA;United States;4;30-07N;091-33W;;;10;; +KBCT;--;---;Boca Raton, Boca Raton Airport;FL;United States;4;26-22-43N;080-06-28W;;;4;; +KBDE;--;---;Baudette, Baudette International Airport;MN;United States;4;48-43-36N;094-36-44W;48-43-17N;094-36-10W;330;329; +KBDF;--;---;Bradford / Rinkenberg;IL;United States;4;41-14N;089-37W;;;247;; +KBDL;72;508;Windsor Locks, Bradley International Airport;CT;United States;4;41-56-17N;072-40-57W;41-55-59N;072-41-12W;53;60; +KBDR;72;504;Bridgeport, Sikorsky Memorial Airport;CT;United States;4;41-09-30N;073-07-44W;41-09-50N;073-07-40W;3;7; +KBED;74;490;Bedford, Hanscom Field;MA;United States;4;42-28-06N;071-17-40W;42-27-57N;071-17-22W;40;50; +KBEH;--;---;Benton Harbor, Southwest Michigan Regional Airport;MI;United States;4;42-07-43N;086-25-42W;42-07-32N;086-25-44W;196;191; +KBET;--;---;Bethel, Bethel Airport;AK;United States;4;60-47-09N;161-49-35W;60-47-03N;161-50-08W;39;39; +KBFD;--;---;Bradford, Bradford Regional Airport;PA;United States;4;41-47-55N;078-38-09W;41-47-57N;078-38-24W;653;647; +KBFF;72;566;Scottsbluff, Heilig Field;NE;United States;4;41-52-01N;103-35-09W;41-52-12N;103-35-36W;1208;1203; +KBFI;--;---;Seattle, Seattle Boeing Field;WA;United States;4;47-32-45N;122-18-49W;47-31-45N;122-18-11W;5;4; +KBFL;72;384;Bakersfield, Meadows Field Airport;CA;United States;4;35-26-01N;119-03-24W;35-26-02N;119-03-06W;155;151; +KBFM;--;---;Mobile, Mobile Downtown Airport;AL;United States;4;30-36-50N;088-03-48W;30-37-37N;088-04-05W;7;20; +KBFU;--;---;Belle Fourche;WY;United States;4;43-56N;105-27W;;;1422;; +KBFW;--;---;Silver Bay;MN;United States;4;47-12N;091-24W;;;331;; +KBGD;--;---;Borger, Hutchinson County Airport;TX;United States;4;35-41-42N;101-23-42W;35-41-43N;101-23-40W;931;927; +KBGE;--;---;Bainbridge, Decatur County Industrial Air Park Airport;GA;United States;4;30-58N;084-38W;;;43;; +KBGM;72;515;Binghamton, Binghamton Regional Airport;NY;United States;4;42-12-28N;075-58-53W;42-12-32N;075-58-58W;496;492;P +KBGR;--;---;Bangor, Bangor International Airport;ME;United States;4;44-47-50N;068-49-07W;44-48-43N;068-49-31W;58;57; +KBHB;--;---;Bar Harbor, Hancock County-Bar Harbor Airport;ME;United States;4;44-27N;068-22W;;;25;; +KBHK;--;---;Baker, Baker Municipal Airport;MT;United States;4;46-20-52N;104-15-27W;46-21-22N;104-16-12W;905;902; +KBHM;72;228;Birmingham, Birmingham International Airport;AL;United States;4;33-33-56N;086-44-42W;33-33-48N;086-44-42W;196;197;P +KBHX;--;---;Eureka NEXRAD;CA;United States;4;40-30N;124-18W;;;767;; +KBID;--;---;Block Island, Block Island State Airport;RI;United States;4;41-10N;071-34W;;;33;; +KBIE;--;---;Beatrice Municipal;NE;United States;4;40-18N;096-45W;;;403;; +KBIF;--;---;Biggs Army Air Field / Ft. Bliss;TX;United States;4;31-51N;106-23W;;;1204;; +KBIG;--;---;Delta Junction / Ft. Greely, Allen Army Air Field;AK;United States;4;63-59-37N;145-41-33W;63-59-20N;145-43-05W;389;387; +KBIH;72;480;Bishop, Bishop Airport;CA;United States;4;37-22-16N;118-21-29W;37-22-15N;118-21-59W;1256;1253; +KBIJ;--;---;Blakely, Early County Airport;GA;United States;4;31-23-49N;084-53-42W;;;65;; +KBIL;72;677;Billings, Billings Logan International Airport;MT;United States;4;45-48-25N;108-32-32W;45-48-15N;108-32-09W;1112;1091;P +KBIS;72;764;Bismarck, Bismarck Municipal Airport;ND;United States;4;46-46-57N;100-45-26W;46-46-20N;100-45-26W;511;503;P +KBIT;--;---;Bittercreek;WY;United States;4;41-39N;108-35W;;;2160;; +KBIV;--;---;Holland, Tulip City Airport;MI;United States;4;42-44-46N;086-05-48W;42-44-38N;086-06-56W;209;208; +KBIX;--;---;Keesler Air Force Base / Biloxi;MS;United States;4;30-25N;088-55W;;;10;; +KBJC;--;---;Broomfield / Jeffco;CO;United States;4;39-55N;105-07W;;;1724;; +KBJI;72;755;Bemidji;MN;United States;4;47-30N;094-56W;;;423;420;P +KBJJ;--;---;Wooster, Wayne County Airport;OH;United States;4;40-52-23N;081-53-12W;40-52-27N;081-52-54W;346;343; +KBJN;72;282;Las Vegas, Tonopah Range #74 Nellis AFB;NV;United States;4;37-37-02;116-15-51W;;;1756;; +KBKB;--;---;Ft. Polk, Fullerton Landing Strip;LA;United States;4;31-00N;092-97W;;;94;; +KBKE;--;---;Baker City, Baker City Municipal Airport;OR;United States;4;44-50-14N;117-48-33W;45-50-27N;117-48-25W;1028;1024; +KBKF;--;---;Aurora, Buckley Air Force Base Airport;CO;United States;4;39-42-36N;104-45-29W;;;1726;; +KBKL;--;---;Cleveland, Burke Lakefront Airport;OH;United States;4;41-31-32N;081-40-08W;41-30-44N;081-41-21W;178;184; +KBKS;--;---;Falfurrias, Brooks County Airport;TX;United States;4;27-12-24N;098-07-16W;;;34;; +KBKT;--;---;Ft. Pickett / Blackstone;VA;United States;4;37-05N;077-57W;;;130;; +KBKV;--;---;Brooksville, Hernando County Airport;FL;United States;4;28-28-25N;082-27-16W;28-28-23N;082-27-09W;23;20; +KBKW;72;412;Beckley, Raleigh County Memorial Airport;WV;United States;4;37-47-42N;081-07-29W;37-47-00N;081-07-16W;763;764; +KBKX;--;---;Brookings, Brookings Municipal Airport;SD;United States;4;44-18N;096-49W;;;502;; +KBLF;--;---;Bluefield, Mercer County Airport;WV;United States;4;37-17-45N;081-12-28W;37-17-32N;081-12-33W;871;873; +KBLH;--;---;Blythe, Blythe Airport;CA;United States;4;33-37-09N;114-43-01W;33-36-48N;114-42-48W;121;119; +KBLI;--;---;Bellingham, Bellingham International Airport;WA;United States;4;48-47-58N;122-32-21W;48-47-56N;122-32-05W;48;50; +KBLM;--;---;Belmar-Farmingdale;NJ;United States;4;40-11N;074-08W;;;48;; +KBLU;--;---;Emigrant Gap, Blue Canyon Nyack Airport;CA;United States;4;39-16-34N;120-42-29W;39-16-32N;120-42-29W;1610;1609; +KBLV;--;---;Belleville, Scott AFB/MidAmerica Airport;IL;United States;4;38-33N;089-51W;;;140;; +KBLX;--;---;Billing Yell Nexrad;MT;United States;4;45-51-14N;108-36-22W;;;1116;; +KBMG;--;---;Bloomington, Monroe County Airport;IN;United States;4;39-08-35N;086-37-00W;39-08-51N;086-36-44W;257;257; +KBMI;--;---;Bloomington/Normal, Central Illinois Regional Airport at Bloomington-Normal;IL;United States;4;40-28-37N;088-54-57W;;;266;; +KBML;72;616;Berlin, Berlin Municipal Airport;NH;United States;4;44-34-34N;071-10-43W;44-34-41N;071-10-49W;353;345; +KBMQ;--;---;Burnet, Burnet Municipal Craddock Field;TX;United States;4;30-44-26N;098-14-07W;30-44-27N;098-14-10W;392;389; +KBMX;--;---;Birmingham Nexrad;AL;United States;4;33-10N;086-45W;;;231;; +KBNA;72;327;Nashville, Nashville International Airport;TN;United States;4;36-07-08N;086-41-21W;36-06-59N;086-40-31W;182;210;P +KBNO;72;683;Burns, Burns Municipal Airport;OR;United States;4;43-35-42N;118-57-23W;43-35-12N;118-57-12W;1263;1264;P +KBNW;--;---;Boone Municipal;IA;United States;4;42-03N;093-51W;;;354;; +KBNY;--;---;Burney;CA;United States;4;40-53N;121-40W;;;957;; +KBOI;72;681;Boise, Boise Air Terminal;ID;United States;4;43-34-00N;116-14-26W;43-34-03N;116-12-40W;871;875;P +KBOK;--;---;Brookings, Brookings Airport;OR;United States;4;42-04-28N;124-17-24W;;;140;; +KBOS;72;509;Boston, Logan International Airport;MA;United States;4;42-21-38N;071-00-38W;42-21-51N;071-01-09W;6;54;P +KBOW;--;---;Bartow Municipal;FL;United States;4;27-57N;081-47W;;;39;; +KBOX;--;---;Boston Nexrad;MA;United States;4;41-57N;071-08W;;;71;; +KBPG;--;---;Big Spring, Big Spring McMahon-Wrinkle Airport;TX;United States;4;32-12N;101-31W;;;784;; +KBPI;72;671;Big Piney, Big Piney-Marbleton Airport;WY;United States;4;42-34-44N;110-06-11W;42-34-41N;110-06-14W;2126;2117; +KBPK;--;---;Mountain Home, Ozark Regional Airport;AR;United States;4;36-22-14N;092-28-19W;36-22-17N;092-27-42W;282;280; +KBPP;--;---;Bowman, Bowman Municipal Airport;ND;United States;4;46-11-13N;103-25-41W;;;902;; +KBPT;72;241;Beaumont / Port Arthur, Southeast Texas Regional Airport;TX;United States;4;29-57-03N;094-01-15W;29-57-27N;094-01-21W;5;5; +KBQK;--;---;Brunswick / Glynco;GA;United States;4;31-15N;081-28W;;;8;; +KBRD;--;---;Brainerd, Brainerd-Crow Wing County Regional Airport;MN;United States;4;46-24-17N;094-07-51W;46-23-33N;094-08-24W;373;372; +KBRL;--;---;Burlington, Burlington Regional Airport;IA;United States;4;40-46-22N;091-07-31W;40-46-55N;091-07-11W;212;211; +KBRO;72;250;Brownsville, Brownsville / South Padre Island International Airport;TX;United States;4;25-54-51N;097-25-23W;25-54-22N;097-25-54W;7;5;P +KBRX;--;---;Bordeaux;WY;United States;4;41-56N;104-57W;;;1422 +KBTL;--;---;Battle Creek, Kellogg Airport;MI;United States;4;42-18-45N;085-14-27W;42-18-49N;085-14-19W;290;290; +KBTM;--;---;Butte, Bert Mooney Airport;MT;United States;4;45-57-17N;112-29-51W;45-57-15N;112-30-05W;1690;1688; +KBTP;--;---;Butler, Butler County Airport/K W Scholter Field;PA;United States;4;40-47N;079-57W;;;380;; +KBTR;--;---;Baton Rouge, Baton Rouge Metropolitan, Ryan Field;LA;United States;4;30-32-14N;091-08-49W;30-31-50N;091-08-36W;21;21; +KBTT;--;---;Bettles, Bettles Airport;AK;United States;4;66-54-58N;151-30-32W;66-54-58N;151-30-33W;196;197; +KBTV;72;617;Burlington, Burlington International Airport;VT;United States;4;44-28-05N;073-09-01W;44-28-08N;073-09-18W;101;105;P +KBUF;72;528;Buffalo, Greater Buffalo International Airport;NY;United States;4;42-56-27N;078-44-09W;42-56-21N;078-43-10W;220;225;P +KBUO;--;---;Beaumont;CA;United States;4;33-56N;116-58W;;;692;; +KBUR;72;288;Burbank, Burbank-Glendale-Pasadena Airport;CA;United States;4;34-11-59N;118-21-53W;34-11-58N;118-21-11W;236;217; +KBUU;--;---;Burlington, Burlington Municipal Airport;WI;United States;4;42-41-26N;088-18-17W;;;237;; +KBUY;--;---;Burlington, Burlington Alamance Regional Airport;NC;United States;4;36-02-52N;079-28-26W;36-03-00N;079-28-46W;188;180; +KBVE;72;232;Boothville;LA;United States;4;29-20N;089-24W;29-20N;089-24W;0;1; +KBVI;--;---;Beaver Falls Airport;PA;United States;4;40-46N;080-24W;;;382;; +KBVN;--;---;Albion, Albion Municipal Airport;NE;United States;4;41-43-42N;098-03-20W;;;551;; +KBVO;--;---;Bartlesville, Bartlesville Municipal Airport;OK;United States;4;36-46-06N;096-01-34W;36-45-32N;096-00-26W;217;210; +KBVR;--;---;Beaver Rim;WY;United States;4;42-35N;108-17W;;;2072;; +KBVS;--;---;Burlington/Mount Vernon, Skagit Regional Airport;WA;United States;4;48-28-15N;122-25-15W;;;44;; +KBVX;--;---;Batesville, Batesville Regional Airport;AR;United States;4;35-44N;091-39W;;;141;; +KBVY;--;---;Beverly, Beverly Municipal Airport;MA;United States;4;42-35-01N;070-54-59W;42-35-07N;070-54-46W;33;28; +KBWD;--;---;Brownwood, Brownwood Regional Airport;TX;United States;4;31-48N;098-57W;;;422;; +KBWG;--;---;Bowling Green, Bowling Green-Warren County Regional Airport;KY;United States;4;36-57-52N;086-25-10W;36-57-45N;086-25-35W;167;161; +KBWI;72;406;Baltimore, Baltimore-Washington International Airport;MD;United States;4;39-10-00N;076-41-00W;39-10-44N;076-40-11W;44;59; +KBWP;--;---;Wahpeton, Harry Stern Airport;ND;United States;4;46-14-38N;096-36-26W;;;295;; +KBXA;--;---;Bogalusa, George R Carr Memorial Air Field;LA;United States;4;30-48-49N;089-51-53W;;;36;; +KBYG;--;---;Buffalo, Buffalo Johnson County Airport;WY;United States;4;44-22-53N;106-43-08W;44-22-43N;106-42-55W;1514;1497; +KBYH;--;---;Eaker Air Force Base;AR;United States;4;35-58N;089-57W;;;78;; +KBYI;--;---;Burley, Burley Municipal Airport;ID;United States;4;42-32-33N;113-46-17W;42-32-20N;113-46-06W;1265;1264; +KBYS;74;611;Fort Irwin/Barstow, Bicycle Lake Army Airfield;CA;United States;4;35-17N;116-37W;35-17N;116-37W;716;716; +KBYY;--;---;Bay City, Bay City Municipal Airport;TX;United States;4;28-58-23N;095-51-48W;;;14;; +KBZN;--;---;Bozeman, Gallatin Field;MT;United States;4;45-47-17N;111-09-39W;45-46-35N;111-09-15W;1364;1361; +KC09;--;---;Morris, Morris Municipal-James R Washburn Field Airport;IL;United States;4;41-25-31N;088-25-07W;;;178;; +KC19;--;---;Holland / Tulip City;MI;United States;4;42-45N;086-06W;;;210;; +KC52;--;---;Burlington, Burlington Municipal Airport;WI;United States;4;42-41-26N;088-18-17W;;;237;; +KC58;--;---;Two Rivers Coast Guard Station;WI;United States;4;44-08N;087-33W;;;176;; +KC73;--;---;Dixon / Walgreen Field;IL;United States;4;41-50N;089-27W;;;240;; +KC75;--;---;Lacon, Marshall County Airport;IL;United States;4;41-01-09N;089-23-11W;;;173;; +KC96;--;---;Winter Park Resort ;CO;United States;4;39-53N;105-46W;;;2771;; +KCAD;--;---;Cadillac / Wexford County;MI;United States;4;44-17N;085-25W;;;398;; +KCAE;72;310;Columbia, Columbia Metropolitan Airport;SC;United States;4;33-56-31N;081-07-05W;33-56-43N;081-07-22W;71;73;P +KCAG;72;570;Craig, Craig-Moffat Airport;CO;United States;4;40-29-36N;107-31-25W;40-29-34N;107-31-16W;1888;1887;P +KCAK;72;521;Akron, Akron-Canton Regional Airport;OH;United States;4;40-55-05N;081-26-33W;40-54-43N;081-26-18W;374;377; +KCAO;72;360;Clayton, Clayton Municipal Airpark;NM;United States;4;36-26-54N;103-09-11W;36-26-46N;103-09-18W;1513;1514;P +KCAR;72;712;Caribou, Caribou Municipal Airport;ME;United States;4;46-52-02N;068-00-48W;46-52-06N;068-00-48W;191;191;P +KCAV;--;---;Clarion;IA;United States;4;42-45N;093-46W;;;354;; +KCBE;--;---;Cumberland, Greater Cumberland Regional Airport;MD;United States;4;39-36-55N;078-45-39W;;;236;; +KCBF;--;---;Council Bluffs;IA;United States;4;41-16N;095-46W;;;382;; +KCBG;--;---;Cambridge Municipal;MN;United States;4;45-34N;093-16W;;;287;; +KCBM;--;---;Columbus Air Force Base;MS;United States;4;33-39N;088-27W;;;67;; +KCCO;--;---;Newnan, Newnan Coweta County Airport;GA;United States;4;33-18-44N;084-46-13W;;;296;; +KCCR;--;---;Concord, Buchanan Field;CA;United States;4;37-59-30N;122-03-07W;37-59-09N;122-03-16W;7;11; +KCCU;--;---;Copper Mountain, Red Cliff Pass;CO;United States;4;39-28-02N;106-09-01W;;;3680;; +KCCX;--;---;State College Nexrad;PA;United States;4;40-55N;078-00W;;;758;; +KCCY;--;---;Charles City;IA;United States;4;43-04N;092-37W;;;343;; +KCDC;--;---;Cedar City, Cedar City Municipal Airport;UT;United States;4;37-42-24N;113-05-48W;37-42-00N;113-05-30W;1715;1714; +KCDD;--;---;Crane Lake, Scotts Seaplane Base;MN;United States;4;48-15-59N;92-29-01W;;;341;; +KCDH;--;---;Camden / Harrell Field;AR;United States;4;33-37N;092-46W;;;40;; +KCDJ;--;---;Chillicothe, Chillicothe Agri-Science Center;MO;United States;4;39-49N;093-35W;;;234;; +KCDR;--;---;Chadron, Chadron Municipal Airport;NE;United States;4;42-50-15N;103-05-43W;42-49-44N;103-05-50W;1005;1010; +KCDS;--;---;Childress, Childress Municipal Airport;TX;United States;4;34-25-39N;100-17-00W;34-25-39N;100-16-58W;595;594; +KCDV;--;---;Cordova, Smith Airport;AK;United States;4;60-29-20N;145-27-04W;60-29-38N;145-28-02W;12;18; +KCDW;--;---;Caldwell, Essex County Airport;NJ;United States;4;40-52-35N;074-16-59W;40-52-33N;074-16-40W;52;64; +KCEC;--;---;Crescent City, Jack McNamara Field Airport;CA;United States;4;41-46-49N;124-14-12W;;;17;; +KCEF;74;491;Chicopee Falls / Westover Air Force Base;MA;United States;4;42-12N;072-32W;;;75;75; +KCEU;--;---;Clemson, Clemson-Oconee County Airport;SC;United States;4;34-40-20N;082-52-53W;34-40-19N;082-52-49W;272;268; +KCEW;--;---;Crestview, Sikes Airport;FL;United States;4;30-46-20N;086-31-12W;;;65;55; +KCEZ;--;---;Cortez, Cortez-Montezuma County Airport;CO;United States;4;37-18-23N;108-37-32W;37-18-14N;108-37-43W;1803;1797; +KCFE;--;---;Buffalo, Buffalo Municipal Airport;MN;United States;4;45-09-32N;093-50-35W;;;295;; +KCFS;--;---;Caro, Tuscola Area Airport;MI;United States;4;43-27-31N;083-26-43W;;;214;; +KCFT;--;---;Clifton/Morenci, Greenlee County Airport;AZ;United States;4;32-57-10N;109-12-37W;;;1162;; +KCFV;--;---;Coffeyville, Coffeyville Municipal Airport;KS;United States;4;37-05-28N;095-33-59W;37-05-52N;095-34-32W;229;225; +KCGF;--;---;Cleveland / Cuyahoga;OH;United States;4;41-34N;081-29W;;;268;; +KCGI;--;---;Cape Girardeau, Cape Girardeau Regional Airport;MO;United States;4;37-13-32N;089-34-42W;37-13-38N;089-33-53W;104;102; +KCGX;--;---;Chicago / Meigs;IL;United States;4;41-52N;087-36W;;;181;; +KCGZ;--;---;Casa Grande, Casa Grande Municipal Airport;AZ;United States;4;32-57N;111-46W;;;446;; +KCHA;72;324;Chattanooga, Lovell Field;TN;United States;4;35-02-00N;085-12-00W;35-01-31N;085-12-06W;207;210;P +KCHD;--;---;Chandler, Chandler Municipal Airport;AZ;United States;4;33-16-09N;111-48-40W;;;379;; +KCHH;74;494;Chatham;MA;United States;4;41-40N;069-58W;41-40N;069-58W;14;16; +KCHI;--;---;Chicago Weather Service Forecast Office;IL;United States;4;42-00N;087-53W;;;181;; +KCHK;--;---;Chickasha, Chickasha Municipal Airport;OK;United States;4;35-05-46N;097-57-58W;;;351;; +KCHO;--;---;Charlottesville, Charlottesville-Albemarle Airport;VA;United States;4;38-08-18N;078-27-21W;38-08-19N;078-27-00W;195;192; +KCHS;72;208;Charleston, Charleston Air Force Base;SC;United States;4;32-53-56N;080-02-26W;32-53-40N;080-01-40W;14;13;P +KCIC;--;---;Chico Municipal ;CA;United States;4;39-48N;121-51W;;;73;; +KCID;--;---;Cedar Rapids, The Eastern Iowa Airport;IA;United States;4;41-53-04N;091-42-38W;;;263;; +KCIN;--;---;Carroll;IA;United States;4;42-03N;094-47W;;;375;; +KCIR;--;---;Cairo, Cairo Regional Airport;IL;United States;4;37-03-52N;089-13-10W;;;98;; +KCIU;--;---;Sault Ste Marie, Chippewa County International Airport;MI;United States;4;46-15N;084-28W;;;244;; +KCJR;--;---;Culpeper, Culpeper County Airport;VA;United States;4;38-31-36N;077-51-32W;;;95;; +KCKB;--;---;Clarksburg, Clarksburg Benedum Airport;WV;United States;4;39-18-00N;080-13-29W;39-18-00N;080-13-45W;366;360; +KCKC;--;---;Grand Marais, Grand Marais/Cook County Airport;MN;United States;4;47-50-18N;090-22-59W;;;548;; +KCKL;72;229;Centreville;AL;United States;4;32-54N;087-15W;32-54N;087-15W;140;140;P +KCKN;--;---;Crookston Municipal Field;MN;United States;4;47-51N;096-37W;;;273;; +KCKP;--;---;Cherokee, Cherokee Municipal Airport;IA;United States;4;42-43-54N;095-33-21W;;;374;; +KCKV;--;---;Clarksville, Outlaw Field Airport;TN;United States;4;36-37-19N;087-24-54W;36-37-18N;087-25-07W;168;165; +KCLE;72;524;Cleveland, Cleveland-Hopkins International Airport;OH;United States;4;41-24-18N;081-51-10W;41-24-41N;081-51-36W;241;236;P +KCLI;--;---;Clintonville, Clintonville Municipal Airport;WI;United States;4;44-36-50N;088-43-53W;;;251;; +KCLK;--;---;Clinton, Clinton Regional Airport;OK;United States;4;35-32-17N;098-55-17W;;;492;; +KCLL;--;---;College Station, Easterwood Field;TX;United States;4;30-34-56N;096-21-42W;30-35-30N;096-21-30W;97;96; +KCLM;--;---;Port Angeles, William R. Fairchild International Airport;WA;United States;4;48-07-20N;123-30-19W;48-07-01N;123-29-32W;87;85; +KCLT;72;314;Charlotte, Charlotte / Douglas International Airport;NC;United States;4;35-12-48N;080-56-55W;35-13-25N;080-56-46W;228;220;P +KCMA;--;---;Camarillo, Camarillo Airport;CA;United States;4;34-13N;119-05W;;;23;; +KCMH;72;428;Columbus, Port Columbus International Airport;OH;United States;4;39-59-42N;082-52-35W;40-00-24N;082-53-15W;248;247;P +KCMI;--;---;Champaign / Urbana, University Of Illinois-Willard Airport;IL;United States;4;40-01-56N;088-16-24W;40-02-24N;088-16-15W;229;228; +KCMS;--;---;Cemetery Separa;WY;United States;4;41-32N;109-28W;;;1949;; +KCMX;72;744;Hancock, Houghton County Memorial Airport;MI;United States;4;47-10-06N;088-29-20W;47-10-15N;088-29-46W;334;326; +KCMY;--;---;Sparta, Sparta / Fort McCoy Airport;WI;United States;4;43-57-30N;090-44-16W;;;255;; +KCNC;--;---;Chariton;IA;United States;4;41-02N;093-22W;;;320;; +KCNK;72;458;Concordia, Blosser Municipal Airport;KS;United States;4;39-33-05N;097-39-02W;39-33-00N;097-39-15W;453;447;P +KCNM;--;---;Carlsbad, Cavern City Air Terminal Airport;NM;United States;4;32-20-15N;104-15-48W;32-20-33N;104-15-07W;1004;985; +KCNO;--;---;Chino, Chino Airport;CA;United States;4;33-58-32N;117-37-25W;33-58-45N;117-38-19W;198;207; +KCNU;--;---;Chanute, Chanute Martin Johnson Airport;KS;United States;4;37-40-13N;095-29-03W;37-41-09N;095-29-14W;305;297; +KCNY;--;---;Moab, Canyonlands Field;UT;United States;4;38-45-36N;109-44-41W;38-45-41N;109-44-22W;1388;1390; +KCOD;72;670;Cody;WY;United States;4;44-31N;109-01W;;;1551;1553;P +KCOE;--;---;Coeur d'Alene, Coeur d'Alene Air Terminal;ID;United States;4;47-46N;116-49W;;;707;; +KCOF;74;795;Cocoa / Patrick Air Force Base;FL;United States;4;28-14N;080-36W;;;3;3; +KCOI;--;---;Merritt Island, Merritt Island Airport;FL;United States;4;28-20-29N;080-41-07W;;;2;; +KCON;72;605;Concord, Concord Municipal Airport;NH;United States;4;43-11-43N;071-30-04W;43-12-22N;071-30-36W;105;103; +KCOQ;--;---;Cloquet, Cloquet Carlton County Airport;MN;United States;4;46-42N;092-30W;;;390;; +KCOS;72;466;Colorado Springs, City Of Colorado Springs Municipal Airport;CO;United States;4;38-48-57N;104-42-39W;38-48-31N;104-43-14W;1881;1856; +KCOT;--;---;Cotulla, Cotulla-La Salle County Airport;TX;United States;4;28-27-30N;099-13-13W;28-27-13N;099-13-05W;145;140; +KCOU;72;445;Columbia, Columbia Regional Airport;MO;United States;4;38-49-01N;092-13-06W;38-49-06N;092-13-14W;271;271;P +KCPC;--;---;Whiteville, Columbus County Municipal Airport;NC;United States;4;34-16-22N;078-42-54W;;;30;; +KCPK;--;---;Chesapeake, Chesapeake Municipal Airport;VA;United States;4;36-39-56N;076-19-14W;;;6;; +KCPR;72;569;Casper, Natrona County International Airport;WY;United States;4;42-53-51N;106-28-23W;42-53-50N;106-27-50W;1630;1621;P +KCPS;--;---;Cahokia / St. Louis, St. Louis Downtown Airport;IL;United States;4;38-34-15N;090-09-22W;38-34-13N;090-09-41W;126;126; +KCPT;--;---;Cleburne, Cleburne Municipal Airport;TX;United States;4;32-21-13N;097-26-01W;;;260;; +KCPW;--;---;Pagosa Springs, Wolf Creek Pass;CO;United States;4;37-27-05N;106-48-01W;;;3584;; +KCQB;--;---;Chandler, Chandler Municipal Airport;OK;United States;4;35-43-26N;096-49-13W;;;300;;; +KCQC;--;---;Clines Corners;NM;United States;4;35-00N;105-40W;;;2160;; +KCQM;--;---;Cook, Cook Municipal Airport;MN;United States;4;47-49-19N;092-41-22W;;;405;; +KCQN;--;---;Chattanooga / Daisy;TN;United States;4;35-10N;085-09W;;;225;; +KCQT;--;---;Los Angeles / USC Campus Downtown;CA;United States;4;34-01N;118-17W;;;56;; +KCQV;--;---;Colville Municipal;WA;United States;4;48-33N;117-53W;;;572;; +KCQX;--;---;Chatham, Chatham Municipal Airport;MA;United States;4;41-41-15N;069-59-36W;41-41-17N;069-59-32W;20;19; +KCRE;--;---;North Myrtle Beach, Grand Strand Airport;SC;United States;4;33-48-42N;078-43-26W;33-48-07N;078-34-4W;10;10; +KCRG;--;---;Jacksonville, Craig Municipal Airport;FL;United States;4;30-20-10N;081-30-53W;30-20-11N;081-30-53W;12;13; +KCRP;72;251;Corpus Christi, Corpus Christi International Airport;TX;United States;4;27-46-23N;097-30-46W;27-46-26N;097-29-59W;13;16;P +KCRQ;--;---;Carlsbad, McClellan-Palomar Airport;CA;United States;4;33-07-48N;117-16-33W;33-07-38N;117-16-32W;100;99; +KCRS;--;---;Corsicana, Campbell Field-Corsicana Municipal Airport;TX;United States;4;32-01-52N;096-23-56W;32-01-42N;096-23-46W;136;133; +KCRV;--;---;Nederland Mountain, Corona Pass;CO;United States;4;40-03-01N;105-35-02W;;;3538;; +KCRW;72;414;Charleston, Yeager Airport;WV;United States;4;38-22-46N;081-35-29W;38-21-44N;081-35-24W;299;309;P +KCSG;--;---;Columbus, Columbus Metropolitan Airport;GA;United States;4;32-30-58N;084-56-32W;32-31-18N;084-56-39W;121;135; +KCSL;--;---;Camp San Luis Airport ;CA;United States;4;35-20N;120-44W;;;76;; +KCSM;--;---;Clinton, Clinton-Sherman Airport;OK;United States;4;35-21-24N;099-12-13W;35-21-05N;099-11-50W;585;588; +KCSQ;--;---;Creston;IA;United States;4;41-01N;094-22W;;;394;; +KCSV;--;---;Crossville, Crossville Memorial-Whitson Field Airport;TN;United States;4;35-57-05N;085-05-06W;35-57-14N;085-04-59W;573;570; +KCTB;--;---;Cut Bank, Cut Bank Municipal Airport;MT;United States;4;48-36-30N;112-22-34W;;;1175;; +KCTD;--;---;Continental Div;WY;United States;4;41-43N;107-47W;;;2146;; +KCTO;--;---;Calverton / Grumman;NY;United States;4;40-55N;072-47W;;;23;; +KCTY;72;212;Cross City, Cross City Airport;FL;United States;4;29-33-00N;083-06-19W;29-37-49N;083-06-31W;12;12;P +KCTZ;--;---;Clinton, Sampson County Airport;NC;United States;4;34-58-32N;078-21-53W;;;45;; +KCUB;--;---;Columbia, Columbia Owens Downtown Airport;SC;United States;4;33-58-15N;080-59-40W;33-58-22N;080-59-39W;64;56; +KCUH;--;---;Cushing, Cushing Municipal Airport;OK;United States;4;35-56-59N;096-46-22W;;;279;; +KCUL;--;---;Carmi, Carmi Municipal Airport;IL;United States;4;38-05-22N;088-07-23W;;;118;; +KCUT;--;---;Custer, Custer County Airport;SD;United States;4;43-43-59N;103-37-03W;43-44-00N;103-36-50W;1707;1725; +KCVG;72;421;Covington / Cincinnati, Cincinnati / Northern Kentucky International Airport;KY;United States;4;39-02-35N;084-40-18W;39-03-17N;084-39-40W;273;269;P +KCVN;--;---;Clovis, Clovis Municipal Airport;NM;United States;4;34-26N;103-05W;;;1285;; +KCVO;--;---;Corvallis, Corvallis Municipal Airport;OR;United States;4;44-30N;123-17W;;;75;; +KCVS;--;---;Cannon Air Force Base / Clovis;NM;United States;4;34-23N;103-19W;;;1309;; +KCVX;--;---;Charlevoix, Charlevoix Municipal Airport;MI;United States;4;45-18-17N;085-16-29W;;;204;; +KCWA;--;---;Mosinee / Central Wisconsin;WI;United States;4;44-47N;089-40W;;;389;; +KCWF;--;---;Chenault Airpark;LA;United States;4;30-13N;093-09W;;;4;; +KCWI;--;---;Clinton, Clinton Municipal Airport;IA;United States;4;41-50N;090-20W;;;216;; +KCWL;--;---;Calexico, Calexico International Airport;CA;United States;4;32-40-10N;115-30-48W;;;1;; +KCXO;--;---;Conroe, Montgomery County Airport;TX;United States;4;30-21-24N;095-24-50W;30-21-11N;095-25-30W;74;75; +KCXY;--;---;Harrisburg, Capital City Airport;PA;United States;4;40-13-02N;076-51-05W;40-13-13N;076-51-14W;106;106; +KCYS;72;564;Cheyenne, Cheyenne Airport;WY;United States;4;41-09-28N;104-48-25W;41-09-11N;104-48-33W;1876;1865;P +KCZD;--;---;Cozad Municipal;NE;United States;4;40-52N;100-00W;;;762;; +KCZK;--;---;Cascade Locks State;OR;United States;4;45-40N;121-53W;;;46;; +KCZZ;--;---;Campo;CA;United States;4;32-37-34N;116-28-06W;;;807;807; +KD07;--;---;Faith;SD;United States;4;45-01-55N;102-01-09W;;;787;784; +KD19;--;---;Luverne, Quentin Aanenson Field Airport;MN;United States;4;43-37-16N;096-12-56W;;;436;; +KD45;72;756;Warroad;MN;United States;4;48-56N;095-21W;;;328;328; +KD87;--;---;Harbor Springs, Harbor Springs Airport;MI;United States;4;45-25-32N;084-54-48W;;;209;; +KD97;--;---;South St. Paul Municipal;MN;United States;4;44-51N;093-09W;;;250;; +KDAA;--;---;Fort Belvoir;VA;United States;4;38-43N;077-11W;;;21;; +KDAB;--;---;Daytona Beach, Daytona Beach Regional Airport;FL;United States;4;29-10-38N;081-03-36W;29-10-56N;081-02-53W;10;9; +KDAG;--;---;Daggett, Barstow-Daggett Airport;CA;United States;4;34-51-13N;116-47-12W;34-51-10N;116-47-30W;587;587; +KDAL;--;---;Dallas, Dallas Love Field;TX;United States;4;32-51-09N;096-51-20W;32-50-42N;096-51-00W;148;158; +KDAN;--;---;Danville, Danville Regional Airport;VA;United States;4;36-34-22N;079-20-10W;36-34-32N;079-20-24W;174;175; +KDAW;--;---;Rochester, Skyhaven Airport;NH;United States;4;43-16-41N;070-55-20W;43-16-56N;070-55-47W;98;100; +KDAX;--;---;Sacramento Nexrad;CA;United States;4;38-30N;121-41W;;;44;; +KDAY;72;429;Dayton, Cox Dayton International Airport;OH;United States;4;39-54-22N;084-13-07W;39-54-16N;084-12-20W;307;305;P +KDBN;--;---;Dublin, W H 'Bud' Barron Airport;GA;United States;4;32-33-52N;082-59-06W;;;94;; +KDBQ;72;547;Dubuque, Dubuque Regional Airport;IA;United States;4;42-23-52N;090-42-13W;42-24-20N;090-42-20W;328;326;P +KDCA;72;405;Washington DC, Reagan National Airport;VA;United States;4;38-50-54N;077-02-03W;38-50-56N;077-02-29W;4;18;P +KDCU;--;---;Decatur, Pryor Field;AL;United States;4;34-39-29N;086-56-36W;34-39-01N;086-56-52W;180;176; +KDDC;72;451;Dodge City, Dodge City Regional Airport;KS;United States;4;37-46-22N;099-58-11W;37-45-45N;099-58-08W;790;789;P +KDDH;--;---;Bennington, Bennington Morse State Airport;VT;United States;4;42-53-24N;073-14-47W;42-53-24N;073-14-54W;252;244; +KDEC;--;---;Decatur, Decatur Airport;IL;United States;4;39-50-04N;088-51-56W;39-50-05N;088-52-37W;208;207; +KDEE;--;---;Deering, Deering Airport;AK;United States;4;66-04-14N;162-45-30W;66-04-13N;162-45-30W;4;4; +KDEH;--;---;Decorah;IA;United States;4;43-17N;091-44W;;;353;; +KDEN;72;565;Denver, Denver International Airport;CO;United States;4;39-49-58N;104-39-27W;39-51-45N;104-40-25W;1655;1640; +KDEQ;--;---;De Queen, J Lynn Helms Sevier County Airport;AR;United States;4;34-02-49N;094-23-58W;34-02-44N;094-23-58W;108;106; +KDET;--;---;Detroit, Detroit City Airport;MI;United States;4;42-24-33N;083-00-36W;42-24-35N;083-00-18W;191;190; +KDEW;--;---;Deer Park, Deer Park Airport;WA;United States;4;47-58-27N;117-25-42W;47-57-44N;117-26-06W;672;668; +KDFI;--;---;Defiance, Defiance Memorial Airport;OH;United States;4;41-20-11N;084-25-46W;41-20-04N;084-25-40W;215;219; +KDFW;72;259;Dallas / Fort Worth, Dallas / Fort Worth International Airport;TX;United States;4;32-53-49N;097-01-19W;32-53-07N;097-01-18W;183;174;P +KDGW;72;568;Douglas, Converse County Airport;WY;United States;4;42-47-39N;105-22-55W;42-47-47N;105-23-06W;1502;1499; +KDHN;--;---;Dothan, Dothan Regional Airport;AL;United States;4;31-19-17N;085-26-59W;31-18-54N;085-26-51W;122;113; +KDHS;--;---;Dead Horse;WY;United States;4;44-13N;106-06W;;;1241;; +KDHT;--;---;Dalhart, Dalhart Municipal Airport;TX;United States;4;36-01-24N;102-32-50W;36-01-16N;102-32-52W;1216;1217; +KDIK;--;---;Dickinson, Dickinson Municipal Airport;ND;United States;4;46-47-50N;102-48-07W;46-48-11N;102-47-59W;790;788; +KDIX;--;---;Philadelphia NEXRAD;PA;United States;4;39-57N;074-25W;;;70;; +KDKB;--;---;De Kalb, De Kalb Taylor Municipal Airport;IL;United States;4;41-55-55N;088-42-30W;;;279;; +KDKK;--;---;Dunkirk, Chautauqua County / Dunkirk Airport;NY;United States;4;42-29-35N;079-16-33W;42-29-37N;079-16-45W;211;202; +KDKR;--;---;Crockett, Houston County Airport;TX;United States;4;31-18-25N;095-24-13W;;;106;; +KDKX;--;---;Knoxville Downtown;TN;United States;4;35-58N;083-52W;;;254;; +KDLF;--;---;Laughlin, Laughlin Air Force Base Auxiliary Airfield;TX;United States;4;29-07-00N;100-28-00W;;;294;294; +KDLH;72;745;Duluth, Duluth International Airport;MN;United States;4;46-50-34N;092-13-34W;46-50-22N;092-11-24W;435;435;P +KDLL;--;---;Baraboo, Baraboo Wisconsin Dells Airport;WI;United States;4;43-31-19N;089-46-15W;;;298;; +KDLN;--;---;Dillon, Dillon Airport;MT;United States;4;45-15-27N;112-33-16W;45-15-10N;112-33-10W;1597;1591; +KDLS;--;---;The Dalles, Columbia Gorge Regional / The Dalles Municipal Airport;OR;United States;4;45-37-07N;121-10-02W;45-37-06N;121-10-17W;75;71; +KDMA;--;---;Davis-Monthan Air Force Base;AZ;United States;4;32-10N;110-53W;;;824;; +KDMH;--;---;Baltimore, Inner Harbor;MD;United States;4;39-17N;076-37W;;;6;; +KDMN;--;---;Deming, Deming Municipal Airport;NM;United States;4;32-15-44N;107-43-14W;32-15-19N;107-43-21W;1315;1311; +KDMO;--;---;Sedalia, Sedalia Memorial Airport;MO;United States;4;38-42-44N;093-10-28W;38-42-15N;093-11-00W;277;274; +KDMX;--;---;Des Moines Nexrad;IA;United States;4;41-44N;093-43W;;;322;; +KDNK;--;---;Ft. Polk, Self Strip;LA;United States;4;31-10N;093-00W;;;114;; +KDNL;--;---;Augusta, Daniel Field;GA;United States;4;33-28-01N;082-02-19W;33-27-56N;082-02-07W;128;130; +KDNN;--;---;Dalton, Dalton Municipal Airport;GA;United States;4;34-43-18N;084-52-09W;;;216;; +KDNR;72;469;Denver / Stapleton International, Co.;CO;United States;4;39-47N;104-52W;39-45N;104-52W;1626;1626;P +KDNS;--;---;Denison;IA;United States;4;41-59N;095-23W;;;388;; +KDNV;--;---;Danville, Vermilion County Airport;IL;United States;4;40-11-58N;087-35-44W;;;212;; +KDOV;--;---;Dover Air Force Base;DE;United States;4;39-08N;075-28W;;;9;; +KDPA;--;---;Chicago / West Chicago, Dupage Airport;IL;United States;4;41-53-47N;088-15-04W;41-54-24N;088-15-20W;231;230; +KDPG;74;003;Dugway Proving Grounds;UT;United States;4;40-10N;112-56W;40-11N;112-56W;1326;1325; +KDPL;--;---;Kenansville, Duplin County Airport;NC;United States;4;35-00-00N;077-58-54W;;;42;; +KDQH;--;---;Douglas, Douglas Municipal Airport;GA;United States;4;31-28-36N;082-51-37W;;;78;; +KDRA;72;387;Mercury, Desert Rock Airport;NV;United States;4;36-37-14N;116-01-40W;36-37-27N;116-01-06W;1007;1006;P +KDRC;--;---;Deer Creek;WY;United States;4;42-50N;105-52W;;;1543;; +KDRI;--;---;De Ridder, Beauregard Parish Airport;LA;United States;4;30-49-54N;093-20-23W;;;63;; +KDRO;--;---;Durango, Durango-La Plata County Airport;CO;United States;4;37-08-35N;107-45-35W;37-09-34N;107-45-00W;2038;2035; +KDRT;72;261;Del Rio, Del Rio International Airport;TX;United States;4;29-22-29N;100-55-25W;29-22-28N;100-55-06W;304;313;P +KDSM;72;546;Des Moines, Des Moines International Airport;IA;United States;4;41-32-16N;093-39-58W;41-32-20N;093-39-25W;291;295;P +KDSV;--;---;Dansville, Dansville Municipal Airport;NY;United States;4;42-34-10N;077-42-52W;42-34-03N;077-42-51W;201;198; +KDTL;--;---;Detroit Lakes, Detroit Lakes Airport-Wething Field;MN;United States;4;46-50N;095-53W;;;426;; +KDTN;--;---;Shreveport, Shreveport Downtown Airport;LA;United States;4;32-32-33N;093-44-41W;32-32-23N;093-44-55W;54;53; +KDTO;--;---;Denton, Denton Municipal Airport;TX;United States;4;33-12-22N;097-11-56W;33-12-04N;097-11-39W;195;196; +KDTS;--;---;Destin, Destin-Ft. Walton Beach Airport;FL;United States;4;30-23-36N;086-28-03W;30-23-48N;086-28-17W;6;5; +KDTW;72;537;Detroit, Detroit Metropolitan Wayne County Airport;MI;United States;4;42-13-53N;083-19-51W;42-12-51N;083-21-13W;194;195;P +KDTX;--;---;Detroit NEXRAD;MI;United States;4;42-42N;083-27W;;;361;; +KDUA;--;---;Durant, Eaker Field Airport;OK;United States;4;33-56-32N;096-23-40W;;;213;; +KDUC;--;---;Duncan, Halliburton Field Airport;OK;United States;4;34-28-15N;097-57-36W;;;339;; +KDUG;--;---;Douglas Bisbee, Bisbee Douglas International Airport;AZ;United States;4;31-28-09N;109-36-13W;;;1266;; +KDUH;--;---;Lambertville, Toledo Suburban Airport;MI;United States;4;41-44-09N;083-39-19W;;;204;; +KDUJ;--;---;Du Bois, Du Bois-Jefferson County Airport;PA;United States;4;41-11N;078-54W;;;555;; +KDUX;--;---;Dumas, Moore County Airport;TX;United States;4;35-51-28N;102-00-47W;;;1129;; +KDVL;--;---;Devils Lake, Devils Lake Municipal Airport;ND;United States;4;48-07N;098-55W;;;444;; +KDVN;--;---;Davenport, Davenport Municipal Airport;IA;United States;4;41-36-50N;090-35-29W;41-36-38N;090-35-06W;229;228; +KDVP;--;---;Slayton, Slayton Municipal Airport;MN;United States;4;43-59-12N;095-46-57W;;;495;; +KDVT;--;---;Phoenix, Phoenix-Deer Valley Municipal Airport;AZ;United States;4;33-41-25N;112-03-56W;33-41-08N;112-04-53W;450;443; +KDWH;--;---;Houston, Hooks Memorial Airport;TX;United States;4;30-04-03N;095-33-22W;30-04-00N;095-33-21W;46;46; +KDXR;--;---;Danbury, Danbury Municipal Airport;CT;United States;4;41-22-18N;073-29-04W;41-22-21N;073-29-03W;139;139; +KDXX;--;---;Madison, Madison-Lac Qui Parle County Airport;MN;United States;4;44-59-10N;096-10-40W;;;330;; +KDYL;--;---;Doylestown, Doylestown Airport;PA;United States;4;40-19-48N;075-07-21W;40-20-01N;075-07-22W;120;117; +KDYR;--;---;Dyersburg, Dyersburg Municipal Airport;TN;United States;4;36-00N;089-24W;;;103;; +KDYS;--;---;Abilene, Dyess Air Force Base;TX;United States;4;32-25-12N;099-51-25W;;;545;; +KDYT;--;---;Duluth, Sky Harbor Airport;MN;United States;4;46-43-19N;092-02-36W;;;186;; +KE12;--;---;East Cameron 345;LA;United States;4;28-05N;092-42W;;;0;; +KE15;--;---;Graham, Graham Municipal Airport;TX;United States;4;33-06-36N;098-33-19W;;;342;; +KE24;--;---;Whiteriver, Whiteriver Airport;AZ;United States;4;33-49N;109-59W;;;1570;; +KE28;74;733;Northrup Landing Strip;NM;United States;4;33-54N;106-24W;32-54N;106-24W;1193;1193; +KE29;--;---;Sonora, Sonora Municipal Airport;TX;United States;4;30-35-08N;100-38-54W;;;652;; +KE33;--;---;Chama;NM;United States;4;36-54N;106-35W;;;2393;; +KE38;--;---;Alpine, Alpine-Casparis Municipal Airport;TX;United States;4;30-23-03N;103-41-00W;;;1376;; +KE74;--;---;Safford Automatic Meteorological Observing System;AZ;United States;4;32-49N;109-41W;;;950;; +KEAA;--;---;Eagle, Eagle Airport;AK;United States;4;64-46-35N;141-09-38W;64-46-35N;141-09-38W;268;273; +KEAR;--;---;Kearney, Kearney Municipal Airport;NE;United States;4;40-44N;099-00W;;;650;; +KEAT;--;---;Wenatchee, Pangborn Memorial Airport;WA;United States;4;47-23-56N;120-12-25W;47-24-06N;120-12-21W;381;377; +KEAU;--;---;Eau Claire, Chippewa Valley Regional Airport;WI;United States;4;44-51-55N;091-29-06W;;;277;; +KEAX;--;---;Pleasant NEXRAD;MO;United States;4;38-49N;094-16W;;;335;; +KEBG;--;---;Edinburg, Edinburg International Airport;TX;United States;4;26-26-31N;098-07-46W;;;24;; +KEBS;--;---;Webster City;IA;United States;4;42-26N;093-52W;;;342;; +KECG;--;---;Elizabeth City, Elizabeth City Coast Guard Air Station;NC;United States;4;36-15-47N;076-10-58W;36-15-50N;076-10-30W;3;11; +KECU;--;---;Rocksprings, Edwards County Airport;TX;United States;4;29-56-48N;100-10-25W;;;723;; +KEDE;--;---;Edenton, Northeastern Regional Airport;NC;United States;4;36-01-40N;076-34-02W;;;6;; +KEDW;72;381;Edwards Air Force Base;CA;United States;4;34-55N;117-54W;34-54N;117-55W;702;705; +KEED;--;---;Needles, Needles Airport;CA;United States;4;34-45-58N;114-37-24W;;;300;; +KEEN;--;---;Keene, Dillant-Hopkins Airport;NH;United States;4;42-54N;072-16W;;;149;; +KEEO;--;---;Meeker, Meeker Airport;CO;United States;4;40-02-32N;107-53-23W;40-02-25N;107-53-30W;1948;1930; +KEET;--;---;Alabaster, Shelby County Airport;AL;United States;4;33-10-42N;086-46-54W;33-10-35N;086-46-51W;178;173; +KEEW;--;---;Neenah;WI;United States;4;44-13N;088-33W;;;275;; +KEFC;--;---;Belle Fourche, Belle Fourche Municipal Airport;SD;United States;4;44-44N;103-52W;;;972;; +KEFD;--;---;Houston / Ellington;TX;United States;4;29-36N;095-10W;;;10;; +KEFT;--;---;Monroe, Monroe Municipal Airport;WI;United States;4;42-36-54N;089-35-27W;;;331;; +KEGE;--;---;Eagle County Regional;CO;United States;4;39-39N;106-55W;;;1993;; +KEGI;--;---;Duke Field / Eglin Auxiliary;FL;United States;4;30-39N;086-31W;;;59;; +KEGV;--;---;Eagle River, Eagle River Union Airport;WI;United States;4;45-55-54N;089-16-09W;;;501;; +KEHA;--;---;Elkhart, Elkhart-Morton County Airport;KS;United States;4;37-00N;101-53W;;;1104;; +KEHO;--;---;Shelby, Shelby Municipal Airport;NC;United States;4;35-15N;081-36W;;;258;; +KEHR;--;---;Henderson City;KY;United States;4;37-49N;087-41W;;;117;; +KEKA;72;594;Eureka;CA;United States;4;40-48N;124-10W;;;13;18;P +KEKM;--;---;Elkhart Municipal;IN;United States;4;41-43N;086-00W;;;237;; +KEKN;72;417;Elkins, Elkins-Randolph County-Jennings Randolph Field;WV;United States;4;38-53-07N;079-51-10W;38-53-01N;079-51-17W;605;603; +KEKO;--;---;Elko, Elko Regional Airport;NV;United States;4;40-49-30N;115-47-30W;;;1568;1547; +KEKQ;--;---;Monticello, Wayne County Airport;KY;United States;4;36-51-19N;084-51-22W;;;294;; +KELD;--;---;El Dorado, South Arkansas Regional at Goodwin Field Airport;AR;United States;4;33-13-15N;092-48-48W;33-13-00N;092-48-37W;84;81; +KELM;--;---;Elmira, Elmira / Corning Regional Airport;NY;United States;4;42-09-23N;076-54-10W;42-09-45N;076-53-44W;291;302; +KELN;--;---;Ellensburg, Ellensburg Bowers Field;WA;United States;4;47-02-01N;120-31-45W;47-01-45N;120-32-11W;536;519; +KELO;--;---;Ely, Ely Municipal Airport;MN;United States;4;47-49N;091-50W;;;444;; +KELP;72;270;El Paso, El Paso International Airport;TX;United States;4;31-48-40N;106-22-33W;31-47-50N;106-23-28W;1206;1197;P +KELY;72;486;Ely, Ely Airport;NV;United States;4;39-17-42N;114-50-43W;39-17-35N;114-50-32W;1907;1906;P +KELZ;--;---;Wellsville, Wellsville Municipal Airport;NY;United States;4;42-06-27N;077-59-04W;42-06-39N;077-59-28W;647;646; +KEMP;--;---;Emporia, Emporia Municipal Airport;KS;United States;4;38-19-44N;096-11-38W;39-19-45N;096-11-29W;367;367; +KEMT;--;---;El Monte;CA;United States;4;34-05N;118-02W;;;90;; +KEMV;--;---;Emporia, Emporia-Greensville Regional Airport;VA;United States;4;36-41-13N;077-28-58W;;;39;; +KEND;--;---;Vance Air Force Base / Enid;OK;United States;4;36-20N;097-55W;;;398;; +KENL;--;---;Centralia, Centralia Municipal Airport;IL;United States;4;38-30-53N;089-05-32W;;;163;; +KENN;--;---;Nenana, Nenana Municipal Airport;AK;United States;4;64-32-52N;149-05-02W;64-32-52N;149-05-02W;110;109; +KENV;72;581;Wendover / Air Force Auxillary Field;UT;United States;4;40-44N;114-02W;40-44N;114-02W;1291;1292;P +KENW;--;---;Kenosha, Kenosha Regional Airport;WI;United States;4;42-35-42N;087-56-17W;42-35-40N;087-55-39W;226;219; +KENX;--;---;Albany NEXRAD;NY;United States;4;42-36N;074-04W;;;581;; +KEOK;--;---;Keokuk Municipal;IA;United States;4;40-28N;091-26W;;;205;; +KEPH;--;---;Ephrata, Ephrata Municipal Airport;WA;United States;4;47-18-27N;119-30-57W;47-18-37N;119-31-18W;389;383; +KEPO;72;608;Eastport;ME;United States;4;44-55N;067-00W;;;24;23; +KEPZ;72;364;Santa Teresa;NM;United States;4;31-52N;106-42W;31-52N;106-42W;1252;1252;P +KEQY;--;---;Monroe, Monroe Airport;NC;United States;4;35-01-01N;080-37-14W;35-01-20N;080-37-09W;207;212; +KERI;72;526;Erie, Erie International Airport;PA;United States;4;42-04-48N;080-10-57W;42-04-59N;080-11-00W;223;222; +KERV;--;---;Kerrville, Kerrville Municipal Airport/Louis Schreiner Field;TX;United States;4;29-58N;099-05W;;;493;; +KERY;--;---;Newberry, Luce County Airport;MI;United States;4;46-18-40N;085-27-26W;;;265;; +KESC;72;648;Escanaba;MI;United States;4;45-45N;087-02W;;;180;187; +KESF;--;---;Alexandria, Alexandria Esler Regional Airport;LA;United States;4;31-23-42N;092-17-25W;31-23-29N;092-17-41W;34;28; +KESN;--;---;Easton / Newman Field;MD;United States;4;38-48N;076-04W;;;22;; +KEST;--;---;Estherville, Estherville Municipal Airport;IA;United States;4;43-24-04N;094-44-50W;43-24-13N;094-44-48W;401;401; +KESX;--;---;Las Vegas Nexrad;NV;United States;4;35-43N;114-54W;;;1509;; +KETB;--;---;West Bend, West Bend Municipal Airport;WI;United States;4;43-25-20N;088-07-41W;;;270;; +KETH;--;---;Wheaton, Wheaton Municipal Airport;MN;United States;4;45-46N;096-32W;;;312;; +KEUG;72;693;Eugene, Mahlon Sweet Field;OR;United States;4;44-08-00N;123-12-52W;44-07-15N;123-12-40W;111;114;P +KEUL;--;---;Caldwell, Caldwell Industrial Airport;ID;United States;4;43-38N;116-38W;;;741;; +KEVB;--;---;New Smyrna Beach, New Smyrna Beach Municipal Airport;FL;United States;4;29-03-20N;080-56-54W;;;3;; +KEVM;--;---;Eveleth, Eveleth-Virginia Municipal Airport;MN;United States;4;47-25N;092-30W;;;420;; +KEVV;72;432;Evansville, Evansville Regional Airport;IN;United States;4;38-02-35N;087-31-13W;38-01-53N;087-32-16W;127;117;P +KEVW;--;---;Evanston, Evanston-Uninta County Burns Field;WY;United States;4;41-16-23N;111-01-50W;41-16-23N;111-01-44W;2183;2177; +KEWB;--;---;New Bedford, New Bedford Regional Airport;MA;United States;4;41-40-31N;070-57-25W;41-41-04N;070-57-07W;24;23; +KEWK;--;---;Newton, Newton City/County Airport;KS;United States;4;38-03N;097-17W;;;467;; +KEWN;--;---;New Bern, Craven County Regional Airport;NC;United States;4;35-04-03N;077-02-50W;35-04-36N;077-02-37W;5;3; +KEWR;72;502;Newark, Newark International Airport;NJ;United States;4;40-40-57N;074-10-10W;40-42-22N;074-09-36W;5;7; +KEWX;--;---;San Antonio Nexrad;TX;United States;4;29-42N;098-02W;;;223;; +KEXX;--;---;Lexington, Davidson County Airport;NC;United States;4;35-46-52N;080-18-14W;;;223;; +KEYE;--;---;Indianapolis, Eagle Creek Airpark;IN;United States;4;39-49-30N;086-17-45W;39-49-34N;086-17-42W;250;248; +KEYF;--;---;Elizabethtown, Curtis L Brown Jr. Field Airport;NC;United States;4;34-36N;078-35W;;;40;; +KEYW;72;201;Key West, Key West International Airport;FL;United States;4;24-33-13N;081-45-13W;24-33-11N;081-45-24W;1;5;P +KEZF;--;---;Fredericksburg, Shannon Airport;VA;United States;4;38-16N;077-27W;;;26;; +KEZM;--;---;Eastman, Heart of Georgia Regional Airport;GA;United States;4;32-12-51N;083-07-40W;;;93;; +KF05;--;---;Vernon, Wilbarger County Airport;TX;United States;4;34-13-32N;099-17-01W;;;386;; +KF10;74;645;Henryetta Municipal;OK;United States;4;35-24N;096-01W;35-24N;096-01W;259;259; +KF18;--;---;Cleburne, Cleburne Municipal Airport;TX;United States;4;32-21-13N;097-26-01W;;;260;; +KF28;--;---;El Reno, El Reno Municipal Air Park;OK;United States;4;35-28-21N;098-00-20W;;;432;; +KF30;74;646;Sulphur Municipal;OK;United States;4;34-31N;096-59W;34-31N;096-59W;320;320; +KF39;--;---;Sherman-Denison;TX;United States;4;33-43N;096-40W;;;228;; +KF55;--;---;Granbury, Granbury Municipal Airport;TX;United States;4;32-26-39N;097-49-01W;;;237;; +KFAF;--;---;Fort Eustis / Felker;VA;United States;4;37-08N;076-37W;;;4;; +KFAM;--;---;Farmington Airport;MO;United States;4;37-46N;090-26W;;;288;; +KFAR;72;753;Fargo, Hector International Airport;ND;United States;4;46-55-31N;096-48-40W;46-54-29N;096-48-31W;274;277;P +KFAT;72;389;Fresno, Fresno Air Terminal;CA;United States;4;36-46-48N;119-43-10W;36-47-13N;119-43-01W;101;104;P +KFAY;--;---;Fayetteville, Fayetteville Regional Airport;NC;United States;4;34-59-22N;078-52-48W;34-59-29N;078-53-08W;57;55; +KFBG;74;693;Fort Bragg / Simmons Army Airfield;NC;United States;4;35-08N;078-56W;35-08N;078-56W;74;74; +KFBL;--;---;Faribault, Faribault Municipal Airport;MN;United States;4;44-20N;093-19W;;;323;; +KFCA;72;779;Kalispell, Glacier Park International Airport;MT;United States;4;48-18-15N;114-15-49W;48-18-33N;114-15-01W;906;908;P +KFCH;--;---;Fresno-Chandler;CA;United States;4;36-44N;119-49W;;;85;; +KFCL;--;---;Fort Collins Supplementary Aviation Weather Reporting Station ;CO;United States;4;40-35N;105-05W;;;1525;; +KFCM;--;---;Minneapolis, Flying Cloud Airport;MN;United States;4;44-49-56N;093-28-13W;44-49-18N;093-27-29W;287;280; +KFCS;72;468;Fort Carson;CO;United States;4;38-42N;104-46W;38-42N;104-46W;1789;1789; +KFCX;--;---;Roanoke NEXRAD;VA;United States;4;37-01N;080-16W;;;904;; +KFDK;--;---;Frederick, Frederick Municipal Airport;MD;United States;4;39-25-03N;077-22-28W;;;92;; +KFDR;--;---;Frederick, Frederick Municipal Airport;OK;United States;4;34-20-40N;098-58-59W;34-21-25N;098-59-12W;382;377; +KFDY;--;---;Findlay, Findlay Airport;OH;United States;4;41-00-49N;083-40-07W;;;248;; +KFEP;--;---;Freeport, Albertus Airport;IL;United States;4;42-14-47N;089-34-56W;;;262;; +KFET;--;---;Fremont Municipal Airport;NE;United States;4;41-27N;096-31W;;;379;; +KFFA;--;---;Kill Devil Hills, First Flight Airport;NC;United States;4;36-01N;075-40W;;;4;; +KFFC;--;---;Atlanta, Peachtree City-Falcon Field;GA;United States;4;33-21-19N;084-34-01W;33-21-29N;084-34-07W;246;248; +KFFL;--;---;Fair Field;IA;United States;4;41-03N;091-59W;;;244;; +KFFM;--;---;Fergus Falls, Fergus Falls Municipal Airport-Einar Mickelson Field;MN;United States;4;46-17N;096-09W;;;360;; +KFFO;74;570;Dayton / Wright-Patterson Air Force Base;OH;United States;4;39-50N;084-03W;39-50N;084-03W;251;251;P +KFFT;--;---;Frankfort, Capital City Airport;KY;United States;4;38-11-05N;084-54-12W;38-10-50N;084-54-12W;245;236; +KFFZ;--;---;Mesa / Falcon Field;AZ;United States;4;33-28N;111-44W;;;424;; +KFGN;--;---;Flag Island;MN;United States;4;49-19N;94-54W;;;329;; +KFHR;--;---;Friday Harbor, Friday Harbor Airport;WA;United States;4;48-31-13N;123-01-31W;48-31-31N;123-01-28W;33;32; +KFHU;72;273;Fort Huachuca, Libby AAF Ft Huachuca;AZ;United States;4;46-98N;110-20W;;;1438;; +KFIG;--;---;Clearfield, Clearfield-Lawrence Airport;PA;United States;4;41-02-48N;078-24-42W;41-02-51N;078-24-51W;462;462; +KFIR;--;---;First Divide;WY;United States;4;41-18N;110-46W;;;2294;; +KFIT;--;---;Fitchburg, Fitchburg Municipal Airport;MA;United States;4;42-33-07N;071-45-21W;42-33-15N;071-45-14W;106;103; +KFKA;--;---;Preston, Fillmore County Airport;MN;United States;4;43-40-36N;092-10-47W;;;389;; +KFKL;--;---;Franklin, Venango Regional Airport;PA;United States;4;41-23N;079-52W;;;469;; +KFKN;--;---;Franklin / J B Rose;VA;United States;4;36-42N;076-54W;;;12;; +KFKS;--;---;Frankfort, Frankfort Dow Memorial Field Airport;MI;United States;4;44-37-30N;086-12-02W;;;193;; +KFLD;--;---;Fond Du Lac, Fond Du Lac County Airport;WI;United States;4;43-46-12N;088-29-11W;43-46-05N;088-29-19W;246;240; +KFLG;--;---;Flagstaff, Flagstaff Pulliam Airport;AZ;United States;4;35-08-25N;111-40-20W;35-08-31N;111-40-15W;2137;2134; +KFLL;--;---;Fort Lauderdale, Fort Lauderdale / Hollywood International Airport;FL;United States;4;26-04-05N;080-09-09W;26-04-13N;080-09-21W;3;30; +KFLO;--;---;Florence, Florence Regional Airport;SC;United States;4;34-11-16N;079-43-51W;34-11-36N;079-43-45W;45;44; +KFLP;--;---;Flippin, Marion County Regional Airport;AR;United States;4;36-18N;092-35W;;;219;; +KFLV;--;---;Fort Leavenworth;KS;United States;4;39-22N;094-55W;;;235;; +KFME;--;---;Fort Meade / Tipton;MD;United States;4;39-05N;076-46W;;;46;; +KFMH;72;506;Otis Air National Guard Base;MA;United States;4;41-39N;070-31W;;;40;; +KFMN;--;---;Farmington, Four Corners Regional Airport;NM;United States;4;36-44-37N;108-13-45W;36-44-21N;108-13-38W;1677;1685; +KFMY;--;---;Fort Myers, Page Field;FL;United States;4;26-35-03N;081-51-45W;26-35-27N;081-51-25W;5;4; +KFNB;--;---;Falls City, Brenner Field Airport;NE;United States;4;40-04-44N;095-35-31W;;;300;; +KFNL;--;---;Fort Collins/Loveland, Fort Collins-Loveland Municipal Airport;CO;United States;4;40-27N;105-01W;;;1529;; +KFNT;72;637;Flint, Bishop International Airport;MI;United States;4;42-58-00N;083-44-58W;42-58-27N;083-44-52W;238;233;P +KFOA;--;---;Flora, Flora Municipal Airport;IL;United States;4;38-39-54N;088-27-11W;;;144;; +KFOD;72;549;Fort Dodge;IA;United States;4;42-33N;094-11W;;;354;355; +KFOE;--;---;Topeka, Forbes Field;KS;United States;4;38-56-29N;095-39-02W;38-56-53N;095-40-35W;329;320; +KFOK;--;---;Westhampton Beach, The Gabreski Airport;NY;United States;4;40-51-03N;072-37-14W;40-50-23N;072-38-29W;20;33; +KFOQ;--;---;Freeport Supplementary Aviation Weather Reporting Station ;TX;United States;4;29-00N;095-19W;;;2;; +KFOZ;--;---;Bigfork, Bigfork Municipal Airport;MN;United States;4;47-46-58N;093-39-01W;;;411;; +KFPK;--;---;Charlotte, Fitch H Beach Airport;MI;United States;4;42-34-28N;084-48-41W;;;271;; +KFPR;--;---;Fort Pierce, St. Lucie County International Airport;FL;United States;4;27-29-53N;080-22-36W;27-29-35N;080-22-24W;8;13; +KFQD;--;---;Rutherfordton, Rutherford County-Marchman Field Airport;NC;United States;4;35-25-42N;081-56-06W;;;329;; +KFRG;--;---;Farmingdale, Republic Airport;NY;United States;4;40-44-03N;073-25-01W;40-43-39N;073-25-07W;24;21; +KFRI;72;455;Fort Riley, Marshall AAF Ft Riley;KS;United States;4;39-03-20N;096-45-51W;;;324;; +KFRM;--;---;Fairmont, Fairmont Municipal Airport;MN;United States;4;43-39N;094-25W;;;354;; +KFSD;72;651;Sioux Falls, Foss Field;SD;United States;4;43-34-37N;096-45-13W;43-35-14N;096-44-03W;435;434;P +KFSE;--;---;Fosston, Fosston Municipal Airport;MN;United States;4;47-35-34N;095-46-24W;;;389;; +KFSI;72;355;Fort Sill;OK;United States;4;34-36N;098-24W;34-39N;098-24W;362;360; +KFSM;72;344;Fort Smith, Fort Smith Regional Airport;AR;United States;4;35-20-01N;094-21-54W;35-20-16N;094-22-12W;142;140;P +KFST;--;---;Fort Stockton, Fort Stockton-Pecos County Airport;TX;United States;4;30-54-43N;102-55-00W;30-54-33N;102-54-45W;917;918; +KFSW;--;---;Fort Madison;IA;United States;4;40-40N;091-20W;;;221;; +KFTG;--;---;Denver Nexrad;CO;United States;4;39-47N;104-33W;;;1709;; +KFTK;72;424;Fort Knox;KY;United States;4;37-54N;085-58W;37-54N;085-58W;230;230; +KFTW;--;---;Fort Worth, Meacham International Airport;TX;United States;4;32-49-31N;097-21-51W;32-49-35N;097-21-22W;216;214; +KFTY;--;---;Atlanta, Fulton County Airport-Brown Field;GA;United States;4;33-46-39N;084-31-28W;33-46-37N;084-31-12W;256;263; +KFUL;--;---;Fullerton, Fullerton Municipal Airport;CA;United States;4;33-52-19N;117-59-05W;33-52-15N;117-58-48W;29;35; +KFVE;--;---;Frenchville, Northern Aroostook Regional Airport;ME;United States;4;47-17-06N;068-18-26W;47-17-13N;068-18-50W;301;301; +KFVX;--;---;Farmville;VA;United States;4;37-21N;078-26W;;;125;; +KFWA;72;533;Fort Wayne, Fort Wayne International Airport;IN;United States;4;40-58-42N;085-11-43W;40-59-11N;085-11-17W;248;248;P +KFWC;--;---;Fairfield, Fairfield Municipal Airport;IL;United States;4;38-22-43N;088-24-46W;;;133;; +KFWD;72;249;Fort Worth;TX;United States;4;32-50N;097-18W;32-50N;097-18W;196;196; +KFWN;--;---;Sussex, Sussex Airport;NJ;United States;4;41-12-01N;074-37-23W;41-12-02N;074-37-29W;128;133; +KFWQ;--;---;Monongahela, Rostraver Airport;PA;United States;4;40-12-35N;079-49-53W;;;374;; +KFWS;--;---;Fort Worth, Forth Worth Spinks Airport;TX;United States;4;32-34N;097-18W;;;213;; +KFXE;--;---;Fort Lauderdale, Fort Lauderdale Executive Airport;FL;United States;4;26-12-00N;080-11-00W;26-11-44N;080-10-25W;4;6; +KFYJ;--;---;West Point, Middle Peninsula Regional Airport;VA;United States;4;37-31-16N;076-45-52W;;;7;; +KFYV;--;---;Fayetteville, Drake Field;AR;United States;4;36-00-37N;094-10-04W;36-00-19N;094-10-21W;381;379; +KFZY;--;---;Fulton, Oswego County Airport;NY;United States;4;43-21-03N;076-23-17W;;;145;; +KGAD;--;---;Gadsden, Gadsden Municipal Airport;AL;United States;4;33-58N;086-05W;;;173;; +KGAG;--;---;Gage, Gage Airport;OK;United States;4;36-17-48N;099-46-08W;36-17-50N;099-46-07W;677;668; +KGAO;--;---;Galliano, South Lafourche Airport;LA;United States;4;29-26-41N;090-15-40W;;;0;; +KGBD;--;---;Great Bend, Great Bend Municipal Airport;KS;United States;4;38-21N;098-52W;;;575;; +KGBG;--;---;Galesburg, Galesburg Municipal Airport;IL;United States;4;40-56-17N;090-25-52W;;;233;; +KGBN;74;724;Gila Bend U. S. Army Airfield;AZ;United States;4;32-26N;112-41W;32-56N;112-42W;262;261; +KGCC;72;665;Gillette, Gillette-Campbell County Airport;WY;United States;4;44-20-22N;105-32-31W;44-20-54N;105-32-13W;1330;1320;P +KGCK;--;---;Garden City, Garden City Regional Airport;KS;United States;4;37-55-39N;100-43-28W;37-55-36N;100-43-44W;881;877; +KGCM;--;---;Claremore, Claremore Regional Airport;OK;United States;4;36-17-40N;095-28-47W;;;221;; +KGCN;--;---;Grand Canyon, Grand Canyon National Park Airport;AZ;United States;4;35-56-46N;112-09-17W;35-57-27N;112-08-39W;2014;2016; +KGDB;--;---;Granite Falls, Granite Falls Municipal Airport/Lenzen-Roe Memorial Field;MN;United States;4;44-45-11N;095-33-21W;;;319;; +KGDJ;--;---;Granbury, Granbury Municipal Airport;TX;United States;4;32-26-39N;097-49W;;;237;; +KGDP;72;262;Pine Springs, Guadalupe Mountains National Park;TX;United States;4;31-49-52N;104-48-32W;;;1661;1692;P +KGDV;--;---;Glendive, Dawson Community Airport;MT;United States;4;47-08N;104-48W;;;749;; +KGED;--;---;Georgetown, Sussex County Airport;DE;United States;4;38-41-24N;075-21-45W;38-41-30N;075-21-46W;15;19; +KGEG;72;785;Spokane, Spokane International Airport;WA;United States;4;47-37-17N;117-31-40W;47-37-19N;117-32-22W;723;735;P +KGEU;--;---;Glendale, Glendale Municipal Airport;AZ;United States;4;33-31-38N;112-17-43W;;;325;; +KGEV;--;---;Jefferson, Ashe County Airport;NC;United States;4;36-26N;81-25W;;;969; +KGEY;--;---;Greybull, South Big Horn County Airport;WY;United States;4;44-30-57N;108-04-33W;44-30-36N;108-04-49W;1199;1191; +KGEZ;--;---;Shelbyville, Shelbyville Municipal Airport;IN;United States;4;39-35-08N;085-48-00W;39-34-42N;085-47-59W;245;245; +KGFA;--;---;Malmstrom Air Force Base;MT;United States;4;47-30N;111-11W;;;1075;; +KGFK;--;---;Grand Forks, Grand Forks International Airport;ND;United States;4;47-56-53N;097-10-57W;47-57-02N;097-10-42W;257;190; +KGFL;--;---;Glens Falls, Floyd Bennett Memorial Airport;NY;United States;4;43-20-28N;073-36-38W;43-20-30N;073-36-20W;100;103; +KGGB;--;---;Golden Gate Bridge;CA;United States;4;37-49N;122-28W;;;81;; +KGGG;72;247;Longview, Gregg County Airport;TX;United States;4;32-23-26N;094-42-50W;32-22-48N;094-42-43W;111;107;P +KGGW;72;768;Glasgow, Glasgow International Airport;MT;United States;4;48-12-50N;106-37-17W;48-12-30N;106-37-34W;699;693;P +KGHW;--;---;Glenwood, Glenwood Municipal Airport;MN;United States;4;45-39N;095-19W;;;425;; +KGIF;--;---;Winter Haven, Winter Haven's Gilbert Airport;FL;United States;4;28-03-38N;081-45-27W;28-03-34N;081-45-08W;44;43; +KGJT;72;476;Grand Junction, Walker Field;CO;United States;4;39-08-02N;108-32-19W;39-07-00N;108-32-00W;1481;1452;P +KGKJ;--;---;Meadville, Port Meadville Airport;PA;United States;4;41-37-35N;080-12-53W;;;427;; +KGKN;--;---;Gulkana, Gulkana Airport;AK;United States;4;62-09-37N;145-27-27W;62-09-30N;145-27-24W;481;480; +KGKY;--;---;Arlington, Arlington Municipal Airport;TX;United States;4;32-39-50N;097-05-45W;32-39-52N;097-05-30W;192;185; +KGLD;72;465;Goodland, Renner Field;KS;United States;4;39-22-03N;101-41-35W;39-22-12N;101-41-53W;1114;1114;P +KGLE;--;---;Gainesville, Gainesville Municipal Airport;TX;United States;4;33-39-05N;097-11-49W;;;256;; +KGLH;--;---;Greenville, Mid Delta Regional Airport;MS;United States;4;33-28-58N;090-59-08W;33-28-53N;090-59-25W;40;45; +KGLR;--;---;Gaylord, Otsego County Airport;MI;United States;4;45-00-59N;084-41-20W;45-00-59N;084-41-30W;404;407; +KGLS;72;242;Galveston, Scholes Field;TX;United States;4;29-16-13N;094-51-51W;29-16-05N;094-51-18W;2;6;P +KGLW;--;---;Glasgow, Glasgow Municipal Airport;KY;United States;4;37-01-54N;085-57-13W;;;218;; +KGMJ;--;---;Grove, Grove Municipal Airport;OK;United States;4;36-36-19N;094-44-19W;;;254;; +KGMU;--;---;Greenville, Greenville Downtown Airport;SC;United States;4;34-50-46N;082-20-46W;34-51-01N;082-21-05W;319;315; +KGNA;--;---;Grand Marais, The Bay of Grand Marais;MN;United States;4;47-50N;090-23W;;;186;; +KGNC;--;---;Seminole, Gaines County Airport;TX;United States;4;32-40-31N;102-39-09W;;;1010;; +KGNR;--;---;Greenville;ME;United States;4;45-28N;69-35W;;;427;; +KGNT;--;---;Grants, Grants-Milan Municipal Airport;NM;United States;4;35-09-55N;107-54-08W;35-09-58N;107-53-56W;1988;1987; +KGNV;--;---;Gainesville, Gainesville Regional Airport;FL;United States;4;29-41-31N;082-16-32W;29-41-34N;082-16-48W;46;45; +KGOK;--;---;Guthrie, Guthrie Municipal Airport;OK;United States;4;35-51-07N;097-24-27W;35-51-03N;097-25-07W;327;324; +KGON;--;---;Groton / New London, Groton / New London Airport;CT;United States;4;41-19-39N;072-02-58W;41-19-55N;072-02-42W;3;3; +KGOP;--;---;Gatesville, City-County Airport;TX;United States;4;31-25-16N;097-47-49W;;;276;; +KGOV;--;---;Grayling, Grayling Army Airfield;MI;United States;4;44-40-49N;084-43-44W;;;353;; +KGPI;72;779;Kalispell, Glacier Park International Airport;MT;United States;4;48-18-15N;114-15-49W;48-18-33N;114-15-01W;906;908;P +KGPM;--;---;Grand Prairie, Grand Prairie Municipal Airport;TX;United States;4;32-41-55N;097-02-48W;;;180;; +KGPT;--;---;Gulfport, Gulfport-Biloxi Regional Airport;MS;United States;4;30-24-43N;089-04-51W;30-24-05N;089-04-21W;8;14; +KGPZ;--;---;Grand Rapids, Grand Rapids/Itasca County Airport-Gordon Newstrom Field;MN;United States;4;47-13N;093-31W;;;413;; +KGRB;72;645;Green Bay, Austin Straubel International Airport;WI;United States;4;44-28-46N;088-08-12W;44-29-47N;088-06-46W;211;205;P +KGRD;--;---;Greenwood, Greenwood County Airport;SC;United States;4;34-14-50N;082-09-17W;34-14-46N;082-09-11W;192;185; +KGRF;74;207;Fort Lewis / Gray U. S. Army Airfield;WA;United States;4;47-07N;122-33W;47-08N;122-36W;92;87; +KGRI;72;552;Grand Island, Central Nebraska Regional Airport;NE;United States;4;40-57-30N;098-18-45W;40-57-30N;098-19-05W;562;561;P +KGRK;--;---;Fort Hood, Robert Gray AAF Ft Hood;TX;United States;4;31-04N;097-49W;;;309;; +KGRN;--;---;Gordon Municipal;NE;United States;4;42-48N;102-10W;;;1085;; +KGRR;72;635;Grand Rapids, Gerald R. Ford International Airport;MI;United States;4;42-52-51N;085-31-22W;42-53-04N;085-31-45W;242;239;P +KGSB;--;---;Seymour-Johnson Air Force Base;NC;United States;4;35-20N;077-58W;;;33;; +KGSH;--;---;Goshen, Goshen Municipal Airport;IN;United States;4;41-31-34N;085-47-12W;41-31-24N;085-47-39W;252;252; +KGSM;--;---;Ship Shoal 207A;LA;United States;4;28-32N;090-59W;;;1;; +KGSO;72;317;Greensboro, Piedmont Triad International Airport;NC;United States;4;36-05-51N;079-56-37W;36-05-53N;079-56-38W;282;275;P +KGSP;72;312;Greer, Greenville-Spartanburg Airport;SC;United States;4;34-53-02N;082-13-15W;34-53-00N;082-13-13W;296;286;P +KGTB;74;370;Fort Drum / Wheeler-Sack U. S. Army Airfield;NY;United States;4;44-03N;075-44W;44-03N;075-44W;207;207; +KGTF;72;775;Great Falls, Great Falls International Airport;MT;United States;4;47-28-24N;111-22-56W;47-28-48N;111-21-31W;1120;1119;P +KGTR;--;---;Columbus/West Point/Starkville, Golden Triangle Regional Airport;MS;United States;4;33-27N;088-35W;;;81;; +KGTU;--;---;Georgetown, Georgetown Municipal Airport;TX;United States;4;30-41N;097-41W;;;241;; +KGUC;--;---;Gunnison, Gunnison-Crested Butte Regional Airport;CO;United States;4;38-32N;106-56W;;;2340;; +KGUP;--;---;Gallup, Gallup Municipal Airport;NM;United States;4;35-30-40N;108-47-22W;35-30-54N;108-46-50W;1973;1971; +KGUS;--;---;Grissom Air Force Base / Peru;IN;United States;4;40-39N;086-09W;;;247;; +KGUY;--;---;Guymon / Guymon Municipal Airport;OK;United States;4;36-40-54N;101-30-19W;;;952;948; +KGVL;--;---;Gainesville, Gilmer Memorial Airport;GA;United States;4;34-16-19N;083-49-49W;34-16-33N;083-49-51W;388;386; +KGVT;--;---;Greenville / Majors;TX;United States;4;33-04N;096-04W;;;163;; +KGVW;--;---;Kansas City, Richards-Gebaur Airport;MO;United States;4;38-50-06N;094-33-41W;38-50-45N;094-33-21W;332;337; +KGWO;--;---;Greenwood, Greenwood-LeFlore Airport;MS;United States;4;33-29-33N;090-05-01W;33-29-45N;090-05-22W;47;44; +KGWW;--;---;Goldsboro, Goldsboro-Wayne Municipal Airport;NC;United States;4;35-27-38N;077-57-54W;;;40;; +KGXY;--;---;Greeley, Greeley-Weld County Airport;CO;United States;4;40-26N;104-38W;;;1432;; +KGYB;--;---;Giddings, Giddings-Lee County Airport;TX;United States;4;30-10-09N;096-58-48W;;;148;; +KGYI;--;---;Sherman/Denison, Grayson County Airport;TX;United States;4;33-43N;096-40W;;;228;; +KGYL;--;---;Glencoe, Glencoe Municipal Airport;MN;United States;4;44-45-22N;094-04-52W;;;302;; +KGYR;--;---;Goodyear Municipal;AZ;United States;4;33-25N;112-23W;;;295;; +KGYY;--;---;Gary Regional;IN;United States;4;41-37N;087-25W;;;180;; +KGZH;--;---;Evergreen, Middleton Field;AL;United States;4;31-25-08N;087-02-53W;31-25-10N;087-02-38W;78;78; +KH08;--;---;High Island 264C;LA;United States;4;28-28N;93-44W;;;0;; +KH32;--;---;Southwest Harbor;ME;United States;4;44-16N;068-19W;;;5;; +KH39;--;---;High Island A572c;LA;United States;4;27-57N;093-59W;;;30;; +KH45;--;---;Seminole, Seminole Municipal Airport;OK;United States;4;35-16-28N;096-40-30W;;;312;; +KH92;74;643;Hominy Municipal;OK;United States;4;36-26N;096-23W;36-26N;096-23W;251;252; +KHAO;--;---;Hamilton, Butler County Regional Airport;OH;United States;4;39-21-41N;084-31-15W;39-21-47N;084-31-34W;193;188; +KHAT;72;304;Cape Hatteras;NC;United States;4;35-16N;075-33W;35-16N;075-33W;2;3;P +KHBG;--;---;Hattiesburg, Bobby L Chain Municipal Airport;MS;United States;4;31-15-54N;089-15-11W;31-16-11N;089-15-14W;46;44; +KHBI;--;---;Asheboro, Asheboro Municipal Airport;NC;United States;4;35-39-14N;079-53-42W;;;205;; +KHBR;--;---;Hobart, Hobart Municipal Airport;OK;United States;4;34-59-22N;099-03-09W;34-59-19N;099-03-26W;476;473; +KHBV;--;---;Hebbronville, Jim Hogg County Airport;TX;United States;4;27-20N;098-44W;;;202;; +KHCD;--;---;Hutchinson, Hutchinson Municipal Airport-Butler Field;MN;United States;4;44-52N;094-23W;;;323;; +KHCO;--;---;Hallock, Hallock Municipal Airport;MN;United States;4;48-45-10N;096-56-35W;;;250;; +KHDC;--;---;Hammond, Hammond Municipal Airport;LA;United States;4;30-31-15N;090-25-03W;;;13;; +KHDE;--;---;Brewster Field Airport;NE;United States;4;40-27N;099-20W;;;704;; +KHDN;--;---;Hayden, Yampa Valley Airport;CO;United States;4;40-29N;107-13W;;;2012;; +KHDO;--;---;Hondo, Hondo Municipal Airport;TX;United States;4;29-21-34N;099-10-27W;29-21-26N;099-09-49W;283;282; +KHEF;--;---;Manassas, Manassas Regional Airport/Harry P. Davis Field;VA;United States;4;38-43N;077-31W;;;59;; +KHEI;--;---;Hettinger, Hettinger Municipal Airport;ND;United States;4;46-00-38N;102-38-59W;46-01-02N;102-39-07W;824;828; +KHEY;--;---;Hanchey AHP / Ozark;AL;United States;4;31-21N;085-40W;;;97;; +KHEZ;--;---;Natchez, Hardy-Anders Field Natchez-Adams County Airport;MS;United States;4;31-37N;091-18W;;;83;; +KHFD;--;---;Hartford, Hartford-Brainard Airport;CT;United States;4;41-44-06N;072-39-06W;41-44-05N;072-39-07W;5;4; +KHFF;--;---;Mackall U. S. Army Airfield;NC;United States;4;35-02N;079-30W;;;115;; +KHGR;--;---;Hagerstown, Washington County Regional Airport;MD;United States;4;39-42-21N;077-43-48W;39-42-37N;077-43-53W;214;224; +KHGX;--;---;Houston / Galviston Nexrad;TX;United States;4;29-28N;095-05W;;;35;; +KHHF;--;---;Canadian, Hemphill County Airport;TX;United States;4;35-54N;100-24W;;;730;; +KHHR;--;---;Hawthorne, Hawthorne Municipal Airport;CA;United States;4;33-55-25N;118-19-55W;33-55-24N;118-20-10W;19;18; +KHIB;--;---;Hibbing, Chisholm-Hibbing Airport;MN;United States;4;47-23-12N;092-50-20W;47-23-33N;092-50-21W;412;412; +KHIE;--;---;Whitefield, Mount Washington Regional Airport;NH;United States;4;44-21-58N;071-33-09W;44-21-57N;071-33-03W;327;318; +KHIF;--;---;Hill Air Force Base / Ogden;UT;United States;4;41-07N;111-58W;;;1459;; +KHIO;--;---;Portland, Portland-Hillsboro Airport;OR;United States;4;45-32-53N;122-57-16W;45-32-15N;122-56-57W;62;68; +KHJH;--;---;Hebron, Hebron Municipal Airport;NE;United States;4;40-09-08N;097-35-13W;;;447;; +KHJO;--;---;Hanford, Hanford Municipal Airport;CA;United States;4;36-19-07N;119-37-44W;;;74;; +KHKA;--;---;Blytheville, Blytheville Municipal Airport;AR;United States;4;35-56-20N;089-49-57W;35-56-17N;089-49-55W;78;78; +KHKS;--;---;Jackson, Hawkins Field Airport;MS;United States;4;32-20-05N;090-13-21W;32-19-58N;090-13-35W;104;108; +KHKY;--;---;Hickory, Hickory Regional Airport;NC;United States;4;35-44-32N;081-22-56W;35-44-30N;081-23-22W;362;354; +KHLC;--;---;Hill City, Hill City Municipal Airport;KS;United States;4;39-22-29N;099-49-47W;;;678;669; +KHLD;--;---;Hiland;WY;United States;4;43-06N;107-19W;;;1846;; +KHLG;--;---;Wheeling, Wheeling Ohio County Airport;WV;United States;4;40-10-13N;080-38-40W;40-10-54N;080-38-48W;364;372; +KHLN;72;772;Helena, Helena Regional Airport;MT;United States;4;46-36-20N;111-57-49W;46-36-09N;111-59-39W;1180;1187;P +KHLR;72;257;Fort Hood, Hood AAF Ft Hood;TX;United States;4;31-08N;097-42W;;;282;; +KHLX;--;---;Hillsville;VA;United States;4;36-46N;080-49W;;;834;; +KHMM;--;---;Hamilton / Ravalli County;MT;United States;4;46-15N;114-09W;;;1110;; +KHMN;74;732;Holloman Air Force Base;NM;United States;4;32-51N;106-06W;32-54N;106-06W;1248;1248; +KHMS;72;784;Hanford;WA;United States;4;46-34N;119-36W;;;223;223; +KHMZ;--;---;Bedford, Bedford County Airport;PA;United States;4;40-05-07N;078-30-44W;;;354;; +KHNB;--;---;Huntingburg;IN;United States;4;38-15N;086-57W;;;161;; +KHND;--;---;Las Vegas, Henderson Executive Airport;NV;United States;4;35-58-22N;115-08-04W;;;760;; +KHNR;--;---;Harlan, Harlan Municipal Airport;IA;United States;4;41-35-04N;095-20-23W;;;375;; +KHNS;--;---;Haines, Haines Airport;AK;United States;4;59-14-38N;135-30-34W;59-14-36N;135-30-34W;4;5; +KHNZ;--;---;Oxford, Henderson-Oxford Airport;NC;United States;4;36-21-42N;078-31-45W;;;161; +KHOB;--;---;Hobbs / Lea County;NM;United States;4;32-41N;103-13W;;;1115;; +KHOM;--;---;Homer, Homer Airport;AK;United States;4;59-38-33N;151-29-14W;59-38-23N;151-29-02W;23;23; +KHON;72;654;Huron, Huron Regional Airport;SD;United States;4;44-23-17N;098-13-42W;44-23-09N;098-13-22W;392;390;P +KHOP;74;671;Fort Campbell U. S. Army Airfield;KY;United States;4;36-40N;087-30W;36-40N;087-30W;174;174; +KHOT;--;---;Hot Springs, Memorial Field Airport;AR;United States;4;34-28-41N;093-05-46W;34-28-57N;093-05-44W;165;162; +KHOU;--;---;Houston, Houston Hobby Airport;TX;United States;4;29-38-15N;095-16-57W;29-38-24N;095-16-38W;14;36; +KHPN;--;---;White Plains, Westchester County Airport;NY;United States;4;41-04-01N;073-42-27W;41-03-46N;073-42-41W;134;121; +KHQM;--;---;Hoquiam, Bowerman Airport;WA;United States;4;46-58-16N;123-55-12W;46-58-26N;123-55-37W;4;7; +KHQU;--;---;Thomson, Thomson-McDuffie County Airport;GA;United States;4;33-31-46N;082-30-59W;;;152;; +KHQZ;--;---;Mesquite, Mesquite Metro Airport;TX;United States;4;32-44-49N;096-31-49W;;;136;; +KHRI;--;---;Hermiston, Hermiston Municipal Airport;OR;United States;4;45-49-33N;119-15-40W;45-49-41N;119-15-44W;194;195; +KHRJ;--;---;Erwin, Harnett County Airport;NC;United States;4;35-22-43N;078-44-01W;;;60;; +KHRL;--;---;Harlingen, Rio Grande Valley International Airport;TX;United States;4;26-13-47N;097-39-19W;26-13-33N;097-39-40W;10;10; +KHRO;--;---;Harrison, Boone County Airport;AR;United States;4;36-15-42N;093-09-17W;36-15-53N;093-09-03W;416;417; +KHRT;74;777;Hurlburt Field;FL;United States;4;30-25N;086-41W;30-26N;086-41W;12;11; +KHSA;--;---;Bay St. Louis, Stennis International Airport;MS;United States;4;30-22-04N;089-27-17W;;;7;; +KHSB;--;---;Harrisburg, Harrisburg-Raleigh Airport;IL;United States;4;37-48-41N;088-32-57W;;;121;; +KHSE;--;---;Hatteras, Mitchell Field;NC;United States;4;35-13-56N;075-37-21W;35-13-55N;075-37-22W;5;3; +KHSI;--;---;Hastings, Hastings Municipal Airport;NE;United States;4;40-36-02N;098-25-33W;40-36-00N;098-25-35W;595;591; +KHSP;--;---;Hot Springs / Ingalls;VA;United States;4;37-57N;079-50W;;;1156;; +KHSS;--;---;Hot Springs Aviation Weather Reporting Station;NC;United States;4;35-54N;082-49W;;;451;; +KHST;--;---;Homestead Air Force Base;FL;United States;4;25-29N;080-23W;;;2;; +KHSV;72;323;Huntsville, Huntsville International / Jones Field;AL;United States;4;34-38-37N;086-47-08W;34-38-46N;086-46-16W;192;191;P +KHTH;--;---;Hawthorne Municipal;NV;United States;4;38-33N;118-38W;;;1285;; +KHTL;72;638;Houghton Lake, Roscommon County Airport;MI;United States;4;44-21-04N;084-40-27W;44-21-02N;084-40-39W;350;351;P +KHTO;--;---;East Hampton, East Hampton Airport;NY;United States;4;40-57-34N;072-15-07W;;;17;; +KHTS;72;425;Huntington, Tri-State Airport;WV;United States;4;38-21-54N;082-33-18W;38-22-09N;082-33-18W;252;254;P +KHUF;--;---;Terre Haute, Terre Haute International Airport - Hulman Field;IN;United States;4;39-26-30N;087-19-31W;39-27-43N;087-18-09W;178;179; +KHUL;--;---;Houlton, Houlton International Airport;ME;United States;4;46-07-23N;067-47-31W;46-07-30N;067-47-10W;149;150; +KHUM;--;---;Houma-Terrebonne;LA;United States;4;29-34N;090-40W;;;3;; +KHUT;--;---;Hutchinson, Hutchinson Municipal Airport;KS;United States;4;38-04-05N;097-51-38W;38-03-59N;097-51-38W;470;467; +KHVN;--;---;New Haven, Tweed-New Haven Airport;CT;United States;4;41-15-50N;072-53-14W;41-15-55N;072-53-05W;4;3; +KHVR;72;777;Havre, Havre City-County Airport;MT;United States;4;48-32-34N;109-45-48W;48-32-46N;109-45-42W;789;787;P +KHWD;--;---;Hayward, Hayward Air Terminal;CA;United States;4;37-39-39N;122-07-06W;37-39-46N;122-07-11W;14;21; +KHWO;--;---;Hollywood, North Perry Airport;FL;United States;4;25-59-56N;080-14-28W;26-00-00N;080-15-06W;2;2; +KHWV;--;---;Shirley, Brookhaven Airport;NY;United States;4;40-49-18N;072-52-08W;40-48-56N;072-52-03W;25;21; +KHXD;--;---;Hilton Head Island, Hilton Head Airport;SC;United States;4;32-13N;080-42W;;;6;; +KHYA;--;---;Hyannis, Barnstable Municipal-Boardman Airport;MA;United States;4;41-40-19N;070-16-11W;41-40-19N;070-16-11W;15;22; +KHYI;--;---;San Marcos, San Marcos Municipal Airport;TX;United States;4;29-53-37N;097-51-53W;;;182;; +KHYR;--;---;Hayward, Hayward Municipal Airport;WI;United States;4;46-01-14N;091-27-01W;46-01-38N;091-26-45W;370;370; +KHYS;--;---;Hays, Hays Regional Airport;KS;United States;4;38-51N;099-16W;;;609;; +KHYX;--;---;Saginaw, Saginaw County H.W. Browne Airport;MI;United States;4;43-26-00N;083-51-45W;;;183;; +KHZX;--;---;Mc Gregor, Isedor Iverson Airport;MN;United States;4;46-37-07N;093-18-35W;;;374;; +KHZY;--;---;Ashtabula, Ashtabula County Airport;OH;United States;4;41-46-46N;080-41-48W;41-46-48N;080-42-04W;281;276; +KI05;--;---;Sturgis, Sturgis Municipal Airport;KY;United States;4;37-32-27N;087-57-06W;;;113;; +KI12;--;---;Sidney, Sidney Municipal Airport;OH;United States;4;40-14-28N;084-09-03W;;;318;; +KI16;--;---;Pineville, Kee Field Airport;WV;United States;4;37-36-01N;081-33-33W;;;544;; +KI63;--;---;Mount Sterling, Mount Sterling Municipal Airport;IL;United States;4;39-59-15N;090-48-15W;;;223;; +KIAB;--;---;McConnell Air Force Base;KS;United States;4;37-37N;097-16W;;;418;; +KIAD;72;403;Washington DC, Washington-Dulles International Airport;VA;United States;4;38-56-05N;077-26-51W;38-57-06N;077-26-37W;95;93;P +KIAG;--;---;Niagara Falls, Niagara Falls International Airport;NY;United States;4;43-06-26N;078-56-43W;43-06-01N;078-56-37W;180;182; +KIAH;72;243;Houston, Houston Intercontinental Airport;TX;United States;4;29-59-33N;095-21-50W;29-58-25N;095-20-33W;29;36; +KIBM;--;---;Kimball, Kimball Municipal Airport/Robert E Arraj Field;NE;United States;4;41-11N;103-40W;;;1501;; +KICL;--;---;Clarinda;IA;United States;4;40-43N;095-02W;;;303;; +KICT;72;450;Wichita, Wichita Mid-Continent Airport;KS;United States;4;37-38-50N;097-25-46W;37-39-16N;097-26-35W;406;408;P +KIDA;--;---;Idaho Falls, Fanning Field;ID;United States;4;43-31-15N;112-03-58W;43-30-56N;112-03-58W;1445;1453; +KIDI;--;---;Indiana / Stewart Field;PA;United States;4;40-38N;079-06W;;;429;; +KIDV;--;---;I-25 Divide;WY;United States;4;43-56N;106-39W;;;1531;; +KIEN;--;---;Pine Ridge, Pine Ridge Airport;SD;United States;4;43-01-32N;102-31-23W;43-01-34N;102-31-23W;1015;998; +KIER;--;---;Natchitoches, Natchitoches Regional Airport;LA;United States;4;31-44-09N;093-05-57W;;;37;; +KIFP;--;---;Bullhead City, Laughlin/Bullhead International Airport;AZ;United States;4;35-09-27N;114-33-34W;;;212;; +KIGC;--;---;Charleston Air Force Base;SC;United States;4;32-54N;080-03W;;;14;; +KIGM;72;370;Kingman, Kingman Airport;AZ;United States;4;35-15-28N;113-55-59W;35-15-35N;113-56-31W;1050;1032;P +KIGQ;--;---;Chicago, Lansing Municipal Airport;IL;United States;4;41-32-24N;087-31-56W;;;188;; +KIGX;--;---;Chapel Hill, Williams Airport;NC;United States;4;35-46-00N;079-03-51W;35-56-01N;079-03-38W;155;155; +KIIB;--;---;Independence, Independence Municipal Airport;IA;United States;4;42-27N;091-56W;;;298;; +KIIY;--;---;Washington, Washington-Wilkes County Airport;GA;United States;4;33-46-47N;082-48-59W;;;197;; +KIJD;--;---;Willimantic, Windham Airport;CT;United States;4;41-44-31N;072-11-01W;41-44-21N;072-10-56W;75;75; +KIJX;--;---;Jacksonville, Jacksonville Municipal Airport;IL;United States;4;39-46-27N;090-14-19W;;;190;; +KIKA;--;---;Inyan Kara;WY;United States;4;44-18N;104-38W;;;1319;; +KIKK;--;---;Kankakee, Greater Kankakee Airport;IL;United States;4;41-04-17N;087-50-47W;;;192;; +KIKR;--;---;Kirtland, Kirtland Air Force Base Auxiliary Field;NM;United States;4;34-57-00N;106-34-00W;;;1612;1609; +KIKV;--;---;Ankeny, Ankeny Regional Airport;IA;United States;4;41-41-24N;093-33-57W;;;275;; +KILE;--;---;Killeen, Skylark Field Airport;TX;United States;4;31-05N;097-41W;;;259;; +KILG;--;---;Wilmington, New Castle County Airport;DE;United States;4;39-40-22N;075-36-03W;39-40-30N;075-35-54W;24;28; +KILI;--;---;Iliamna, Iliamna Airport;AK;United States;4;59-44-57N;154-54-33W;59-44-57N;154-54-33W;63;52; +KILL;--;---;Willmar, Willmar Municipal Airport-John L Rice Field;MN;United States;4;45-07N;095-05W;;;344;; +KILM;--;---;Wilmington, Wilmington International Airport;NC;United States;4;34-16-14N;077-54-09W;34-16-31N;077-54-42W;10;9; +KILN;--;---;Wilmington, Airborne Airpark Airport;OH;United States;4;39-25-42N;083-46-45W;;;328;332; +KIML;--;---;Imperial, Imperial Municipal Airport;NE;United States;4;40-31N;101-37W;;;997;; +KIMT;--;---;Iron Mountain / Kingsford, Ford Airport;MI;United States;4;45-48-51N;088-06-32W;45-48-50N;088-07-00W;360;349; +KIND;72;438;Indianapolis, Indianapolis International Airport;IN;United States;4;39-43-30N;086-16-55W;39-42-29N;086-16-47W;243;242;P +KINJ;--;---;Hillsboro, Hillsboro Municipal Airport;TX;United States;4;32-05N;097-05-50W;;;209;; +KINK;--;---;Wink, Winkler County Airport;TX;United States;4;31-46-47N;103-12-05W;31-47-01N;103-11-40W;860;855; +KINL;72;747;International Falls, Falls International Airport;MN;United States;4;48-33-43N;093-23-52W;48-33-59N;093-23-53W;361;360;P +KINS;74;614;Indian Springs, Indian Springs Auxiliary AFLD Nellis AFB;NV;United States;4;36-35N;115-40W;;;955;; +KINT;--;---;Winston Salem, Smith Reynolds Airport;NC;United States;4;36-08-00N;080-13-29W;36-08-13N;080-13-42W;295;291; +KINW;72;374;Winslow, Winslow Municipal Airport;AZ;United States;4;35-01-41N;110-43-15W;35-01-17N;110-43-02W;1505;1490; +KINX;--;---;Tulsa Nexrad;OK;United States;4;36-11N;095-34W;;;226;; +KIOW;--;---;Iowa City, Iowa City Municipal Airport;IA;United States;4;41-37-58N;091-32-35W;47-38-25N;091-32-30W;203;198; +KIPJ;--;---;Lincolnton, Lincolnton-Lincoln County Regional Airport;NC;United States;4;35-28-59N;081-09-41W;;;267;; +KIPL;--;---;Imperial, Imperial County Airport;CA;United States;4;32-50-03N;115-34-43W;32-50-08N;115-34-36W;-17;-15; +KIPT;72;514;Williamsport, Williamsport Regional Airport;PA;United States;4;41-14-30N;076-55-15W;41-14-41N;076-55-08W;161;164; +KIRK;--;---;Kirksville, Kirksville Regional Airport;MO;United States;4;40-05-50N;092-32-36W;40-05-33N;092-32-41W;294;293; +KIRS;--;---;Sturgis, Kirsch Municipal Airport;MI;United States;4;41-48-46N;085-26-21W;;;282;; +KISM;--;---;Orlando, Kissimmee Municipal Airport;FL;United States;4;28-17-23N;081-26-14W;;;25;; +KISN;72;767;Williston, Sloulin Field International Airport;ND;United States;4;48-10-26N;103-38-12W;48-10-37N;103-37-52W;604;579;P +KISO;--;---;Kinston, Kinston Regional Jetport at Stallings Field;NC;United States;4;35-20N;077-37W;;;29;; +KISP;--;---;Islip, Long Island Mac Arthur Airport;NY;United States;4;40-47-38N;073-06-06W;40-47-29N;073-06-12W;30;43; +KISQ;--;---;Manistique, Schoolcraft County Airport;MI;United States;4;45-58-29N;086-10-19W;;;209;; +KISW;--;---;Wisconsin Rapids, Alexander Field South Wood County Airport;WI;United States;4;44-21-33N;089-50-13W;44-21-42N;089-49-59W;311;307; +KITH;--;---;Ithaca, Ithaca Tompkins Regional Airport;NY;United States;4;42-29-27N;076-27-30W;;;335;; +KITR;--;---;Burlington, Carson County Airport;CO;United States;4;39-14-32N;102-16-58W;39-14-38N;102-17-08W;1285;1279; +KIWA;--;---;Mesa, Williams Gateway Airport;AZ;United States;4;33-19N;111-39W;;;421;; +KIWD;--;---;Ironwood, Gogebic-Iron County Airport;MI;United States;4;46-32N;090-08W;;;375;; +KIWI;--;---;Wiscasset, Wiscasset Airport;ME;United States;4;43-57-49N;069-42-42W;43-57-50N;069-42-40W;20;20; +KIWS;--;---;West Houston / Lakeside;TX;United States;4;29-49N;095-40W;;;34;; +KIXD;--;---;Olathe, New Century Aircenter;KS;United States;4;38-49-28N;094-53-13W;38-50-03N;094-53-25W;331;342; +KIYK;--;---;Inyokern;CA;United States;4;35-40N;117-50W;;;749;; +KIZA;--;---;Santa Ynez, Santa Ynez Airport;CA;United States;4;34-36-25N;120-04-32W;;;205;; +KIZG;--;---;Fryeburg, Eastern Slopes Regional Airport;ME;United States;4;43-59-21N;070-57-01W;43-59-18N;070-56-59W;137;135; +KJAC;--;---;Jackson, Jackson Hole Airport;WY;United States;4;43-36N;110-44W;;;1966;; +KJAN;72;235;Jackson, Jackson International Airport;MS;United States;4;32-19-11N;090-04-39W;32-19-08N;090-04-49W;105;89;P +KJAS;--;---;Jasper, Jasper County-Bell Field Airport;TX;United States;4;30-53-08N;094-02-05W;;;65;; +KJAX;72;206;Jacksonville, Jacksonville International Airport;FL;United States;4;30-29-40N;081-41-36W;30-29-38N;081-40-52W;9;7;P +KJBR;--;---;Jonesboro, Jonesboro Municipal Airport;AR;United States;4;35-50-14N;090-38-35W;35-50-10N;090-38-53W;79;79; +KJCT;74;740;Junction, Kimble County Airport;TX;United States;4;30-30-39N;099-45-59W;30-30-36N;099-45-57W;527;523;P +KJDD;--;---;Mineola/Quitman, Wood County Airport;TX;United States;4;32-44-31N;095-29-47W;;;132;; +KJDN;--;---;Jordan, Jordan Airport;MT;United States;4;47-19-33N;106-56-51W;;;811;801; +KJEF;--;---;Jefferson City, Jefferson City Memorial Airport;MO;United States;4;38-35-40N;092-09-21W;38-35-42N;092-09-15W;167;168; +KJER;--;---;Jerome, Jerome County Airport;ID;United States;4;42-43-36N;114-27-26W;;;1234;; +KJFK;74;486;New York, Kennedy International Airport;NY;United States;4;40-38-19N;073-45-44W;40-38-34N;073-46-52W;3;9; +KJGG;--;---;Williamsburg, Williamsburg-Jamestown Airport;VA;United States;4;37-14-21N;076-42-57W;;;15;; +KJHW;--;---;Jamestown, Chautauqua County/Jamestown Airport;NY;United States;4;42-09N;079-16W;;;525;; +KJKJ;--;---;Moorhead, Moorhead Municipal Airport;MN;United States;4;46-50-21N;096-39-47W;;;280;; +KJKL;--;---;Jackson, Carroll Airport;KY;United States;4;37-35-29N;083-18-52W;37-35-29N;083-19-02W;421;412; +KJLN;--;---;Joplin, Joplin Regional Airport;MO;United States;4;37-09-22N;094-30-02W;37-08-50N;094-30-03W;299;299; +KJMR;--;---;Mora, Mora Municipal Airport;MN;United States;4;45-53-10N;093-16-18W;;;309;; +KJMS;--;---;Jamestown, Jamestown Municipal Airport;ND;United States;4;46-55-47N;098-40-42W;46-55-35N;098-40-35W;457;455; +KJNW;--;---;Newport;OR;United States;4;44-35N;124-04W;;;48;; +KJNX;--;---;Smithfield, Johnston County Airport;NC;United States;4;35-32-27N;078-23-25W;;;50;; +KJOT;--;---;Joliet, Joliet Regional Airport;IL;United States;4;41-31-05N;088-10-31W;;;177;; +KJQF;--;---;Concord, Concord Regional Airport;NC;United States;4;35-23-07N;080-42-35W;;;210;; +KJSO;--;---;Jacksonville, Cherokee County Airport;TX;United States;4;31-52-09N;095-13-02W;;;206;; +KJST;--;---;Johnstown, Johnstown-Cambria County Airport;PA;United States;4;40-18-58N;078-50-02W;40-19-10N;078-49-59W;696;694; +KJSV;--;---;Sallisaw, Sallisaw Municipal Airport;OK;United States;4;35-26-17N;094-48-10W;;;161;; +KJVL;--;---;Janesville / Rock County;WI;United States;4;42-37N;089-02W;;;246;; +KJWG;--;---;Watonga, Watonga Airport;OK;United States;4;35-51-53N;098-25-15W;;;472;; +KJWX;--;---;Fort Ritchie;MD;United States;4;39-44N;077-26W;;;275;; +KJWY;--;---;Midlothian/Waxahachie, Mid-Way Regional Airport;TX;United States;4;32-27-21N;096-54-44W;;;217;; +KJXI;--;---;Gilmer, Fox Stephens Field - Gilmer Municipal Airport;TX;United States;4;32-41-56N;094-56-55W;;;127;; +KJXN;--;---;Jackson, Jackson County-Reynolds Field Airport;MI;United States;4;42-15-35N;084-27-34W;;;305;; +KJYG;--;---;St. James, St. James Municipal Airport;MN;United States;4;43-59-11N;094-33-29W;;;325;; +KJYL;--;---;Sylvania, Plantation Airpark;GA;United States;4;32-38-43N;081-35-47W;;;57;; +KJYM;--;---;Hillsdale, Hillsdale Municipal Airport;MI;United States;4;41-55-17N;084-35-09W;;;360;; +KJYO;--;---;Leesburg / Godfrey;VA;United States;4;39-05N;077-34W;;;119;; +KJYR;--;---;York, York Municipal Airport;NE;United States;4;40-53-48N;097-37-22W;;;509;; +KKAL;--;---;Kaltag, Kaltag Airport;AK;United States;4;64-19-27N;158-43-59W;64-19-27N;158-43-59W;60;52; +KKLS;--;---;Kelso, Kelso-Longview Airport;WA;United States;4;46-07N;122-54W;;;6;; +KKVL;--;---;Kivalina, Kivalina Airport;AK;United States;4;67-43-52N;164-32-33W;67-43-52N;164-32-33W;3;3; +KL10;--;---;San Clemente;CA;United States;4;33-25N;117-37W;;;3;; +KL13;--;---;Point Loma / Cabrillo;CA;United States;4;32-40N;117-29W;;;111;; +KL14;--;---;Cabrillo Beach;CA;United States;4;33-43N;118-17W;;;8;; +KL21;--;---;Scripps Pier / La Jol;CA;United States;4;32-52N;117-15W;;;4;; +KL27;--;---;Santa Catalina Island;CA;United States;4;33-20N;118-20W;;;3;; +KL34;--;---;Oceanside Harbor;CA;United States;4;33-13N;117-24W;;;9;; +KL40;--;---;High Island A489b;LA;United States;4;28-12N;094-12W;;;;; +KL42;--;---;Oakdale, Allen Parish Airport;LA;United States;4;30-45-02N;092-41-19W;;;33;; +KL46;--;---;Anacapa Island;CA;United States;4;34-01N;119-22W;;;42;; +KL49;--;---;Galliano, South Lafourche Airport;LA;United States;4;29-26-41N;090-15-40W;;;0;; +KL55;--;---;Malibu Beach;CA;United States;4;34-02N;118-41W;;;139;; +KL58;--;---;Mission Beach;CA;United States;4;32-46N;117-14W;;;2;; +KL79;--;---;Oxnard / Channel Island;CA;United States;4;34-10N;119-13W;;;2;; +KL82;--;---;Terminal Island;CA;United States;4;33-44N;118-16W;;;10;; +KL97;--;---;Point Vincente;CA;United States;4;33-44N;118-24W;;;5;; +KL98;--;---;El Capitan Beach;CA;United States;4;33-27N;120-02W;;;27;; +KLAA;--;---;Lamar, Lamar Municipal Airport;CO;United States;4;38-04-21N;102-41-12W;38-04-34N;102-41-31W;1128;1119; +KLAF;--;---;Lafayette, Purdue University Airport;IN;United States;4;40-24-45N;086-56-51W;40-24-53N;086-56-00W;184;182; +KLAL;--;---;Lakeland Regional;FL;United States;4;27-59N;082-01W;;;43;; +KLAM;--;---;Los Alamos, Los Alamos Airport;NM;United States;4;35-52-47N;106-16-09W;;;2186;; +KLAN;72;539;Lansing, Capital City Airport;MI;United States;4;42-46-49N;084-34-44W;42-46-27N;084-35-35W;262;264; +KLAR;--;---;Laramie, Laramie Regional Airport;WY;United States;4;41-18-43N;105-40-30W;41-19-01N;105-40-16W;2218;2216; +KLAS;72;386;Las Vegas, McCarran International Airport;NV;United States;4;36-04-44N;115-09-19W;36-04-58N;115-08-47W;663;636;P +KLAW;--;---;Lawton, Lawton Municipal Airport;OK;United States;4;34-33-27N;098-25-00W;34-34-34N;098-25-16W;338;337; +KLAX;72;295;Los Angeles, Los Angeles International Airport;CA;United States;4;33-56-17N;118-23-20W;33-56-41N;118-24-10W;38;46;P +KLBB;72;267;Lubbock, Lubbock International Airport;TX;United States;4;33-40-03N;101-49-17W;33-39-30N;101-48-52W;1000;992;P +KLBE;--;---;Latrobe / Westmorland;PA;United States;4;40-17N;079-24W;;;361;; +KLBF;72;562;North Platte, North Platte Regional Airport;NE;United States;4;41-07-19N;100-40-06W;41-07-58N;100-41-54W;846;847;P +KLBL;--;---;Liberal, Liberal Municipal Airport;KS;United States;4;37-03N;100-58W;;;879;; +KLBR;--;---;Clarksville, Clarksville/Red River County-J D Trissell Field Airport;TX;United States;4;33-35-35N;095-03-48W;;;134;; +KLBT;--;---;Lumberton, Lumberton Municipal Airport;NC;United States;4;34-36-26N;079-03-36W;34-36-50N;079-03-37W;38;37; +KLBX;--;---;Angleton / Lake Jackson, Brazoria County Airport;TX;United States;4;29-06-55N;095-27-47W;29-06-42N;095-27-35W;7;6; +KLCG;--;---;Wayne, Wayne Municipal Airport;NE;United States;4;42-14-30N;096-58-53W;;;436;; +KLCH;72;240;Lake Charles, Lake Charles Regional Airport;LA;United States;4;30-07-34N;093-13-24W;30-07-29N;093-12-55W;5;3;P +KLCI;--;---;Laconia, Laconia Municipal Airport;NH;United States;4;43-34N;071-25W;;;166;; +KLCK;--;---;Rickenbacker Air National Guard Base;OH;United States;4;39-49N;082-56W;;;227;; +KLDM;--;---;Ludington, Mason County Airport;MI;United States;4;43-58N;86-24W;;;197;; +KLDS;--;---;Leeds;MT;United States;4;48-33N;109-41W;;;775;; +KLEB;--;---;Lebanon, Lebanon Municipal Airport;NH;United States;4;43-37-38N;072-18-21W;43-37-41N;072-18-42W;182;171; +KLEE;--;---;Leesburg, Leesburg Regional Airport;FL;United States;4;28-49-21N;081-48-32W;28-49-44N;081-48-48W;24;23; +KLEW;--;---;Auburn-Lewiston;ME;United States;4;44-03N;070-17W;;;88;; +KLEX;72;422;Lexington, Blue Grass Airport;KY;United States;4;38-02-27N;084-36-21W;38-02-13N;084-35-54W;298;300;P +KLFI;74;598;Langley Air Force Base;VA;United States;4;37-05N;076-21W;;;3;6; +KLFK;--;---;Lufkin, Angelina County Airport;TX;United States;4;31-14-02N;094-45-00W;31-13-53N;094-45-12W;90;88; +KLFT;--;---;Lafayette, Lafayette Regional Airport;LA;United States;4;30-12-08N;091-59-35W;30-12-10N;091-59-42W;12;11; +KLGA;72;503;New York, La Guardia Airport;NY;United States;4;40-46-45N;073-52-48W;40-46-25N;073-53-08W;6;11;P +KLGB;72;297;Long Beach, Long Beach Airport;CA;United States;4;33-48-42N;118-08-47W;33-48-42N;118-08-57W;17;10; +KLGC;--;---;La Grange, Callaway Airport;GA;United States;4;33-00-32N;085-04-21W;;;211;; +KLGD;--;---;La Grande, La Grande/Union County Airport;OR;United States;4;45-17N;118-00W;;;828;; +KLGU;--;---;Logan, Logan-Cache Airport;UT;United States;4;41-46-58N;111-51-14W;41-46-58N;111-51-12W;1357;1355; +KLHB;--;---;Hearne, Hearne Municipal Airport;TX;United States;4;30-52-18N;096-37-20W;;;87;; +KLHD;--;---;Anchorage, Lake Hood Sea Plane Base;AK;United States;4;61-10-41N;149-57-49W;61-10-41N;149-57-49W;21;28; +KLHQ;--;---;Lancaster, Fairfield County Airport;OH;United States;4;39-45-26N;082-39-48W;39-45-10N;082-39-42W;264;260; +KLHU;--;---;Lake Havasu Automatic Weather Observing / Reporting System;AZ;United States;4;34-28N;111-46W;;;147;; +KLHW;72;209;Ft. Stewart;GA;United States;4;31-53N;081-34W;31-53N;081-34W;14;14; +KLHX;--;---;La Junta, La Junta Municipal Airport;CO;United States;4;38-02-58N;103-30-44W;38-02-43N;103-30-41W;1288;1277; +KLHZ;--;---;Louisburg, Franklin County Airport;NC;United States;4;36-01-24N;078-19-49W;;;113;; +KLIC;--;---;Limon, Limon Municipal Airport;CO;United States;4;39-16-24N;103-40-00W;39-16-09N;103-40-00W;1635;1630; +KLIT;--;---;Little Rock, Adams Field;AR;United States;4;34-43-36N;092-14-10W;34-43-59N;092-14-26W;79;79; +KLIX;72;233;Slidell;LA;United States;4;30-20N;089-49W;30-20N;089-49W;8;8; +KLIZ;--;---;Loring Air Force Base / Limeston;ME;United States;4;46-57N;067-53W;;;227;; +KLJF;--;---;Litchfield, Litchfield Municipal Airport;MN;United States;4;45-05-50N;094-30-26W;;;348;; +KLKU;--;---;Louisa, Louisa County Airport/Freeman Field;VA;United States;4;38-00-35N;077-58-13W;;;150;; +KLKV;--;---;Lakeview, Lake County Airport;OR;United States;4;42-10N;120-24W;;;1443;; +KLLJ;--;---;Challis, Challis Airport;ID;United States;4;44-31-22N;114-12-54W;44-31-12N;114-12-54W;1546;1536; +KLLQ;--;---;Monticello, Monticello Municipal Airport/Ellis Field;AR;United States;4;33-38-18N;091-45-04W;33-38-04N;091-45-20W;82;83; +KLMT;--;---;Klamath Falls, Klamath Falls International Airport;OR;United States;4;42-08-49N;121-43-27W;42-09-41N;121-44-32W;1247;1246; +KLNC;--;---;Lancaster, Lancaster Airport;TX;United States;4;32-34-45N;096-43-08W;;;153;; +KLND;72;576;Lander;WY;United States;4;42-48-53N;108-43-41W;42-49-00N;108-44-00W;1703;1694;P +KLNK;72;551;Lincoln, Lincoln Municipal Airport;NE;United States;4;40-49-52N;096-45-52W;40-51-01N;096-44-52W;370;364; +KLNL;--;---;Land O' Lakes, Kings Land O' Lakes Airport;WI;United States;4;46-09-14N;089-12-43W;;;520;; +KLNN;--;---;Willoughby;OH;United States;4;41-41N;081-23W;;;191;; +KLNP;--;---;Wise / Lonesome Pine;VA;United States;4;36-59N;082-32W;;;817;; +KLNR;--;---;Lone Rock, Tri-County Regional Airport;WI;United States;4;43-12-43N;090-10-53W;43-12-48N;090-11-27W;219;217; +KLNS;--;---;Lancaster, Lancaster Airport;PA;United States;4;40-07-13N;076-17-40W;40-07-28N;076-16-52W;123;125; +KLOL;--;---;Lovelock, Derby Field Airport;NV;United States;4;40-03-59N;118-33-55W;40-04-13N;118-34-09W;1190;1189; +KLOM;--;---;Philadelphia, Wings Field Airport;PA;United States;4;40-08-15N;075-15-54W;;;92;; +KLOR;--;---;Fort Rucker, Lowe Army Heliport;AL;United States;4;31-21-32N;085-44-54W;;;78;93; +KLOT;--;---;Chicago/Romeoville, Lewis University Airport;IL;United States;4;41-36-30N;088-05-39W;;;205;; +KLOU;--;---;Louisville, Bowman Field Airport;KY;United States;4;38-13-40N;085-39-49W;38-13-40N;085-39-39W;166;164; +KLOZ;--;---;London, London-Corbin Airport-Magee Field;KY;United States;4;37-05-22N;084-04-07W;37-05-15N;084-04-15W;369;362; +KLPC;--;---;Lompoc, Lompoc Airport;CA;United States;4;34-40N;120-28W;;;27;; +KLPR;--;---;Lorain / Elyria, Lorain County Regional Airport;OH;United States;4;41-20-46N;082-10-46W;41-20-20N;082-10-38W;242;241; +KLRD;72;252;Laredo, Laredo International Airport;TX;United States;4;27-32-37N;099-27-41W;;;155;; +KLRF;--;---;Little Rock Air Force Base;AR;United States;4;34-55N;092-09W;;;95;; +KLRJ;--;---;Le Mars, Le Mars Municipal Airport;IA;United States;4;42-46-41N;096-11-37W;;;365;; +KLRU;--;---;Las Cruces, Las Cruces International Airport;NM;United States;4;32-17-22N;106-55-19W;;;1358;; +KLRX;--;---;Elko Nexrad;NV;United States;4;40-44-20N;116-48-10W;;;2019;; +KLSD;--;---;Lexington / Creech;KY;United States;4;38-02N;084-37W;;;299;; +KLSE;72;643;La Crosse, La Crosse Municipal Airport;WI;United States;4;43-52-46N;091-15-24W;43-52-18N;091-15-09W;199;200; +KLSF;72;225;Fort Benning;GA;United States;4;32-20N;084-50W;32-20N;084-50W;71;130; +KLSV;--;---;Nellis Air Force Base;NV;United States;4;36-14N;115-02W;;;570;; +KLTS;72;352;Altus Air Force Base;OK;United States;4;34-39N;099-16W;34-39N;099-16W;420;420; +KLTX;--;---;Wilmington Nexrad;NC;United States;4;33-59N;078-26W;;;44;; +KLUD;--;---;Decatur, Decatur Municipal Airport;TX;United States;4;33-15-16N;097-34-50W;;;319;; +KLUF;--;---;Luke Air Force Base / Phoenix;AZ;United States;4;33-32N;112-23W;33-32N;112-23W;332;332; +KLUK;--;---;Cincinnati, Cincinnati Municipal Airport Lunken Field;OH;United States;4;39-06-21N;084-24-57W;39-06-26N;084-25-24W;147;155; +KLUM;--;---;Menomonie, Menomonie Municipal Airport-Score Field;WI;United States;4;44-53-32N;091-52-04W;;;273;; +KLVJ;--;---;Houston, Pearland Regional Airport;TX;United States;4;29-31-16N;095-14-31W;29-31-05N;095-14-29W;13;12; +KLVK;--;---;Livermore, Livermore Municipal Airport;CA;United States;4;37-41-34N;121-48-52W;37-41-45N;121-49-01W;121;117; +KLVM;--;---;Livingston, Mission Field Airport;MT;United States;4;45-41-58N;110-26-54W;45-41-49N;110-27-12W;1419;1418; +KLVN;--;---;Minneapolis, Airlake Airport;MN;United States;4;44-37-40N;093-13-41W;;;293;; +KLVS;--;---;Las Vegas, Las Vegas Municipal Airport;NM;United States;4;35-39-15N;105-08-33W;35-39-05N;105-08-50W;2096;2091; +KLVX;--;---;Louisville Nexrad;KY;United States;4;37-59N;085-56W;;;254;; +KLWA;--;---;South Haven, South Haven Area Regional Airport;MI;United States;4;42-21-03N;086-15-22W;;;203;; +KLWB;--;---;Lewisburg / Greenbrier;WV;United States;4;37-52N;080-24W;;;702;; +KLWC;--;---;Lawrence, Lawrence Municipal Airport;KS;United States;4;39-00-30N;095-12-42W;39-00-18N;095-12-57W;253;253; +KLWD;--;---;Lamoni, Lamoni Municipal Airport;IA;United States;4;40-37-50N;093-54-03W;40-37-47N;093-54-01W;344;346; +KLWM;--;---;Lawrence, Lawrence Municipal Airport;MA;United States;4;42-42-47N;071-07-33W;42-42-55N;071-07-14W;45;54; +KLWS;72;783;Lewiston, Lewiston-Nez Perce County Airport;ID;United States;4;46-22-29N;117-00-52W;46-22-38N;117-00-37W;438;438; +KLWT;--;---;Lewistown, Lewistown Municipal Airport;MT;United States;4;47-02-57N;109-27-59W;;;1270;; +KLWV;--;---;Lawrenceville, Lawrenceville-Vincennes International Airport;IL;United States;4;38-45-38N;087-35-56W;38-45-40N;087-36-20W;131;131; +KLWX;--;---;Baltimore / DC Nexrad;MD;United States;4;38-59N;077-29W;;;113;; +KLXL;--;---;Little Falls, Little Falls/Morrison County Airport-Lindbergh Field;MN;United States;4;45-57N;094-21W;;;342;; +KLXN;--;---;Lexington, Jim Kelly Field Airport;NE;United States;4;40-47-28N;099-46-38W;;;736;; +KLXT;--;---;Lee's Summit, Lee's Summit Municipal Airport;MO;United States;4;38-57-35N;094-22-18W;;;306;; +KLXV;--;---;Leadville, Lake County Airport;CO;United States;4;39-13-41N;106-18-58W;;;3026;3028; +KLYH;72;410;Lynchburg, Lynchburg Regional Airport;VA;United States;4;37-19-15N;079-12-24W;37-19-45N;079-12-09W;285;295; +KLYV;--;---;Luverne, Quentin Aanenson Field Airport;MN;United States;4;43-37-16N;096-12-56W;;;436;; +KLZK;72;340;North Little Rock, North Little Rock Airport;AR;United States;4;34-50N;092-15W;34-50N;092-15W;165;165;P +KLZU;--;---;Lawrenceville, Gwinnett County-Briscoe Field Airport;GA;United States;4;33-58-41N;083-57-45W;;;323;; +KLZZ;--;---;Lampasas, Lampasas Airport;TX;United States;4;31-06-22N;098-11-45W;;;370;; +KM19;--;---;Newport, Newport Municipal Airport;AR;United States;4;35-38-15N;091-10-34W;;;73;;; +KM30;--;---;Metropolis, Metropolis Municipal Airport;IL;United States;4;37-11-09N;088-45-02W;;;117;; +KM39;--;---;Mena, Mena Intermountain Municipal Airport;AR;United States;4;34-32-43N;094-12-09W;34-32-54N;094-12-33W;329;; +KM82;--;---;Huntsville, Madison County Executive Airport;AL;United States;4;34-51-41N;086-33-26W;;;230;; +KM89;--;---;Arkadelphia, Dexter B Florence Memorial Field Airport;AR;United States;4;34-05-59N;093-03-58W;;;56;; +KM97;--;---;Tunica, Tunica Municipal Airport;MS;United States;4;34-40-51N;090-20-47W;;;59;; +KMAE;--;---;Madera, Madera Municipal Airport;CA;United States;4;36-59-12N;120-06-39W;36-59-20N;120-06-28W;77;77; +KMAF;72;265;Midland, Midland International Airport;TX;United States;4;31-56-52N;102-12-31W;31-56-38N;102-11-23W;875;872;P +KMAI;--;---;Marianna, Marianna Municipal Airport;FL;United States;4;30-50-12N;085-11-01W;30-50-06N;085-10-56W;34;32; +KMAX;--;---;Medford Nexrad;OR;United States;4;42-04-51N;122-42-57W;;;2290; +KMBG;--;---;Mobridge, Mobridge Municipal Airport;SD;United States;4;45-33-00N;100-24-31W;45-32-35N;100-24-13W;522;510; +KMBL;--;---;Manistee, Manistee County-Blacker Airport;MI;United States;4;44-16N;086-15W;;;189;; +KMBS;--;---;Saginaw, MBS International Airport;MI;United States;4;43-31-58N;084-04-46W;43-31-36N;084-04-58W;204;202; +KMCB;--;---;McComb, McComb / Pike County / John E Lewis Field Airport;MS;United States;4;31-10-42N;090-28-19W;31-10-55N;090-28-16W;126;124; +KMCC;--;---;Sacramento, McClellan Airfield Airport;CA;United States;4;38-40N;121-24W;;;23;; +KMCD;--;---;Macinac Island, Mackinac Island Airport;MI;United States;4;45-51-54N;084-38-14W;;;226;; +KMCE;--;---;Merced, Merced Municipal Airport;CA;United States;4;37-16-59N;120-30-28W;37-17-20N;120-30-52W;47;47; +KMCF;74;788;Macdill Air Force Base, Fl.;FL;United States;4;27-51N;082-30W;27-51N;082-30W;4;4; +KMCG;--;---;McGrath, McGrath Airport;AK;United States;4;62-57-22N;155-36-21W;62-57-29N;155-36-00W;102;102; +KMCI;72;446;Kansas City, Kansas City International Airport;MO;United States;4;39-17-50N;094-43-50W;39-17-57N;094-43-03W;312;320;P +KMCK;--;---;McCook, McCook Municipal Airport;NE;United States;4;40-12-11N;100-35-18W;40-12-14N;100-35-38W;786;782; +KMCN;72;217;Macon, Middle Georgia Regional Airport;GA;United States;4;32-41-16N;083-39-16W;32-42-05N;083-38-53W;107;109;P +KMCO;72;205;Orlando, Orlando International Airport;FL;United States;4;28-25-02N;081-19-30W;28-25-52N;081-18-38W;29;29;P +KMCW;--;---;Mason City, Mason City Municipal Airport;IA;United States;4;43-09-28N;093-19-53W;43-09-12N;093-20-11W;370;369; +KMDD;--;---;Midland, Midland Airpark;TX;United States;4;32-02-11N;102-06-03W;;;854;; +KMDH;--;---;Carbondale / Murphysboro, Southern Illinois Airport;IL;United States;4;37-46-59N;089-14-42W;37-46-36N;089-15-09W;125;130; +KMDQ;--;---;Huntsville, Madison County Executive Airport;AL;United States;4;34-51-41N;086-33-26W;;;230;; +KMDT;--;---;Harrisburg, Harrisburg International Airport;PA;United States;4;40-11-37N;076-45-48W;40-11-50N;076-45-48W;95;95; +KMDW;72;534;Chicago, Chicago Midway Airport;IL;United States;4;41-47-03N;087-45-19W;41-46-49N;087-45-08W;188;188; +KMDZ;--;---;Medford, Taylor County Airport;WI;United States;4;45-06-04N;090-18-12W;;;448;; +KMEB;--;---;Maxton, Laurinburg-Maxton Airport;NC;United States;4;34-47-29N;079-22-05W;34-47-47N;079-22-07W;67;67; +KMEH;--;---;Meacham, Meacham;OR;United States;4;45-30-41N;118-25-29W;45-30-41N;118-25-29W;1135;1136; +KMEI;72;234;Meridian, Key Field;MS;United States;4;32-20-17N;088-44-52W;32-20-03N;088-44-25W;90;89;P +KMEM;72;334;Memphis, Memphis International Airport;TN;United States;4;35-03-40N;089-59-06W;35-03-00N;089-58-45W;101;86;P +KMER;72;481;Merced / Castle Air Force Base;CA;United States;4;37-22N;120-34W;37-23N;120-34W;57;60; +KMEZ;--;---;Mena, Mena Intermountain Municipal Airport;AR;United States;4;34-32-43N;094-12-09W;34-32-54N;094-12-33W;329;; +KMFD;--;---;Mansfield, Mansfield Lahm Municipal Airport;OH;United States;4;40-49-13N;082-31-04W;40-48-56N;082-30-45W;395;395; +KMFE;--;---;McAllen, Miller International Airport;TX;United States;4;26-10-47N;098-14-40W;26-10-42N;098-14-17W;32;38; +KMFI;--;---;Marshfield, Marshfield Municipal Airport;WI;United States;4;44-38-17N;090-11-15W;44-38-25N;090-11-01W;389;379; +KMFR;72;597;Medford, Rogue Valley International Airport;OR;United States;4;42-22-52N;122-52-20W;42-22-37N;122-52-50W;405;396;P +KMFV;--;---;Melfa / Accomack Airport;VA;United States;4;37-39N;075-46W;;;15;; +KMGE;72;227;Marietta / Dobbins Air Force Base;GA;United States;4;33-55N;084-31W;;;326;326;P +KMGG;--;---;Maple Lake, Maple Lake Municipal Airport;MN;United States;4;45-14-10N;093-59-08W;;;313;; +KMGJ;--;---;Montgomery, Orange County Airport;NY;United States;4;41-30-33N;074-15-54W;41-30-55N;074-15-41W;111;108; +KMGM;72;226;Montgomery, Dannelly Field;AL;United States;4;32-18-01N;086-24-22W;32-18-17N;086-23-27W;67;63;P +KMGN;--;---;Harbor Springs, Harbor Springs Airport;MI;United States;4;45-25-32N;084-54-48W;;;209;; +KMGR;--;---;Moultrie, Moultrie Municipal Airport;GA;United States;4;31-05-05N;083-48-11W;;;90;; +KMGW;--;---;Morgantown, Morgantown Municipal-Hart Field;WV;United States;4;39-38-58N;079-55-16W;39-38-35N;079-55-12W;380;378; +KMGY;--;---;Dayton, Dayton-Wright Brothers Airport;OH;United States;4;39-35-20N;084-13-29W;39-35-29N;084-13-42W;292;289; +KMHE;--;---;Mitchell, Mitchell Municipal Airport;SD;United States;4;43-46N;098-02W;;;397;; +KMHK;--;---;Manhattan, Manhattan Municipal Airport;KS;United States;4;39-08-07N;096-40-40W;39-08-03N;096-40-10W;321;317; +KMHN;--;---;Mullen / Hooker County;NE;United States;4;42-03N;101-04W;;;994;; +KMHR;--;---;Sacramento, Sacramento Mather Airport;CA;United States;4;38-33N;121-18W;;;29;; +KMHS;--;---;Mount Shasta;CA;United States;4;41-18-57N;122-18-58W;41-18-56N;122-18-57W;1077;1078; +KMHT;--;---;Manchester, Manchester Airport;NH;United States;4;42-55-45N;071-26-09W;42-56-01N;071-26-21W;71;81; +KMHV;--;---;Mojave;CA;United States;4;35-04N;118-09W;;;849;; +KMHX;72;305;Newport;NC;United States;4;34-47N;076-53W;34-47N;076-53W;11;11; +KMIA;72;202;Miami, Miami International Airport;FL;United States;4;25-47-26N;080-18-59W;25-48-12N;080-17-49W;3;8;P +KMIB;--;---;Minot Air Force Base;ND;United States;4;48-25N;101-21W;;;508;; +KMIC;--;---;Minneapolis, Crystal Airport;MN;United States;4;45-03-45N;093-21-03W;45-03-39N;093-21-20W;264;265; +KMIE;--;---;Muncie, Delaware County-Johnson Field;IN;United States;4;40-14-03N;085-23-37W;40-14-31N;085-23-47W;285;285; +KMIV;--;---;Millville, Millville Municipal Airport;NJ;United States;4;39-21-58N;075-04-42W;39-22-12N;075-04-15W;26;23; +KMIW;--;---;Marshalltown, Marshalltown Municipal Airport;IA;United States;4;42-06-38N;092-54-58W;42-06-31N;092-54-51W;296;296; +KMJQ;--;---;Jackson, Jackson Municipal Airport;MN;United States;4;43-39N;094-59W;;;441;; +KMKC;--;---;Kansas City, Kansas City Downtown Airport;MO;United States;4;39-07-15N;094-35-49W;39-07-27N;094-35-31W;231;227; +KMKE;72;640;Milwaukee, General Mitchell International Airport;WI;United States;4;42-57-18N;087-54-16W;42-56-52N;087-54-23W;220;206;P +KMKG;72;636;Muskegon, Muskegon County Airport;MI;United States;4;43-10-16N;086-14-12W;43-09-50N;086-14-19W;191;191;P +KMKJ;--;---;Marion / Wytheville;VA;United States;4;36-54N;081-21W;;;780;; +KMKK;--;---;Kaunakakai, Molokai Airport;HI;United States;5;21-09-28N;157-05-55W;21-09-29N;157-05-54W;138;141; +KMKL;--;---;Jackson, McKellar-Sipes Regional Airport;TN;United States;4;35-35-35N;088-55-00W;35-36-12N;088-55-22W;132;128; +KMKN;--;---;Comanche, Comanche County-City Airport;TX;United States;4;31-55N;098-36-01W;;;423;; +KMKO;--;---;Muskogee, Davis Field;OK;United States;4;35-39-25N;095-21-35W;35-39-33N;095-21-14W;185;185; +KMKT;--;---;Mankato, Mankato Regional Airport;MN;United States;4;44-13N;093-55W;;;311;; +KMKX;--;---;Milwaukee NEXRAD;WI;United States;4;42-58N;088-33W;;;312;; +KMLB;72;204;Melbourne, Melbourne International Airport;FL;United States;4;28-06-10N;080-38-45W;28-05-57N;080-38-36W;10;10; +KMLC;--;---;McAlester, McAlester Regional Airport;OK;United States;4;34-52-56N;095-46-59W;34-52-30N;095-46-59W;234;232; +KMLD;--;---;Malad City;ID;United States;4;42-10N;112-18W;;;1373;; +KMLE;--;---;Omaha, Millard Airport;NE;United States;4;41-11-45N;096-06-44W;;;320;; +KMLF;--;---;Milford, Milford Municipal Airport;UT;United States;4;38-25-21N;113-00-35W;38-25-08N;113-00-34W;1536;1534; +KMLI;72;544;Moline, Quad-City Airport;IL;United States;4;41-27-05N;090-30-53W;41-26-33N;090-30-34W;179;184; +KMLJ;--;---;Milledgeville, Baldwin County Airport;GA;United States;4;33-09-15N;083-14-26W;;;117;; +KMLP;--;---;Mullan Pass, Mullan Pass Vor;ID;United States;4;47-27-15N;115-40-11W;47-27-23N;115-38-45W;1829;1837; +KMLS;74;230;Miles City, Frank Wiley Field Airport;MT;United States;4;46-25-41N;105-53-11W;46-25-40N;105-52-29W;801;801; +KMLT;--;---;Millinocket, Millinocket Municipal Airport;ME;United States;4;45-38-52N;068-41-31W;45-38-38N;068-41-30W;124;123; +KMLU;--;---;Monroe, Monroe Regional Airport;LA;United States;4;32-30-42N;092-01-53W;32-30-36N;092-02-36W;24;29; +KMMH;--;---;Mammoth / June Lakes;CA;United States;4;37-37N;118-50W;;;2173;; +KMMK;--;---;Meriden, Meriden Markham Municipal Airport;CT;United States;4;41-30-35N;072-49-40W;41-30-48N;072-49-49W;31;31; +KMML;--;---;Marshall, Southwest Minnesota Regional Airport - Marshall/Ryan Field;MN;United States;4;44-27N;095-49W;;;360;; +KMMO;74;460;Marseilles Island;IL;United States;4;41-22N;088-41W;;;223;225; +KMMT;--;---;McEntire Air National Guard Weather Facility Base;SC;United States;4;33-55N;080-48W;;;77;; +KMMU;--;---;Morristown Municipal;NJ;United States;4;40-48N;074-25W;;;57;; +KMMV;--;---;McMinnville, McMinnville Municipal Airport;OR;United States;4;45-11-46N;123-07-56W;45-11-58N;123-08-17W;48;48; +KMNH;--;---;Elbert Mountain, Monument Pass;CO;United States;4;39-13-00N;104-38-02W;;;2152;; +KMNI;--;---;Manning / Cooper Regional;SC;United States;4;33-35N;080-13W;;;32;; +KMNM;--;---;Menominee, Menominee-Marinette Twin County Airport;MI;United States;4;45-08N;087-38W;;;191;; +KMNN;--;---;Marion, Marion Municipal Airport;OH;United States;4;40-37-00N;083-04-06W;40-36-59N;083-04-06W;303;301; +KMOB;72;223;Mobile, Mobile Regional Airport;AL;United States;4;30-41-18N;088-14-44W;30-40-58N;088-14-30W;66;67;P +KMOD;--;---;Modesto, Modesto City-County-Sham Field;CA;United States;4;37-37-27N;120-57-02W;37-37-45N;120-57-11W;29;29; +KMOP;--;---;Mount Pleasant, Mount Pleasant Municipal Airport;MI;United States;4;43-37N;84-44W;;;230;; +KMOT;--;---;Minot, Minot International Airport;ND;United States;4;48-15-34N;101-16-49W;48-16-13N;101-17-06W;523;519; +KMOX;--;---;Morris, Morris Municipal Airport;MN;United States;4;45-34N;095-58W;;;347;; +KMPO;--;---;Mount Pocono, Pocono Mountains Municipal Airport;PA;United States;4;41-08-20N;075-23-46W;41-08-47N;075-22-31W;584;577; +KMPV;--;---;Barre / Montpelier, Knapp State Airport;VT;United States;4;44-12-17N;072-33-58W;44-12-08N;072-33-47W;355;343; +KMPZ;--;---;Mount Pleasant, Mount Pleasant Municipal Airport;IA;United States;4;40-56-48N;091-30-40W;;;224;; +KMQB;--;---;Macomb, Macomb Municipal Airport;IL;United States;4;40-31-13N;090-39-09W;;;216;; +KMQE;--;---;East Milton;MA;United States;4;42-12-44N;71-06-53W;;;192;; +KMQI;--;---;Manteo / Dare County Regional;NC;United States;4;35-55N;075-42W;;;4;; +KMQM;--;---;Monida;MT;United States;4;44-34N;112-19W;;;2068;; +KMQT;72;743;Marquette;MI;United States;4;46-32N;087-33W;46-34N;087-24W;434;434;P +KMQY;--;---;Smyrna, Smyrna Airport;TN;United States;4;36-00-32N;086-31-12W;;;166;; +KMRB;--;---;Martinsburg, Eastern West Virginia Regional/Shepherd Airport;WV;United States;4;39-24-07N;077-59-04W;39-23-58N;077-58-50W;170;164; +KMRC;--;---;Columbia / Maury County;TN;United States;4;35-33N;087-11W;;;206;; +KMRF;72;264;Marfa;TX;United States;4;30-22N;104-01W;;;1478;1481;P +KMRH;--;---;Beaufort, Michael J Smith Field Airport;NC;United States;4;34-44-01N;076-39-38W;34-43-59N;076-39-16W;3;3; +KMRI;--;---;Anchorage, Merrill Field;AK;United States;4;61-13-01N;149-51-18W;61-13-04N;149-50-25W;41;40; +KMRJ;--;---;Mineral Point, Iowa County Airport;WI;United States;4;42-53-07N;090-13-55W;;;359;; +KMRN;--;---;Morganton, Morganton-Lenoir Airport;NC;United States;4;35-49-17N;081-36-39W;;;387;; +KMRX;--;---;Morristown Nexrad;TN;United States;4;36-10N;083-24W;;;437;; +KMRY;--;---;Monterey, Monterey Peninsula Airport;CA;United States;4;36-35-26N;121-50-51W;36-35-17N;121-51-12W;77;66; +KMSL;--;---;Muscle Shoals, North West Alabama Regional Airport;AL;United States;4;34-44-38N;087-35-58W;34-44-49N;087-37-03W;167;164; +KMSN;72;641;Madison, Dane County Regional-Truax Field;WI;United States;4;43-08-26N;089-20-43W;43-08-22N;089-20-46W;262;261;P +KMSO;72;773;Missoula, Missoula International Airport;MT;United States;4;46-55-15N;114-05-33W;46-55-30N;114-05-24W;975;975;P +KMSP;72;658;Minneapolis, Minneapolis-St. Paul International Airport;MN;United States;4;44-52-59N;093-13-44W;44-53-15N;093-12-25W;256;265;P +KMSS;--;---;Massena, Massena International-Richards Field;NY;United States;4;44-56-09N;074-50-44W;44-56-00N;074-50-35W;66;66; +KMSV;--;---;Monticello, Sullivan County International Airport;NY;United States;4;41-42N;074-48W;;;428;; +KMSX;--;---;Missoula NEXRAD;MT;United States;4;47-02N;113-59W;;;2451;; +KMSY;72;231;New Orleans, New Orleans International Airport;LA;United States;4;29-59-34N;090-15-03W;29-59-11N;090-15-31W;1;5;P +KMTC;--;---;Selfridge Air National Guard Base;MI;United States;4;42-37N;082-50W;;;177;; +KMTH;--;---;Marathon, Marathon Airport;FL;United States;4;24-43-33N;081-02-52W;24-43-31N;081-02-57W;2;2; +KMTJ;--;---;Montrose, Montrose Regional Airport;CO;United States;4;38-30-18N;107-53-51W;38-29-32N;107-53-21W;1755;1750; +KMTN;--;---;Baltimore / Martin;MD;United States;4;39-20N;076-25W;;;7;; +KMTO;--;---;Mattoon / Charleston, Coles County Memorial Airport;IL;United States;4;39-28-41N;088-16-45W;39-29-01N;088-16-33W;220;214; +KMTP;--;---;Montauk, Montauk Airport;NY;United States;4;41-04-23N;071-55-24W;;;2;2; +KMTV;--;---;Martinsville;VA;United States;4;36-38N;080-01W;;;287;; +KMTW;--;---;Manitowoc, Manitowoc County Airport;WI;United States;4;44-08N;087-41W;;;198;; +KMTX;--;---;Salt Lake Nexrad;UT;United States;4;41-26N;112-45W;;;2004;; +KMUI;--;---;Muir Army Air Field / Indiantown;PA;United States;4;40-26N;076-34W;;;149;; +KMUO;--;---;Mountain Home Air Force Base;ID;United States;4;43-03N;115-52W;;;913;; +KMUT;--;---;Muscatine;IA;United States;4;41-22N;091-09W;;;167;; +KMUX;--;---;Monterey NEXRAD;CA;United States;4;37-10N;121-54W;;;1082;; +KMVE;--;---;Montevideo, Montevideo-Chippewa County Airport;MN;United States;4;44-58N;095-43W;;;315;; +KMVL;--;---;Morrisville, Morrisville-Stowe State Airport;VT;United States;4;44-32-10N;072-36-58W;44-32-13N;072-36-57W;223;223; +KMVN;--;---;Mount Vernon, Mount Vernon Airport;IL;United States;4;38-19N;088-52W;;;146;; +KMVY;--;---;Vineyard Haven, Marthas Vineyard Airport;MA;United States;4;41-23-32N;070-37-00W;41-23-22N;070-36-45W;20;16; +KMWA;--;---;Marion, Williamson County Regional Airport;IL;United States;4;37-45-01N;089-00-04W;;;144;; +KMWC;--;---;Milwaukee / Timmerman;WI;United States;4;43-07N;088-02W;;;227;; +KMWH;--;---;Moses Lake, Grant County Airport;WA;United States;4;47-11-35N;119-18-48W;47-11-23N;119-19-19W;361;362; +KMWK;--;---;Mount Airy, Mount Airy/Surry County Airport;NC;United States;4;36-27-35N;080-33-11W;;;380;; +KMWL;--;---;Mineral Wells, Mineral Wells Airport;TX;United States;4;32-46-54N;098-03-37W;32-47-00N;098-03-45W;297;284; +KMWM;--;---;Windom, Windom Municipal Airport;MN;United States;4;43-54-48N;095-06-34W;;;430;; +KMWN;72;613;Mount Washington;NH;United States;4;44-16N;071-18W;;;1909;1910; +KMWS;72;289;Mount Wilson;CA;United States;4;34-14N;118-04W;;;1739;; +KMWT;--;---;Mount Ida;AR;United States;4;34-33N;93-35W;;;214;; +KMXF;--;---;Maxwell Air Force Base / Montgomery;AL;United States;4;32-23N;086-22W;;;51;; +KMXO;--;---;Monticello Municipal;IA;United States;4;42-14N;091-10W;;;259;; +KMYF;--;---;San Diego, Montgomery Field;CA;United States;4;32-48-52N;117-08-11W;32-49-01N;117-08-04W;128;136; +KMYL;--;---;McCall, McCall Airport;ID;United States;4;44-53-00N;116-05-58W;44-53-50N;116-05-54W;1530;1533; +KMYP;--;---;Salida Mountain, Monarch Pass;CO;United States;4;38-29-04N;106-19-01W;;;3667 +KMYR;74;791;Myrtle Beach Air Force Base;SC;United States;4;33-41N;078-56W;33-41N;078-56W;8;8; +KMYV;--;---;Marysville, Yuba County Airport;CA;United States;4;39-05-52N;121-34-11W;39-05-50N;121-33-56W;19;21; +KMZH;--;---;Moose Lake, Moose Lake Carlton County Airport;MN;United States;4;46-25N;092-48W;;;328;; +KN00;--;---;Fulton, Oswego County Airport;NY;United States;4;43-20-59N;076-23-05W;43-21-03N;076-23-37W;144;138; +KN11;--;---;New Haven Coast Guard Station;CT;United States;4;41-16N;072-54W;;;3;; +KN28;--;---;Ambrose / Ft. Tilden;NY;United States;4;40-27N;073-49W;;;1;; +KN60;--;---;Garrison;ND;United States;4;47-38-45N;101-26-22W;;;582;582; +KN67;--;---;Philadelphia, Wings Field Airport;PA;United States;4;40-08-15N;075-15-54W;;;92;; +KN78;74;590;Barnegat Coast Guard Station;NJ;United States;4;39-46N;074-06W;;;6;; +KN80;--;---;Ocean City, Ocean City Municipal Airport;MD;United States;4;38-18-30N;075-07-26W;38-18-38N;075-07-13W;3;3; +KN84;--;---;Bronx / Execution Coast Guard Station;NY;United States;4;40-53N;073-44W;;;8;; +KN91;--;---;Cape May Coast Guard Station;NJ;United States;4;38-57N;074-53W;;;2;; +KNAE;--;---;Astor, Bombing Range Detachment Astor;FL;United States;4;29-08-35N;081-37-58W;29-08-34N;081-37-59W;28;29; +KNAK;--;---;Annapolis, United States Naval Academy;MD;United States;4;38-59-29N;076-29-00W;38-59-02N;076-29-03W;2;11; +KNBC;--;---;Beaufort, Marine Corps Air Station;SC;United States;4;32-29-37N;080-42-11W;32-28-15N;080-43-26W;11;8; +KNBE;--;---;Dallas United States Naval Air Station;TX;United States;4;32-44N;096-58W;;;150;; +KNBG;--;---;New Orleans, Naval Air Station - Alvin Callender Field;LA;United States;4;29-49-31N;090-02-06W;;;1;; +KNBJ;--;---;Barin, Barin Field, Naval Air Facility;AL;United States;4;30-23-28N;087-37-57W;30-23-20N;087-38-13W;13;14; +KNBQ;--;---;Kings Bay, Naval Station;GA;United States;4;30-47-39N;081-33-25W;30-47-05N;081-34-14W;8;10; +KNBT;--;---;Piney Island, Bt-11 Bombing Range;NC;United States;4;35-01-20N;076-27-45W;34-58-00N;076-23-11W;5;3; +KNCA;--;---;Jacksonville, New River, Marine Corps Air Station;NC;United States;4;34-42-21N;077-26-27W;34-42-26N;077-26-07W;7;4; +KNDZ;--;---;Milton, Whiting Field South;FL;United States;4;30-41-50N;087-01-12W;30-42-12N;087-00-54W;54;62; +KNED;--;---;Winner, Wiley Field;SD;United States;4;43-23-22N;099-50-34W;43-23-17N;099-50-40W;619;621; +KNEL;72;409;Lakehurst Naval Air Station;NJ;United States;4;40-02N;074-19W;40-02N;074-19W;31;24; +KNEW;--;---;New Orleans, New Orleans Lakefront Airport;LA;United States;4;30-02-58N;090-01-44W;30-02-31N;090-01-32W;2;3; +KNEX;--;---;Charleston Nise;SC;United States;4;32-55N;079-59W;;;12;; +KNFE;--;---;Fentress, Naval Auxiliary Landing Field;VA;United States;4;36-42-03N;076-07-42W;36-42-20N;076-07-40W;3;4; +KNFG;--;---;Oceanside, Camp Pendleton, Marine Corps Air Station;CA;United States;4;33-18-17N;117-21-14W;33-18-25N;117-21-13W;23;23; +KNFJ;--;---;Milton, Choctaw Pensacola, Naval Auxiliary Landing Field;FL;United States;4;30-30-42N;086-57-14W;30-30-45N;086-57-19W;33;38; +KNFL;--;---;Fallon, Naval Air Station;NV;United States;4;39-25-56N;118-41-08W;39-25-16N;118-42-34W;1199;1199; +KNFW;--;---;Fort Worth, Naval Air Station;TX;United States;4;32-45-57N;097-26-00W;32-46-36N;097-25-54W;198;187; +KNGP;--;---;Corpus Christi, Corpus Christi Naval Air Station/Truax Field;TX;United States;4;27-41-33N;097-17-28W;;;6;; +KNGU;--;---;Norfolk, Naval Air Station;VA;United States;4;36-56-01N;076-17-45W;36-56-21N;076-17-34W;4;8; +KNGW;--;---;Corpus Christi, NOLF Cabaniss Field Naval Outlying Field;TX;United States;4;27-42-01N;097-26-04W;;;9;; +KNGZ;74;506;Alameda Naval Air Station;CA;United States;4;37-47N;122-19W;;;4;9; +KNHK;72;404;Patuxent River, Naval Air Station;MD;United States;4;38-16-43N;076-24-50W;38-17-20N;076-25-23W;12;6; +KNHZ;74;392;Brunswick, Naval Air Station;ME;United States;4;43-54-01N;069-56-06W;43-53-52N;069-56-06W;22;23; +KNID;74;612;China Lake, Naval Air Facility;CA;United States;4;35-41-11N;117-41-24W;35-41-15N;117-40-47W;696;682; +KNIP;--;---;Jacksonville, Naval Air Station;FL;United States;4;30-14-03N;081-40-29W;30-13-45N;081-40-03W;6;8; +KNIS;--;---;Cherry Point, Marine Corps Air Station;NC;United States;4;34-53-11N;076-51-47W;34-54-35N;076-53-16W;8;9; +KNJK;72;281;El Centro, Naval Air Facility;CA;United States;4;32-49-30N;115-39-38W;32-49-28N;115-40-22W;-13;-13; +KNJM;--;---;Swansboro, Bogue Field, Marine Corps Auxiliary Landing Field;NC;United States;4;34-41-34N;077-01-46W;34-41-34N;077-01-46W;6;6; +KNJW;--;---;Meridian, Joe Williams Naval Outlying Field;MS;United States;4;32-47-46N;088-49-54W;32-47-38N;088-49-58W;165;163; +KNKT;72;309;Cherry Point, Marine Corps Air Station;NC;United States;4;34-53-52N;076-52-51W;34-54-35N;076-53-16W;8;9; +KNKX;72;293;San Diego, Miramar MCAS/Mitscher Field Airport;CA;United States;4;32-52-06N;117-08-33W;32-52-28N;117-08-20W;146;146; +KNLC;74;702;Lemoore, Naval Air Station;CA;United States;4;36-18-13N;119-56-17W;36-19-40N;119-56-50W;71;72; +KNLT;--;---;Atlantic, Atlantic Field Outlying Landing Field;NC;United States;4;34-52-45N;076-20-10W;34-52-35N;076-20-50W;4;4; +KNMM;--;---;Meridian, Meridian Naval Air Station - McCain Field;MS;United States;4;32-33-07N;088-33-19W;32-33N;088-33W;97;86; +KNMT;--;---;McMullen, McMullen Target Site;TX;United States;4;28-14-10N;098-43-27W;28-14-10N;098-43-25W;79;85; +KNNZ;--;---;Point Sur;CA;United States;4;36-18N;121-53W;;;34;; +KNOG;--;---;Orange Grove, Naval Auxiliary Landing Field;TX;United States;4;27-53-21N;098-02-39W;27-53-58N;098-02-54W;78;91; +KNOW;74;201;Port Angeles Coast Guard Air Station;WA;United States;4;48-08N;123-24W;;;5;9; +KNPA;--;---;Pensacola, Naval Air Station;FL;United States;4;30-21-22N;087-19-24W;30-20-51N;087-19-40W;9;10; +KNQA;--;---;Millington, Millington Municipal Airport;TN;United States;4;35-21-24N;089-52-13W;;;98;; +KNQI;--;---;Kingsville, Naval Air Station;TX;United States;4;27-30-11N;097-48-42W;27-30-20N;097-48-51W;15;15; +KNQX;--;---;Key West, Naval Air Station;FL;United States;4;24-34-46N;081-41-02W;27-34-49N;081-41-18W;1;6; +KNRA;--;---;Coupeville, Outlying Landing Field;WA;United States;4;48-11-26N;122-37-50W;48-11-27N;122-37-45W;60;59; +KNRB;--;---;Mayport, Mayport Naval Station, Adm David L. McDonald Field;FL;United States;4;30-23-45N;081-25-21W;30-23-33N;081-25-02W;5;4; +KNRC;--;---;Crows Landing Naval Auxiliary Landing Field;CA;United States;4;37-24N;121-06W;;;50;; +KNRS;--;---;Imperial Beach, Naval Auxiliary Landing Field;CA;United States;4;32-33-47N;117-06-36W;;;7;5; +KNSE;--;---;Milton, Whiting Field Naval Air Station North;FL;United States;4;30-43-27N;087-01-19W;30-43-04N;087-01-21W;61;60; +KNSI;72;291;San Nicholas Island;CA;United States;4;33-14-05N;119-27-10W;33-14-25N;119-27-31W;153;153; +KNTD;72;391;Point Mugu, Naval Air Warfare Center;CA;United States;4;34-07-26N;119-07-18W;34-06-46N;119-07-04W;3;2; +KNTU;--;---;Virginia Beach, Oceana, Naval Air Station;VA;United States;4;36-49-16N;076-01-42W;36-49-07N;076-02-00W;6;6; +KNUC;--;---;San Clemente Island, San Clemente Island NALF;CA;United States;4;33-01-24N;118-35-13W;33-01-19N;118-35-01W;55;62; +KNUI;--;---;St. Inigoes, Webster Field, Naval Electronic Systems Engineering Activity;MD;United States;4;38-08-56N;076-25-12W;38-08-30N;076-25-45W;6;6; +KNUQ;74;509;Mountain View, Moffett Field;CA;United States;4;37-24-21N;122-02-53W;37-24-32N;122-02-59W;10;19; +KNUW;--;---;Whidbey Island, Naval Air Station;WA;United States;4;48-20-57N;122-39-02W;48-20-45N;122-40-06W;14;8; +KNVT;--;---;Corpus Christi, NOLF Waldron Field;TX;United States;4;27-38-01N;097-18-47W;;;8;; +KNXP;--;---;Twenty-Nine Palms, Marine Corps Air-Ground Combat Center;CA;United States;4;34-17-40N;116-08-42W;34-17-41N;116-09-08W;626;627; +KNXX;--;---;Willow Grove, Naval Air Station;PA;United States;4;40-11-35N;075-08-40W;40-12-15N;075-08-20W;110;101; +KNYC;--;---;New York City, Central Park;NY;United States;4;40-47-00N;073-58-00W;;;47;48; +KNYG;--;---;Quantico, Marine Corps Air Facility;VA;United States;4;38-30-45N;077-17-30W;38-32-20N;077-18-25W;3;3; +KNYL;--;---;Yuma, Marine Corps Air Station;AZ;United States;4;32-37-25N;113-45-50W;32-39-34N;114-35-35W;64;63; +KNZC;--;---;Cecil, Naval Air Station;FL;United States;4;30-12-44N;081-52-13W;30-13-16N;081-52-51W;24;26; +KNZY;--;---;San Diego, North Island, Naval Air Station;CA;United States;4;32-41-27N;117-12-32W;32-47-08N;117-11-49W;7;14; +KO18;--;---;Hanford, Hanford Municipal Airport;CA;United States;4;36-19-03N;119-37-46W;36-18-52N;119-37-39W;75;74; +KO64;72;590;Fort Bragg;CA;United States;4;39-24N;123-49W;;;19;; +KO72;--;---;Point Cabrillo;CA;United States;4;39-21N;123-49W;;;20;; +KO87;--;---;Shelter Cove;CA;United States;4;40-01N;124-04W;;;21;; +KOAJ;--;---;Jacksonville, Albert J Ellis Airport;NC;United States;4;34-50N;077-37W;;;29;; +KOAK;72;493;Oakland, Metro Oakland International Airport;CA;United States;4;37-43-10N;122-14-07W;37-42-45N;122-12-48W;1;26;P +KOAX;72;558;Valley;NE;United States;4;41-19N;096-22W;41-19N;096-22W;350;350; +KOCF;--;---;Ocala, Ocala International Airport-Jim Taylor Field;FL;United States;4;29-10N;082-13W;;;27;; +KOCH;--;---;Nacogdoches, A L Mangham Jr. Regional Airport;TX;United States;4;31-35N;094-43W;;;108;; +KOCW;--;---;Washington, Warren Field Airport;NC;United States;4;35-34-14N;077-02-59W;;;12;; +KODO;--;---;Odessa, Odessa-Schlemeyer Field;TX;United States;4;31-55-17N;102-23-30W;31-55-08N;102-23-32W;914;902; +KODX;--;---;Ord, Evelyn Sharp Field Airport;NE;United States;4;41-37-27N;098-57-09W;;;631;; +KOEB;--;---;Coldwater, Branch County Memorial Airport;MI;United States;4;41-56N;085-03-09W;;;292;; +KOEO;--;---;Osceola, L O Simenstad Municipal Airport;WI;United States;4;45-18-31N;092-41-24W;;;275;; +KOFF;72;554;Omaha / Offutt Air Force Base;NE;United States;4;41-07N;095-54W;;;319;315; +KOFK;72;556;Norfolk, Stefan Memorial Airport;NE;United States;4;41-58-50N;097-26-13W;41-59-05N;097-25-48W;479;470;P +KOFP;--;---;Ashland, Hanover County Municipal Airport;VA;United States;4;37-42-29N;077-26-04W;37-42-25N;077-26-18W;62;62; +KOGA;--;---;Ogallala, Searle Field Airport;NE;United States;4;41-07-11N;101-46-08W;;;999;; +KOGB;--;---;Orangeburg, Orangeburg Municipal Airport;SC;United States;4;33-27-50N;080-51-13W;33-27-59N;080-51-18W;60;59; +KOGD;72;575;Ogden, Ogden-Hinckley Airport;UT;United States;4;41-11-37N;112-00-59W;41-11-36N;112-00-25W;1362;1353; +KOGS;--;---;Ogdensburg International;NY;United States;4;44-41N;075-28W;;;91;; +KOHX;--;---;Nashville NEXRAD;TN;United States;4;36-45N;086-34W;;;206;; +KOJA;--;---;Weatherford, Thomas P Stafford Airport;OK;United States;4;35-32-41N;098-40-06W;;;489;; +KOJC;--;---;Olathe, Johnson County Executive Airport;KS;United States;4;38-51-00N;094-44-21W;38-50-51N;094-44-14W;334;326; +KOKB;--;---;Oceanside, Oceanside Municipal Airport;CA;United States;4;33-13-05N;117-21-05W;33-13-03N;117-21-07W;9;8; +KOKC;72;353;Oklahoma City, Will Rogers World Airport;OK;United States;4;35-23-19N;097-36-01W;35-24-05N;097-36-04W;394;390;P +KOKH;--;---;Oceanside, Oceanside Municipal Airport;CA;United States;4;33-13-10N;117-20-58W;33-13-03N;117-21-07W;8;8; +KOKK;--;---;Kokomo, Kokomo Municipal Airport;IN;United States;4;40-32N;086-04W;;;253;; +KOKM;--;---;Okmulgee, Okmulgee Municipal Airport;OK;United States;4;35-40-05N;095-56-55W;;;220;; +KOKV;--;---;Winchester Regional;VA;United States;4;39-09N;078-09W;;;222;; +KOKX;--;---;N. Y. City NEXRAD;NY;United States;4;40-52N;072-52W;;;60;; +KOLD;--;---;Old Town / Dewitt Field;ME;United States;4;44-57N;068-40W;;;39;; +KOLE;--;---;Olean Municipal;NY;United States;4;42-14N;078-22W;;;651;; +KOLF;--;---;Wolf Point, Clayton Airport;MT;United States;4;48-05-40N;105-34-38W;48-05-43N;105-34-21W;605;604; +KOLM;72;792;Olympia, Olympia Airport;WA;United States;4;46-58-24N;122-54-12W;46-58-30N;122-53-46W;62;58; +KOLS;--;---;Nogales, Nogales International Airport;AZ;United States;4;31-25-15N;110-50-45W;31-25-05N;110-50-57W;1198;1184; +KOLU;--;---;Columbus, Columbus Municipal Airport;NE;United States;4;41-27N;097-20W;;;440;; +KOLV;--;---;Olive Branch, Olive Branch Airport;MS;United States;4;34-58-44N;089-47-13W;;;122;; +KOLY;--;---;Olney-Noble, Olney-Noble Airport;IL;United States;4;38-43-19N;088-10-35W;;;147;; +KOLZ;--;---;Oelwein, Oelwein Municipal Airport;IA;United States;4;42-40-51N;091-58-28W;;;328;; +KOMA;72;550;Omaha, Eppley Airfield;NE;United States;4;41-18-37N;095-53-57W;41-18-03N;095-53-55W;299;312;P +KOMH;--;---;Orange, Orange County Airport;VA;United States;4;38-14-50N;78-02-44W;;;142;; +KOMK;--;---;Omak, Omak Airport;WA;United States;4;48-27-51N;119-31-05W;48-27-40N;119-30-54W;397;395; +KOMN;--;---;Ormond Beach, Ormond Beach Municipal Airport;FL;United States;4;29-18-04N;081-06-49W;;;9;; +KONA;--;---;Winona, Winona Municipal Airport-Max Conrad Field;MN;United States;4;44-05N;091-42W;;;200;; +KONL;--;---;O'Neill / Baker Field;NE;United States;4;42-28N;098-41W;;;619;; +KONM;72;362;Socorro Municipal;NM;United States;4;34-01N;106-54W;;;1478;; +KONO;--;---;Ontario, Ontario Municipal Airport;OR;United States;4;44-01-10N;117-00-35W;44-01-24N;117-00-46W;667;667; +KONP;--;---;Newport, Newport Municipal Airport;OR;United States;4;44-34-49N;124-03-29W;;;49;; +KONT;--;---;Ontario, Ontario International Airport;CA;United States;4;34-03-12N;117-34-33W;34-03-05N;117-35-55W;287;275; +KONX;--;---;Currituck, Currituck County Airport;NC;United States;4;36-23-56N;076-00-58W;;;5;; +KONZ;--;---;Detroit/Grosse Ile, Grosse Ile Airport;MI;United States;4;42-05-55N;083-09-40W;;;180;; +KOOA;--;---;Oskaloosa, Oskaloosa Municipal Airport;IA;United States;4;41-13-34N;092-29-37W;;;256;; +KOPF;--;---;Miami, Opa Locka Airport;FL;United States;4;25-54-36N;080-16-59W;25-54-35N;080-16-23W;3;16; +KOPN;--;---;Thomaston, Thomaston-Upson County Airport;GA;United States;4;32-57-18N;084-15-52W;;;243;; +KOQT;--;---;Oak Ridge;TN;United States;4;36-01-22N;84-14W;;;279;; +KOQU;--;---;N. Kingston / Quonset;RI;United States;4;41-36N;071-25W;;;6;; +KORB;--;---;Orr;MN;United States;4;48-01N;092-52W;;;397;; +KORC;--;---;Orange City;IA;United States;4;42-59N;096-04W;;;431;; +KORD;72;530;Chicago, Chicago-O'Hare International Airport;IL;United States;4;41-58-47N;087-54-16W;42-00N;087-53W;203;200;P +KORE;--;---;Orange, Orange Municipal Airport;MA;United States;4;42-34-18N;072-16-39W;42-34-20N;072-16-31W;169;164; +KORF;72;308;Norfolk, Norfolk International Airport;VA;United States;4;36-54-13N;076-11-31W;36-53-28N;076-17-06W;8;14;P +KORG;--;---;Orange, Orange County Airport;TX;United States;4;30-04-09N;093-48-13W;;;4;; +KORH;--;---;Worcester, Worcester Regional Airport;MA;United States;4;42-16-14N;071-52-23W;42-16-10N;071-52-18W;307;304; +KORL;--;---;Orlando, Orlando Executive Airport;FL;United States;4;28-32-47N;081-20-09W;28-32-37N;081-19-44W;34;37; +KORS;--;---;Eastsound, Orcas Island Airport;WA;United States;4;48-42-29N;122-54-37W;;;9;; +KOSA;--;---;Mount Pleasant, Mount Pleasant Regional Airport;TX;United States;4;33-05-43N;094-57-41W;;;111;; +KOSC;--;---;Oscoda, Oscoda-Wurtsmith Airport;MI;United States;4;44-27N;083-22W;;;193;; +KOSH;--;---;Oshkosh, Wittman Regional Airport;WI;United States;4;43-58-00N;088-33-29W;43-58-54N;088-33-37W;246;248; +KOSU;--;---;Columbus, Ohio State University Airport;OH;United States;4;40-04-41N;083-04-41W;40-04-30N;083-04-16W;275;280; +KOTG;--;---;Worthington, Worthington Municipal Airport;MN;United States;4;43-39N;095-35W;;;480;; +KOTH;--;---;North Bend, North Bend Municipal Airport;OR;United States;4;43-25N;124-15W;;;5;; +KOTM;--;---;Ottumwa, Ottumwa Industrial Airport;IA;United States;4;41-06-24N;092-26-53W;41-06-24N;092-26-44W;258;256; +KOUN;72;357;Norman / Max Westheimer;OK;United States;4;35-13N;097-27W;35-13N;097-27W;357;357; +KOVE;--;---;Oroville, Oroville Municipal Airport;CA;United States;4;39-29-41N;121-37-13W;39-29-42N;121-36-48W;57;58; +KOVL;--;---;Olivia, Olivia Regional Airport;MN;United States;4;44-46-43N;095-01-58W;;;328;; +KOVS;--;---;Boscobel, Boscobel Airport;WI;United States;4;43-09-22N;090-40-39W;43-08-42N;090-42-07W;205;202; +KOWA;--;---;Owatonna, Owatonna Degner Regional Airport;MN;United States;4;44-07N;093-15W;;;349;; +KOWB;--;---;Owensboro, Owensboro-Daviess County Airport;KY;United States;4;37-44-24N;087-10-00W;;;124;; +KOWD;--;---;Norwood, Norwood Memorial Airport;MA;United States;4;42-11-27N;071-10-26W;42-11-10N;071-10-39W;15;19; +KOWY;--;---;Owyhee;NV;United States;4;41-57N;116-06W;;;1645;; +KOXB;--;---;Ocean City, Ocean City Municipal Airport;MD;United States;4;38-18-38N;075-07-26W;;;4;; +KOXC;--;---;Oxford, Waterbury-Oxford Airport;CT;United States;4;41-29N;073-08W;;;221;; +KOXR;--;---;Oxnard, Oxnard Airport;CA;United States;4;34-12-02N;119-12-11W;34-11-58N;119-12-20W;13;20; +KOXV;--;---;Knoxville;IA;United States;4;41-18N;093-07W;;;283;; +KOZR;--;---;Cairns Army Air Field / Ozark;AL;United States;4;31-17N;085-43W;;;91;; +KOZW;--;---;Howell, Livingston County Airport;MI;United States;4;42-37-46N;083-59-03W;;;293;; +KP00;--;---;Tenneco Platform;LA;United States;4;28-00N;093-00W;;;15;; +KP01;--;---;Ajo Municipal;AZ;United States;4;32-27N;112-52W;;;444;; +KP06;--;---;Bullhead City;AZ;United States;4;35-10N;114-34W;;;167;; +KP07;74;730;Sanderson;TX;United States;4;30-10N;102-25W;;;865;865;P +KP11;72;758;Devils Lake;ND;United States;4;48-06N;098-52W;;;439;443;P +KP21;--;---;Main Pass B68;LA;United States;4;29-40N;088-53W;;;1;; +KP22;--;---;Vermilion B131;LA;United States;4;29-04N;092-11W;;;1;; +KP24;72;765;Roseglen;ND;United States;4;47-45N;101-50W;;;624;624;P +KP25;--;---;Vermilion B215;LA;United States;4;28-42N;092-19W;;;1;; +KP26;--;---;Grand Isle B95;LA;United States;4;28-30N;090-07W;;;1;; +KP28;72;452;Medicine Lodge, Medicine Lodge;KS;United States;4;37-17-02N;098-33-10W;;;469;469; +KP30;--;---;West Cameron;LA;United States;4;28-20N;093-01W;;;24;; +KP35;72;540;Spickard;MO;United States;4;40-15N;093-43W;;;271;270;P +KP38;72;487;Caliente;NV;United States;4;37-36-44N;114-31-35W;37-36-44N;114-31-35W;1333;1333;P +KP39;72;750;Pequot Lake;MN;United States;4;46-36N;094-19W;;;390;390; +KP43;--;---;Ventura Harbor;CA;United States;4;34-15N;119-15W;;;7;; +KP44;--;---;Santa Barbara Harbor;CA;United States;4;34-24N;119-42W;;;8;; +KP47;--;---;Chetco River Coast Guard Station;OR;United States;4;42-09N;124-16W;;;6;; +KP53;--;---;Munising, Munising Lakeshore Observation;MI;United States;4;46-24-42N;086-39-03W;;;;; +KP58;--;---;Port Hope;MI;United States;4;44-01-19N;082-47-35W;;;179;179; +KP59;--;---;Copper Harbor;MI;United States;4;47-28-01N;087-52-30W;;;190;190; +KP60;--;---;Yellowstone Lake;WY;United States;4;44-32-40N;110-25-16W;;;2388;2388; +KP61;--;---;Grand Marais;MN;United States;4;47-44-50N;090-20-40W;;;185;185; +KP65;--;---;Lukeville;AZ;United States;4;31-53N;112-49W;;;511;; +KP67;--;---;Lidgerwood Remote Automatic Meteorological Observing System;ND;United States;4;46-06N;097-09W;;;351;; +KP68;--;---;Eureka;NV;United States;4;39-36-05N;116-00-20W;;;1812;1809; +KP69;--;---;Lowell;ID;United States;4;46-08-39N;115-35-47W;;;480;480; +KP75;--;---;Manistique;MI;United States;4;45-57-00N;086-13-47W;;;178;178; +KP88;--;---;Rome Automatic Meteorological Observing System;OR;United States;4;42-54N;117-39W;;;1162;; +KP92;--;---;Salt Point;LA;United States;4;29-33-44N;091-31-32W;;;0;0; +KPAE;--;---;Everett, Snohomish County Airport;WA;United States;4;47-55-23N;122-16-57W;47-54-25N;122-16-42W;184;180; +KPAH;72;435;Paducah, Barkley Regional Airport;KY;United States;4;37-03-23N;088-46-26W;37-04-07N;088-46-20W;125;118; +KPAM;74;775;Tyndall Air Force Base;FL;United States;4;30-04N;085-35W;30-04N;085-35W;5;13; +KPAO;--;---;Palo Alto Airport;CA;United States;4;37-28N;122-07W;;;2;; +KPAQ;--;---;Palmer, Palmer Municipal Airport;AK;United States;4;61-35-46N;149-05-30W;61-35-52N;149-05-29W;70;69; +KPAT;--;---;Pathfinder Hill;WY;United States;4;42-34N;106-51W;;;1912;; +KPBF;--;---;Pine Bluff, Grider Field Airport;AR;United States;4;34-10-30N;091-56-05W;34-10-44N;091-56-16W;63;62; +KPBG;--;---;Plattsburgh Air Force Base;NY;United States;4;44-39N;073-28W;;;72;; +KPBH;--;---;Phillips / Price County;WI;United States;4;45-42N;090-24W;;;449;; +KPBI;72;203;West Palm Beach, Palm Beach International Airport;FL;United States;4;26-41-05N;080-05-58W;26-40-40N;080-06-30W;5;6;P +KPBV;--;---;St. George Island, New St. George Airport;AK;United States;4;56-34-37N;169-39-47W;56-34-37N;169-39-47W;27;34; +KPBZ;--;---;Pittsburgh Nexrad;PA;United States;4;40-32N;080-13W;;;386;; +KPCM;--;---;Plant City, Plant City Municipal Airport;FL;United States;4;28-00N;082-09W;;;47;; +KPCU;--;---;Picayune / Pearl River;MS;United States;4;30-31N;089-42W;;;19;; +KPCZ;--;---;Waupaca, Waupaca Municipal Airport;WI;United States;4;44-20-01N;089-00-55W;;;252;; +KPDC;--;---;Prairie Du Chien, Prairie Du Chien Municipal Airport;WI;United States;4;43-01-19N;091-07-29W;;;201;; +KPDK;--;---;Atlanta, De Kalb-Peachtree Airport;GA;United States;4;33-52-42N;084-17-53W;33-52-30N;084-17-06W;305;302; +KPDT;72;688;Pendleton, Eastern Oregon Regional At Pendleton Airport;OR;United States;4;45-41-54N;118-50-03W;45-41-22N;118-50-18W;455;458;P +KPDX;72;698;Portland, Portland International Airport;OR;United States;4;45-35-27N;122-36-01W;45-35-50N;122-36-21W;8;7;P +KPEA;--;---;Pella, Pella Municipal Airport;IA;United States;4;41-24N;092-56W;;;270;; +KPEF;--;---;Peterson Air Force Base;CO;United States;4;38-49N;104-44W;;;1876;; +KPEO;--;---;Penn Yan, Penn Yan Airport;NY;United States;4;42-38-35N;077-02-58W;42-38-37N;077-03-32W;275;256; +KPEQ;--;---;Pecos, Pecos Municipal Airport;TX;United States;4;31-22-56N;103-30-38W;;;796;; +KPEX;--;---;Paynesville, Paynesville Municipal Airport;MN;United States;4;45-22-20N;094-44-47W;;;360;; +KPFC;--;---;Pacific City State;OR;United States;4;45-12N;123-58W;;;2;; +KPFN;--;---;Panama City, Panama City-Bay County International Airport;FL;United States;4;30-12-27N;085-41-06W;30-12-22N;085-40-54W;6;12; +KPGA;72;371;Page, Page Municipal Airport;AZ;United States;4;36-55-14N;111-26-53W;36-55-15N;111-26-53W;1314;1307;P +KPGD;--;---;Punta Gorda, Charlotte County Airport;FL;United States;4;26-55-04N;081-59-37W;26-54-57N;081-59-53W;7;7; +KPGL;--;---;Pascagoula / Jackson;MS;United States;4;30-24N;088-29W;;;3;; +KPGV;--;---;Pitt-Greenville Airport;NC;United States;4;35-38N;077-24W;;;8;; +KPHD;--;---;New Philadelphia, Harry Clever Field;OH;United States;4;40-28-19N;081-25-25W;40-28-13N;081-25-03W;272;272; +KPHF;--;---;Newport News, Newport News / Williamsburg International Airport;VA;United States;4;37-07-55N;076-29-35W;37-07-54N;076-30-04W;13;12; +KPHL;72;408;Philadelphia, Philadelphia International Airport;PA;United States;4;39-52-06N;075-13-52W;39-52-34N;075-14-37W;6;18;P +KPHN;--;---;St. Clair County International;MI;United States;4;42-55N;082-32W;;;198;; +KPHP;--;---;Philip, Philip Airport;SD;United States;4;44-03-04N;101-36-04W;44-03-08N;101-36-00W;673;672; +KPHX;72;278;Phoenix, Phoenix Sky Harbor International Airport;AZ;United States;4;33-26-03N;112-03-04W;33-26-07N;112-00-33W;345;336;P +KPIA;72;532;Peoria, Greater Peoria Regional Airport;IL;United States;4;40-40-03N;089-41-02W;40-39-59N;089-41-15W;201;205;P +KPIB;--;---;Hattiesburg/Laurel, Hattiesburg-Laurel Regional Airport;MS;United States;4;31-28N;089-20W;;;91;; +KPIE;--;---;St. Petersburg / Clearwater, St. Petersburg / Clearwater International Airport;FL;United States;4;27-54-44N;082-41-08W;27-54-14N;082-41-30W;3;4; +KPIH;72;578;Pocatello, Pocatello Regional Airport;ID;United States;4;42-55-13N;112-34-16W;42-54-16N;112-35-24W;1356;1359;P +KPIL;--;---;Port Isabel, Port Isabel-Cameron County Airport;TX;United States;4;26-09-33N;097-20-15W;26-09-34N;097-20-21W;5;5; +KPIN;--;---;Piney Creek;WY;United States;4;44-34N;106-49W;;;1392;; +KPIR;--;---;Pierre, Pierre Regional Airport;SD;United States;4;44-22-58N;100-17-09W;44-22-49N;100-17-32W;531;526; +KPIT;72;520;Pittsburgh, Pittsburgh International Airport;PA;United States;4;40-30-14N;080-15-59W;40-29-41N;080-11-25W;366;357;P +KPJB;--;---;Payson;AZ;United States;4;34-16N;111-21W;;;1571;; +KPJI;--;---;Point Judith Coast Guard Station;RI;United States;4;41-21N;071-28W;;;2;; +KPKB;--;---;Parkersburg, Mid-Ohio Valley Regional Airport;WV;United States;4;39-20-42N;081-26-21W;;;262;; +KPKD;--;---;Park Rapids, Park Rapids Municipal Airport;MN;United States;4;46-54-02N;095-04-04W;46-53-55N;095-03-51W;439;442; +KPKF;72;741;Park Falls;WI;United States;4;45-56N;090-27W;;;462;469;P +KPKV;--;---;Port Lavaca, Calhoun County Airport;TX;United States;4;28-39-14N;096-40-52W;;;9;; +KPLB;--;---;Plattsburgh, Clinton County Airport;NY;United States;4;44-40-56N;073-31-40W;44-41-29N;073-31-19W;113;106; +KPLN;--;---;Pellston, Pellston Regional Airport of Emmet County Airport;MI;United States;4;45-34-15N;084-47-48W;45-34-08N;084-47-10W;220;217; +KPMD;72;382;Palmdale, Palmdale Production Flight Plant;CA;United States;4;34-37-47N;118-04-53W;34-37-12N;118-04-50W;775;780; +KPMP;--;---;Pompano Beach, Pompano Beach Airpark;FL;United States;4;26-14-44N;080-06-41W;26-14-35N;080-06-51W;6;6; +KPMV;--;---;Plattsmouth, Plattsmouth Municipal Airport;NE;United States;4;40-57-00N;095-55-04W;;;366;; +KPNA;--;---;Pinedale, Ralph Wenz Field Airport;WY;United States;4;42-47-43N;109-48-25W;;;2160;; +KPNC;--;---;Ponca City, Ponca City Municipal Airport;OK;United States;4;36-43-50N;097-05-59W;36-43-45N;097-06-04W;307;308; +KPNE;--;---;Philadelphia, Northeast Philadelphia Airport;PA;United States;4;40-04-44N;075-00-49W;40-04-31N;075-00-35W;36;28; +KPNM;--;---;Princeton;MN;United States;4;45-33N;093-36W;;;298;; +KPNS;--;---;Pensacola, Pensacola Regional Airport;FL;United States;4;30-28-41N;087-11-13W;30-28-37N;087-11-33W;36;38; +KPNT;--;---;Pontiac, Pontiac Municipal Airport;IL;United States;4;40-55-25N;088-37-31W;;;201;; +KPOB;72;303;Pope Air Force Base;NC;United States;4;35-10N;079-02W;35-10N;079-02W;61;61; +KPOC;--;---;La Verne / Brackett;CA;United States;4;34-06N;117-47W;;;308;; +KPOE;72;239;Fort Polk, Polk AAF Ft Polk;LA;United States;4;31-03N;093-11-38W;;;101;; +KPOF;--;---;Poplar Bluff, Poplar Bluff Municipal Airport;MO;United States;4;36-46-14N;090-19-20W;;;100;100; +KPOU;--;---;Poughkeepsie, Dutchess County Airport;NY;United States;4;41-37-36N;073-53-03W;41-37-28N;073-52-57W;50;46; +KPPA;--;---;Pampa, Perry Lefors Field Airport;TX;United States;4;35-36-46N;100-59-46W;;;989;; +KPPF;--;---;Parsons, Tri-City Airport;KS;United States;4;37-19-40N;095-30-15W;37-20-17N;095-30-31W;274;274; +KPPQ;--;---;Pittsfield, Pittsfield Penstone Municipal Airport;IL;United States;4;39-38-20N;090-46-42W;;;216;; +KPQI;72;713;Presque Isle;ME;United States;4;46-41N;068-03W;;;163;146; +KPQL;--;---;Pascagoula, Lott International Airport;MS;United States;4;30-27-49N;088-31-55W;30-27-45N;088-31-36W;5;6; +KPQN;--;---;Pipestone, Pipestone Municipal Airport;MN;United States;4;43-59N;096-19W;;;529;; +KPRB;--;---;Paso Robles, Paso Robles Municipal Airport;CA;United States;4;35-40-22N;120-37-37W;35-40-19N;120-38-13W;255;245; +KPRC;--;---;Prescott, Love Field;AZ;United States;4;34-38-57N;112-25-20W;34-38-58N;112-25-14W;1537;1524; +KPRG;--;---;Paris, Edgar County Airport;IL;United States;4;39-42-01N;087-40-11W;;;199;; +KPRX;--;---;Paris / Cox Field;TX;United States;4;33-38N;095-27W;;;167;; +KPSC;--;---;Pasco, Tri-Cities Airport;WA;United States;4;46-16-11N;119-07-00W;46-15-37N;119-06-52W;124;121; +KPSF;--;---;Pittsfield, Pittsfield Municipal Airport;MA;United States;4;42-25-38N;073-17-21W;42-25-32N;073-17-30W;364;355; +KPSK;--;---;Dublin / New River Valley;VA;United States;4;37-08N;080-41W;;;642;; +KPSM;--;---;Pease Air Force Base / Portsmouth;NH;United States;4;43-05N;070-49W;;;31;; +KPSN;--;---;Palestine, Palestine Municipal Airport;TX;United States;4;31-46-46N;095-42-22W;;;129;; +KPSP;--;---;Palm Springs, Palm Springs Regional Airport;CA;United States;4;33-49-20N;116-30-13W;33-49-35N;116-30-26W;140;135; +KPSX;--;---;Palacios, Palacios Municipal Airport;TX;United States;4;28-43-39N;096-15-03W;;;5;; +KPTB;--;---;Petersburg, Dinwiddie County Airport;VA;United States;4;37-11N;077-31W;;;59;; +KPTK;--;---;Pontiac, Oakland County International Airport;MI;United States;4;42-39-47N;083-24-36W;42-39-46N;083-25-00W;299;300; +KPTN;--;---;Patterson Memorial;LA;United States;4;29-43N;091-20W;;;3;; +KPTT;74;543;Pratt Municipal;KS;United States;4;37-42N;098-45W;37-42N;098-45W;595;595; +KPTV;--;---;Porterville, Porterville Municipal Airport;CA;United States;4;36-02N;119-04W;;;135;; +KPTW;--;---;Pottstown, Pottstown Limerick Airport;PA;United States;4;40-14-18N;075-33-26W;40-14-31N;075-33-22W;89;89; +KPUB;72;464;Pueblo, Pueblo Memorial Airport;CO;United States;4;38-17-24N;104-29-54W;38-17-03N;104-29-43W;1440;1420;P +KPUC;72;470;Price, Carbon County Airport;UT;United States;4;39-36-33N;110-45-17W;39-36-41N;110-44-55W;1805;2091;P +KPUM;--;---;Pumpkin Vine;WY;United States;4;41-03N;105-28W;;;2420;; +KPUW;--;---;Pullman / Moscow, Pullman / Moscow Regional Airport;WA;United States;4;46-44-38N;117-06-35W;46-44-37N;117-06-48W;779;773; +KPUX;--;---;Pueblo NEXRAD;CO;United States;4;38-28N;104-11W;;;1620;; +KPVC;--;---;Provincetown, Provincetown Municipal Airport;MA;United States;4;42-04N;070-13W;;;2;; +KPVD;72;507;Providence, Theodore Francis Green State Airport;RI;United States;4;41-43-26N;071-25-41W;41-43-53N;071-25-43W;16;16; +KPVJ;--;---;Pauls Valley, Pauls Valley Municipal Airport;OK;United States;4;34-42-40N;097-13-24W;;;295;; +KPVU;--;---;Provo, Provo Municipal Airport;UT;United States;4;40-13N;111-43W;;;1371;; +KPVW;--;---;Plainview, Hale County Airport;TX;United States;4;34-10-05N;101-43-02W;;;1028;; +KPWA;--;---;Oklahoma City, Wiley Post Airport;OK;United States;4;35-32-28N;097-38-48W;35-31-52N;097-38-34W;396;397; +KPWC;--;---;Pine River, Pine River Regional Airport;MN;United States;4;46-43-30N;094-23-01W;;;395;; +KPWG;--;---;Waco, Mc Gregor Executive Airport;TX;United States;4;31-29N;097-19W;;;180;; +KPWK;--;---;Chicago / Wheeling, Pal-Waukee Airport;IL;United States;4;42-07-15N;087-54-17W;42-06-37N;087-54-11W;197;203; +KPWM;72;606;Portland, Portland International Jetport;ME;United States;4;43-38-32N;070-18-16W;43-38-53N;070-18-09W;22;15;P +KPWT;--;---;Bremerton, Bremerton National Airport;WA;United States;4;47-30N;122-45W;;;134;; +KPYM;--;---;Plymouth, Plymouth Municipal Airport;MA;United States;4;41-54-31N;070-43-41W;41-54-34N;070-43-54W;45;43; +KPYX;--;---;Perryton, Perryton Ochiltree County Airport;TX;United States;4;36-24N;100-44W;;;890;; +KPZQ;--;---;Rogers City, Presque Isle County Airport;MI;United States;4;45-24-25N;083-48-46W;;;204;; +KQCA;--;---;Granite Peak;UT;United States;4;40-10N;113-21W;;;1310;; +KQCB;--;---;Little Mountain;UT;United States;4;41-15N;112-15W;;;1326;; +KQCJ;--;---;Eagle Range;UT;United States;4;41-03N;113-05W;;;1294;; +KQIR;--;---;Al Udeid;;Qatar;2;25-07N;051-18E;;;42;; +KQUK;--;---;Camp Bondsteel;;Serbia and Montenegro;6;42-35N;021-23E;;;592;; +KRAC;--;---;Racine, Batten International Airport;WI;United States;4;42-45-31N;087-49-04W;42-45-32N;087-49-13W;205;203; +KRAD;--;---;Warroad Automatic Weather Observing / Reporting System;MN;United States;4;48-56N;095-20W;;;328;; +KRAL;--;---;Riverside, Riverside Municipal Airport;CA;United States;4;33-57-05N;117-27-02W;33-56-59N;117-26-21W;248;252; +KRAP;72;662;Rapid City, Rapid City Regional Airport;SD;United States;4;44-02-44N;103-03-14W;44-02-33N;103-03-43W;976;965;P +KRAS;--;---;Port Aransas, Mustang Beach Airport;TX;United States;4;27-48-42N;097-05-19W;;;2;; +KRAX;--;---;Raleigh NEXRAD;NC;United States;4;35-40N;078-30W;;;141;; +KRBD;--;---;Dallas, Redbird Airport;TX;United States;4;32-40-33N;096-51-50W;32-40-51N;096-51-51W;201;203; +KRBG;--;---;Roseburg, Roseburg Regional Airport;OR;United States;4;43-14-02N;123-21-22W;43-14-10N;123-21-23W;160;154; +KRBL;72;591;Red Bluff, Red Bluff Municipal Airport;CA;United States;4;40-09-02N;122-15-08W;40-09-19N;122-14-28W;106;104;P +KRBO;--;---;Robstown, Nueces County Airport;TX;United States;4;27-46-42N;097-41-25W;;;24;; +KRCA;--;---;Ellsworth Air Force Base;SD;United States;4;44-09N;103-06W;;;999;; +KRCX;--;---;Ladysmith, Ruck County Airport;WI;United States;4;45-29-48N;091-00-01W;;;377;; +KRDD;72;592;Redding, Redding Municipal Airport;CA;United States;4;40-30-54N;122-17-48W;40-31-00N;122-17-50W;153;155; +KRDG;--;---;Reading, Reading Regional Airport;PA;United States;4;40-22-24N;075-57-34W;40-22-33N;075-57-58W;105;109; +KRDK;--;---;Red Oak;IA;United States;4;41-01N;095-16W;;;318;; +KRDM;--;---;Redmond, Roberts Field Airport;OR;United States;4;44-15-15N;121-08-59W;;;938;; +KRDR;--;---;Grand Forks Air Force Base;ND;United States;4;47-58N;097-24W;47-58N;097-24W;278;278; +KRDU;72;306;Raleigh / Durham, Raleigh-Durham International Airport;NC;United States;4;35-52-14N;078-47-11W;35-52-59N;078-47-01W;133;130;P +KRED;--;---;Red Lodge;MT;United States;4;45-11N;109-16W;;;1757;; +KREE;--;---;Reese Air Force Base / Lubbock;TX;United States;4;33-36N;102-03W;;;1017;; +KREO;--;---;Rome, Rome;OR;United States;4;42-35-26N;117-51-52W;42-35-24N;117-52-07W;1234;1235; +KRFD;72;543;Rockford, Greater Rockford Airport;IL;United States;4;42-11-34N;089-05-36W;42-11-25N;089-05-10W;224;221; +KRGK;--;---;Red Wing, Red Wing Municipal Airport;MN;United States;4;44-35-25N;092-29-10W;;;239;; +KRGX;--;---;Reno NEXRAD;NV;United States;4;39-45N;119-28W;;;2560;; +KRHI;--;---;Rhinelander, Rhinelander-Oneida County Airport;WI;United States;4;45-37-54N;089-28-56W;45-37-34N;089-27-48W;495;485; +KRHP;--;---;Andrews, Andrews-Murphy Airport;NC;United States;4;35-11-42N;083-51-49W;;;517;; +KRHV;--;---;San Jose / Reid / Hillv;CA;United States;4;37-20N;121-49W;;;41;; +KRIC;72;401;Richmond, Richmond International Airport;VA;United States;4;37-30-40N;077-19-24W;37-30-34N;077-19-55W;51;50;P +KRIE;--;---;Rice Lake Municipal;WI;United States;4;45-29N;091-43W;;;347;; +KRIL;--;---;Rifle, Garfield County Regional Airport;CO;United States;4;39-31-30N;107-43-38W;39-31-25N;107-43-30W;1690;1678; +KRIV;72;286;Riverside / March Air Force Base;CA;United States;4;33-54N;117-15W;;;469;468; +KRIW;72;672;Riverton, Riverton Regional Airport;WY;United States;4;43-03-43N;108-26-47W;43-03-43N;108-27-19W;1684;1664; +KRJO;--;---;San Marcos Automatic Weather Observing / Reporting System;TX;United States;4;29-54N;097-52W;;;182;; +KRKD;--;---;Rockland, Knox County Regional Airport;ME;United States;4;44-04N;069-06W;;;17;; +KRKP;--;---;Rockport, Aransas County Airport;TX;United States;4;28-05-01N;097-02-47W;28-05-23N;097-02-45W;7;6; +KRKR;--;---;Poteau, Robert S Kerr Airport;OK;United States;4;35-01-18N;094-37-17W;;;138;; +KRKS;72;574;Rock Springs, Rock Springs-Sweetwater County Airport;WY;United States;4;41-35-39N;109-03-55W;;;2060;; +KRLX;--;---;Charleston;WV;United States;4;38-19N;081-43W;;;364;; +KRME;--;---;Griffiss Air Force Base / Rome;NY;United States;4;43-14N;075-24W;;;154;; +KRMG;72;320;Rome, R. B. Russell Airport;GA;United States;4;34-20-52N;085-09-40W;34-21-09N;085-09-44W;194;193; +KRMN;--;---;Stafford, Stafford Regional Airport;VA;United States;4;38-23-53N;077-27-19W;;;65;; +KRMY;--;---;Marshall, Brooks Field Airport;MI;United States;4;42-15-04N;084-57-20W;;;287;; +KRND;--;---;Randolph Air Force Base;TX;United States;4;29-32N;098-17W;;;232;; +KRNH;--;---;New Richmond, New Richmond Municipal Airport;WI;United States;4;45-08-54N;092-32-17W;;;304;; +KRNM;--;---;Ramona, Ramona Airport;CA;United States;4;33-02-15N;116-54-57W;33-02-27N;116-54-39W;424;427; +KRNO;72;488;Reno, Reno Tahoe International Airport;NV;United States;4;39-29-02N;119-46-16W;39-29-53N;119-46-24W;1345;1342;P +KRNP;--;---;Owosso, Owosso Community Airport;MI;United States;4;42-59-34N;084-08-20W;;;224;; +KRNT;--;---;Renton, Renton Municipal Airport;WA;United States;4;47-29-40N;122-12-46W;47-29-50N;122-12-43W;8;21; +KROA;72;411;Roanoke, Roanoke Regional Airport;VA;United States;4;37-19-01N;079-58-27W;37-19-32N;079-58-34W;358;362;P +KROC;72;529;Rochester, Greater Rochester International Airport;NY;United States;4;43-07-00N;077-40-36W;43-07-44N;077-40-27W;170;178; +KROG;--;---;Rogers, Rogers Municipal Airport-Carter Field;AR;United States;4;36-22N;094-06W;;;414;; +KROS;--;---;Rush City, Rush City Regional Airport;MN;United States;4;45-41-53N;092-57-11W;;;281;; +KROW;72;268;Roswell, Roswell Industrial Air Center Airport;NM;United States;4;33-18-29N;104-30-28W;33-18-25N;104-31-38W;1118;1112; +KROX;--;---;Roseau, Roseau Municipal Airport/Rudy Billberg Field;MN;United States;4;48-51N;095-42W;;;323;; +KRPD;--;---;Rice Lake, Rice Lake Regional-Carl's Field Airport;WI;United States;4;45-25-05N;091-46-25W;;;337;; +KRPE;--;---;Sabine Pass;TX;United States;4;29-42N;093-57W;;;3;; +KRPH;--;---;Graham, Graham Municipal Airport;TX;United States;4;33-06-36N;098-33-19W;;;342;; +KRPJ;--;---;Rochelle, Rochelle Municipal-Koritz Field Airport;IL;United States;4;41-53-35N;089-04-42W;;;238;; +KRQB;--;---;Big Rapids, Roben-Hood Airport;MI;United States;4;43-43-21N;085-30-15W;;;302;; +KRQE;72;276;Window Rock, Window Rock Airport;AZ;United States;4;35-39N;109-04W;35-39-34N;109-03-31W;2055;2055; +KRQO;--;---;El Reno, El Reno Regional Airport;OK;United States;4;35-28-21N;098-00-20W;;;432;; +KRRF;--;---;New Port Richey, Tampa Bay Executive Airport;FL;United States;4;28-11-21N;082-37-33W;28-11-19N;082-37-44W;12;12; +KRRL;--;---;Merrill, Merrill Municipal Airport;WI;United States;4;45-11N;089-42W;;;401;; +KRRT;--;---;Warroad, Warroad International Airport-Swede Carlson Field;MN;United States;4;48-56-29N;095-20-54W;;;327;; +KRSL;--;---;Russell, Russell Municipal Airport;KS;United States;4;38-52-22N;098-48-47W;;;567;567; +KRSN;--;---;Ruston, Ruston Regional Airport;LA;United States;4;32-30-52N;092-35-18W;;;95;; +KRST;72;644;Rochester, Rochester International Airport;MN;United States;4;43-54-15N;092-29-30W;43-54-42N;092-29-30W;401;403;P +KRSV;--;---;Robinson, Robinson Municipal Airport;IL;United States;4;39-00-57N;087-38-59W;;;141;; +KRSW;--;---;Fort Myers, Southwest Florida International Airport;FL;United States;4;26-31-37N;081-45-59W;26-32-13N;081-45-32W;9;9; +KRTN;--;---;Raton, Raton Municipal \ Crews Field Airport;NM;United States;4;36-44-31N;104-39-28W;;;1935;1939; +KRTX;--;---;Portland NEXRAD;OR;United States;4;45-43N;122-58W;;;514;; +KRUE;72;342;Russellville, Russellville Regional Airport;AR;United States;4;35-15-32N;093-05-36W;35-15-35N;093-05-48W;123;115; +KRUM;72;618;Rumford;ME;United States;4;44-32N;070-32W;;;192;205; +KRUQ;--;---;Salisbury, Rowan County Airport;NC;United States;4;35-39N;080-31W;;;236;; +KRUT;--;---;Rutland, Rutland State Airport;VT;United States;4;43-32N;072-57W;;;240;; +KRVL;--;---;Reedsville / Mifflin;PA;United States;4;40-41N;077-38W;;;250;; +KRVS;--;---;Tulsa, Jones Jr. Airport;OK;United States;4;36-02-33N;095-59-22W;36-02-09N;095-59-23W;194;200; +KRWF;--;---;Redwood Falls, Redwood Falls Municipal Airport;MN;United States;4;44-32-50N;095-04-56W;44-32-35N;095-04-38W;312;311; +KRWI;--;---;Rocky Mount, Rocky Mount-Wilson Regional Airport;NC;United States;4;35-51-18N;077-53-35W;35-51-02N;077-53-54W;49;47; +KRWL;--;---;Rawlins, Rawlins Municipal Airport;WY;United States;4;41-48-20N;107-11-59W;;;2077;; +KRWV;--;---;Caldwell, Caldwell Municipal Airport;TX;United States;4;30-30-55N;096-42-14W;;;119;; +KRXE;--;---;Rexburg, Rexburg-Madison County Airport;ID;United States;4;43-49-54N;111-48-22W;43-49-55N;111-48-20W;1481;1480; +KRYV;--;---;Watertown;WI;United States;4;43-10N;088-43W;;;254;; +KRYY;--;---;Marietta, Cobb County-McCollum Field Airport;GA;United States;4;34-00-47N;084-35-55W;;;317;; +KRZN;--;---;Siren, Burnett County Airport;WI;United States;4;45-49-22N;092-22-21W;;;301;; +KRZZ;--;---;Roanoke Rapids, Halifax County Airport;NC;United States;4;36-26-22N;077-42-35W;36-26-32N;077-42-37W;77;75; +KS02;--;---;Ship Shoal B224a;LA;United States;4;28-30N;091-18W;;;32;; +KS06;--;---;Mullan Aviation Weather Reporting Station;ID;United States;4;47-28N;115-48W;;;1011;; +KS14;--;---;Spencer;ID;United States;4;44-21N;112-11W;;;1793;; +KS21;--;---;Sunriver;OR;United States;4;43-53N;121-27W;;;1266;; +KS29;--;---;Salida;CO;United States;4;38-31N;106-01W;;;2186;; +KS38;--;---;Burrows Island;WA;United States;4;48-05N;122-06W;;;18;; +KS47;--;---;Tillamook, Tillamook Airport;OR;United States;4;45-25-05N;123-48-52W;;;11;; +KS53;--;---;Destruction Island;WA;United States;4;47-40N;124-29W;;;24;; +KS58;--;---;South Timbalier;LA;United States;4;28-32N;090-35W;;;1;; +KS65;--;---;Ship Shoal 198g;LA;United States;4;28-30N;091-12W;;;2;; +KS80;--;---;Grangeville ;ID;United States;4;45-57N;116-08W;;;1009;; +KS88;--;---;Skykomish, Skykomish State Airport;WA;United States;4;47-42N;121-20W;;;304;; +KSAC;72;483;Sacramento, Sacramento Executive Airport;CA;United States;4;38-30-25N;121-29-42W;38-30-50N;121-29-49W;6;11; +KSAD;--;---;Safford, Safford Municipal Airport;AZ;United States;4;32-51-26N;109-38-08W;32-51-01N;109-38-16W;968;962; +KSAF;--;---;Santa Fe, Santa Fe County Municipal Airport;NM;United States;4;35-36-38N;106-05-42W;35-37-03N;106-05-03W;1934;1930; +KSAN;72;290;San Diego, San Diego International-Lindbergh Field;CA;United States;4;32-44-01N;117-10-59W;32-44-11N;117-11-22W;4;12;P +KSAR;--;---;Sparta, Sparta Community-Hunter Field Airport;IL;United States;4;38-08-56N;089-41-55W;;;164;; +KSAT;72;253;San Antonio, San Antonio International Airport;TX;United States;4;29-31-58N;098-27-49W;29-31-42N;098-28-25W;246;243;P +KSAV;72;207;Savannah, Savannah International Airport;GA;United States;4;32-07-08N;081-12-08W;32-07-34N;081-11-55W;15;14;P +KSAW;--;---;Marquette, Sawyer International Airport;MI;United States;4;46-21-13N;087-23-43W;;;372;; +KSAZ;--;---;Staples, Staples Municipal Airport;MN;United States;4;46-22-51N;094-48-24W;;;392;; +KSBA;--;---;Santa Barbara, Santa Barbara Municipal Airport;CA;United States;4;34-25-34N;119-50-37W;34-25-49N;119-50-36W;3;3; +KSBD;--;---;Norton Air Force Base / San Bern;CA;United States;4;34-06N;117-14W;;;353;; +KSBM;--;---;Sheboygan, Sheboygan County Memorial Airport;WI;United States;4;43-46-35N;087-50-59W;43-45-41N;087-51-04W;228;232; +KSBN;72;535;South Bend, South Bend Regional Airport;IN;United States;4;41-42-32N;086-19-07W;41-42-31N;086-18-52W;244;237; +KSBP;--;---;San Luis Obispo, San Luis Obispo County-Mc Chesney Field;CA;United States;4;35-14-10N;120-38-10W;35-14-19N;120-38-22W;63;59; +KSBS;--;---;Steamboat Springs;CO;United States;4;40-31N;106-52W;;;2096;; +KSBY;--;---;Salisbury, Salisbury-Ocean City Wicomico County Regional Airport;MD;United States;4;38-20-26N;075-30-37W;38-20-32N;075-31-00W;16;19; +KSCC;--;---;Deadhorse, Deadhorse Airport;AK;United States;4;70-11-30N;148-28-38W;70-11-53N;148-28-03W;17;23; +KSCH;--;---;Schenectady Airport;NY;United States;4;42-51N;073-56W;;;115;; +KSCK;72;492;Stockton, Stockton Metropolitan Airport;CA;United States;4;37-53-23N;121-13-25W;37-53-51N;121-15-00W;9;10;P +KSDA;--;---;Shenandoah Municipal;IA;United States;4;40-45N;095-25W;;;296;; +KSDB;72;383;Sandberg;CA;United States;4;34-44-37N;118-43-28W;34-44-37N;118-43-27W;1378;1377; +KSDF;72;423;Louisville, Standiford Field;KY;United States;4;38-10-38N;085-43-47W;38-10-44N;085-43-50W;151;146; +KSDL;--;---;Scottsdale, Scottsdale Airport;AZ;United States;4;33-37-22N;111-54-38W;33-37-17N;111-54-34W;460;447; +KSDM;--;---;San Diego, Brown Field Municipal Airport;CA;United States;4;32-34-31N;116-59-35W;32-34-10N;116-59-04W;164;159; +KSDY;--;---;Sidney-Richland;MT;United States;4;47-42N;104-12W;;;605;; +KSEA;72;793;Seattle, Seattle-Tacoma International Airport;WA;United States;4;47-26-41N;122-18-49W;47-26-37N;122-18-07W;130;136;P +KSEE;--;---;San Diego/El Cajon, Gillespie Field Airport;CA;United States;4;32-49-34N;116-58-20W;;;118;; +KSEG;--;---;Selinsgrove, Penn Valley Airport;PA;United States;4;40-49-09N;076-51-58W;40-48-59N;076-51-25W;137;134; +KSEM;--;---;Craig Field / Selma;AL;United States;4;32-21N;086-59W;;;51;; +KSEP;72;260;Stephenville, Clark Field Municipal Airport;TX;United States;4;32-13N;098-11W;32-13N;098-11W;403;402; +KSET;--;---;St. Charles, St. Charles County Smartt Airport;MO;United States;4;38-55-50N;090-25-57W;38-55-49N;090-26-01W;133;134; +KSEZ;--;---;Sedona Airport;AZ;United States;4;34-51N;111-47W;;;1471;; +KSFB;--;---;Orlando / Sanford Airport;FL;United States;4;28-47N;081-15W;;;17;; +KSFD;72;656;Winner, Bob Wiley Field Airport;SD;United States;4;43-23-26N;099-50-33W;;;619;; +KSFF;--;---;Spokane, Felts Field;WA;United States;4;47-41-08N;117-19-13W;47-40-51N;117-19-04W;595;609; +KSFM;--;---;Sanford, Sanford Regional Airport;ME;United States;4;43-24N;070-43W;;;74;; +KSFO;72;494;San Francisco, San Francisco International Airport;CA;United States;4;37-37-11N;122-21-53W;37-37-01N;122-22-58W;3;26;P +KSFQ;--;---;Suffolk, Suffolk Municipal Airport;VA;United States;4;36-40-56N;076-36-07W;;;22;; +KSFY;--;---;Savanna, Tri-Township Airport;IL;United States;4;42-02-45N;090-06-28W;;;188;; +KSFZ;--;---;Pawtucket, North Central State Airport;RI;United States;4;41-55N;071-30W;;;134;; +KSGF;72;440;Springfield, Springfield Regional Airport;MO;United States;4;37-14-23N;093-23-23W;37-14-26N;093-23-28W;386;389;P +KSGH;--;---;Springfield, Springfield-Beckley Municipal Airport;OH;United States;4;39-50-25N;083-50-24W;;;320;; +KSGJ;--;---;St. Augustine, St. Augustine Airport;FL;United States;4;29-57-33N;081-20-23W;;;3;; +KSGR;--;---;Houston, Sugar Land Municipal / Hull Field Airport;TX;United States;4;29-37-20N;095-39-24W;;;25;; +KSGS;--;---;South St. Paul, South St. Paul Municipal-Richard E. Fleming Field Airport;MN;United States;4;44-51-26N;093-01-58W;;;250;; +KSGT;--;---;Stuttgart, Stuttgart Municipal Airport;AR;United States;4;34-36N;091-34W;;;68;; +KSGU;--;---;St George, St George Municipal Airport;UT;United States;4;37-05N;113-36W;;;896;; +KSHD;--;---;Staunton / Shenandoah;VA;United States;4;38-16N;078-54W;;;366;; +KSHI;--;---;Ashtabula, Ashtabula County Airport;OH;United States;4;41-46-46N;080-41-48W;41-46-48N;080-42-04W;281;276; +KSHL;--;---;Sheldon;IA;United States;4;43-13N;095-50W;;;432;; +KSHN;--;---;Shelton, Shelton Sanderson Field;WA;United States;4;47-14-17N;123-08-27W;47-14-24N;123-08-25W;82;82; +KSHP;--;---;Sheppard Air Force Base;TX;United States;4;33-58N;098-29W;;;314;; +KSHR;72;666;Sheridan, Sheridan County Airport;WY;United States;4;44-46-10N;106-58-08W;44-46-26N;106-58-12W;1225;1202;P +KSHV;72;248;Shreveport, Shreveport Regional Airport;LA;United States;4;32-26-49N;093-49-27W;32-27-02N;093-50-01W;78;80;P +KSIB;--;---;Sibley Peak;WY;United States;4;42-27N;105-02W;;;1500;; +KSIL;--;---;Slidell Radar Site;LA;United States;4;30-15N;089-46W;;;3;; +KSIY;--;---;Montague, Siskiyou County Airport;CA;United States;4;41-46-53N;122-28-05W;;;807;; +KSJC;--;---;San Jose, San Jose International Airport;CA;United States;4;37-21-33N;121-55-27W;35-39-56N;121-17-05W;18;25; +KSJN;--;---;St. Johns, St. Johns Industrial Airpark;AZ;United States;4;34-31-06N;109-22-45W;34-31-09N;109-22-44W;1747;1745; +KSJT;72;263;San Angelo, Mathis Field;TX;United States;4;31-21-05N;100-29-38W;31-21-22N;100-30-10W;584;581;P +KSJX;--;---;Beaver Island, Beaver Island Airport;MI;United States;4;45-41-32N;085-33-59W;;;204;; +KSKA;--;---;Fairchild Air Force Base;WA;United States;4;47-37N;117-39W;;;750;; +KSKC;--;---;Waukesha;WI;United States;4;43-02N;088-14W;;;284;; +KSKF;--;---;Kelly Air Force Base;TX;United States;4;29-23N;098-35W;;;210;; +KSKX;--;---;Taos, Taos Regional Airport;NM;United States;4;36-27N;105-40W;;;2161;; +KSLB;--;---;Storm Lake;IA;United States;4;42-36N;095-14W;;;454;; +KSLC;72;572;Salt Lake City, Salt Lake City International Airport;UT;United States;4;40-46-41N;111-58-10W;40-46-35N;111-57-31W;1288;1286;P +KSLE;72;694;Salem, McNary Field;OR;United States;4;44-54-28N;122-59-42W;44-54-33N;123-00-25W;64;59;P +KSLG;--;---;Siloam Springs, Smith Field Airport;AR;United States;4;36-12N;094-29W;;;364;; +KSLH;--;---;Cheboygan, Cheboygan County Airport;MI;United States;4;45-39-13N;084-31-09W;;;195;; +KSLI;--;---;Los Alamitos U. S. Army Airfield;CA;United States;4;33-47N;118-03W;;;11;; +KSLK;--;---;Saranac Lake, Adirondack Regional Airport;NY;United States;4;44-23-35N;074-12-10W;44-22-49N;074-12-14W;507;498; +KSLN;--;---;Salina, Salina Municipal Airport;KS;United States;4;38-46-48N;097-38-39W;38-46-08N;097-38-39W;387;385; +KSLO;72;433;Salem, Salem-Leckrone Airport;IL;United States;4;38-38-34N;088-57-51W;38-39N;088-58W;175;174; +KSLR;--;---;Sulphur Springs, Sulphur Springs Municipal Airport;TX;United States;4;33-09-40N;095-37-16W;;;149;; +KSLW;--;---;Smithville / Wooster;OH;United States;4;40-53N;081-50W;;;357;; +KSME;--;---;Somerset, Somerset-Pulaski County - J.T. Wilson Field Airport;KY;United States;4;37-03-15N;084-36-54W;;;283;; +KSMF;--;---;Sacramento, Sacramento International Airport;CA;United States;4;38-42-05N;121-35-38W;38-41-30N;121-35-23W;8;6; +KSMN;--;---;Salmon, Lemhi County Airport;ID;United States;4;45-07N;113-53W;;;1233;; +KSMO;--;---;Santa Monica, Santa Monica Municipal Airport;CA;United States;4;34-00-57N;118-27-05W;34-01-10N;118-26-53W;53;57; +KSMP;--;---;Stampede Pass;WA;United States;4;47-16-36N;121-20-14W;47-16-36N;121-20-14W;1207;1208; +KSMQ;--;---;Somerville, Somerset Airport;NJ;United States;4;40-37-26N;074-40-10W;40-37-32N;074-40-08W;32;30; +KSMX;72;394;Santa Maria, Santa Maria Public Airport;CA;United States;4;34-53-58N;120-26-55W;34-53-57N;120-26-56W;78;74;P +KSNA;--;---;Santa Ana, John Wayne Airport-Orange County Airport;CA;United States;4;33-40-48N;117-51-59W;33-40-41N;117-52-08W;16;15; +KSNC;--;---;Chester, Chester Airport;CT;United States;4;41-23-02N;072-30-21W;;;127;; +KSNK;--;---;Snyder, Winston Field Airport;TX;United States;4;32-41-36N;100-57-01W;;;741;; +KSNL;--;---;Shawnee, Shawnee Municipal Airport;OK;United States;4;35-21-26N;096-56-34W;;;327;; +KSNP;--;---;St. Paul Island, St. Paul Island Airport;AK;United States;4;57-09-21N;170-13-15W;57-09-25N;170-13-01W;13;7; +KSNS;--;---;Salinas, Salinas Municipal Airport;CA;United States;4;36-39-49N;121-36-29W;36-39-37N;121-36-18W;25;30; +KSNT;--;---;Stanley, Stanley Ranger Station;ID;United States;4;44-12-31N;114-56-04W;;;1980;; +KSNY;72;561;Sidney, Sidney Municipal Airport;NE;United States;4;41-05-58N;102-59-08W;41-06-10N;102-58-56W;1314;1307;P +KSOA;--;---;Sonora, Sonora Municipal Airport;TX;United States;4;30-35-08N;100-38-54W;;;652;; +KSOP;--;---;Pinehurst/Southern Pines, Moore County Airport;NC;United States;4;35-14N;079-24W;;;141;; +KSOV;--;---;Seldovia, Seldovia Airport;AK;United States;4;59-26-48N;151-42-16W;59-26-48N;151-42-16W;8;10; +KSOW;--;---;Show Low, Show Low Regional Airport;AZ;United States;4;34-15-55N;110-00-20W;;;1955;; +KSPA;--;---;Spartanburg Memorial;SC;United States;4;34-55N;081-57W;;;246;; +KSPB;--;---;Scappoose, Scappoose Industrial Airpark;OR;United States;4;45-46-09N;122-51-44W;45-46-35N;122-51-35W;16;14; +KSPD;--;---;Springfield, Comanche National Grassland;CO;United States;4;37-17N;102-37W;;;1335;; +KSPF;--;---;Spearfish / Clyde Ice;SD;United States;4;44-29N;103-47W;;;1188;; +KSPG;--;---;St. Petersburg, Whitted Airport;FL;United States;4;27-46-04N;082-37-34W;27-46-00N;082-37-40W;2;2; +KSPI;--;---;Springfield, Abraham Lincoln Capital Airport;IL;United States;4;39-50-43N;089-41-02W;39-51-04N;089-40-36W;182;181; +KSPS;72;351;Wichita Falls, Sheppard Air Force Base;TX;United States;4;33-58-43N;098-29-34W;33-58-25N;098-30-07W;309;308;P +KSPW;--;---;Spencer, Spencer Municipal Airport;IA;United States;4;43-09-56N;095-12-10W;43-10-02N;095-11-47W;408;403; +KSQI;--;---;Sterling Rockfalls;IL;United States;4;41-45N;089-40W;;;197;; +KSQL;--;---;San Carlos Airport;CA;United States;4;37-31N;122-15W;;;1;; +KSRC;--;---;Searcy, Searcy Municipal Airport;AR;United States;4;35-12-43N;091-44-14W;;;81;; +KSRE;--;---;Seminole, Seminole Municipal Airport;OK;United States;4;35-16-28N;096-40-30W;;;312;; +KSRF;--;---;Hamilton U. S. Army Airfield;CA;United States;4;38-04N;122-30W;;;1;; +KSRN;--;---;South Marsh 268A;LA;United States;4;29-07N;91-52W;;;0;; +KSRQ;--;---;Sarasota / Bradenton, Sarasota-Bradenton International Airport;FL;United States;4;27-24-05N;082-33-31W;27-24-09N;082-33-10W;9;18; +KSRR;--;---;Ruidoso Regional;NM;United States;4;33-28N;105-32W;;;2076;; +KSSC;74;790;Shaw Air Force Base;SC;United States;4;33-58N;080-29W;33-58N;080-29W;74;73; +KSSF;--;---;San Antonio, Stinson Municipal Airport;TX;United States;4;29-20-20N;098-28-18W;29-20-19N;098-28-04W;175;176; +KSSI;--;---;Brunswick, Malcolm McKinnon Airport;GA;United States;4;31-09-06N;081-23-29W;31-09-20N;081-23-13W;6;6; +KSSU;--;---;White Sulphur Sprng;WV;United States;4;37-46N;080-20W;;;549;; +KSTC;--;---;St Cloud, St Cloud Regional Airport;MN;United States;4;45-32-47N;094-03-35W;;;314;; +KSTE;--;---;Stevens Point, Stevens Point Municipal Airport;WI;United States;4;44-32-42N;089-31-49W;;;338;; +KSTJ;72;449;St. Joseph, Rosecrans Memorial Airport;MO;United States;4;39-46-05N;094-54-33W;39-46-14N;094-54-10W;251;247; +KSTL;72;434;St. Louis, Lambert-St. Louis International Airport;MO;United States;4;38-45-09N;090-22-25W;38-45-06N;090-21-07W;184;171;P +KSTP;--;---;St. Paul, St. Paul Downtown Holman Field;MN;United States;4;44-55-49N;093-02-53W;44-56-31N;093-03-55W;214;219; +KSTS;--;---;Santa Rosa, Santa Rosa Sonoma County Airport;CA;United States;4;38-30-00N;122-49-00W;38-30-16N;122-48-17W;38;39; +KSTT;--;---;Charlotte Amalie, King Airport;VI;United States;4;18-20-18N;064-58-44W;18-20-26N;064-58-30W;4;15; +KSTX;--;---;Christiansted, Hamilton Airport;VI;United States;4;17-42-03N;064-48-24W;17-42-08N;064-47-56W;18;9; +KSUA;--;---;Stuart, Witham Field Airport;FL;United States;4;27-10-54N;080-13-16W;;;6;; +KSUE;--;---;Sturgeon Bay;WI;United States;4;44-51N;087-25W;;;221;; +KSUN;--;---;Hailey, Friedman Memorial Airport;ID;United States;4;43-30N;114-18W;;;1621;; +KSUS;--;---;St. Louis, Spirit Of St. Louis Airport;MO;United States;4;38-39-26N;090-39-21W;38-39-45N;090-39-07W;141;141; +KSUT;--;---;Oak Island, Brunswick County Airport;NC;United States;4;33-55-45N;078-04-29W;;;8;; +KSUU;74;516;Fairfield / Travis Air Force Base;CA;United States;4;38-16N;121-57W;;;19;22;P +KSUW;--;---;Superior, Richard I. Bong Airport;WI;United States;4;46-41-23N;092-05-41W;;;205;; +KSUX;72;557;Sioux City, Sioux Gateway Airport;IA;United States;4;42-24-09N;096-23-04W;42-24-03N;096-22-39W;335;338;P +KSVC;72;272;Silver City / Grant;NM;United States;4;32-38N;108-09W;;;1659;; +KSVE;--;---;Susanville Municipal;CA;United States;4;40-23N;120-34W;;;1263;; +KSVH;--;---;Statesville, Statesville Municipal Airport;NC;United States;4;35-45-55N;080-57-24W;;;294;; +KSVN;--;---;Hunter U. S. Army Airfield ;GA;United States;4;32-01N;081-09W;;;13;; +KSWD;--;---;Seward, Seward Airport;AK;United States;4;60-07-37N;149-25-07W;60-07-58N;149-25-35W;6;2; +KSWF;--;---;Newburgh / Stewart;NY;United States;4;41-30N;074-06W;;;150;; +KSWO;--;---;Stillwater, Stillwater Regional Airport;OK;United States;4;36-09-44N;097-05-21W;36-09-28N;097-05-01W;300;290; +KSWW;--;---;Sweetwater, Avenger Field Airport;TX;United States;4;32-28-02N;100-27-59W;;;725;; +KSXT;--;---;Sexton Summit,;OR;United States;4;42-36-01N;123-21-51W;42-36-01N;123-21-52W;0;1170; +KSYN;--;---;Stanton, Stanton Airfield;MN;United States;4;44-28-31N;093-00-58W;;;280;; +KSYR;72;519;Syracuse, Syracuse Hancock International Airport;NY;United States;4;43-06-33N;076-06-12W;43-06-39N;076-06-38W;128;127;P +KSZL;--;---;Whiteman Air Force Base;MO;United States;4;38-44N;093-33W;;;265;; +KSZN;--;---;Santa Cruz Island;CA;United States;4;34-01N;119-45W;;;10;; +KSZT;--;---;Sandpoint, Sandpoint Airport;ID;United States;4;48-17-58N;116-33-36W;;;648;; +KT08;--;---;Tomahawk, Tomahawk Regional Airport;WI;United States;4;45-28-08N;089-48-20W;;;453;; +KT18;--;---;Falfurrias, Brooks County Airport;TX;United States;4;27-12-24N;098-07-16W;;;34;; +KT46;--;---;South Brazos A70;TX;United States;4;28-01N;095-52W;;;23;; +KT49;--;---;Big Spring, Big Spring McMahon-Wrinkle Airport;TX;United States;4;32-12N;101-31W;;;784;; +KT53;--;---;Robstown, Nueces County Airport;TX;United States;4;27-46-42N;097-41-25W;;;24;; +KT56;--;---;Crockett, Houston County Airport;TX;United States;4;31-18-25N;095-24-13W;;;106;; +KT62;--;---;Tooele;UT;United States;4;40-19N;112-18W;;;1628;; +KT65;--;---;Weslaco, Mid Valley Airport;TX;United States;4;26-10-39N;097-58-23W;;;21;; +KT72;--;---;Hearne, Hearne Municipal Airport;TX;United States;4;30-52-18N;096-37-20W;;;87;; +KT82;--;---;Fredericksburg, Gillespie County Airport;TX;United States;4;30-14-37N;098-54-34W;;;517;; +KT97;--;---;Port Lavaca, Calhoun County Airport;TX;United States;4;28-39-14N;096-40-52W;;;9;; +KTAD;--;---;Trinidad, Perry Stokes Airport;CO;United States;4;37-16N;104-26W;;;1756;; +KTAL;--;---;Tanana, Calhoun Memorial Airport;AK;United States;4;65-10-28N;152-06-25W;65-10-29N;152-06-30W;69;72; +KTAN;--;---;Taunton, Taunton Municipal Airport;MA;United States;4;41-52-32N;071-01-16W;41-52-31N;071-01-12W;13;7; +KTAZ;--;---;Taylorville, Taylorville Municipal Airport;IL;United States;4;39-32-03N;089-19-40W;;;190;; +KTBN;--;---;Fort Leonard Wood;MO;United States;4;37-44N;092-08W;;;353;; +KTBR;--;---;Statesboro, Statesboro-Bulloch County Airport;GA;United States;4;32-28-59N;081-44-14W;;;57;; +KTBW;72;210;Tampa Bay Area;FL;United States;4;27-42N;082-24W;27-42N;082-24W;12;13;P +KTCC;--;---;Tucumcari, Tucumcari Municipal Airport;NM;United States;4;35-10-58N;103-36-11W;35-10-52N;103-36-33W;1239;1235; +KTCL;--;---;Tuscaloosa, Tuscaloosa Regional Airport;AL;United States;4;33-13-14N;087-36-41W;;;52;; +KTCM;74;206;Tacoma / McChord Air Force Base;WA;United States;4;47-09N;122-29W;47-09N;122-29W;98;87; +KTCS;72;271;Truth Or Consequences, Truth Or Consequences Municipal Airport;NM;United States;4;33-14-12N;107-16-05W;33-14-17N;107-16-08W;1478;1469; +KTDF;--;---;Roxboro, Person County Airport;NC;United States;4;36-17-06N;078-59-03W;;;186;; +KTDO;--;---;Toledo-Winlock Memorial;WA;United States;4;46-29N;122-48W;;;113;; +KTDZ;--;---;Toledo, Metcalf Field;OH;United States;4;41-33-47N;083-28-35W;41-33-52N;083-28-34W;189;189; +KTEB;--;---;Teterboro, Teterboro Airport;NJ;United States;4;40-51-32N;074-03-24W;40-51-09N;074-03-19W;2;7; +KTEW;--;---;Mason, Mason Jewett Field Airport;MI;United States;4;42-33-57N;084-25-24W;;;280;; +KTEX;--;---;Telluride, Telluride Regional Airport;CO;United States;4;37-57-14N;107-54-31W;;;2767;; +KTFX;--;---;Great Falls Nexrad;MT;United States;4;47-28N;111-22W;;;1151;; +KTHV;--;---;York, York Airport;PA;United States;4;39-55-10N;076-52-37W;39-55-22N;076-52-41W;146;144; +KTIF;--;---;Thedford, Thomas County Airport;NE;United States;4;41-57-43N;100-34-08W;;;892;; +KTIK;72;354;Tinker Air Force Base;OK;United States;4;35-25N;097-23W;35-25N;097-23W;394;397; +KTIP;--;---;Rantoul, Rantoul National Aviation Center Airport-Frank Elliott Field;IL;United States;4;40-17-37N;088-08-33W;;;225;; +KTIW;--;---;Tacoma, Tacoma Narrows Airport;WA;United States;4;47-16-03N;122-34-34W;47-16-09N;122-34-25W;96;96; +KTIX;--;---;Titusville;FL;United States;4;28-31N;080-48W;;;11;; +KTKA;--;---;Talkeetna, Talkeetna Airport;AK;United States;4;62-19-12N;150-05-42W;62-19-13N;150-05-38W;109;107; +KTKC;--;---;Tracy, Tracy Municipal Airport;MN;United States;4;44-14-56N;095-36-26W;;;408;; +KTKI;--;---;Mc Kinney, Collin County Regional Airport at Mc Kinney;TX;United States;4;33-10-40N;096-35-25W;33-10-39N;096-35-31W;178;179; +KTKV;--;---;Tomahawk, Tomahawk Regional Airport;WI;United States;4;45-28-08N;089-48-20W;;;453;; +KTLH;72;214;Tallahassee, Tallahassee Regional Airport;FL;United States;4;30-23-35N;084-21-12W;30-23-46N;084-21-20W;24;16;P +KTLX;--;---;Oklahoma City Nexrad;OK;United States;4;35-20N;097-17W;;;338;; +KTMB;--;---;Miami, Kendall-Tamiami Executive Airport;FL;United States;4;25-38-31N;080-26-05W;25-38-50N;080-25-35W;3;2; +KTMH;--;---;20 Mile Hill;WY;United States;4;43-07N;106-20W;;;1743;; +KTNB;--;---;Boone, Watauga County Hospital Heliport;NC;United States;4;36-12N;081-39W;;;959;; +KTNU;--;---;Newton Municipal;IA;United States;4;41-41N;093-01W;;;290;; +KTNX;--;---;Tonopah Test Range;NV;United States;4;37-48N;116-47W;;;1691;; +KTOA;--;---;Torrance, Zamperini Field Airport;CA;United States;4;33-48N;118-20W;;;31;; +KTOB;--;---;Dodge Center, Dodge Center Airport;MN;United States;4;44-01-05N;092-49-53W;;;398;; +KTOI;--;---;Troy, Troy Municipal Airport;AL;United States;4;31-51-38N;086-00-44W;31-51-39N;088-00-28W;121;118; +KTOL;72;536;Toledo, Toledo Express Airport;OH;United States;4;41-35-19N;083-48-05W;41-35-33N;083-48-15W;208;210; +KTOP;72;456;Topeka, Philip Billard Municipal Airport;KS;United States;4;39-04-21N;095-37-33W;39-04-21N;095-37-50W;268;268;P +KTOR;--;---;Torrington, Torrington Municipal Airport;WY;United States;4;42-03-53N;104-09-10W;42-03-45N;104-09-31W;1282;1277; +KTPA;72;211;Tampa, Tampa International Airport;FL;United States;4;27-57-41N;082-32-25W;27-58-04N;082-31-33W;8;11;P +KTPF;--;---;Tampa, Peter O Knight Airport;FL;United States;4;27-54-56N;082-26-57W;;;2;; +KTPH;--;---;Tonopah, Tonopah Airport;NV;United States;4;38-03-37N;117-05-14W;38-03-49N;117-05-44W;1654;1652; +KTPL;--;---;Temple, Draughon-Miller Central Texas Regional Airport;TX;United States;4;31-09N;097-24W;;;208;; +KTQE;--;---;Tekamah, Tekamah Municipal Airport;NE;United States;4;41-46-01N;096-10-40W;41-46-02N;096-10-29W;313;312; +KTQH;--;---;Tahlequah, Tahlequah Municipal Airport;OK;United States;4;35-55-44N;095-00-16W;;;266;; +KTRI;--;---;Bristol / Johnson / Kingsport, Tri-City Regional Airport;TN;United States;4;36-28-47N;082-23-56W;36-28-54N;082-24-26W;463;474; +KTRK;--;---;Truckee-Tahoe;CA;United States;4;39-19N;120-08W;;;1798;; +KTRL;--;---;Terrell, Terrell Municipal Airport;TX;United States;4;32-42-49N;096-16-06W;32-42-58N;096-16-07W;144;144; +KTRM;--;---;Palm Springs, Jacqueline Cochran Regional Airport;CA;United States;4;33-37-36N;116-09-34W;;;-38;; +KTTA;--;---;Sanford, Sanford-Lee County Regional Airport;NC;United States;4;35-34-57N;079-06-05W;;;75;; +KTTD;--;---;Portland, Portland-Troutdale Airport;OR;United States;4;45-33-04N;122-24-32W;45-33-03N;122-23-49W;11;14; +KTTF;--;---;Monroe, Custer Airport;MI;United States;4;41-56-24N;083-26-05W;;;188;; +KTTN;--;---;Trenton, Mercer County Airport;NJ;United States;4;40-16-35N;074-48-59W;40-16-39N;074-48-58W;64;59; +KTTS;--;---;Titusville, NASA Shuttle Landing Facility;FL;United States;4;28-37N;080-42W;;;3;; +KTUL;72;356;Tulsa, Tulsa International Airport;OK;United States;4;36-11-51N;095-53-11W;36-11-32N;095-54-13W;206;207;P +KTUP;72;332;Tupelo, Tupelo Regional Airport;MS;United States;4;34-16-05N;088-46-12W;34-15-54N;088-45-59W;106;105; +KTUS;72;274;Tucson, Tucson International Airport;AZ;United States;4;32-07-53N;110-57-19W;32-07-28N;110-56-25W;805;786;P +KTVC;--;---;Traverse City, Cherry Capital Airport;MI;United States;4;44-44-12N;085-34-12W;44-44-38N;085-35-06W;190;190; +KTVF;--;---;Thief River Falls, Thief River Falls Regional Airport;MN;United States;4;48-04N;096-11W;;;340;; +KTVL;--;---;South Lake Tahoe, Lake Tahoe Airport;CA;United States;4;38-53-38N;119-59-43W;38-53-47N;119-59-50W;1909;1925; +KTVR;--;---;Vicksburg, Vicksburg / Tallulah Regional Airport;LA;United States;4;32-20-53N;091-01-48W;32-21-11N;091-01-29W;26;26; +KTWF;--;---;Twin Falls, Joslin Field-Magic Valley Regional Airport;ID;United States;4;42-28-43N;114-28-34W;42-29-03N;114-28-55W;1265;1266; +KTWM;--;---;Two Harbors;MN;United States;4;47-03N;091-45W;;;328;; +KTWT;--;---;Sturgis, Sturgis Municipal Airport;KY;United States;4;37-32-27N;087-57-06W;;;113;; +KTWX;--;---;Topeka NEXRAD;KS;United States;4;39-00N;096-14W;;;431;; +KTXK;--;---;Texarkana, Texarkana Regional-Webb Field;AR;United States;4;33-27-22N;093-59-15W;33-27-21N;093-59-38W;118;111; +KTYR;--;---;Tyler, Tyler Pounds Field;TX;United States;4;32-21-31N;095-24-14W;32-21- N;095-24- W;165;165; +KTYS;72;326;Knoxville, McGhee Tyson Airport;TN;United States;4;35-49-05N;083-59-09W;35-49-29N;083-59-10W;299;302;P +KTZR;--;---;Columbus, Bolton Field Airport;OH;United States;4;39-54-03N;083-08-14W;;;276;; +KU15;--;---;Challis, Challis Airport;ID;United States;4;44-31-22N;114-12-54W;44-31-12N;114-12-54W;1534;1536; +KU16;--;---;Eagle Range;UT;United States;4;41-03N;113-04W;;;1292;; +KU17;--;---;Bullfrog Marina;UT;United States;4;37-30N;110-42W;;;1110;; +KU24;--;---;Delta;UT;United States;4;39-20N;112-35W;;;1414;; +KU28;--;---;Green River Range;UT;United States;4;39-00N;110-10W;;;1241;; +KU31;--;---;Austin;NV;United States;4;39-30N;117-05W;;;2014;; +KU42;--;---;Salt Lake City, Salt Lake City Municipal 2 Airport;UT;United States;4;40-37-10N;111-59-34W;;;1403;; +KU59;--;---;Driggs, Driggs-Reed Memorial Airport;ID;United States;4;43-44-30N;111-05-52W;;;1898;; +KU67;74;420;Roosevelt;UT;United States;4;40-18N;109-59W;;;1553;1556; +KU71;--;---;Vernal;UT;United States;4;40-28N;109-32W;;;1612;; +KU73;--;---;Jerome, Jerome County Airport;ID;United States;4;42-43-39N;114-27-11W;42-43-31N;114-27-15W;1233;1222; +KU78;--;---;Soda Springs / Tigert;ID;United States;4;42-39N;111-35W;;;1780;; +KUAO;--;---;Aurora, Aurora State Airport;OR;United States;4;45-14-56N;122-45-56W;45-15-03N;122-45-57W;59;59; +KUCA;--;---;Utica, Oneida County Airport;NY;United States;4;43-08-42N;075-23-04W;43-08-50N;075-22-52W;227;228; +KUCP;--;---;New Castle, New Castle Municipal Airport;PA;United States;4;41-01-31N;080-24-48W;;;327;; +KUDG;--;---;Darlington, Darlington County Jetport Airport;SC;United States;4;34-26-57N;079-53-25W;;;59;; +KUES;--;---;Waukesha, Waukesha County Airport;WI;United States;4;43-02-28N;088-14-13W;;;278;; +KUEX;--;---;Grand Island Nexrad;NE;United States;4;40-19N;098-26W;;;626;; +KUGN;--;---;Chicago / Waukegan, Waukegan Regional Airport;IL;United States;4;42-25N;087-52W;;;222;; +KUIL;72;797;Quillayute, Quillayute State Airport;WA;United States;4;47-56-15N;124-33-18W;47-56-03N;124-33-32W;59;54;P +KUIN;--;---;Quincy, Quincy Regional-Baldwin Field Airport;IL;United States;4;39-56-33N;091-11-40W;;;234;; +KUKF;--;---;North Wilkesboro, Wilkes County Airport;NC;United States;4;36-13N;81-05W;;;396;; +KUKI;--;---;Ukiah, Ukiah Municipal Airport;CA;United States;4;39-07-33N;123-12-03W;;;187;; +KUKL;--;---;Burlington, Coffey County Airport;KS;United States;4;38-18-09N;095-43-30W;;;358;; +KUKT;--;---;Quakertown, Quakertown Airport;PA;United States;4;40-26-06N;075-22-54W;;;160;; +KULM;--;---;New Ulm, New Ulm Municipal Airport;MN;United States;4;44-19N;094-30W;;;308;; +KUNO;--;---;West Plains, West Plains Municipal Airport;MO;United States;4;36-52-45N;091-54-18W;36-52-44N;091-54-16W;374;372; +KUNU;--;---;Juneau, Dodge County Airport;WI;United States;4;43-25-36N;088-42-12W;;;285;; +KUNV;--;---;State College, University Park Airport;PA;United States;4;40-51N;077-51W;;;378;; +KUOX;--;---;Oxford, University-Oxford Airport;MS;United States;4;34-23-04N;089-32-08W;;;138;; +KUTA;--;---;Tunica, Tunica Municipal Airport;MS;United States;4;34-40-51N;090-20-47W;;;59;; +KUTS;--;---;Huntsville, Huntsville Municipal Airport;TX;United States;4;30-44-38N;095-35-10W;30-44-34N;095-35-08W;111;104; +KUUU;--;---;Newport, Newport State Airport;RI;United States;4;41-31-48N;071-17-01W;41-31-53N;071-17-00W;52;51; +KUVA;--;---;Uvalde, Garner Field Airport;TX;United States;4;29-12-40N;099-44-36W;;;287;; +KUZA;--;---;Rock Hill, Rock Hill - York County Airport;SC;United States;4;34-59-02N;081-03-21W;34-59-14N;081-03-36W;204;202; +KVAD;74;781;Moody Air Force Base;GA;United States;4;30-58N;083-12W;;;71;71; +KVAY;--;---;Mount Holly, South Jersey Regional Airport;NJ;United States;4;39-56-26N;074-50-28W;39-56-22N;074-50-38W;16;15; +KVBG;72;393;Lompoc, Vandenberg Air Force Base;CA;United States;4;34-43-46N;120-34-36W;34-44N;120-33W;112;121;P +KVBT;--;---;Bentonville, Bentonville Municipal Airport/Louise M Thaden Field;AR;United States;4;36-21N;094-13W;;;395;; +KVCB;--;---;Vacaville, Nut Tree Airport;CA;United States;4;38-22-40N;121-57-27W;38-22-32N;121-57-31W;34;33; +KVCT;72;255;Victoria, Victoria Regional Airport;TX;United States;4;28-51-45N;096-55-47W;28-50-43N;096-55-13W;35;31;P +KVCV;--;---;Victorville, Southern California Logistics Airport;CA;United States;4;34-35-50N;117-22-58W;;;879;; +KVDF;--;---;Tampa, Vandenberg Airport;FL;United States;4;28-00-50N;082-20-43W;;;7;; +KVDI;--;---;Vidalia, Vidalia Municipal Airport;GA;United States;4;32-11-33N;082-22-19W;;;84;; +KVDW;--;---;Vedauwoo;WY;United States;4;41-09N;105-24W;;;2542;; +KVEL;--;---;Vernal, Vernal Airport;UT;United States;4;40-26-39N;109-30-42W;40-26-47N;109-30-42W;1607;1604; +KVGT;--;---;Las Vegas, North Las Vegas Airport;NV;United States;4;36-12-42N;115-11-45W;;;672;; +KVIH;--;---;Rolla / Vichy, Rolla National Airport;MO;United States;4;38-07-55N;091-45-55W;38-07-56N;091-45-54W;350;333; +KVIS;--;---;Visalia, Visalia Municipal Airport;CA;United States;4;36-19N;119-24W;;;90;; +KVJI;--;---;Abingdon;VA;United States;4;36-41N;082-02W;;;631;; +KVKS;--;---;Vicksburg Municipal;MS;United States;4;32-14N;090-56W;;;32;; +KVLD;--;---;Valdosta, Valdosta Regional Airport;GA;United States;4;30-47N;083-17W;;;62;; +KVLG;--;---;The Villages;FL;United States;4;28-58N;081-58W;;;27;; +KVLL;--;---;Troy, Oakland/Troy Airport;MI;United States;4;42-32-34N;083-10-40W;;;222;; +KVNY;--;---;Van Nuys, Van Nuys Airport;CA;United States;4;34-12-45N;118-29-27W;34-12-29N;118-29-27W;243;245; +KVOK;--;---;Volk / Camp Douglas;WI;United States;4;43-56N;090-16W;;;277;; +KVPC;--;---;Cartersville, Cartersville Airport;GA;United States;4;34-07-42N;084-50-50W;34-07-22N;084-51-02W;233;222; +KVPS;72;221;Valparaiso / Eglin Air Force Base;FL;United States;4;30-29N;086-31W;30-29N;086-31W;26;29;P +KVPZ;--;---;Valparaiso, Porter County Municipal Airport;IN;United States;4;41-27-11N;086-59-53W;41-26-58N;087-00-33W;234;231; +KVQN;--;---;Volens;VA;United States;4;36-57N;078-59W;;;185;; +KVQQ;--;---;Jacksonville, Cecil Field Airport;FL;United States;4;30-13-07N;081-52-36W;;;25;; +KVRB;--;---;Vero Beach, Vero Beach Municipal Airport;FL;United States;4;27-39-20N;080-25-05W;27-39-05N;080-25-04W;7;10; +KVRX;--;---;Vermillion Area;LA;United States;4;28-35N;092-27W;;;1;; +KVSF;--;---;Springfield, Hartness State Springfield Airport;VT;United States;4;43-20-33N;072-31-18W;43-20-34N;072-31-19W;175;175; +KVTA;--;---;Newark, Newark Heath Airport;OH;United States;4;40-01-22N;082-27-45W;40-01-25N;082-27-49W;269;268; +KVTI;--;---;Vinton, Vinton Veterans Memorial Airpark Airport;IA;United States;4;42-13-07N;092-01-33W;;;258;; +KVTN;72;567;Valentine, Miller Field;NE;United States;4;42-51-31N;100-33-05W;42-51-41N;100-32-56W;789;788;P +KVTP;--;---;La Veta Mountain, La Veta Pass;CO;United States;4;37-30-04N;105-10-01W;;;3114;; +KVTX;--;---;Los Angeles Nexrad;CA;United States;4;34-25N;119-11W;;;856;; +KVUJ;--;---;Albemarle, Stanly County Airport;NC;United States;4;35-25-00N;080-09-03W;;;186;; +KVUO;--;---;Vancouver, Pearson Field Airport;WA;United States;4;45-37-13N;122-39-23W;;;8;; +KVUW;--;---;Eugene Island;LA;United States;4;28-15N;091-50W;;;1;; +KVVG;--;---;The Villages;FL;United States;4;28-58N;081-58W;;;27;; +KVVV;--;---;Ortonville, Ortonville Muncipal-Martinson Field Airport;MN;United States;4;45-18-20N;096-25-28W;;;335;; +KVWU;--;---;Waskish, Waskish Municipal Airport;MN;United States;4;48-09-15N;094-31-01W;;;360;; +KVYS;--;---;Peru, Illinois Valley Regional-Walter A Duncan Field Airport;IL;United States;4;41-21-07N;089-09-11W;;;199;; +KW08;--;---;Weirwood / Kellam Field;VA;United States;4;37-28N;075-53W;;;12;; +KW11;--;---;Menomonie, Menomonie Municipal Airport-Score Field;WI;United States;4;44-53-32N;091-52-04W;;;273;; +KW22;--;---;Buckhannon, Upshur County Regional Airport;WV;United States;4;39-00N;080-16W;;;498;; +KW30;74;595;Ocean City;MD;United States;4;38-20N;075-05W;;;4;4; +KW39;--;---;Norfolk / Chesapeak;VA;United States;4;36-54N;075-43W;;;23;; +KW44;--;---;Asheboro, Asheboro Municipal Airport;NC;United States;4;35-39-14N;079-53-42W;;;205;; +KW51;--;---;Cape Charles Coast Guard Station;VA;United States;4;37-15N;076-00W;;;2;; +KW60;--;---;West Cameron 560;LA;United States;4;28-09N;093-21W;;;0;; +KW63;--;---;Clarksville / Marks;VA;United States;4;36-36N;078-34W;;;128;; +KW71;--;---;Smith Point / Sunnybank;VA;United States;4;37-53N;076-11W;;;1;; +KW76;--;---;West Cameron B522;LA;United States;4;28-23N;093-30W;;;29;; +KW77;--;---;Sanford, Sanford-Lee County Brick Field Airport;NC;United States;4;35-26N;079-11W;;;131;; +KW99;--;---;Petersburg, Grant County Airport;WV;United States;4;38-59N;079-08W;;;293;; +KWAL;72;402;Wallops Island, Wallops Flight Facility Airport;VA;United States;4;37-56-26N;075-27-47W;37-56-26N;075-28-01W;12;14; +KWDD;71;273;Belle River;;Canada;4;42-18N;082-42W;;;184;; +KWDG;--;---;Enid, Enid Woodring Regional Airport;OK;United States;4;36-22-45N;097-47-28W;;;356;; +KWDR;--;---;Winder, Winder-Barrow Airport;GA;United States;4;33-58-56N;083-40-05W;;;287;; +KWEY;--;---;West Yellowstone;MT;United States;4;44-39N;111-06W;;;2031;; +KWHP;--;---;Los Angeles, Whiteman Airport;CA;United States;4;34-15N;118-24W;;;306;; +KWJF;--;---;Lancaster, General William J. Fox Airfield Airport;CA;United States;4;34-44-27N;118-13-08W;;;715;; +KWLD;--;---;Winfield / Arkansas City, Strother Field;KS;United States;4;37-10-05N;097-02-13W;37-10-11N;097-01-59W;353;350; +KWMC;72;583;Winnemucca, Winnemucca Municipal Airport;NV;United States;4;40-54-07N;117-48-26W;40-54-18N;117-48-24W;1311;1310;P +KWRB;--;---;Warner Robins Air Force Base;GA;United States;4;32-38N;083-36W;;;90;; +KWRI;--;---;Mcguire Air Force Base;NJ;United States;4;40-01N;074-36W;;;41;; +KWRL;--;---;Worland, Worland Municipal Airport;WY;United States;4;43-57-57N;107-57-03W;43-58-22N;107-57-02W;1288;1271; +KWST;--;---;Westerly, Westerly State Airport;RI;United States;4;41-20-59N;071-47-56W;41-21-02N;071-48-24W;24;21; +KWTR;--;---;Whitaker;WY;United States;4;41-41N;104-87W;;;1888;; +KWVI;--;---;Watsonville, Watsonville Municipal Airport;CA;United States;4;36-56-22N;121-47-20W;36-56-03N;121-47-12W;49;43; +KWVL;--;---;Waterville, Waterville Robert LaFleur Airport;ME;United States;4;44-32N;069-41W;;;102;; +KWWD;--;---;Wildwood, Cape May County Airport;NJ;United States;4;39-01N;074-55W;;;7;; +KWWR;74;641;Woodward, West Woodward Airport;OK;United States;4;36-26-12N;099-31-16W;36-26N;099-32W;667;667; +KWYS;--;---;West Yellowstone;MT;United States;4;44-41N;111-07W;;;2025;; +KX21;--;---;Titusville, Arthur Dunn Air Park;FL;United States;4;28-37-20N;080-50-08W;;;9;; +KX53;--;---;Clewiston;FL;United States;4;26-45N;080-57W;;;6;; +KX68;--;---;Titusville, NASA Shuttle Landing Facility;FL;United States;4;28-37N;080-42W;;;3;; +KX80;--;---;Jupiter Inlet Coast Guard Station;FL;United States;4;27-02N;080-07W;;;1;; +KX81;--;---;Lake Worth Inlet;FL;United States;4;26-46N;080-03W;;;1;; +KX82;--;---;Fort Pierce Coast Guard Station;FL;United States;4;27-28N;080-18W;;;1;; +KX84;--;---;Islamorada Coast Guard Station;FL;United States;4;24-57N;080-35W;;;1;; +KX86;--;---;Fowey Rocks Coast Guard Station;FL;United States;4;25-35N;080-06W;;;1;; +KX87;--;---;Miami Beach Coast Guard Station;FL;United States;4;25-46N;080-08W;;;1;; +KX88;--;---;Marathon Coast Guard Station;FL;United States;4;24-43N;081-07W;;;1;; +KX89;--;---;Ft. Myers Beach Coast Guard Station;FL;United States;4;26-27N;081-57W;;;1;; +KX90;--;---;Venice Long Range Navigation;FL;United States;4;27-05N;082-27W;;;1;; +KX91;--;---;Egmont Key Coast Guard Station;FL;United States;4;27-36N;082-46W;;;1;; +KXBP;--;---;Bridgeport, Bridgeport Municipal Airport;TX;United States;4;33-10-31N;097-49-42W;;;260;; +KXCN;--;---;Green Canyon 184;LA;United States;4;27-46N;091-31W;;;0;; +KXMR;74;794;Cocoa Beach, Cape Canaveral Air Force Station Skid Strip;FL;United States;4;28-28N;080-34W;28-28N;080-33W;3;3; +KXNA;--;---;Fayetteville/Springdale, Northwest Arkansas Regional Airport;AR;United States;4;36-16-55N; 094-18-25W;;;392;; +KXVG;--;---;Longville, Longville Municipal Airport;MN;United States;4;46-59-25N;094-12-14W;;;407;; +KXVW;--;---;Vandenberg Range;CA;United States;4;34-43N;120-34W;;;100;; +KY12;--;---;Airlake;MN;United States;4;44-38N;093-14W;;;292;; +KY15;--;---;Cheboygan, Cheboygan County Airport;MI;United States;4;45-39-13N;084-31-09W;;;195;; +KY26;--;---;Mobridge;SD;United States;4;45-32N;100-26W;;;508;; +KY39;--;---;Olivia, Olivia Regional Airport;MN;United States;4;44-46-43N;095-01-58W;;;328;; +KY50;--;---;Wautoma, Wautoma Municipal Airport;WI;United States;4;44-02-29N;089-18-16W;;;262;; +KY68;--;---;Tracy, Tracy Municipal Airport;MN;United States;4;44-14-56N;095-36-26W;;;408;; +KYAK;--;---;Yakutat, Yakutat Airport;AK;United States;4;59-30-37N;139-39-46W;59-30-48N;139-40-15W;10;10; +KYIP;--;---;Detroit, Willow Run Airport;MI;United States;4;42-14-12N;083-31-34W;42-14-05N;083-31-18W;218;215; +KYKM;72;781;Yakima, Yakima Air Terminal;WA;United States;4;46-33-51N;120-32-01W;46-34-14N;120-32-27W;333;324;P +KYKN;--;---;Yankton, Chan Gurney Municipal Airport;SD;United States;4;42-55N;097-23W;;;398;; +KYNG;72;525;Youngstown, Youngstown-Warren Regional Airport;OH;United States;4;41-15-16N;080-40-26W;41-15-48N;080-40-25W;364;360; +KYUM;72;280;Yuma / Yuma International;AZ;United States;4;32-39N;114-36W;32-52N;114-20W;65;63;P +KZAB;--;---;Albuquerque Radar Site;NM;United States;4;35-10N;106-34W;;;1621;; +KZLC;--;---;Salt Lake City;UT;United States;4;40-47N;111-57W;;;1288;; +KZSE;--;---;Auburn;WA;United States;4;47-17N;122-11W;;;99;; +KZZV;--;---;Zanesville, Zanesville Municipal Airport;OH;United States;4;39-56-40N;081-53-32W;39-56-50N;081-53-32W;274;268; +LATI;13;615;Tirana;;Albania;6;41-20N;019-47E;41-20N;019-47E;89;90;P +LBBG;15;655;Burgas;;Bulgaria;6;42-29N;027-29E;;;16;28;P +LBGO;--;---;Gorna Orechovista;;Bulgaria;6;43-09N;025-36E;;;;; +LBPD;15;625;Plovdiv;;Bulgaria;6;42-08N;024-45E;;;179;185;P +LBRS;15;535;Rousse;;Bulgaria;6;43-51N;025-57E;;;37;45;P +LBSF;15;614;Sofia Observ. ;;Bulgaria;6;42-39N;023-23E;42-39N;023-23E;586;595;P +LBWN;15;552;Varna;;Bulgaria;6;43-12N;027-55E;;;41;43;P +LCEN;--;---;Ercan;;Cyprus;6;35-09N;033-30E;;;91;; +LCLK;17;609;Larnaca Airport;;Cyprus;6;34-53N;033-38E;34-53N;033-38E;2;2;P +LCNC;17;607;Athalassa;;Cyprus;6;35-09N;033-24E;35-09N;033-24E;162;161; +LCPH;17;600;Paphos Airport;;Cyprus;6;34-43N;032-29E;34-43N;032-29E;11;8;P +LCRA;17;601;Akrotiri;;Cyprus;6;34-35N;032-59E;34-35N;032-59E;23;0; +LDDD;14;240;Zagreb / Maksimir;;Croatia;6;45-49N;016-02E;45-49N;016-02E;123;128; +LDDU;14;474;Dubrovnik / Cilipi;;Croatia;6;42-34N;018-16E;;;157;165; +LDLO;--;---;Losinj Island;;Croatia;6;44-33-57N;014-23-35E;;;45;; +LDOC;--;---;Cepin;;Croatia;;45-31N;018-33E;;;72;; +LDOR;14;370;Slavonski Brod;;Croatia;6;45-10N;018-00E;45-10N;018-00E;88;89; +LDOS;14;280;Osijek / Cepin;;Croatia;6;45-27N;018-48E;;;88;; +LDPL;14;307;Pula Aerodrome;;Croatia;6;45-54N;013-55E;;;63;63; +LDRI;13;116;Rijeka / Omisalj;;Croatia;6;45-13N;014-35E;;;85;; +LDSB;--;---;Brac;;Croatia;6;43-17-09N;016-40-47E;;;541;; +LDSH;14;447;Hvar;;Croatia;6;43-10N;016-27E;;;20;25; +LDSP;14;444;Split / Resnik;;Croatia;6;43-32N;016-18E;;;19;21; +LDVA;14;246;Varazdin;;Croatia;6;46-18N;016-23E;;;167;168; +LDZA;14;241;Zagreb / Pleso;;Croatia;6;45-44N;016-04E;;;106;107; +LDZD;14;431;Zadar / Zemunik;;Croatia;6;44-06N;015-21E;;;82;; +LEAB;08;280;Albacete / Los Llanos;;Spain;6;38-57N;001-51W;38-57N;001-51W;702;704;P +LEAL;08;360;Alicante / El Altet;;Spain;6;38-17N;000-33W;;;43;31;P +LEAM;08;487;Almeria / Aeropuerto;;Spain;6;36-51N;002-23W;36-51N;002-23W;15;21;P +LEAS;08;011;Asturias / Aviles;;Spain;6;43-33N;006-02W;;;127;130; +LEBA;08;410;Cordoba / Aeropuerto;;Spain;6;37-51N;004-51W;;;90;92;P +LEBB;08;025;Bilbao / Sondica;;Spain;6;43-18N;002-56W;;;42;37;P +LEBG;08;075;Burgos / Villafria;;Spain;6;42-22N;003-38W;;;894;891;P +LEBL;08;181;Barcelona / Aeropuerto;;Spain;6;41-17N;002-04E;41-17N;002-04E;4;6;P +LEBZ;08;330;Badajoz / Talavera La Real;;Spain;6;38-53N;006-49W;38-53N;006-49W;185;192;P +LECH;08;233;Calamocha;;Spain;6;40-56N;001-18W;;;890;889; +LECO;08;002;La Coruna / Alvedro;;Spain;6;43-18N;008-23W;43-18N;008-23W;97;103; +LECV;08;219;Madri-Colmenar;;Spain;6;40-39N;003-44W;;;;; +LEGA;--;---;Granada / Armilla;;Spain;6;37-08N;003-38-08W;;;700;; +LEGE;08;184;Gerona / Costa Brava;;Spain;6;41-54N;002-46E;;;143;129; +LEGR;08;419;Granada / Aeropuerto;;Spain;6;37-11N;003-47W;;;567;570;P +LEGT;08;224;Madrid / Getafe;;Spain;6;40-18N;003-43W;;;620;617; +LEHI;08;335;Hinojosa Del Duque;;Spain;6;38-31N;005-07W;;;540;540; +LEIB;08;373;Ibiza / Es Codola;;Spain;6;38-52N;001-23E;;;7;12;P +LEJR;08;451;Jerez De La Fronteraaeropuerto;;Spain;6;36-45N;006-04W;;;27;28;P +LELC;08;433;Murcia / San Javier;;Spain;6;37-47N;000-48W;37-47N;000-48W;5;3;P +LELL;--;---;Sabadell;;Spain;6;41-31N;002-06E;;;250;; +LELN;08;055;Leon / Virgen Del Camino;;Spain;6;42-35N;005-39W;42-35N;005-39W;926;914;P +LELO;08;084;Logrono / Agoncillo;;Spain;6;42-27N;002-20W;42-27N;002-20W;353;363;P +LEMD;08;221;Madrid / Barajas;;Spain;6;40-27N;003-33W;40-30N;003-35W;609;582;P +LEMG;08;482;Malaga / Aeropuerto;;Spain;6;36-40N;004-29W;36-40N;004-29W;16;7;P +LEMH;08;314;Menorca / Mahon;;Spain;6;39-52N;004-14E;39-52N;004-14E;87;82;P +LEMO;08;397;Moron De La Frontera;;Spain;6;37-09N;005-37W;;;87;88; +LEPA;08;306;Palma De Mallorca / Son San Juan;;Spain;6;39-33N;002-44E;;;4;8;P +LEPP;08;085;Pamplona / Noain;;Spain;6;42-46N;001-38W;;;459;453; +LERI;08;429;Murcia / Alcantarilla;;Spain;6;37-57N;001-14W;;;75;75; +LERS;08;175;Reus / Aeropuerto;;Spain;6;41-09N;001-10E;;;71;76; +LERT;08;449;Rota;;Spain;6;36-39N;006-21W;36-39N;006-21W;26;26; +LESA;08;202;Salamanca / Matacan;;Spain;6;40-57N;005-30W;40-57N;005-30W;793;795;P +LESO;08;029;San Sebastian / Fuenterrabia;;Spain;6;43-21N;001-48W;;;5;8; +LEST;08;042;Santiago / Labacolla;;Spain;6;42-54N;008-26W;;;370;367;P +LETO;08;227;Madrid / Torrejon;;Spain;6;40-29N;003-27W;;;607;611; +LEVC;08;284;Valencia / Aeropuerto;;Spain;6;39-30N;000-28W;39-30N;000-28W;69;62;P +LEVD;08;140;Valladolid / Villanubla;;Spain;6;41-43N;004-51W;41-43N;004-51W;849;846;P +LEVS;08;223;Madrid / Cuatro Vientos;;Spain;6;40-23N;003-47W;;;690;687; +LEVT;08;080;Vitoria;;Spain;6;42-53N;002-43W;;;513;510; +LEVX;08;045;Vigo / Peinador;;Spain;6;42-13N;008-38W;;;264;255;P +LEXJ;08;021;Santander / Parayas;;Spain;6;43-26N;003-49W;;;6;9; +LEZA;--;---;Zaragoza United States Air Force Operated Base In Foreign Country ;;Spain;6;41-40N;001-03W;;;263;; +LEZG;08;160;Zaragoza / Aeropuerto;;Spain;6;41-40N;001-01W;41-40N;001-01W;263;258;P +LEZL;08;391;Sevilla / San Pablo;;Spain;6;37-25N;005-54W;37-25N;005-54W;34;31;P +LFAT;07;003;Le Touquet;;France;6;50-31N;001-37E;;;10;14;P +LFBA;07;524;Agen;;France;6;44-11N;000-36E;;;61;60;P +LFBC;07;502;Cazaux;;France;6;44-32N;001-08W;44-32N;001-08W;25;33;P +LFBD;07;510;Bordeaux / Merignac;;France;6;44-50N;000-42W;44-50N;000-42W;49;61;P +LFBE;07;530;Bergerac;;France;6;44-49N;000-31E;;;51;52;P +LFBF;07;631;Toulouse / Francazal;;France;6;43-32N;001-22E;;;164;166;P +LFBG;07;412;Cognac;;France;6;45-40N;000-19W;45-40N;000-19W;30;31;P +LFBH;07;315;La Rochelle;;France;6;46-09N;001-09W;;;4;10;P +LFBI;07;335;Poitiers;;France;6;46-35N;000-19E;46-35N;000-19E;129;120;P +LFBK;--;---;Montlucon / Gueret;;France;6;46-13N;002-22E;;;415;; +LFBL;07;434;Limoges;;France;6;45-52N;001-11E;45-52N;001-11E;396;402;P +LFBM;07;607;Mont-De-Marsan;;France;6;43-55N;000-30W;43-55N;000-30W;62;63;P +LFBN;07;330;Niort;;France;6;46-19N;000-24W;;;61;61;P +LFBO;07;630;Toulouse / Blagnac;;France;6;43-38N;001-22E;43-38N;001-22E;152;153;P +LFBP;07;610;Pau;;France;6;43-23N;000-25W;;;188;185;P +LFBS;07;503;Biscarosse;;France;6;44-26N;001-15W;44-26N;001-15W;33;39;P +LFBT;07;621;Tarbes Ossun Lourdes;;France;6;43-11N;000-00W;;;379;363;P +LFBV;07;438;Brive;;France;6;45-09N;001-28E;;;111;117;P +LFBX;07;428;Perigueux;;France;6;45-12N;000-49E;;;100;97; +LFBY;07;603;Dax;;France;6;43-41N;001-04W;43-41N;001-04W;32;32;P +LFBZ;07;602;Biarritz;;France;6;43-28N;001-32W;43-28N;001-32W;75;71;P +LFCG;07;627;St-Girons;;France;6;43-00N;001-06E;43-00N;001-06E;414;412;P +LFCI;07;632;Albi;;France;6;43-55N;002-07E;;;172;178;P +LFCR;07;552;Rodez;;France;6;44-24N;002-29E;;;581;580; +LFDH;07;622;Auch;;France;6;43-41N;000-36E;;;125;128;P +LFFS;--;---;Suippes Range Met ;;France;6;49-09N;004-32E;;;199;; +LFGJ;--;---;Dole Tavaux;;France;6;47-02-34N;005-26-06E;;;196;; +LFHP;07;471;Le Puy;;France;6;45-05N;003-46E;;;832;833;P +LFIG;07;555;Cassagnes-Begonhes;;France;6;44-11N;002-31E;;;1020;; +LFJL;07;093;Metz-Nancy-Lorraine;;France;6;48-59N;006-15E;;;264;; +LFKB;07;790;Bastia;;France;6;42-33N;009-29E;42-33N;009-29E;8;12;P +LFKC;07;754;Calvi;;France;6;42-32N;008-48E;;;64;58;P +LFKF;07;780;Figari;;France;6;41-30N;009-06E;;;26;23;P +LFKJ;07;761;Ajaccio;;France;6;41-55N;008-48E;41-55N;008-48E;6;9;P +LFKS;07;765;Solenzara;;France;6;41-55N;009-24E;41-55N;009-24E;8;22;P +LFLA;07;265;Auxerre;;France;6;47-48N;003-33E;47-48N;003-33E;207;212;P +LFLB;07;491;Chambery / Aix-Les-Bains;;France;6;45-39N;005-53E;;;235;239;P +LFLC;07;460;Clermont-Ferrand;;France;6;45-47N;003-10E;45-47N;003-10E;332;330;P +LFLD;07;255;Bourges;;France;6;47-04N;002-22E;47-04N;002-22E;161;166;P +LFLL;07;481;Lyon / Satolas;;France;6;45-44N;005-05E;45-44N;005-05E;248;240;P +LFLM;07;385;Macon;;France;6;46-18N;004-48E;46-18N;004-48E;221;217;P +LFLN;07;379;Saint-Yan;;France;6;46-25N;004-01E;;;242;244;P +LFLQ;07;577;Montelimar;;France;6;44-35N;004-44E;44-35N;004-44E;73;74;P +LFLS;07;486;Grenoble / St. Geoirs;;France;6;45-22N;005-20E;;;384;386;P +LFLV;07;374;Vichy;;France;6;46-10N;003-24E;;;249;251;P +LFLW;07;549;Aurillac;;France;6;44-54N;002-25E;;;640;639;P +LFLX;07;354;Chateauroux;;France;6;46-51N;001-43E;;;160;157;P +LFLY;07;480;Lyon / Bron;;France;6;45-43N;004-57E;45-43N;004-57E;200;201;P +LFMA;07;649;Aix Les Milles;;France;6;43-30N;005-22E;;;111;111;P +LFMC;07;675;Le Luc;;France;6;43-23N;006-23E;;;80;78;P +LFMD;07;684;Cannes;;France;6;43-33N;006-57E;;;3;9;P +LFME;07;645;Nimes / Courbessac;;France;6;43-52N;004-24E;43-52N;004-24E;60;62;P +LFMH;07;475;St-Etienne Boutheon;;France;6;45-32N;004-18E;;;404;402;P +LFMI;07;647;Istres;;France;6;43-31N;004-56E;;;23;24;P +LFMK;07;635;Carcassonne;;France;6;43-13N;002-19E;43-13N;002-19E;130;130;P +LFML;07;650;Marseille / Marignane;;France;6;43-27N;005-14E;43-27N;005-13E;6;36;P +LFMN;07;690;Nice;;France;6;43-39N;007-12E;43-39N;007-12E;4;10;P +LFMO;07;579;Orange;;France;6;44-08N;004-50E;;;60;55;P +LFMP;07;747;Perpignan;;France;6;42-44N;002-52E;42-44N;002-52E;43;48;P +LFMT;07;643;Montpellier;;France;6;43-35N;003-58E;;;5;6;P +LFMU;--;---;Beziers / Vias;;France;6;43-19N;003-21E;;;17;; +LFMX;07;588;St-Auban-Sur-Durance;;France;6;44-04N;006-00E;44-04N;006-00E;460;461;P +LFMY;07;648;Salon;;France;6;43-36N;005-06E;;;59;60;P +LFNB;--;---;Mende / Brenoux;;France;6;44-30N;003-32E;;;1024;; +LFOA;--;---;Avord;;France;6;47-03-12N;002-37-57E;;;177;; +LFOB;07;055;Beauvais;;France;6;49-28N;002-07E;;;109;111;P +LFOC;07;140;Chateaudun;;France;6;48-03N;001-23E;;;134;127;P +LFOE;07;038;Evreux;;France;6;49-01N;001-13E;;;141;146;P +LFOF;07;139;Alencon;;France;6;48-27N;000-07E;48-27N;000-07E;144;141;P +LFOH;07;028;La Heve;;France;6;49-31N;000-04E;;;100;103;P +LFOI;07;005;Abbeville;;France;6;50-08N;001-50E;50-08N;001-50E;74;77;P +LFOJ;07;249;Orleans;;France;6;47-59N;001-45E;47-59N;001-45E;126;125;P +LFOK;--;---;Chalons-Vatry;;France;6;48-46-34N;004-11-04E;;;179;; +LFOP;07;037;Rouen;;France;6;49-23N;001-11E;49-23N;001-11E;157;157;P +LFOR;07;143;Chartres;;France;6;48-28N;001-31E;;;155;156;P +LFOS;07;033;Vittefleur / St. Vale;;France;6;49-50N;000-39E;;;83;; +LFOT;07;240;Tours;;France;6;47-27N;000-43E;47-27N;000-43E;108;112;P +LFOW;07;061;Saint-Quentin;;France;6;49-49N;003-12E;49-49N;003-12E;98;101;P +LFPB;07;150;Paris / Le Bourget;;France;6;48-58N;002-27E;;;66;65;P +LFPC;07;057;Creil Fafb ;;France;6;49-15N;002-31E;;;88;; +LFPG;07;157;Paris-Aeroport Charles De Gaulle;;France;6;49-01N;002-32E;;;118;109;P +LFPM;07;153;Melun;;France;6;48-37N;002-41E;;;95;92;P +LFPN;07;146;Toussus Le Noble;;France;6;48-46N;001-06E;;;164;161;P +LFPO;07;149;Paris-Orly;;France;6;48-44N;002-24E;48-44N;002-24E;89;96;P +LFPV;07;147;Villacoublay;;France;6;48-46N;002-12E;;;177;179;P +LFPW;--;---;Paris Met Center;;France;6;48-50N;002-20E;;;75;; +LFQB;07;168;Troyes;;France;6;48-20N;004-01E;;;118;118;P +LFQG;07;260;Nevers;;France;6;47-00N;003-06E;;;180;181;P +LFQH;07;276;Chatillon-Sur-Seine;;France;6;47-51N;004-33E;;;264;; +LFQI;07;017;Cambrai;;France;6;50-13N;003-09E;;;78;77;P +LFQQ;07;015;Lille;;France;6;50-34N;003-06E;50-34N;003-06E;48;52;P +LFQV;07;075;Charleville;;France;6;49-47N;004-38E;;;149;150;P +LFRA;07;230;Angers;;France;6;47-30N;000-34W;;;57;58;P +LFRB;07;110;Brest;;France;6;48-27N;004-25W;48-27N;004-25W;99;103;P +LFRC;07;024;Cherbourg / Maupertus;;France;6;49-39N;001-28W;49-39N;001-28W;138;139; +LFRD;07;125;Dinard;;France;6;48-35N;002-04W;;;65;60; +LFRH;07;205;Lann Bihoue;;France;6;47-46N;003-27W;;;52;44;P +LFRI;07;306;La Roche-Sur-Yon;;France;6;46-42N;001-23W;;;90;91;P +LFRJ;07;106;Landivisiau;;France;6;48-31N;004-09W;;;106;115;P +LFRK;07;027;Caen;;France;6;49-11N;000-27W;;;78;67;P +LFRL;07;109;Lanveoc Poulmic;;France;6;48-17N;004-26W;;;87;82;P +LFRM;07;235;Le Mans;;France;6;47-56N;000-12E;;;59;52;P +LFRN;07;130;Rennes;;France;6;48-04N;001-44W;48-04N;001-44W;37;37;P +LFRO;--;---;Lannion / Servel;;France;6;48-45N;003-28W;;;89;; +LFRQ;07;201;Quimper;;France;6;47-58N;004-10W;;;92;94;P +LFRS;07;222;Nantes;;France;6;47-10N;001-36W;47-10N;001-36W;27;27;P +LFRT;07;120;Saint-Brieuc;;France;6;48-32N;002-51W;;;138;136;P +LFRU;--;---;Morlaix / Ploujean;;France;6;48-36N;003-49W;;;86;; +LFRZ;07;217;St-Nazaire;;France;6;47-19N;002-10W;;;3;4;P +LFSA;07;288;Besancon;;France;6;47-15N;005-59E;;;307;309;P +LFSB;07;299;Bale-Mulhouse;;France;6;47-36N;007-31E;;;270;271;P +LFSC;07;197;Colmar;;France;6;47-55N;007-24E;;;211;217;P +LFSD;07;280;Dijon;;France;6;47-16N;005-05E;47-16N;005-05E;222;227;P +LFSF;07;090;Metz / Frescaty;;France;6;49-05N;006-08E;;;190;191;P +LFSI;07;169;St-Dizier;;France;6;48-38N;004-54E;;;139;140;P +LFSL;07;179;Toul / Rosieres;;France;6;48-47N;005-29E;;;285;298;P +LFSN;07;180;Nancy / Essey;;France;6;48-41N;006-13E;48-41N;006-13E;225;217;P +LFSO;07;181;Nancy / Ochey;;France;6;48-35N;005-58E;;;336;350;P +LFSQ;07;295;Belfort;;France;6;47-38N;006-52E;;;422;423;P +LFSR;07;070;Reims;;France;6;49-18N;004-02E;49-18N;004-02E;95;99;P +LFST;07;190;Strasbourg;;France;6;48-33N;007-38E;;;153;154;P +LFSX;07;292;Luxeuil;;France;6;47-47N;006-21E;;;278;273;P +LFTH;07;667;Hyeres;;France;6;43-06N;006-09E;;;3;4;P +LFTU;07;680;St-Raphael;;France;6;43-25N;006-45E;43-25N;006-45E;2;6;P +LFTW;07;646;Nimes / Garons;;France;6;43-45N;004-25E;;;94;96;P +LFVP;71;805;Saint-Pierre;;Saint Pierre and Miquelon;4;46-46N;056-10W;46-46N;056-10W;3;5;P +LFXA;07;482;Amberieu;;France;6;45-59N;005-20E;;;250;257;P +LFYR;07;247;Romorantin;;France;6;47-19N;001-41E;;;85;86;P +LGAD;16;682;Andravida Airport ;;Greece;6;37-55N;021-17E;;;10;14;P +LGAL;16;627;Alexandroupoli Airport ;;Greece;6;40-51N;025-55E;;;7;3;P +LGAT;16;716;Athinai Airport ;;Greece;6;37-54N;023-44E;37-54N;023-44E;28;15;P +LGAV;--;---;Athens Eleftherios Venizelos International Airport;;Greece;6;37-56N;023-56E;;;94 +LGBL;16;665;Anchialos Airport ;;Greece;6;39-13N;022-48E;;;25;15; +LGEL;16;718;Elefsis Airport ;;Greece;6;38-04N;023-33E;;;44;31; +LGHI;16;706;Chios Airport ;;Greece;6;38-20N;026-08E;;;5;4;P +LGIR;16;754;Heraklion Airport ;;Greece;6;35-20N;025-11E;35-20N;025-11E;37;39;P +LGKA;16;614;Kastoria Airport ;;Greece;6;40-27N;021-17E;;;604;;P +LGKC;--;---;Kithira Airport;;Greece;6;36-17-21N;023-01-24E;;;321;; +LGKF;16;685;Kefalhnia Airport ;;Greece;6;38-07N;020-30E;;;19;22; +LGKL;16;726;Kalamata Airport ;;Greece;6;37-04N;022-01E;;;6;8; +LGKO;16;742;Kos Airport ;;Greece;6;36-47N;027-04E;;;129;;P +LGKP;16;765;Karpathos Airport;;Greece;6;35-24-51N;027-08-54E;;;6;; +LGKR;16;641;Kerkyra Airport ;;Greece;6;39-37N;019-55E;;;2;4;P +LGKV;16;624;Chrysoupoli Airport ;;Greece;6;40-59N;024-36E;;;5;5;P +LGKZ;16;632;Kozani Airport ;;Greece;6;40-18N;021-47E;;;634;627; +LGLM;16;650;Limnos Airport ;;Greece;6;39-55N;025-14E;;;5;4;P +LGLR;16;648;Larissa Airport ;;Greece;6;39-38N;022-25E;;;73;74; +LGMK;--;---;Mikonos Island, Mikonos Airport;;Greece;6;37-26-09N;025-20-45E;;;123;; +LGMT;16;667;Mytilini Airport ;;Greece;6;39-04N;026-36E;;;3;5;P +LGNX;--;---;Cyclades Islands, Naxos Airport;;Greece;6;37-04-47N;025-22-01E;;;3;; +LGPA;--;---;Paros Community Airport;;Greece;6;37-00-40N;025-07-32E;;;36;; +LGPZ;16;643;Aktion Airport ;;Greece;6;38-37N;020-46E;;;4;4;P +LGRD;--;---;Rhodes / Maritsa;;Greece;6;36-23N;028-07E;;;62;; +LGRP;16;749;Rhodes Airport ;;Greece;6;36-24N;028-05E;36-23N;028-07E;4;11;P +LGRX;16;687;Araxos Airport ;;Greece;6;38-09N;021-25E;38-10N;021-25E;11;12; +LGSA;16;746;Souda Airport ;;Greece;6;35-29N;024-07E;;;146;151;P +LGSK;--;---;Skiathos Island;;Greece;6;39-11N;023-30E;;;15;; +LGSM;16;723;Samos Airport ;;Greece;6;37-42N;026-55E;;;2;7; +LGSO;--;---;Syros Airport;;Greece;6;37-25-16N;024-56-54E;;;73;; +LGSR;--;---;Santorini Island;;Greece;6;36-24N;025-29E;;;38;; +LGTG;16;699;Tanagra Airport ;;Greece;6;38-19N;023-32E;;;148;140; +LGTP;16;710;Tripolis Airport;;Greece;6;37-32N;022-24E;;;644;652; +LGTS;16;622;Thessaloniki Airport ;;Greece;6;40-31N;022-58E;40-31N;022-58E;8;4;P +LGTT;16;715;Tatoi;;Greece;6;38-06N;023-47E;;;239;235; +LGZA;--;---;Zakinthos Airport ;;Greece;6;37-45N;020-53E;;;3;; +LHBC;12;992;Bekescsaba;;Hungary;6;46-41N;021-10E;;;88;90;P +LHBM;12;840;Budapest Met Center;;Hungary;6;47-31N;019-02E;;;129;; +LHBP;12;839;Budapest / Ferihegy;;Hungary;6;47-26N;019-16E;;;151;185; +LHBS;12;838;Budaors;;Hungary;6;47-27N;018-58E;;;132;; +LHDC;12;882;Debrecen;;Hungary;6;47-29N;021-36E;47-29N;021-38E;108;109;P +LHKE;12;970;Kecskemet;;Hungary;6;46-55N;019-45E;;;113;123;P +LHKV;12;930;Kaposvar;;Hungary;6;46-23N;017-50E;;;144;145; +LHMC;12;772;Miskolc;;Hungary;6;48-05N;020-46E;48-06N;020-47E;232;236;P +LHNY;12;892;Nyiregyhaza / Napkor;;Hungary;6;47-58N;021-59E;;;141;142;P +LHPA;12;825;Papa;;Hungary;6;47-12N;017-30E;;;145;146;P +LHPP;12;942;Pecs / Pogany;;Hungary;6;46-06N;018-14E;46-00N;018-14E;201;203;P +LHSA;--;---;Szentkiralyszabadja;;Hungary;6;47-04N;017-59E;;;280;; +LHSK;12;935;Siofok;;Hungary;6;46-55N;018-03E;46-55N;018-03E;108;109;P +LHSN;12;860;Szolnok;;Hungary;6;47-07N;020-14E;47-10N;020-14E;89;94;P +LHSY;12;812;Szombathely;;Hungary;6;47-16N;016-38E;47-16N;016-38E;220;221;P +LHTA;--;---;Taszar;;Hungary;6;46-24N;017-55E;;;160;; +LHTL;--;---;Tokol;;Hungary;6;47-21N;018-59E;;;101;; +LHUD;12;982;Szeged;;Hungary;6;46-15N;020-06E;46-15N;020-06E;82;83;P +LIBA;16;261;Amendola;;Italy;6;41-32N;015-43E;;;57;60;P +LIBC;16;350;Crotone;;Italy;6;39-00N;017-04E;;;155;161;P +LIBD;16;270;Bari / Palese Macchie;;Italy;6;41-08N;016-47E;;;34;49;P +LIBE;16;258;Monte S. Angelo;;Italy;6;41-42N;015-57E;;;838;844; +LIBG;16;324;Grottaglie;;Italy;6;40-31N;017-24E;;;64;69; +LIBH;16;325;Marina Di Ginosa;;Italy;6;40-26N;016-53E;;;2;12;P +LIBN;16;332;Lecce;;Italy;6;40-14N;018-09E;;;48;61; +LIBP;16;230;Pescara;;Italy;6;42-26N;014-12E;42-26N;014-12E;10;11;P +LIBQ;16;344;Monte Scuro;;Italy;6;39-20N;016-24E;;;1710;1720; +LIBR;16;320;Brindisi;;Italy;6;40-39N;017-57E;40-39N;017-57E;15;10;P +LIBS;16;252;Campobasso;;Italy;6;41-34N;014-39E;;;793;807;P +LIBT;16;232;Termoli;;Italy;6;42-00N;015-00E;;;16;44; +LIBU;16;316;Latronico;;Italy;6;40-05N;016-01E;;;888;896; +LIBV;16;312;Gioia Del Colle;;Italy;6;40-46N;016-56E;;;345;350; +LIBW;16;337;Bonifati;;Italy;6;39-35N;015-53E;39-35N;015-53E;484;485; +LIBY;16;360;S. Maria Di Leuca;;Italy;6;39-49N;018-21E;;;104;112;P +LIBZ;16;300;Potenza;;Italy;6;40-38N;015-48E;40-38N;015-48E;823;843;P +LICA;16;362;Lamezia Terme;;Italy;6;38-54N;016-15E;;;15;;P +LICB;--;---;Comiso As Usaf ;;Italy;6;36-56N;014-36E;;;220;; +LICC;16;460;Catania / Fontanarossa;;Italy;6;37-28N;015-03E;37-28N;015-03E;11;17;P +LICD;16;490;Lampedusa;;Italy;6;35-30N;012-36E;;;16;20;P +LICE;16;450;Enna;;Italy;6;37-34N;014-17E;;;940;965; +LICF;16;420;Messina;;Italy;6;38-12N;015-33E;38-12N;015-33E;59;51;P +LICG;16;470;Pantelleria;;Italy;6;36-49N;011-58E;36-49N;011-58E;191;170;P +LICJ;16;405;Palermo / Punta Raisi;;Italy;6;38-11N;013-06E;38-11N;013-06E;21;21;P +LICL;16;453;Gela;;Italy;6;37-05N;014-13E;;;11;33;P +LICM;--;---;Calopezzati ;;Italy;6;39-33N;016-48E;;;179;; +LICO;16;480;Cozzo Spadaro;;Italy;6;36-41N;015-08E;;;46;51;P +LICP;16;410;Palermo Boccadifalco;;Italy;6;38-06N;013-18E;;;107;117; +LICR;16;422;Reggio Calabria;;Italy;6;38-04N;015-39E;;;11;21; +LICT;16;429;Trapani / Birgi;;Italy;6;37-55N;012-30E;37-55N;012-30E;7;14;P +LICU;16;400;Ustica;;Italy;6;38-42N;013-11E;38-42N;013-11E;250;251;P +LICZ;16;459;Catania / Sigonella;;Italy;6;37-24N;014-55E;;;22;22; +LIEA;16;520;Alghero;;Italy;6;40-38N;008-17E;40-38N;008-17E;23;40;P +LIEB;16;550;Capo Bellavista;;Italy;6;39-56N;009-43E;;;138;150;P +LIEC;16;564;Capo Carbonara;;Italy;6;39-06N;009-31E;;;116;118; +LIED;16;546;Decimomannu;;Italy;6;39-21N;008-58E;;;29;28; +LIEE;16;560;Cagliari / Elmas;;Italy;6;39-15N;009-04E;39-15N;009-03E;4;5;P +LIEF;16;539;Capo Frasca;;Italy;6;39-45N;008-28E;;;89;95;P +LIEG;16;506;Guardiavecchia;;Italy;6;41-13N;009-24E;;;158;159;P +LIEH;16;522;Capo Caccia;;Italy;6;40-34N;008-10E;40-34N;008-10E;200;204; +LIEL;16;542;Capo S. Lorenzo;;Italy;6;39-30N;009-38E;;;4;5; +LIEN;16;538;Fonni;;Italy;6;40-07N;009-15E;;;1022;1029; +LIEO;16;531;Olbia / Costa Smeralda;;Italy;6;40-54N;009-31E;;;11;13; +LIEP;16;541;Perdasdefogu;;Italy;6;39-40N;009-26E;;;608;606; +LIMC;16;066;Milano / Malpensa;;Italy;6;45-37N;008-44E;;;234;211;P +LIME;16;076;Bergamo / Orio Al Serio;;Italy;6;45-40N;009-42E;;;238;237; +LIMF;16;059;Torino / Caselle;;Italy;6;45-13N;007-39E;45-13N;007-39E;301;287;P +LIMG;16;122;Albenga;;Italy;6;44-03N;008-07E;;;45;49; +LIMH;16;052;Pian Rosa;;Italy;6;45-56N;007-42E;;;3480;3488;P +LIMJ;16;120;Genova / Sestri;;Italy;6;44-25N;008-51E;;;2;3;P +LIMK;16;061;Torino / Bric Della Croce;;Italy;6;45-02N;007-44E;;;709;710; +LIML;16;080;Milano / Linate;;Italy;6;45-26N;009-17E;45-26N;009-17E;107;103;P +LIMN;16;064;Novara / Cameri;;Italy;6;45-31N;008-40E;;;178;169; +LIMO;16;072;Monte Bisbino;;Italy;6;45-52N;009-04E;;;1319;1322; +LIMP;--;---;Parma;;Italy;6;44-49-17N;010-17-41E;;;50;; +LIMS;16;084;Piacenza;;Italy;6;44-55N;009-44E;;;134;138;P +LIMT;16;124;Passo Della Cisa;;Italy;6;44-26N;009-56E;;;1039;1040; +LIMU;16;153;Capo Mele;;Italy;6;43-57N;008-10E;43-57N;008-10E;220;221;P +LIMV;16;119;Passo Dei Giovi;;Italy;6;44-38N;008-56E;;;468;475; +LIMY;16;115;Monte Malanotte;;Italy;6;44-15N;007-48E;;;1741;1742; +LIMZ;--;---;Cuneo / Levaldigi;;Italy;6;44-32-47N;007-37-20E;;;386;; +LIPA;16;036;Aviano;;Italy;6;46-02N;012-36E;;;128;128; +LIPB;16;020;Bolzano;;Italy;6;46-28N;011-20E;;;1459;1461;P +LIPC;16;148;Cervia;;Italy;6;44-13N;012-18E;;;6;10; +LIPD;16;044;Udine / Campoformido;;Italy;6;46-02N;013-11E;46-02N;013-11E;93;94;P +LIPE;16;140;Bologna / Borgo Panigale;;Italy;6;44-32N;011-18E;44-32N;011-18E;36;49; +LIPF;16;138;Ferrara;;Italy;6;44-50N;011-37E;;;10;10; +LIPH;16;099;Treviso / S. Angelo;;Italy;6;45-39N;012-11E;;;18;23; +LIPI;16;045;Udine / Rivolto;;Italy;6;45-59N;013-02E;;;51;53;P +LIPK;16;147;Forli;;Italy;6;44-12N;012-04E;;;27;32; +LIPL;16;088;Brescia / Ghedi;;Italy;6;45-25N;010-17E;;;102;97; +LIPO;--;---;Brescia / Montichia;;Italy;6;45-24-02N;010-18-59E;;;104;; +LIPP;--;---;Dova Area Control Center;;Italy;6;45-24N;011-52E;;;14;; +LIPQ;16;108;Ronchi Dei Legionari;;Italy;6;45-49N;013-29E;;;12;12; +LIPR;16;149;Rimini;;Italy;6;44-02N;012-37E;;;12;13;P +LIPS;16;098;Treviso / Istrana;;Italy;6;45-41N;012-06E;;;45;46; +LIPT;16;094;Vicenza;;Italy;6;45-34N;011-31E;;;39;53; +LIPX;16;090;Verona / Villafranca;;Italy;6;45-23N;010-52E;;;67;68;P +LIPY;16;191;Falconara;;Italy;6;43-37N;013-22E;;;12;10;P +LIPZ;16;105;Venezia / Tessera;;Italy;6;45-30N;012-20E;45-30N;012-20E;2;6;P +LIQB;16;172;Arezzo;;Italy;6;43-28N;011-51E;;;248;249; +LIQC;16;294;Capri;;Italy;6;40-33N;014-12E;;;160;161; +LIQD;--;---;Porretta Pass;;Italy;6;44-02N;010-56E;;;932;; +LIQI;--;---;Gran Sasso Mountain Range ;;Italy;6;42-27N;013-42E;;;2138;; +LIQJ;16;214;Civitavecchia;;Italy;6;42-02N;011-50E;;;3;4; +LIQK;16;310;Capo Palinuro;;Italy;6;40-01N;015-17E;;;184;185;P +LIQN;16;221;Rieti;;Italy;6;42-25N;012-51E;;;389;; +LIQO;16;168;Monte Argentario;;Italy;6;42-23N;011-10E;;;630;631; +LIQP;16;129;Isola Di Palmaria;;Italy;6;44-02N;009-50E;;;192;191; +LIQR;16;204;Radicofani;;Italy;6;42-54N;011-46E;;;816;828; +LIQV;16;164;Volterra;;Italy;6;43-24N;010-52E;;;555;575; +LIQW;16;125;Sarzana / Luni;;Italy;6;44-05N;009-59E;;;9;10; +LIQZ;16;280;Ponza;;Italy;6;40-55N;012-57E;;;184;185;P +LIRA;16;239;Roma / Ciampino;;Italy;6;41-47N;012-35E;;;129;105; +LIRB;16;224;Vigna Di Valle;;Italy;6;42-05N;012-13E;;;262;266; +LIRE;16;245;Pratica Di Mare;;Italy;6;41-39N;012-27E;41-39N;012-26E;6;21; +LIRF;16;242;Roma Fiumicino;;Italy;6;41-48N;012-14E;41-48N;012-14E;2;3; +LIRG;16;234;Guidonia;;Italy;6;42-00N;012-44E;;;88;89; +LIRH;16;244;Frosinone;;Italy;6;41-38N;013-18E;;;180;185; +LIRI;--;---;Pontecagnano Air Force Base ;;Italy;6;40-37N;014-55E;;;40;; +LIRJ;16;197;M. Calamita;;Italy;6;42-44N;010-24E;;;396;397; +LIRK;16;219;Monte Terminillo;;Italy;6;42-28N;012-59E;;;1874;1875;P +LIRL;16;243;Latina;;Italy;6;41-33N;012-54E;;;25;26; +LIRM;16;253;Grazzanise;;Italy;6;41-03N;014-04E;;;9;10; +LIRN;16;289;Napoli / Capodichino;;Italy;6;40-51N;014-18E;40-53N;014-18E;88;72;P +LIRP;16;158;Pisa / S. Giusto;;Italy;6;43-41N;010-23E;43-40N;010-23E;2;6;P +LIRQ;16;170;Firenze / Peretola;;Italy;6;43-48N;011-12E;;;40;38;P +LIRS;16;206;Grosseto;;Italy;6;42-45N;011-04E;;;5;7;P +LIRT;16;263;Trevico;;Italy;6;41-03N;015-14E;;;1085;1093; +LIRU;16;235;Roma / Urbe;;Italy;6;41-57N;012-30E;;;18;24; +LIRV;16;216;Viterbo;;Italy;6;42-26N;012-03E;;;300;308; +LIRZ;16;181;Perugia;;Italy;6;43-05N;012-30E;43-05N;012-30E;208;205;P +LIVC;16;134;Monte Cimone;;Italy;6;44-12N;010-42E;;;2165;2173;P +LIVD;16;033;Dobbiaco;;Italy;6;46-44N;012-13E;;;1222;1226; +LIVE;--;---;Resia Pass ;;Italy;6;46-50N;010-30E;;;1800;; +LIVF;16;179;Frontone;;Italy;6;43-31N;012-44E;;;570;574; +LIVM;16;146;Punta Marina;;Italy;6;44-27N;012-18E;;;2;6; +LIVO;16;040;Tarvisio;;Italy;6;46-30N;013-35E;;;777;778;P +LIVP;16;022;Paganella;;Italy;6;46-09N;011-02E;;;2125;2129; +LIVR;16;021;Passo Rolle;;Italy;6;46-18N;011-47E;;;2004;2006; +LIVT;16;110;Trieste;;Italy;6;45-39N;013-45E;;;8;20;P +LIYW;16;037;Aviano Usaf ;;Italy;6;46-02N;012-37E;;;126;; +LJLJ;14;014;Ljubljana / Brnik;;Slovenia;6;46-13N;014-29E;46-13N;014-29E;385;362; +LJMB;14;026;Maribor / Slivnica;;Slovenia;6;46-29N;015-41E;;;264;265; +LJMS;13;031;Murska Sobota;;Slovenia;6;46-39N;016-11E;;;188;; +LJPZ;13;105;Portoroz;;Slovenia;6;45-31N;013-34E;;;95;; +LKHO;11;774;Holesov;;Czech Republic;6;49-19N;017-34E;;;224;224; +LKKU;--;---;Kunovice;;Czech Republic;6;49-01-46N;017-26-23E;;;177;; +LKKV;11;414;Karlovy Vary;;Czech Republic;6;50-12N;012-55E;;;603;604; +LKKZ;11;968;Kosice;;Slovakia;6;48-40N;021-13E;48-42N;021-16E;230;231;P +LKLB;--;---;Liberec;;Czech Republic;6;50-46-06N;015-01-30E;;;405;; +LKMT;11;782;Ostrava / Mosnov;;Czech Republic;6;49-41N;018-07E;49-47N;018-16E;256;256;P +LKPP;11;826;Piestany;;Slovakia;6;48-37N;017-50E;;;163;164; +LKPR;11;518;Praha / Ruzyne;;Czech Republic;6;50-06N;014-15E;50-06N;014-17E;365;365;P +LKSL;11;903;Sliac;;Slovakia;6;48-39N;019-09E;;;314;315;P +LKTB;11;723;Brno / Turany;;Czech Republic;6;49-09N;016-42E;;;241;246;P +LLBG;40;180;Ben-Gurion International Airport;;Israel;6;32-00N;034-54E;32-00N;034-54E;40;49;P +LLBS;40;191;Beer-Sheva;;Israel;6;31-14N;034-47E;31-14N;034-47E;275;280;P +LLET;40;199;Eilat;;Israel;6;29-33N;034-57E;29-33N;034-57E;12;12;P +LLHA;40;155;Sde-Haifa Haifa;;Israel;6;32-48N;035-02E;;;8;8;P +LLIB;--;---;Galilee / Pina;;Israel;6;32-58-48N;035-34-12E;;;;; +LLJR;40;290;Jerusalem Airport;;Israel;6;31-52N;035-13E;31-52N;035-13E;749;759;P +LLOV;40;198;Ovda;;Israel;6;30-00N;034-50E;;;432;445; +LLSD;--;---;Tel Aviv / Sde-Dov Airport;;Israel;6;32-06-53N;034-46-56E;;;13;; +LMML;16;597;Luqa;;Malta;6;35-51N;014-29E;35-51N;014-29E;91;91;P +LOAG;--;---;Krems-Langenlois;;Austria;6;48-26-46N;015-38-01E;;;312;; +LOAN;--;---;Niederösterreich / Wiener Neustadt-Ost Flugplatz;;Austria;6;47-50-36N;016-15-29E;;;272;; +LOAV;11;181;Niederösterreich / Flugplatz Vöslau;;Austria;6;47-57-52N;016-15-34E;;;233;; +LOGG;--;---;Punitz-Güssing;;Austria;6;47-08-51N;016-19-04E;;;290;; +LOIH;--;---;Hohenems-Dornbirn;;Austria;6;47-23-05N;009-42-02E;;;418;; +LOLF;--;---;Oberösterreich / Freistadt Flugplatz;;Austria;6;48-30-53N;014-24-32E;;;685;; +LOLW;--;---;Wels;;Austria;6;48-10N;014-02E;;;;; +LOWG;11;240;Graz-Thalerhof-Flughafen;;Austria;6;47-00N;015-26E;47-00N;015-27E;340;347;P +LOWI;11;120;Innsbruck-Flughafen;;Austria;6;47-16N;011-21E;;;581;593;P +LOWK;11;231;Klagenfurt-Flughafen;;Austria;6;46-39N;014-20E;;;448;476;P +LOWL;11;010;Linz / Hörsching-Flughafen;;Austria;6;48-14N;014-11E;48-14N;014-11E;298;313;P +LOWS;11;150;Salzburg-Flughafen;;Austria;6;47-48N;013-00E;;;430;450;P +LOWW;11;036;Wien / Schwechat-Flughafen;;Austria;6;48-07N;016-34E;;;183;190;P +LOWZ;--;---;Zell Am See;;Austria;6;47-17-33N;012-47-15E;;;754;; +LOXA;11;157;Aigen Im Ennstal;;Austria;6;47-32N;014-08E;;;638;649;P +LOXL;11;011;Hörsching Aus-Afb ;;Austria;6;48-14N;014-11E;48-14N;014-11E;313;298; +LOXS;11;122;Schwaz Heliport ;;Austria;6;47-20N;011-42E;;;543;; +LOXT;11;030;Tulln;;Austria;6;48-19N;016-07E;;;175;176; +LOXZ;11;165;Zeltweg;;Austria;6;47-12N;014-45E;;;677;682;P +LPAZ;08;515;Santa Maria Acores ;;Portugal;6;36-58N;025-10W;;;100;100;P +LPBG;08;575;Braganca;;Portugal;6;41-48N;006-44W;;;691;692;P +LPBJ;08;562;Beja;;Portugal;6;38-01N;007-52W;;;246;247;P +LPFL;08;501;Flores Acores ;;Portugal;6;39-27N;031-08W;;;28;29;P +LPFR;08;554;Faro / Aeroporto;;Portugal;6;37-01N;007-58W;37-01N;007-58W;7;8;P +LPFU;08;521;Funchal / S. Catarina;;Portugal;1;32-41N;016-46W;32-41N;016-46W;58;49;P +LPHR;08;505;Horta / Castelo Branco Acores ;;Portugal;6;38-31N;028-43W;;;40;41;P +LPLA;08;509;Lajes Acores ;;Portugal;6;38-46N;027-06W;38-44N;027-05W;52;54;P +LPMA;--;---;Aeroporto Da Madeira;;Portugal;6;32-41-52N;016-46-28W;;;59;; +LPMR;--;---;Monte Real Mil.;;Portugal;6;39-49-52N;008-53-14W;;;57;; +LPMT;--;---;Montijo Mil.;;Portugal;6;38-42-14N;009-02-09W;;;14;; +LPOV;--;---;Ovar Mil.;;Portugal;6;40-54-57N;008-38-45W;;;17;; +LPPD;08;512;Ponta Delgada / Nordela Acores ;;Portugal;6;37-44N;025-42W;;;71;72;P +LPPR;08;545;Porto / Pedras Rubras;;Portugal;6;41-14N;008-41W;41-14N;008-41W;69;77;P +LPPS;08;524;Porto Santo;;Portugal;1;33-04N;016-21W;;;97;82;P +LPPT;08;536;Lisboa / Portela;;Portugal;6;38-46N;009-08W;38-46N;009-08W;114;123; +LPST;--;---;Sintra Mil.;;Portugal;6;38-49-52N;009-20-22W;;;134;; +LPTN;--;---;Tancos Mil.;;Portugal;6;39-28-31N;008-21-52W;;;81;; +LPVR;08;567;Vila Real;;Portugal;6;41-16N;007-43W;;;561;562; +LQBI;13;228;Bihac;;Serbia and Montenegro;6;44-49N;015-53E;44-49N;015-53E;250;246; +LQBK;13;242;Banja Luka;;Bosnia and Herzegovina;6;44-47N;017-13E;;;156;; +LQLV;14;640;Livno;;Bosnia and Herzegovina;6;43-50N;017-01E;;;724;728; +LQMO;13;348;Mostar;;Bosnia and Herzegovina;6;43-21N;017-48E;43-21N;017-48E;108;99; +LQSA;13;353;Sarajevo;;Bosnia and Herzegovina;6;43-49N;018-20E;43-49N;018-20E;511;510; +LQTZ;13;257;Tuzla;;Bosnia and Herzegovina;6;44-33N;018-42E;;;306;; +LRAR;15;200;Arad;;Romania;6;46-12N;021-24E;46-10N;021-19E;117;118;P +LRBC;15;150;Bacau;;Romania;6;46-35N;026-58E;46-35N;026-59E;184;190;P +LRBM;15;014;Baia Mare;;Romania;6;47-40N;023-35E;47-40N;023-35E;218;194; +LRBS;15;420;Bucuresti / Imh;;Romania;6;44-30N;026-08E;44-30N;026-08E;90;91;P +LRCK;15;481;Kogalniceanu;;Romania;6;44-20N;028-26E;;;97;102; +LRCL;15;120;Cluj-Napoca;;Romania;6;46-47N;023-34E;46-47N;023-34E;410;413;P +LRCS;15;292;Caransebes;;Romania;6;45-25N;022-15E;;;241;242;P +LRCV;15;450;Craiova;;Romania;6;44-14N;023-52E;44-14N;023-52E;192;195;P +LRIA;15;090;Iasi;;Romania;6;47-10N;027-38E;47-10N;027-38E;102;104;P +LROD;15;080;Oradea;;Romania;6;47-03N;021-56E;47-03N;021-56E;135;140;P +LROP;15;421;Bucuresti Otopeni;;Romania;6;44-33N;026-06E;;;95;95; +LRSB;15;260;Sibiu;;Romania;6;45-48N;024-09E;45-48N;024-09E;443;444;P +LRSM;15;010;Satu Mare;;Romania;6;47-48N;022-53E;47-47N;022-53E;123;124;P +LRSV;15;023;Suceava / Salcea;;Romania;6;47-39N;026-15E;47-39N;026-15E;351;351; +LRTC;15;335;Tulcea;;Romania;6;45-11N;028-49E;45-11N;028-49E;4;6; +LRTM;15;145;Tirgu Mures;;Romania;6;46-32N;024-32E;46-32N;024-32E;308;309;P +LRTR;15;247;Timisoara;;Romania;6;45-46N;021-15E;45-46N;021-15E;86;88;P +LSGC;--;---;Les Eplatures;;Switzerland;6;47-05-03N;006-47-37E;;;1027;; +LSGG;06;700;Geneve-Cointrin;;Switzerland;6;46-15N;006-08E;;;420;416;P +LSGL;06;710;Lausanne;;Switzerland;6;46-33N;006-37E;;;616;615; +LSGN;06;604;Neuchatel;;Switzerland;6;47-00N;006-57E;;;485;487; +LSGS;06;720;Sion;;Switzerland;6;46-13N;007-20E;;;482;481;P +LSMP;06;610;Payerne;;Switzerland;6;46-49N;006-57E;46-49N;006-57E;490;491;P +LSZA;06;770;Lugano;;Switzerland;6;46-00N;008-58E;;;273;276; +LSZB;--;---;Bern / Belp ;;Switzerland;6;46-55N;007-30E;;;505;; +LSZG;06;632;Grenchen;;Switzerland;6;47-10-53N;007-24-59E;;;430;; +LSZH;06;670;Zurich-Kloten;;Switzerland;6;47-29N;008-32E;;;436;432;P +LSZR;06;691;Saint Gallen-Altenrhein;;Switzerland;6;47-29-06N;009-33-43E;;;398;; +LTAB;--;---;Ankara / Guvercin Lik;;Turkey;6;39-56N;032-45E;;;819;; +LTAC;17;128;Ankara / Esenboga;;Turkey;6;40-07N;032-59E;;;953;949;P +LTAD;17;129;Ankara / Etimesgut;;Turkey;6;39-57N;032-41E;;;799;806;P +LTAE;17;120;Murted Tur-Afb ;;Turkey;6;40-05N;032-34E;;;843;; +LTAF;17;352;Adana / Sakirpasa;;Turkey;6;36-59N;035-18E;36-59N;035-18E;20;20; +LTAG;17;350;Adana / Incirlik;;Turkey;6;37-00N;035-25E;37-00N;035-25E;73;66;P +LTAH;17;190;Afyon;;Turkey;6;38-45N;030-32E;;;1034;1034;P +LTAI;17;300;Antalya;;Turkey;6;36-42N;030-44E;36-54N;030-47E;50;57;P +LTAJ;17;260;Gaziantep;;Turkey;6;37-05N;037-22E;;;701;701;P +LTAK;17;370;Iskenderun;;Turkey;6;36-35N;036-10E;;;3;3;P +LTAN;17;244;Konya;;Turkey;6;37-58N;032-33E;37-58N;032-33E;1032;1022;P +LTAP;17;082;Merzifon;;Turkey;6;40-51N;035-35E;40-50N;035-31E;545;535;P +LTAQ;17;029;Samsun;;Turkey;6;41-16N;036-18E;;;162;168; +LTAR;17;090;Sivas;;Turkey;6;39-45N;037-01E;;;1285;1285;P +LTAS;17;022;Zonguldak;;Turkey;6;41-27N;031-48E;41-27N;031-48E;136;136;P +LTAT;17;200;Malatya / Erhac;;Turkey;6;38-26N;038-05E;38-26N;038-05E;862;849;P +LTAU;17;195;Kayseri / Erkilet;;Turkey;6;38-47N;035-29E;38-47N;035-29E;1053;1054;P +LTAV;--;---;Sivrihisar;;Turkey;6;39-27N;031-21E;;;96;; +LTAW;17;086;Tokat;;Turkey;6;40-18N;036-34E;;;608;608; +LTAY;--;---;Cardak;;Turkey;6;37-47N;029-42E;;;849;; +LTAZ;--;---;Nevsehir;;Turkey;6;38-46-12N;034-32-30E;;;945;; +LTBA;17;060;Istanbul / Ataturk;;Turkey;6;40-58N;028-49E;;;48;37;P +LTBD;17;234;Aydin;;Turkey;6;37-51N;027-51E;;;57;57;P +LTBE;17;116;Bursa;;Turkey;6;40-11N;029-04E;;;101;100;P +LTBF;17;150;Balikesir;;Turkey;6;39-37N;027-55E;;;101;102;P +LTBG;17;115;Bandirma;;Turkey;6;40-19N;027-58E;40-19N;027-58E;51;49;P +LTBH;17;112;Canakkale;;Turkey;6;40-08N;026-24E;;;3;3;P +LTBI;17;124;Eskisehir;;Turkey;6;39-47N;030-34E;39-47N;030-34E;785;785;P +LTBJ;17;219;Izmir / Adnan Menderes;;Turkey;6;38-16N;027-09E;;;125;120; +LTBL;17;218;Izmir / Cigli;;Turkey;6;38-30N;027-01E;;;5;5;P +LTBM;17;240;Isparta;;Turkey;6;37-45N;030-33E;37-45N;030-33E;997;997;P +LTBO;17;188;Usak;;Turkey;6;38-40N;029-25E;;;919;919;P +LTBQ;--;---;Topel Tur-Afb ;;Turkey;6;40-44N;030-05E;;;50;; +LTBR;--;---;Bursa / Yenisehir, Mil-Civ;;Turkey;6;40-15-19N;029-33-45E;;;233;; +LTBS;17;295;Dalaman;;Turkey;6;36-42N;028-47E;;;7;2; +LTBT;17;184;Akhisar;;Turkey;6;38-55N;027-51E;;;93;93;P +LTBU;--;---;Corlu;;Turkey;6;41-08N;027-55E;;;173;; +LTBV;17;290;Bodrum;;Turkey;6;37-02N;027-25E;;;27;27;P +LTCA;17;202;Elazig;;Turkey;6;38-36N;039-17E;;;902;882;P +LTCC;17;280;Diyarbakir;;Turkey;6;37-53N;040-11E;37-53N;040-11E;686;677;P +LTCD;17;092;Erzincan;;Turkey;6;39-44N;039-30E;;;1156;1215;P +LTCE;17;096;Erzurum;;Turkey;6;39-55N;041-16E;;;1756;1758;P +LTCF;17;098;Kars;;Turkey;6;40-36N;043-05E;;;1775;1775;P +LTCG;17;038;Trabzon;;Turkey;6;41-00N;039-43E;;;35;30;P +LTCH;17;270;Urfa;;Turkey;6;37-08N;038-46E;;;547;547;P +LTCI;17;170;Van;;Turkey;6;38-27N;043-19E;;;1667;1661;P +LTCJ;17;282;Batman;;Turkey;6;37-52N;041-10E;;;540;540; +LTCK;--;---;Mus Tur-Afb ;;Turkey;6;38-45N;041-40E;;;1266;; +LTFA;--;---;Izmir \ Kaklic;;Turkey;6;38-31N;026-59E;;;4;; +LTFC;--;---;Suleyman Demirel;;Turkey;6;37-51N;030-22E;;;864;; +LTFE;--;---;Bodrum Milas Airport;;Turkey;6;37-14-53N;027-40-55E;;;6;; +LTFH;--;---;Samsun / Carsamba;;Turkey;6;41-15-15N;036-34-03E;;;5;; +LTFJ;--;---;Istanbul / Sabiha Gokcen;;Turkey;6;40-53-55N;029-18-33E;;;95;; +LUBL;--;---;Baltsi-Leadoveni - The North of Moldova;;Moldova;6;47-50-03N;027-46-09E;;;231 +LUCH;--;---;Kaxul - The South of Moldova;;Moldova;6;45-50-38N;028-15-55E;;;199;; +LUKK;--;---;Chisinau International Airport;;Moldova;6;46-55-40N;028-55-51E;;;122;; +LWOH;13;578;Ohrid;;Macedonia, The Republic of;6;41-07N;020-48E;;;760;761; +LWSK;13;586;Skopje-Petrovec;;Macedonia, The Republic of;6;41-58N;021-39E;41-57N;021-38E;238;239;P +LXGB;08;495;Gibraltar;;Gibraltar;6;36-09N;005-21W;36-15N;005-33W;5;0; +LYBE;13;272;Beograd / Surcin;;Serbia and Montenegro;6;44-49N;020-17E;;;96;99;P +LYNI;13;388;Nis;;Serbia and Montenegro;6;43-20N;021-54E;43-20N;021-54E;202;202;P +LYPG;--;---;Podgorica Titograd ;;Serbia and Montenegro;6;42-26N;019-17E;;;53;; +LYPR;13;481;Pristina;;Serbia and Montenegro;6;42-34N;021-02E;;;545;576;P +LYPZ;14;105;Portoroz / Secovlje;;Slovenia;6;45-29N;013-37E;;;2;3; +LYTI;13;462;Podgorica / Golubovci;;Serbia and Montenegro;6;42-22N;019-15E;42-22N;019-15E;33;33;P +LYTV;13;457;Tivat;;Serbia and Montenegro;6;42-24N;018-44E;;;5;5;P +LYVR;13;183;Vrsac;;Serbia and Montenegro;6;45-09N;021-19E;;;83;85;P +LZIB;11;816;Bratislava Ivanka;;Slovakia;6;48-12N;017-12E;48-10N;017-12E;133;142;P +LZKC;11;993;Kamenica Nad Cirochou;;Slovakia;6;48-56N;022-00E;;;177;; +LZKZ;--;---;Kosice, Barca;;Slovakia;6;48-39-47N;021-14-28E;;;232;; +LZLU;11;927;Lucenec;;Slovakia;6;48-20N;019-44E;;;214;; +LZNI;--;---;Nitra;;Slovakia;6;48-16-46N;018-07-58E;;;134;; +LZPE;--;---;Prievidza;;Slovakia;6;48-45-59N;018-35-18E;;;260;; +LZPP;--;---;Piestany;;Slovakia;6;48-37-30N;017-49-43E;;;163;; +LZSL;--;---;Sliac;;Slovakia;6;48-38-17N;019-08-03E;;;318;; +LZTT;11;934;Poprad / Tatry;;Slovakia;6;49-04N;020-15E;49-04N;020-15E;694;695;P +LZZI;--;---;Dolny Hricov;;Slovakia;6;49-14N;018-36-49E;;;312;; +MBPV;--;---;Providenciales;;Turks and Caicos Islands;4;21-46-25N;072-15-57W;;;5;; +MDBH;78;482;Barahona;;Dominican Republic;4;18-12N;071-06W;;;3;;P +MDHE;78;484;Herrera;;Dominican Republic;4;18-28N;069-58W;;;58;; +MDLR;--;---;La Romana International Airport;;Dominican Republic;4;18-25N;068-57W;;;8;; +MDPC;78;479;Punta Cana;;Dominican Republic;4;18-34N;068-22W;;;12;;P +MDPP;78;457;Puerto Plata International;;Dominican Republic;4;19-45N;070-33W;;;15;; +MDSD;78;485;Las Americas;;Dominican Republic;4;18-26N;069-40W;;;18;;P +MDSI;--;---;San Isidro Air Force Base;;Dominican Republic;4;18-30N;069-46W;;;111;; +MDST;78;460;Santiago;;Dominican Republic;4;19-27N;070-42W;;;183;;P +MGCB;78;631;Coban;;Guatemala;4;15-28N;090-19W;;;1316;; +MGFL;78;615;Flores;;Guatemala;4;16-55N;089-53W;;;115;115; +MGGT;78;641;Guatemala Aeropuertola Aurora ;;Guatemala;4;14-35N;090-31W;14-35N;090-31W;1489;1489; +MGHT;78;627;Huehuetenango;;Guatemala;4;15-19N;091-28W;;;1901;1901; +MGPB;78;637;Puerto Barrios;;Guatemala;4;15-43N;088-36W;15-43N;088-36W;1;1; +MGQZ;--;---;Quezaltenango;;Guatemala;4;14-50N;091-31W;;;2500;; +MGRT;78;639;Retalhuleu;;Guatemala;4;14-32N;091-40W;;;239;; +MGSJ;78;647;San Jose;;Guatemala;4;13-55N;090-49W;13-55N;090-49W;2;2; +MGTK;--;---;Tikal;;Guatemala;4;16-54N;089-51W;;;128;; +MGZA;--;---;Zacapa;;Guatemala;4;14-58N;089-32W;;;490;; +MHAM;78;700;Amapala;;Honduras;4;13-16N;087-39W;;;5;; +MHCA;78;714;Catacamas;;Honduras;4;14-54N;085-56W;;;442;442;P +MHCH;78;724;Choluteca;;Honduras;4;13-18N;087-11W;13-18N;087-11W;48;48;P +MHIC;78;501;Islas Del Cisne;;Honduras;4;17-24N;083-56W;17-24N;083-56W;9;11;P +MHLC;78;705;La Ceiba Airport ;;Honduras;4;15-44N;086-52W;;;3;26;P +MHLE;78;719;La Esperanza;;Honduras;4;14-19N;088-09W;;;1100;1674; +MHLM;78;708;La Mesa San Pedro Sula ;;Honduras;4;15-27N;087-56W;;;31;31;P +MHNJ;78;701;Guanaja;;Honduras;4;16-28N;085-55W;16-28N;085-55W;2;2;P +MHNO;78;701;Guanaja;;Honduras;4;16-28N;086-04W;;;2;; +MHPL;78;711;Puerto Lempira;;Honduras;4;15-13N;083-48W;;;13;13;P +MHRO;78;703;Roatan;;Honduras;4;16-19N;086-31W;;;5;2;P +MHSC;78;718;Coronel Enrique Soto Cano Air Base;;Honduras;4;14-23N;087-37W;14-23N;087-37W;628;628; +MHSR;78;717;Santa Rosa De Copan;;Honduras;4;14-47N;088-47W;;;1079;1079;P +MHTE;78;706;Tela;;Honduras;4;15-43N;087-29W;;;3;3;P +MHTG;78;720;Tegucigalpa;;Honduras;4;14-03N;087-13W;14-02N;087-15W;994;1007;P +MHYR;78;707;Yoro;;Honduras;4;15-10N;087-07W;;;670;670; +MKJP;78;397;Kingston / Norman Manley;;Jamaica;4;17-56N;076-47W;17-56N;076-47W;3;14;P +MKJS;78;388;Montego Bay / Sangster;;Jamaica;4;18-30N;077-55W;;;1;8;P +MMAA;--;---;Acapulco / G. Alvarez;;Mexico;4;16-46N;099-45W;;;5;; +MMAN;76;394;Aerop. Internacional Monterrey, N. L.;;Mexico;4;25-52N;100-14W;25-52N;100-12W;448;450; +MMAS;76;571;Aguascalientes, Ags.;;Mexico;4;21-53N;102-18W;;;1874;; +MMBT;--;---;Bahias De Huatulco ;;Mexico;4;15-47N;096-16W;;;143;; +MMCB;76;726;Cuernavaca, Mor.;;Mexico;4;18-53N;099-14W;;;1618;; +MMCE;--;---;Ciudad Del Carmen ;;Mexico;4;18-39N;091-48W;;;2;; +MMCL;76;412;Culiacan, Sin.;;Mexico;4;24-49N;107-24W;;;39;; +MMCM;76;750;Chetumal, Q. Roo;;Mexico;4;18-29N;088-18W;;;9;; +MMCN;76;253;Ciudad Obregon;;Mexico;4;27-23-34N;109-49-59W;;;62;; +MMCP;76;695;Campeche, Camp.;;Mexico;4;19-51N;090-33W;;;5;; +MMCS;--;---;Ciudad Juarez International ;;Mexico;4;31-38N;106-26W;;;1171;; +MMCT;--;---;Chichen-Itza;;Mexico;4;20-38-30N;088-26-58W;;;31;; +MMCU;--;---;Chihuahua International Airport;;Mexico;4;28-42N;105-58W;;;1360;; +MMCV;--;---;Ciudad Victoria Airport;;Mexico;4;23-43N;098-58W;;;238;; +MMCZ;--;---;Cozumel Civ / Mil ;;Mexico;4;20-32N;086-56W;;;5;; +MMDO;--;---;Durango Airport;;Mexico;4;24-08N;104-32W;;;1857;; +MMEP;76;556;Tepic, Nay.;;Mexico;4;21-31N;104-54W;;;922;; +MMGL;--;---;Don Miguel / Guadalaj;;Mexico;4;20-31N;103-19W;;;1528;; +MMGM;--;---;Guaymas International Airport;;Mexico;4;27-58N;110-56W;;;27;; +MMHO;76;160;Hermosillo, Son.;;Mexico;4;29-04N;110-57W;;;211;; +MMIA;76;658;Colima ;;Mexico;4;19-16N;103-35W;;;723;; +MMIO;76;390;Saltillo, Coah.;;Mexico;4;25-27N;100-59W;;;1790;; +MMIT;--;---;Ixtepec Ox;;Mexico;4;16-27N;095-05W;;;61;; +MMLC;--;---;Lazaro Cardenas;;Mexico;4;17-59N;102-13W;;;12;; +MMLM;--;---;Los Mochis Airport;;Mexico;4;25-41N;109-05W;;;4;; +MMLO;--;---;Del Bajio / Leon;;Mexico;4;21-00N;101-29W;;;1819;; +MMLP;--;---;La Paz International Airport;;Mexico;4;24-04N;110-22W;;;21;; +MMLT;76;305;Loreto, B. C. S.;;Mexico;4;26-01N;111-21W;;;15;; +MMMA;--;---;Matamoros International ;;Mexico;4;25-46N;097-32W;;;8;; +MMMD;76;644;Merida / lic Manuel Crecencio;;Mexico;4;20-56N;089-39W;20-57N;089-40W;10;11; +MMML;--;---;Mexicali International Airport ;;Mexico;4;32-38N;117-00W;;;22;; +MMMM;--;---;Morelia New;;Mexico;4;19-51N;101-02W;;;1833;; +MMMT;--;---;Minatitlan;;Mexico;4;18-06N;094-35W;;;40;; +MMMV;76;342;Monclova, Coah.;;Mexico;4;26-53N;101-25W;26-54N;101-25W;615;586; +MMMX;--;---;Mexico City / Licenci;;Mexico;4;19-26N;099-06W;;;2238;; +MMMY;--;---;Monterrey / Gen Maria;;Mexico;4;25-47N;100-06W;;;387;; +MMMZ;--;---;Mazatlan / G. Buelna;;Mexico;4;23-10N;106-16W;;;10;; +MMNL;--;---;Nuevo Laredo International ;;Mexico;4;27-26N;099-34W;;;148;; +MMOX;--;---;Oaxaca / Xoxocotlan;;Mexico;4;16-58N;096-44W;;;1528;; +MMPA;--;---;Poza Rica / Palizada;;Mexico;4;20-31N;097-28W;;;15;; +MMPB;76;685;Puebla, Pue.;;Mexico;4;19-03N;098-10W;;;2179;; +MMPG;76;243;Piedras Negras, Coah.;;Mexico;4;28-42N;100-31W;;;250;; +MMPN;--;---;Uruapan / Gen Rayon;;Mexico;4;19-24N;102-02W;;;1593;; +MMPR;--;---;Puerto Vallarta / Lic;;Mexico;4;20-41N;105-15W;;;6;; +MMPS;--;---;Puerto Escondido ;;Mexico;4;15-52N;097-05W;;;88;; +MMQT;76;625;Queretaro, Qro.;;Mexico;4;20-36N;100-23W;;;1813;; +MMRX;--;---;Reynosa International Airport ;;Mexico;4;26-01N;098-14W;;;39;; +MMSD;--;---;San Jose Del Cabo ;;Mexico;4;23-09N;109-42W;;;109;; +MMSP;76;539;San Luis Potosi, S. L. P.;;Mexico;4;22-09N;100-59W;;;1870;; +MMTC;76;382;Torreon, Coah.;;Mexico;4;25-32N;103-27W;25-32N;103-27W;1124;1150; +MMTG;76;843;Tuxtla Gutierrez, Chis.;;Mexico;4;16-45N;093-07W;;;528;; +MMTJ;--;---;Tijuana International Airport ;;Mexico;4;32-33N;116-58W;;;152;; +MMTL;76;634;Tulancingo ;;Mexico;4;20-05N;098-22W;;;2181;; +MMTM;--;---;Tampico / Gen Fj Mina;;Mexico;4;22-17N;097-52W;;;24;; +MMTO;--;---;Toluca / Jose Maria ;;Mexico;4;19-21N;099-34W;;;2576;; +MMTP;--;---;Tapachula ;;Mexico;4;14-47N;092-23W;;;29;; +MMUN;--;---;Cancun International Airport;;Mexico;4;21-02N;086-52W;;;5;; +MMVA;--;---;Villahermosa ;;Mexico;4;18-00N;092-49W;;;13;; +MMVR;--;---;Veracruz / Las Bajadas / General Heriberto Jara;;Mexico;4;19-09N;096-11W;;;32;; +MMZC;--;---;Zacatecas Airport;;Mexico;4;22-54N;102-41W;;;2140;; +MMZH;--;---;Ixtapa-Zihuatanejo;;Mexico;4;17-36N;101-28W;;;6;; +MMZO;--;---;Manzanillo International ;;Mexico;4;19-09N;104-34W;;;8;; +MMZP;--;---;Zapopan Military ;;Mexico;4;20-45N;103-28W;;;1625;; +MNBL;78;745;Bluefields;;Nicaragua;4;12-00N;086-46W;;;5;5;P +MNCH;78;739;Chinandega;;Nicaragua;4;12-38N;087-08W;;;53;60;P +MNJG;78;734;Jinotega;;Nicaragua;4;13-05N;085-59W;;;985;1032;P +MNJU;78;735;Juigalpa;;Nicaragua;4;12-06N;085-22W;;;90;90;P +MNMG;78;741;Managua A. C. Sandino;;Nicaragua;4;12-09N;086-10W;12-07N;086-11W;50;56;P +MNPC;78;730;Puerto Cabezas;;Nicaragua;4;14-03N;083-22W;14-02N;083-24W;20;20;P +MNRS;78;733;Rivas;;Nicaragua;4;11-25N;085-50W;;;53;70;P +MPBO;--;---;Bocas Del Toro International;;Panama;4;09-21N;082-15W;;;3;; +MPCH;--;---;Changuinola / Captain Manuel Nino;;Panama;4;09-28N;082-31W;;;6;; +MPDA;78;793;David;;Panama;4;08-24N;082-25W;;;29;26;P +MPFS;78;801;Ft Sherman Rocob ;;Panama;4;09-20N;079-59W;09-20N;079-59W;52;52; +MPHO;78;806;Howard Air Force Base;;Panama;4;08-55N;079-36W;08-55N;079-36W;16;13;P +MPLB;--;---;Albrook Afs / Balboa ;;Panama;4;08-58N;079-33W;;;9;; +MPMG;--;---;Marcos A. Gelabert;;Panama;4;08-59N;079-31W;;;13;; +MPNU;--;---;Augusto Vergara;;Panama;4;07-50N;080-17W;;;21;; +MPSA;78;795;Santiago;;Panama;4;08-05N;080-57W;;;83;88;P +MPTO;78;792;Tocumen;;Panama;4;09-03N;079-22W;;;45;;P +MRCH;--;---;Chacarita;;Costa Rica;4;09-59N;084-47W;;;2;; +MRLB;78;774;Liberia;;Costa Rica;4;10-37N;085-26W;;;80;80; +MRLM;78;767;Puerto Limon;;Costa Rica;4;10-00N;083-03W;;;5;3;P +MRNC;78;755;Nicoya;;Costa Rica;4;10-09N;085-27W;;;120;; +MROC;78;762;Juan Santamaria;;Costa Rica;4;10-00N;084-13W;09-59N;084-13W;920;939;P +MRPM;78;772;Palmar Sur;;Costa Rica;4;08-57N;083-28W;;;15;16; +MRPV;--;---;Tobias Bolanos International;;Costa Rica;4;09-57N;084-09W;;;994;; +MSAC;78;650;Acajutla;;El Salvador;4;13-34N;089-50W;13-34N;089-50W;15;15;P +MSLP;78;666;El Salvador Intl. Airport / Comalapa;;El Salvador;4;13-26N;089-03W;;;25;25; +MSSA;78;655;Santa Ana / El Palmar;;El Salvador;4;13-59N;089-34W;;;725;; +MSSM;78;670;San Miguel / El Papalon;;El Salvador;4;13-27N;088-07W;;;80;; +MSSS;78;663;San Salvador / Ilopango;;El Salvador;4;13-42N;089-07W;13-42N;089-07W;616;621;P +MTCH;78;409;Cap-Haitien;;Haiti;4;19-45N;072-11W;;;2;3; +MTPP;78;439;Port-Au-Prince / Aeroport International;;Haiti;4;18-34N;072-18W;18-33N;072-21W;31;34; +MUBA;78;268;Baracoa, Oriente;;Cuba;4;20-21N;074-30W;;;9;9; +MUBY;--;---;Bayamo ;;Cuba;4;20-24N;076-37W;;;64;; +MUCA;78;346;Venezuela, Ciego De Avila;;Cuba;4;21-47N;078-47W;;;26;26; +MUCC;--;---;Cayo Coco / Jardines Del Ray;;Cuba;4;22-27-40N;078-19-42W;;;4;; +MUCF;78;244;Cienfuegos, Las Villas;;Cuba;4;22-09N;080-24W;;;39;39; +MUCL;--;---;Cayo Largo Del Sur;;Cuba;4;21-37N;081-33W;;;2;; +MUCM;78;255;Camaguey Aeropuerto;;Cuba;4;21-25N;077-51W;21-25N;077-51W;122;118; +MUCU;78;264;Santiago De Cuba, Oriente;;Cuba;4;19-58N;075-51W;;;69;55; +MUGM;78;367;Guantanamo, Leeward Point Field;;Cuba;4;19-54-23N;075-12-25W;19-54N;075-08W;17;23; +MUGT;78;267;Guantanamo, Oriente;;Cuba;4;20-05N;075-09W;;;8;8; +MUHA;78;224;Aeropuerto Jose Marti, Rancho-Boyeros, Habana;;Cuba;4;22-59N;082-24W;;;59;75; +MUHG;--;---;Holguin Civ / Mil ;;Cuba;4;20-47N;076-19W;;;106;; +MUMO;--;---;Moa Military ;;Cuba;4;20-39N;074-55W;;;5;; +MUMZ;78;256;Manzanillo, Oriente;;Cuba;4;20-20N;077-07W;;;60;60; +MUNG;78;221;Nueva Gerona, Isla De Pinos;;Cuba;4;21-50N;082-47W;;;23;23; +MUPR;78;315;Pinar Del Rio, Pinar Del Rio;;Cuba;4;22-25N;083-41W;;;37;37; +MUSN;--;---;Siguanea;;Cuba;4;21-38-33N;082-57-18W;;;;; +MUVR;78;229;Varadero, Matanzas;;Cuba;4;23-08N;081-17W;;;3;3; +MUVT;78;357;Las Tunas, Las Tunas;;Cuba;4;20-57N;076-57W;;;106;106; +MWCB;--;---;Gerrard Smith Intl. / Cayman Brac;;Cayman Islands;4;19-41-13N;079-52-58W;;;2;; +MWCG;--;---;Grand Cayman City;;Cayman Islands;4;19-18-00N;081-22-00W;;;;; +MWCR;78;384;Owen Roberts Airportgrand Cayman;;Cayman Islands;4;19-17N;081-21W;19-18N;081-22W;3;3; +MYAK;--;---;Congo Town, Andros Island;;Bahamas,The;4;24-09-31N;077-35-23W;;;5;; +MYBS;78;070;Alice Town, Bimini;;Bahamas, The;4;25-44N;079-18W;;;2;3;P +MYEG;78;092;Georgetown, Exuma;;Bahamas, The;4;23-28-30N;075-46-00W;;;2;3;P +MYGF;78;062;Freeport, Grand Bahama;;Bahamas, The;4;26-33N;078-42W;;;2;11;P +MYGW;78;061;West End, Grand Bahama;;Bahamas, The;4;26-42N;078-58W;;;2;4;P +MYIG;78;121;Matthew Town, Inagua;;Bahamas, The;4;20-57N;073-41W;;;2;4;P +MYNN;78;073;Nassau Airport;;Bahamas, The;4;25-03N;077-28W;25-03N;077-28W;3;7;P +MYSM;78;088;Cockburn Town, San Salvador;;Bahamas, The;4;24-03N;074-32W;;;3;5;P +MZBZ;78;583;Belize / Phillip Goldston Intl. Airport;;Belize;4;17-32N;088-18W;17-32N;088-18W;5;5;P +NCRG;91;843;Rarotonga;;Cook Islands;5;21-12S;159-49W;21-12S;159-49W;7;7;P +NEXC;--;---;Charleston, Navelexcen;SC;United States;4;32-54-56N;079-58-45W;32-54-56N;079-58-45W;8;11; +NFFN;91;680;Nandi;;Fiji;5;17-45S;177-27E;17-45S;177-27E;13;18;P +NFNA;91;683;Nausori;;Fiji;5;18-03S;178-34E;;;5;7;P +NFNK;91;691;Lakemba;;Fiji;5;18-14S;178-48W;;;2;3; +NFNR;91;650;Rotuma;;Fiji;5;12-30S;177-03E;12-30S;177-03E;26;26;P +NFTF;91;792;Fua'Amotu;;Tonga;5;21-14S;175-09W;21-14S;175-09W;38;41; +NFTL;91;784;Haapai;;Tonga;5;19-48S;174-21W;;;2;3; +NGBR;91;623;Beru;;Kiribati;5;01-21S;176-00E;;;2;3; +NGFO;91;631;Nanumea;;Tuvalu;5;05-40S;176-08E;;;2;3; +NGFU;91;643;Funafuti;;Tuvalu;5;08-31S;179-13E;08-31S;179-13E;1;2;P +NGTA;91;610;Tarawa;;Kiribati;5;01-21N;172-55E;01-21N;172-55E;2;4;P +NGTR;91;629;Arorae;;Kiribati;5;02-40S;176-50E;;;4;7; +NGTU;91;601;Butaritari;;Kiribati;5;03-02N;172-47E;;;1;; +NIUE;91;822;Alofi / Niue;;Cook Islands;5;19-04S;169-55W;;;20;22;P +NLWF;91;754;Maopoopo Ile Futuna ;;France;5;14-19S;178-07W;;;6;36;P +NLWW;91;753;Hihifo Ile Wallis ;;France;5;13-14S;176-10W;13-14S;176-10W;23;27;P +NSAP;91;762;Apia / Upolu Island;;Samoa;5;13-48S;171-47W;13-48S;171-47W;2;2; +NSFA;91;759;Faleolo Intl / Apia;;Samoa;5;13-49S;172-00W;;;5;; +NSTU;91;765;Pago Pago / Int. Airport;;United States Minor Outlying Islands;5;14-20S;170-43W;14-20S;170-43W;3;3;P +NTAA;91;938;Tahiti-Faaa;;French Polynesia;5;17-33S;149-37W;17-33S;149-37W;2;2;P +NTAT;91;954;Tubuai;;French Polynesia;5;23-21S;149-29W;23-21S;149-29W;2;3;P +NTTB;91;930;Bora-Bora;;French Polynesia;5;16-27S;151-45W;16-29S;151-45W;4;3;P +NTTG;91;941;Rangiroa / Tuamoto Island;;French Polynesia;5;14-58S;147-40W;14-58S;147-40W;3;3; +NTTO;91;944;Hao;;French Polynesia;5;18-04S;140-57W;18-04S;140-57W;2;7;P +NTTX;91;952;Mururoa;;French Polynesia;5;21-49S;138-48W;21-49S;138-49W;2;3;P +NVSC;91;551;Sola Vanua Lava ;;Vanuatu;5;13-51S;167-33E;13-51S;167-33E;17;18;P +NVSL;91;555;Lamap Malekula ;;Vanuatu;5;16-25S;167-48E;;;26;26;P +NVSS;91;554;Pekoa Airport Santo ;;Vanuatu;5;15-31S;167-13E;15-31S;167-13E;41;44;P +NVVV;91;557;Bauerfield Efate ;;Vanuatu;5;17-42S;168-18E;17-42S;168-18E;20;21;P +NWWE;91;596;Moue Ile Des Pins ;;New Caledonia;5;22-36S;167-27E;;;96;97; +NWWK;91;577;Koumac Nlle-Caledonie ;;New Caledonia;5;20-34S;164-17E;20-34S;164-17E;23;18;P +NWWL;91;582;Ouanaham Ile Lifou ;;New Caledonia;5;20-46S;167-14E;20-46S;167-14E;28;29;P +NWWN;91;592;Noumea Nlle-Caledonie ;;New Caledonia;5;22-16S;166-27E;22-16S;166-27E;69;72;P +NWWR;91;587;La Roche Ile Mare ;;New Caledonia;5;21-29S;168-02E;;;43;42; +NWWV;91;579;Ouloup Ile Ouvea ;;New Caledonia;5;20-39S;166-35E;;;7;7; +NWWW;91;590;La Tontouta Nlle-Caledonie ;;New Caledonia;5;22-01S;166-13E;22-01S;166-13E;16;14;P +NZAA;93;119;Auckland Airport;;New Zealand;5;37-01S;174-48E;37-01S;174-48E;7;6;P +NZCH;93;780;Christchurch;;New Zealand;5;43-29S;172-33E;43-29S;172-33E;38;30;P +NZCI;93;986;Chatham Island;;New Zealand;5;43-57S;176-34W;43-57S;176-34W;44;48;P +NZCM;89;674;Williams Field;;Antarctica;7;77-52S;166-58E;;;8;8; +NZDN;93;890;Dunedin Aerodrome;;New Zealand;5;45-56S;170-12E;45-56S;170-12E;1;2; +NZGS;93;291;Gisborne Aerodrome;;New Zealand;5;38-40S;177-59E;38-40S;177-59E;5;8; +NZHK;93;614;Hokitika Aerodrome;;New Zealand;5;42-43S;170-59E;42-43S;170-59E;45;44; +NZIR;--;---;Ice Runway;;Antarctica;7;77-52S;166-32E;;;2;; +NZKI;93;677;Kaikoura ;;New Zealand;5;42-25S;173-42E;42-25S;173-42E;101;99; +NZNP;93;308;New Plymouth Aerodrome;;New Zealand;5;39-01S;174-11E;39-01S;174-11E;28;36;P +NZNV;93;844;Invercargill Aerodrome;;New Zealand;5;46-42S;168-33E;46-25S;168-20E;0;4;P +NZOH;93;401;Ohakea;;New Zealand;5;40-12S;175-22E;40-12S;175-23E;50;52; +NZPP;93;417;Paraparaumu Aerodrome;;New Zealand;5;40-54S;174-59E;40-54S;174-59E;7;12;P +NZRN;93;997;Raoul Island, Kermadec Island;;New Zealand;5;29-15S;177-55W;29-15S;177-55W;38;49;P +NZRO;93;246;Rotorua Aerodrome;;New Zealand;5;38-07S;176-19E;38-07S;176-19E;285;294; +NZSP;89;009;Amundsen-Scott South Pole Station;;Antarctica;7;90-00S;00-00E;90-00S;000-00E;2830;2835;P +NZTG;93;186;Tauranga Aerodrome Aws;;New Zealand;5;37-40S;176-12E;;;4;5; +NZWD;--;---;Williams Field, Antarctic;;New Zealand;5;77-53S;166-39E;;;12;; +NZWN;93;436;Wellington Airport;;New Zealand;5;41-20S;174-48E;;;12;8; +NZWP;93;112;Whenuapai;;New Zealand;5;36-47S;174-38E;36-47S;174-38E;30;27; +OAFR;40;974;Farah;;Afghanistan;2;32-22N;062-11E;;;700;700; +OAFZ;40;904;Faizabad;;Afghanistan;2;37-07N;070-31E;;;1200;1200; +OAHR;40;938;Herat;;Afghanistan;2;34-13N;062-13E;34-13N;062-13E;964;964; +OAJL;40;954;Jalalabad;;Afghanistan;2;34-26N;070-28E;;;580;580; +OAJS;40;932;Jabul-Saraj;;Afghanistan;2;35-08N;069-15E;;;1630;1630; +OAKB;40;948;Kabul Airport;;Afghanistan;2;34-38N;069-12E;;;1789;; +OAMS;40;911;Mazar-I-Sharif;;Afghanistan;2;36-42N;067-12E;;;378;378; +OASD;40;957;Shindand;;Afghanistan;2;33-24N;062-17E;;;1150;1150; +OASG;40;908;Shebirghan;;Afghanistan;2;36-40N;065-43E;;;360;360; +OAZB;40;920;Zebak;;Afghanistan;2;36-30N;071-15E;;;2600;2600; +OAZG;40;986;Zaranj;;Afghanistan;2;31-00N;061-51E;;;478;478; +OBBI;41;150;Bahrain International Airport ;;Bahrain;2;26-16N;050-39E;;;2;2; +OEAB;41;112;Abha;;Saudi Arabia;2;18-14N;042-39E;;;2090;2093;P +OEAH;40;420;Al Ahsa;;Saudi Arabia;2;25-18N;049-29E;;;179;178;P +OEBA;41;055;Al Baha;;Saudi Arabia;2;20-18N;041-38E;;;1652;1662;P +OEBH;41;084;Bisha;;Saudi Arabia;2;19-59N;042-37E;;;1167;1163;P +OEDF;40;415;Dammam-King Fahd International Airport;;Saudi Arabia;2;26-28N;049-47E;;;22;; +OEDR;40;416;Dhahran;;Saudi Arabia;2;26-16N;050-09E;26-16N;050-10E;26;17;P +OEDW;40;435;Dawadmi;;Saudi Arabia;2;24-30N;044-21E;;;990;991;P +OEGN;41;140;Gizan;;Saudi Arabia;2;16-54N;042-35E;16-52N;042-35E;6;7;P +OEGS;40;405;Gassim;;Saudi Arabia;2;26-18N;043-46E;;;648;650;P +OEGT;40;360;Guriat;;Saudi Arabia;2;31-24N;037-16E;;;509;504;P +OEHL;40;394;Hail;;Saudi Arabia;2;27-26N;041-41E;27-31N;041-44E;1015;1013;P +OEJB;--;---;Jubail Naval ;;Saudi Arabia;2;27-03N;049-24E;;;8;; +OEJD;41;026;Jeddah ;;Saudi Arabia;2;21-30N;039-12E;;;15;; +OEJN;41;024;Jeddah King Abdul Aziz International Airport ;;Saudi Arabia;2;21-42N;039-11E;21-40N;039-09E;15;17;P +OEKK;40;377;Hafr Al-Batin;;Saudi Arabia;2;27-54N;045-32E;;;413;414; +OEKM;41;114;Khamis Mushait;;Saudi Arabia;2;18-18N;042-48E;18-18N;042-48E;2066;2056;P +OEMA;40;430;Madinah;;Saudi Arabia;2;24-33N;039-42E;24-33N;039-43E;654;636;P +OEMK;41;030;Makkah;;Saudi Arabia;2;21-26N;039-46E;;;310;240;P +OENG;41;128;Najran;;Saudi Arabia;2;17-37N;044-25E;;;1212;1210;P +OEPA;40;373;Al Qaysumah;;Saudi Arabia;2;28-19N;046-07E;28-20N;046-07E;358;360;P +OERF;40;362;Rafha;;Saudi Arabia;2;29-37N;043-29E;;;449;444;P +OERK;40;437;King Khaled International Airport;;Saudi Arabia;2;24-56N;046-43E;24-56N;046-43E;614;612;P +OERR;40;357;Arar;;Saudi Arabia;2;30-54N;041-08E;;;555;549;P +OERY;40;438;Riyadh;;Saudi Arabia;2;24-43N;046-44E;24-42N;046-44E;635;620;P +OESH;41;136;Sharurah;;Saudi Arabia;2;17-28N;047-07E;;;720;725;P +OESK;40;361;Al-Jouf;;Saudi Arabia;2;29-47N;040-06E;;;689;689;P +OETB;40;375;Tabuk;;Saudi Arabia;2;28-22N;036-36E;28-22N;036-35E;778;768;P +OETF;41;036;Taif;;Saudi Arabia;2;21-29N;040-33E;;;1478;1454;P +OETR;40;356;Turaif;;Saudi Arabia;2;31-41N;038-44E;;;813;852;P +OEWD;41;061;Wadi Al Dawasser Airport;;Saudi Arabia;2;20-30N;045-12E;;;624;622;P +OEWJ;40;400;Wejh;;Saudi Arabia;2;26-12N;036-28E;26-14N;036-26E;20;21;P +OEYN;40;439;Yenbo;;Saudi Arabia;2;24-09N;038-04E;;;8;10;P +OIAA;40;831;Abadan;;Iran;2;30-22N;048-15E;;;3;11;P +OIAG;40;833;Omidieh;;Iran;2;30-46N;049-40E;;;29;27;P +OIAH;40;835;Gach Saran Du Gunbadan;;Iran;2;30-26N;050-46E;;;738;699;P +OIAI;40;812;Masjed-Soleyman;;Iran;2;31-59N;049-16E;;;372;372;P +OIAJ;--;---;Omidiyeh;;Iran;2;30-50-07N;049-32-06E;;;26;; +OIAM;--;---;Bandar Mahshahr / Mahshahr;;Iran;2;30-33-23N;049-09-07E;;;2;; +OIAW;40;811;Ahwaz;;Iran;2;31-20N;048-40E;;;20;22;P +OIBA;--;---;Abumusa Island / Abumusa;;Iran;2;25-52-33N;055-02-01E;;;7;; +OIBB;40;858;Bushehr Civ / Afb ;;Iran;2;28-59N;050-50E;;;19;; +OIBK;--;---;Kish Island / Kish;;Iran;2;26-31-36N;053-58-54E;;;30;; +OIBL;40;883;Bandar Lengeh;;Iran;2;26-35N;054-50E;;;14;14;P +OIBS;--;---;Sirri Island / Sirri;;Iran;2;25-54-34N;054-32-22E;;;13;; +OICC;40;766;Kermanshah;;Iran;2;34-16N;047-07E;34-21N;047-09E;1320;1322;P +OICG;40;765;Ghasre-Shirin;;Iran;2;34-31N;045-35E;;;378;; +OICI;--;---;Ilam;;Iran;2;33-35-09N;046-24-20E;;;1334;; +OICK;--;---;Khorram Abad;;Iran;2;33-26-11N;048-17-09E;;;1155;; +OICS;40;747;Sanandaj;;Iran;2;35-20N;047-00E;;;1373;1373;P +OIFK;40;785;Kashan;;Iran;2;33-59N;051-27E;;;982;982;P +OIFM;40;800;Esfahan;;Iran;2;32-28N;051-43E;32-37N;051-40E;1590;1550;P +OIFS;40;798;Shahre-Kord;;Iran;2;32-20N;050-51E;;;2078;1991;P +OIGG;40;719;Rasht;;Iran;2;37-12N;049-38E;;;-7;37;P +OIHH;--;---;Hamadan;;Iran;2;34-52-05N;048-33-08E;;;1757;; +OIHR;40;769;Arak;;Iran;2;34-06N;049-24E;;;1720;1720;P +OIII;40;754;Tehran-Mehrabad;;Iran;2;35-41N;051-21E;35-41N;051-19E;1204;1191;P +OIIK;40;731;Ghazvin;;Iran;2;36-15N;050-00E;;;1278;1278;P +OIIP;--;---;Karaj / Payam;;Iran;2;35-46-34N;050-49-36E;;;1271;; +OIIS;40;757;Semnan;;Iran;2;35-33N;053-23E;;;1171;1171;P +OIKB;40;875;Bandarabbass;;Iran;2;27-13N;056-22E;27-13N;056-22E;10;10;P +OIKK;40;841;Kerman;;Iran;2;30-15N;056-58E;30-15N;056-58E;1748;1754;P +OIKM;40;854;Bam;;Iran;2;29-06N;058-24E;;;1067;1067;P +OIKQ;--;---;Gheshm Island / Dayrestan;;Iran;2;26-45-18N;055-54-08E;;;12;; +OIMB;40;809;Birjand;;Iran;2;32-52N;059-12E;32-52N;059-12E;1491;1491;P +OIMC;--;---;Sarakhs;;Iran;2;36-30-04N;061-03-54E;;;288;; +OIMH;40;762;Torbat-Heydarieh;;Iran;2;35-16N;059-13E;;;1333;1333;P +OIMM;40;745;Mashhad;;Iran;2;36-16N;059-38E;36-16N;059-38E;989;980;P +OIMN;40;723;Bojnourd;;Iran;2;37-28N;057-20E;;;1074;1074; +OIMS;40;743;Sabzevar;;Iran;2;36-13N;057-40E;;;941;941;P +OIMT;40;791;Tabas;;Iran;2;33-36N;056-55E;;;710;711; +OING;40;738;Gorgan;;Iran;2;36-49N;054-28E;36-51N;054-28E;155;155;P +OINN;--;---;Noshahr;;Iran;2;36-39-48N;051-27-53E;;;0;; +OINR;40;732;Ramsar;;Iran;2;36-54N;050-40E;;;-23;-20;P +OISA;40;818;Abadeh;;Iran;2;31-11N;052-40E;;;2004;2004; +OISF;40;859;Fasa;;Iran;2;28-58N;053-41E;;;1383;1383;P +OISL;--;---;Lar;;Iran;2;27-40-26N;054-22-53E;;;792;; +OISS;40;848;Shiraz;;Iran;2;29-32N;052-35E;29-32N;052-35E;1486;1491;P +OISY;--;---;Yasouj / National;;Iran;2;30-41-49N;051-33E;;;1825;; +OITK;40;703;Khoy;;Iran;2;38-33N;044-58E;;;1107;1107;P +OITL;--;---;Ardabil;;Iran;2;38-19-35N;048-25-28E;;;1315;; +OITM;--;---;Maragheh / Sahand;;Iran;2;37-20-55N;046-07-35E;;;1340;; +OITR;40;712;Orumieh;;Iran;2;37-32N;045-05E;;;1297;1312;P +OITS;40;727;Saghez;;Iran;2;36-15N;046-16E;;;1493;1493;P +OITT;40;706;Tabriz;;Iran;2;38-05N;046-17E;38-08N;046-15E;1367;1361;P +OITZ;40;729;Zanjan;;Iran;2;36-41N;048-29E;;;1663;1663;P +OIYY;40;821;Yazd;;Iran;2;31-54N;054-24E;;;1238;1230;P +OIZB;40;829;Zabol;;Iran;2;31-20N;061-29E;;;489;489;P +OIZC;40;898;Chahbahar;;Iran;2;25-25N;060-45E;;;6;6;P +OIZH;40;856;Zahedan;;Iran;2;29-28N;060-53E;29-28N;060-53E;1370;1370;P +OIZI;40;879;Iranshahr;;Iran;2;27-12N;060-42E;;;591;591;P +OIZJ;40;893;Jask;;Iran;2;26-38N;057-46E;;;3;4; +OJAI;40;272;Queen Alia Airport;;Jordan;6;31-40N;035-58E;;;721;; +OJAM;40;270;Amman Airport;;Jordan;6;31-59N;035-59E;31-59N;035-59E;767;768;P +OJAQ;40;340;Aqaba Airport;;Jordan;6;29-38N;035-01E;;;53;51; +OJBD;40;255;Irbid;;Jordan;6;32-33N;035-51E;32-33N;035-51E;618;619;P +OJHF;40;260;H-5'Safawi;;Jordan;6;32-12N;037-08E;;;668;670;P +OJHR;40;250;H-4'Irwaished;;Jordan;6;32-30N;038-12E;;;686;688;P +OJMF;40;265;Mafraq;;Jordan;6;32-22N;036-15E;32-22N;036-16E;686;687; +OJMN;40;310;Ma'An;;Jordan;6;30-10N;035-47E;30-10N;035-47E;1069;1070;P +OKBK;40;582;Kuwait Internationalairport;;Kuwait;2;29-13N;047-59E;29-13N;047-59E;55;55;P +OLBA;40;100;Beyrouth Aeroport ;;Lebanon;6;33-49N;035-29E;33-49N;035-29E;29;19; +OMAA;41;217;Abu Dhabi International Airport;;United Arab Emirates;2;24-26N;054-39E;24-26N;054-39E;16;27; +OMAB;--;---;Buhasa;;United Arab Emirates;2;23-37N;053-23E;;;94;; +OMAD;41;216;Abu Dhabi Bateen Airport;;United Arab Emirates;2;24-26N;054-28E;;;5;3; +OMAL;41;218;Al Ain International Airport;;United Arab Emirates;2;24-16N;055-36E;;;265;262; +OMDB;41;194;Dubai International Airport;;United Arab Emirates;2;25-15N;055-20E;;;8;5; +OMFJ;41;198;Fujairah;;United Arab Emirates;2;25-06N;056-20E;;;28;28; +OMRK;41;184;Ras Al Khaimah International Airport;;United Arab Emirates;2;25-37N;055-56E;;;31;31; +OMSJ;41;196;Sharjah International Airport;;United Arab Emirates;2;25-20N;055-31E;;;35;33; +OOBR;41;244;Buraimi;;Oman;2;24-14N;055-47E;;;299;; +OOFD;41;262;Fahud;;Oman;2;22-21N;056-29E;;;170;; +OOKB;41;240;Khassab;;Oman;2;26-13N;056-14E;;;3;; +OOMA;41;288;Masirah;;Oman;2;20-40N;058-54E;20-40N;058-54E;19;19;P +OOMS;41;256;Seeb, International Airport;;Oman;2;23-35N;058-17E;23-35N;058-17E;8;17;P +OOSA;41;316;Salalah;;Oman;2;17-02N;054-05E;17-02N;054-05E;20;17;P +OOSH;41;246; Sohar Majis;;Oman;2;24-28N;056-38E;;;4;; +OOSQ;41;254;Saiq;;Oman;2;23-04N;057-39E;;;1755;; +OOSR;41;268;Sur;;Oman;2;22-32N;059-29E;;;14;; +OOTH;41;314;Thumrait;;Oman;2;17-40N;054-02E;;;467;; +OPDI;41;624;Dera Ismail Khan;;Pakistan;2;31-49N;070-55E;31-49N;070-55E;172;173;P +OPJA;41;715;Jacobabad;;Pakistan;2;28-18N;068-28E;28-18N;068-28E;55;56;P +OPJI;41;756;Jiwani;;Pakistan;2;25-04N;061-48E;25-04N;061-48E;56;57;P +OPKC;41;780;Karachi Airport;;Pakistan;2;24-54N;067-08E;24-54N;067-08E;21;22;P +OPKD;41;764;Hyderabad Airport;;Pakistan;2;25-23N;068-25E;;;40;41;P +OPLA;41;641;Lahore Airport;;Pakistan;2;31-31N;074-24E;;;216;217;P +OPLH;41;640;Lahore City;;Pakistan;2;31-33N;074-20E;31-33N;074-20E;214;215;P +OPMI;41;592;Mianwali;;Pakistan;2;32-33N;071-31E;;;210;212;P +OPMT;41;675;Multan;;Pakistan;2;30-12N;071-26E;30-12N;071-26E;122;123;P +OPNH;41;749;Nawabshah;;Pakistan;2;26-15N;068-22E;26-15N;068-22E;37;38;P +OPPG;41;739;Panjgur;;Pakistan;2;26-58N;064-06E;26-58N;064-06E;980;981;P +OPPS;41;530;Peshawar;;Pakistan;2;34-01N;071-35E;34-01N;071-35E;359;360;P +OPQT;41;660;Quetta Airport;;Pakistan;2;30-15N;066-53E;;;1587;1589;P +OPRN;41;571;Islamabad Airport;;Pakistan;2;33-37N;073-06E;33-37N;073-06E;507;508;P +OPRS;41;533;Risalpur;;Pakistan;2;34-04N;071-59E;;;315;317;P +OPSB;41;697;Sibi;;Pakistan;2;29-33N;067-53E;;;133;134;P +OPSK;--;---;Sukkur;;Pakistan;2;27-43-19N;068-47-31E;;;60;; +OPSR;41;594;Sargodha;;Pakistan;2;32-03N;072-40E;32-03N;072-40E;187;188;P +ORBB;40;650;Baghdad;;Iraq;2;33-14N;044-14E;33-14N;044-14E;34;34;P +ORBM;40;608;Mosul;;Iraq;2;36-19N;043-09E;36-19N;043-09E;223;223;P +ORBS;--;---;Saddam Irq-Afb / Civ ;;Iraq;2;33-16N;044-14E;;;34;; +ORMS;40;688;Shaibah / Basrah;;Iraq;2;30-25N;047-39E;;;19;; +OSAP;40;007;Aleppo International Airport;;Syria;6;36-11N;037-12E;36-20N;037-13E;393;384;P +OSDI;40;080;Damascus Int. Airport;;Syria;6;33-25N;036-31E;33-25N;036-31E;608;609;P +OSDZ;40;045;Deir Ezzor;;Syria;6;35-19N;040-09E;35-19N;040-09E;215;212;P +OSKL;40;001;Kamishli;;Syria;6;37-03N;041-13E;37-03N;041-13E;455;455;P +OSLK;40;022;Lattakia;;Syria;6;35-32N;035-46E;35-30N;035-47E;7;7;P +OSPR;40;061;Palmyra;;Syria;6;34-33N;038-18E;;;408;404;P +OTBD;41;170;Doha International Airport;;Qatar;2;25-15N;051-34E;25-16N;051-33E;11;10; +OYAA;41;480;Aden;;Yemen;2;12-40N;045-02E;;;3;3; +OYAR;41;443;Riyan;;Yemen;2;14-39N;049-23E;;;16;25; +OYAT;41;437;Ataq;;Yemen;2;14-31N;046-51E;;;1067;1067; +OYHD;41;431;Hodeidah;;Yemen;2;14-45N;042-59E;;;115;115; +OYMB;41;350;Marib ;;Yemen;2;15-26N;045-20E;;;1000;; +OYMC;41;477;Mokha;;Yemen;2;13-15N;044-08E;;;4;3; +OYMK;41;382;Mokha ;;Yemen;2;13-15N;043-17E;;;3;; +OYSH;--;---;Sa'Ada / Sadah ;;Yemen;2;16-58N;043-44E;;;1890;; +OYSN;41;404;Sana'A;;Yemen;2;15-31N;044-11E;15-23N;044-12E;2206;2190; +OYSQ;41;494;Socotra;;Yemen;2;12-38N;053-54E;12-38N;053-54E;45;47; +OYSY;--;---;Sayun;;Yemen;2;15-58N;048-48E;;;701;; +OYTZ;41;466;Taiz;;Yemen;2;13-41N;044-08E;;;1402;1385; +OYZM;41;326;Al-Hazm ;;Yemen;2;16-12N;044-47E;;;1900;; +PAAK;--;---;Atka, Atka Airport;AK;United States;4;52-13-13N;174-12-23W;;;17;; +PAAP;--;---;Port Alexander, Port Alexander Seaplane Base;AK;United States;4;56-15N;134-39W;;;0;; +PAAQ;70;274;Palmer, Palmer Municipal Airport;AK;United States;4;61-36N;149-05W;;;74;; +PABA;70;086;Barter Island, Barter Island LRRS Airport;AK;United States;4;70-08-02N;143-34-37W;70-08N;143-38W;2;15;P +PABE;70;219;Bethel, Bethel Airport;AK;United States;4;60-46-47N;161-50-16W;60-47N;161-50W;38;46;P +PABG;--;---;Big Delta Arctic Weather;AK;United States;4;64-00N;145-43W;;;389;; +PABI;70;267;Delta Junction/Ft Greely, Allen Army Airfield;AK;United States;4;64-00N;145-44W;64-00N;145-44W;389;391;P +PABL;00;000;Buckland, Buckland Airport;AK;United States;4;65-58-56N;161-09-07W;;;7;; +PABN;--;---;Nabesna, Devil Mountain Lodge Airport;AK;United States;4;62-24N;143-00W;;;878;; +PABR;70;026;Barrow, Wiley Post-Will Rogers Memorial Airport;AK;United States;4;71-17-07N;156-45-57W;71-17-21N;156-47-02W;13;10;P +PABT;70;174;Bettles, Bettles Airport;AK;United States;4;66-55N;151-31W;66-54N;151-31W;196;196;P +PABV;--;---;Birchwood, Birchwood Airport;AK;United States;4;61-25N;149-31W;;;29;; +PACD;70;316;Cold Bay, Cold Bay Airport;AK;United States;4;55-13-15N;162-43-40W;55-12-05N;162-42-50W;30;29;P +PACL;--;---;Clear;AK;United States;4;64-18N;149-07W;;;168;; +PACP;70;360;Cape Saint Elias;AK;United States;4;59-48N;144-36W;;;18;; +PACR;--;---;Circle City Airport;AK;United States;4;65-50N;144-04W;;;182;; +PACS;--;---;Cape Sarichef Airport;AK;United States;4;54-36N;164-56W;;;9;; +PACV;70;296;Cordova, Merle K (Mudhole) Smith Airport;AK;United States;4;60-29-30N;145-28-40W;;;13;13; +PACY;70;298;Yakataga;AK;United States;4;60-05N;142-30W;;;4;11; +PACZ;70;212;Cape Romanzof, Cape Romanzof LRRS Airport;AK;United States;4;61-47N;166-02W;;;139;; +PADE;--;---;Deering, Deering/New Airport;AK;United States;4;66-05N;162-45W;;;5;; +PADK;70;454;Adak Island, Adak Airport;AK;United States;4;51-52-40N;176-38-45W;51-52-50N;176-38-33W;6;4; +PADL;70;321;Dillingham, Dillingham Airport;AK;United States;4;59-03N;158-31W;;;26;29; +PADQ;70;350;Kodiak, Kodiak Airport;AK;United States;4;57-45N;152-30W;57-45N;152-30W;22;34;P +PADT;--;---;Slana Airport;AK;United States;4;62-42N;143-59W;;;730;; +PADU;70;489;Unalaska, Unalaska Airport;AK;United States;4;53-54N;166-32W;;;7;; +PAEC;--;---;Chulitna, Chulitna Airport;AK;United States;4;62-53N;149-50W;;;381;; +PAED;70;272;Anchorage, Elmendorf Air Force Base;AK;United States;4;61-15-11N;149-47-38W;;;65;59; +PAEG;--;---;Eagle, Eagle Airport;AK;United States;4;64-46-35N;141-09-03W;;;268;; +PAEH;70;305;Cape Newenham, Cape Newenham LRRS Airport;AK;United States;4;58-39N;162-04W;;;165;; +PAEI;70;265;Fairbanks, Eielson Air Force Base;AK;United States;4;64-39N;147-06W;64-39N;147-04W;167;167; +PAEL;--;---;Elfin Cove, Elfin Cove Seaplane Base;AK;United States;4;58-12N;136-21W;;;0;; +PAEM;--;---;Emmonak, Emmonak Airport;AK;United States;4;62-47N;164-30W;;;4;; +PAEN;70;259;Kenai, Kenai Municipal Airport;AK;United States;4;60-34-23N;151-14-42W;60-34-25N;151-14-13W;30;25; +PAER;--;---;Merrill Pass West;AK;United States;4;61-15N;153-49W;;;358;; +PAFA;70;261;Fairbanks, Fairbanks International Airport;AK;United States;4;64-48-14N;147-52-34W;64-49-11N;147-51-29W;132;140;P +PAFB;--;---;Fort Wainwright AAF;AK;United States;4;64-50-12N;147-35-44W;;;138;; +PAFE;--;---;Kake, Kake Airport;AK;United States;4;56-57N;133-54W;;;52;; +PAFK;--;---;Farewell Lake, Farewell Lake Seaplane Base;AK;United States;4;62-32-33N;153-37-21W;;;321;; +PAFM;70;171;Ambler, Ambler Airport;AK;United States;4;67-06N;157-51W;;;88;; +PAFR;70;270;Ft. Richardson / Bryant U. S. Army Heliport, Ak;AK;United States;4;61-16N;149-39W;61-16N;149-39W;115;115; +PAFW;--;---;Farewell Lake;AK;United States;4;62-32N;153-37W;;;323;; +PAGA;70;222;Galena, Edward G. Pitka Sr. Airport;AK;United States;4;64-44N;156-56W;64-44N;156-56W;46;49; +PAGB;--;---;Galbraith Lake, Galbraith Lake Airport;AK;United States;4;68-29N;149-29W;;;814;; +PAGK;70;271;Gulkana, Gulkana Airport;AK;United States;4;62-09N;145-27W;;;481;481;P +PAGL;--;---;Golovin, Golovin Airport;AK;United States;4;64-32-36N;163-02-22W;;;8;; +PAGM;70;204;Gambell, Gambell Airport;AK;United States;4;63-46N;171-44W;;;8;; +PAGN;70;383;Angoon;AK;United States;4;57-30N;134-35W;;;0;1; +PAGS;70;367;Gustavus, Gustavus Airport;AK;United States;4;58-25N;135-42W;;;10;9; +PAGT;--;---;Nightmute;AK;United States;4;60-28N;164-42W;;;4;; +PAGY;70;362;Skagway;AK;United States;4;59-28N;135-18W;;;16;5; +PAHD;70;341;Homer / Municipal;AK;United States;4;59-38N;151-30W;;;24;22; +PAHL;--;---;Huslia, Huslia Airport;AK;United States;4;65-41-51N;156-21-4W;;;65;; +PAHN;--;---;Haines, Haines Airport;AK;United States;4;59-15N;135-31W;;;5;; +PAHO;--;---;Homer, Homer Airport;AK;United States;;59-39N;151-29W;;;26;; +PAHP;--;---;Hooper Bay, Hooper Bay Airport;AK;United States;4;61-31N;166-08W;;;5;; +PAHS;--;---;Huslia, Huslia Airport;AK;United States;4;65-42N;156-23W;;;55;; +PAHV;--;---;Healy, Healy River Airport;AK;United States;4;63-52N;148-58W;;;394;; +PAHY;--;---;Hydaburg, Hydaburg Seaplane Base;AK;United States;4;55-12N;132-50W;;;0;; +PAHZ;--;---;Hayes River, Hayes River Airport;AK;United States;4;61-59N;152-05W;;;305;; +PAII;--;---;Egegik, Egegik Airport;AK;United States;4;58-11-07N;157-23-08W;;;28;; +PAIK;--;---;Kinana / Bob Baker Me;AK;United States;4;66-59N;160-26W;;;46;; +PAIL;70;340;Iliamna, Iliamna Airport;AK;United States;4;59-45N;154-54W;;;57;49;P +PAIM;70;173;Utopia Creek, Indian Mountain LRRS Airport;AK;United States;4;66-59N;153-42W;;;372;; +PAIN;--;---;McKinley Park, McKinley National Park Airport;AK;United States;4;63-44N;148-55W;;;524;; +PAIZ;--;---;Lazy Mtn / Wolverine;AK;United States;4;61-38N;149-02W;;;236;; +PAJB;--;---;Biorka Island Supplementary Aviation Weather Reporting Station;AK;United States;4;56-51N;135-32W;;;15;; +PAJC;--;---;Chignik, Chignik Airport;AK;United States;4;56-18-41N;158-22-24W;;;6;; +PAJN;70;381;Juneau, Juneau International Airport;AK;United States;4;58-21-17N;134-34-34W;58-21-48N;134-34-33W;6;8;P +PAJO;--;---;Johnstone Point;AK;United States;4;60-29N;146-36W;;;14;; +PAJV;--;---;Sutton;AK;United States;4;61-43N;148-53W;;;265;; +PAKI;--;---;Kipnuk, Kipnuk Airport;AK;United States;4;59-55-58N;164-01-49W;;;3;; +PAKK;--;---;Koyuk, Koyuk Airport;AK;United States;4;64-56-02N;161-09-29W;;;37;; +PAKN;70;326;King Salmon, King Salmon Airport;AK;United States;4;58-40-36N;156-38-57W;58-40-50N;156-39-28W;17;10;P +PAKO;70;482;Nikolski;AK;United States;4;52-57N;168-51W;;;21;;P +PAKP;--;---;Anaktuvuk Pass, Anaktuvuk Pass Airport;AK;United States;4;68-08-01N;151-44-36W;;;641;; +PAKT;70;395;Ketchikan, Ketchikan International Airport;AK;United States;4;55-21-20N;131-42-49W;55-21-10N;131-42-24W;27;25; +PAKU;--;---;Kuparuk, Ugnu-Kuparuk Airport;AK;United States;4;70-19N;149-35W;;;20;; +PAKV;--;---;Kaltag, Kaltag Airport;AK;United States;4;64-19N;158-44W;;;54;; +PAKW;70;389;Klawock, Klawock Airport;AK;United States;4;55-35N;133-05W;;;24;; +PALH;--;---;Anchorage, Lake Hood Seaplane Base;AK;United States;4;61-11N;149-58W;;;22;; +PALJ;--;---;Port Alsworth, Port Alsworth Airport;AK;United States;4;60-12N;154-19W;;;85;; +PALK;--;---;Snowshoe Lake;AK;United States;4;62-02N;142-40W;;;735;; +PALP;--;---;Deadhorse, Alpine Airstrip;AK;United States;4;70-20N;150-56W;;;5;; +PALR;--;---;Chandalar Lake, Chandalar Lake Airport;AK;United States;4;67-30N;148-29W;;;585;; +PALU;70;104;Cape Lisburne, Cape Lisburne LRRS Airport;AK;United States;4;68-53N;166-06W;;;4;; +PALV;--;---;Big River Lake;AK;United States;4;60-49N;152-18W;;;12;; +PAMC;70;231;McGrath, McGrath Airport;AK;United States;4;62-58N;155-37W;62-58N;155-37W;103;103;P +PAMD;70;343;Middleton Island, Middleton Island Airport;AK;United States;4;59-26N;146-18W;;;27;14; +PAMH;70;246;Minchumina, Minchumina Airport;AK;United States;4;63-52-50N;152-18-02W;;;208;214; +PAML;--;---;Manley Hot Springs, Manly Hot Springs Airport;AK;United States;4;64-59N;150-38W;;;82;; +PAMM;--;---;Metlakatla, Metlakatla Seaplane Base;AK;United States;4;55-07-52N;131-34-41W;;;0;; +PAMR;--;---;Anchorage, Merrill Field Airport;AK;United States;4;61-13N;149-51W;;;42;; +PAMX;--;---;McCarthy;AK;United States;4;61-26N;142-56W;;;455;; +PAMY;--;---;Mekoryuk, Mekoryuk Airport;AK;United States;4;60-22N;166-16W;;;15;; +PANC;70;273;Anchorage, Ted Stevens Anchorage International Airport;AK;United States;4;61-10-28N;149-59-46W;61-10-25N;150-00-39W;44;48;P +PANI;70;232;Aniak, Aniak Airport;AK;United States;4;61-34-53N;159-32-34W;;;27;26; +PANN;70;260;Nenana, Nenana Municipal Airport;AK;United States;4;64-33N;149-05W;;;110;; +PANR;--;---;Funter Bay Seaplane;AK;United States;4;58-15N;134-54W;;;0;; +PANT;70;398;Annette, Annette Island Airport;AK;United States;4;55-02-32N;131-34-20W;55-02N;131-34W;36;34;P +PANV;--;---;Anvik, Anvik Airport;AK;United States;4;62-38-54N;160-11-23W;;;94;; +PAOH;--;---;Hoonah, Hoonah Seaplane Base;AK;United States;4;58-07N;135-27W;;;0;; +PAOM;70;200;Nome, Nome Airport;AK;United States;4;64-30-43N;165-26-42W;64-30-32N;165-25-50W;11;4;P +PAOR;70;291;Northway, Northway Airport;AK;United States;4;62-57-40N;141-55-44W;62-57-44N;141-56-10W;523;522; +PAOT;70;133;Kotzebue, Ralph Wien Memorial Airport;AK;United States;4;66-53-04N;162-35-54W;66-53-12N;162-36-31W;3;5;P +PAPB;--;---;St. George, St. George Airport;AK;United States;4;56-34-43N;169-39-41W;;;38;; +PAPC;70;119;Port Clarence, Port Clarence Coast Guard Station;AK;United States;4;65-15N;166-51W;;;3;5; +PAPG;70;386;Petersburg;AK;United States;4;56-49N;132-58W;;;0;; +PAPH;70;333;Port Heiden, Port Heiden Airport;AK;United States;4;56-57N;158-38W;;;29;;P +PAPM;--;---;Platinum;AK;United States;4;59-01N;161-49W;;;3;; +PAPO;--;---;Point Hope, Point Hope Airport;AK;United States;4;68-21N;166-48W;;;4;; +PAPR;--;---;Prospect Creek, Prospect Creek Airport;AK;United States;4;66-48-46N;150-38-38W;;;335;; +PAPT;70;249;Puntilla;AK;United States;4;62-06N;152-45W;;;560;; +PAQT;70;364;Nuiqsut, Nuiqsut Airport;AK;United States;4;70-12-36N;151-00-20W;70-12-49N;150-59-18W;12;17; +PARC;--;---;Arctic Village, Arctic Village Airport;AK;United States;4;68-06-52N;145-34-45W;;;638;; +PARD;--;---;Red Dog, Red Dog Airport;AK;United States;4;68-01-53N;162-54-11W;;;297;; +PARL;--;---;Central, Central Airport;AK;United States;4;65-34-26N;144-46-59W;;;284;; +PASA;--;---;Savoonga Airport;AK;United States;4;63-41N;170-30W;;;16;; +PASC;--;---;Deadhorse, Deadhorse Airport;AK;United States;4;70-12N;148-28W;;;17;; +PASD;--;---;Sand Point;AK;United States;4;55-19N;160-31W;;;7;; +PASG;--;---;Skagway, Skagway Airport;AK;United States;4;59-27-19N;136-19-23W;59-27-19N;136-19-23W;13;7; +PASH;--;---;Shishmaref, Shishmaref Airport;AK;United States;4;66-16N;166-05W;;;4;; +PASI;70;371;Sitka, Sitka Airport;AK;United States;4;57-02-53N;135-21-53W;57-02-53N;135-21-53W;6;14; +PASK;--;---;Selawik;AK;United States;4;66-37N;160-00W;;;8;; +PASL;--;---;Sleetmute;AK;United States;4;61-43N;157-09W;;;54;; +PASM;--;---;St. Mary's, St. Mary's Airport;AK;United States;4;62-03N;163-18W;;;95;; +PASN;70;308;St. Paul Island, St. Paul Island Airport;AK;United States;4;57-10N;170-13W;57-09N;170-13W;19;9;P +PASO;--;---;Seldovia, Seldovia Airport;AK;United States;4;59-27N;151-42W;;;9;; +PASP;--;---;Sheep Mountain, Sheep Mountain Airport;AK;United States;4;61-48-43N;147-30-25W;;;838;; +PASV;70;235;Sparrevohn Airways Facilities Sector;AK;United States;4;61-06N;155-34W;;;484;; +PASW;70;255;Skwentna;AK;United States;4;61-58N;151-11W;;;45;; +PASX;--;---;Soldotna;AK;United States;4;60-29N;151-02W;;;33;; +PASY;70;414;Shemya, Eareckson AFB;AK;United States;4;52-43N;174-07E;;;30;; +PATA;70;178;Tanana, Calhoun Memorial Airport;AK;United States;4;65-10N;152-06W;;;69;67; +PATC;70;117;Tin City Airways Facilities Sector;AK;United States;4;65-34N;167-55W;;;83;; +PATG;--;---;Togiac Village, Togiak Airport;AK;United States;4;59-03N;160-24W;;;6;; +PATJ;--;---;Tok;AK;United States;4;63-19N;142-43W;;;509;; +PATK;70;251;Talkeetna, Talkeetna Airport;AK;United States;4;62-19-14N;150-05-37W;;;109;109; +PATL;--;---;Takotna, Tatalina LRRS Airport;AK;United States;4;62-54N;155-59W;;;294;; +PATO;--;---;Portage, Portage Glacier;AK;United States;4;60-47N;148-50W;;;29;; +PATW;--;---;Cantwell, Cantwell Airport;AK;United States;4;63-24N;148-57W;;;668;; +PAUM;70;162;Umiat;AK;United States;4;69-22N;152-08W;;;81;85; +PAUN;70;207;Unalakleet;AK;United States;4;63-53N;160-48W;;;6;6;P +PAUO;--;---;Willow Airport ;AK;United States;4;61-45N;150-03W;;;67;; +PAVD;--;---;Valdez 2;AK;United States;4;61-08N;146-16W;;;37;; +PAVL;--;---;Kivalina, Kivalina Airport;AK;United States;4;67-44N;164-33W;;;4;; +PAVW;--;---;Valdez Weather Station Office;AK;United States;4;61-08N;146-21W;;;10;; +PAWD;70;277;Seward;AK;United States;4;60-07N;149-27W;;;9;18; +PAWG;70;387;Wrangell;AK;United States;4;56-29N;132-22W;;;13;13; +PAWI;70;030;Wainwright, Wainwright Airport;AK;United States;4;70-38N;159-51W;;;12;; +PAWN;--;---;Noatak, Noatak Airport;AK;United States;4;67-34N;162-59W;;;27;; +PAWR;--;---;Whittier;AK;United States;4;60-46N;148-41W;;;9;; +PAWS;--;---;Wasilla, Wasilla Airport;AK;United States;4;61-34-19N;149-32-26W;;;106;; +PAXK;--;---;Paxson;AK;United States;4;63-02N;145-30W;;;809;; +PAYA;70;361;Yakutat;AK;United States;4;59-31N;139-40W;59-31N;139-40W;11;9;P +PAZK;--;---;Eureka, Skelton Airport;AK;United States;4;61-56N;147-10W;;;1002;; +PBTI;--;---;Barter Island Distant Early Warning ;AK;United States;4;70-08N;143-35W;;;2;; +PFYU;70;194;Fort Yukon, Fort Yukon Airport;AK;United States;4;66-34N;145-16W;66-35N;145-05W;433;431;P +PGAC;91;217;Guam, Mariana Island;GU;United States;5;13-55N;144-50E;;;111;; +PGNT;91;233;Sabanettan / Tinian Island;GU;United States;5;14-96N;145-06E;14-58N;145-36E;80;80; +PGRO;91;221;Rota Island, N. Mariana Is, Rota International Airport;GU;United States;5;14-11N;145-15E;;;185;; +PGSN;91;232;Saipan Island, Saipan International Airport;Northern Mariana Islands;United States;5;15-07N;145-44E;15-07N;145-45W;66;3; +PGUA;91;218;Andersen, Mariana Is, Andersen Air Force Base;GU;United States;5;13-35N;144-56E;13-35N;144-55E;187;187; +PGUM;91;212;Agana, Guam International Airport;GU;United States;5;13-29N;144-48E;13-21N;144-48E;91;; +PGWT;91;233;Tinian Island, N. Mariana Is, West Tinian Airport;GU;United States;5;14-59N;145-37E;;;82;; +PHBK;91;162;Kekaha, Pacific Missile Test Facility Barking Sands;HI;United States;5;22-02-11N;159-47-11W;22-02-00N;159-47-00W;4;3; +PHHI;91;170;Wheeler Air Force Base / Oahu;HI;United States;5;21-29N;158-02W;21-29N;158-02W;255;256; +PHHN;--;---;Hana, Hana Airport;HI;United States;5;20-47-44N;156-00-52W;;;24;; +PHIK;--;---;Hickam Air Force Base / Oahu ;HI;United States;5;21-19N;157-55W;;;4;; +PHJH;--;---;Lahaina / West Maui;HI;United States;5;21-01N;156-38W;;;40;; +PHJR;91;178;Oahu, Kalaeloa Airport;HI;United States;5;21-18-30N;158-04-05W;21-18-20N;158-04-28W;10;15; +PHKO;--;---;Kailua / Kona, Keahole Airport;HI;United States;5;19-44-27N;156-03-02W;19-44-08N;156-02-30W;13;27; +PHLI;91;165;Lihue, Lihue Airport;HI;United States;5;21-59-02N;159-20-28W;21-59-13N;159-20-36W;45;31; +PHMK;91;186;Kaunakakai, Molokai Airport;HI;United States;5;21-09N;157-06W;21-09N;157-06W;138;134; +PHMU;--;---;Kamuela, Waimea-Kohala Airport;HI;United States;5;20-00N;155-40W;;;814;; +PHNG;91;176;Kaneohe, Marine Corps Air Station;HI;United States;5;21-27-14N;157-45-56W;21-26-27N;157-46-32W;5;1; +PHNL;91;182;Honolulu, Honolulu International Airport;HI;United States;5;21-19-39N;157-56-35W;21-19-26N;157-55-47W;3;4; +PHNY;--;---;Lanai City, Lanai Airport;HI;United States;4;20-47-08N;156-57-05W;;;399;; +PHOG;91;190;Kahului, Kahului Airport;HI;United States;5;20-53-33N;156-26-13W;20-54-02N;156-25-44W;16;12; +PHSF;--;---;Bradshaw Army Air Field / Hawaii;HI;United States;5;19-47N;155-33W;;;1887;; +PHTO;91;285;Hilo, Hilo International Airport;HI;United States;5;19-43-20N;155-03-21W;19-43-16N;155-03-46W;11;12; +PHWH;91;293;South Kona / Hawaii;HI;United States;5;19-06N;155-45W;;;808;; +PJON;91;275;Johnston Island, Johnston Atoll Airport;;United States Minor Outlying Islands;5;16-44N;169-32W;16-44N;169-31W;2;2; +PKMJ;91;376;Majuro Atoll, Marshall Islands Int. Airp.;;Marshall Islands;5;07-04N;171-17E;07-05N;171-23E;2;3; +PKMR;--;---;Majuro Atoll, NWS Office;;Marshall Islands;5;07-05N;171-12E;;;4;; +PKWA;91;366;Kwajalein, Bucholz AAF, Kwajalein KMR ATOL Airport;;Marshall Islands;5;08-43N;167-44E;08-44N;167-44E;3;2; +PLCH;91;490;Christmas / Cassidy;;New Zealand;5;01-59N;157-29W;;;3;; +PLFA;91;487;Fanning Island;;New Zealand;5;03-51N;159-22W;03-54N;159-23W;5;3; +PMDY;91;066;Sand Island, Henderson Field Airport;HI;United States;5;28-13N;177-22W;28-13N;177-22W;4;6; +POLI;70;063;Oliktok Distant Early Warning ;AK;United States;4;70-30N;149-53W;;;5;; +PPIZ;70;121;Point Lay, Point Lay LRRS Airport;AK;United States;4;69-43N;163-00W;;;8;;P +PTKK;91;334;Weno Island, Chuuk Int. Airp.;;Micronesia, Federated States of;5;07-28N;151-51E;07-28N;151-51E;3;2; +PTKR;--;---;Koror, Palau, NWS Office;;Palau;5;07-20N;134-29E;;;30;; +PTPN;91;348;Pohnpei Island, Pohnpei Int. Airp.;;Micronesia, Federated States of;5;06-59N;158-12E;06-58N;158-13E;2;; +PTRO;91;408;Babelthuap Island, Babelthuap/Koror Airport;;Palau;5;07-22N;134-32E;07-20N;134-29E;54;; +PTSA;91;356;Kosrae Island, Kosrae Airport;;Micronesia, Federated States of;5;05-21N;162-57E;;;3;; +PTTK;91;355;Kosrae Carolines / V;;Micronesia, Federated States of;5;05-21N;162-57E;;;2;; +PTTP;--;---;Pohnpei, NWS Office;;Micronesia, Federated States of;5;06-58N;158-13E;;;39;; +PTYA;91;413;Yap Island, Yap Int. Airp.;;Micronesia, Federated States of;5;09-29N;138-05E;09-29N;138-05E;28;; +PWAK;91;245;Wake Island, Wake Island Army Airfield Airport;GU;United States;5;19-17N;166-39E;19-17N;166-39E;4;4; +RCAY;46;745;Kangshan Tw-Afb ;;Taiwan;2;22-47N;120-16E;;;10;; +RCBS;46;736;Chinmem / Shatou Air Force Base ;;Taiwan;2;24-26N;118-22E;24-26N;118-26E;9;12; +RCDC;46;750;Pingtung South Air Force Base ;;Taiwan;2;22-41N;120-28E;22-40N;120-27E;24;24; +RCFG;46;689;Mazu;;Taiwan;2;26-10N;119-56E;26-09N;119-57E;91;30; +RCFN;--;---;Feng Nin Tw-Afb ;;Taiwan;2;22-46N;121-05E;;;42;; +RCFS;46;772;Chia Tung;;Taiwan;2;22-25N;120-33E;;;20;; +RCGM;46;697;Taoyuan Ab = 589650;;Taiwan;2;25-04N;121-14E;25-03N;121-15E;45;48; +RCKH;46;740;Kaohsiung International Airport;;Taiwan;2;22-35N;120-21E;;;9;; +RCKU;46;746;Chiayi Tw-Afb ;;Taiwan;2;23-28N;120-23E;23-28N;120-23E;25;25; +RCKW;46;752;Hengchun;;Taiwan;2;21-56N;120-50E;;;13;; +RCLG;46;751;Taichung Tw-Afb ;;Taiwan;2;24-11N;120-39E;24-11N;120-39E;112;112; +RCLM;46;810;Dongsha;;Taiwan;2;20-40N;116-43E;20-43N;116-43E;6;3; +RCLY;46;762;Lan Yu;;Taiwan;2;22-02N;121-33E;;;325;; +RCMJ;46;747;Donggang;;Taiwan;2;22-28N;120-26E;22-28N;120-26E;8;8; +RCMQ;46;770;Wuchia Observatory;;Taiwan;2;24-16N;120-37E;24-16N;120-37E;5;203; +RCMS;46;764;Ilan;;Taiwan;2;24-45N;121-46E;;;9;; +RCNN;46;743;Tainan Tw-Afb ;;Taiwan;2;22-57N;120-12E;22-57N;120-13E;19;16; +RCNO;46;730;Dongshi;;Taiwan;2;23-16N;119-40E;;;45;; +RCPO;46;756;Hsinchu Tw-Afb ;;Taiwan;2;24-49N;120-56E;;;8;; +RCQC;46;734;Makung Ab;;Taiwan;2;23-35N;119-37E;23-35N;119-37E;31;31; +RCQS;46;760;Chihhang Tw-Afb ;;Taiwan;2;22-48N;121-11E;;;37;; +RCSQ;46;758;Pingtung North Air Force Base ;;Taiwan;2;22-42N;120-29E;;;29;; +RCSS;46;696;Sungshan / Taipei;;Taiwan;2;25-04N;121-33E;;;6;; +RCTP;46;686;Chiang Kai Shek;;Taiwan;2;25-05N;121-13E;;;33;; +RCUK;46;738;Pa Kuei / Bakuai;;Taiwan;2;24-56N;121-18E;;;141;; +RCYU;46;763;Hulien Ab;;Taiwan;2;24-02N;121-37E;24-01N;121-37E;16;14; +RJAA;47;686;New Tokyo Inter-National Airport;;Japan;2;35-46N;140-23E;;;41;44; +RJAF;47;709;Matsumoto Airport;;Japan;2;36-10N;137-56E;;;668;661; +RJAH;47;715;Hyakuri Ab;;Japan;2;36-11N;140-25E;;;32;35; +RJAI;--;---;Ichikawa ;;Japan;2;35-44N;139-55E;;;31;; +RJAK;47;716;Kasumigaura Ab;;Japan;2;36-02N;140-12E;;;26;29; +RJAM;47;991;Minamitorishima;;Japan;2;24-18N;153-58E;24-18N;153-58E;8;9;P +RJAO;47;971;Chichijima;;Japan;2;27-05N;142-11E;27-05N;142-11E;3;8;P +RJAT;47;721;Fuji Ab;;Japan;2;35-19N;138-52E;;;680;683; +RJAW;47;981;Iwojima;;Japan;2;24-47N;141-19E;24-47N;141-20E;113;116; +RJBB;47;774;Kansai International Airport;;Japan;2;34-25N;135-15E;;;5;8; +RJBD;47;782;Nankishirahama Airport;;Japan;2;33-40N;135-21E;;;105;108; +RJBH;--;---;Hiroshimanishi;;Japan;2;34-22N;132-26E;;;5;; +RJBT;--;---;Tajima;;Japan;2;35-31N;134-48E;;;210;; +RJCA;47;477;Asahikawa Ab;;Japan;2;43-48N;142-22E;;;115;118; +RJCB;47;490;Obihiro Airport;;Japan;2;42-44N;143-13E;;;149;152; +RJCC;47;425;Chitose Ab;;Japan;2;42-48N;141-40E;;;27;30; +RJCH;47;488;Hakodate Airport;;Japan;2;41-46N;140-49E;;;33;36; +RJCJ;47;434;Chitose Japanese Air Self Defense Force ;;Japan;2;42-49N;141-41E;;;27;; +RJCK;47;489;Kushiro Airport;;Japan;2;43-02N;144-12E;;;95;98; +RJCM;47;481;Memambetsu Airport;;Japan;2;43-53N;144-10E;;;33;36; +RJCN;47;483;Nakashibetsu Airport;;Japan;2;43-34N;144-58E;;;66;69; +RJCO;47;479;Sapporo Ab;;Japan;2;43-07N;141-23E;;;8;11; +RJCR;--;---;Rebun Island;;Japan;2;45-27N;141-02E;;;27;; +RJCS;47;418;Kushiro;;Japan;2;42-59N;144-24E;;;32;37;P +RJCT;--;---;Tokachi Japanese Ground Self Defense Force ;;Japan;2;42-54N;143-10E;;;84;; +RJCW;47;441;Wakkanai Airport;;Japan;2;45-24N;141-48E;;;8;11; +RJCY;47;423;Muroran;;Japan;2;42-19N;140-59E;;;40;49; +RJDB;47;858;Iki Airport;;Japan;2;33-45N;129-47E;;;13;16; +RJDC;47;786;Yamaguchi Ube Airport;;Japan;2;33-56N;131-17E;;;5;8; +RJDK;--;---;Kamigoto;;Japan;2;33-01N;129-11E;;;20;; +RJDM;47;860;Metabaru Ab;;Japan;2;33-19N;130-25E;;;16;19; +RJDO;--;---;Ojika Island ;;Japan;2;33-13N;129-03E;;;20;; +RJDT;47;799;Tsushima Airport;;Japan;2;34-17N;129-20E;;;63;66; +RJEB;47;474;Mombetsu Airport;;Japan;2;44-15N;143-32E;;;6;9; +RJEC;47;476;Asahikawa Airport;;Japan;2;43-40N;142-27E;;;208;211; +RJEO;--;---;Okushiri Island;;Japan;2;42-04N;139-27E;;;36;; +RJER;--;---;Rishiri Island;;Japan;2;45-15N;141-11E;;;30;; +RJFA;47;803;Ashiya Ab;;Japan;2;33-53N;130-39E;;;30;33; +RJFC;47;836;Yakushima;;Japan;2;30-23N;130-40E;;;36;38; +RJFE;47;844;Fukue Airport;;Japan;2;32-40N;128-50E;;;77;80; +RJFF;47;808;Fukuoka Airport;;Japan;2;33-35N;130-27E;33-35N;130-27E;9;12; +RJFG;47;870;Tanegashima Airport;;Japan;2;30-33N;130-57E;;;92;95; +RJFK;47;851;Kagoshima Airport;;Japan;2;31-48N;130-43E;;;272;275; +RJFM;47;857;Miyazaki Airport;;Japan;2;31-52N;131-27E;;;6;9; +RJFN;47;854;Nyutabaru Ab;;Japan;2;32-05N;131-27E;;;79;82; +RJFO;47;852;Oita Airport;;Japan;2;33-29N;131-44E;;;5;8; +RJFR;47;853;Kitakyushu Airport;;Japan;2;33-50N;130-57E;;;3;6; +RJFS;--;---;Saga Airport;;Japan;2;33-09N;130-18E;;;2;5; +RJFT;47;856;Kumamoto Airport;;Japan;2;32-50N;130-51E;;;193;196; +RJFU;47;855;Nagasaki Airport;;Japan;2;32-55N;129-55E;32-55N;129-55E;2;5; +RJFW;47;811;Sasebo Usn;;Japan;2;33-09N;129-43E;;;19;22; +RJFY;47;850;Kanoya Ab;;Japan;2;31-22N;130-50E;31-21N;130-50E;65;68; +RJFZ;47;840;Tsuiki Ab;;Japan;2;33-41N;131-03E;;;17;20; +RJGG;47;635;Nagoya Airport;;Japan;2;35-15N;136-56E;;;14;17; +RJKA;47;872;Amami Airport;;Japan;2;28-26N;129-43E;;;4;7; +RJKB;47;942;Okinoerabu;;Japan;2;27-26N;128-42E;;;27;29; +RJKI;--;---;Kikai Island;;Japan;2;28-19N;129-56E;;;6;; +RJKN;47;910;Tokunoshima Island;;Japan;2;27-50N;128-53E;;;5;; +RJNF;47;706;Fukui Airport;;Japan;2;36-08N;136-14E;;;5;8; +RJNG;47;634;Gifu Ab;;Japan;2;35-23N;136-52E;;;39;42; +RJNH;47;681;Hamamatsu Ab;;Japan;2;34-45N;137-42E;34-44N;137-40E;45;48; +RJNK;47;704;Komatsu Ab;;Japan;2;36-23N;136-25E;;;6;9; +RJNN;47;635;Nagoya Airport;;Japan;2;35-15N;136-56E;;;14;17; +RJNO;47;739;Oki Airport;;Japan;2;36-11N;133-20E;;;92;95; +RJNT;47;707;Toyama Airport;;Japan;2;36-39N;137-11E;;;24;27; +RJNY;47;658;Shizuhama Ab;;Japan;2;34-49N;138-18E;;;7;10; +RJOA;47;789;Hiroshima Airport;;Japan;2;34-26N;132-55E;;;331;334; +RJOB;47;793;Okayama Airport;;Japan;2;34-45N;133-51E;;;241;244; +RJOC;47;790;Izumo Airport;;Japan;2;35-25N;132-54E;;;2;5; +RJOE;47;730;Akeno Ab;;Japan;2;34-32N;136-41E;;;6;9; +RJOF;47;788;Hofu Ab;;Japan;2;34-02N;131-33E;34-02N;131-32E;2;5; +RJOH;47;743;Miho Ab;;Japan;2;35-29N;133-15E;;;6;9; +RJOI;47;764;Iwakuni Marine Corps Air Station;;Japan;2;34-08N;132-14E;34-08N;132-14E;2;5; +RJOK;47;883;Kochi Airport;;Japan;2;33-32N;133-40E;;;7;10; +RJOM;47;882;Matsuyama Airport;;Japan;2;33-49N;132-42E;;;4;7; +RJOO;47;771;Osaka International Airport;;Japan;2;34-47N;135-27E;;;12;15; +RJOP;47;884;Komatsujima Ab;;Japan;2;34-00N;134-38E;34-00N;134-38E;3;6; +RJOR;47;794;Tottori Airport;;Japan;2;35-32N;134-10E;;;15;18; +RJOS;47;881;Tokushima Ab;;Japan;2;34-08N;134-37E;34-08N;134-36E;8;11; +RJOT;47;880;Takamatsu Airport;;Japan;2;34-13N;134-01E;;;185;188; +RJOW;47;783;Iwami Airport;;Japan;2;34-40N;131-48E;;;54;57; +RJOY;47;779;Yao Airport;;Japan;2;34-36N;135-36E;;;10;13; +RJOZ;47;787;Ozuki Ab;;Japan;2;34-03N;131-03E;34-03N;131-03E;4;7; +RJSA;47;542;Aomori Airport;;Japan;2;40-44N;140-42E;;;199;202; +RJSC;47;553;Yamagata Airport;;Japan;2;38-25N;140-22E;;;105;108; +RJSD;47;700;Sado Airport;;Japan;2;38-03N;138-25E;;;23;26; +RJSF;47;557;Fukushima Airport;;Japan;2;37-14N;140-26E;;;372;375; +RJSH;47;515;Hachinohe Ab;;Japan;2;40-33N;141-28E;40-33N;141-28E;46;49; +RJSI;47;549;Hanamaki Airport;;Japan;2;39-26N;141-08E;;;90;93; +RJSK;47;545;Akita Airport;;Japan;2;39-37N;140-13E;;;93;96; +RJSM;47;580;Misawa Ab;;Japan;2;40-42N;141-23E;40-41N;141-22E;36;39; +RJSN;47;573;Niigata Airport;;Japan;2;37-57N;139-07E;;;1;4; +RJSO;47;516;Ominato Ab;;Japan;2;41-14N;141-08E;41-14N;141-09E;7;10; +RJSR;--;---;Odate-Noshiro Airport;;Japan;2;40-11N;140-12E;;;84;87; +RJSS;47;569;Sendai Airport;;Japan;2;38-08N;140-55E;;;1;4; +RJST;47;591;Matsushima Ab;;Japan;2;38-24N;141-13E;;;2;5; +RJSU;47;567;Kasuminome Ab;;Japan;2;38-14N;140-55E;;;7;10; +RJSY;--;---;Shonai;;Japan;2;38-49N;139-47E;;;22;; +RJTA;47;679;Atsugi United States Naval Air Station;;Japan;2;35-27N;139-27E;35-27N;139-28E;62;65; +RJTC;47;660;Tachikawa Ab;;Japan;2;35-42N;139-24E;;;95;98; +RJTD;47;662;Tokyo;;Japan;2;35-41N;139-46E;;;5;36;P +RJTE;47;688;Tateyama Ab;;Japan;2;34-59N;139-50E;34-59N;139-50E;3;6; +RJTF;47;683;Chofu Airport;;Japan;2;35-40N;139-32E;;;41;44; +RJTH;47;738;Hachijojima Airport;;Japan;2;33-07N;139-47E;;;92;95; +RJTI;47;687;Tokyo Heliport;;Japan;2;35-38N;139-51E;;;5;8; +RJTJ;47;643;Iruma Ab;;Japan;2;35-50N;139-25E;35-50N;139-25E;90;93; +RJTK;47;661;Kisarazu Ab;;Japan;2;35-24N;139-55E;;;3;6; +RJTL;47;727;Shimofusa Ab;;Japan;2;35-48N;140-01E;35-47N;140-01E;30;33; +RJTO;47;735;Oshima Airport;;Japan;2;34-47N;139-22E;;;38;41; +RJTQ;47;737;Miyakejima Airport;;Japan;2;34-04N;139-34E;;;20;23; +RJTR;47;680;Zama Airfield;;Japan;2;35-31N;139-24E;;;109;112; +RJTT;47;671;Tokyo International Airport;;Japan;2;35-33N;139-47E;;;5;8; +RJTU;47;692;Utsunomiya Ab;;Japan;2;36-31N;139-52E;;;102;105; +RJTX;47;696;Yokosuka Fwf;;Japan;2;35-17N;139-40E;;;49;53; +RJTY;47;642;Yokota Ab;;Japan;2;35-45N;139-21E;;;139;142; +RKJJ;47;158;Kwangju Ab;;Korea, South;2;35-07N;126-49E;35-07N;126-49E;13;13; +RKJK;47;141;Kunsan Ab;;Korea, South;2;35-55N;126-37E;35-54N;126-37E;10;10; +RKJY;47;167;Yosu Airport;;Korea, South;2;34-50N;127-37E;;;21;20; +RKNC;47;104;Chunchon Ab;;Korea, South;2;37-52N;127-43E;37-53N;127-43E;76;75; +RKNF;--;---;Whang Ryeong;;Korea, South;2;37-45N;128-40E;;;1407;; +RKNH;47;118;Hoengsong Ab;;Korea, South;2;37-26N;127-57E;37-26N;126-58E;100;101; +RKNN;47;107;Kangnung Ab;;Korea, South;2;37-45N;128-57E;37-45N;128-57E;11;6; +RKNO;--;---;Keo Jin;;Korea, South;2;38-28N;128-28E;;;107;; +RKNR;--;---;Kotar Range;;Korea, South;2;37-06N;128-54E;;;792;; +RKNW;47;114;Wonju;;Korea, South;2;37-20N;127-57E;;;150;150;P +RKPC;47;182;Cheju International Airport;;Korea, South;2;33-30N;126-30E;;;36;28; +RKPK;47;153;Pusan / Kimhae International Airport;;Korea, South;2;35-11N;128-56E;35-11N;128-56E;4;6; +RKPM;47;187;Mosulpo Ab;;Korea, South;2;33-12N;126-16E;33-12N;126-16E;27;27; +RKPS;47;161;Sach'On Ab;;Korea, South;2;35-05N;128-05E;35-05N;128-05E;8;8; +RKPU;47;152;Ulsan;;Korea, South;2;35-33N;129-19E;;;32;33;P +RKSB;47;106;Tonghae Radar Site;;Korea, South;2;37-30N;129-08E;37-52N;126-48E;31;32;P +RKSC;--;---;Sv Ri San;;Korea, South;2;37-21N;126-55E;;;406;; +RKSD;--;---;Maesanri;;Korea, South;2;37-21N;127-16E;;;144;; +RKSF;47;117;Seoul / Yongdungp'O Rokaf Wc;;Korea, South;2;37-30N;126-56E;;;49;; +RKSG;47;127;Pyongtaek Ab;;Korea, South;2;36-56N;127-00E;;;16;16; +RKSH;--;---;Command Post Tango;;Korea, South;2;37-31N;126-59E;;;73;; +RKSI;47;113;Incheon International Airport;;Korea, South;2;37-28N;126-27E;;;7;; +RKSJ;--;---;Taesong-San;;Korea, South;2;38-12N;127-33E;;;1182;; +RKSL;47;108;Seoul;;Korea, South;2;37-34N;126-58E;;;86;87;P +RKSM;47;111;Seoul E Ab;;Korea, South;2;37-26N;127-07E;37-26N;127-07E;20;20; +RKSN;69;010;Koon-Ni Range;;Korea, South;2;37-02N;126-45E;;;15;; +RKSO;47;122;Osan Ab;;Korea, South;2;37-06N;127-02E;37-06N;127-02E;11;12; +RKSP;47;103;Paengnyongdo Ab;;Korea, South;2;37-58N;124-40E;37-58N;124-40E;171;177; +RKSQ;--;---;Yeonpyeungdo;;Korea, South;2;37-42N;125-42E;;;91;; +RKSS;47;110;Seoul / Kimp'O International Airport;;Korea, South;2;37-33N;126-48E;37-33N;126-48E;18;18; +RKST;--;---;Camp Casey / Tongduch;;Korea, South;2;37-55N;127-03E;;;60;; +RKSU;--;---;Yeoju Range;;Korea, South;2;37-26N;127-38E;37-26N;127-38E;43;43; +RKSV;--;---;Pyoripsan;;Korea, South;2;37-47N;126-22E;;;250;; +RKSW;47;120;Suwon Ab;;Korea, South;2;37-15N;127-00E;;;24;24; +RKSX;--;---;Camp Stanley / H-207;;Korea, South;2;37-43N;127-06E;;;71;; +RKSY;--;---;Yongsan / H-208 Hp;;Korea, South;2;37-31N;126-59E;;;12;; +RKTA;47;136;Andong;;Korea, South;2;36-33N;128-43E;;;139;142;P +RKTB;--;---;Paekado;;Korea, South;2;37-01N;126-03E;;;46;; +RKTD;47;132;Taejon Kor-Afb ;;Korea, South;2;36-20N;127-23E;;;63;; +RKTE;47;124;Songmu Ab;;Korea, South;2;36-24N;127-30E;;;79;79; +RKTF;47;133;Taejon;;Korea, South;2;36-18N;127-24E;;;77;78;P +RKTG;--;---;Camp Walker H-805 ;;Korea, South;2;35-51N;128-35E;;;75;; +RKTH;47;139;Pohang Ab;;Korea, South;2;35-59N;129-25E;35-59N;129-25E;20;20; +RKTI;47;125;Jung Won Rok-Ab ;;Korea, South;2;37-02N;127-53E;;;91;; +RKTM;47;126;Mangilsan Ab;;Korea, South;2;36-56N;126-27E;;;302;; +RKTN;47;142;Taegu Ab;;Korea, South;2;35-54N;128-39E;35-54N;128-39E;35;37; +RKTP;--;---;Hae Mi;;Korea, South;2;36-24N;126-21E;;;31;; +RKTS;--;---;Sangju;;Korea, South;2;36-25N;128-10E;;;150;; +RKTT;47;143;Taegu;;Korea, South;2;35-53N;128-37E;;;58;61;P +RKTU;47;128;Chongju Ab;;Korea, South;2;36-42N;127-30E;36-42N;127-30E;58;66; +RKTV;--;---;Chungju;;Korea, South;2;37-04N;127-53E;;;59;; +RKTW;--;---;Woong Cheon;;Korea, South;2;36-12N;126-33E;;;13;; +RKTY;47;134;Yechon Ab;;Korea, South;2;36-38N;128-21E;36-37N;128-21E;108;120; +RKXX;--;---;Nightmare Range;;Korea, South;2;38-04N;127-21E;;;;; +ROAH;47;930;Naha Airport;;Japan;2;26-11N;127-39E;;;3;6; +RODE;47;938;Iejima Auxiliary Ab;;Japan;2;26-43N;127-47E;26-43N;127-47E;70;73; +RODN;47;931;Kadena Ab;;Japan;2;26-21N;127-46E;26-21N;127-45E;45;48; +ROHF;47;935;Hamby U. S. Army Airfield;;Japan;2;26-18N;127-46E;;;5;6; +ROIG;47;918;Ishigakijima;;Japan;2;24-20N;124-10E;24-20N;124-10E;6;7;P +ROKJ;47;929;Kumejima;;Japan;2;26-20N;126-48E;;;4;5; +ROMD;47;945;Minamidaitojima;;Japan;2;25-50N;131-14E;25-50N;131-14E;16;20;P +ROMY;47;927;Miyakojima;;Japan;2;24-47N;125-17E;;;40;41;P +RORA;--;---;Aguni Island;;Japan;2;26-36N;127-14E;;;29;; +RORH;--;---;Hateruma;;Japan;2;24-04N;123-48E;;;13;; +RORK;--;---;Kitadaito Island;;Japan;2;25-55N;131-20E;;;22;; +RORS;--;---;Shimoji-Shima Island;;Japan;2;24-50N;125-09E;;;16;; +RORT;--;---;Tarama Island;;Japan;2;24-39N;124-42E;;;9;; +RORY;--;---;Yoron Island;;Japan;2;27-03N;128-24E;;;16;; +ROTM;47;933;Futenma Marine Corps Air Facility;;Japan;2;26-16N;127-45E;;;75;78; +ROYN;47;911;Yonaguni Airport;;Japan;2;24-28N;122-59E;;;16;19; +RPLB;98;426;Subic Bay Weather Station;;Philippines;5;14-48N;120-16E;14-48N;120-16E;18;19; +RPLC;--;---;Clarkfield Pampanga International Airport;;Philippines;5;15-11N;120-33E;;;148;; +RPLI;98;223;Laoag;;Philippines;5;18-11N;120-32E;18-11N;120-32E;4;5;P +RPLL;98;429;Ninoy Aquino Inter-National Airport;;Philippines;5;14-31N;121-00E;;;14;15;P +RPMD;98;753;Davao Airport;;Philippines;5;07-07N;125-39E;07-07N;125-39E;17;18;P +RPMK;98;327;Clark Ab;;Philippines;5;15-10N;120-34E;15-10N;120-34E;196;196; +RPMP;98;444;Legaspi;;Philippines;5;13-08N;123-44E;13-08N;123-44E;16;17;P +RPMR;98;536;Romblon;;Philippines;5;12-35N;122-16E;;;46;47;P +RPMS;98;428;Sangley Point;;Philippines;5;14-30N;120-55E;14-30N;120-55E;3;4; +RPMT;98;646;Mactan;;Philippines;5;10-18N;123-58E;10-18N;123-58E;23;24;P +RPMZ;98;836;Zamboanga;;Philippines;5;06-54N;122-04E;06-54N;122-04E;5;6;P +RPUA;98;232;Aparri;;Philippines;5;18-22N;121-38E;;;2;3;P +RPUB;98;328;Baguio;;Philippines;5;16-25N;120-36E;16-25N;120-36E;1500;1501;P +RPUD;98;440;Daet;;Philippines;5;14-08N;122-59E;;;3;4;P +RPUH;98;531;San Jose;;Philippines;5;12-21N;121-02E;;;2;3;P +RPUI;98;324;Iba;;Philippines;5;15-20N;119-58E;;;4;5; +RPUK;98;431;Calapan;;Philippines;5;13-25N;121-11E;;;39;41;P +RPUN;--;---;Naga / Luzon Island;;Philippines;5;13-35N;123-16E;;;43;; +RPUO;98;135;Basco;;Philippines;5;20-27N;121-58E;20-27N;121-58E;10;11;P +RPUQ;98;222;Vigan;;Philippines;5;17-34N;120-23E;;;31;33; +RPUR;98;333;Baler;;Philippines;5;15-46N;121-34E;;;4;6; +RPUT;98;233;Tuguegarao;;Philippines;5;17-37N;121-44E;;;61;62; +RPUV;98;446;Virac;;Philippines;5;13-35N;124-14E;;;39;40; +RPUW;--;---;Marinduque Island;;Philippines;5;13-22N;121-50E;;;5;; +RPVA;98;550;Tacloban;;Philippines;5;11-15N;125-00E;;;2;3;P +RPVD;98;642;Dumaguete;;Philippines;5;09-18N;123-18E;;;5;8; +RPVF;98;546;Catarman;;Philippines;5;12-29N;124-38E;;;4;5; +RPVG;98;558;Guiuan;;Philippines;5;11-02N;126-44E;11-02N;126-44E;56;60; +RPVI;98;637;Iloilo;;Philippines;5;10-42N;122-34E;;;7;8;P +RPVM;98;543;Masbate;;Philippines;5;12-22N;123-37E;;;6;6;P +RPVP;98;618;Puerto Princesa;;Philippines;5;09-45N;118-44E;09-45N;118-44E;14;16;P +RPVR;98;538;Roxas;;Philippines;5;11-35N;122-45E;;;3;4; +RPVT;98;644;Tagbilaran;;Philippines;5;09-36N;123-51E;;;7;8; +RPWB;98;851;Gen. Santos;;Philippines;5;06-07N;125-11E;;;14;15; +RPWC;98;746;Cotobato;;Philippines;5;07-10N;124-13E;;;58;62; +RPWE;98;752;Butuan;;Philippines;5;09-56N;125-31E;;;45;46; +RPWG;98;741;Dipolog;;Philippines;5;08-36N;123-21E;;;3;5;P +RPWL;98;748;Cagayan De Oro;;Philippines;5;08-29N;124-38E;;;5;6; +RPWS;98;653;Surigao;;Philippines;5;09-48N;125-30E;09-48N;125-30E;54;55;P +RPWY;98;751;Malaybalay;;Philippines;5;08-09N;125-05E;;;626;627; +RPXT;98;435;Alabat;;Philippines;5;14-05N;122-01E;;;4;5; +SAAC;87;395;Concordia Aerodrome;;Argentina;3;31-18S;058-01W;;;35;38;P +SAAG;87;497;Gualeguaychu Aerodrome;;Argentina;3;33-00S;058-37W;;;23;21;P +SAAJ;87;548;Junin Aerodrome;;Argentina;3;34-33S;060-55W;;;82;81;P +SAAP;87;374;Parana Aerodrome;;Argentina;3;31-47S;060-29W;;;74;78;P +SAAR;87;480;Rosario Aerodrome;;Argentina;3;32-55S;060-47W;;;25;25;P +SAAU;87;385;Villaguay Aerodrome;;Argentina;3;31-51S;059-05W;;;40;43; +SAAV;87;371;Sauce Viejo Aerodrome;;Argentina;3;31-42S;060-49W;;;17;18; +SABA;87;585;Buenos Aires Observatorio;;Argentina;3;34-35S;058-29W;;;25;25; +SABE;87;582;Aeroparque Bs. As. Aerodrome;;Argentina;3;34-34S;058-25W;;;6;6; +SACI;87;349;Pilar Observatorio;;Argentina;3;31-40S;063-53W;;;338;338; +SACO;87;344;Cordoba Aerodrome;;Argentina;3;31-19S;064-13W;31-19S;064-13W;484;474;P +SACP;87;322;Chepes;;Argentina;3;31-20S;066-36W;;;658;658; +SACT;--;---;Gobernador Gordillo;;Argentina;3;30-22S;066-18W;;;457;; +SACV;87;244;Villa De Maria Del Rio Seco;;Argentina;3;29-54S;063-41W;;;341;341;P +SADD;87;568;Don Torcuato Aerodrome;;Argentina;3;34-29S;058-37W;;;5;4; +SADF;--;---;San Fernando, BA;;Argentina;3;34-27-11S;058-35-23W;;;3;; +SADL;87;593;La Plata Aerodrome;;Argentina;3;34-58S;057-54W;;;21;19; +SADP;87;571;El Palomar Aerodrome;;Argentina;3;34-36S;058-36W;;;18;12; +SAEZ;87;576;Ezeiza Aerodrome;;Argentina;3;34-49S;058-32W;34-49S;058-32W;20;20;P +SAME;87;418;Mendoza Aerodrome;;Argentina;3;32-50S;068-47W;32-50S;068-47W;705;704;P +SAMI;87;416;San Martin;;Argentina;3;33-05S;068-25W;;;653;653; +SAMJ;87;305;Jachal;;Argentina;3;30-15S;068-45W;;;1165;1165; +SAMM;87;506;Malargue Aerodrome;;Argentina;3;35-30S;069-35W;;;1426;1425;P +SAMR;87;509;San Rafael Aerodrome;;Argentina;3;34-35S;068-24W;34-35S;068-24W;745;748;P +SAMS;87;412;San Carlos;;Argentina;3;33-46S;069-02W;;;940;940; +SAMU;87;405;Uspallata;;Argentina;3;32-36S;069-20W;;;1844;1891; +SANC;87;222;Catamarca Aero.;;Argentina;3;28-36S;065-46W;;;454;454;P +SANE;87;129;Santiago Del Estero Aero.;;Argentina;3;27-46S;064-18W;;;198;199;P +SANI;87;211;Tinogasta;;Argentina;3;28-04S;067-34W;;;1201;1201; +SANL;87;217;La Rioja Aero.;;Argentina;3;29-23S;066-49W;;;438;429;P +SANO;87;214;Chilecito;;Argentina;3;29-13S;067-26W;;;950;; +SANT;87;121;Tucuman Aerodrome;;Argentina;3;26-51S;065-06W;;;440;450;P +SANU;87;311;San Juan Aerodrome;;Argentina;3;31-34S;068-52W;;;597;598;P +SANW;87;257;Ceres Aerodrome;;Argentina;3;29-53S;061-57W;29-53S;061-57W;87;88;P +SAOC;87;453;Rio Cuarto Aerodrome;;Argentina;3;33-07S;064-14W;;;420;421;P +SAOD;87;328;Villa Dolores Aerodrome;;Argentina;3;31-57S;065-08W;;;561;569; +SAOL;87;534;Laboulaye;;Argentina;3;34-08S;063-22W;34-08S;063-22W;136;137; +SAOM;87;467;Marcos Juarez Aerodrome;;Argentina;3;32-42S;062-09W;;;110;114;P +SAOR;87;448;Villa Reynolds Aerodrome;;Argentina;3;33-44S;065-23W;;;485;486; +SAOU;87;436;San Luis Aerodrome;;Argentina;3;33-16S;066-21W;33-16S;066-21W;710;713;P +SARC;87;166;Corrientes Aero.;;Argentina;3;27-27S;058-46W;;;62;62; +SARE;87;155;Resistencia Aero.;;Argentina;3;27-27S;059-03W;27-27S;059-03W;53;52;P +SARF;87;162;Formosa Aerodrome;;Argentina;3;26-12S;058-14W;;;59;60;P +SARI;87;097;Iguazu Aerodrome;;Argentina;3;25-44S;054-28W;;;270;270;P +SARL;87;289;Paso De Los Libres Aerodrome;;Argentina;3;29-41S;057-09W;;;69;70;P +SARM;87;393;Monte Caseros Aerodrome;;Argentina;3;30-16S;057-39W;30-16S;057-39W;53;54; +SARP;87;178;Posadas Aero.;;Argentina;3;27-22S;055-58W;27-22S;055-58W;131;133;P +SARS;87;149;Presidencia Roque Saenz Pena Aerodrome;;Argentina;3;26-49S;060-27W;;;91;92;P +SASA;87;047;Salta Aerodrome;;Argentina;3;24-51S;065-29W;24-51S;065-29W;1238;1221;P +SASJ;87;046;Jujuy Aerodrome;;Argentina;3;24-23S;065-05W;;;921;905;P +SASO;87;016;Oran Aerodrome;;Argentina;3;23-09S;064-19W;;;357;357; +SASQ;87;007;La Quiaca Observatorio;;Argentina;3;22-06S;065-36W;;;3462;3459; +SASR;87;065;Rivadavia;;Argentina;3;24-10S;062-54W;;;205;205; +SAST;87;022;Tartagal Aerodrome;;Argentina;3;22-39S;063-49W;;;450;450;P +SATK;87;078;Las Lomitas;;Argentina;3;24-42S;060-35W;24-42S;060-35W;130;130;P +SATR;--;---;Reconquista, SF;;Argentina;3;29-12-37S;059-41-27W;;;49;; +SATU;87;286;Curuzu Cuatia Aerodrome;;Argentina;3;29-47S;057-59W;;;80;73; +SAVB;87;800;El Bolson Aerodrome;;Argentina;3;41-58S;071-31W;;;337;337; +SAVC;87;860;Comodoro Rivadavia Aerodrome;;Argentina;3;45-47S;067-30W;45-47S;067-27W;58;46;P +SAVE;87;803;Esquel Aerodrome;;Argentina;3;42-56S;071-09W;;;789;785;P +SAVO;87;784;San Antonio Oeste Aerodrome;;Argentina;3;40-47S;065-06W;;;20;20;P +SAVP;87;814;Paso De Indios;;Argentina;3;43-49S;068-53W;;;460;460; +SAVT;87;828;Trelew Aerodrome;;Argentina;3;43-12S;065-16W;;;39;43;P +SAVV;87;791;Viedma Aerodrome;;Argentina;3;40-51S;063-01W;;;6;7;P +SAVY;--;---;Puerto Madryn, CHT;;Argentina;3;42-45-33S;065-06-10W;;;136;; +SAWA;87;903;Lago Argentino Aerodrome;;Argentina;3;50-20S;072-18W;;;223;220;P +SAWD;87;896;Puerto Deseado Aerodrome;;Argentina;3;47-44S;065-55W;47-44S;065-55W;81;80; +SAWE;87;934;Rio Grande B. A.;;Argentina;3;53-48S;067-45W;53-48S;067-45W;13;22; +SAWG;87;925;Rio Gallegos Aerodrome;;Argentina;3;51-37S;069-17W;;;20;19;P +SAWH;87;938;Ushuaia Aerodrome;;Argentina;3;54-48S;068-19W;54-48S;068-19W;16;14;P +SAWJ;87;909;San Julian Aerodrome;;Argentina;3;49-19S;067-45W;;;58;62;P +SAWP;87;852;Perito Moreno Aerodrome;;Argentina;3;46-31S;071-01W;;;429;429;P +SAWR;87;880;Gobernador Gregores Aerodrome;;Argentina;3;48-47S;070-10W;;;358;357; +SAWU;87;912;Santa Cruz Aerodrome;;Argentina;3;50-01S;068-34W;;;113;111; +SAZA;87;642;Azul Airport;;Argentina;3;36-45S;059-50W;36-44S;059-50W;132;132; +SAZB;87;750;Bahia Blanca Aerodrome;;Argentina;3;38-44S;062-10W;;;75;83;P +SAZD;87;648;Dolores Aerodrome;;Argentina;3;36-21S;057-44W;;;10;9;P +SAZE;87;679;Pigue Aerodrome;;Argentina;3;37-36S;062-23W;;;304;304; +SAZG;87;532;General Pico Aerodrome;;Argentina;3;35-42S;063-45W;;;139;145; +SAZH;87;688;Tres Arroyos;;Argentina;3;38-20S;060-15W;;;115;115;P +SAZM;87;692;Mar Del Plata Aerodrome;;Argentina;3;37-56S;057-35W;37-56S;057-35W;18;21;P +SAZN;87;715;Neuquen Aerodrome;;Argentina;3;38-57S;068-08W;38-57S;068-08W;270;271;P +SAZP;87;544;Pehuajo Aerodrome;;Argentina;3;35-52S;061-54W;;;87;86; +SAZQ;87;736;Rio Colorado;;Argentina;3;39-01S;064-05W;;;79;79; +SAZR;87;623;Santa Rosa Aerodrome;;Argentina;3;36-34S;064-16W;36-34S;064-16W;190;191;P +SAZS;87;765;Bariloche Aerodrome;;Argentina;3;41-09S;071-10W;;;845;840;P +SAZT;87;645;Tandil Aerodrome;;Argentina;3;37-14S;059-15W;;;175;175;P +SAZV;87;663;Villa Gesell;;Argentina;3;37-14S;057-02W;;;7;; +SAZY;87;761;Chapelco;;Argentina;3;40-05S;071-08W;;;779;; +SBAA;82;861;Conceicao Do Araguaia;;Brazil;3;08-15S;049-17W;;;157;; +SBAF;83;748;Afonsos Aeroporto ;;Brazil;3;22-52S;043-22W;;;34;; +SBAN;83;419;Anapolis Braz-Afb ;;Brazil;3;16-14S;048-58W;;;1137;; +SBAR;83;095;Aracaju Aeroporto ;;Brazil;3;10-59S;037-04W;;;8;9; +SBAT;82;965;Alta Floresta Aeroporto ;;Brazil;3;09-52S;056-06W;09-52S;056-06W;288;288; +SBBC;82;410;Benjamin Constant;;Brazil;3;04-23S;070-02W;;;65;; +SBBE;82;193;Belem Aeroporto ;;Brazil;3;01-23S;048-29W;01-23S;048-29W;16;16; +SBBG;83;981;Bage Aeroporto ;;Brazil;3;31-21S;054-07W;31-21S;054-07W;180;180; +SBBH;83;583;Belo Horizonte Aeroporto ;;Brazil;3;19-51S;043-57W;19-51S;043-57W;785;785; +SBBI;83;842;Curitiba;;Brazil;3;25-26S;049-16W;;;924;; +SBBQ;83;689;Barbacena;;Brazil;3;21-15S;043-46W;;;1171;1171; +SBBR;83;378;Brasilia Aeroporto ;;Brazil;3;15-52S;047-56W;15-52S;047-56W;1061;1061; +SBBU;83;722;Bauru;;Brazil;3;22-19S;049-04W;;;590;; +SBBV;82;022;Boa Vista, Boa Vista Intl ;;Brazil;3;02-50N;060-42W;02-50N;060-42W;84;; +SBBW;83;359;Barra Do Garcas;;Brazil;3;15-52S;052-23W;;;350;350; +SBCC;--;---;Cachimbo;;Brazil;3;09-20S;054-57W;;;536;; +SBCF;83;587;Belo Horizonte;;Brazil;3;19-56S;043-56W;;;850;; +SBCG;83;612;Campo Grande Aeroporto ;;Brazil;3;20-28S;054-40W;20-28S;054-40W;567;567; +SBCI;82;764;Maranhao / Carolina Airport;;Brazil;3;07-19S;047-28W;;;183;; +SBCJ;--;---;Carajas / Maraba;;Brazil;3;06-07S;050-00W;;;621;; +SBCO;83;967;Porto Alegre;;Brazil;3;30-01S;051-13W;;;47;; +SBCP;83;698;Campos;;Brazil;3;21-45S;041-20W;21-45S;041-20W;11;11; +SBCR;83;552;Corumba;;Brazil;3;19-05S;057-30W;;;130;; +SBCT;83;840;Curitiba Aeroporto ;;Brazil;3;25-31S;049-10W;25-31S;049-10W;908;908; +SBCV;83;497;Caravelas ;;Brazil;3;17-39S;039-15W;17-38S;039-15W;11;; +SBCY;83;362;Cuiaba Aeroporto ;;Brazil;3;15-39S;056-06W;15-39S;056-06W;187;182; +SBCZ;82;704;Cruzeiro Do Sul;;Brazil;3;07-38S;072-40W;;;170;; +SBDN;83;716;Presidente Prudente;;Brazil;3;22-07S;051-23W;;;436;; +SBEG;82;111;Eduardo Gomes International;;Brazil;3;03-02S;060-03W;;;2;; +SBEK;82;640;Jacareacanga;;Brazil;3;06-16S;057-44W;06-16S;057-44W;98;98; +SBES;83;759;S. P. Aldeia Aerodrome ;;Brazil;3;22-49S;042-06W;;;10;11; +SBFI;83;827;Foz Do Iguacu Aeroporto ;;Brazil;3;25-31S;054-35W;25-31S;054-35W;180;180; +SBFL;83;899;Florianopolis Aeroporto ;;Brazil;3;27-40S;048-33W;27-40S;048-33W;5;5; +SBFN;82;400;Fernando De Noronha;;Brazil;3;03-51S;032-25W;03-51S;032-25W;56;45; +SBFZ;82;398;Fortaleza / pinto Martins ;;Brazil;3;03-47S;038-32W;03-47S;038-32W;25;25; +SBGA;83;375;Gama;;Brazil;3;16-03S;048-03W;;;700;; +SBGL;83;746;Galeao;;Brazil;3;22-49S;043-15W;22-49S;043-15W;6;42; +SBGO;83;424;Goiania Aeroporto ;;Brazil;3;16-38S;049-13W;;;747;; +SBGR;--;---;Guarulhos Civ / Mil ;;Brazil;3;23-26S;046-28W;;;750;; +SBGW;83;708;Guaratingueta;;Brazil;3;22-47S;045-12W;;;537;537; +SBHT;82;353;Altamira;;Brazil;3;03-12S;052-12W;;;74;; +SBIH;82;444;Itaituba;;Brazil;3;04-15S;056-00W;;;34;; +SBIL;83;349;Ilheus Aeroporto ;;Brazil;3;14-49S;039-02W;;;4;; +SBIZ;82;564;Imperatriz;;Brazil;3;05-32S;047-30W;;;123;; +SBJF;83;692;Juiz De Fora;;Brazil;3;21-46S;043-21W;;;939;939; +SBJP;82;798;Joao Pessoa;;Brazil;3;07-06S;034-52W;;;7;; +SBJR;83;111;Rio / Jacarepagua;;Brazil;3;22-59S;043-22W;;;3;; +SBKG;82;795;Campina Grande;;Brazil;3;07-13S;035-53W;;;548;; +SBKP;83;721;Campinas Aeroporto ;;Brazil;3;23-00S;047-08W;23-00S;047-08W;661;661; +SBLO;83;768;Londrina Aeroporto ;;Brazil;3;23-20S;051-08W;23-20S;051-08W;569;570; +SBLP;83;288;Bom Jesus Da Lapa;;Brazil;3;13-16S;043-25W;13-16S;043-25W;440;440; +SBMA;82;562;Maraba;;Brazil;3;05-21S;049-09W;;;95;; +SBME;--;---;Macae;;Brazil;3;22-21S;041-46W;;;2;; +SBMG;83;767;Maringa;;Brazil;3;23-25S;051-57W;;;542;542; +SBMK;83;437;Montes Claros;;Brazil;3;16-43S;043-52W;16-44S;043-52W;646;647; +SBMN;82;332;Manaus Aeroporto ;;Brazil;3;03-09S;059-59W;03-09S;059-59W;84;84; +SBMO;82;993;Maceio Aeroporto ;;Brazil;3;09-31S;035-47W;09-31S;035-47W;117;115; +SBMQ;82;098;Macapa;;Brazil;3;00-02N;050-03W;;;15;; +SBMS;82;591;Mocoro / 17 Rosado;;Brazil;3;05-12S;037-22W;;;23;; +SBMT;83;779;Marte Civ / Mil ;;Brazil;3;23-31S;046-38W;;;722;; +SBMY;82;533;Manicore;;Brazil;3;05-49S;061-18W;;;50;; +SBNT;82;599;Natal Aeroporto;;Brazil;3;05-55S;035-15W;05-55S;035-15W;52;49; +SBOI;82;017;Oiapoque;;Brazil;3;03-50N;051-50W;;;39;39; +SBPA;83;971;Porto Alegre Aero-Porto ;;Brazil;3;30-00S;051-11W;30-00S;051-11W;3;3; +SBPB;82;288;Parnaiba Aeroporto ;;Brazil;3;02-55S;041-45W;;;5;; +SBPC;83;681;Pocos De Caldas;;Brazil;3;21-51S;046-34W;;;1260;; +SBPF;83;914;Passo Fundo;;Brazil;3;28-15S;052-24W;;;684;; +SBPG;83;844;Paranagua;;Brazil;3;25-31S;048-31W;;;5;; +SBPK;83;985;Pelotas;;Brazil;3;31-52S;052-21W;;;13;13; +SBPL;82;984;Petrolina ;;Brazil;3;09-21S;040-33W;;;385;; +SBPN;83;063;Porto Nacional Aeroporto ;;Brazil;3;10-42S;048-24W;10-42S;048-24W;261;290; +SBPP;83;703;Ponta Pora Intl ;;Brazil;3;22-33S;055-42W;;;657;; +SBPS;--;---;Porto Seguro;;Brazil;3;16-26S;039-04W;;;51;; +SBPV;82;824;Porto Velho Aeroporto ;;Brazil;3;08-46S;063-55W;08-46S;063-55W;102;102; +SBQV;83;344;Vitoria Da Conquista;;Brazil;3;14-57S;040-53W;14-51S;040-50W;840;1042; +SBRB;82;917;Rio Branco;;Brazil;3;10-00S;067-48W;;;142;143; +SBRF;82;899;Recife Aeroporto ;;Brazil;3;08-04S;034-51W;;;19;; +SBRJ;83;755;Rio De Janeiro Aeroporto ;;Brazil;3;22-54S;043-10W;;;3;; +SBRP;--;---;Leite Lopes / Ribeir ;;Brazil;3;21-08S;047-47W;;;549;; +SBRS;83;738;Resende;;Brazil;3;22-29S;044-28W;;;440;; +SBSA;83;726;Sao Carlos;;Brazil;3;22-01S;047-53W;;;856;; +SBSC;83;741;Rio De Janeiro-Santa Cruz Ab ;;Brazil;3;22-56S;043-43W;22-56S;043-43W;3;3; +SBSJ;--;---;Sao Jose Dos Campo ;;Brazil;3;23-14S;045-52W;;;646;; +SBSL;82;281;Sao Luiz Aeroporto ;;Brazil;3;02-36S;044-14W;02-36S;044-14W;53;53; +SBSM;83;937;Santa Maria Aero-Porto ;;Brazil;3;29-43S;053-42W;;;85;; +SBSN;82;244;Santarem-Aeroporto;;Brazil;3;02-26S;054-43W;02-26S;054-43W;72;72; +SBSP;83;780;Sao Paulo/Congonhas Aeroporto;;Brazil;3;23-37S;046-39W;23-37S;046-39W;803;802; +SBST;83;818;Santos Aeroporto ;;Brazil;3;23-56S;046-18W;;;3;3; +SBSV;83;248;Salvador Aeroporto ;;Brazil;3;12-54S;038-20W;12-56S;038-21W;6;13; +SBTE;82;579;Teresina Aeroporto ;;Brazil;3;05-03S;042-49W;05-03S;042-49W;69;69; +SBTF;82;317;Tefe;;Brazil;3;03-22S;064-41W;;;47;47; +SBTK;82;807;Tarauaca;;Brazil;3;08-10S;070-46W;;;190;; +SBTT;82;411;Tabatinga;;Brazil;3;03-40S;069-40W;;;85;; +SBTU;82;361;Tucurui;;Brazil;3;03-43S;049-43W;;;40;; +SBUA;82;106;Sao Gabriel Da Cachoeira;;Brazil;3;00-08S;067-05W;;;90;; +SBUF;82;986;Paulo Afonso;;Brazil;3;09-24S;038-13W;;;253;; +SBUG;83;928;Uruguaiana Aeroporto ;;Brazil;3;29-47S;057-02W;29-47S;057-02W;74;74; +SBUL;--;---;Uberlandia ;;Brazil;3;18-53S;048-14W;;;943;; +SBUR;83;576;Uberaba;;Brazil;3;19-47S;047-58W;19-46S;047-57W;807;809; +SBVH;83;208;Vilhena Aeroporto ;;Brazil;3;12-42S;060-06W;12-44S;060-08W;612;652; +SBVT;83;649;Vitoria Aeroporto ;;Brazil;3;20-16S;040-17W;20-16S;040-17W;4;4; +SBXV;83;319;Xavantina ;;Brazil;3;14-42S;052-21W;;;315;; +SBYA;82;067;Iauarete;;Brazil;3;00-37N;069-12W;;;120;; +SBYS;83;671;Pirassununga;;Brazil;3;21-59S;047-20W;21-59S;047-21W;597;598; +SCAR;85;406;Arica;;Chile;3;18-20S;070-20W;18-21S;070-21W;58;58;P +SCBA;85;874;Balmaceda;;Chile;3;45-55S;071-41W;45-54S;071-43W;520;520;P +SCCC;85;886;Chile Chico;;Chile;3;46-33S;071-42W;;;325;325;P +SCCH;85;672;Chillan;;Chile;3;36-34S;072-02W;36-34S;072-02W;124;148;P +SCCI;85;934;Punta Arenas;;Chile;3;53-00S;070-51W;53-02S;070-51W;37;33;P +SCCY;85;864;Coyhaique;;Chile;3;45-35S;072-07W;;;310;;P +SCDA;85;418;Iquique / Diego Arac;;Chile;3;20-32S;070-11W;;;52;; +SCEL;85;574;Pudahuel;;Chile;3;33-23S;070-47W;33-23S;070-47W;475;476;P +SCER;85;543;Quintero Santiago;;Chile;3;32-47S;071-31W;32-47S;071-31W;8;8;P +SCFA;85;442;Antofagasta;;Chile;3;23-26S;070-26W;23-25S;070-28W;135;137;P +SCHA;85;470;Copiapo;;Chile;3;27-18S;070-25W;27-18S;070-25W;291;291;P +SCHR;85;892;Cochrane;;Chile;3;47-14S;072-33W;;;167;167;P +SCIC;85;629;Curico;;Chile;3;34-58S;071-14W;;;228;;P +SCIE;85;682;Concepcion;;Chile;3;36-46S;073-03W;;;12;;P +SCIP;85;469;Isla De Pascua;;Chile;3;27-09S;109-25W;27-10S;109-26W;51;41;P +SCLL;85;486;Vallenar;;Chile;3;28-36S;070-46W;;;538;526;P +SCRA;85;460;Chanaral;;Chile;3;26-19S;070-37W;26-19S;070-37W;30;30;P +SCSE;85;488;La Serena;;Chile;3;29-54S;071-12W;;;142;;P +SCTC;85;743;Temuco;;Chile;3;38-45S;072-38W;;;114;;P +SCTE;85;799;Puerto Montt;;Chile;3;41-25S;073-05W;41-26S;073-07W;85;84;P +SCVD;85;766;Valdivia;;Chile;3;39-37S;073-05W;;;19;;P +SEAM;84;147;Ambato / Chachoan;;Ecuador;3;01-12S;078-34W;;;2520;; +SEBC;84;101;Bahia De Caraquez;;Ecuador;3;00-35S;080-24W;;;3;; +SECU;84;239;Cuenca / Mariscal Lamar;;Ecuador;3;02-53S;078-59W;02-53S;078-58W;2530;2531;P +SEES;84;018;Esmeraldas-Tachina;;Ecuador;3;00-58N;079-38W;00-59N;079-39W;7;8;P +SEGU;84;203;Guayaquil / Simon Bolivar;;Ecuador;3;02-09S;079-53W;02-09S;079-53W;4;9;P +SEIB;84;043;Ibarra / Atahualpa;;Ecuador;3;00-21N;078-08W;;;2228;; +SELO;84;265;Catamayo / Camilo Ponce Enriquez;;Ecuador;3;04-00S;079-22W;;;1239;1238;P +SELT;84;123;Latacunga;;Ecuador;3;00-55S;078-37W;;;2785;; +SEMA;84;279;Macara / J. M. Velasco I.;;Ecuador;3;04-22S;079-56W;;;430;; +SEMH;84;248;Machala / General M. Serrano;;Ecuador;3;03-15S;079-58W;;;4;10; +SEMT;84;117;Manta;;Ecuador;3;00-57S;080-41W;;;13;14;P +SEPA;84;163;Pastaza / Rio Amazonas;;Ecuador;3;01-30S;078-03W;;;1043;1054;P +SEQU;84;071;Quito / Mariscal Sucre;;Ecuador;3;00-09S;078-29W;00-08S;078-29W;2811;2812;P +SESA;84;200;Salinas / General Ulpiano Paez;;Ecuador;3;02-12S;080-59W;;;4;8;P +SEST;84;008;San Cristobal Galapagos ;;Ecuador;3;00-54S;089-36W;00-54S;089-37W;6;6;P +SETI;84;131;Tiputini ;;Ecuador;3;00-47S;075-31W;;;220;; +SETU;84;027;Tulcan / El Rosal;;Ecuador;3;00-49N;077-42W;;;2950;; +SFAL;88;891;Stanley Airport;;Falkland Islands, Islas Malvinas;3;51-41S;057-46W;;;23;; +SGAS;86;218;Asuncion / Aeropuerto;;Paraguay;3;25-16S;057-38W;25-16S;057-38W;101;101; +SGCO;86;134;Concepcion;;Paraguay;3;23-25S;057-18W;;;74;74; +SGEN;86;297;Encarnacion;;Paraguay;3;27-19S;055-50W;;;91;91; +SGES;--;---;Aeropuerto Guarany;;Paraguay;3;25-27S;054-51W;;;849;; +SGME;86;068;Mariscal Estigarribia;;Paraguay;3;22-01S;060-36W;;;172;181; +SGNA;86;017;Nueva Asuncion;;Paraguay;3;20-43S;061-55W;20-43S;061-55W;318;315; +SKAR;80;211;Armenia / El Eden;;Colombia;3;04-30N;075-43W;;;1204;1219;P +SKAS;80;372;Puerto Asis;;Colombia;3;00-30N;076-30W;;;254;;P +SKBG;80;094;Bucaramanga / Palonegro;;Colombia;3;07-06N;073-12W;;;1189;;P +SKBO;80;222;Bogota / Eldorado;;Colombia;3;04-43N;074-09W;04-42N;074-09W;2547;2548;P +SKBQ;80;028;Barranquilla / Ernestocortissoz;;Colombia;3;10-53N;074-47W;10-54N;074-46W;14;30;P +SKBU;80;252;Buenaventura;;Colombia;3;03-51N;076-58W;;;14;15;P +SKCC;80;097;Cucuta / Camilo Daza;;Colombia;3;07-56N;072-31W;;;250;317;P +SKCG;80;022;Cartagena / Rafael Nunez;;Colombia;3;10-27N;075-31W;;;1;12;P +SKCL;80;259;Cali / Alfonso Bonillaaragon;;Colombia;3;03-33N;076-23W;03-33N;076-23W;961;969;P +SKEJ;80;091;Barrancabermeja / Yariguies;;Colombia;3;07-01N;073-48W;;;126;134;P +SKIB;80;214;Ibague / Perales;;Colombia;3;04-26N;075-09W;;;928;;P +SKIP;80;370;Ipiales / San Luis;;Colombia;3;00-49N;077-38W;;;2961;;P +SKLC;80;084;Apartado / Los Cedros;;Colombia;3;07-49N;076-42W;;;20;;P +SKLT;80;398;Leticia / Vasquez Cobo;;Colombia;3;04-10S;069-57W;04-10S;069-57W;84;84;P +SKMD;80;110;Medellin / Olaya Herrera;;Colombia;3;06-13N;075-36W;;;1490;1499;P +SKMR;80;063;Monteria / Los Garzones;;Colombia;3;08-49N;075-51W;;;20;26;P +SKMU;80;361;Mitu;;Colombia;3;01-08N;070-03W;;;207;; +SKNV;80;315;Neiva / Benito Salas;;Colombia;3;02-58N;075-18W;;;439;443;P +SKPC;80;139;Puerto Carreno / A. Guauquea;;Colombia;3;06-10N;067-30W;;;55;;P +SKPE;80;210;Pereira / Matecana;;Colombia;3;04-49N;075-44W;;;1342;1342;P +SKPP;80;308;Popayan / Guillermo;;Colombia;3;02-28N;076-36W;02-27N;076-36W;1730;1730; +SKPS;80;342;Pasto / Antonio Narin;;Colombia;3;01-25N;077-16W;;;1826;; +SKPV;80;002;Providencia Isla / El Embrujo;;Colombia;4;13-22N;081-21W;;;6;;P +SKRG;80;112;Rionegro / J. M. Cordova;;Colombia;3;06-08N;075-26W;;;2140;2142;P +SKRH;80;035;Riohacha / Almirante Padilla;;Colombia;3;11-32N;072-56W;11-32N;072-56W;4;4;P +SKSJ;80;322;San Jose Del Guaviare;;Colombia;3;02-34N;072-38W;;;155;155;P +SKSM;80;009;Santa Marta / Simon Bolivar;;Colombia;3;11-08N;074-14W;;;4;14;P +SKSP;80;001;San Andres Isla / Sesquicentenario;;Colombia;4;12-35N;081-43W;12-35N;081-42W;1;6;P +SKUC;80;099;Arauca / Santiago Perez;;Colombia;3;07-04N;070-44W;;;128;128;P +SKUI;80;144;Quibdo / El Carano;;Colombia;3;05-43N;076-37W;;;53;;P +SKVP;80;036;Valledupar / Alfonso Lopez;;Colombia;3;10-26N;073-15W;;;138;;P +SKVV;80;234;Villavicencio / Vanguardia;;Colombia;3;04-10N;073-37W;;;423;431;P +SLAP;85;151;Apolo;;Bolivia;3;14-44S;068-30W;;;1415;; +SLAS;85;175;Ascencion De Guarayos;;Bolivia;3;15-43S;063-06W;;;247;; +SLCA;85;315;Camiri;;Bolivia;3;20-00S;063-32W;;;798;;P +SLCB;85;223;Cochabamba;;Bolivia;3;17-25S;066-11W;17-23S;066-10W;2548;2570;P +SLCN;85;230;Charana;;Bolivia;3;17-35S;069-36W;;;4054;;P +SLCO;85;041;Cobija;;Bolivia;3;11-02S;068-47W;11-01S;068-47W;235;260;P +SLCP;85;196;Concepcion;;Bolivia;3;16-09S;062-01W;;;497;; +SLET;85;245;Santa Cruz / El Trompillo;;Bolivia;3;17-48S;063-11W;17-48S;063-10W;418;414;P +SLGY;85;033;Guayaramerin;;Bolivia;3;10-49S;065-21W;;;130;; +SLJE;85;247;San Jose De Chiquitos;;Bolivia;3;17-48S;060-44W;;;284;;P +SLJO;85;104;San Joaquin;;Bolivia;3;13-04S;064-49W;;;140;;P +SLJV;85;195;San Javier;;Bolivia;3;16-16S;062-28W;;;534;; +SLLP;85;201;La Paz / Alto;;Bolivia;3;16-31S;068-11W;16-30S;068-11W;4058;4038;P +SLMG;85;114;Magdalena;;Bolivia;3;13-20S;064-07W;;;140;; +SLOR;85;242;Oruro;;Bolivia;3;17-58S;067-04W;;;3072;;P +SLPO;85;293;Potosi;;Bolivia;3;19-33S;065-44W;;;3935;; +SLPS;85;289;Puerto Suarez;;Bolivia;3;18-59S;057-49W;;;134;;P +SLRB;85;268;Robore;;Bolivia;3;18-19S;059-46W;;;276;;P +SLRI;85;043;Riberalta;;Bolivia;3;11-00S;066-07W;;;141;;P +SLRQ;85;141;Rurrenabaque;;Bolivia;3;14-28S;067-34W;14-28S;067-35W;204;274;P +SLRY;85;140;Reyes;;Bolivia;3;14-19S;067-23W;;;140;; +SLSA;85;123;Santa Ana;;Bolivia;3;13-46S;065-26W;;;144;; +SLSB;85;152;San Borja;;Bolivia;3;14-52S;066-52W;;;194;; +SLSI;85;207;San Ignacio De Velasco;;Bolivia;3;16-23S;060-58W;;;413;;P +SLSM;85;153;San Ignacio De Moxos;;Bolivia;3;14-55S;065-36W;;;160;; +SLSU;85;283;Sucre;;Bolivia;3;19-01S;065-18W;;;2904;; +SLTJ;85;364;Tarija;;Bolivia;3;21-33S;064-42W;;;1854;; +SLTR;85;154;Trinidad;;Bolivia;3;14-49S;064-55W;14-45S;064-48W;155;236;P +SLVM;85;345;Villamontes;;Bolivia;3;21-15S;063-27W;;;398;; +SLVR;85;244;Viru-Viru;;Bolivia;3;17-38S;063-08W;;;373;;P +SLYA;85;365;Yacuiba;;Bolivia;3;21-57S;063-39W;;;645;;P +SMJP;--;---;Johan A. Pengel;;Suriname;3;05-27N;055-11W;;;16;; +SMZY;81;225;Zanderij;;Suriname;3;05-27N;055-12W;05-27N;055-12W;15;15;P +SOCA;81;405;Cayenne / Rochambeau;;French Guiana;3;04-50N;052-22W;04-50N;052-22W;105;9;P +SOOM;81;401;Saint-Laurent-Du-Maroni;;French Guiana;3;05-30N;054-02W;05-30N;054-02W;4;9;P +SPAY;84;593;Atalaya;;Peru;3;10-44S;073-47W;;;450;451; +SPCL;84;515;Pucallpa;;Peru;3;08-25S;074-36W;08-22S;074-35W;148;149; +SPEO;84;531;Chimbote;;Peru;3;09-10S;078-31W;;;20;21; +SPGM;84;534;Tingo Maria;;Peru;3;09-08S;075-57W;;;664;665; +SPHI;84;452;Chiclayo;;Peru;3;06-47S;079-50W;06-47S;079-50W;29;34; +SPHO;84;673;Ayacucho;;Peru;3;13-08S;074-13W;;;2740;2749; +SPHY;84;688;Andahuayla;;Peru;3;13-43S;073-21W;;;3444;; +SPHZ;84;542;Anta Huaraz ;;Peru;3;09-21S;077-36W;;;2750;2760; +SPIM;84;628;Lima-Callao / Aerop. Internacional Jorgechavez;;Peru;3;12-00S;077-07W;12-01S;077-02W;12;13; +SPJA;84;440;Rioja;;Peru;3;06-03S;077-09W;;;792;; +SPJI;84;474;Juanjui;;Peru;3;07-13S;076-43W;;;350;363; +SPJL;84;735;Juliaca;;Peru;3;15-29S;070-09W;;;3826;3827; +SPJN;84;721;San Juan;;Peru;3;15-23S;075-10W;;;60;60; +SPJR;84;472;Cajamarca;;Peru;3;07-08S;078-28W;;;2620;2622; +SPME;84;370;Tumbes;;Peru;3;03-33S;080-24W;;;25;27; +SPMS;84;425;Yurimaguas;;Peru;3;05-54S;076-05W;;;179;184; +SPNC;84;564;Huanuco;;Peru;3;09-54S;075-45W;;;1859;1860; +SPPY;84;444;Chachapoyas;;Peru;3;06-13S;077-50W;;;2540;2540; +SPQT;84;377;Iquitos;;Peru;3;03-45S;073-15W;03-45S;073-15W;125;126; +SPQU;84;752;Arequipa;;Peru;3;16-19S;071-33W;16-19S;071-33W;2538;2539; +SPRU;84;501;Trujillo;;Peru;3;08-06S;079-02W;;;26;30; +SPSO;84;691;Pisco;;Peru;3;13-45S;076-17W;13-45S;076-13W;8;7; +SPST;84;455;Tarapoto;;Peru;3;06-27S;076-23W;;;281;282; +SPTN;84;782;Tacna;;Peru;3;18-04S;070-18W;;;468;469; +SPTU;84;658;Puerto Maldonado;;Peru;3;12-38S;069-12W;;;265;266; +SPUR;84;401;Piura;;Peru;3;05-11S;080-36W;;;49;55; +SPYL;84;390;Talara;;Peru;3;04-34S;081-15W;04-34S;081-15W;85;90; +SPZO;84;686;Cuzco;;Peru;3;13-33S;071-59W;;;3248;3249; +SUAA;86;575;Melilla;;Uruguay;3;34-47S;056-15W;;;53;48; +SUAG;86;330;Artigas;;Uruguay;3;30-23S;056-30W;;;123;120;P +SUCA;86;560;Colonia;;Uruguay;3;34-27S;057-50W;;;23;22;P +SUDU;86;530;Durazno;;Uruguay;3;33-21S;056-30W;;;93;92; +SULS;--;---;Capitan Corbeta;;Uruguay;3;34-52S;055-06W;;;30;; +SUME;86;490;Mercedes;;Uruguay;3;33-15S;058-04W;;;22;17; +SUMO;86;440;Melo;;Uruguay;3;32-22S;054-13W;;;100;100; +SUMU;86;580;Carrasco;;Uruguay;3;34-50S;056-00W;;;32;32;P +SUPE;--;---;Maldonado / Punta Est;;Uruguay;3;34-55S;054-55W;;;15;; +SUPU;86;430;Paysandu;;Uruguay;3;32-20S;058-02W;;;61;61; +SURV;86;350;Rivera;;Uruguay;3;30-53S;055-32W;;;205;241; +SUSO;86;360;Salto;;Uruguay;3;31-23S;057-57W;;;34;33;P +SUTB;86;370;Tacuarembo;;Uruguay;3;31-42S;055-59W;;;134;134; +SUTR;86;500;Treinta Y Tres;;Uruguay;3;33-13S;054-23W;;;46;46;P +SVAC;80;427;Acarigua;;Venezuela;3;09-33N;069-14W;;;226;225;P +SVBC;80;419;Barcelona;;Venezuela;3;10-07N;064-41W;10-07N;064-41W;7;7;P +SVBI;80;440;Barinas;;Venezuela;3;08-37N;070-13W;;;203;204;P +SVBM;80;410;Barquisimeto;;Venezuela;3;10-04N;069-19W;10-04N;069-19W;613;614;P +SVBS;80;413;Maracay-B. A. Sucre;;Venezuela;3;10-15N;067-39W;10-15N;067-39W;436;437;P +SVCB;80;444;Ciudad Bolivar;;Venezuela;3;08-09N;063-33W;08-07N;063-32W;43;48;P +SVCL;80;442;Calabozo;;Venezuela;3;08-56N;067-25W;;;100;101;P +SVCP;--;---;Carupano / Gen. Jose;;Venezuela;3;10-40N;063-16W;;;10;; +SVCR;80;403;Coro;;Venezuela;3;11-25N;069-41W;11-25N;069-41W;16;17;P +SVCS;--;---;Caracas / Oscar Macha;;Venezuela;3;10-18N;066-49W;;;654;; +SVCU;80;420;Cumana;;Venezuela;3;10-27N;064-11W;;;2;4;P +SVFM;80;416;Caracas / La Carlota;;Venezuela;3;10-30N;066-53W;10-30N;066-53W;835;835;P +SVGD;80;448;Guasdualito;;Venezuela;3;07-14N;070-48W;07-14N;070-48W;130;131;P +SVGI;80;423;Guiria;;Venezuela;3;10-35N;062-19W;;;13;14;P +SVGU;80;428;Guanare;;Venezuela;3;09-01N;069-44W;;;163;163;P +SVHG;--;---;Higuerote;;Venezuela;3;10-28N;066-06W;;;4;; +SVJC;--;---;Paraguana / Josefa;;Venezuela;3;11-47N;070-09W;;;23;; +SVJM;80;431;San Juan De Los Morros;;Venezuela;3;09-55N;067-20W;;;429;429;P +SVLF;--;---;La Fria;;Venezuela;3;08-15N;072-16W;;;98;; +SVLO;80;405;La Orchila;;Venezuela;3;11-48N;066-11W;11-48N;066-11W;3;3;P +SVMC;80;407;Maracaibo-La Chinita;;Venezuela;3;10-34N;071-44W;10-34N;071-44W;66;65;P +SVMD;80;438;Merida;;Venezuela;3;08-36N;071-11W;;;1479;1498;P +SVMG;--;---;Margarita / Del Carib;;Venezuela;3;10-55N;063-59W;;;23;; +SVMI;80;415;Caracas / Maiquetia Aerop. Intl. Simon Bolivar;;Venezuela;3;10-36N;066-59W;10-36N;066-59W;43;48;P +SVMN;80;425;Mene Grande;;Venezuela;3;09-49N;070-56W;09-49N;070-56W;27;28;P +SVMP;--;---;Metropolitano Private ;;Venezuela;3;10-08N;066-47W;;;175;; +SVMT;80;435;Maturin;;Venezuela;3;09-45N;063-11W;09-45N;063-11W;65;66;P +SVPA;80;457;Puerto Ayacucho;;Venezuela;3;05-36N;067-30W;05-36N;067-30W;73;74;P +SVPC;80;412;Pto. Cabello;;Venezuela;3;10-30N;068-00W;;;2;2;P +SVPM;--;---;Paramillo Private ;;Venezuela;3;07-48N;072-12W;;;1000;; +SVPR;--;---;Guayana / Manuel Car ;;Venezuela;3;08-18N;062-44W;;;144;; +SVSA;80;447;San Antonio Del Tachira;;Venezuela;3;07-51N;072-27W;07-51N;072-27W;377;378;P +SVSE;80;462;Santa Elena De Uairen;;Venezuela;3;04-36N;061-07W;04-36N;061-07W;907;907;P +SVSO;80;475;Sto. Domingo;;Venezuela;3;07-35N;072-04W;;;327;327;P +SVSP;--;---;San Felipe;;Venezuela;3;10-17N;068-45W;;;232;; +SVSR;80;450;San Fernando De Apure;;Venezuela;3;07-54N;067-25W;07-52N;067-26W;47;48;P +SVST;--;---;San Tome Private ;;Venezuela;3;08-57N;064-09W;;;262;; +SVSZ;--;---;Santa Barbara Zulia;;Venezuela;3;08-59N;071-57W;;;10;; +SVTM;80;453;Tumeremo;;Venezuela;3;07-18N;061-27W;07-18N;061-27W;180;181;P +SVTR;80;478;Temblador;;Venezuela;3;09-01N;062-37W;;;30;30;P +SVVA;80;472;Valencia;;Venezuela;3;10-10N;067-56W;;;430;431;P +SVVG;--;---;El Vigia / Perez Alph;;Venezuela;3;08-38N;071-40W;;;100;; +SVVL;80;426;Valera;;Venezuela;3;09-21N;070-37W;09-21N;070-37W;582;582;P +SVVP;80;434;Valle De La Pascua;;Venezuela;3;09-13N;066-01W;;;125;; +SWBC;82;113;Barcelos;;Brazil;3;00-59S;062-35W;;;40;; +SYCJ;--;---;Georgetown/Cheddi Jagan International Airport;;Guyana;3;06-29N;058-15W;;;29;; +SYGT;81;001;Georgetown;;Guyana;3;06-48N;058-09W;;;1;2; +SYTM;81;002;Timehri Airport;;Guyana;3;06-30N;058-15W;;;28;30; +TAKA;--;---;Takao Radar Site;;Japan;2;35-34N;133-14E;;;15;; +TAPA;78;862;Vc Bird International Airport Antigua;;Antigua and Barbuda;4;17-07N;061-47W;;;8;10; +TBPB;78;954;Grantley Adams;;Barbados;4;13-04N;059-29W;13-04N;059-30W;50;56;P +TBPO;--;---;Bridgetown City ;;Barbados;4;13-06N;059-37W;;;50;; +TDCF;78;906;Canefield Airport;;Dominica;4;15-32N;061-24W;;;5;5; +TDPD;78;905;Melville Hall Airport;;Dominica;4;15-32N;061-18W;;;13;14; +TDPR;78;907;Roseau;;Dominica;4;15-18N;061-24W;;;72;72; +TFFF;78;925;Le Lamentin;;Martinique;4;14-36N;061-00W;14-36N;061-00W;5;7;P +TFFJ;78;894;Gustavia, Saint Barthelemy;;Guadeloupe;4;17-54N;062-51W;17-54N;062-52W;48;52;P +TFFR;78;897;Le Raizet, Guadeloupe;;Guadeloupe;4;16-16N;061-31W;16-16N;061-32W;11;11;P +TGPY;78;958;Point Salines Airport;;Grenada;4;12-00N;061-47W;;;6;7; +TIST;78;543;Charlotte Amalie St. Thomas, Cyril E. King Airport;;Virgin Islands;4;18-20N;064-59W;;;7;; +TISX;78;547;Christiansted, Henry E. Rohlsen Airport;;Virgin Islands;4;17-42N;064-48W;17-42N;064-48W;20;17; +TJBQ;78;514;Aquadilla, Rafael Hernandez Airport;PR;United States;4;18-30N;067-08W;18-30N;067-08W;72;69; +TJMZ;--;---;Mayaguez, Eugenio Maria de Hostos Airport;PR;United States;4;18-16N;067-09W;;;9;; +TJNR;78;535;Roosevelt Roads, Roosevelt Roads Naval Station, Ofstie Field;PR;United States;4;18-15-19N;065-38-36W;18-59-20N;065-38-20W;12;10;P +TJPS;--;---;Ponce, Mercedita Airport;PR;United States;4;18-01N;066-34W;;;8;; +TJSJ;--;---;San Juan, Luis Munoz Marin International Airport;PR;United States;4;18-27N;066-00W;;;3;; +TKPK;78;858;Golden Rock;;Saint Kitts and Nevis;4;17-18N;062-41W;;;48;48; +TKPN;78;859;Charlestown / Newcast;;Antigua and Barbuda;4;17-12N;062-35W;;;17;; +TLPC;78;947;Vigie;;Saint Lucia;4;14-01N;061-00W;;;2;2; +TLPL;78;948;Hewanorra International Airport;;Saint Lucia;4;13-45N;060-57W;;;3;10; +TNCA;78;982;Queen Beatrix Airport;;Aruba;4;12-30N;070-01W;;;18;33;P +TNCB;78;990;Flamingo Airport, Bonaire;;Netherlands Antilles;4;12-09N;068-17W;;;6;7;P +TNCC;78;988;Hato Airport, Curacao;;Netherlands Antilles;4;12-12N;068-58W;12-12N;068-58W;9;67;P +TNCE;78;873;Roosevelt Airport Saint Eustatius;;Netherlands Antilles;4;17-29N;062-59W;;;38;39;P +TNCM;78;866;Juliana Airport, Saint Maarten;;Netherlands Antilles;4;18-03N;063-07W;18-03N;063-07W;4;9;P +TQPF;--;---;Wallblake;;Anguilla;4;18-12-17N;063-03-18W;;;31;; +TRPM;--;---;Blackburne / Plymouth;;Antigua and Barbuda;4;16-45N;062-10W;;;12;; +TTCP;--;---;Crown Pt./ Scarborou;;Trinidad and Tobago;4;11-09N;060-51W;;;8;; +TTPP;78;970;Piarco International Airport, Trinidad;;Trinidad and Tobago;4;10-37N;061-21W;10-35N;061-21W;12;15;P +TTPT;78;962;Crown Point Airport, Tobago;;Trinidad and Tobago;4;11-09N;060-50W;11-09N;060-50W;3;6;P +TUPJ;78;550;Beef Island, Tortola;;British Virgin Islands;4;18-27N;064-32W;;;4;; +TVSV;78;951;Arnos Vale;;Saint Vincent and the Grenadines;4;13-08N;061-12W;;;9;13; +TXKF;78;016;Bermuda;;Bermuda;4;32-22N;064-41W;;;6;;P +UAAA;36;870;Almaty;;Kazakhstan;2;43-14N;076-56E;43-14N;076-56E;847;851;P +UACC;--;---;Astana;;Kazakhstan;2;51-12N;071-27E;;;;; +UAFM;--;---;Bishkek/Manas Airport;;Kyrgyzstan;2;42-51N;074-35E;;;;; +UAII;38;328;Shymkent;;Kazakhstan;2;42-19N;069-42E;42-18N;069-36E;552;604; +UAKK;35;394;Karaganda;;Kazakhstan;2;49-48N;073-09E;;;553;; +UAOO;38;062;Kzyl-Orda;;Kazakhstan;2;44-51N;065-30E;44-46N;065-32E;129;130;P +UARR;35;108;Uralsk;;Kazakhstan;2;51-15N;051-17E;51-15N;051-24E;36;37;P +UATA;35;746;Aralskoe More;;Kazakhstan;2;46-47N;061-39E;46-47N;061-40E;56;62;P +UATE;--;---;Aktau;;Kazakhstan;2;43-52-12N;051-06E;;;;; +UATT;35;229;Aktjubinsk;;Kazakhstan;2;50-17N;057-09E;50-17N;057-09E;227;219;P +UAUU;--;---;Kostanay;;Kazakhstan;2;53-12-23N;063-33-03E;;;182;; +UBBB;37;864;Baku / Bine Airport;;Azerbaijan;6;40-27N;050-04E;40-27N;050-04E;-6;-1; +UBBG;--;---;Gyanca Airport;;Azerbaijan;6;40-44N;046-24E;;;330;; +UEEE;24;959;Jakutsk;;Russia;2;62-01N;129-43E;62-05N;129-45E;103;101;P +UELL;30;393;Cul'Man;;Russia;2;56-50N;124-52E;56-50N;124-52E;859;858;P +UERP;--;---;Polyarny;;Russia;2;66-24-02N;112-01-49E;;;509;; +UERR;--;---;Mirny;;Russia;2;62-31-48N;114-01-48E;;;347;; +UEST;--;---;Tiksi;;Russia;2;71-42N;128-54E;;;7;; +UGEE;37;789;Yerevan;;Armenia;6;40-08N;044-28E;40-08N;044-28E;890;907;P +UGGG;37;549;Tbilisi;;Georgia;6;41-41N;044-57E;41-41N;044-57E;467;490; +UGMM;37;541;Muhrani;;Georgia;6;41-56N;044-35E;;;551;551; +UHBP;31;329;Ekimchan;;Russia;2;53-04N;132-59E;53-04N;132-56E;543;542;P +UHHH;31;735;Habarovsk;;Russia;2;48-31N;135-10E;48-31N;135-10E;72;76;P +UHHO;31;655;Troickoe;;Russia;2;49-27N;136-34E;49-27N;136-34E;29;33;P +UHMA;25;563;Anadyr;;Russia;2;64-47N;177-34E;64-47N;177-34E;62;61;P +UHMD;25;594;Buhta Providenja;;Russia;2;64-25N;173-14W;64-26N;173-14W;3;17;P +UHMG;--;---;Chaybukha;;Russia;2;61-57N;160-25E;;;;; +UHMM;25;913;Magadan;;Russia;2;59-33N;150-47E;59-35N;150-47E;118;116;P +UHPP;32;540;Petropavlovsk-Kamchatskij;;Russia;2;53-05N;158-35E;52-58N;158-45E;24;84; +UHSS;32;150;Yuzhno-Sakhalinsk;;Russia;2;46-57N;142-43E;46-56N;142-44E;31;24;P +UHWW;31;960;Vladivostok;;Russia;2;43-07N;131-56E;43-06N;131-54E;184;183;P +UIAA;30;758;Chita;;Russia;2;52-05N;113-29E;52-01N;113-20E;685;671;P +UIBB;--;---;Bratsk / Irkutsk;;Russia;2;56-22-15N;101-41-55E;;;490;; +UIII;30;710;Irkutsk;;Russia;2;52-16N;104-19E;52-22N;104-11E;513;469;P +UIIO;30;713;Ust'Ordynskij;;Russia;2;52-49N;104-46E;;;525;526; +UIKB;30;253;Bodajbo;;Russia;2;57-51N;114-14E;57-51N;114-12E;278;275; +UIKK;30;230;Kirensk;;Russia;2;57-46N;108-04E;57-46N;108-07E;258;259;P +UINN;29;698;Nizhneudinsk;;Russia;2;54-53N;099-02E;54-53N;099-02E;410;411;P +UIUH;30;739;Horinsk;;Russia;2;52-10N;109-47E;52-10N;109-46E;666;666;P +UIUU;30;823;Ulan-Ude;;Russia;2;51-50N;107-36E;51-48N;107-26E;510;515;P +UKBB;33;347;Boryspil;;Ukraine;6;50-20N;030-58E;;;121;122; +UKCC;--;---;Donetsk;;Ukraine;6;48-05N;037-45E;;;;; +UKDD;--;---;Dnipropetrovs'k;;Ukraine;6;48-32N;034-40E;;;;; +UKDE;--;---;Zaporizhzhia / Mokraya;;Ukraine;6;47-52-02N;035-18-59E;;;114;; +UKDR;--;---;Krivyy Rih / Dnipropetrovs'k;;Ukraine;6;48-03N;033-13-12E;;;;; +UKFF;33;946;Simferopol;;Ukraine;6;44-41N;034-08E;45-09N;033-59E;180;181;P +UKHH;34;300;Kharkiv;;Ukraine;6;49-58N;036-08E;49-56N;036-17E;154;155;P +UKII;33;815;Kisinev;;Moldova;6;47-01N;028-59E;47-01N;028-52E;180;173; +UKKE;--;---;Cherkasy;;Ukraine;6;49-24-58N;031-59-47E;;;114;; +UKKK;33;345;Kyiv;;Ukraine;6;50-24N;030-34E;50-24N;030-27E;166;167;P +UKKM;--;---;Hostomel;;Ukraine;6;50-36-01N;030-11-37E;;;157;; +UKLI;--;---;Ivano-Frankivsk;;Ukraine;6;48-53-03N;024-41-10E;;;280;; +UKLL;33;393;L'Viv;;Ukraine;6;49-49N;023-57E;49-49N;023-57E;319;323;P +UKLN;--;---;Chernovsty;;Ukraine;6;48-15-36N;025-58-54E;;;252;; +UKLR;33;301;Rivne;;Ukraine;6;50-35N;026-08E;;;231;; +UKLU;--;---;Uzhhorod;;Ukraine;6;48-38-05N;022-15-53E;;;117;; +UKON;--;---;Mykolaiv;;Ukraine;6;47-03-29N;031-55-15E;;;56;; +UKOO;33;837;Odesa;;Ukraine;6;46-26N;030-46E;46-29N;030-38E;42;42;P +ULAA;22;550;Arhangel'Sk;;Russia;6;64-30N;040-44E;64-35N;040-30E;13;8;P +ULAK;22;887;Kotlas;;Russia;6;61-14N;046-43E;61-14N;046-38E;56;56;P +ULLI;26;063;St. Peterburg;;Russia;6;59-58N;030-18E;59-58N;030-18E;4;6;P +ULMM;22;113;Murmansk;;Russia;6;68-58N;033-03E;68-58N;033-03E;51;51;P +ULOL;26;477;Velikie Luki;;Russia;6;56-21N;030-37E;56-23N;030-36E;98;106;P +ULWT;27;051;Tot'Ma;;Russia;6;59-53N;042-45E;;;134;134;P +ULWW;27;037;Vologda;;Russia;6;59-19N;039-55E;59-17N;039-52E;131;130;P +UMBB;--;---;Brest;;Belarus;6;52-06-30N;023-53-48E;;;143;; +UMGG;--;---;Gomel';;Belarus;6;52-31-36N;031-01-06E;;;144;; +UMII;26;666;Vitebsk;;Belarus;6;55-10N;030-13E;55-10N;030-08E;176;176;P +UMKK;--;---;Kaliningrad/Khrabrovo Airport;;Russia;6;54-43-12N;020-30E;;;21;; +UMMG;--;---;Grodno;;Belarus;6;53-36-06N;024-03-18E;;;135;; +UMMM;--;---;Loshitsa / Minsk International 1;;Belarus;6;53-51-54N;027-32-30E;;;228;; +UMMS;26;850;Minsk;;Belarus;6;53-56N;027-38E;53-52N;027-32E;234;231;P +UMRR;26;422;Riga;;Latvia;6;56-58N;024-03E;56-58N;024-04E;7;7;P +UMRW;26;314;Ventspils;;Latvia;6;57-24N;021-32E;57-22N;021-33E;3;3; +UNAA;--;---;Abakan;;Russia;2;53-45N;091-24E;;;245;; +UNBB;29;838;Barnaul;;Russia;2;53-26N;083-31E;53-20N;083-42E;252;184;P +UNEE;--;---;Kemerovo;;Russia;2;55-19-48N;086-04-48E;;;260;; +UNII;29;263;Enisejsk;;Russia;2;58-27N;092-09E;58-27N;092-09E;78;79;P +UNNN;29;634;Novosibirsk;;Russia;2;55-05N;082-54E;55-02N;082-54E;177;176;P +UNOO;--;---;Omsk;;Russia;2;54-58N;073-18E;;;122; +UNWW;--;---;Novokuznetsk;;Russia;2;53-44N;087-11E;;;308;; +URKA;--;---;Anapa / Vitiazevo;;Russia;6;44-54N;037-19E;;;;; +URKK;34;929;Krasnodar;;Russia;6;45-02N;039-09E;45-02N;039-09E;33;34;P +URMM;37;054;Mineral'Nye Vody;;Russia;6;44-14N;043-04E;44-13N;043-06E;314;316;P +URMN;--;---;Nalchik;;Russia;6;43-30-46N;043-38-12E;;;445;; +URMT;--;---;Stavropol / Shpakovskoye;;Russia;6;45-20N;042-00E;;;;; +URRR;34;731;Rostov-Na-Donu;;Russia;6;47-16N;039-49E;47-15N;039-49E;77;75;P +URSS;37;171;Adler;;Russia;6;43-26N;039-54E;;;16;13;P +URWA;--;---;Astrakhan;;Russia;6;46-17N;048-00-23E;;;0;; +URWI;34;861;Elista;;Russia;6;46-22N;044-20E;46-19N;044-18E;150;155; +URWW;34;560;Volgograd;;Russia;6;48-47N;044-22E;48-41N;044-21E;145;134;P +USCC;--;---;Chelyabinsk-Balandino;;Russia;2;55-10N;061-24E;;;;; +USHH;23;933;Hanty-Mansijsk;;Russia;2;61-01N;069-02E;60-58N;069-04E;40;46;P +USNN;--;---;Nizhnevartovsk;;Russia;2;60-56N;076-29E;;;54;; +USPP;--;---;Perm'/Bolshoe Savino;;Russia;2;58-00N;056-15E;;;170;; +USRR;23;849;Surgut;;Russia;2;61-15N;073-30E;61-15N;073-30E;44;56;P +USSS;28;440;Ekaterinburg;;Russia;2;56-50N;060-38E;56-48N;060-38E;237;283;P +UTAA;--;---;Ashgabat;;Turkmenistan;2;37-59N;058-22E;;;;; +UTDD;38;836;Dushanbe;;Tajikistan;2;38-33N;068-47E;38-35N;068-47E;803;800;P +UTED;38;579;Dzizak;;Uzbekistan;2;40-07N;067-50E;;;345;345;P +UTNN;--;---;Nukus / Karakalpakstan;;Uzbekistan;2;42-28-48N;059-37-48E;;;;; +UTNU;--;---;Urgench;;Uzbekistan;2;41-35N;060-38-42E;;;98;; +UTSM;38;413;Tamdy;;Uzbekistan;2;41-44N;064-37E;41-44N;064-37E;238;237;P +UTSS;38;696;Samarkand;;Uzbekistan;2;39-34N;066-57E;39-41N;066-57E;724;724;P +UTST;38;927;Termez;;Uzbekistan;2;37-14N;067-16E;37-17N;067-19E;302;310;P +UTTT;38;457;Tashkent;;Uzbekistan;2;41-16N;069-16E;41-16N;069-16E;489;488;P +UUBP;26;898;Brjansk;;Russia;6;53-15N;034-19E;53-14N;034-23E;217;216;P +UUDD;--;---;Moscow / Domodedovo;;Russia;6;55-24N;037-54E;;;179;; +UUEE;--;---;Moscow / Sheremet'Ye ;;Russia;6;55-59N;037-30E;;;190;; +UUEM;27;402;Tver;;Russia;6;56-54N;035-53E;;;137;146;P +UUOO;34;122;Voronez;;Russia;6;51-39N;039-15E;51-40N;039-16E;154;104; +UUWW;--;---;Moscow / Vnukovo ;;Russia;6;55-39N;037-16E;;;203;; +UUYT;23;803;Ust'- Kulom;;Russia;2;61-41N;053-41E;;;139;144;P +UUYY;23;804;Syktyvkar;;Russia;2;61-43N;050-50E;61-40N;050-51E;119;119;P +UWGG;--;---;Nizhny Novgorod/Strigino;;Russia;6;56-19-48N;044-00E;;;;; +UWKD;--;---;Kazan';;Russia;6;55-47N;049-12E;;;;; +UWLW;--;---;Ulyanovsk;;Russia;6;54-21N;048-23E;;;;; +UWOO;--;---;Orenburg / Tsentralny;;Russia;2;51-46-48N;055-07-12E;;;109;; +UWPP;27;962;Penza;;Russia;6;53-07N;045-01E;53-08N;045-01E;174;177;P +UWSS;--;---;Saratov / Tsentralny;;Russia;6;51-34-12N;046-04-12E;;;166;; +UWUU;--;---;Ufa;;Russia;2;54-43-48N;055-55-48E;;;;; +UWWW;28;900;Samara;;Russia;2;53-12N;050-09E;;;44;; +VAAH;42;647;Ahmadabad;;India;2;23-04N;072-38E;23-04N;072-38E;55;55;P +VAAK;42;934;Akola;;India;2;20-42N;077-04E;;;305;309;P +VAAU;43;014;Aurangabad Chikalthan Aerodrome;;India;2;19-51N;075-24E;19-51N;075-24E;582;579;P +VABB;43;003;Bombay / Santacruz;;India;2;19-07N;072-51E;19-05N;072-51E;8;14;P +VABI;42;080;Bilaspur;;India;2;31-15N;076-40E;;;589;587;P +VABJ;42;634;Bhuj-Rudramata;;India;2;23-15N;069-40E;23-17N;069-40E;78;80;P +VABM;43;198;Belgaum / Sambra;;India;2;15-51N;074-37E;;;758;747;P +VABP;42;667;Bhopal / Bairagarh;;India;2;23-17N;077-21E;23-17N;077-21E;523;523;P +VABV;42;838;Bhaunagar;;India;2;21-45N;072-12E;;;5;11; +VAGO;43;194;Goa / Dabolim Airport;;India;2;15-23N;073-49E;;;42;52; +VAID;42;754;Indore;;India;2;22-43N;075-48E;22-43N;075-48E;561;567;P +VAJB;42;675;Jabalpur;;India;2;23-12N;079-57E;23-10N;079-57E;391;393;P +VAKD;42;855;Khandwa;;India;2;21-50N;076-22E;;;317;318; +VAKP;43;157;Kolhapur;;India;2;16-42N;074-14E;;;569;570; +VANP;42;867;Nagpur Sonegaon;;India;2;21-06N;079-03E;21-06N;079-03E;308;310;P +VARK;42;737;Rajkot;;India;2;22-18N;070-47E;;;134;138;P +VASL;43;117;Sholapur;;India;2;17-40N;075-54E;;;477;479;P +VBBM;48;019;Bhamo;;Myanmar;2;24-16N;097-12E;;;111;113; +VBBS;48;094;Pathein;;Myanmar;2;16-46N;094-46E;16-46N;094-46E;9;10;P +VBCI;48;109;Coco Island;;Myanmar;2;14-07N;093-22E;14-07N;093-22E;2;3;P +VBHL;48;010;Homalin;;Myanmar;2;24-52N;094-55E;;;130;131; +VBKG;48;060;Kengtung;;Myanmar;2;21-18N;099-37E;21-18N;099-37E;827;828; +VBKP;48;071;Kyaukpyu;;Myanmar;2;19-25N;093-33E;;;5;5; +VBLS;48;035;Lashio;;Myanmar;2;22-56N;097-45E;;;747;749; +VBMK;48;008;Myitkyina;;Myanmar;2;25-22N;097-24E;25-22N;097-24E;145;147;P +VBML;48;053;Meiktila;;Myanmar;2;20-50N;095-50E;20-53N;095-54E;214;220;P +VBMM;48;103;Moulmein;;Myanmar;2;16-30N;097-37E;16-30N;097-37E;21;22; +VBPA;48;099;Hpa-An;;Myanmar;2;16-45N;097-40E;;;9;10; +VBPR;48;077;Prome;;Myanmar;2;18-48N;095-13E;;;58;60; +VBPT;48;001;Putao;;Myanmar;2;27-20N;097-25E;;;409;; +VBRM;48;042;Mandalay;;Myanmar;2;21-59N;096-06E;21-59N;096-06E;74;76; +VBRN;48;110;Mergui;;Myanmar;2;12-26N;098-36E;12-26N;098-36E;36;37;P +VBRR;48;096;Mingaladon;;Myanmar;2;16-54N;096-11E;16-54N;096-11E;28;29; +VBSY;48;080;Sandoway;;Myanmar;2;18-28N;094-21E;18-28N;094-21E;9;11;P +VBTV;48;108;Dawei;;Myanmar;2;14-06N;098-13E;14-06N;098-13E;16;17;P +VCBI;43;450;Katunayake;;Sri Lanka;2;07-10N;079-53E;;;8;8;P +VCCA;43;421;Anuradhapura;;Sri Lanka;2;08-20N;080-25E;;;89;89;P +VCCB;43;436;Batticaloa;;Sri Lanka;2;07-43N;081-42E;;;5;12;P +VCCC;43;467;Ratmalana;;Sri Lanka;2;06-49N;079-53E;;;5;5;P +VCCT;43;418;Trincomalee;;Sri Lanka;2;08-35N;081-15E;08-35N;081-15E;3;7;P +VDKC;48;995;Kompong-Cham;;Cambodia;2;12-00N;105-27E;12-00N;105-27E;16;16; +VDPP;48;991;Phnom-Penh / Pochentong;;Cambodia;2;11-33N;104-51E;11-33N;104-51E;10;10;P +VDSR;48;966;Siemreap;;Cambodia;2;13-22N;103-51E;13-22N;103-51E;15;15;P +VEAT;42;724;Agartala;;India;2;23-53N;091-15E;23-53N;091-15E;15;16;P +VEBD;42;398;Siliguri;;India;2;26-38N;088-19E;26-41N;088-20E;126;131;P +VEBS;42;971;Bhubaneswar;;India;2;20-15N;085-50E;20-15N;085-50E;45;46;P +VECC;42;809;Calcutta / Dum Dum;;India;2;22-39N;088-27E;22-39N;088-27E;4;6;P +VECX;43;368;Car Nicobar;;India;2;09-09N;092-49E;09-09N;092-49E;10;14;P +VEGK;42;379;Gorakhpur;;India;2;26-45N;083-22E;26-45N;083-22E;76;77;P +VEGT;42;410;Gauhati;;India;2;26-06N;091-35E;26-06N;091-35E;47;54;P +VEGY;42;591;Gaya;;India;2;24-45N;084-57E;24-45N;084-57E;110;116;P +VEIM;42;623;Imphal Tulihal;;India;2;24-46N;093-54E;24-46N;093-54E;780;781;P +VEJH;42;886;Jharsuguda;;India;2;21-55N;084-05E;21-55N;084-05E;228;230;P +VEJS;42;798;Jamshedpur;;India;2;22-49N;086-11E;22-49N;086-11E;140;142;P +VELR;42;309;North Lakhimpur;;India;2;27-14N;094-07E;;;101;102;P +VEMN;42;314;Dibrugarh / Mohanbari;;India;2;27-29N;095-01E;27-29N;095-01E;110;111;P +VEPB;43;333;Port Blair;;India;2;11-40N;092-43E;11-40N;092-43E;73;79;P +VEPT;42;492;Patna;;India;2;25-36N;085-06E;25-36N;085-06E;51;60;P +VERC;42;701;M. O. Ranchi;;India;2;23-19N;085-19E;23-19N;085-19E;652;652; +VGCB;41;992;Cox's Bazar;;Bangladesh;2;21-26N;091-58E;21-26N;091-58E;2;4;P +VGEG;41;978;Chittagong Patenga ;;Bangladesh;2;22-16N;091-49E;22-15N;091-49E;4;6;P +VGIS;41;907;Ishurdi;;Bangladesh;2;24-08N;089-03E;24-09N;089-02E;13;14;P +VGJR;41;936;Jessore;;Bangladesh;2;23-11N;089-10E;23-11N;089-10E;6;7;P +VGRJ;41;895;Rajshahi;;Bangladesh;2;24-22N;088-42E;24-22N;088-42E;17;20;P +VGSY;41;891;Sylhet;;Bangladesh;2;24-54N;091-53E;24-54N;091-53E;34;35;P +VGTJ;41;923;Dhaka;;Bangladesh;2;23-46N;090-23E;23-46N;090-23E;8;9;P +VGZR;41;922;Kurmitola, Dia;;Bangladesh;2;23-51N;090-24E;;;9;10;P +VHCH;45;001;Cheung Chau;;Hong Kong;2;22-12N;114-01E;;;79;; +VHHH;45;007;Hong Kong Inter-National Airport;;Hong Kong;2;22-20N;114-11E;;;5;24; +VIAG;42;260;Agra;;India;2;27-09N;077-58E;27-09N;077-58E;168;169;P +VIAL;42;475;Allahabad / Bamhrauli;;India;2;25-27N;081-44E;25-27N;081-44E;97;98;P +VIAR;42;071;Amritsar;;India;2;31-38N;074-52E;31-42N;074-48E;229;234;P +VIBN;42;479;Varanasi / Babatpur;;India;2;25-27N;082-52E;;;81;85; +VIBY;42;189;Bareilly;;India;2;28-22N;079-24E;28-22N;079-24E;167;169;P +VICX;42;367;Kanpur / Chakeri;;India;2;26-24N;080-24E;26-24N;080-24E;123;126; +VIDD;42;182;New Delhi / Safdarjung;;India;2;28-35N;077-12E;28-35N;077-12E;211;216;P +VIDP;42;181;New Delhi / Palam;;India;2;28-34N;077-07E;;;220;233; +VIGR;42;361;Gwalior;;India;2;26-14N;078-15E;26-14N;078-15E;205;207;P +VIHR;42;131;Hissar;;India;2;29-10N;075-44E;;;216;221;P +VIJN;42;463;Jhansi;;India;2;25-27N;078-35E;;;250;251; +VIJO;42;339;Jodhpur;;India;2;26-18N;073-01E;26-18N;073-01E;217;224;P +VIJP;42;348;Jaipur / Sanganer;;India;2;26-49N;075-48E;26-49N;075-48E;385;390;P +VIKO;42;452;Kota Aerodrome;;India;2;25-09N;075-51E;;;273;274;P +VILK;42;369;Lucknow / Amausi;;India;2;26-45N;080-53E;26-45N;080-53E;122;128;P +VIST;42;571;Satna;;India;2;24-34N;080-50E;;;315;317;P +VIUD;42;542;Udaipur Dabok;;India;2;24-37N;073-53E;24-37N;073-53E;509;514; +VLAP;48;957;Attopeu;;Laos;2;14-48N;106-50E;;;105;105; +VLIP;48;955;Pakse;;Laos;2;15-07N;105-10E;15-08N;105-47E;102;102;P +VLLB;48;930;Luang-Prabang;;Laos;2;19-53N;102-08E;;;305;305;P +VLSB;48;938;Sayaboury;;Laos;2;19-14N;101-44E;19-14N;101-44E;326;326; +VLSK;48;947;Savannakhet;;Laos;2;16-33N;104-39E;;;155;145;P +VLSV;48;952;Saravane;;Laos;2;15-41N;106-26E;;;168;168;P +VLTK;48;946;Thakhek;;Laos;2;17-23N;104-39E;;;52;152; +VLVT;48;940;Vientiane;;Laos;2;17-57N;102-34E;17-59N;102-34E;171;171;P +VMMC;45;011;Taipa;;Macau;2;22-10N;113-34E;;;114;;P +VNBW;44;438;Bhairawa Airport;;Nepal;2;27-31N;083-27E;;;109;109; +VNJL;44;424;Jumla;;Nepal;2;29-17N;082-10E;;;2300;; +VNKT;44;454;Kathmandu Airport;;Nepal;2;27-42N;085-22E;27-42N;085-22E;1337;1337; +VNPK;44;434;Pokhara Airport;;Nepal;2;28-13N;084-00E;;;827;827; +VNSI;44;449;Simra Airport;;Nepal;2;27-10N;084-59E;;;137;137; +VNSK;44;416;Surkhet;;Nepal;2;28-36N;081-37E;;;720;720; +VNTJ;44;474;Taplejung;;Nepal;2;27-21N;087-40E;;;1732;1732; +VNVT;44;478;Biratnagar Airport;;Nepal;2;26-29N;087-16E;;;72;72; +VOBG;--;---;Bangalore / Hindustan;;India;2;12-57N;077-40E;;;888;; +VOBI;43;205;Bellary;;India;2;15-09N;076-51E;;;448;449; +VOBZ;43;181;Vijayawada / Gannavaram;;India;2;16-32N;080-48E;16-32N;080-48E;21;24; +VOCB;43;321;Coimbatore / Peelamedu;;India;2;11-02N;077-03E;;;396;399;P +VOCC;43;353;Cochin / Willingdon;;India;2;09-57N;076-16E;09-56N;076-14E;1;3;P +VOCP;43;241;Cuddapah;;India;2;14-29N;078-50E;;;129;130; +VOHY;43;128;Hyderabad Airport;;India;2;17-27N;078-28E;17-27N;078-28E;530;545; +VOMD;43;360;Madurai;;India;2;09-50N;078-05E;;;139;131; +VOML;43;284;Mangalore / Bajpe;;India;2;12-55N;074-53E;12-58N;074-54E;102;102;P +VOMM;43;279;Madras / Minambakkam;;India;2;13-00N;080-11E;13-00N;080-11E;10;16;P +VOTR;43;344;Tiruchchirapalli;;India;2;10-46N;078-43E;10-46N;078-43E;85;88;P +VOTV;43;372;Thiruvananthapuram;;India;2;08-28N;076-57E;;;4;8; +VOVR;43;303;Vellore;;India;2;12-55N;079-09E;;;213;214; +VRGN;43;599;Gan;;Maldives;2;00-41S;073-09E;00-41S;073-09E;2;2; +VRMM;43;555;Male;;Maldives;2;04-12N;073-32E;04-12N;073-32E;2;2; +VTBC;48;480;Chanthaburi;;Thailand;2;12-36N;102-07E;12-36N;102-07E;3;4;P +VTBD;48;456;Don Muang;;Thailand;2;13-55N;100-36E;13-55N;100-36E;4;12;P +VTBG;48;450;Kanchanaburi;;Thailand;2;14-01N;099-32E;;;28;29;P +VTBI;48;430;Prachin Buri;;Thailand;2;14-03N;101-22E;;;5;6;P +VTBJ;48;465;Phetchaburi;;Thailand;2;13-09N;100-04E;;;2;4;P +VTBP;48;500;Prachuap Khirikhan;;Thailand;2;11-50N;099-50E;11-48N;099-48E;4;5;P +VTBS;48;459;Chon Buri;;Thailand;2;13-22N;100-59E;;;1;2;P +VTBU;48;478;Rayong;;Thailand;2;12-38N;101-21E;12-38N;101-21E;3;5;P +VTCC;48;327;Chiang Mai;;Thailand;2;18-47N;098-59E;18-47N;098-59E;312;314;P +VTCH;48;300;Mae Hong Son;;Thailand;2;19-18N;097-50E;;;267;269;P +VTCL;48;328;Lampang;;Thailand;2;18-17N;099-31E;18-16N;099-30E;241;242;P +VTCN;48;331;Nan;;Thailand;2;18-46N;100-46E;;;200;201;P +VTCP;48;330;Phrae;;Thailand;2;18-10N;100-10E;;;161;162;P +VTCR;48;303;Chiang Rai;;Thailand;2;19-55N;099-50E;;;394;395;P +VTCS;48;325;Mae Sariang;;Thailand;2;18-10N;097-56E;;;212;213;P +VTPH;48;475;Hua Hin;;Thailand;2;12-35N;099-57E;;;5;6;P +VTPM;48;375;Mae Sot;;Thailand;2;16-40N;098-33E;16-42N;098-33E;196;197;P +VTPN;48;400;Nakhon Sawan;;Thailand;2;15-48N;100-10E;15-40N;100-08E;34;35;P +VTPS;48;378;Phitsanulok;;Thailand;2;16-47N;100-16E;16-49N;100-16E;44;45;P +VTPT;48;376;Tak;;Thailand;2;16-53N;099-09E;;;121;124;P +VTPU;48;351;Uttaradit;;Thailand;2;17-37N;100-06E;17-37N;100-06E;63;64;P +VTSA;48;570;Satun;;Thailand;2;06-39N;100-05E;;;4;6;P +VTSB;48;551;Surat Thani;;Thailand;2;09-07N;099-21E;09-07N;099-21E;10;11;P +VTSD;48;517;Chumphon;;Thailand;2;10-29N;099-11E;;;3;5;P +VTSH;48;568;Songkhla;;Thailand;2;07-12N;100-36E;07-12N;100-36E;4;5;P +VTSK;48;580;Pattani;;Thailand;2;06-47N;101-09E;06-47N;101-09E;5;9;P +VTSN;48;552;Nakhon Si Thammarat;;Thailand;2;08-28N;099-58E;;;7;9;P +VTSP;48;565;Phuket Airport;;Thailand;2;08-07N;098-19E;08-06N;098-18E;6;10;P +VTSR;48;532;Ranong;;Thailand;2;09-59N;098-37E;09-58N;098-38E;7;8;P +VTSS;48;569;Hat Yai;;Thailand;2;06-55N;100-26E;06-56N;100-25E;27;35;P +VTST;48;567;Trang;;Thailand;2;07-31N;099-37E;;;14;16;P +VTUB;48;383;Mukdahan;;Thailand;2;16-32N;104-43E;;;138;139;P +VTUC;48;403;Chaiyaphum;;Thailand;2;15-48N;102-02E;15-48N;102-02E;182;183;P +VTUD;48;354;Udon Thani;;Thailand;2;17-23N;102-48E;17-23N;102-48E;177;182;P +VTUK;48;381;Khon Kaen;;Thailand;2;16-26N;102-50E;;;165;166;P +VTUL;48;353;Loei;;Thailand;2;17-27N;101-44E;;;253;254;P +VTUM;48;352;Nong Khai;;Thailand;2;17-52N;102-43E;;;174;175;P +VTUN;48;431;Nakhon Ratchasima;;Thailand;2;14-58N;102-05E;14-58N;102-05E;187;188;P +VTUP;48;357;Nakhon Phanom;;Thailand;2;17-25N;104-47E;17-25N;104-47E;146;148;P +VTUR;48;405;Roi Et;;Thailand;2;16-03N;103-41E;;;140;142;P +VTUS;48;356;Sakon Nakhon;;Thailand;2;17-09N;104-08E;;;171;172;P +VTUU;48;407;Ubon Ratchathani;;Thailand;2;15-15N;104-52E;15-15N;104-52E;123;127;P +VVDN;48;855;Da Nang;;Vietnam;2;16-02N;108-11E;16-02N;108-11E;7;7;P +VVGL;--;---;Hanoi / Gialam;;Vietnam;2;21-02N;105-51E;;;12;; +VVNB;48;820;Ha Noi;;Vietnam;2;21-01N;105-48E;21-01N;105-48E;6;6;P +VVNT;48;877;Nha Trang;;Vietnam;2;12-15N;109-12E;12-15N;109-12E;10;10;P +VVPB;48;852;Hue;;Vietnam;2;16-24N;107-41E;;;17;17;P +VVPK;48;866;Pleiku City;;Vietnam;2;13-59N;108-00E;13-59N;108-00E;801;801; +VVQN;48;870;Quy Nhon;;Vietnam;2;13-46N;109-13E;13-46N;109-13E;6;6;P +VVTS;48;900;Ho Chi Minh;;Vietnam;2;10-49N;106-40E;10-49N;106-40E;19;19;P +VVVH;48;845;Vinh;;Vietnam;2;18-42N;105-40E;;;6;6;P +VYSW;48;062;Sittwe;;Myanmar;2;20-08N;092-53E;20-08N;092-53E;4;5;P +VYYY;48;097;Yangon;;Myanmar;2;16-46N;096-10E;16-46N;096-10E;14;15;P +WAAA;97;180;Ujung Pandang / Hasanuddin;;Indonesia;5;05-04S;119-33E;05-04S;119-33E;14;14;P +WAAB;97;192;Bau-Bau / Beto Ambiri;;Indonesia;5;05-28S;122-37E;05-28S;122-37E;2;2; +WAAU;97;146;Kendari / Woltermon-Ginsidi;;Indonesia;5;04-06S;122-26E;04-05S;122-25E;50;50;P +WABB;97;560;Biak / Mokmer;;Indonesia;5;01-11S;136-07E;01-12S;136-07E;11;11;P +WABI;97;682;Nabire;;Indonesia;5;03-20S;135-30E;;;3;3;P +WABN;97;796;Kokonao / Timuka;;Indonesia;5;04-43S;136-26E;;;3;3;P +WABO;97;570;Serui / Yendosa;;Indonesia;5;01-52S;136-14E;;;3;3;P +WABT;97;780;Enarotali;;Indonesia;5;03-55S;136-22E;03-55S;136-22E;1770;1770;P +WAJI;97;580;Sarmi;;Indonesia;5;01-50S;138-43E;01-50S;138-43E;3;3;P +WAJJ;97;690;Jayapura / Sentani;;Indonesia;5;02-34S;140-29E;02-35S;140-31E;99;99;P +WAJW;97;686;Wamena / Wamena;;Indonesia;5;04-04S;138-57E;04-06S;138-57E;1660;1660;P +WAKK;97;980;Merauke / Mopah;;Indonesia;5;08-28S;140-23E;08-31S;140-25E;3;3;P +WAKT;97;876;Tanah Merah / Tanah Merah;;Indonesia;5;06-06S;140-18E;;140-18E;16;16;P +WAMA;97;406;Galela / Gamarmalamu;;Indonesia;5;01-49N;127-50E;;;8;; +WAMG;97;048;Gorontalo / Jalaluddin;;Indonesia;5;00-31N;123-04E;00-38N;122-51E;2;2;P +WAMH;97;008;Tahuna;;Indonesia;5;03-35N;125-28E;03-35N;125-28E;38;38; +WAMI;97;028;Toli-Toli / Lalos;;Indonesia;5;01-01N;120-48E;01-01N;120-48E;2;2; +WAML;97;072;Palu / Mutiara;;Indonesia;5;00-41S;119-44E;00-55S;119-54E;6;6;P +WAMM;97;014;Menado / Dr. Sam Ratulangi;;Indonesia;5;01-32N;124-55E;01-33N;124-56E;80;80;P +WAMP;97;096;Poso / Kasiguncu;;Indonesia;5;01-23S;120-44E;01-24S;120-43E;2;2;P +WAMT;97;430;Ternate / Babullah;;Indonesia;5;00-47N;127-23E;00-50N;127-23E;23;23;P +WAMW;97;086;Luwuk / Bubung;;Indonesia;5;00-54S;122-47E;00-54S;122-47E;2;2;P +WAPA;97;722;Amahai;;Indonesia;5;03-21S;128-53E;;;10;10; +WAPH;97;460;Labuha / Taliabu;;Indonesia;5;01-37S;124-33E;01-37S;124-33E;3;3; +WAPI;97;900;Saumlaki;;Indonesia;5;07-59S;131-18E;07-59S;131-18E;24;24;P +WAPN;97;600;Sanana;;Indonesia;5;02-05S;126-00E;02-05S;126-00E;2;2;P +WAPP;97;724;Ambon / Pattimura;;Indonesia;5;03-42S;128-05E;03-42S;128-05E;12;12;P +WAPR;97;700;Namlea;;Indonesia;5;03-15S;127-05E;;;20;20; +WASF;97;630;Fak-Fak / Torea;;Indonesia;5;02-53S;132-15E;;;130;130;P +WASK;97;760;Kaimana / Utarom;;Indonesia;5;03-40S;133-45E;03-40S;133-45E;3;3;P +WASR;97;530;Manokwari / Rendani;;Indonesia;5;00-53S;134-03E;00-53S;134-03E;3;3;P +WASS;97;502;Sorong / Jefman;;Indonesia;5;00-56S;131-07E;00-56S;131-07E;3;3;P +WBGB;96;441;Bintulu;;Malaysia;5;03-12N;113-02E;03-12N;113-02E;2;5;P +WBGG;96;413;Kuching;;Malaysia;5;01-29N;110-20E;01-29N;110-20E;27;27;P +WBGR;96;449;Miri;;Malaysia;5;04-20N;113-59E;;;17;18;P +WBGS;96;421;Sibu;;Malaysia;5;02-20N;111-50E;;;8;8;P +WBKK;96;471;Kota Kinabalu;;Malaysia;5;05-56N;116-03E;05-57N;116-03E;3;3;P +WBKL;96;465;Labuan;;Malaysia;5;05-18N;115-15E;05-17N;115-14E;30;30;P +WBKS;96;491;Sandakan;;Malaysia;5;05-54N;118-04E;05-54N;118-04E;12;13;P +WBKT;96;477;Kudat;;Malaysia;5;06-55N;116-50E;06-55N;116-50E;3;5;P +WBKW;96;481;Tawau;;Malaysia;5;04-16N;117-53E;04-16N;117-52E;18;20;P +WBSB;96;315;Brunei Airport;;Brunei;5;04-56N;114-56E;04-56N;114-56E;22;15; +WIAA;96;001;Sabang / Cut Bau;;Indonesia;5;05-52N;095-19E;05-52N;095-19E;126;126;P +WIAG;96;273;Menggala / Astra Ksetra;;Indonesia;5;04-27S;105-11E;04-37S;105-13E;19;19; +WIAM;96;801;Tasikmalaya / Cibeureum;;Indonesia;5;07-20S;108-15E;07-21S;108-15E;335;335;P +WIAR;96;881;Madiun / Iswahyudi;;Indonesia;5;07-37S;111-31E;07-37S;111-26E;110;110;P +WIAS;96;947;Malang / Abdul Rahkmansaleh;;Indonesia;5;07-58S;112-42E;07-56S;112-43E;526;526;P +WIBB;96;109;Pakanbaru / Simpangtiga;;Indonesia;5;00-28N;101-27E;00-28N;101-27E;31;31;P +WIIA;96;739;Curug / Budiarto;;Indonesia;5;06-14S;106-39E;06-17S;106-34E;46;46;P +WIIB;96;781;Bandung / Husein;;Indonesia;5;06-54S;107-35E;06-54S;107-35E;740;740;P +WIIH;96;747;Jakarta Halim Perdanakusuma;;Indonesia;5;06-15S;106-54E;;;30;30;P +WIII;96;749;Jakarta / Soekarno-Hatta;;Indonesia;5;06-07S;106-39E;06-08S;106-40E;8;8; +WIIJ;96;853;Jogyakarta / Adisucipto;;Indonesia;5;07-47S;110-26E;07-47S;110-26E;107;107;P +WIIK;96;773;Kalijati;;Indonesia;5;06-33S;107-40E;06-33S;107-40E;110;110; +WIIL;96;805;Cilacap;;Indonesia;5;07-44S;109-01E;07-44S;109-01E;6;6;P +WIIS;96;839;Semarang / Ahmadyani;;Indonesia;5;06-59S;110-23E;06-59S;110-23E;3;3;P +WIIT;96;295;Telukbetung / Beranti;;Indonesia;5;05-16S;105-11E;05-14S;105-11E;96;96;P +WIKB;96;087;Batan, Sumatra;;Indonesia;5;01-07N;104-07E;;;24;; +WIKD;96;249;Tanjungpandan / Buluh Tumbang;;Indonesia;5;02-45S;107-45E;02-45S;107-46E;44;44;P +WIKK;96;237;Pangkalpinang / Pangkalpinang;;Indonesia;5;02-10S;106-08E;02-10S;106-08E;33;33;P +WIKN;96;091;Tanjungpinang / Kijang;;Indonesia;5;00-55N;104-32E;00-55N;104-32E;18;18;P +WIKS;96;179;Singkep / Dabo;;Indonesia;5;00-29S;104-35E;00-29S;104-35E;31;31;P +WIMB;96;075;Gunung Sitoli / Binaka;;Indonesia;5;01-30N;097-38E;01-30N;097-38E;6;6;P +WIMG;96;163;Padang / Tabing;;Indonesia;5;00-53S;100-21E;00-53S;100-21E;3;3;P +WIMM;96;035;Medan / Polonia;;Indonesia;5;03-34N;098-41E;03-34N;098-40E;25;25;P +WIMS;96;073;Sibolga / Pinangsori;;Indonesia;5;01-33N;098-53E;01-33N;098-54E;3;3;P +WIOI;96;533;Singkawang Ii;;Indonesia;5;01-05N;109-40E;01-05N;109-40E;38;38; +WIOK;96;615;Ketapang / Rahadi Usmaman;;Indonesia;5;01-51S;109-58E;;;9;9; +WION;96;147;Ranai / Ranai;;Indonesia;5;03-57N;108-23E;03-55N;108-23E;2;2;P +WIOO;96;581;Pontianak / Supadio;;Indonesia;5;00-09S;109-24E;00-09S;109-24E;3;3;P +WIOS;96;559;Sintang;;Indonesia;5;00-07N;111-32E;;;30;30; +WIPA;96;195;Jambi / Sultan Taha;;Indonesia;5;01-38S;103-39E;01-38S;103-39E;25;25;P +WIPH;96;207;Kerinci / Depati Parbo;;Indonesia;5;02-46S;101-22E;;101-22E;782;782; +WIPL;96;253;Bengkulu / Padangkemiling;;Indonesia;5;03-53S;102-20E;03-52S;102-21E;16;16;P +WIPP;96;221;Palembang / Talangbetutu;;Indonesia;5;02-54S;104-42E;02-54S;104-42E;10;10;P +WIPR;96;171;Rengat / Japura;;Indonesia;5;00-28N;102-19E;00-21S;102-20E;46;46;P +WITC;96;015;Meulaboh / Cut Nyak Dhien;;Indonesia;5;04-15N;096-07E;04-15N;096-07E;90;90; +WITM;96;009;Lhokseumawe / Malikussaleh;;Indonesia;5;05-14N;097-12E;05-14N;097-12E;87;87;P +WITT;96;011;Banda Aceh / Blangbintang;;Indonesia;5;05-31N;095-25E;05-31N;095-25E;21;21;P +WMBA;48;620;Sitiawan;;Malaysia;5;04-13N;100-42E;04-13N;100-42E;7;8;P +WMKC;48;615;Kota Bharu;;Malaysia;5;06-10N;102-17E;06-10N;102-17E;5;5;P +WMKD;48;657;Kuantan;;Malaysia;5;03-37N;103-13E;03-47N;103-13E;18;16;P +WMKJ;48;679;Johore Bharu / Senai;;Malaysia;5;01-38N;103-40E;;;37;40;P +WMKK;48;647;Sepang/KL International Airport;;Malaysia;5;02-44N;101-42E;03-07N;101-33E;21;22;P +WMKL;48;600;Langkawi;;Malaysia;5;06-20N;099-44E;06-20N;099-44E;8;7;P +WMKM;48;665;Malacca;;Malaysia;5;02-16N;102-15E;;;11;9;P +WMKP;48;601;Penang / Bayan Lepas;;Malaysia;5;05-18N;100-16E;05-18N;100-16E;3;4;P +WMSA;--;---;Subang/Sultan Abdul Aziz Shah Airport;;Malaysia;5;03-07N;101-32E;;;27;; +WPDL;97;390;Dilli / Dilli Airport;;East Timor;5;08-34S;125-34E;08-33S;125-33E;6;6;P +WPEC;97;395;Baucau;;East Timor;5;08-30S;126-24E;08-30S;126-24E;522;522; +WPOC;97;385;Oe-Cusse / Oe Cusse;;East Timor;5;09-12S;124-22E;;124-22E;5;5;P +WRBB;96;685;Banjarmasin / Syamsuddin Noor;;Indonesia;5;03-26S;114-45E;03-27S;114-46E;20;20;P +WRBI;96;645;Pangkalan Bun / Iskandar;;Indonesia;5;02-42S;110-42E;02-42S;111-41E;25;25; +WRBK;96;695;Kotabaru;;Indonesia;5;03-24S;116-13E;;;18;18; +WRBM;96;595;Muaratewe / Beringin;;Indonesia;5;00-57S;114-54E;00-57S;114-54E;60;60; +WRBP;96;655;Palangkaraya / Panarung;;Indonesia;5;01-00S;114-00E;01-00S;114-00E;27;27;P +WRKC;97;300;Maumere / Wai Oti;;Indonesia;5;08-38S;122-15E;08-38S;122-14E;3;3;P +WRKK;97;372;Kupang / El Tari;;Indonesia;5;10-10S;123-40E;10-10S;123-40E;108;108;P +WRKL;97;310;Larantuka;;Indonesia;5;08-16S;122-58E;;;9;; +WRKM;97;320;Alor / Mali;;Indonesia;5;08-13S;124-34E;;;12;12; +WRKR;97;378;Rote / Baa;;Indonesia;5;10-44S;123-04E;;;1;1; +WRKS;97;380;Sabu / Tardamu;;Indonesia;5;10-30S;121-50E;10-30S;121-50E;26;26; +WRLB;96;505;Longbawan / Juvai Semaring;;Indonesia;5;03-44N;115-41E;;;550;; +WRLG;96;525;Tanjung Selor;;Indonesia;5;02-51N;117-20E;;;50;50; +WRLK;96;529;Tanjung Redep / Berau;;Indonesia;5;02-07N;117-27E;02-07N;117-27E;26;26; +WRLL;96;633;Balikpapan / Sepinggan;;Indonesia;5;01-16S;116-54E;01-16S;116-54E;3;3;P +WRLR;96;509;Tarakan / Juwata;;Indonesia;5;03-20N;117-34E;03-20N;117-34E;6;6;P +WRLS;96;607;Samarinda / Temindung;;Indonesia;5;00-37S;117-09E;00-37S;117-09E;230;230;P +WRRA;97;240;Ampenan / Selaparang;;Indonesia;5;08-32S;116-04E;08-34S;116-06E;3;3;P +WRRB;97;270;Bima;;Indonesia;5;08-33S;118-42E;08-33S;118-41E;2;2; +WRRR;97;230;Denpasar / Ngurah-Rai;;Indonesia;5;08-45S;115-10E;08-45S;115-10E;1;1;P +WRRS;97;260;Sumbawa Besar / Sumbawa Besar;;Indonesia;5;08-26S;117-25E;08-30S;117-25E;3;3;P +WRRW;97;340;Waingapu / Mau Hau;;Indonesia;5;09-40S;120-20E;09-40S;120-19E;12;12;P +WRSJ;96;935;Surabaya / Juanda;;Indonesia;5;07-22S;112-46E;07-23S;112-47E;3;3;P +WRSP;96;933;Surabaya / Perak;;Indonesia;5;07-13S;112-43E;07-13S;112-43E;3;3;P +WRSQ;96;845;Surakarta / Adisumarmo;;Indonesia;5;07-52S;110-55E;07-31S;110-45E;104;104;P +WRSS;96;937;Surabaya;;Indonesia;5;07-13S;113-43E;;;3;3; +WSAP;48;694;Singapore / Paya Lebar;;Singapore;5;01-22N;103-55E;01-22N;103-55E;18;32; +WSSS;48;698;Singapore / Changi Airport;;Singapore;5;01-22N;103-59E;01-22N;103-59E;5;16;P +YAYE;--;---;Ayers Rock;;Australia;5;25-11S;130-58E;;;496;; +YBAF;94;575;Archerfield Aerodrome;;Australia;5;27-34S;153-00E;;;23;18; +YBAM;94;568;Amberley Aerodrome;;Australia;5;27-38S;152-43E;;;27;31;P +YBAS;94;326;Alice Springs Aerodrome;;Australia;5;23-48S;133-53E;23-48S;133-54E;545;547;P +YBBN;94;578;Brisbane Airport M. O;;Australia;5;27-23S;153-06E;27-25S;153-05E;4;5;P +YBCG;94;592;Coolangatta Airport Aws;;Australia;5;28-10S;153-30E;;;6;6; +YBCS;94;287;Cairns Airport;;Australia;5;16-53S;145-45E;16-53S;145-45E;3;7;P +YBCV;94;510;Charleville Airport;;Australia;5;26-24S;146-16E;26-25S;146-16E;306;304;P +YBGL;94;380;Gladstone;;Australia;5;23-51S;151-15E;23-51S;151-16E;75;76;P +YBLR;94;346;Longreach Airport;;Australia;5;23-26S;144-16E;23-26S;144-16E;192;193;P +YBMA;94;332;Mount Isa Amo;;Australia;5;20-40S;139-28E;20-40S;139-29E;342;341;P +YBMK;94;367;Mackay Mo;;Australia;5;21-07S;149-12E;21-07S;149-13E;30;32;P +YBOK;94;552;Oakey Aerodrome;;Australia;5;27-25S;151-44E;;;407;407;P +YBPN;94;365;Proserpine Airport;;Australia;5;20-29S;148-32E;;;25;18; +YBRK;94;374;Rockhampton Airport;;Australia;5;23-23S;150-28E;23-23S;150-28E;10;14;P +YBRM;94;203;Broome Airport;;Australia;5;17-57S;122-13E;17-57S;122-14E;17;9;P +YBTL;94;294;Townsville Amo;;Australia;5;19-15S;146-45E;19-15S;146-45E;6;9;P +YBWP;94;171;Weipa City;;Australia;5;12-38S;141-53E;;;12;; +YDGV;94;150;Gove Airport;;Australia;5;12-16S;136-49E;12-16S;136-49E;52;54;P +YDTC;94;238;Tennant Creek Airport;;Australia;5;19-38S;134-10E;19-38S;134-10E;375;376;P +YDYL;94;462;Yulara Aws;;Australia;5;25-11S;130-58E;;;493;492; +YMAV;--;---;Avalon, Avalon Airport;;Australia;5;38-02S;144-29E;;;8;; +YMAY;94;896;Albury Airport;;Australia;5;36-04S;146-57E;;;165;171; +YMDV;94;960;Devonport East;;Australia;5;41-10S;146-22E;;;47;; +YMEN;94;864;Goldstream Aws;;Australia;5;37-44S;145-24E;;;76;84; +YMES;94;907;East Sale Aerodrome;;Australia;5;38-06S;147-08E;38-06S;147-08E;5;8;P +YMHB;94;975;Hobart Airport;;Australia;5;42-50S;147-29E;42-50S;147-30E;4;27;P +YMLT;94;968;Launceston Airport;;Australia;5;41-32S;147-12E;41-32S;147-12E;171;178;P +YMLV;94;865;Laverton Aerodrome;;Australia;5;37-51S;144-44E;37-52S;144-45E;18;21;P +YMMB;94;870;Moorabbin Airport Aws;;Australia;5;37-58S;145-06E;;;13;13;P +YMMG;94;821;Mount Gambier Aerodrome;;Australia;5;37-44S;140-47E;37-44S;140-47E;65;69;P +YMMI;94;693;Mildura Airport;;Australia;5;34-13S;142-05E;34-14S;142-05E;50;52;P +YMML;94;866;Melbourne Airport;;Australia;5;37-40S;144-50E;37-44S;144-50E;132;141;P +YMMQ;94;998;Macquarie Island;;Australia;5;54-29S;158-57E;54-29S;158-56E;6;8;P +YMWY;94;957;Wynyard West;;Australia;5;40-59S;145-43E;;;11;; +YPAD;94;672;Adelaide Airport;;Australia;5;34-56S;138-31E;34-56S;138-31E;6;4;P +YPAL;94;802;Albany Airport;;Australia;5;34-56S;117-48E;34-56S;117-48E;71;69;P +YPBH;94;689;Broken Hill Patton Street;;Australia;5;31-58S;141-28E;;;315;;P +YPCC;96;996;Cocos Island Airport;;Christmas Island;5;12-11S;096-49E;12-11S;096-50E;3;3;P +YPCD;94;653;Ceduna Airport;;Australia;5;32-07S;133-42E;32-07S;133-42E;23;17;P +YPDB;94;205;Derby;;Australia;5;17-18S;123-37E;17-19S;123-38E;8;9;P +YPDN;94;120;Darwin Airport;;Australia;5;12-24S;130-52E;12-26S;130-52E;31;30;P +YPEA;94;612;Bullsbrook Pearce Amo;;Australia;5;31-40S;116-01E;;;45;49;P +YPED;95;676;Edinburgh M. O.;;Australia;5;34-42S;138-37E;;;20;20;P +YPFT;94;646;Forrest Airport;;Australia;5;30-50S;128-06E;30-50S;128-06E;160;156; +YPGN;94;403;Geraldton Airport;;Australia;5;28-47S;114-42E;28-48S;114-42E;37;34;P +YPKG;94;637;Kalgoorlie Boulder Amo;;Australia;5;30-47S;121-27E;30-46S;121-27E;367;370;P +YPKU;94;216;Kununurra Kununurra Aws ;;Australia;5;15-46S;128-42E;;;44;45;P +YPLC;94;674;Leigh Creek Airport;;Australia;5;30-35S;138-25E;;;261;259; +YPLM;94;302;Learmonth Airport;;Australia;5;22-14S;114-05E;22-14S;114-05E;5;6;P +YPMR;94;430;Meekatharra Airport;;Australia;5;26-36S;118-32E;26-36S;118-31E;522;518;P +YPPD;94;312;Port Hedland Pardoo;;Australia;5;20-06S;119-34E;20-22S;118-37E;9;10;P +YPPF;95;677;Parafield Airport;;Australia;5;34-47S;138-38E;;;17;10;P +YPPH;94;610;Belmont Perth Airport ;;Australia;5;31-56S;115-57E;31-55S;115-58E;20;29;P +YPTN;--;---;Tindal / Katherine;;Australia;5;14-26S;132-16E;;;108;109;P +YPWR;94;659;Woomera Aerodrome;;Australia;5;31-08S;136-49E;31-09S;136-48E;165;167;P +YPXM;96;995;Christmas Island Aerodrome;;Christmas Island;5;10-26S;105-41E;10-27S;105-42E;279;262;P +YSBK;94;765;Bankstown Airport Aws;;Australia;5;33-55S;150-59E;;;9;8; +YSCB;94;926;Canberra;;Australia;5;35-18S;149-11E;35-18S;149-11E;575;580;P +YSCH;94;791;Coffs Harbour Mo;;Australia;5;30-19S;153-07E;30-19S;153-07E;5;6;P +YSCM;94;923;Cooma;;Australia;5;36-14S;149-05E;;;778;; +YSCN;94;755;Camden Airport;;Australia;5;34-02S;150-41E;;;70;; +YSDU;94;719;Dubbo;;Australia;5;32-12S;148-34E;32-12S;148-34E;275;275;P +YSNF;94;996;Norfolk Island Airport;;Australia;5;29-02S;167-56E;29-02S;167-56E;113;109;P +YSNW;94;750;Nowra Ran Air Station;;Australia;5;34-57S;150-32E;34-57S;150-32E;122;110;P +YSRI;94;753;Richmond Aus-Afb ;;Australia;5;33-36S;150-47E;;;21;; +YSSY;94;767;Sydney Airport;;Australia;5;33-57S;151-11E;33-57S;151-11E;6;3;P +YSTW;94;762;Tamworth Airport;;Australia;5;31-05S;150-50E;;;410;; +YSWG;94;910;Wagga Airport;;Australia;5;35-09S;147-27E;35-09S;147-27E;221;213;P +YSWM;94;776;Williamtown Aerodrome;;Australia;5;32-47S;151-49E;32-47S;151-49E;9;8;P +ZBAA;54;511;Beijing;;China;2;39-56N;116-17E;39-48N;116-28E;55;55; +ZBHH;53;463;Hohhot;;China;2;40-49N;111-41E;40-49N;111-41E;1065;1065; +ZBTJ;--;---;Tianjin / Zhangguizhu;;China;2;39-11N;117-21E;;;3;; +ZBYN;53;772;Taiyuan;;China;2;37-47N;112-33E;37-47N;112-33E;779;779; +ZGCS;57;679;Changsha;;China;2;28-12N;113-05E;28-12N;112-58E;46;46; +ZGGG;59;287;Guangzhou;;China;2;23-10N;113-20E;23-08N;113-19E;8;42; +ZGHA;--;---;Changsha;;China;2;28-14N;112-52E;;;;; +ZGHK;59;758;Haikou;;China;2;20-02N;110-21E;20-02N;110-21E;15;15; +ZGKL;57;957;Guilin;;China;2;25-20N;110-18E;25-20N;110-18E;166;166; +ZGNN;59;431;Nanning;;China;2;22-49N;108-21E;22-49N;108-21E;73;73; +ZGOW;59;316;Shantou;;China;2;23-24N;116-41E;23-21N;116-40E;3;3; +ZGSZ;59;493;Shenzhen;;China;2;22-33N;114-06E;;;18;18; +ZGZJ;59;658;Zhanjiang;;China;2;21-13N;110-24E;21-13N;110-24E;28;28; +ZHCC;57;083;Zhengzhou;;China;2;34-43N;113-39E;34-43N;113-39E;111;111; +ZHHH;57;494;Wuhan;;China;2;30-37N;114-08E;30-35N;114-16E;23;23; +ZJSY;--;---;Sanya/Fenghuang;;China;2;18-18N;109-24E;;;27;; +ZKKC;47;025;Kimchaek;;Korea, North;2;40-40N;129-12E;;;19;23;P +ZKPY;47;058;Pyongyang;;Korea, North;2;39-02N;125-47E;39-02N;125-47E;36;38;P +ZLIC;53;614;Yinchuan;;China;2;38-29N;106-13E;38-29N;106-13E;1112;1112; +ZLJQ;52;533;Jiuquan;;China;2;39-46N;098-29E;39-46N;098-31E;1478;1478; +ZLLL;--;---;Lanzhou / Zhongchuan;;China;2;36-01-12N;103-45E;;;;; +ZLSN;57;036;Xi'An;;China;2;34-18N;108-56E;34-18N;108-56E;398;398; +ZLXN;52;866;Xining;;China;2;36-37N;101-46E;36-43N;101-45E;2262;2262; +ZLXY;--;---;Xian/Xianyang;;China;2;34-26N;108-45E;;;479;; +ZLYA;53;845;Yan An;;China;2;36-36N;109-30E;36-36N;109-30E;959;959; +ZMUB;--;---;Ulan-Bator;;Mongolia;2;47-51N;106-46E;;;;; +ZPPP;56;778;Kunming;;China;2;25-01N;102-41E;25-01N;102-41E;1892;1892; +ZSAM;59;134;Xiamen;;China;2;24-29N;118-05E;24-27N;118-04E;139;139; +ZSCN;58;606;Nanchang;;China;2;28-36N;115-55E;28-40N;115-55E;50;50; +ZSFZ;58;847;Fuzhou;;China;2;26-05N;119-17E;26-05N;119-17E;85;85; +ZSGZ;57;993;Ganzhou;;China;2;25-51N;114-57E;25-51N;114-56E;125;125; +ZSHC;58;457;Hangzhou;;China;2;30-14N;120-10E;30-14N;120-10E;43;43; +ZSNJ;58;238;Nanjing;;China;2;32-00N;118-48E;32-00N;118-48E;12;12; +ZSOF;58;321;Hefei;;China;2;31-52N;117-14E;31-52N;117-14E;36;36; +ZSPD;--;---;Shanghai / Pudong;;China;2;31-07N;121-46E;;;4;; +ZSQD;54;857;Qingdao;;China;2;36-04N;120-20E;36-04N;120-20E;77;77; +ZSSS;58;367;Shanghai / Hongqiao;;China;2;31-10N;121-26E;31-10N;121-26E;7;3; +ZSTN;54;823;Jinan;;China;2;36-41N;116-59E;36-41N;116-59E;58;58; +ZUCK;57;516;Chongqing;;China;2;29-31N;106-29E;29-31N;106-29E;351;351; +ZUGY;57;816;Guiyang;;China;2;26-35N;106-43E;26-29N;106-39E;1074;1074; +ZULS;55;591;Lhasa;;China;2;29-40N;091-08E;29-40N;091-08E;3650;3650; +ZUUU;56;294;Chengdu;;China;2;30-40N;104-01E;30-40N;104-01E;508;508; +ZWHM;52;203;Hami;;China;2;42-49N;093-31E;42-49N;093-31E;739;739; +ZWSH;51;709;Kashi;;China;2;39-28N;075-59E;39-28N;075-59E;1291;1291; +ZWTN;51;828;Hotan;;China;2;37-08N;079-56E;37-08N;079-56E;1375;1375; +ZWWW;--;---;Urum-Qi / Diwopu;;China;2;43-54N;087-28E;;;654;; +ZWYN;51;431;Yining;;China;2;43-57N;081-20E;43-57N;081-20E;663;663; +ZYCC;54;161;Changchun;;China;2;43-54N;125-13E;43-54N;125-13E;238;238; +ZYHB;--;---;Harbin;;China;2;46-01-12N;126-34-48E;;;;; +ZYQQ;50;745;Qiqihar;;China;2;47-23N;123-55E;47-23N;123-55E;148;148; +ZYTL;54;662;Dalian;;China;2;38-54N;121-38E;38-59N;121-38E;97;97; +ZYTX;--;---;Shenyang / Taokian;;China;2;41-48N;123-24E;;;35;; diff --git a/kweather/sun.cpp b/kweather/sun.cpp new file mode 100644 index 0000000..5c6fca1 --- /dev/null +++ b/kweather/sun.cpp @@ -0,0 +1,462 @@ +/*************************************************************************** + sun.cpp - Sun Rise and Set Calculations + ------------------- + begin : Friday July 11 2003 + copyright : (C) 2003 by John Ratke + email : jratke@comcast.net + + history: + Written as DAYLEN.C, 1989-08-16 + Modified to SUNRISET.C, 1992-12-01 + (c) Paul Schlyter, 1989, 1992 + Released to the public domain by Paul Schlyter, December 1992 + Portions Modified to SUNDOWN.NLM by Cliff Haas 98-05-22 + Converted to C++ and modified by John Ratke + +***************************************************************************/ + +/*************************************************************************** +* * +* 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 + +#include +#include "sun.h" + +/* A function to compute the number of days elapsed since 2000 Jan 0.0 */ +/* (which is equal to 1999 Dec 31, 0h UT) */ + +static inline double days_since_2000_Jan_0(int y, int m, int d) +{ + return (367L*(y)-((7*((y)+(((m)+9)/12)))/4)+((275*(m))/9)+(d)-730530L); +} + +/* Some conversion factors between radians and degrees */ + +static const double PI = 3.14159265358979323846; + +static const double RADEG = ( 180.0 / PI ); +static const double DEGRAD = ( PI / 180.0 ); + +/* The trigonometric functions in degrees */ +static inline double sind(double x) { return sin( x * DEGRAD ); } +static inline double cosd(double x) { return cos( x * DEGRAD ); } +static inline double tand(double x) { return tan( x * DEGRAD ); } +static inline double atand(double x) { return RADEG * atan(x); } +static inline double asind(double x) { return RADEG * asin(x); } +static inline double acosd(double x) { return RADEG * acos(x); } +static inline double atan2d(double y, double x) { return RADEG * atan2(y, x); } + +/* Other local functions */ +static double latitudeToDouble( const QString &latitude ); +static double longitudeToDouble( const QString &longitude ); +static int __sunriset__( int year, int month, int day, double lon, double lat, + double altit, int upper_limb, double &trise, double &tset ); +static void sunpos( double d, double &lon, double &r ); +static void sun_RA_dec( double d, double &RA, double &dec, double &r ); +static inline double revolution( const double x ); +static inline double rev180( const double x ); +static inline double GMST0( const double d ); + + +/* + * This function computes times for sunrise/sunset. + * Sunrise/set is considered to occur when the Sun's upper limb is + * 35 arc minutes below the horizon (this accounts for the refraction + * of the Earth's atmosphere). + */ +static inline int sun_rise_set(int year, int month, int day, double lon, double lat, double &rise, double &set) +{ + return __sunriset__( year, month, day, lon, lat, -35.0/60.0, 1, rise, set ); +} + +/* + * This function computes the start and end times of civil twilight. + * Civil twilight starts/ends when the Sun's center is 6 degrees below + * the horizon. + */ +static inline int civil_twilight(int year, int month, int day, double lon, double lat, double &start, double &end) +{ + return __sunriset__( year, month, day, lon, lat, -6.0, 0, start, end ); +} + + +Sun::Sun(const QString &latitude, const QString &longitude, QDate date, const int localUTCOffset) : + m_date(date), + m_lat(latitudeToDouble(latitude)), m_lon(longitudeToDouble(longitude)), + m_localUTCOffset(localUTCOffset) +{ +} + + +QTime Sun::computeRiseTime() +{ + double riseTime; + double setTime; + + sun_rise_set( m_date.year(), m_date.month(), m_date.day(), m_lon, m_lat, riseTime, setTime ); + + QTime result = convertDoubleToLocalTime( riseTime ); + + if ( ! result.isValid() ) + result.setHMS( 6, 0, 0 ); + + return result; +} + + +QTime Sun::computeSetTime() +{ + double riseTime; + double setTime; + + sun_rise_set( m_date.year(), m_date.month(), m_date.day(), m_lon, m_lat, riseTime, setTime ); + + QTime result = convertDoubleToLocalTime( setTime ); + + if ( ! result.isValid() ) + result.setHMS( 19, 0, 0 ); + + return result; +} + + +QTime Sun::computeCivilTwilightStart() +{ + double start; + double end; + + civil_twilight( m_date.year(), m_date.month(), m_date.day(), m_lon, m_lat, start, end ); + + QTime result = convertDoubleToLocalTime( start ); + + if ( ! result.isValid() ) + result.setHMS( 6, 0, 0 ); + + return result; +} + + +QTime Sun::computeCivilTwilightEnd() +{ + double start; + double end; + + civil_twilight( m_date.year(), m_date.month(), m_date.day(), m_lon, m_lat, start, end ); + + QTime result = convertDoubleToLocalTime( end ); + + if ( ! result.isValid() ) + result.setHMS( 19, 0, 0 ); + + return result; +} + + +/* + * Converts latitude in format DD-MMH, where DD is degrees, MM is minutes, + * and H is Hemisphere (N for North, or S for South) to a floating point number. + * + * For example: 27-00S to -27.0 + * + * Does not currently handle seconds. + */ +static double latitudeToDouble( const QString &latitude ) +{ + double result; + + double dd = latitude.left(2).toDouble(); + double mm = latitude.mid(3, 2).toDouble(); + + result = dd + (mm / 60); + + if (latitude.contains("S")) + result *= -1; + + return result; +} + + +static double longitudeToDouble( const QString &longitude ) +{ + double result; + + double ddd = longitude.left(3).toDouble(); + double mm = longitude.mid(4, 2).toDouble(); + + result = ddd + (mm / 60); + + if (longitude.contains("W")) + result *= -1; + + return result; +} + + +QTime Sun::convertDoubleToLocalTime( const double time ) +{ + QTime result; + + // Example: say time is 17.7543 Then hours = 17 and minutes = 0.7543 * 60 = 45.258 + // We need to convert the time to CORRECT local hours + int hours = (int)floor(time); + int localhours = hours + (m_localUTCOffset / 60); + + // We need to convert the time to CORRECT local minutes + int minutes = (int)floor((time - hours) * 60); + int localminutes = minutes + (m_localUTCOffset % 60); + + // We now have to adjust the time to be within the 60m boundary + if (localminutes < 0) + { + //As minutes is less than 0, we need to + //reduce a hour and add 60m to minutes. + localminutes += 60; + localhours--; + } + if (localminutes >= 60) + { + //As minutes are more than 60, we need to + //add one more hour and reduce the minutes to + //a value between 0 and 59. + localminutes -= 60; + localhours++; + } + + // Round up or down to nearest second. + // Use rint instead of nearbyint because rint is in FreeBSD + int seconds = (int)rint( fabs( minutes - ((time - hours) * 60) ) * 60 ); + + // We now have to adjust the time to be within the 24h boundary + if (localhours < 0) { localhours += 24; } + if (localhours >= 24) { localhours -= 24; } + + // Try to set the hours, minutes and seconds for the local time. + // If this doesn't work, then we will return the invalid time. + result.setHMS( localhours, localminutes, seconds ); + + return result; +} + + +/* + * Note: year,month,date = calendar date, 1801-2099 only. + * Eastern longitude positive, Western longitude negative + * Northern latitude positive, Southern latitude negative + * The longitude value IS critical in this function! + * altit = the altitude which the Sun should cross + * Set to -35/60 degrees for rise/set, -6 degrees + * for civil, -12 degrees for nautical and -18 + * degrees for astronomical twilight. + * upper_limb: non-zero -> upper limb, zero -> center + * Set to non-zero (e.g. 1) when computing rise/set + * times, and to zero when computing start/end of + * twilight. + * trise = the rise time gets stored here + * tset = the set time gets stored here + * Both times are relative to the specified altitude, + * and thus this function can be used to comupte + * various twilight times, as well as rise/set times + * + * Return value: 0 = sun rises/sets this day, times stored in + * trise and tset. + * +1 = sun above the specified "horizon" 24 hours. + * trise set to time when the sun is at south, + * minus 12 hours while tset is set to the south + * time plus 12 hours. "Day" length = 24 hours + * -1 = sun is below the specified "horizon" 24 hours + * "Day" length = 0 hours, trise and tset are + * both set to the time when the sun is at south. + * + */ +static int __sunriset__( int year, int month, int day, double lon, double lat, + double altit, int upper_limb, double &trise, double &tset ) +{ + double d; /* Days since 2000 Jan 0.0 (negative before) */ + double sr; /* Solar distance, astronomical units */ + double sRA; /* Sun's Right Ascension */ + double sdec; /* Sun's declination */ + double sradius; /* Sun's apparent radius */ + double t; /* Diurnal arc */ + double tsouth; /* Time when Sun is at south */ + double sidtime; /* Local sidereal time */ + + int rc = 0; /* Return code from function - usually 0 */ + + /* Compute d of 12h local mean solar time */ + d = days_since_2000_Jan_0(year, month, day); + + d = days_since_2000_Jan_0(year, month, day) + 0.5 - lon / 360.0; + + /* Compute local sideral time of this moment */ + sidtime = revolution( GMST0(d) + 180.0 + lon ); + + /* Compute Sun's RA + Decl at this moment */ + sun_RA_dec( d, sRA, sdec, sr ); + + /* Compute time when Sun is at south - in hours UT */ + tsouth = 12.0 - rev180(sidtime - sRA) / 15.0; + + /* Compute the Sun's apparent radius, degrees */ + sradius = 0.2666 / sr; + + /* Do correction to upper limb, if necessary */ + if ( upper_limb ) + altit -= sradius; + + /* Compute the diurnal arc that the Sun traverses to reach */ + /* the specified altitide altit: */ + double cost; + cost = ( sind(altit) - sind(lat) * sind(sdec) ) / + ( cosd(lat) * cosd(sdec) ); + if ( cost >= 1.0 ) + { + rc = -1; + t = 0.0; /* Sun always below altit */ + } + else if ( cost <= -1.0 ) + { + rc = +1; + t = 12.0; /* Sun always above altit */ + } + else + t = acosd(cost) / 15.0; /* The diurnal arc, hours */ + + /* Store rise and set times - in hours UT */ + trise = tsouth - t; + tset = tsouth + t; + + return rc; +} + + +/* This function computes the Sun's position at any instant + * + * Computes the Sun's ecliptic longitude and distance + * at an instant given in d, number of days since + * 2000 Jan 0.0. The Sun's ecliptic latitude is not + * computed, since it's always very near 0. + */ +static void sunpos( double d, double &lon, double &r ) +{ + double M; /* Mean anomaly of the Sun */ + double w; /* Mean longitude of perihelion */ + /* Note: Sun's mean longitude = M + w */ + double e; /* Eccentricity of Earth's orbit */ + double E; /* Eccentric anomaly */ + double x; + double y; /* x, y coordinates in orbit */ + double v; /* True anomaly */ + + /* Compute mean elements */ + M = revolution( 356.0470 + 0.9856002585 * d ); + w = 282.9404 + 4.70935E-5 * d; + e = 0.016709 - 1.151E-9 * d; + + /* Compute true longitude and radius vector */ + E = M + e * RADEG * sind(M) * ( 1.0 + e * cosd(M) ); + x = cosd(E) - e; + y = sqrt( 1.0 - e*e ) * sind(E); + r = sqrt( x*x + y*y ); /* Solar distance */ + v = atan2d( y, x ); /* True anomaly */ + lon = v + w; /* True solar longitude */ + + if ( lon >= 360.0 ) + lon -= 360.0; /* Make it 0..360 degrees */ +} + + +static void sun_RA_dec( double d, double &RA, double &dec, double &r ) +{ + double lon; + double obl_ecl; + double x; + double y; + double z; + + /* Compute Sun's ecliptical coordinates */ + sunpos( d, lon, r ); + + /* Compute ecliptic rectangular coordinates (z=0) */ + x = r * cosd(lon); + y = r * sind(lon); + + /* Compute obliquity of ecliptic (inclination of Earth's axis) */ + obl_ecl = 23.4393 - 3.563E-7 * d; + + /* Convert to equatorial rectangular coordinates - x is unchanged */ + z = y * sind(obl_ecl); + y = y * cosd(obl_ecl); + + /* Convert to spherical coordinates */ + RA = atan2d( y, x ); + dec = atan2d( z, sqrt(x*x + y*y) ); +} + + +static const double INV360 = 1.0 / 360.0; + +/* + * This function reduces any angle to within the first revolution + * by subtracting or adding even multiples of 360.0 until the + * result is >= 0.0 and < 360.0 + */ +static inline double revolution( const double x ) +{ + return ( x - 360.0 * floor( x * INV360 ) ); +} + +/* + * Reduce angle to within +180..+180 degrees + */ +static inline double rev180( const double x ) +{ + return ( x - 360.0 * floor( x * INV360 + 0.5 ) ); +} + + +/* + * This function computes GMST0, the Greenwhich Mean Sidereal Time + * at 0h UT (i.e. the sidereal time at the Greenwhich meridian at + * 0h UT). GMST is then the sidereal time at Greenwich at any + * time of the day. I've generelized GMST0 as well, and define it + * as: GMST0 = GMST - UT -- this allows GMST0 to be computed at + * other times than 0h UT as well. While this sounds somewhat + * contradictory, it is very practical: instead of computing + * GMST like: + * + * GMST = (GMST0) + UT * (366.2422/365.2422) + * + * where (GMST0) is the GMST last time UT was 0 hours, one simply + * computes: + * + * GMST = GMST0 + UT + * + * where GMST0 is the GMST "at 0h UT" but at the current moment! + * Defined in this way, GMST0 will increase with about 4 min a + * day. It also happens that GMST0 (in degrees, 1 hr = 15 degr) + * is equal to the Sun's mean longitude plus/minus 180 degrees! + * (if we neglect aberration, which amounts to 20 seconds of arc + * or 1.33 seconds of time) + * + */ +static inline double GMST0( const double d ) +{ + double sidtim0; + + /* Sidtime at 0h UT = L (Sun's mean longitude) + 180.0 degr */ + /* L = M + w, as defined in sunpos(). Since I'm too lazy to */ + /* add these numbers, I'll let the C compiler do it for me. */ + /* Any decent C compiler will add the constants at compile */ + /* time, imposing no runtime or code overhead. */ + sidtim0 = revolution( ( 180.0 + 356.0470 + 282.9404 ) + + ( 0.9856002585 + 4.70935E-5 ) * d ); + return sidtim0; +} + diff --git a/kweather/sun.h b/kweather/sun.h new file mode 100644 index 0000000..6773d01 --- /dev/null +++ b/kweather/sun.h @@ -0,0 +1,57 @@ +/*************************************************************************** + sun.h - Sun Rise and Set Calculations + ------------------- + begin : Friday July 11 2003 + copyright : (C) 2003 by John Ratke + email : jratke@comcast.net + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 SUN_H +#define SUN_H + +#include +#include +#include + +class Sun +{ + public: + /* Constructs a Sun instance for calculating sun rise and set + * times. Users should construct it once and then call one or + * more of the other four public functions. + * + * Inputs are the location on earth to calculate the rise/set time + * for (for example, the location of a particular weather station), + * the current date, and the offset in minutes from universal time + * to the local time zone. + * + */ + Sun( const QString &latitude, + const QString &longitude, + QDate date = QDate::currentDate(), + const int localUTCOffset = KRFCDate::localUTCOffset() ); + + QTime computeRiseTime(); + QTime computeSetTime(); + QTime computeCivilTwilightStart(); + QTime computeCivilTwilightEnd(); + + private: + QTime convertDoubleToLocalTime( const double time ); + + const QDate m_date; + const double m_lat; + const double m_lon; + const int m_localUTCOffset; +}; + +#endif diff --git a/kweather/sun_test.cpp b/kweather/sun_test.cpp new file mode 100644 index 0000000..d5dcccd --- /dev/null +++ b/kweather/sun_test.cpp @@ -0,0 +1,84 @@ +/**************************************************************************** + * sun_test.cpp - Sun Rise and Set Test Program + * ------------------- + * begin : Tuesday June 2 2004 + * copyright : (C) 2004 by John Ratke + * email : jratke@comcast.net + ****************************************************************************/ + +/**************************************************************************** + * * + * 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 +using namespace std; + +#include +#include +#include + +#include "sun.h" + + +int main() +{ + bool anyFailed = false; + + QString KUGN_Latitude("42-25N"); + QString KUGN_Longitude("087-52W"); + QDate Date(2004, 6, 1); // June 1st. + int localUTCOffset = -300; + + // Construct a sun object for our tests. + Sun theSun( KUGN_Latitude, KUGN_Longitude, Date, localUTCOffset ); + + QTime civilStart = theSun.computeCivilTwilightStart(); + QTime civilEnd = theSun.computeCivilTwilightEnd(); + + cout << "Testing Civil Twilight Calculations..."; + // Start should be 04:42:39 End should be 20:56:06 + if (civilStart.hour() == 4 && civilStart.minute() == 42 && civilStart.second() == 39 && + civilEnd.hour() == 20 && civilEnd.minute() == 56 && civilEnd.second() == 06) + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + cout << "Testing Rise and Set Time Calculations..."; + + QTime rise = theSun.computeRiseTime(); + QTime set = theSun.computeSetTime(); + + // Rise should be 05:16:35 Set should be 20:22:10 + if (rise.hour() == 5 && rise.minute() == 16 && rise.second() == 35 && + set.hour() == 20 && set.minute() == 22 && set.second() == 10) + { + cout << "passed" << endl; + } + else + { + cout << "failed" << endl; + anyFailed = true; + } + + + // If success, return 0, else return 1 + if (anyFailed) + { + return 1; + } + else + { + return 0; + } +} + diff --git a/kweather/test.sh b/kweather/test.sh new file mode 100755 index 0000000..ee64ba2 --- /dev/null +++ b/kweather/test.sh @@ -0,0 +1,28 @@ +#!/bin/bash +mkdir nowind nopress notemp +for file in `ls .` +do + METAR=`cat $file | grep -v ":"` +# echo testing data $METAR + KWEATHER=`dcopfind kweather* weatherIface` + dcop "$KWEATHER" parseWeather "$METAR" false + WIND=`dcop "$KWEATHER" get_wind` + PRESS=`dcop "$KWEATHER" get_pressure` + TEMP=`dcop "$KWEATHER" get_temperature` + if `test "$WIND"=""` + then + cp $file nowind/$file + fi + if `test "$PRESS"=""` + then + cp $file nopress/$file + fi + if `test "$TEMP"=""` + then + cp $file notemp/$file + fi + + echo $WIND $PRESS $TEMP +# #sleep 1 +done + diff --git a/kweather/weatherIface.h b/kweather/weatherIface.h new file mode 100644 index 0000000..5f52b39 --- /dev/null +++ b/kweather/weatherIface.h @@ -0,0 +1,15 @@ +#ifndef __WE_IFACE_H +#define __WE_IFACE_H + +#include +class weatherIface : virtual public DCOPObject +{ + K_DCOP +public: + + k_dcop: + /** Cause KWeather to refrsh it's data **/ + virtual void refresh(QString) = 0; +}; + +#endif diff --git a/kweather/weather_stations.desktop b/kweather/weather_stations.desktop new file mode 100644 index 0000000..22fe77a --- /dev/null +++ b/kweather/weather_stations.desktop @@ -0,0 +1,3112 @@ +[Main] +regions=US CA MX EU AF OZ ME AS M_ AT + +[ME] +name=Middle East +states=DZ BH IR IL KW LB OM QA SA AE YE + +[ME_IL] +name=Israel +loc0=Ben\\ Gurion LLBG ------ --- +loc1=Eilat LLET ------ --- +loc2=Ovda LLOV ------ --- + +[ME_AE] +name=United Arab Emirates +loc0=Abu\\ Dhabi\\ -\\ Bateen OMAD ------ --- +loc1=Abu\\ Dhabi OMAA ------ --- +loc2=Al\\ Ain OMAL ------ --- +loc3=Dubai OMDB ------ --- +loc4=Fujairah OMFJ ------ --- +loc5=Ras\\ Al\\ Khaimah OMRK ------ --- +loc6=Sharjah OMSJ ------ --- + +[ME_QA] +name=Qatar +loc0=Doha OTBD ------ --- + +[ME_OM] +name=Oman +loc0=Masirah OOMA ------ --- +loc1=Saiq OOSQ ------ --- +loc2=Salalah OOSA ------ --- +loc3=Seeb OOMS ------ --- +loc4=Thumrait OOTH ------ --- + +[ME_YE] +name=Yemen +loc0=Aden OYAA ------ --- +loc1=Hodeidah OYHD ------ --- +loc2=Marib OYMB ------ --- +loc3=Sana'A OYSN ------ --- +loc4=Sayun OYSY ------ --- +loc5=Socotra OYSQ ------ --- +loc6=Taiz OYTZ ------ --- + +[ME_SA] +name=Saudi Arabia +loc0=Abha OEAB ------ --- +loc1=Al\\ Ahsa OEAH ------ --- +loc2=Al\\ Baha OEBA ------ --- +loc3=Al\\ Qaysumah OEPA ------ --- +loc4=Al-Jouf OESK ------ --- +loc5=Arar OERR ------ --- +loc6=Bisha OEBH ------ --- +loc7=Dawadmi OEDW ------ --- +loc8=Dhahran OEDR ------ --- +loc9=Gassim OEGS ------ --- +loc10=Gizan OEGN ------ --- +loc11=Guriat OEGT ------ --- +loc12=Hafr\\ Al-Batin OEKK ------ --- +loc13=Hail OEHL ------ --- +loc14=Jeddah\\ King\\ Abdul\\ Aziz\\ International\\ Airport OEJN ------ --- +loc15=Khamis\\ Mushait OEKM ------ --- +loc16=King\\ Khaled\\ International\\ Airport OERK ------ --- +loc17=Madinah OEMA ------ --- +loc18=Makkah OEMK ------ --- +loc19=Najran OENG ------ --- +loc20=Rafha OERF ------ --- +loc21=Riyadh OERY ------ --- +loc22=Sharurah OESH ------ --- +loc23=Tabuk OETB ------ --- +loc24=Taif OETF ------ --- +loc25=Turaif OETR ------ --- +loc26=Wadi\\ Al\\ Dawasser\\ Airport OEWD ------ --- +loc27=Wejh OEWJ ------ --- +loc28=Yenbo OEYN ------ --- + +[ME_DZ] +name=Algeria +loc0=Adrar DAUA ------ --- +loc1=Annaba DABB ------ --- +loc2=Constantine DABC ------ --- +loc3=Dar-El-Beida DAAG ------ --- +loc4=Ghardaia DAUG ------ --- +loc5=Hassi-Messaoud DAUH ------ --- +loc6=In\\ Amenas DAUZ ------ --- +loc7=Oran/Es\\ Senia DAOO ------ --- +loc8=Tamanrasset/Aguenna DAAT ------ --- +loc9=Tebessa DABS ------ --- +loc10=Tlemcen\\ Zenata DAON ------ --- + +[ME_BH] +name=Bahrain +loc0=Bahrain OBBI ------ --- + +[ME_LB] +name=Lebanon +loc0=Beirut OLBA ------ --- + +[ME_IR] +name=Iran, Islamic Republic of +loc0=Ahwaz OIAW ------ --- +loc1=Bandarabbass OIKB ------ --- +loc2=Esfahan OIFM ------ --- +loc3=Kerman OIKK ------ --- +loc4=Mashhad OIMM ------ --- +loc5=Shiraz OISS ------ --- +loc6=Tabriz OITT ------ --- +loc7=Tehran-Mehrabad OIII ------ --- + +[ME_KW] +name=Kuwait +loc0=Kuwait OKBK ------ --- + +[US] +name=United States +states=AL AK AZ AR CA CO CT DE DC FL GA HI ID IL IN IA KS KY LA ME MA MD MI MS MN MO MT NE NH NM NV NY ND NJ NC OH OK OR PA RI SC SD TN TX UT VT VA WA WI WV WY + +[US_AK] +name=Alaska +loc0=Adak PADK AKZ020 --- +loc1=Ambl\\er PAFM AKZ003 --- +loc2=Anaktuvuk PAKP AKZ001 --- +loc3=Anchorage PANC AKZ015 --- +loc4=Anchorage\\ -\\ Elmendorf\\ AFB PAED AKZ015 --- +loc5=Aniak PANI AKZ010 --- +loc6=Annette PANT ------ --- +loc7=Barrow PABR AKZ001 --- +loc8=Barter\\ Island PABA ------ --- +loc9=Bethel PABE AKZ010 --- +loc10=Bettles PABT AKZ004 --- +loc11=Big\\ River\\ Lake PALV AKZ001 --- +loc12=Cantwell PATW AKZ004 --- +loc13=Cape\\ Lisburne PALU ------ --- +loc14=Cape\\ Newenham PAEH ------ --- +loc15=Cape\\ Romanzoff PACZ ------ --- +loc16=Chandalar\\ Lake PALR AKZ004 --- +loc17=Chulitna PAEC ------ --- +loc18=Circle\\ City PACR AKZ004 --- +loc19=Cold\\ Bay PACD AKZ020 --- +loc20=Cordova PACV AKZ017 --- +loc21=Dead\\ Horse PASC AKZ001 --- +loc22=Dillingham PADL AKZ010 --- +loc23=Dutch\\ Harbor PADU AKZ020 --- +loc24=Elfin\\ Cove PAEL AKZ022 --- +loc25=Emmonak PAEM ------ --- +loc26=Fairbanks PAFA AKZ007 --- +loc27=Farbanks/Eielson\\ AFB PAEI AKZ007 --- +loc28=Fort\\ Greely/Allen\\ AAF PABI ------ --- +loc29=Galbraith\\ Lake PAGB ------ --- +loc30=Galena PAGA ------ --- +loc31=Gambell PAGM AKZ006 --- +loc32=Gulkana PAGK AKZ015 --- +loc33=Gustavus PAGS AKZ024 --- +loc34=Haines PAHN AKZ002 --- +loc35=Hayes\\ River PAHZ ------ --- +loc36=Healy\\ River PAHV AKZ004 --- +loc37=Homer PAHO AKZ017 --- +loc38=Hoonah PAOH AKZ026 --- +loc39=Iliamna PAIL AKZ010 --- +loc40=Juneau PAJN AKZ025 --- +loc41=Kake PAFE AKZ026 --- +loc42=Kenai PAEN AKZ017 --- +loc43=Ketchikan PAKT AKZ027 --- +loc44=King\\ Salmon PAKN AKZ016 --- +loc45=Klawock PAKW ------ --- +loc46=Kodiak PADQ AKZ018 --- +loc47=Kotzebue PAOT AKZ003 --- +loc48=Lake\\ Hood PALH ------ --- +loc49=McCarthy PAMX AKZ017 --- +loc50=McGrath PAMC AKZ004 --- +loc51=Mekoryuk PAMY AKZ010 --- +loc52=Merril\\ Field PAMR ------ --- +loc53=Middleton\\ Island PAMD ------ --- +loc54=Minchumina PAMH ------ --- +loc55=Nabesna/Devil\\ Mt. PABN ------ --- +loc56=Nenana PANN AKZ004 --- +loc57=Nome PAOM AKZ006 --- +loc58=Northway PAOR AKZ007 --- +loc59=Palmer PAAQ AKZ015 --- +loc60=Paxson PAXK AKZ017 --- +loc61=Petersburg PAPG AKZ026 --- +loc62=Point\\ Hope PAPO AKZ001 --- +loc63=Point\\ Lay PPIZ AKZ001 --- +loc64=Port\\ Alexander PAAP AKZ026 --- +loc65=Port\\ Alsworth PALJ ------ --- +loc66=Port\\ Heiden PAPH AKZ010 --- +loc67=Puntilla\\ Lake PAPT ------ --- +loc68=Saint\\ Mary's PASM AKZ010 --- +loc69=Saint\\ Paul PASN ------ --- +loc70=Sand\\ Point PASD AKZ020 --- +loc71=Selanik PASK AKZ003 --- +loc72=Seward PAWD AKZ017 --- +loc73=Shishmaref PASH AKZ006 --- +loc74=Sitka PASI AKZ023 --- +loc75=Skagway PAGY AKZ026 --- +loc76=Skwentna PASW AKZ015 --- +loc77=Slana PADT ------ --- +loc78=Snowshoe\\ Lake PALK ------ --- +loc79=Soldotna PASX AKZ017 --- +loc80=Sparrevohn PASV ------ --- +loc81=Sutton PAJV ------ --- +loc82=Talkeetna PATK AKZ015 --- +loc83=Tanana PATA AKZ004 --- +loc84=Tatalina PATL ------ --- +loc85=Tin\\ City PATC ------ --- +loc86=Togiak\\ Village PATG AKZ010 --- +loc87=Umiat PAUM AKZ001 --- +loc88=Unalakleet PAUN AKZ006 --- +loc89=Valdez\\ 2 PAVD AKZ017 --- +loc90=Wainwright PAFB AKZ001 --- +loc91=Whittier PAWR AKZ015 --- +loc92=Willow\\ Airport PAUO AKZ015 --- +loc93=Wrangell PAWG AKZ026 --- +loc94=Yakutat PAYA AKZ022 --- + +[US_AR] +name=Arkansas +loc0=Batesville KBVX ARZ016 --- +loc1=Bentonville KVBT ARZ001 --- +loc2=El\\ Dorado KELD ARZ073 --- +loc3=Fayetteville KFYV ARZ010 085 +loc4=Flippin KFLP ARZ004 --- +loc5=Fort\\ Smith KFSM ------ 085 +loc6=Harrison KHRO ARZ003 085 +loc7=Hot\\ Springs KHOT ARZ042 --- +loc8=Jonesboro KJBR ARZ026 085 +loc9=Little\\ Rock KLIT ARZ044 --- +loc10=Little\\ Rock\\ AFB KLRF ARZ044 --- +loc11=Pine\\ Bluff KPBF ARZ056 --- +loc12=Rogers KROG ARZ001 --- +loc13=Siloam\\ Springs KSLG ARZ001 --- +loc14=Stuttgart KSGT ARZ057 --- +loc15=Texarkana KTXK ARZ070 --- +loc16=Walnut\\ Ridge KARG ARZ017 --- + +[US_DC] +name=District of Columbia +loc0=Washington/Dulles KIAD DCZ013 dca +loc1=Washington KDCA DCZ013 dca + +[US_ID] +name=Idaho +loc0=Boise KBOI IDZ014 --- +loc1=Burley KBYI IDZ022 --- +loc2=Challis KU15 IDZ018 --- +loc3=Coeur\\ d'Alene KCOE IDZ002 --- +loc4=Elk\\ City KP69 IDZ006 --- +loc5=Grangeville KS80 IDZ007 --- +loc6=Hailey-Sun\\ Valley KSUN IDZ018 --- +loc7=Idaho\\ Falls KIDA IDZ020 --- +loc8=Lewiston KLWS IDZ003 --- +loc9=Malad\\ City KMLD IDZ022 --- +loc10=Malta K77M IDZ022 --- +loc11=McCall KMYL IDZ011 --- +loc12=Mountain\\ Home KMUO IDZ014 --- +loc13=Mullan KS06 IDZ004 --- +loc14=Pocatello KPIH IDZ021 --- +loc15=Salmon KSMN IDZ009 --- +loc16=Salmon\\ (2) K27U IDZ009 --- +loc17=Soda\\ Springs KU78 IDZ023 --- +loc18=Strevell K4SV ------ --- +loc19=Twin\\ Falls KTWF IDZ015 --- + +[US_IA] +name=Iowa +loc0=Algona KAXA IAZ005 043 +loc1=Ames KAMW IAZ048 043 +loc2=Atlantic KAIO IAZ070 --- +loc3=Boone KBNW IAZ047 --- +loc4=Burlington KBRL IAZ089 058 +loc5=Carroll KCIN IAZ045 --- +loc6=Cedar\\ Rapids KCID IAZ052 --- +loc7=Chariton KCNC IAZ084 --- +loc8=Charles\\ City KCCY IAZ018 --- +loc9=Clarinda KICL IAZ091 --- +loc10=Clarion KCAV IAZ025 --- +loc11=Clinton KCWI IAZ066 --- +loc12=Council\\ Bluffs KCBF IAZ069 --- +loc13=Creston KCSQ IAZ082 --- +loc14=Davenport KDVN IAZ068 --- +loc15=Decorah KDEH IAZ010 --- +loc16=Denison KDNS IAZ044 --- +loc17=Des\\ Moines KDSM IAZ060 057 +loc18=Dubuque KDBQ IAZ042 --- +loc19=Estherville KEST IAZ004 --- +loc20=Fairfield KFFL IAZ087 --- +loc21=Fort\\ Dodge KFOD IAZ035 043 +loc22=Fort\\ Madison KFSW IAZ099 --- +loc23=Iowa\\ City KIOW IAZ064 --- +loc24=Keokuk KEOK ------ --- +loc25=Knoxville KOXV ------ --- +loc26=Lamoni K0Y7 IAZ094 057 +loc27=Le\\ Marine KLRJ ------ --- +loc28=Marshalltown KMIW IAZ049 --- +loc29=Mason\\ City KMCW IAZ017 044 +loc30=Monticello KMXO IAZ053 --- +loc31=Muscatine KMUT IAZ067 --- +loc32=Newton KTNU IAZ061 --- +loc33=Oelwen KOLZ IAZ029 --- +loc34=Orange\\ City KORC IAZ012 --- +loc35=Ottumwa KOTM IAZ086 058 +loc36=Red\\ Oak KRDK IAZ080 --- +loc37=Sheldon KSHL IAZ012 --- +loc38=Shenandoah KSDA IAZ091 --- +loc39=Sioux\\ City KSUX IAZ031 043 +loc40=Spencer KSPW IAZ014 043 +loc41=Storm\\ Lake KSLB IAZ022 --- +loc42=Washington KAWG IAZ077 --- +loc43=Waterloo KALO IAZ039 044 +loc44=Webster\\ City KEBS ------ --- + +[US_KS] +name=Kansas +loc0=Chanute KCNU KSZ096 084 +loc1=Concordia KCNK KSZ020 071 +loc2=Dodge\\ City KDDC KSZ078 070 +loc3=Elkhart K1K5 KSZ084 --- +loc4=Emporia KEMP KSZ054 071 +loc5=Fort\\ Riley KFRI KSZ036 --- +loc6=Garden\\ City KGCK KSZ063 070 +loc7=Goodland KGLD KSZ013 070 +loc8=Hays KHYS KSZ031 --- +loc9=Hill\\ City KHLC KSZ016 070 +loc10=Hutchinson KHUT KSZ067 084 +loc11=Liberal KLBL KSZ086 --- +loc12=Manhattan KMHK KSZ022 071 +loc13=Medicine\\ Lodge KP28 KSZ090 --- +loc14=Olathe KOJC KSZ105 071 +loc15=Olathe/Ind. KIXD KSZ105 071 +loc16=Russell KRSL KSZ032 070 +loc17=Salina KSLN KSZ049 071 +loc18=Topeka KTOP KSZ039 071 +loc19=Topeka-Forbes\\ Field KFOE KSZ039 071 +loc20=Wichita KICT KSZ083 084 +loc21=Wichita-Jabara K3KM KSZ083 084 +loc22=Wichita-McConnell\\ AFB KIAB KSZ083 084 + +[US_KY] +name=Kentucky +loc0=Bowling\\ Green KBWG KYZ071 087 +loc1=Covington KCVG KYZ092 074 +loc2=Fort\\ Campbell KHOP KYZ017 --- +loc3=Fort\\ Knox KFTK KYZ028 --- +loc4=Frankfort KFFT KYZ035 --- +loc5=Henderson KEHR KYZ018 --- +loc6=Jackson KJKL KYZ112 087 +loc7=Lexington KLEX KYZ041 074 +loc8=London KLOZ ------ 087 +loc9=Louisville KLOU KYZ030 073 +loc10=Louisville-Standiford\\ Field KSDF KYZ030 073 +loc11=Owensboro KOWB KYZ019 086 +loc12=Paducah KPAH KYZ005 --- +loc13=Pikeville K5I3 KYZ120 --- +loc14=Somerset KSME KYZ079 --- + +[US_LA] +name=Lousiana +loc0=Alexandria KAEX LAZ028 115 +loc1=Alexandria-Esler KESF LAZ028 115 +loc2=Amelia K7R3 ------ --- +loc3=Barksdale KBAD ------ --- +loc4=Baton\\ Rouge KBTR LAZ048 121 +loc5=Cameron K7R5 LAZ051 --- +loc6=Fort\\ Polk-Leesville KPOE LAZ027 115 +loc7=Fourchon K9F2 ------ --- +loc8=Grand\\ Isle KAXO LAZ061 --- +loc9=Houma KHUM LAZ066 --- +loc10=Intracoastal K7R4 LAZ052 --- +loc11=Lafayette KLFT LAZ044 121 +loc12=Lake\\ Charles KLCH LAZ041 121 +loc13=Monroe KMLU LAZ014 --- +loc14=New\\ Iberia KARA LAZ053 --- +loc15=New\\ Orleans KMSY LAZ062 121 +loc16=New\\ Orleans\\ NAS KNBG LAZ062 121 +loc17=New\\ Orleans-Lakefront KNEW LAZ062 121 +loc18=Patterson KPTN ------ --- +loc19=Salt\\ point KP92 ------ --- +loc20=Shreveport\\ Downtown KDTN LAZ001 107 +loc21=Shreveport\\ Regional KSHV LAZ001 107 +loc22=South\\ Marsh\\ Island K7R8 LAZ053 --- +loc23=South\\ Timbalier KS58 ------ --- +loc24=Venice K7R1 ------ 121 +loc25=Vermillion K9R9 ------ --- +loc26=Vicksburg KTVR ------ --- + +[US_ME] +name=Maine +loc0=Augusta KAUG MEZ021 034 +loc1=Bangor KBGR MEZ015 034 +loc2=Bar\\ Harbor KBHB MEZ029 --- +loc3=Brunswick KNHZ MEZ024 049 +loc4=Caribou KCAR MEZ002 --- +loc5=Clayton\\ Lake K40B ------ --- +loc6=Frenchville KFVE MEZ002 --- +loc7=Fryeburg KIZG ------ --- +loc8=Greenville K3B1 MEZ010 034 +loc9=Houlton KHUL MEZ002 --- +loc10=Lewiston KLEW MEZ020 --- +loc11=Millinocket KMLT MEZ015 --- +loc12=Portland KPWM MEZ024 049 +loc13=Presque\\ Isle KPQI MEZ002 --- +loc14=Rockland KRKD MEZ027 --- +loc15=Sanford KSFM MEZ023 --- +loc16=Turin K3B5 ------ --- +loc17=Waterville KWVL MEZ021 --- +loc18=Wiscasset KIWI MEZ026 --- + +[US_MS] +name=Mississippi +loc0=Columbus KGTR MSZ031 109 +loc1=Columbus-W\\ Point-Starkville KCBM MSZ031 109 +loc2=Greenville KGLH ------ 108 +loc3=Greenwood KGWO MSZ025 108 +loc4=Gulfport KGPT MSZ081 --- +loc5=Jackson KJAN MSZ048 108 +loc6=Laurel KPIB MSZ066 --- +loc7=McComb KMCB MSZ070 --- +loc8=Meridian KMEI MSZ052 109 +loc9=Meridian-Lauderdale KNMM MSZ052 109 +loc10=Natchez KHEZ MSZ060 --- +loc11=Tupelo KTUP MSZ016 098 +loc12=Vicksburg KTVR MSZ047 --- + +[US_MO] +name=Missouri +loc0=Cape\\ Girardeau KCGI MOZ087 --- +loc1=Columbia KCOU MOZ041 072 +loc2=Fort\\ Leonard KTBN MOZ070 072 +loc3=Grandview KGVW MOZ037 --- +loc4=Jefferson\\ City KJEF MOZ048 072 +loc5=Joplin KJLN MOZ088 084 +loc6=Kansas\\ City KMKC MOZ037 071 +loc7=Kansas\\ City-Gladstone KMCI MOZ029 071 +loc8=Kirksville KIRK MOZ017 058 +loc9=Poplar\\ Bluff KP02 MOZ109 --- +loc10=Sedalia KSZL MOZ045 --- +loc11=Spickard KP35 MOZ015 --- +loc12=Springfield KSGF MOZ095 084 +loc13=St\\ Joseph KSTJ MOZ020 057 +loc14=St\\ Louis KSTL MOZ064 stl +loc15=St\\ Louis-Spirit KSUS MOZ064 stl +loc16=Vichy-Rolla KVIH MOZ058 072 + +[US_MT] +name=Montana +loc0=Billings KBIL MTZ035 --- +loc1=Bozeman KBZN MTZ015 013 +loc2=Broadus K4BQ MTZ036 --- +loc3=Butte KBTM MTZ007 013 +loc4=Cut\\ Bank KCTB MTZ010 004 +loc5=Dillon KDLN MTZ008 025 +loc6=Drummond K3DU MTZ006 013 +loc7=Glasgow KGGW MTZ017 --- +loc8=Glendive KGDV MTZ025 --- +loc9=Great\\ Falls KGFA MTZ012 004 +loc10=Harlowton K3HT MTZ028 --- +loc11=Havre KHVR MTZ011 004 +loc12=Helena KHLN MTZ014 013 +loc13=Jordan KJDN MTZ022 --- +loc14=Kalispell KFCA MTZ003 004 +loc15=Lewistown KLWT MTZ013 013 +loc16=Livingston KLVM MTZ028 013 +loc17=Miles\\ City KMLS MTZ032 --- +loc18=Missoula KMSO MTZ005 013 +loc19=Monida KMQM ------ --- +loc20=Sidney KSDY MTZ024 --- +loc21=Thompson\\ Falls K3TH MTZ004 --- +loc22=West\\ Yellowstone KWYS MTZ015 025 +loc23=West\\ Yellowstone\\ (2) KWEY MTZ015 025 +loc24=Wolf\\ Point KOLF MTZ020 --- + +[US_NE] +name=Nebraska +loc0=Ainsworth KANW NEZ008 042 +loc1=Alliance KAIA NEZ003 --- +loc2=Beatrice KBIE NEZ089 057 +loc3=Broken\\ Bow KBBW NEZ038 056 +loc4=Burwell KK20 ------ --- +loc5=Chadron KCDR NEZ002 041 +loc6=Columbus KOLU NEZ042 --- +loc7=Falls\\ City KFNB NEZ093 057 +loc8=Grand\\ Island KGRI NEZ062 056 +loc9=Hastings KHSI NEZ075 056 +loc10=Imperial KIML NEZ069 055 +loc11=Imperial\\ (2) K6V1 NEZ069 055 +loc12=Kearney KEAR NEZ061 --- +loc13=Lincoln KLNK NEZ066 057 +loc14=McCook KMCK NEZ081 056 +loc15=Mullen KMHN NEZ007 042 +loc16=Norfolk KOFK NEZ031 042 +loc17=North\\ Platte KLBF NEZ059 --- +loc18=O'Neill KONL NEZ010 042 +loc19=Omaha KOMA NEZ052 057 +loc20=Omaha-Bellevue KOFF NEZ052 057 +loc21=Ord-Sharp KODX NEZ039 --- +loc22=Scottsbluff KBFF NEZ019 041 +loc23=Sidney KSNY NEZ055 055 +loc24=Valentine KVTN NEZ005 042 + +[US_NH] +name=New Hampshire +loc0=Berlin KBML NHZ002 034 +loc1=Concord KCON NHZ008 049 +loc2=Jaffrey KAFN NHZ011 --- +loc3=Keene KEEN NHZ011 049 +loc4=Laconia KLCI NHZ009 049 +loc5=Lebanon KLEB NHZ003 049 +loc6=Manchester KMHT NHZ012 049 +loc7=Mt\\ Washington KMWN ------ 034 +loc8=Nashua KASH NHZ012 --- +loc9=North\\ Conway KCWN ------ --- +loc10=Portsmouth KPSM NHZ013 049 +loc11=Whitefield KHIE ------ --- + +[US_NM] +name=New Mexico +loc0=Alamogordo KHMN NMZ024 --- +loc1=Albuquerque KABQ NMZ009 abq +loc2=Carlsbad KCNM NMZ028 --- +loc3=Clayton KCAO NMZ007 --- +loc4=Clovis-Cannon\\ AFB KCVS NMZ021 --- +loc5=Corona K4CR NMZ016 --- +loc6=Cuba\\ Awrs K4SL NMZ002 --- +loc7=Deming KDMN NMZ031 --- +loc8=Farmington KFMN NMZ001 081 +loc9=Gallup KGUP NMZ008 093 +loc10=Grants KGNT NMZ008 093 +loc11=Hobbs KHOB NMZ029 --- +loc12=Las\\ Vegas KLVS NMZ005 abq +loc13=Los\\ Alamos KLAM NMZ002 081 +loc14=Moriarty K4MY NMZ011 --- +loc15=Roswell KROW NMZ019 --- +loc16=Ruidoso-Sierra\\ Blanca KRUI NMZ016 --- +loc17=Santa\\ Fe KSAF NMZ011 abq +loc18=Silver\\ City KSVC NMZ022 --- +loc19=Socorro KONM NMZ015 --- +loc20=Taos KE23 NMZ004 --- +loc21=Truth\\ or\\ Consequences KTCS NMZ023 --- +loc22=Tucumcari KTCC NMZ013 --- +loc23=Zuni\\ Pueblo KZUN ------ --- + +[US_ND] +name=North Dakota +loc0=Bismark KBIS NDZ035 016 +loc1=Devils\\ Lake KDVL NDZ015 007 +loc2=Devils\\ Lake\\ (2) KP11 NDZ015 007 +loc3=Dickinson KDIK NDZ033 015 +loc4=Fargo KFAR NDZ039 --- +loc5=Grand\\ Forks KGFK NDZ027 007 +loc6=Jamestown KJMS NDZ037 016 +loc7=Lidgerwood KP67 NDZ053 --- +loc8=Minot KMOT NDZ011 007 +loc9=Minot\\ AFB KMIB NDZ011 007 +loc10=Roseglen KP24 NDZ021 --- +loc11=Williston KISN NDZ009 006 + +[US_OK] +name=Oklahoma +loc0=Altus KLTS OKZ036 --- +loc1=Ardmore KADM OKZ046 --- +loc2=Bartlesville KBVO OKZ054 084 +loc3=Clinton KCSM OKZ016 --- +loc4=Enid KEND OKZ012 --- +loc5=Enid/Woodring KWDG OKZ012 084 +loc6=Fort\\ Sill KFSI OKZ038 --- +loc7=Gage KGAG OKZ009 --- +loc8=Guymon KGUY ------ 082 +loc9=Hobart KHBR OKZ035 095 +loc10=Lawton KLAW OKZ038 --- +loc11=McAlester KMLC OKZ073 --- +loc12=Oklahoma\\ City KOKC OKZ025 095 +loc13=Oklahoma\\ City-Bethany KPWA OKZ025 095 +loc14=Oklahoma\\ City-Midwest\\ City KTIK OKZ025 095 +loc15=Page KPGO OKZ076 --- +loc16=Ponca\\ City KPNC OKZ008 084 +loc17=Stillwater KSWO OKZ020 084 +loc18=Tulsa KTUL OKZ060 084 + +[US_SD] +name=South Dakota +loc0=Aberdeen KABR SDZ006 --- +loc1=Brookings KBKX SDZ040 --- +loc2=Chamberlain K9V9 SDZ057 --- +loc3=Custer K0V1 SDZ029 --- +loc4=Huron KHON SDZ038 028 +loc5=Lemmon KY22 SDZ002 --- +loc6=Mitchell KMHE SDZ059 028 +loc7=Mobridge KY26 SDZ009 028 +loc8=Philip KPHP SDZ032 028 +loc9=Pierre KPIR SDZ035 028 +loc10=Rapid\\ City KRAP SDZ031 027 +loc11=Rapid\\ City-Ellsworth\\ AFB KRCA SDZ031 027 +loc12=Redig KREJ SDZ001 --- +loc13=Sioux\\ Falls KFSD SDZ062 043 +loc14=Watertown KATY SDZ020 --- +loc15=Yankton KYKN SDZ069 043 + +[US_UT] +name=Utah +loc0=Blanding K4BL UTZ022 067 +loc1=Bryce\\ Canyon KBCE UTZ020 080 +loc2=Bullfrog KU17 UTZ021 --- +loc3=Cedar\\ City KCDC UTZ016 080 +loc4=Delta KU24 UTZ015 --- +loc5=Dugway KDPG UTZ005 slc +loc6=Eagle\\ Range KU16 ------ --- +loc7=Green\\ River KU28 UTZ013 --- +loc8=Hanksville K4HV UTZ013 067 +loc9=Logan KLGU UTZ001 --- +loc10=Milford KMLF UTZ016 --- +loc11=Ogden KOGD UTZ002 slc +loc12=Ogden-Hill\\ AFB KHIF UTZ002 slc +loc13=Price-Carbon KPUC UTZ012 067 +loc14=Provo KPVU UTZ004 slc +loc15=Roosevelt KU67 UTZ011 --- +loc16=St.\\ George KSGU UTZ019 080 +loc17=Salt\\ Lake\\ City KSLC UTZ003 slc +loc18=Vernal KVEL UTZ024 --- +loc19=Wendover KENV UTZ005 slc + +[US_VT] +name=Vermont +loc0=Ball\\ Mountain K8B3 ------ --- +loc1=Burlington KBTV VTZ005 --- +loc2=Canaan KVT1 ------ --- +loc3=Enosburg\\ Falls K3B8 ------ --- +loc4=Montpelier KMPV VTZ008 034 +loc5=Newport KNPV VTZ003 034 +loc6=Pownal K5B5 ------ --- +loc7=Rutland KRUT VTZ011 --- +loc8=Springfield KVSF VTZ012 --- +loc9=St\\ Johnsbury K9B2 VTZ007 --- +loc10=Waterbury K5B1 ------ --- +loc11=West\\ Burke KVT2 ------ --- +loc12=Wilmington K0B0 VTZ014 049 + +[US_WY] +name=Wyoming +loc0=Big\\ Piney KBPI WYZ020 --- +loc1=Casper KCPR WYZ064 --- +loc2=Cheyenne KCYS WYZ069 --- +loc3=Cody KCOD WYZ002 026 +loc4=Douglas K4DG WYZ059 --- +loc5=Evanston KEVW WYZ021 --- +loc6=Gillette KGCC WYZ054 026 +loc7=Jackson KJAC WYZ006 --- +loc8=Lander KLND WYZ012 040 +loc9=Laramie KLAR WYZ066 --- +loc10=Rawlins KRWL WYZ061 040 +loc11=Riverton KRIW WYZ013 040 +loc12=Rock\\ Springs KRKS WYZ022 --- +loc13=Sheridan KSHR WYZ099 --- +loc14=Worland KWRL WYZ009 026 +loc15=Yellowstone KP60 WYZ001 --- + + +[US_PA] +name=Pennsylvania +loc0=Allentown KABE PAZ061 062 +loc1=Altoona KAOO PAZ025 061 +loc2=Bradford KBFD PAZ005 047 +loc3=Du\\ Bois KDUJ PAZ017 061 +loc4=Erie KERI PAZ002 047 +loc5=Franklin KFKL PAZ008 061 +loc6=Harrisburg KCXY PAZ057 062 +loc7=Johnstown KJST PAZ024 pit +loc8=Lancaster KLNS PAZ066 phl +loc9=Latrobe KLBE PAZ030 pit +loc10=Middletown KMDT PAZ057 062 +loc11=Muir KMUI PAZ058 062 +loc12=Northeast\\ Philadelphia KPNE PAZ071 phl +loc13=Philadelphia KPHL PAZ071 phl +loc14=Philipsburg KPSB PAZ019 061 +loc15=Pittsburgh KPIT PAZ021 pit +loc16=Pittsburgh-West\\ Mifflin KAGC PAZ021 pit +loc17=Reading KRDG PAZ060 phl +loc18=Scranton KAVP PAZ047 062 +loc19=State\\ College KUNV PAZ019 061 +loc20=Wilkes\\ -\\ Barre KAVP PAZ047 062 +loc21=Williamsport KIPT PAZ046 062 + +[US_CA] +name=California +loc0=Alturas KS11 CAZ012 --- +loc1=Arcata KACV CAZ001 --- +loc2=Avalon KAVX ------ --- +loc3=Bakersfield KBFL CAZ021 --- +loc4=Beaumont KBUO CAZ056 --- +loc5=Bicycle\\ Lake KBYS ------ --- +loc6=Bishop KBIH CAZ026 --- +loc7=Blue\\ Canyon KBLU ------ --- +loc8=Blythe KBLH CAZ031 --- +loc9=Burbank KBUR CAZ047 --- +loc10=Camarillo KCMA CAZ040 --- +loc11=Campo KCZZ CAZ058 --- +loc12=Carlsbad KCRQ CAZ043 --- +loc13=Chico KCIC CAZ016 --- +loc14=China\\ Lake KNID CAZ028 --- +loc15=Chino KCNO CAZ048 --- +loc16=Concord KCCR CAZ007 --- +loc17=Crescent\\ City KCEC CAZ001 --- +loc18=Daggett KDAG CAZ028 --- +loc19=Edwards\\ AFB KEDW CAZ025 --- +loc20=El\\ Centro KNJK CAZ033 --- +loc21=El\\ Monte KEMT CAZ047 --- +loc22=Fairfield KSUU CAZ018 --- +loc23=Fresno KFAT CAZ020 078 +loc24=Fresno-Chandler KFCH CAZ020 078 +loc25=Fullerton KFUL CAZ042 --- +loc26=Hawthorne KHHR CAZ041 --- +loc27=Hayward KHWD CAZ007 --- +loc28=Imperial KIPL CAZ033 --- +loc29=Imperial\\ Beach KNRS CAZ043 --- +loc30=Inyokern KIYK CAZ025 --- +loc31=La\\ Verne KPOC CAZ047 --- +loc32=Lake\\ Tahoe KTVL CAZ072 --- +loc33=Lancaster KWJF CAZ059 --- +loc34=Lemoore KNLC CAZ021 --- +loc35=Livermore KLVK CAZ007 --- +loc36=Lompoc KLPC CAZ035 --- +loc37=Long\\ Beach KLGB CAZ041 lax +loc38=Los\\ Angeles KLAX CAZ041 lax +loc39=Mammoth\\ Lakes KMMH CAZ073 --- +loc40=Marysville KMYV CAZ016 --- +loc41=Marysville-Beale\\ AFB KBAB CAZ016 --- +loc42=McClellan KMCC ------ --- +loc43=Merced KMCE CAZ020 --- +loc44=Modesto KMOD CAZ019 --- +loc45=Mojave KMHV CAZ024 --- +loc46=Montague KSIY CAZ011 --- +loc47=Monterey KMRY CAZ009 --- +loc48=Mount\\ Shasta KMHS CAZ011 --- +loc49=Mount\\ Wilson KMWS CAZ047 --- +loc50=Mountain\\ View KNUQ CAZ006 sfo +loc51=Napa KAPC CAZ064 --- +loc52=Needles KEED CAZ029 --- +loc53=Oakland KOAK CAZ007 sfo +loc54=Oceanside KNFG CAZ043 --- +loc55=Ontario KONT CAZ048 lax +loc56=Oxnard KOXR CAZ040 --- +loc57=Palm\\ Springs KPSP CAZ061 --- +loc58=Palmdale KPMD CAZ054 --- +loc59=Palo\\ Alto KPAO CAZ006 sfo +loc60=Paso\\ Robles KPRB CAZ037 --- +loc61=Point\\ Mugu KNTD ------ --- +loc62=Point\\ Piedras\\ Blanca K87Q ------ --- +loc63=Porterville KPTV CAZ021 --- +loc64=Red\\ Bluff KRBL CAZ015 --- +loc65=Redding KRDD CAZ013 --- +loc66=Riverside KRAL CAZ048 --- +loc67=Riverside/March\\ AFB KRIV CAZ061 --- +loc68=Sacramento KSAC CAZ017 --- +loc69=Sacramento-Woodland KSMF CAZ017 --- +loc70=Salinas KSNS CAZ009 --- +loc71=San\\ Carlos KSQL CAZ006 --- +loc72=San\\ Diego KSAN CAZ043 san +loc73=San\\ Diego-Santee KSEE CAZ050 san +loc74=San\\ Diego-Brown KSDM CAZ050 san +loc75=San\\ Diego-Miramar KNKX CAZ043 san +loc76=San\\ Diego-Montgomery KMYF CAZ043 san +loc77=San\\ Diego-North\\ Island KNZY ------ san +loc78=San\\ Francisco KSFO CAZ006 sfo +loc79=San\\ Jose-Santa\\ Clara KSJC CAZ008 sfo +loc80=San\\ Luis\\ Obispo KSBP CAZ034 --- +loc81=San\\ Nicholas\\ Island KNSI CAZ039 --- +loc82=Sandberg KSDB ------ --- +loc83=Santa\\ Ana KSNA CAZ042 lax +loc84=Santa\\ Barbara KSBA CAZ039 lax +loc85=Santa\\ Maria KSMX CAZ035 090 +loc86=Santa\\ Monica KSMO CAZ041 --- +loc87=Santa\\ Rosa KSTS CAZ005 --- +loc88=Shelter\\ Cove KO87 CAZ001 --- +loc89=Stockton KSCK CAZ019 --- +loc90=Tahoe\\ Valley KTVL ------ --- +loc91=Torrance KTOA CAZ042 lax +loc92=Truckee KTRK CAZ072 --- +loc93=Twentynine\\ Palms KNXP CAZ028 --- +loc94=Ukiah KUKI CAZ003 --- +loc95=Van\\ Nuys KVNY CAZ047 --- +loc96=Vandenberg\\ AFB KVBG CAZ039 --- +loc97=Vandenberg\\ Range KVBG CAZ039 --- +loc98=Visalia KVIS CAZ021 --- + +[US_AL] +name=Alabama +loc0=Anniston KANB ALZ019 --- +loc1=Auburn KAUO ALZ047 --- +loc2=Birmingham KBHM ALZ024 019 +loc3=Decatur KDCU ------ --- +loc4=Dothan KDHN ALZ066 --- +loc5=Evergreen KGZH ------ --- +loc6=Gadsden KGAD ALZ018 --- +loc7=Huntsville KHSV ALZ006 --- +loc8=Mobile\\ Regional\\ Airport KMOB ALZ061 --- +loc9=Mobile\\ Downtown KBFM ALZ061 --- +loc10=Montgomery KMGM ALZ044 109 +loc11=Montgomery-Maxwell\\ AFB KMXF ALZ044 109 +loc12=Muscle\\ Shoals KMSL ALZ002 --- +loc13=Ozark KOZR ALZ066 --- +loc14=Tuscaloosa KTCL ALZ023 --- + +[US_AZ] +name=Arizona +loc0=Casa\\ Granda KCGZ AZZ028 --- +loc1=Chandler KIWA AZZ015 --- +loc2=Douglas KDUG AZZ030 --- +loc3=Flagstaff KFLG AZZ015 092 +loc4=Fort\\ Huachuca KFHU AZZ035 --- +loc5=Gila\\ Bend KGBN AZZ027 --- +loc6=Grand\\ Canyon KGCN AZZ006 --- +loc7=Kingman KIGM AZZ003 --- +loc8=Mesa-Falcon\\ Field KFFZ AZZ023 --- +loc9=Nogales K13A AZZ034 --- +loc10=Page KPGA AZZ005 --- +loc11=Payson K0E4 AZZ018 --- +loc12=Phoenix KPHX AZZ023 phx +loc13=Phoenix-Deer\\ Valley KDVT AZZ023 phx +loc14=Phoenix-Goodyear KGYR AZZ023 phx +loc15=Phoenix-Luke\\ AFB KLUF AZZ023 phx +loc16=Prescott KPRC AZZ008 --- +loc17=Safford-Municipal\\ Airport KSAD AZZ030 --- +loc18=Scottsdale KSDL AZZ023 --- +loc19=Show\\ Low KSOW AZZ017 --- +loc20=Tucson KTUS AZZ033 103 +loc21=Tucson-Davis\\ AFB KDMA AZZ033 103 +loc22=Winslow KINW AZZ013 --- +loc23=Yuma\\ MCAS KNYL AZZ025 --- + +[US_CO] +name=Colorado +loc0=Air\\ Force KAFF COZ071 --- +loc1=Akron KAKO COZ049 --- +loc2=Alamosa KALS COZ063 --- +loc3=Aspen KASE COZ010 068 +loc4=Colorado\\ Springs KCOS COZ071 --- +loc5=Cortez KCEZ COZ021 --- +loc6=Craig KCAG COZ002 --- +loc7=Denver KDEN COZ040 den +loc8=Denver-Aurora KAPA COZ040 den +loc9=Denver-Broomfield KBKF COZ040 den +loc10=Denver-Cherry\\ Knolls KBJC COZ040 den +loc11=Durango KDRO COZ022 --- +loc12=Durango\\ Awrs K4V5 COZ022 --- +loc13=Eagle KEGE COZ010 --- +loc14=Fort\\ Carson KFCS COZ071 --- +loc15=Fort\\ Collins KFCL COZ035 --- +loc16=Fort\\ Collins/Lovel KFNL COZ035 --- +loc17=Grand\\ Junction KGJT COZ006 --- +loc18=Greeley KGXY COZ043 --- +loc19=Gunnison KGUC COZ012 --- +loc20=Gunnison\\ (2) K2V9 COZ012 --- +loc21=Hayden KHDN COZ005 --- +loc22=La\\ Junta KLHX COZ076 --- +loc23=Lamar K4LJ COZ080 --- +loc24=Leadville KLXV COZ012 --- +loc25=Limon KLIC COZ047 --- +loc26=Montrose KMTJ COZ017 --- +loc27=Montrose\\ (2) K6V8 COZ017 --- +loc28=Pueblo KPUB COZ073 --- +loc29=Rifle K1V1 COZ003 --- +loc30=Salida KS29 COZ069 --- +loc31=Salida-Harriet K0V2 COZ069 --- +loc32=Steamboat\\ Springs KSBS COZ005 --- +loc33=Trinidad KTAD COZ077 --- +loc34=Winter\\ Park KC96 COZ033 --- + +[US_CT] +name=Connecticut +loc0=Bridgeport KBDR CTZ009 hfd +loc1=Danbury KDXR CTZ009 --- +loc2=Groton KGON CTZ012 hfd +loc3=Hartford KHFD CTZ002 hfd +loc4=New\\ Haven KHVN CTZ010 --- +loc5=Oxford KOXC CTZ010 --- +loc6=Windsor\\ Locks KBDL CTZ002 --- + +[US_DE] +name=Delaware +loc0=Dover KDOV DEZ002 076 +loc1=Wilmington KILG DEZ001 076 + +[US_FL] +name=Florida +loc0=Apalachicola KAQQ FLZ015 --- +loc1=Bartow KBOW ------ --- +loc2=Brooksville KBKV FLZ048 --- +loc3=Cecil\\ NAS KNZC FLZ025 --- +loc4=Cocoa\\ Beach KCOF FLZ047 --- +loc5=Crestview KCEW FLZ006 --- +loc6=Cross\\ City KCTY FLZ034 --- +loc7=Daytona\\ Beach KDAB FLZ041 --- +loc8=Destin KDTS ------ --- +loc9=Eglin KEGI FLZ006 --- +loc10=Fort\\ Lauderdale\\ (International) KFLL FLZ072 --- +loc11=Fort\\ Lauderdale KFXE FLZ072 --- +loc12=Fort\\ Myers\\ (Page\\ Field) KFMY FLZ065 --- +loc13=Fort\\ Myers\\ (Southwest\\ Florida\\ International) KRSW FLZ065 --- +loc14=Gainesville KGNV FLZ036 --- +loc15=Homestead\\ AFB KHST FLZ074 --- +loc16=Hurlburt KHRT ------ --- +loc17=Jacksonville KJAX FLZ025 --- +loc18=Jacksonville\\ NAS KNIP FLZ025 --- +loc19=Jacksonville-Craig\\ Airport KCRG FLZ025 --- +loc20=Key\\ West KEYW FLZ075 --- +loc21=Key\\ West\\ NAS KNQX FLZ075 --- +loc22=Lakeland KLAL FLZ052 --- +loc23=Leesburg KLEE ------ --- +loc24=Marathon KMTH FLZ075 --- +loc25=Marianna KMAI FLZ011 --- +loc26=Mayport KNRB FLZ025 --- +loc27=Melbourne KMLB FLZ047 --- +loc28=Miami KMIA FLZ074 mia +loc29=Miami-Kendall KTMB FLZ074 mia +loc30=Miami-Opa\\ Locka KOPF FLZ074 mia +loc31=Milton KNSE FLZ004 --- +loc32=Nasa\\ Shuttle KTTS ------ --- +loc33=Naples KAPF FLZ069 --- +loc34=New\\ Port\\ Richey KRRF FLZ051 --- +loc35=Ocala KOCF FLZ040 --- +loc36=Orlando KORL FLZ045 --- +loc37=Orlando\\ (Orlando\\ International) KMCO FLZ045 --- +loc38=Panama\\ City KPFN FLZ012 --- +loc39=Pensacola KPNS FLZ002 --- +loc40=Pensacola\\ NAS KNPA FLZ002 --- +loc41=Perry-Foley K40J ------ --- +loc42=Pompano\\ Beach KPMP ------ --- +loc43=Punta\\ Gorda KPGD ------ --- +loc44=Sanford KSFB FLZ046 --- +loc45=Sarasota KSRQ FLZ060 --- +loc46=St\\ Petersburg KSPG FLZ050 --- +loc47=St\\ Petersburg\\ /\\ Clearwater KPIE FLZ050 --- +loc48=Tallahassee KTLH FLZ017 --- +loc49=Tampa KTPA FLZ051 --- +loc50=Tampa-Macdill\\ AFB KMCF FLZ051 --- +loc51=Titusville KTIX FLZ047 --- +loc52=Tyndall\\ AFB KPAM ------ --- +loc53=Valparaiso KVPS FLZ006 --- +loc54=Valparaiso-Eglin\\ AFB KEGI FLZ006 --- +loc55=Vero\\ Beach KVRB FLZ054 --- +loc56=West\\ Palm\\ Beach KPBI FLZ068 --- +loc57=Winter\\ Haven KGIF ------ --- + +[US_GA] +name=Georgia +loc0=Albany KABY GAZ125 --- +loc1=Alma KAMG GAZ134 --- +loc2=Athens KAHN GAZ036 atl +loc3=Atlanta KATL GAZ033 atl +loc4=Augusta KAGS GAZ065 --- +loc5=Brunswick KSSI GAZ154 --- +loc6=Columbus KCSG GAZ089 --- +loc7=Columbus-Fort\\ Benning KLSF GAZ089 --- +loc8=Dekalb/Peachtree KPDK ------ --- +loc9=Hinesville KLHW ------ --- +loc10=Fort\\ Benning KLSF GAZ090 --- +loc11=Fort\\ Stewart KLHW GAZ138 --- +loc12=Macon KMCN GAZ082 --- +loc13=Marietta KMGE GAZ032 --- +loc14=Moultrie KMGR ------ --- +loc15=Rome-Russell KRMG GAZ019 atl +loc16=Savannah KSAV GAZ119 --- +loc17=Savannah-Hunter\\ AAF KSVN GAZ119 --- +loc18=St\\ Simon's\\ Island KSSI GAZ154 --- +loc19=Valdosta KVLD GAZ160 --- +loc20=Valdosta-Moody\\ AFB KVAD GAZ160 --- +loc21=Warner\\ Robins KWRB GAZ095 --- +loc22=West\\ Atlanta KFTY GAZ033 --- +loc23=Waycross KAYS GAZ151 --- + +[US_HI] +name=Hawaii +loc0=Barbers\\ Point PHNA HIZ002 --- +loc1=Barking\\ Sand PHBK ------ --- +loc2=Bradshaw\\ Field PHSF ------ --- +loc3=Hilo PHTO HIZ004 --- +loc4=Honolulu PHNL HIZ002 --- +loc5=Kahului PHOG HIZ003 --- +loc6=Kailua-Kona PHKO HIZ002 --- +loc7=Kaneohe PHNG HIZ002 --- +loc8=Lahaina PHJH HIZ003 --- +loc9=Lanai PHNY HIZ003 --- +loc10=Lihue PHLI HIZ001 --- +loc11=Molokai PHMK HIZ005 --- +loc12=Oahu PHHI HIZ002 --- + +[US_IL] +name=Illinois +loc0=Alton KALN ILZ100 --- +loc1=Aurora KARR ILZ013 --- +loc2=Belleville KBLV ILZ101 --- +loc3=Bloomington KBMI ILZ038 --- +loc4=Cairo KCIR ILZ092 --- +loc5=Carbondale KMDH ILZ084 --- +loc6=Champaign KCMI ILZ045 059 +loc7=Chicago-DuPage KDPA ILZ014 ord +loc8=Chicago-O'Hare KORD ILZ013 ord +loc9=Chicago-Lakefront KCGX ILZ014 ord +loc10=Chicago-Midway KMDW ILZ014 ord +loc11=Danville KDNV ILZ046 --- +loc12=Decatur KDEC ILZ053 --- +loc13=East\\ St\\ Louis KCPS ILZ101 --- +loc14=Galesburg KGBG ILZ027 --- +loc15=Marion KMWA ILZ085 --- +loc16=Marseilles KMMO ILZ019 --- +loc17=Mattoon KMTO ILZ056 --- +loc18=Moline-Quad\\ Cities KMLI ILZ015 --- +loc19=Mount\\ Vernon KMVN ILZ075 --- +loc20=Peoria KPIA ILZ029 --- +loc21=Quincy KUIN ILZ095 --- +loc22=Rockford KRFD ILZ003 --- +loc23=Salem KSLO ILZ070 --- +loc24=Springfield KSPI ILZ051 --- + +[US_IN] +name=Indiana +loc0=Bloomington KBMG INZ062 --- +loc1=Elkhart KEKM INZ005 --- +loc2=Evansville KEVV INZ086 --- +loc3=Fort\\ Wayne KFWA INZ018 --- +loc4=Gary KGYY INZ001 --- +loc5=Indianapolis KIND INZ047 --- +loc6=Lafayette KLAF INZ029 --- +loc7=Marion KMZZ ------ --- +loc8=Muncie KMIE INZ041 --- +loc9=Peru KGUS INZ023 --- +loc10=South\\ Bend KSBN INZ004 --- +loc11=Terre\\ Haute KHUF INZ051 --- + +[US_MD] +name=Maryland +loc0=Aberdeen KAPG ------ --- +loc1=Andrews\\ AFB KADW MDZ013 --- +loc2=Baltimore KMTN MDZ011 dca +loc3=Baltimore-Glen\\ Burnie KBWI MDZ014 dca +loc4=Cumberland KCBE ------ --- +loc5=Fort\\ Meade KFME MDZ014 --- +loc6=Hagerstown KHGR MDZ003 --- +loc7=Oakland K2G4 ------ 075 +loc8=Patuxent\\ River KNHK MDZ014 --- +loc9=Salisbury KSBY MDZ022 --- + +[US_MI] +name=Michigan +loc0=Ann\\ Arbor KARB MIZ075 dtw +loc1=Alpena KAPN MIZ024 --- +loc2=Battle\\ Creek KBTL MIZ073 --- +loc3=Benton\\ Harbor KBEH ------ --- +loc4=Chippewa\\ County KCIU MIZ008 --- +loc5=Copper\\ Harbor KP59 MIZ003 --- +loc6=Detroit KDET MIZ076 dtw +loc7=Detroit-Taylor KDTW MIZ076 dtw +loc8=Detroit/Ypsilanti KYIP MIZ075 dtw +loc9=Escanaba KESC MIZ013 --- +loc10=Flint KFNT MIZ061 dtw +loc11=Grand\\ Rapids KGRR MIZ057 --- +loc12=Hancock KCMX MIZ003 --- +loc13=Harbor\\ Beach KP58 MIZ049 --- +loc14=Houghton\\ Lake KHTL MIZ034 --- +loc15=Iron\\ Mountain KIMT MIZ011 --- +loc16=Ironwood KIWD MIZ009 --- +loc17=Jackson KJXN MIZ074 dtw +loc18=Kalamazoo KAZO MIZ072 045 +loc19=Lansing KLAN MIZ066 --- +loc20=Manistee KMBL MIZ031 --- +loc21=Menominee KMNM MIZ012 --- +loc22=Mount\\ Clemens KMTC MIZ070 --- +loc23=Muskegon KMKG MIZ050 --- +loc24=Oscoda KOSC MIZ036 --- +loc25=Pellston KPLN MIZ016 --- +loc26=Pontiac KPTK MIZ069 --- +loc27=Saginaw KMBS MIZ053 --- +loc28=Sault\\ Ste\\ Marie KSSM MIZ008 --- +loc29=Sawyer\\ AFB KSAW MIZ077 --- +loc30=Seul\\ Choix\\ Pt KP75 ------ --- +loc31=Traverse\\ City KTVC MIZ020 --- +loc32=Ypsilanti KYIP MIZ075 dtw + +[US_MN] +name=Minnesota +loc0=Alexandria KAXN MNZ041 --- +loc1=Bemidji KBJI MNZ009 --- +loc2=Brainerd KBRD MNZ034 --- +loc3=Detroit\\ Lakes KDTL MNZ027 --- +loc4=Duluth KDLH MNZ019 --- +loc5=Ely KELO MNZ019 --- +loc6=Fairmont KFRM MNZ091 --- +loc7=Fergus\\ Falls KFFM MNZ031 --- +loc8=Grand\\ Marais KP61 MNZ021 --- +loc9=Grand\\ Rapids KGPZ MNZ026 --- +loc10=Hibbing KHIB MNZ019 --- +loc11=International\\ Falls KINL MNZ010 --- +loc12=Litchfield KY69 MNZ058 --- +loc13=Mankato KMKT MNZ083 --- +loc14=Marshall KMML MNZ072 --- +loc15=Minneapolis KMSP MNZ060 msp +loc16=Minneapolis\\ [2] KFCM MNZ060 msp +loc17=Minneapolis\\ [3] KMIC MNZ060 msp +loc18=Pequot\\ Lakes KP39 MNZ034 --- +loc19=Redwood\\ Falls KRWF MNZ073 --- +loc20=Rochester KRST MNZ087 030 +loc21=St\\ Cloud KSTC MNZ051 --- +loc22=St\\ Paul KSTP MNZ062 --- +loc23=Thief\\ River\\ Falls KTVF MNZ013 --- +loc24=Warroad KD45 MNZ005 --- +loc25=Worthington KOTG MNZ089 --- + +[US_NV] +name=Nevada +loc0=Austin KU31 NVZ012 --- +loc1=Battle\\ Mountain KBAM NVZ012 --- +loc2=Caliente KP38 NVZ015 --- +loc3=Desert\\ Rock KDRA ------ --- +loc4=Elko KEKO NVZ008 --- +loc5=Ely KELY NVZ011 --- +loc6=Eureka KP68 NVZ012 --- +loc7=Fallon KNFL NVZ004 --- +loc8=Hawthorne KHTH NVZ001 --- +loc9=Indian\\ Springs KL63 NVZ017 --- +loc10=Las\\ Vegas KLAS NVZ020 079 +loc11=N\\ Las\\ Vegas KLSV NVZ020 079 +loc12=Lovelock KLOL NVZ004 --- +loc13=Owyhee KOWY NVZ007 --- +loc14=Reno KRNO NVZ003 065 +loc15=Tonopah KTPH NVZ014 --- +loc16=Winnemucca KWMC NVZ006 --- + +[US_NJ] +name=New Jersey +loc0=Atlantic\\ City KACY NJZ022 --- +loc1=Belmar-Farmingdale KBLM NJZ013 --- +loc2=Caldwell KCDW NJZ005 --- +loc3=Lakehurst KNEL ------ --- +loc4=Millville KMIV NJZ021 --- +loc5=Morristown KMMU NJZ008 --- +loc6=Mount\\ Holly KVAY ------ --- +loc7=Newark KEWR NJZ005 --- +loc8=Teterboro KTEB NJZ003 --- +loc9=Trenton KTTN NJZ015 --- +loc10=Wildwood KWWD NJZ024 --- +loc11=Wrightstown\\ /\\ Mcguire\\ AFB KWRI NJZ019 --- + +[US_NC] +name=North Carolina +loc0=Asheville KAVL NCZ053 --- +loc1=Cape\\ Hatteras KHAT NCZ047 --- +loc2=Charlotte KCLT NCZ071 100 +loc3=Cherry\\ Point KNKT ------ --- +loc4=Elizabeth\\ City KECG NCZ016 --- +loc5=Fayetteville KFAY NCZ088 100 +loc6=Fort\\ Bragg KFBG NCZ088 --- +loc7=Goldsboro KGSB NCZ078 --- +loc8=Greensboro KGSO NCZ022 rdu +loc9=Hickory KHKY NCZ056 --- +loc10=Hoffman KHFF ------ --- +loc11=Hot\\ Springs KHSS NCZ048 --- +loc12=Jacksonville KOAJ NCZ098 --- +loc13=Kinston KISO NCZ091 --- +loc14=New\\ Bern KEWN NCZ093 --- +loc15=New\\ River KNCA NCZ098 --- +loc16=Pope\\ AFB KPOB NCZ088 --- +loc17=Raleigh-Durham KRDU NCZ041 rdu +loc18=Rocky\\ Mount KRWI NCZ028 rdu +loc19=Stumpy\\ Point K2DP ------ --- +loc20=Wilmington KILM NCZ101 --- +loc21=Winston-Salem KINT NCZ021 --- + +[US_OH] +name=Ohio +loc0=Akron KCAK OHZ021 --- +loc1=Cincinnati KLUK OHZ077 074 +loc2=Cleveland KCLE OHZ011 cle +loc3=Cleveland-Lakefront KBKL OHZ011 cle +loc4=Cleveland/Cuyahoga KCGF OHZ011 cle +loc5=Columbus-Gahanna KCMH OHZ055 --- +loc6=Columbus-OSU KOSU OHZ055 --- +loc7=Dayton KDAY OHZ061 074 +loc8=Dayton-Fairborn KFFO OHZ061 --- +loc9=Dayton-South\\ Airport KMGY OHZ061 --- +loc10=Findlay KFDY OHZ017 --- +loc11=Hamilton KHAO OHZ070 --- +loc12=Lancaster KLHQ OHZ067 --- +loc13=Mansfield KMFD OHZ029 --- +loc14=Rickenbacker KLCK OHZ070 --- +loc15=Toledo KTOL OHZ003 --- +loc16=Willoughby KLNN OHZ012 --- +loc17=Wilmington KILN OHZ072 --- +loc18=Wooster KBJJ OHZ031 --- +loc19=Youngstown KYNG OHZ033 --- +loc20=Zanesville KZZV OHZ057 --- + +[US_OR] +name=Oregon +loc0=Astoria KAST ORZ001 --- +loc1=Aurora K3S2 ORZ005 --- +loc2=Baker\\ City KBKE ORZ020 --- +loc3=Brookings K4BK ORZ003 --- +loc4=Burns KBNO ORZ022 --- +loc5=Cascade KCZK ORZ015 --- +loc6=Eugene KEUG ORZ006 --- +loc7=Hillsboro KHIO ORZ004 --- +loc8=Klamath\\ Falls KLMT ORZ012 --- +loc9=Lakeview K4LW ORZ015 --- +loc10=Meacham KMEH ORZ017 --- +loc11=Medford KMFR ORZ008 --- +loc12=Newport KONP ORZ002 --- +loc13=North\\ Bend KOTH ORZ003 --- +loc14=Ontario KONO ORZ021 --- +loc15=Pendleton KPDT ORZ017 --- +loc16=Portland KPDX ORZ004 --- +loc17=Redmond KRDM ORZ014 --- +loc18=Roseburg KRBG ORZ007 --- +loc19=Salem KSLE ORZ005 --- +loc20=Sexton\\ Summit KSXT ORZ008 --- +loc21=The\\ Dalles KDLS ORZ010 --- +loc22=Troutdale KTTD ORZ004 --- + +[US_RI] +name=Rhode Island +loc0=Block\\ Island KBID RIZ006 --- +loc1=North\\ Kingstown KOQU RIZ006 --- +loc2=Providence KPVD RIZ002 bos + +[US_SC] +name=South Carolina +loc0=Anderson KAND SCZ010 099 +loc1=Beaufort KNBC SCZ048 --- +loc2=Charleston KCHS SCZ050 --- +loc3=Columbia KCAE SCZ028 100 +loc4=Columbia-McEntire KMMT SCZ028 100 +loc5=Florence KFLO SCZ032 --- +loc6=Greenville KGMU SCZ006 099 +loc7=Greenville-Spartanburg KGSP SCZ007 099 +loc8=Myrtle\\ Beach KMYR SCZ034 --- +loc9=N\\ Myrtle\\ Beach KCRE SCZ034 --- +loc10=Sumter KSSC SCZ031 --- +loc11=Sumter\\ (2) K2PJ SCZ031 --- + +[US_TN] +name=Tennessee +loc0=Bristol KTRI TNZ017 --- +loc1=Chattanooga KCHA TNZ099 --- +loc2=Crossville KCSV TNZ066 --- +loc3=Dyersburg KDYR TNZ019 --- +loc4=Jackson KMKL TNZ052 --- +loc5=Knoxville KTYS TNZ069 087 +loc6=Knoxville-Downtown KDKX TNZ069 087 +loc7=Memphis KMEM TNZ088 097 +loc8=Memphis-NAS KNQA TNZ088 097 +loc9=Nashville KBNA TNZ027 --- +loc10=Smyrna KMQY TNZ062 --- + +[US_TX] +name=Texas +loc0=Abilene KABI TXZ127 --- +loc1=Alice KALI TXZ241 --- +loc2=Amarillo KAMA TXZ017 --- +loc3=Angleton KLBX ------ --- +loc4=Arlington KF54 TXZ119 --- +loc5=Austin KAUS TXZ192 113 +loc6=Beaumont-Port\\ Arthur KBPT TXZ215 --- +loc7=Bergstrom\\ AFB KBSM TXZ192 --- +loc8=Borger KBGD TXZ008 --- +loc9=Brownsville KBRO TXZ255 --- +loc10=Burnet KBMQ ------ --- +loc11=Childress KCDS TXZ026 --- +loc12=College\\ Station KCLL TXZ196 --- +loc13=Conroe KCXO ------ --- +loc14=Corpus\\ Christi KCRP TXZ243 --- +loc15=Corpus\\ Christi\\ NAS KNGP TXZ243 --- +loc16=Corsicana KCRS TXZ146 --- +loc17=Cotulla KCOT TXZ229 119 +loc18=Dalhart KDHT TXZ001 --- +loc19=Dallas-Addison KADS TXZ119 --- +loc20=Dallas-Fort\\ Worth KDFW TXZ119 --- +loc21=Dallas-Love\\ Field KDAL TXZ119 --- +loc22=Dallas-Redbird KRBD TXZ119 --- +loc23=Del\\ Rio KDRT TXZ183 --- +loc24=Denton KDTO ------ --- +loc25=El\\ Paso KELP TXZ055 --- +loc26=Fort\\ Stockton KFST TXZ075 --- +loc27=Fort\\ Worth-Meacham KFTW TXZ118 --- +loc28=Fort\\ Worth\\ NAS KNFW TXZ118 --- +loc29=Fort\\ Worth-Alliance KAFW TXZ118 --- +loc30=Galveston KGLS TXZ238 --- +loc31=Georgetown KGTU TXZ173 --- +loc32=Greenville KGVT ------ --- +loc33=Guadalupe\\ Pass KGDP TXZ234 --- +loc34=Harlingen KHRL TXZ255 --- +loc35=Hondo KHDO TXZ204 --- +loc36=Houston-Bush KIAH TXZ213 hou +loc37=Houston-Hooks KDWH TXZ213 hou +loc38=Houston-Ellington\\ Field KEFD TXZ213 hou +loc39=Houston-Clover KT02 TXZ213 hou +loc40=Houston-Hobby KHOU TXZ213 hou +loc41=Huntsville KUTS ------ --- +loc42=Junction KJCT TXZ169 --- +loc43=Killeen KILE TXZ158 113 +loc44=Killeen-Ft\\ Hood KHLR TXZ158 113 +loc45=Killeen-Gray\\ AAF KGRK TXZ158 113 +loc46=Kingsville KNQI TXZ242 --- +loc47=Laredo KLRD TXZ239 --- +loc48=Laughlin KDLF ------ --- +loc49=Longview KGGG TXZ138 --- +loc50=Lubbock KLBB TXZ035 --- +loc51=Lufkin KLFK TXZ165 --- +loc52=Mc\\ Gregor KPWG ------ --- +loc53=McAllen KMFE TXZ253 --- +loc54=Midland KMAF TXZ062 --- +loc55=Mineral\\ Wells KMWL TXZ117 --- +loc56=Nacogdoches KOCH TXZ152 --- +loc57=New\\ Braunfels K3R5 TXZ207 --- +loc58=Palacios KPSX TXZ236 --- +loc59=Paris KPRX TXZ095 --- +loc60=Randolph\\ AFB KRND ------ --- +loc61=Rockport KRKP TXZ245 --- +loc62=Sabine\\ Pass KRPE ------ --- +loc63=San\\ Angelo KSJT TXZ072 --- +loc64=San\\ Antonio KSAT TXZ205 119 +loc65=San\\ Antonio-Kelly\\ AFB KSKF TXZ205 119 +loc66=San\\ Antonio-Stinson KSSF TXZ205 119 +loc67=Sanderson KP07 TXZ082 --- +loc68=Sherman-Denison KF39 TXZ093 --- +loc69=Temple KTPL TXZ158 --- +loc70=Terrell KTRL ------ --- +loc71=Tyler KTYR TXZ136 --- +loc72=Victoria KVCT TXZ234 --- +loc73=Waco KACT TXZ159 --- +loc74=Wichita\\ Falls KSPS TXZ086 --- +loc75=Wink KINK TXZ060 --- + +[US_VA] +name=Virginia +loc0=Abingdon KVJI VAZ008 --- +loc1=Ashland KOFP VAZ063 --- +loc2=Charlottesville KCHO VAZ037 --- +loc3=Danville KDAN VAZ044 --- +loc4=Dublin KPSK VAZ013 --- +loc5=Farmville KFVX VAZ061 --- +loc6=Fort\\ Belvoir KDAA VAZ053 --- +loc7=Fort\\ Eustis KFAF ------ --- +loc8=Franklin KFKN VAZ092 --- +loc9=Galax-Hillsville KHLX VAZ016 --- +loc10=Hampton KLFI VAZ094 --- +loc11=Hot\\ Springs KHSP VAZ020 --- +loc12=Langley\\ AFB KLFI VAZ094 --- +loc13=Leesburg KJYO VAZ042 --- +loc14=Lynchburg KLYH VAZ045 --- +loc15=Manassas KHEF VAZ052 --- +loc16=Marion-Wytheville KMKJ VAZ009 --- +loc17=Martinsville KMTV VAZ043 --- +loc18=Melfa KMFV VAZ099 --- +loc19=Newport\\ News KPHF VAZ093 --- +loc20=Norfolk KORF VAZ093 089 +loc21=Norfolk\\ NAS KNGU VAZ093 089 +loc22=Petersburg KPTB VAZ081 --- +loc23=Quantico KNYG VAZ052 --- +loc24=Richmond KRIC VAZ071 089 +loc25=Roanoke KROA VAZ022 --- +loc26=Shannon KEZF ------ --- +loc27=Staunton KSHD VAZ025 --- +loc28=Virginia\\ Beach KNTU VAZ098 --- +loc29=Virginia\\ Tech\\ Airport KBCB VAZ014 --- +loc30=Wakefield KAKQ VAZ088 --- +loc31=Wallops\\ Island KWAL ------ --- +loc32=Waynesboro KSHD VAZ025 --- +loc33=Winchester KOKV VAZ028 --- +loc34=Wise KLNP VAZ002 --- + +[US_WV] +name=West Virginia +loc0=Beckley KBKW WVZ035 --- +loc1=Bluefield KBLF WVZ042 --- +loc2=Charleston KCRW WVZ015 074 +loc3=Clarksburg KCKB WVZ031 --- +loc4=Elkins KEKN WVZ047 --- +loc5=Huntington KHTS WVZ006 --- +loc6=Lewisburg KLWB WVZ045 --- +loc7=Martinsburg KMRB WVZ052 --- +loc8=Morgantown KMGW WVZ022 075 +loc9=Parkersburg KPKB WVZ009 --- +loc10=Wheeling KHLG WVZ004 --- +loc11=White\\ Sulphur KSSU WVZ045 --- + +[US_WI] +name=Wisconsin +loc0=Antigo KAIG WIZ019 --- +loc1=Appleton KATW WIZ038 --- +loc2=Eau\\ Claire KEAU WIZ028 --- +loc3=Fond\\ Du\\ Lac KFLD WIZ051 --- +loc4=Green\\ Bay KGRB WIZ039 --- +loc5=Hayward KHYR WIZ008 --- +loc6=Janesville KJVL WIZ069 --- +loc7=Kenosha KENW WIZ072 --- +loc8=La\\ Crosse KLSE WIZ041 --- +loc9=Lone\\ Rock KLNR WIZ055 --- +loc10=Madison KMSN WIZ063 045 +loc11=Manitowoc KMTW WIZ050 --- +loc12=Marshfield KMFI WIZ035 --- +loc13=Milwaukee KMKE WIZ066 045 +loc14=Milwaukee-Timmerman KMWC WIZ066 045 +loc15=Minocqua KARV WIZ010 --- +loc16=Mosinee KCWA WIZ030 --- +loc17=Oshkosh KOSH WIZ048 --- +loc18=Phillips KPBH WIZ009 --- +loc19=Rhinelander KRHI WIZ010 --- +loc20=Sheboygan KSBM WIZ052 045 +loc21=Sturgeon\\ Bay KSUE WIZ022 --- +loc22=Superior KSUW WIZ001 --- +loc23=Volk\\ Field KVOK ------ --- +loc24=Waukesha KUES WIZ065 --- +loc25=Wausau KAUW WIZ030 --- +loc26=Wisconsin\\ Rapids KISW WIZ035 --- + + +[US_MA] +name=Massachusetts +loc0=Ashburnam K9B4 ------ --- +loc1=Ashfield K2B5 ------ --- +loc2=Bedford KBED MAZ005 --- +loc3=Beverly KBVY MAZ007 --- +loc4=Boston KBOS MAZ015 bos +loc5=Chatham KCQX MAZ022 bos +loc6=Chicopee\\ Falls KCEF ------ --- +loc7=Falmouth-Otis\\ AFB KFMH MAZ022 --- +loc8=Fitchburg KFIT ------ --- +loc9=Hyannis KHYA MAZ022 --- +loc10=Lawrence KLWM MAZ007 --- +loc11=Marthas\\ Vineyard KMVY MAZ023 --- +loc12=Nantucket KACK MAZ024 --- +loc13=New\\ Bedford KEWB MAZ017 --- +loc14=North\\ Adams K2B6 MAZ001 --- +loc15=Norwood KOWD MAZ013 --- +loc16=Orange KORE ------ --- +loc17=Plymouth KPYM MAZ018 --- +loc18=Provincetown KPVC ------ --- +loc19=Taunton K9B0 ------ --- +loc20=Westfield KBAF MAZ011 --- +loc21=Worcester KORH MAZ012 bos + +[US_NY] +name=New York +loc0=Albany KALB NYZ052 048 +loc1=Binghamton KBGM NYZ056 --- +loc2=Buffalo KBUF NYZ010 047 +loc3=Elmira KELM NYZ024 --- +loc4=Farmingdale KFRG NYZ077 --- +loc5=Fort\\ Drum KGTB NYZ007 --- +loc6=Glens\\ Falls KGFL NYZ042 --- +loc7=Griffiss\\ AFB KRME ------ --- +loc8=Islip KISP NYZ080 --- +loc9=Ithaca KITH NYZ025 048 +loc10=Jamestown KJHW NYZ019 047 +loc11=Massena KMSS NYZ026 --- +loc12=Montgomery KMGJ NYZ067 --- +loc13=Monticello KMSV NYZ062 --- +loc14=New\\ York-JFK\\ Arpt KJFK NYZ076 lga +loc15=New\\ York-La\\ Guardia KLGA NYZ076 lga +loc16=Newburgh KSWF NYZ067 --- +loc17=Niagara\\ Falls KIAG NYZ001 047 +loc18=Ogdensburg KOGS NYZ026 --- +loc19=Penn\\ Yan KPEO ------ --- +loc20=Plattsburg KPBG NYZ031 --- +loc21=Poughkeepsie KPOU NYZ065 --- +loc22=Rochester KROC NYZ003 047 +loc23=Saranac\\ Lake KSLK NYZ027 --- +loc24=Schenectady KSCH NYZ049 --- +loc25=Syracuse KSYR NYZ018 048 +loc26=Utica KUCA NYZ037 --- +loc27=Watertown KART NYZ007 --- +loc28=Westhampton KFOK NYZ080 --- +loc29=White\\ Plains KHPN NYZ070 --- + +[US_WA] +name=Washington +loc0=Bellingham KBLI WAZ002 --- +loc1=Bremerton KPWT WAZ010 --- +loc2=Burlington K75S WAZ005 --- +loc3=Colville K63S WAZ035 --- +loc4=Ephrata KEPH WAZ033 --- +loc5=Everett KPAE WAZ006 sea +loc6=Fairchild KSKA ------ --- +loc7=Fort\\ Lewis KGRF WAZ008 --- +loc8=Friday\\ Harbor KFHR WAZ001 --- +loc9=Hoquiam KHQM WAZ016 --- +loc10=Moses\\ Lake KMWH WAZ033 --- +loc11=Oak\\ Harbor K76S WAZ009 --- +loc12=Olympia KOLM WAZ008 sea +loc13=Omak K4OM WAZ038 --- +loc14=Pasco KPSC WAZ028 --- +loc15=Port\\ Angeles KCLM WAZ013 --- +loc16=Pullman KPUW WAZ032 --- +loc17=Quillayute KUIL ------ --- +loc18=Renton KRNT WAZ007 --- +loc19=Seattle KSEA WAZ007 sea +loc20=Seattle-Boeing KBFI WAZ007 sea +loc21=Shelton KSHN WAZ010 --- +loc22=Spokane KGEG WAZ034 002 +loc23=Spokane-Parkwater KSFF WAZ034 002 +loc24=Stampede\\ Pass KSMP ------ --- +loc25=Tacoma KTIW WAZ007 sea +loc26=Tacoma-Lakewood KTCM WAZ007 sea +loc27=Toledo KTDO WAZ020 --- +loc28=Walla\\ Walla KALW WAZ029 --- +loc29=Wenatchee KEAT WAZ038 --- +loc30=Whidbey\\ Island KNUW WAZ009 --- +loc31=Yakima KYKM WAZ025 --- + +[CA] +name=Canada +states=AB BC MB NB NF NS NT ON QC SK YK + +[CA_AB] +name=Alberta +loc0=Calgary CYYC ------ --- +loc1=Edmonton CYEG ------ --- +loc2=Edmonton/Villeneuve CZVL ------ --- + +[CA_BC] +name=British Columbia +loc0=Abbotsford CYXX ------ --- +loc1=Comox CYQQ ------ --- +loc2=Port\\ Hardy CYZT ------ --- +loc3=Smithers CYYD ------ --- +loc4=Vancouver CYVR ------ --- +loc5=Victoria CYYJ ------ --- + +[CA_MB] +name=Manitoba +loc0=Churchill CYYQ ------ --- +loc1=Winnipeg CYWG ------ --- + +[CA_NB] +name=New Brunswick +loc0=Chatham CYCH ------ --- +loc1=Fredericton CYFC ------ --- +loc2=Moncton CYQM ------ --- +loc3=Saint\\ John CYSJ ------ --- + +[CA_NF] +name=Newfoundland +loc0=Churchill\\ Falls KZUM ------ --- +loc1=Gander CYQX ------ --- +loc2=Goose\\ Bay CYYR ------ --- +loc3=Saint\\ Anthony CYAY ------ --- +loc4=St.\\ John's CYYT ------ --- +loc5=Stephenville CYJT ------ --- + +[CA_NS] +name=Nova Scotia +loc0=Greenwood CYZX ------ --- +loc1=Halifax CYHZ ------ --- +loc2=Shearwater CYAW ------ --- +loc3=Sydney CYQY ------ --- + +[CA_NT] +name=Northwest Territories +loc0=Iqaluit CYFB ------ --- +loc1=Yellowknife CYZF ------ --- + +[CA_ON] +name=Ontario +loc0=Ottawa CYOW ------ --- +loc1=Toronto CYYZ ------ 047 +loc2=Trenton CYTR ------ --- +loc3=Windsor CYQG ------ --- + +[CA_QC] +name=Quebec +loc0=Bagotville CYBG ------ --- +loc1=Gatineau CYND ------ --- +loc2=La\\ Grande CYGL ------ --- +loc3=Montreal\\ Saint-Hubert CYHU ------ --- +loc4=Montreal\\ Mirabel CYMX ------ --- +loc5=Montreal\\ Dorval CYUL ------ --- +loc6=Quebec\\ City CYQB ------ --- +loc7=Sept-Iles CYZV ------ --- + +[CA_SK] +name=Saskatchewan +loc0=Nipawin CYBU ------ --- +loc1=Regina CYQR ------ --- +loc2=Saskatoon CYXE ------ --- +loc3=Swift\\ Current CYYN ------ --- + +[CA_YK] +name=Yukon +loc0=Shingle\\ Point CYUA ------ --- + +[MX] +name=Mexico +states=MX + +[MX_MX] +name=Mexico +loc0=Acapulco MMAA ------ --- +loc1=Aeropuerto\\ del\\ Norte MMAN ------ --- +loc2=Aguascaliantes MMAS ------ --- +loc3=Bahias\\ de\\ Huatulco MMBT ------ --- +loc4=Campeche MMCP ------ --- +loc5=Cancun MMUN ------ --- +loc6=Chetumal MMCM ------ --- +loc7=Chihuahua MMCU ------ --- +loc8=Ciudad\\ del\\ Carmen MMCE ------ --- +loc9=Ciudad\\ Juarez MMCS ------ --- +loc10=Ciudad\\ Obregon MMCN ------ --- +loc11=Ciudad\\ Victoria MMCV ------ --- +loc12=Colima MMIA ------ --- +loc13=Cozumel MMCZ ------ --- +loc14=Cuernavaca MMCB ------ --- +loc15=Culiacan MMCL ------ --- +loc16=Del\\ Bajio MMLO ------ --- +loc17=Durango MMDO ------ --- +loc18=Guadalajara MMGL ------ --- +loc19=Guaymas MMGM ------ --- +loc20=Hermosillo MMHO ------ --- +loc21=Ixtapa MMZH ------ --- +loc22=La\\ Paz MMLP ------ --- +loc23=Los\\ Mochis MMLM ------ --- +loc24=Manzanillo MMZO ------ --- +loc25=Matamoros MMMA ------ --- +loc26=Mazatlan MMMZ ------ --- +loc27=Merida MMMD ------ --- +loc28=Mexicali MMML ------ --- +loc29=Mexico MMMX ------ --- +loc30=Minatitlan MMMT ------ --- +loc31=Monclova MMMV ------ --- +loc32=Morelia MMMM ------ --- +loc33=Monterrey MMMY ------ --- +loc34=Nuevo\\ Laredo MMNL ------ --- +loc35=Oaxaca MMOX ------ --- +loc36=Piedras\\ Negras MMPG ------ --- +loc37=Poza\\ Rica MMPA ------ --- +loc38=Puebla MMPB ------ --- +loc39=Puerto\\ Vallarta MMPR ------ --- +loc40=Puerto\\ Escondido MMPS ------ --- +loc41=Queretaro MMQT ------ --- +loc42=Reynosa MMRX ------ --- +loc43=Saltillo MMIO ------ --- +loc44=San\\ Jose\\ del\\ Cabo MMSD ------ --- +loc45=San\\ Luis\\ Potosi MMSP ------ --- +loc46=Tampico MMTM ------ --- +loc47=Tapachula MMTP ------ --- +loc48=Tepic MMEP ------ --- +loc49=Tijuana MMTJ ------ --- +loc50=Toluca MMTO ------ --- +loc51=Torreon MMTC ------ --- +loc52=Tulancingo MMTL ------ --- +loc53=Tuxtla\\ Gutierrez MMTG ------ --- +loc54=Uruapan MMPN ------ --- +loc55=Veracruz MMVR ------ --- +loc56=Villahermosa MMVA ------ --- +loc57=Zacatecas MMZC ------ --- + +[EU] +name=Europe +states=AB OS BE BA BY BG CZ HR CY DK EE FI FR MK DE GI GR HU IE IS IT LV LT LU MT MD NL NO PL PT RO RU SK SI SP SE CH TR UA UK YU + +[EU_AB] +name=Albania +loc0=Tirana LATI ------ --- + +[EU_OS] +name=Austria +loc0=Niederösterreich\\ Flugplatz\\ Vöslau LOAV ------ --- +loc1=Hohenems-Dornbirn LOIH ------ --- +loc2=Graz-Thalerhof-Flughafen LOWG ------ --- +loc3=Innsbruck-Flughafen LOWI ------ --- +loc4=Klagenfurt-Flughafen LOWK ------ --- +loc5=Linz\\ /\\ Hörsching-Flughafen LOWL ------ --- +loc6=Salzburg-Flughafen LOWS ------ --- +loc7=Wien\\ /\\ Schwechat-Flughafen LOWW ------ --- +loc8=Zell\\ Am\\ See LOWZ ------ --- +loc9=Aigen\\ Im\\ Ennstal LOXA ------ --- +loc10=Krems-Langenlois LOAG ------ --- +loc11=Niederösterreich\\ /\\ Wiener\\ Neustadt-Ost\\ Flugplatz LOAN ------ --- +loc12=Punitz-Güssing LOGG ------ --- +loc13=Oberösterreich\\ /\\ Freistadt\\ Flugplatz LOLF ------ --- +#loc14=Wels LOLW ------ --- +#loc15=Hörsching\\ Aus-Afb LOXL ------ --- +#loc16=Schwaz\\ Heliport LOXS ------ --- +loc17=Tulln LOXT ------ --- +loc18=Zeltweg LOXZ ------ --- + +[EU_BE] +name=Belgium +loc0=Antwerpen/Deurne EBAW ------ --- +loc1=Beauvechain EBBE ------ --- +loc2=Brasschaat EBBT ------ --- +loc3=Brussels-National\\ Airport EBBR ------ --- +loc4=Charleroi-Brussels\\ South EBCI ------ --- +loc5=Chievres EBCV ------ --- +loc6=Elsenborn EBLB ------ --- +loc7=Florennes EBFS ------ --- +loc8=Goetsenhoven EBTN ------ --- +loc9=Kleine\\ Brogel EBBL ------ --- +loc10=Koksijde EBFN ------ --- +loc11=Liege EBLG ------ --- +loc12=Oostende EBOS ------ --- +loc13=Schaffen EBDT ------ --- +loc14=Spa/La\\ Sauveniere EBSP ------ --- + +[EU_BA] +name=Bosnia-Herzegovina +loc0=Sarajevo LQSA ------ --- + +[EU_BG] +name=Bulgaria +loc0=Burgas LBBG ------ --- +loc1=Plovdiv LBPD ------ --- +loc2=Sofia LBSF ------ --- +loc3=Varna LBWN ------ --- + +[EU_BY] +name=Belarus +loc0=Brest UMBB ------ --- +loc1=Gomel UMGG ------ --- +loc2=Grodno UMMG ------ --- +loc3=Minsk UMMS ------ --- +loc4=Minsk-International/Loszica UMMM ------ --- +loc5=Vitebsk UMII ------ --- + +[EU_CZ] +name=Czech Republic +loc0=Brno LKTB ------ --- +loc1=Ostrava LKMT ------ --- +loc2=Praha LKPR ------ --- + +[EU_HR] +name=Croatia +loc0=Dubrovnik LDDU ------ --- +loc1=Pula LDPL ------ --- +loc2=Rijeka LDRI ------ --- +loc3=Split LDSP ------ --- +loc4=Zadar LDZD ------ --- +loc5=Zagreb LDZA ------ --- + +[EU_DK] +name=Denmark +loc0=Aarhus EKAH ------ --- +loc1=Billund EKBI ------ --- +loc2=Esbjerg EKEB ------ --- +loc3=Karup EKKA ------ --- +loc4=Kobenhavn/Kastrup EKCH ------ --- +loc5=Kobenhavn/Roskilde EKRK ------ --- +loc6=Lolland\\ Falster EKMB ------ --- +loc7=Odense EKOD ------ --- +loc8=Bornholm EKRN ------ --- +loc9=Sonderborg EKSB ------ --- +loc10=Sindal EKSN ------ --- +loc11=Vojens/Skrydstrup EKSP ------ --- +loc12=Skive EKSV ------ --- +loc13=Thisted EKTS ------ --- +loc14=Vandel EKVA ------ --- +loc15=Kolding/Vandrup EKVD ------ --- +loc16=Vagar EKVG ------ --- +loc17=Stauning EKVJ ------ --- +loc18=Vaerlose EKVL ------ --- +loc19=Alborg EKYT ------ --- + +[EU_EE] +name=Estonia +loc0=Tallinn EETN ------ --- + +[EU_GI] +name=Gibraltar +loc0=Gibraltar LXGB ------ --- + +[EU_IS] +name=Iceland +loc0=Egilsstadir BIEG ------ --- +loc1=Keflavik BIKF ------ --- +loc2=Reykjavik BIRK ------ --- + +[EU_LV] +name=Latvia +loc0=Riga EVRA ------ --- +loc1=Liepaja\\ International\\ Airport EVLA ------ --- + +[EU_LT] +name=Lithuania +loc0=Vilnius EYVI ------ --- +loc1=Kaunas EYKA ------ --- +loc2=Siauliai EYSA ------ --- +loc3=Palanga EYPA ------ --- + +[EU_LU] +name=Luxembourg +loc0=Luxembourg ELLX ------ --- + +[EU_MK] +name=FYR Macedonia +loc0=Ohrid LWOH ------ --- +loc1=Skopje LWSK ------ --- + +[EU_MT] +name=Malta +loc0=Luqa LMML ------ --- + +[EU_MD] +name=Moldova +loc0=Kishineu LUKK ------ --- + +[EU_NO] +name=Norway +loc0=Alesund ENAL ------ --- +loc1=Andoya ENAN ------ --- +loc2=Alta ENAT ------ --- +loc3=Forde/Bringeland ENBL ------ --- +loc4=Bronnoysund ENBN ------ --- +loc5=Bodo ENBO ------ --- +loc6=Bergen ENBR ------ --- +loc7=Berlevag ENBV ------ --- +loc8=Kristiansand/Kjevik ENCN ------ --- +loc9=Dagali ENDI ------ --- +loc10=Bardufoss ENDU ------ --- +loc11=Ekofisk ENEK ------ --- +loc12=Harstad/Narvik/Evenes ENEV ------ --- +loc13=Fagernes ENFG ------ --- +loc14=Floro ENFL ------ --- +loc15=Frigg ENFR ------ --- +loc16=Gullfax\\ C ENGC ------ --- +loc17=Oslo/Gardermoen ENGM ------ --- +loc18=Haugesund ENHD ------ --- +loc19=Hammerfest ENHF ------ --- +loc20=Honningsvag ENHV ------ --- +loc21=Kristiansund/Kvernberget ENKB ------ --- +loc22=Kirkenes ENKR ------ --- +loc23=Lista ENLI ------ --- +loc24=Leknes ENLK ------ --- +loc25=Mehamn ENMH ------ --- +loc26=Molde ENML ------ --- +loc27=Mosjoen ENMS ------ --- +loc28=Banak ENNA ------ --- +loc29=Narvik ENNK ------ --- +loc30=Namsos ENNM ------ --- +loc31=Notodden ENNO ------ --- +loc32=Oseberg\\ A ENOA ------ --- +loc33=Orland ENOL ------ --- +loc34=Orsta-Volda ENOV ------ --- +loc35=Mo\\ I\\ Rana ENRA ------ --- +loc36=Rorvik/Ryum ENRM ------ --- +loc37=Roros ENRO ------ --- +loc38=Rost ENRS ------ --- +loc39=Rygge ENRY ------ --- +loc40=Svalbard ENSB ------ --- +loc41=Sandane ENSD ------ --- +loc42=Sogndal ENSG ------ --- +loc43=Svolvaer/Helle ENSH ------ --- +loc44=Stokmarknes/Skagen ENSK ------ --- +loc45=Skien/Geiteryggen ENSN ------ --- +loc46=Stord/Sorstokken ENSO ------ --- +loc47=Sorkjosen ENSR ------ --- +loc48=Sandnessjoen/Stokka ENST ------ --- +loc49=Tromso/Langnes ENTC ------ --- +loc50=Torp ENTO ------ --- +loc51=Trondheim/Vaernes ENVA ------ --- +loc52=Vadso ENVD ------ --- +loc53=Stavanger/Sola ENZV ------ --- + +[EU_PL] +name=Poland +loc0=Gdansk EPGD ------ --- +loc1=Krakow EPKK ------ --- +loc2=Katowice EPKT ------ --- +loc3=Poznan EPPO ------ --- +loc4=Rzeszow EPRZ ------ --- +loc5=Szczecin EPSC ------ --- +loc6=Warszawa EPWA ------ --- +loc7=Wroclaw EPWR ------ --- + +[EU_PT] +name=Portugal +loc0=Beja LPBJ ------ --- +loc1=Faro LPFR ------ --- +#loc2=Funchal LPFU ------ --- +loc3=Lajes LPLA ------ --- +loc4=Lisboa LPPT ------ --- +loc5=Porto\\ /\\ Pedras\\ Rubras LPPR ------ --- +loc6=Porto\\ Santo LPPS ------ --- +loc7=Santa\\ Maria\\ Acores LPAZ ------ --- +loc8=Aeroporto\\ Da\\ Madeira LPMA ------ --- +loc9=Monte\\ Real\\ Mil. LPMR ------ --- +loc10=Montijo\\ Mil. LPMT ------ --- +#loc11=Braganca LPBG ------ --- +loc12=Flores\\ Acores LPFL ------ --- +loc13=Horta\\ /\\ Castelo\\ Branco\\ Acores LPHR ------ --- +#loc14=Ovar\\ Mil. LPOV ------ --- +loc15=Ponta\\ Delgada\\ /\\ Nordela\\ Acores LPPD ------ --- +loc16=Sintra\\ Mil. LPST ------ --- +#loc17=Tancos\\ Mil. LPTN ------ --- +#loc18=Vila\\ Real LPVR ------ --- + +[EU_RO] +name=Romania +loc0=Arad LRAR ------ --- +loc1=Bucuresti LRBS ------ --- +loc2=Bucuresti-Otopeni LROP ------ --- +loc3=Iasi LRIA ------ --- +loc4=Kogalniceanu LRCK ------ --- +loc5=Timisoara LRTR ------ --- +loc6=Tirgu\\ Mures LRTM ------ --- +loc7=Tulcea LRTC ------ --- + +[EU_RU] +name=Russia +loc0=Abakan UNAA ------ --- +loc1=Anadyr UHMA ------ --- +loc2=Anapa URKA ------ --- +loc3=Arkhangelsk ULAA ------ --- +loc4=Astrakhan URWA ------ --- +loc5=Barnaul UNBB ------ --- +loc6=Belgorod UUOB ------ --- +loc7=Blagoveschensk UHBB ------ --- +loc8=Bratsk UIBB ------ --- +loc9=Bryansk UUBP ------ --- +loc10=Cheboksary UWKS ------ --- +loc11=Chelyabinsk USCC ------ --- +loc12=Chita UIAA ------ --- +loc13=Kliningrad UMKK ------ --- +loc14=Kazan UWKD ------ --- +loc15=Khabarovsk UHHH ------ --- +loc16=Kogalym USRK ------ --- +loc17=Krasnodar URKK ------ --- +loc18=Krasnoyarsk UNKL ------ --- +loc19=Magadan UHMM ------ --- +loc20=Makhachkala URML ------ --- +loc21=Mineralnye\\ Vody URMM ------ --- +loc22=Moscow\\ Domodedovo UUDD ------ --- +loc23=Moscow\\ Sheremetyevo UUEE ------ --- +loc24=Murmansk ULMM ------ --- +loc25=Nalchik URMN ------ --- +loc26=Nizhny\\ Novgorod UWGG ------ --- +loc27=Novosibirsk UNNT ------ --- +loc28=Omsk UNOO ------ --- +loc29=Orenburg UWOO ------ --- +loc30=Perm USPP ------ --- +loc31=Petropavlovsk-Kamchatsky UHPP ------ --- +loc32=Petrozavodsk ULPB ------ --- +loc33=Pskov ULOO ------ --- +loc34=Raduzhny USNR ------ --- +loc35=Rostov-Na-Donu URRR ------ --- +loc36=Samara UWWW ------ --- +loc37=Sankt-Peterburg ULLI ------ --- +loc38=Saratov UWSS ------ --- +loc39=Sochi URSS ------ --- +loc40=Stavropol URMT ------ --- +loc41=Syktyvkar UUYY ------ --- +loc42=Tyumen USTR ------ --- +loc43=Ufa UWUU ------ --- +loc44=Ulan-Ude UIUU ------ --- +loc45=Ulyanovsk UWLW ------ --- +loc46=Vladikavkaz URMO ------ --- +loc47=Vladivostok UHWW ------ --- +loc48=Volgograd URWW ------ --- +loc49=Voronezh UUOO ------ --- +loc50=Yakutsk UEEE ------ --- +loc51=Yekaterinburg USSS ------ --- +loc52=Yuzhno-Sakhalinsk UHSS ------ --- + +[EU_UA] +name=Ukraine +loc0=Dnipropetrovsk UKDD ------ --- +loc1=Donetsk UKCC ------ --- +loc2=Ivano-Frankivsk UKLI ------ --- +loc3=Kharkiv UKHH ------ --- +loc4=Kyiv/Boryspil UKBB ------ --- +loc5=Kyiv/Zhulyany UKKK ------ --- +loc6=Kryviy\\ Rig/Lozovatka UKDR ------ --- +loc7=Lviv UKLL ------ --- +loc8=Odesa UKOO ------ --- +loc9=Rivne UKLR ------ --- +loc10=Sympheropol UKFF ------ --- +loc11=Uzhgorod UKLU ------ --- + +[EU_SK] +name=Slovakia +loc0=Bratislava LZIB ------ --- +loc1=Poprad LZTT ------ --- + +[EU_SI] +name=Slovenia +loc0=Ljubljana LJLJ ------ --- +loc1=Maribor LJMB ------ --- +loc2=Portoroz LJPZ ------ --- + +[EU_SE] +name=Sweden +loc0=Borlange ESSD ------ -- +loc1=Gavle\\ Sandviken ESSK ------ -- +loc2=Gallivare ESNG ------ -- +loc3=Goteborg\\ (Landvetter) ESGG ------ -- +loc4=Goteborg\\ (Save) ESGP ------ -- +loc5=Hagshult ESMV ------ -- +loc6=Halmstad\\ (Swedish\\ Air\\ Force\\ Base) ESMT ------ -- +loc7=Hultsfred\\ (Swedish\\ Air\\ Force\\ Base) ESSF ------ -- +loc8=Jonkoping ESGJ ------ --- +loc9=Kiruna ESNQ ------ --- +loc10=Linkoping\\ (Malmen) ESCF ------ -- +loc11=Linkoping\\ (Saab) ESSL ------ -- +loc12=Lulea\\ (Kallax) ESPA ------ -- +loc13=Malmo\\ (Sturup) ESMS ------ -- +loc14=Norrkoping ESSP ------ --- +loc15=Ronneby ESDF ------ --- +loc16=Stockholm\\ (Arlanda) ESSA ------ -- +loc17=Stockholm\\ (Bromma) ESSB ------ -- +loc18=Sundsvall-Harnosand ESNN ------ -- +loc19=Umea ESNU ------ --- +loc20=Vasteras ESOW ------ --- +loc21=Vaxjo ESMX ------ --- +loc22=Visby ESSV ------ -- +loc23=Angelholm ESDB ------ -- +loc24=Ornskoldsvik ESNO ------ -- +loc25=Ostersund\\ (Froson) ESPC ------ -- + +[EU_CH] +name=Switzerland +loc0=Bern LSZB ------ --- +loc1=Geneve LSGG ------ --- +loc2=Lugano LSZA ------ --- +loc3=Zurich LSZH ------ --- + +[EU_TR] +name=Turkey +loc0=Adana LTAF ------ --- +loc1=Adana/Incirlik LTAG ------ --- +loc2=Afyon LTAH ------ --- +loc3=Amasya LTAP ------ --- +loc4=Ankara/Esenboga LTAC ------ --- +loc5=Ankara/Etimesgut LTAD ------ --- +loc6=Antalya LTAI ------ --- +loc7=Balikesir LTBF ------ --- +loc8=Balikesir/Bandirma LTBG ------ --- +loc9=Batman LTCJ ------ --- +loc10=Bursa LTBE ------ --- +loc11=Diyarbakir LTCC ------ --- +loc12=Elazig LTCA ------ --- +loc13=Erzurum LTCE ------ --- +loc14=Eskisehir LTBI ------ --- +loc15=Gaziantep LTAJ ------ --- +loc16=Istanbul LTBA ------ --- +loc17=Izmir/Adnan\\ Menderes LTBJ ------ --- +loc18=Izmir/Cigli LTBL ------ --- +loc19=Izmit LTBQ ------ --- +loc20=Kayseri LTAU ------ --- +loc21=Konya LTAN ------ --- +loc22=Malatya LTAT ------ --- +loc23=Manisa LTBT ------ --- +loc24=Mugla/Dalaman LTBS ------ --- +loc25=Mus LTCK ------ --- +loc26=Samsun LTAQ ------ --- +loc27=Sanliurfa LTCH ------ --- +loc28=Sivas LTAR ------ --- +loc29=Sivrihisar LTAV ------ --- +loc30=Trabzon LTCG ------ --- +loc31=Van LTCI ------ --- + +[EU_CY] +name=Cyprus +loc0=Akrotiri LCRA ------ --- +loc1=Ercan LCEN ------ --- +loc2=Larnaka LCLK ------ --- +loc3=Paphos LCPH ------ --- + +[EU_FI] +name=Finland +loc0=Helsinki-Malmi EFHF ------ --- +loc1=Helsinki-Vantaa EFHK ------ --- +loc2=Ivalo EFIV ------ --- +loc3=Jyvaskyla EFJY ------ --- +loc4=Kemi EFKE ------ --- +loc5=Kruunupyy EFKK ------ --- +loc6=Kuopio EFKU ------ --- +loc7=Mariehamn EFMA ------ --- +loc8=Oulu EFOU ------ --- +loc9=Pori EFPO ------ --- +loc10=Rovaniemi EFRO ------ --- +loc11=Tampere EFTP ------ --- +loc12=Turku EFTU ------ --- +loc13=Vaasa EFVA ------ --- + +[EU_FR] +name=France +loc0=Agen LFBA ------ --- +loc1=Ajaccio/Campo\\ dell'Oro LFKJ ------ --- +loc2=Bale-Mulhouse LFSB ------ --- +loc3=Bastia LFKB ------ --- +loc4=Beauvais-Tille LFOB ------ --- +loc5=Biarritz-Bayonne LFBZ ------ --- +loc6=Bordeaux LFBD ------ --- +loc7=Bourges LFLD ------ --- +loc8=Brest LFRB ------ --- +loc9=Caen-Carpiquet LFRK ------ --- +loc10=Calvi-Ste-Catherine LFKC ------ --- +loc11=Cannes-Mandelieu LFMD ------ --- +loc12=Cazaux LFBC ------ --- +loc13=Chambery LFLB ------ --- +loc14=Cherbourg LFRC ------ --- +loc15=Clermont-Ferrand LFLC ------ --- +loc16=Colmar-Meyenheim LFSC ------ --- +loc17=Deauville-Saint-Gatien LFRG ------ --- +loc18=Dijon LFSD ------ --- +loc19=Dinard LFRD ------ --- +loc20=Dole LFGJ ------ --- +loc21=Evreux-Fauville LFOE ------ --- +loc22=Figari LFKF ------ --- +loc23=Grenoble-Saint-Geoirs LFLS ------ --- +loc24=Hyeres-Le\\ Palyvestre LFTH ------ --- +loc25=Lannion LFRO ------ --- +loc26=Le\\ Havre-Octeville LFOH ------ --- +loc27=Le\\ Mans LFRM ------ --- +loc28=Le\\ Touquet LFAT ------ --- +loc29=Lille-Lesquin LFQQ ------ --- +loc30=Limoges LFBL ------ --- +loc31=Lorient-Lann-Bihoue LFRH ------ --- +loc32=Lyon-Bron LFLY ------ --- +loc33=Lyon-Satolas LFLL ------ --- +loc34=Luxeuil LFSX ------ --- +loc35=Marseille-Provence LFML ------ --- +loc36=Metz-Frescaty LFSF ------ --- +loc37=Monpellier-Mediterrannee LFMT ------ --- +loc38=Mont-de-Marsan LFBM ------ --- +loc39=Nancy-Essey LFSN ------ --- +loc40=Nancy-Ochey LFSO ------ --- +loc41=Nantes\\ Atlantique LFRS ------ --- +loc42=Nice-Côte\\ d'Azur LFMN ------ --- +loc43=Nimes-Garons LFTW ------ --- +loc44=Paris/Charles\\ De\\ Gaulle LFPG ------ --- +loc45=Paris/Le\\ Bourget LFPB ------ --- +loc46=Paris/Orly LFPO ------ --- +loc47=Pau/Pyrenees LFBP ------ --- +loc48=Perpignan-Rivesaltes LFMP ------ --- +loc49=Poitiers LFBI ------ --- +loc50=Quimper LFRQ ------ --- +loc51=Reims-Champagne LFSR ------ --- +loc52=Rennes LFRN ------ --- +loc53=Rouen-Valle\\ de\\ Seine LFOP ------ --- +loc54=Saint-Brieuc-Armor LFRT ------ --- +loc55=Saint-Dizier-Robinson LFSI ------ --- +loc56=Saint-Etienne-Boutheon LFMH ------ --- +loc57=Saint-Nazaire-Montoir LFRZ ------ --- +loc58=Strasbourg LFST ------ --- +loc59=Tarbes LFBT ------ --- +loc60=Toul-Rosieres LFSL ------ --- +loc61=Toulouse LFBO ------ --- +loc62=Tours-St-Symphorien LFOT ------ --- +loc63=Toussus-Le\\ Noble LFPN ------ --- +loc64=Troyes/Barberey LFQB ------ --- +loc65=Vichy-Charmeil LFLV ------ --- +loc66=Villacoublay LFPV ------ --- + +[EU_DE] +name=Germany +loc0=Augsburg EDMA ------ --- +loc1=Bayreuth EDQD ------ --- +loc2=Berlin-Tegel EDDT ------ --- +loc3=Berlin-Tempelhof EDDI ------ --- +loc4=Braunschweig EDVE ------ --- +loc5=Bremen EDDW ------ --- +loc6=Dortmund-Wickede EDLW ------ --- +loc7=Dusseldorf EDDL ------ --- +loc8=Frankfurt/Main EDDF ------ --- +loc9=Friedrichshafen EDNY ------ --- +loc10=Hamburg EDDH ------ --- +loc11=Hamburg-Finkenwerder EDHI ------ --- +loc12=Hannover EDDV ------ --- +loc13=Hof EDQM ------ --- +loc14=Kassel-Calden EDVK ------ --- +loc15=Koln/Bonn EDDK ------ --- +loc16=Lubeck-Blankensee EDHL ------ --- +loc17=Monchengladbach EDLN ------ --- +loc18=Munchen EDDM ------ --- +loc19=Munster/Osnabruck EDDG ------ --- +loc20=Nurnberg EDDN ------ --- +loc21=Oberpfaffenhofen EDMO ------ --- +loc22=Paderborn-Haxterberg EDLP ------ --- +loc23=Saarbrucken EDDR ------ --- +loc24=Stuttgart EDDS ------ --- +loc25=Westerland EDXW ------ --- +loc26=Dresden-Klotzsche EDDC ------ --- +loc27=Leipzig-Schkeuditz EDDP ------ --- +loc28=Karlsruhe EDSB ------ --- + + +[EU_GR] +name=Greece +loc0=Andravida LGAD ------ --- +loc1=Alexandroupolis LGAL ------ --- +loc2=Araxos LGRX ------ --- +loc3=Athinai LGAT ------ --- +loc4=Chania LGSA ------ --- +loc5=Elefsis LGEL ------ --- +loc6=Iraklion LGIR ------ --- +loc7=Kalamata LGKL ------ --- +loc8=Kavala LGKV ------ --- +loc9=Kefallinia LGKF ------ --- +loc10=Kerkira LGKR ------ --- +loc11=Kos LGKO ------ --- +loc12=Kozani LGKZ ------ --- +loc13=Limnos LGLM ------ --- +loc14=Mitilini LGMT ------ --- +loc15=Mykonos LGMK ------ --- +loc16=Preveza LGPZ ------ --- +loc17=Rodos LGRP ------ --- +loc18=Samos LGSM ------ --- +loc19=Santorini LGSR ------ --- +loc20=Skiathos LGSK ------ --- +loc21=Thessaloniki LGTS ------ --- +loc22=Zakinthos LGZA ------ --- + +[EU_HU] +name=Hungary +loc0=Budapest LHBP ------ --- +loc1=Papa LHPA ------ --- +loc2=Szombathely LHSY ------ --- + +[EU_IE] +name=Ireland +loc0=Connaught EIKN ------ --- +loc1=Cork EICK ------ --- +loc2=Dublin EIDW ------ --- +loc3=Shannon EINN ------ --- + +[EU_IT] +name=Italy +loc0=Albenga LIMG ------ --- +loc1=Alghero LIEA ------ --- +loc2=Amendola LIBA ------ --- +loc3=Ancona LIPY ------ --- +loc4=Aviano LIPA ------ --- +loc5=Bari LIBD ------ --- +loc6=Bergamo LIME ------ --- +loc7=Bologna LIPE ------ --- +loc8=Bolzano LIPB ------ --- +loc9=Brindisi LIBR ------ --- +loc10=Cagliari LIEE ------ --- +loc11=Capo\\ Mele LIMU ------ --- +loc12=Catania LICC ------ --- +loc13=Cervia LIPC ------ --- +loc14=Crotone LIBC ------ --- +loc15=Dobbiaco LIVD ------ --- +loc16=Decimomannu LIED ------ --- +loc17=Ferrara LIPF ------ --- +loc18=Firenze LIRQ ------ --- +loc19=Forli LIPK ------ --- +loc20=Frontone LIVF ------ --- +loc21=Frosinone LIRH ------ --- +loc22=Genova LIMJ ------ --- +loc23=Ghedi LIPL ------ --- +loc24=Gioia\\ del\\ Colle LIBV ------ --- +loc25=Grosseto LIRS ------ --- +loc26=Guidonia LIRG ------ --- +loc27=Lamezia LICA ------ --- +loc28=Lampedusa LICD ------ --- +loc29=Latina LIRL ------ --- +loc30=Lecce LIBN ------ --- +loc31=Marino\\ di\\ Ravenna LIVM ------ --- +loc32=Milano/Linate LIML ------ --- +loc33=Milano/Malpensa LIMC ------ --- +loc34=Monte\\ Argentario LIQO ------ --- +loc35=Monte\\ Bisbino LIMO ------ --- +loc36=Monte\\ Calamita LIRX ------ --- +loc37=Monte\\ Cimone LIVC ------ --- +loc38=Monte\\ Malanotte LIMY ------ --- +loc39=Monte\\ Scuro LIBQ ------ --- +loc40=Monte\\ Terminillo LIRK ------ --- +loc41=Napoli LIRN ------ --- +loc42=Novara/Cameri LIMN ------ --- +loc43=Olbia LIEO ------ --- +loc44=Padova LIPU ------ --- +loc45=Paganella LIVP ------ --- +loc46=Palermo LICJ ------ --- +loc47=Pantelleria LICG ------ --- +loc48=Passo\\ della\\ Cisa LIMT ------ --- +loc49=Passo\\ dei\\ Giovi LIMV ------ --- +loc50=Passo\\ Resia LIVE ------ --- +loc51=Passo\\ Rolle LIVR ------ --- +loc52=Perugia LIRZ ------ --- +loc53=Pescara LIBP ------ --- +loc54=Piacenza LIMS ------ --- +loc55=Pian\\ Rosa LIMH ------ --- +loc56=Pisa LIRP ------ --- +loc57=Pratica\\ di\\ Mare LIRE ------ --- +loc58=Reggio\\ Calabria LICR ------ --- +loc59=Rieti LIQN ------ --- +loc60=Rimini LIPR ------ --- +loc61=Rivolto LIPI ------ --- +loc62=Roma/Ciampino LIRA ------ --- +loc63=Roma/Fiumicino LIRF ------ --- +loc64=Roma/Urbe LIRU ------ --- +loc65=Ronchi\\ de'\\ Legionari LIPQ ------ --- +loc66=Sarzana LIQW ------ --- +loc67=Sigonella LICZ ------ --- +loc68=Taranto LIBG ------ --- +loc69=Tarvisio LIVO ------ --- +loc70=Trapani LICT ------ --- +loc71=Torino/Bric\\ Della\\ Croce LIMK ------ --- +loc72=Torino/Caselle LIMF ------ --- +loc73=Trevico LIRT ------ --- +loc74=Treviso/S.Angelo LIPH ------ --- +loc75=Treviso/Istrana LIPS ------ --- +loc76=Trieste LIVT ------ --- +loc77=Venezia LIPZ ------ --- +loc78=Vicenza LIPT ------ --- +loc79=Villafranca LIPX ------ --- +loc80=Viterbo LIRV ------ --- + +[EU_NL] +name=Netherlands +loc0=Amsterdam EHAM ------ --- +loc1=Deelen EHDL ------ --- +loc2=Den\\ Helder/De\\ Kooy EHKD ------ --- +loc3=Eindhoven EHEH ------ --- +loc4=Gilze-Rijen EHGR ------ --- +loc5=Groningen EHGG ------ --- +loc6=Leeuwarden EHLW ------ --- +loc7=Maastricht EHBK ------ --- +loc8=Rotterdam EHRD ------ --- +loc9=Twenthe EHTW ------ --- +loc10=Utrecht/Soesterberg EHSB ------ --- +loc11=Valkenburg EHVB ------ --- +loc12=Vlieland EHVL ------ --- +loc13=Volkel EHVK ------ --- +loc14=Woensdrecht EHWO ------ --- + +[EU_SP] +name=Spain +loc0=Alicante LEAL ------ --- +loc1=Almeria LEAM ------ --- +loc2=Asturias LEAS ------ --- +loc3=Barcelona LEBL ------ --- +loc4=Bilbao LEBB ------ --- +loc5=Canarias/Fuerteventura GCFV ------ --- +loc6=Canarias/Gran\\ Canaria GCLP ------ --- +loc7=Canarias/Hierro GCHI ------ --- +loc8=Canarias/La\\ Palma GCLA ------ --- +loc9=Canarias/Lanzarote GCRR ------ --- +loc10=Canarias/Tenerife\\ Sur GCTS ------ --- +loc11=Canarias/Tenerife\\ Norte GCXO ------ --- +loc12=Girona LEGE ------ --- +loc13=Granada LEGR ------ --- +loc14=Ibiza LEIB ------ --- +loc15=Jerez LEJR ------ --- +loc16=La\\ Coruna LECO ------ --- +loc17=Madrid\\ (Barajas) LEMD ------ --- +loc18=Madrid\\ (Cuatro\\ Vientos) LEVS ------ --- +loc19=Malaga LEMG ------ --- +loc20=Melilla GEML ------ --- +loc21=Menorca LEMH ------ --- +loc22=Murcia LELC ------ --- +loc23=Palma\\ de\\ Mallorca LEPA ------ --- +loc24=Pamplona LEPP ------ --- +loc25=Reus LERS ------ --- +loc26=San\\ Sebastian LESO ------ --- +loc27=Santander LEXJ ------ --- +loc28=Santiago LEST ------ --- +loc29=Sevilla LEZL ------ --- +loc30=Valencia LEVC ------ --- +loc31=Vigo LEVX ------ --- +loc32=Vitoria LEVT ------ --- +loc33=Zaragoza LEZG ------ --- +loc34=Valladolid LEVD ------ --- +loc35=Albacete\\ /\\ Los\\ Llanos LEAB ------ --- + +[EU_UK] +name=United Kingdom +loc0=Aberdeen EGPD :RQPMS --- +loc1=Alderney EGJA ------ --- +loc2=Belfast/Aldergrove EGAA :AAPMS --- +loc3=Belfast/Harbour EGAC :AAPMS --- +loc4=Benbecula EGPL :RAPMS --- +loc5=Biggin\\ Hill EGKB :RBPMS --- +loc6=Birmingham EGBB :BBPMS --- +loc7=Blackpool EGNH :RCPMS --- +loc8=Boscombe\\ Down EGDM ------ --- +loc9=Boulmer EGQM :RTPMS --- +loc10=Bournemouth EGHH :RIPMS --- +loc11=Bristol EGGD :RDPMS --- +loc12=Cambridge EGSC :RNPMS- --- +loc13=Cardiff EGFF :RGPMS --- +loc14=Carlisle EGNC :RCPMS --- +loc15=Coventry EGBE :BBPMS --- +loc16=Cranfield EGTC :RIPMS --- +loc17=Culdrose EGDR :RD2PMS --- +loc18=Dundee EGPN :RAPMS --- +loc19=East\\ Midlands EGNX :BBPMS --- +loc20=Edinburgh EGPH :RAPMS --- +loc21=Eglington/Londonderry EGAE :AAPMS --- +loc22=Exeter EGTE :RD2PMS --- +loc23=Glasgow EGPF :RAPMS --- +loc24=Guernsey EGJB ------ --- +loc25=Humberside EGNJ :RTPMS --- +loc26=Inverness EGPE :RQPMS --- +loc27=Isle\\ of\\ Man EGNS :RCPMS --- +loc28=Jersey EGJJ ------ --- +loc29=Kinloss EGQK :RQPMS --- +loc30=Leeds\\ and\\ Bradford EGNM :RYPMS --- +loc31=Leuchars EGQL :RQPMS --- +loc32=Liverpool EGGP :RCPMS --- +loc33=London/City EGLC :RBPMS --- +loc34=London/Gatwick EGKK :RBPMS --- +loc35=London/Heathrow EGLL :RBPMS --- +loc36=London/Stansted EGSS :RBPMS --- +loc37=Lossiemouth EGQS :RQPMS --- +loc38=Luton EGGW :RBPMS --- +loc39=Lyneham EGDL :BBPMS --- +loc40=Manchester EGCC :RCPMS --- +loc41=Newcastle EGNT :RTPMS --- +loc42=Norwich EGSH :RNPMS --- +loc43=Plymouth EGHD :RD2PMS --- +loc44=Portland EGDP :RIPMS --- +loc45=Prestwick EGPK :RAPMS --- +loc46=Saint\\ Mawgan EGDG :RD2PMS --- +loc47=Scatsta EGPM :RQPMS --- +loc48=Scilly\\ Isles EGHE :RD2PMS --- +loc49=Shawbury EGOS :BBPMS --- +loc50=Shoreham EGKA :RBPMS --- +loc51=Southampton EGHI :RIPMS --- +loc52=Southend EGMC :RBPMS --- +loc53=Staverton EGBJ :RDPMS --- +loc54=Stornoway EGPO :RQPMS --- +loc55=Sumburgh EGPB :RQPMS --- +loc56=Tees-Side EGNV :RTPMS --- +loc57=Tiree EGPU :RQPMS --- +loc58=Unst EGPW :RQPMS --- +loc59=Valley EGOV ------ --- +loc60=Wick EGPC :RQPMS --- +loc61=Yeovilton EGDY :RDPMS --- + +[EU_YU] +name=Yugoslavia +loc0=Beograd LYBE ------ --- +loc1=Nis LYNI ------ --- +loc2=Podgorica\\ Titograd LYTI ------ --- +loc3=Podgorica LYPG ------ --- +loc4=Pristina LYPR ------ --- +loc5=Tivat LYTU ------ --- + +[AF] +name=Africa +states=DZ EG LY MO ZA + +[AF_MO] +name=Morocco +loc0=Rabat GMME ------ --- + +[AF_ZA] +name=South Africa +loc0=Bethlehem\\ Airport FABM ------ --- +loc1=Bloemfontein\\ Airport FABL ------ --- +loc2=Cape\\ Town\\ International\\ Airport FACT ------ --- +loc3=Durban\\ International\\ Airport FADN ------ --- +loc4=East\\ London\\ Airport FAEL ------ --- +loc5=George\\ Airport FAGG ------ --- +loc6=OR\\ Tambo\\ International\\ Airport FAJS ------ --- +loc7=Langebaanweg FALW ------ --- +loc8=Lichtenburg FALT ------ --- +loc9=Pietersburg FAPB ------ --- +loc10=Port\\ Elizabeth\\ Airport FAPE ------ --- +loc11=Pretoria FAPR ------ --- +loc12=Springbok FASB ------ --- +loc13=Upington\\ Airport FAUP ------ --- +loc14=Kimberley\\ Airport FAKM ------ --- + +[AF_LY] +name=Libya +loc0=Benina HLLB ------ --- +loc1=Tripoli HLLT ------ --- + +[AF_EG] +name=Egypt +loc0=Alexandria/Nouzha HEAX ------ --- +loc1=Asswan HESN ------ --- +loc2=Cairo HECA ------ --- +loc3=Luxor HELX ------ --- +loc4=Mersa\\ Matruh HEMM ------ --- +loc5=Port\\ Said HEPS ------ --- +loc6=Sharm\\ El\\ Sheikhintl HESH ------ --- + +[AF_DZ] +name=Algeria +loc0=Annaba DABB ------ --- +loc1=Constantine DABC ------ --- +loc2=Dar-El-Beida DAAG ------ --- +loc3=Ghardaia DAUG ------ --- +loc4=Hassi-Messaoud DAUH ------ --- +loc5=In\\ Amenas DAUZ ------ --- +loc6=Oran DAOO ------ --- +loc7=Tamanrasset DAAT ------ --- +loc8=Tebessa DABS ------ --- +loc9=Tlemcen\\ Zenata DAON ------ --- + +[OZ] +name=Australasia +states=AU NZ AN + +[OZ_AU] +name=Australia +loc0=Adelaide YPAD ------ --- +loc1=Alice\\ Springs YBAS ------ --- +loc2=Brisbane YBBN ------ --- +loc3=Broome YBRM ------ --- +loc4=Cairns YBCS ------ --- +loc5=Canberra YSCB ------ --- +loc6=Christmas\\ Island YPXM ------ --- +loc7=Cocos\\ Island YPCC ------ --- +loc8=Darwin YPDN ------ --- +loc9=Dubbo YSDU ------ --- +loc10=Hobart YMHB ------ --- +loc11=Learmouth YPLM ------ --- +loc12=Melbourne YMML ------ --- +loc13=Norfolk\\ Island YSNF ------ --- +loc14=Perth YPPH ------ --- +loc15=Port\\ Hedland YPPD ------ --- +loc16=Sydney YSSY ------ --- +loc17=Townsville YBTL ------ --- + +[OZ_NZ] +name=New Zealand +loc0=Auckland NZAA ------ --- +loc1=Christchurch NZCH ------ --- +loc2=Wellington NZWN ------ --- + +[OZ_AN] +name=Antarctica +loc0=Williams\\ Field NZCM ------ --- + +[AS] +name=Asia +states=CN HK IN JP KR KP PK SG TH TW VN UZ + +[AS_VN] +name=Viet Nam +loc0=Da\\ Nang VVDN ------ --- +loc1=Ha\\ Noi VVNB ------ --- +loc2=Ho\\ Chi\\ Minh VVTS ------ --- + +[AS_KR] +name=Korea, Republic of +loc0=Camp\\ Stanley/H-207 RKSX ------ --- +loc1=Cheju RKPC ------ --- +loc2=Chongju\\ Ab RKTU ------ --- +loc3=Mangilsan\\ Ab RKTM ------ --- +loc4=Osan\\ Ab RKSO ------ --- +loc5=Paekado RKTB ------ --- +loc6=Paengnyongdo\\ Ab RKSP ------ --- +loc7=Pohang\\ Ab RKTH ------ --- +loc8=Pusan/Kimhae RKPK ------ --- +loc9=Pyongtaek\\ Ab RKSG ------ --- +loc10=Sangju RKTS ------ --- +loc11=Seoul/Kimp'O\\ International\\ Airport RKSS ------ --- +loc12=Seoul/Yongdungp'O\\ Rokaf\\ Wc RKSF ------ --- +loc13=Seoul\\ E\\ Ab RKSM ------ --- +loc14=Songmu\\ Ab RKTE ------ --- +loc15=Suwon\\ Ab RKSW ------ --- +loc16=Taegu RKTT ------ --- +loc17=Taegu\\ Ab RKTN ------ --- +loc18=Taejon RKTF ------ --- +loc19=Ulsan RKPU ------ --- +loc20=Woong\\ Cheon RKTW ------ --- +loc21=Yechon\\ Ab RKTY ------ --- +loc22=Yeoju\\ Range RKSU ------ --- +loc23=Yeonpyeungdo RKSQ ------ --- +loc24=Yongsan/H-208\\ Hp RKSY ------ --- +loc25=Yosu RKJY ------ --- + +[AS_KP] +name=Korea, Democratic People's Republic of +loc0=Pyongyang ZKPY ------ --- + +[AS_HK] +name=Hong Kong +loc=Hong\\ Kong VHHH ------ --- + +[AS_PK] +name=Pakistan +loc0=Islamabad OPRN ------ --- +loc1=Karachi OPKC ------ --- +loc2=Lahore OPLA ------ --- +loc3=Nawabshah OPNH ------ --- + +[AS_IN] +name=India +loc0=Ahmadabad VAAH ------ --- +loc1=Amritsar VIAR ------ --- +loc2=Bombay/Santacruz VABB ------ --- +loc3=Calcutta/Dum\\ Dum VECC ------ --- +loc4=Hyderabad VOHY ------ --- +loc5=Madras/Minambakkam VOMM ------ --- +loc6=Nagpur\\ Sonegaon VANP ------ --- +loc7=New\\ Delhi/Palam VIDP ------ --- +loc8=Patna VEPT ------ --- +loc9=Thiruvananthapuram VOTV ------ --- +loc10=Tiruchchirapalli VOTR ------ --- +loc11=Varanasi/Babatpur VIBN ------ --- + +[AS_CN] +name=People's Republic of China +loc0=Beijing ZBAA ------ --- +loc1=Chengdu ZUUU ------ --- +loc2=Dalian ZYTL ------ --- +loc3=Guangzhou ZGGG ------ --- +loc4=Hangzhou ZSHC ------ --- +loc5=Hong\\ Kong VHHH ------ --- +loc6=Kunming ZPPP ------ --- +loc7=Lanzhou ZLLL ------ --- +loc8=Nanning ZGNN ------ --- +loc9=Shanghai ZSSS ------ --- +loc10=Taiyuan ZBYN ------ --- +loc11=Tianjin ZBTJ ------ --- +loc12=Urumqi ZWWW ------ --- +loc13=Xiamen ZSAM ------ --- + +[AS_JP] +name=Japan +loc0=Akeno\\ Ab RJOE ------ --- +loc1=Akita\\ Airport RJSK ------ --- +loc2=Amami\\ Airport RJKA ------ --- +loc3=Aomori\\ Airport RJSA ------ --- +loc4=Asahikawa\\ Ab RJCA ------ --- +loc5=Asahikawa\\ Airport RJEC ------ --- +loc6=Ashiya\\ Ab RJFA ------ --- +loc7=Atsugi\\ US\\ NAS RJTA ------ --- +loc8=Chichijima RJAO ------ --- +loc9=Chitose\\ Ab RJCC ------ --- +loc10=Chitose\\ ASDF RJCJ ------ --- +loc11=Chofu\\ Airport RJTF ------ --- +loc12=Fuji\\ Ab RJAT ------ --- +loc13=Fukue\\ Airport RJFE ------ --- +loc14=Fukui\\ Airport RJNF ------ --- +loc15=Fukuoka\\ Airport RJFF ------ --- +loc16=Gifu\\ Ab RJNG ------ --- +loc17=Hachijojima\\ Airport RJTH ------ --- +loc18=Hachinohe\\ Ab RJSH ------ --- +loc19=Hakodate\\ Airport RJCH ------ --- +loc20=Hamamatsu\\ Ab RJNH ------ --- +loc21=Hanamaki\\ Airport RJSI ------ --- +loc22=Hiroshima\\ Airport RJOA ------ --- +loc23=Hofu\\ Ab RJOF ------ --- +loc24=Hyakuri\\ Ab RJAH ------ --- +loc25=Ichikawa RJAI ------ --- +loc26=Iki\\ Airport RJDB ------ --- +loc27=Iruma\\ Ab RJTJ ------ --- +loc28=Iwakuni\\ MCAS RJOI ------ --- +loc29=Iwojima RJAW ------ --- +loc30=Izumo\\ Airport RJOC ------ --- +loc31=Kadena\\ Ab RODN ------ --- +loc32=Kagoshima\\ Airport RJFK ------ --- +loc33=Kamigoto RJDK ------ --- +loc34=Kanoya\\ Ab RJFY ------ --- +loc35=Kansai\\ International\\ Airport RJBB ------ --- +loc36=Kasumigaura\\ Ab RJAK ------ --- +loc37=Kasuminome\\ Ab RJSU ------ --- +loc38=Kikai\\ Island RJKI ------ --- +loc39=Kisarazu\\ Ab RJTK ------ --- +loc40=Kitakyushu\\ Airport RJFR ------ --- +loc41=Kochi\\ Airport RJOK ------ --- +loc42=Komatsu\\ Ab RJNK ------ --- +loc43=Komatsujima\\ Ab RJOP ------ --- +loc44=Kumamoto\\ Airport RJFT ------ --- +loc45=Kushiro\\ Airport RJCK ------ --- +loc46=Matsumoto\\ Airport RJAF ------ --- +loc47=Matsushima\\ Ab RJST ------ --- +loc48=Matsuyama\\ Airport RJOM ------ --- +loc49=Memambetsu\\ Airport RJCM ------ --- +loc50=Metabaru\\ Ab RJDM ------ --- +loc51=Miho\\ Ab RJOH ------ --- +loc52=Minamitorishima RJAM ------ --- +loc53=Misawa\\ Ab RJSM ------ --- +loc54=Miyakejima\\ Airport RJTQ ------ --- +loc55=Miyazaki\\ Airport RJFM ------ --- +loc56=Mombetsu\\ Airport RJEB ------ --- +loc57=Nagasaki\\ Airport RJFU ------ --- +loc58=Nagoya\\ Airport RJNN ------ --- +loc59=Naha\\ Airport ROAH ------ --- +loc60=Nakashibetsu\\ Airport RJCN ------ --- +loc61=Nankishirahama\\ Airport RJBD ------ --- +loc62=New\\ Tokyo\\ International\\ Airport RJAA ------ --- +loc63=Niigata\\ Airport RJSN ------ --- +loc64=Nyutabaru\\ Ab RJFN ------ --- +loc65=Obihiro\\ Airport RJCB ------ --- +loc66=Oita\\ Airport RJFO ------ --- +loc67=Ojika\\ Island RJDO ------ --- +loc68=Okayama\\ Airport RJOB ------ --- +loc69=Oki\\ Airport RJNO ------ --- +loc70=Okinoerabu RJKB ------ --- +loc71=Okushiri\\ Island RJEO ------ --- +loc72=Ominato\\ Ab RJSO ------ --- +loc73=Osaka\\ International\\ Airport RJOO ------ --- +loc74=Oshima\\ Airport RJTO ------ --- +loc75=Ozuki\\ Ab RJOZ ------ --- +loc76=Rebun\\ Island RJCR ------ --- +loc77=Rishiri\\ Island RJER ------ --- +loc78=Sapporo\\ Ab RJCO ------ --- +loc79=Sendai\\ Airport RJSS ------ --- +loc80=Shimofusa\\ Ab RJTL ------ --- +loc81=Shizuhama\\ Ab RJNY ------ --- +loc82=Tachikawa\\ Ab RJTC ------ --- +loc83=Tajima RJBT ------ --- +loc84=Takamatsu\\ Airport RJOT ------ --- +loc85=Tanegashima\\ Airport RJFG ------ --- +loc86=Tateyama\\ Ab RJTE ------ --- +loc87=Tokachi\\ GSDF RJCT ------ --- +loc88=Tokunoshima\\ Island RJKN ------ --- +loc89=Tokushima\\ Ab RJOS ------ --- +loc90=Tokyo\\ Heliport RJTI ------ --- +loc91=Tokyo\\ International\\ Airport RJTT ------ --- +loc92=Tokyo\\ New\\ International\\ Airport RJAA ------ --- +loc93=Tottori\\ Airport RJOR ------ --- +loc94=Toyama\\ Airport RJNT ------ --- +loc95=Tsuiki\\ Ab RJFZ ------ --- +loc96=Tsushima\\ Airport RJDT ------ --- +loc97=Utsunomiya\\ Ab RJTU ------ --- +loc98=Wakkanai\\ Airport RJCW ------ --- +loc99=Yakushima RJFC ------ --- +loc100=Yamagata\\ Airport RJSC ------ --- +loc101=Yamaguchi\\ Ube\\ Airport RJDC ------ --- +loc102=Yao\\ Airport RJOY ------ --- +loc103=Yokosuka\\ Fwf RJTX ------ --- +loc104=Yokota\\ Ab RJTY ------ --- +loc105=Zama\\ Airfield RJTR ------ --- + +[AS_SG] +name=Singapore +loc0=Singapore WSSS ------ --- + +[AS_TH] +name=Thailand +loc0=Don\\ Muang VTBD ------ --- + +[AS_TW] +name=Taiwan +loc0=Chia\\ Tung RCFS ------ --- +loc1=Chiang\\ Kai\\ Shek RCTP ------ --- +loc2=Chiayi RCKU ------ --- +loc3=Chihhang RCQS ------ --- +loc4=Chinmem/Shatou RCBS ------ --- +loc5=Dongsha RCLM ------ --- +loc6=Dongshi RCNO ------ --- +loc7=Feng\\ Nin RCFN ------ --- +loc8=Hengchun RCKW ------ --- +loc9=Hsinchu RCPO ------ --- +loc10=Hulien RCYU ------ --- +loc11=Ilan RCMS ------ --- +loc12=Kangshan RCAY ------ --- +loc13=Kaohsiung RCKH ------ --- +loc14=Makung RCQC ------ --- +loc15=Mazu RCFG ------ --- +loc16=Pa\\ Kuei/Bakuai RCUK ------ --- +loc17=Pingtung\\ North RCSQ ------ --- +loc18=Pingtung\\ South RCDC ------ --- +loc19=Sungshan/Taipei RCSS ------ --- +loc20=Taichung RCLG ------ --- +loc21=Tainan RCNN ------ --- +loc22=Taoyuan RCGM ------ --- +loc23=Wuchia\\ Observatory RCMQ ------ --- + +[AS_UZ] +name=Uzbekistan +loc0=Dzizak UTED ------ --- +loc1=Nukus/Karakalpakstan UTNN ------ --- +loc2=Samarkand UTSS ------ --- +loc3=Tamdy UTSM ------ --- +loc4=Tashkent UTTT ------ --- +loc5=Termez UTST ------ --- +loc6=Urgench UTNU ------ --- + +[M_] +name=Central and South America +states=BS BZ KY CU CR DO SV GT HT HN JM NI PA AR BR BO CL CO EC PY PE SR UY VE + +[M__BS] +name=Bahamas +loc0=Freeport MYGF ------ --- +loc1=Nassau MYNN ------ --- + +[M__BZ] +name=Belize +loc0=Belize MZBZ ------ --- + +[M__BM] +name=Bermuda +loc0=Bermuda TXKF ------ --- + +[M__KY] +name=Cayman Islands +loc0=Grand\\ Cayman MWCR ------ --- + +[M__CU] +name=Cuba +loc0=Baracoa MUBA ------ --- +loc1=Bayamo MUBY ------ --- +loc2=Camaguey MUCM ------ --- +loc3=Cayo\\ Largo\\ del\\ Sur MUCL ------ --- +loc4=Guantanamo MUGT ------ --- +loc5=Habana MUHA ------ --- +loc6=Holguin MUHG ------ --- +loc7=Las\\ Tunas MUVT ------ --- +loc8=Manzanillo MUMZ ------ --- +loc9=Moa MUMO ------ --- +loc10=Nueva\\ Gerona MUNG ------ --- +loc11=Santiago\\ de\\ Cuba MUCU ------ --- +loc12=Varadero MUVR ------ --- +loc13=Venezuela MUCA ------ --- + +[M__CR] +name=Costa Rica +loc0=Chacarita MRCH ------ --- +loc1=Juan\\ Santamaria MROC ------ --- +loc2=Liberia MRLB ------ --- +loc3=Puerto\\ Limon MRLM ------ --- +loc4=Tobias\\ Bolanos MRPV ------ --- + +[M__DO] +name=Dominican Republic +loc0=La\\ Romana MDLR ------ --- +loc1=Las\\ Americas MDSD ------ --- +loc2=Puerto\\ Plata MDPP ------ --- +loc3=Punta\\ Cana MDPC ------ --- +loc4=Santiago MDST ------ --- + +[M__SV] +name=El Salvador +loc0=Acajutla MSAC ------ --- +loc1=El\\ Salvador\\ Int. MSLP ------ --- +loc2=San\\ Miguel MSSM ------ --- +loc3=San\\ Salvador MSSS ------ --- +loc4=Santa\\ Ana MSSA ------ --- + +[M__GT] +name=Guatemala +loc0=Flores MGFL ------ --- +loc1=Guatemala MGGT ------ --- +loc2=Huehuetenango MGHT ------ --- +loc3=Puerto\\ Barrios MGPB ------ --- +loc4=San\\ Jose MGSJ ------ --- + +[M__HT] +name=Haiti +loc0=Port-Au-Prince MTPP ------ --- + +[M__HN] +name=Honduras +loc0=Amapala MHAM ------ --- +loc1=Catacamas MHCA ------ --- +loc2=Choluteca MHCH ------ --- +loc3=La\\ Ceiba MHLC ------ --- +loc4=La\\ Esperanza MHLE ------ --- +loc5=La\\ Mesa MHLM ------ --- +loc6=Nueva\\ Ocotepeque MHSC ------ --- +loc7=Puerto\\ Lempira MHPL ------ --- +loc8=Roatan MHRO ------ --- +loc9=Santa\\ Rosa\\ de\\ Copan MHSR ------ --- +loc10=Tegucigalpa MHTG ------ --- +loc11=Tela MHTE ------ --- +loc12=Yoro MHYR ------ --- + +[M__JM] +name=Jamaica +loc0=Kingston MKJP ------ --- +loc1=Montego\\ Bay MKJA ------ --- + +[M__NI] +name=Nicaragua +loc0=Bluefields MNBL ------ --- +loc1=Chinandega MNCH ------ --- +loc2=Jinotega MNJG ------ --- +loc3=Juigalpa MNJU ------ --- +loc4=Managua MNMG ------ --- +loc5=Puerto\\ Cabezas MNPC ------ --- +loc6=Rivas MNRS ------ --- + +[M__PA] +name=Panama +loc0=Bocas\\ del\\ Toro MPBO ------ --- +loc1=David MPDA ------ --- +loc2=Howard\\ AFB MPHO ------ --- +loc3=Panama MPMG ------ --- +loc4=Santiago MPSA ------ --- +loc5=Tocumen MPTO ------ --- + +[M__BO] +name=Bolivia +loc0=Camiri SLCA ------ --- +loc1=Cobija SLCO ------ --- +loc2=Cochabamba SLCB ------ --- +loc3=Concepcion SLCP ------ --- +loc4=La\\ Paz/Alto SLLP ------ --- +loc5=Magdalena SLMG ------ --- +loc6=Oruro SLOR ------ --- +loc7=Potosi SLPO ------ --- +loc8=Puerto\\ Suarez SLPS ------ --- +loc9=Reyes SLRY ------ --- +loc10=Riberalta SLRI ------ --- +loc11=Robore SLRB ------ --- +loc12=Rurrenabaque SLRQ ------ --- +loc13=San\\ Ignacio\\ De\\ Velasco SLSI ------ --- +loc14=San\\ Joaquin SLJO ------ --- +loc15=San\\ Jose\\ De\\ Chiquitos SLJE ------ --- +loc16=Santa\\ Ana SLSA ------ --- +loc17=Sucre SLSU ------ --- +loc18=Tarija SLTJ ------ --- +loc19=Trinidad SLTR ------ --- +loc20=Villamontes SLVM ------ --- +loc21=Viru-Viru SLVR ------ --- +loc22=Yacuiba SLYA ------ --- + +[M__CL] +name=Chile +loc0=Antofagasta SCFA ------ --- +loc1=Arica SCAR ------ --- +loc2=Concepcion SCIE ------ --- +loc3=Iquique/Diego\\ Arac SCDA ------ --- +loc4=Pudahuel SCEL ------ --- +loc5=Puerto\\ Montt SCTE ------ --- +loc6=Punta\\ Arenas SCCI ------ --- + +[M__CO] +name=Colombia +loc0=Barranquilla/Ernestocortissoz SKBQ ------ --- +loc1=Bogota/Eldorado SKBO ------ --- +loc2=Bucaramanga/Palonegro SKBG ------ --- +loc3=Cali/Alfonso\\ Bonillaaragon SKCL ------ --- +loc4=Cartagena/Rafael\\ Nunez SKCG ------ --- +loc5=Leticia/Vasquez\\ Cobo SKLT ------ --- +loc6=Pereira/Matecana SKPE ------ --- +loc7=Rionegro/J.M.Cordova SKRG ------ --- +loc8=San\\ Andres\\ Isla/Sesquicentenario SKSP ------ --- +loc9=Santa\\ Marta/Simon\\ Bolivar SKSM ------ --- + +[M__EC] +name=Ecuador +loc0=Guayaquil/Simon\\ Bolivar SEGU ------ --- +loc1=Manta SEMT ------ --- +loc2=Quito/Mariscal\\ Sucre SEQU ------ --- + +[M__PY] +name=Paraguay +loc0=Asuncion SGAS ------ --- +loc1=Guarany SGES ------ --- + +[M__PE] +name=Peru +loc0=Andahuayla SPHY ------ --- +loc1=Arequipa SPQU ------ --- +loc2=Ayacucho SPHO ------ --- +loc3=Chiclayo SPHI ------ --- +loc4=Cuzco SPZO ------ --- +loc5=Huanuco SPNC ------ --- +loc6=Iquitos SPQT ------ --- +loc7=Juanjui SPJI ------ --- +loc8=Juliaca SPJL ------ --- +loc9=Lima-Callao SPIM ------ --- +loc10=Pisco SPSO ------ --- +loc11=Pucallpa SPCL ------ --- +loc12=Puerto\\ Maldonado SPTU ------ --- +loc13=Rioja SPJA ------ --- +loc14=Tacna SPTN ------ --- +loc15=Talara SPYL ------ --- +loc16=Yurimaguas SPMS ------ --- + +[M__SR] +name=Suriname +loc0=Johan\\ A.\\ Pengel SMJP ------ --- + +[M__UY] +name=Uruguay +loc0=Artigas SUAG ------ --- +loc1=Capitan\\ Corbeta SULS ------ --- +loc2=Colonia SUCA ------ --- +loc3=Durazno SUDU ------ --- +loc4=Maldonado/Punta\\ Est SUPE ------ --- +loc5=Melilla SUAA ------ --- +loc6=Montevideo/Carrasco SUMU ------ --- +loc7=Paysandu SUPU ------ --- +loc8=Rivera SURV ------ --- +loc9=Salto SUSO ------ --- +loc10=Tacuarembo SUTB ------ --- + +[M__VE] +name=Venezuela +loc0=Acarigua SVAC ------ --- +loc1=Barcelona SVBC ------ --- +loc2=Barinas SVBI ------ --- +loc3=Barquisimeto SVBM ------ --- +loc4=Calabozo SVCL ------ --- +loc5=Caracas\\ Maiquetia SVMI ------ --- +loc6=Ciudad\\ Bolivar SVCB ------ --- +loc7=Coro SVCR ------ --- +loc8=Cumana SVCU ------ --- +loc9=Guanare SVGU ------ --- +loc10=Maracaibo-La\\ Chinita SVMC ------ --- +loc11=Maracay-B.A.Sucre SVBS ------ --- +loc12=Margarita SVMG ------ --- +loc13=Mene\\ Grande SVMN ------ --- +loc14=Merida SVMD ------ --- +loc15=San\\ Antonio\\ Del\\ Tachira SVSA ------ --- +loc16=San\\ Fernando\\ De\\ Apure SVSR ------ --- +loc17=Valera* SVVL ------ --- +loc18=Caracas\\ La\\ Carlota SVFM ------ --- + +[M__AR] +name=Argentina +loc0=Aeroparque SABE ------ --- +loc1=Bahia\\ Blanca SAZB ------ --- +loc2=Bariloche SAZS ------ --- +loc3=Comodoro\\ Rivadavia SAVC ------ --- +loc4=Concordia SAAC ------ --- +loc5=Cordoba SACO ------ --- +loc6=Corrientes SARC ------ --- +loc7=Don\\ Torcuato SADD ------ --- +loc8=Ezeiza SAEZ ------ --- +loc9=Formosa SARF ------ --- +loc10=Iguazu SARI ------ --- +loc11=Jujuy SASJ ------ --- +loc12=Mar\\ Del\\ Plata SAZM ------ --- +loc13=Mendoza SAME ------ --- +loc14=Neuquen SAZN ------ --- +loc15=Paso\\ De\\ Los\\ Libres SARL ------ --- +loc16=Posadas SARP ------ --- +loc17=Resistencia SARE ------ --- +loc18=Rio\\ Gallegos SAWG ------ --- +loc19=Rio\\ Grande SAWE ------ --- +loc20=Rosario SAAR ------ --- +loc21=Salta SASA ------ --- +loc22=San\\ Juan SANU ------ --- +loc23=Santiago\\ Del\\ Estero SANE ------ --- +loc24=Sauce\\ Viejo SAAV ------ --- +loc25=Trelew SAVT ------ --- +loc26=Tucuman SANT ------ --- +loc27=Villa\\ Reynolds SAOR ------ --- + +[M__BR] +name=Brazil +loc0=Afonsos SBAF ------ --- +loc1=Altamira SBHT ------ --- +loc2=Aracaju SBAR ------ --- +loc3=Bage SBBG ------ --- +loc4=Bauru SBBU ------ --- +loc5=Belem SBBE ------ --- +loc6=Belo\\ Horizonte SBCF ------ --- +loc7=Belo\\ Horizonte\\ Apt SBBH ------ --- +loc8=Boa\\ Vista SBBV ------ --- +loc9=Brasilia SBBR ------ --- +loc10=Campinas SBKP ------ --- +loc11=Campo\\ Grande SBCG ------ --- +loc12=Caravelas SBCV ------ --- +loc13=Conceicao\\ Do\\ Araguaia SBAA ------ --- +loc14=Corumba SBCR ------ --- +loc15=Cuiaba SBCY ------ --- +loc16=Curitiba SBBI ------ --- +loc17=Curitiba\\ Apt SBCT ------ --- +loc18=Eduardo\\ Gomes\\ International SBEG ------ --- +loc19=Fernando\\ De\\ Noronha SBFN ------ --- +loc20=Florianopolis SBFL ------ --- +loc21=Fortaleza SBFZ ------ --- +loc22=Foz\\ Do\\ Iguacu SBFI ------ --- +loc23=Galeao SBGL ------ --- +loc24=Goiania SBGO ------ --- +loc25=Guaratingueta SBGW ------ --- +loc26=Guarulhos SBGR ------ --- +loc27=Itaituba SBIH ------ --- +loc28=Londrina SBLO ------ --- +loc29=Macae SBME ------ --- +loc30=Macapa SBMQ ------ --- +loc31=Maceio SBMO ------ --- +loc32=Manaus SBMN ------ --- +loc33=Maraba SBMA ------ --- +loc34=Marte SBMT ------ --- +loc35=Natal SBNT ------ --- +loc36=Pelotas SBPK ------ --- +loc37=Pirassununga SBYS ------ --- +loc38=Pocos\\ De\\ Caldas SBPC ------ --- +loc39=Ponta\\ Pora SBPP ------ --- +loc40=Porto\\ Alegre SBCO ------ --- +loc41=Porto\\ Alegre\\ Apt SBPA ------ --- +loc42=Porto\\ Velho SBPV ------ --- +loc43=Presidente\\ Prudente SBDN ------ --- +loc44=Recife SBRF ------ --- +loc45=Rio\\ /\\ Jacarepagua SBJR ------ --- +loc46=Rio\\ De\\ Janeiro SBRJ ------ --- +loc47=Salvador SBSV ------ --- +loc48=Santa\\ Cruz SBSC ------ --- +loc49=Santa\\ Maria SBSM ------ --- +loc50=Santarem SBSN ------ --- +loc51=Santos SBST ------ --- +loc52=Sao\\ Jose\\ Dos\\ Campo SBSJ ------ --- +loc53=Sao\\ Luiz SBSL ------ --- +loc54=Sao\\ Paulo SBSP ------ --- +loc55=Tabatinga SBTT ------ --- +loc56=Teresina SBTE ------ --- +loc57=Tucurui SBTU ------ --- +loc58=Uberaba SBUR ------ --- +loc59=Uruguaiana SBUG ------ --- +loc60=Vilhena SBVH ------ --- +loc61=Vitoria SBVT ------ --- + +[AT] +name=Atlantic +states=AG PR + +[AT_PR] +name=Puerto Rico +loc0=Aquadilla TJBQ ------ --- +loc1=San\\ Juan TJSJ ------ --- +loc2=Mayaguez TJMZ ------ --- +loc3=Ponce TJPS ------ --- + +[AT_AG] +name=Antigua and Barbuda +loc0=Antigua TAPA ------ --- + diff --git a/kweather/weatherbar.cpp b/kweather/weatherbar.cpp new file mode 100644 index 0000000..2123a3a --- /dev/null +++ b/kweather/weatherbar.cpp @@ -0,0 +1,172 @@ +/* + * This file is part of the KDE project + * Copyright (C) 2002 Ian Reinhart Geiser + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License version 2.0 as published by the Free Software Foundation. + * + * This library 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 library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#include "weatherbar.h" +#include "dockwidget.h" +#include "sidebarwidget.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +KonqSidebarWeather::KonqSidebarWeather(KInstance* inst, QObject* parent, + QWidget* widgetParent, + QString& desktopName, const char* name) + + : KonqSidebarPlugin(inst, parent, widgetParent, desktopName, name), + DCOPObject(name) +{ + + m_container = new sidebarwidget(widgetParent,"sidebarwidget"); + + kdDebug() << "Calling Get Widget" << endl; + + kdDebug() << "Get weatherstation list... " << endl; + + if (!connectDCOPSignal(0,0, + "fileUpdate(QString)", + "refresh(QString)",false)) + kdDebug() << "Could not attach signal..." << endl; + else + kdDebug() << "attached dcop signals..." << endl; + + DCOPRef dcopCall( "KWeatherService", "WeatherService" ); + DCOPReply reply = dcopCall.call("listStations()", true ); + if ( reply.isValid() ) { + QStringList replyList = reply; + for(int i = 0; i < replyList.size(); i++) + { + dockwidget *d = new dockwidget(m_container->viewport(), replyList[i].latin1()); + m_container->addWidget(d, replyList[i].latin1()); + d->resizeView(80,48); + d->show(); + m_widgets.insert(replyList[i], d); + dcopCall.send("update(QString)", replyList[i]); + } + } + + timeOut = new QTimer(this, "timeOut" ); + timeOut->changeInterval(15*60000); + connect(timeOut, SIGNAL(timeout()), this, SLOT(update())); + // m_widgets.append(new dockwidget(widgetParent)); +} + + +KonqSidebarWeather::~KonqSidebarWeather() +{ +} + +void* KonqSidebarWeather::provides(const QString&) +{ + return 0; +} + +void KonqSidebarWeather::emitStatusBarText(const QString& s) +{ +} + +QWidget* KonqSidebarWeather::getWidget() +{ + return m_container; +} + +void KonqSidebarWeather::refresh(QString stationID) +{ + kdDebug() << "refresh " << stationID << endl; + if(m_widgets.find(stationID)) + { + DCOPRef dcopCall( "KWeatherService", "WeatherService" ); + m_widgets[stationID]->setWeatherIcon(dcopCall.call("currentIcon(QString)", stationID ,true )); + m_widgets[stationID]->setTemperature(dcopCall.call("temperature(QString)", stationID,true )); + m_widgets[stationID]->setPressure(dcopCall.call("pressure(QString)", stationID,true )); + m_widgets[stationID]->setWind(dcopCall.call("wind(QString)", stationID,true )); + m_widgets[stationID]->showWeather(); + } + else + update(); +} + +void KonqSidebarWeather::handleURL(const KURL& url) +{ +} + +void KonqSidebarWeather::handlePreview(const KFileItemList& items) +{ +} + +void KonqSidebarWeather::handlePreviewOnMouseOver(const KFileItem& item) +{ +} + +void KonqSidebarWeather::update() +{ + timeOut->stop(); + DCOPRef dcopCall( "KWeatherService", "WeatherService" ); + DCOPReply reply = dcopCall.call("listStations()", true ); + if ( reply.isValid() ) { + QStringList replyList = reply; + for(int i = 0; i < replyList.size(); i++) + { + if(!m_widgets.find(replyList[i])) + { + dockwidget *d = new dockwidget(m_container->viewport(), replyList[i].latin1()); + m_container->addWidget(d, replyList[i].latin1()); + d->show(); + m_widgets.insert(replyList[i], d); + } + dcopCall.send("update(QString)", replyList[i]); + } + } + timeOut->start(15*60000); +} + +extern "C" +{ + KDE_EXPORT void* create_weather_sidebar(KInstance* inst, QObject* par, QWidget*widp, + QString& desktopname, const char* name) + { + return new KonqSidebarWeather(inst, par, widp, desktopname, name); + } + + KDE_EXPORT bool add_weather_sidebar(QString* fn, QString* /*param*/, + QMap* map) + { + map->insert("Type","Link"); + map->insert("Icon","weather_sidebar"); + map->insert("Name",i18n("Sidebar Weather Report")); + map->insert("Open","false"); + map->insert("X-KDE-KonqSidebarModule","weather_sidebar"); + fn->setLatin1("weatherbar%1.desktop"); + return true; + } +} + +#include "weatherbar.moc" + diff --git a/kweather/weatherbar.desktop b/kweather/weatherbar.desktop new file mode 100644 index 0000000..ab8696f --- /dev/null +++ b/kweather/weatherbar.desktop @@ -0,0 +1,61 @@ +[Desktop Entry] +Type=Link +URL= +Icon=weather_sidebar +Name=Sidebar Weather Report +Name[ar]=تقرير الطقس على الشريط الجانبي +Name[be]=Бакавы прагноз надвор'я +Name[bg]=Метеорологично време +Name[bn]=সাইডবারে প্রদর্শিত আবহাওয়া রিপোর্ট +Name[bs]=Sidebar vremenska prognoza +Name[ca]=Barra d'informació del temps +Name[cs]=Zpráva o počasí pro postranní lištu +Name[cy]=Adroddiad Tywydd i'r Bar Ochr +Name[da]=Sidebjælke vejrudsigt +Name[de]=Navigationsbereich für Wetterbericht +Name[el]=Μετεωρολογική αναφορά Πλευρικής μπάρας +Name[eo]=Flank-VeterRaporto +Name[es]=Barra lateral de informe meteorológico +Name[et]=Külgriba ilmateade +Name[eu]=Eguraldiaren Egoera Alboko Barran +Name[fa]=گزارش جانبی آب و هوا +Name[fi]=Navigointipalkin säätiedotus +Name[fr]=Rapport météorologique de la barre latérale +Name[gl]=Barra de Información Meteorolóxica +Name[he]=דו"ח מזג אוויר בסרגל צד +Name[hi]=साइडबार वेदर रपट +Name[hr]=Meteorološki izvještaj u bočnoj traci +Name[hu]=Időjárás-jelentési oldalsáv +Name[is]=Veðurupplýusingar í hliðarstiku +Name[it]=Bollettino meteorologico per la barra laterale +Name[ja]=サイドバー気象レポート +Name[km]=របាយការណ៍​អាកាសធាតុ​នៅ​របារ​ចំហៀង +Name[ko]=사이드바 날씨 보고 +Name[lv]=Sānjoslas laikaziņas +Name[mk]=Извештај за време за странична лента +Name[mt]=Sidebar tar-rapport tat-temp +Name[nb]=Værrapport på sidestolpen +Name[nds]=Sietpaneel för Wederberichten +Name[ne]=किनारापट्टी मौसम प्रतिवेदन +Name[nl]=Zijbalk Weersbericht +Name[nn]=Sidestolpe med vêrmelding +Name[pl]=Raport o pogodzie w pasku bocznym +Name[pt]=Boletim Meteorológico da Barra Lateral +Name[pt_BR]=Informações sobre o Tempo +Name[ro]=Bară laterală raport meteo +Name[ru]=Информация о погоде на панели +Name[sk]=Správa o počasí pre bočný panel +Name[sl]=Stransko vremensko poročilo +Name[sr]=Временска прогноза у бочној траци +Name[sr@Latn]=Vremenska prognoza u bočnoj traci +Name[sv]=Sidopanel med väderprognos +Name[ta]= பக்கப் பட்டை வானிலை அறிக்கை +Name[tg]=Ахборот дар бораи ҳаво +Name[tr]=Yan Çubuk Hava Durumu Raporlayıcı +Name[uk]=Панель прогнозу погоди +Name[wa]=Rapoirt meteyo sol bår di costé +Name[zh_CN]=气象报告边栏 +Name[zh_TW]=天氣報告工具列 + +Open=false +X-KDE-KonqSidebarModule=weather_sidebar diff --git a/kweather/weatherbar.h b/kweather/weatherbar.h new file mode 100644 index 0000000..80559ae --- /dev/null +++ b/kweather/weatherbar.h @@ -0,0 +1,68 @@ +/* + * This file is part of the KDE project + * Copyright (C) 2002 Ian Reinhart Geiser + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License version 2.0 as published by the Free Software Foundation. + * + * This library 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 library; see the file COPYING.LIB. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + * Boston, MA 02110-1301, USA. + * + * $Id$ + */ + +#ifndef __KONQSIDEBARWEATHER_H__ +#define __KONQSIDEBARWEATHER_H__ + +#include +#include +#include +#include +#include +#include +#include +#include + +class dockwidget; +class sidebarwidget; + +class KonqSidebarWeather: public KonqSidebarPlugin, virtual public DCOPObject +{ + Q_OBJECT + K_DCOP +public: + KonqSidebarWeather(KInstance* inst, QObject* parent, QWidget* widgetParent, + QString& desktopName_, const char* name = 0); + + ~KonqSidebarWeather(); + virtual void* provides(const QString&); + void emitStatusBarText(const QString&); + virtual QWidget *getWidget(); + + k_dcop: + virtual void refresh(QString); + +protected: + virtual void handleURL(const KURL &url); + virtual void handlePreview(const KFileItemList& items); + virtual void handlePreviewOnMouseOver(const KFileItem& item); + +private slots: + void update(); + +private: + QDict m_widgets; + sidebarwidget *m_container; + QTimer *timeOut; +}; + +#endif + diff --git a/kweather/weatherbar_add.desktop b/kweather/weatherbar_add.desktop new file mode 100644 index 0000000..1b8c687 --- /dev/null +++ b/kweather/weatherbar_add.desktop @@ -0,0 +1,61 @@ +[Desktop Entry] +Type=Link +URL= +Icon=weather_sidebar +Name=Sidebar Weather Report +Name[ar]=تقرير الطقس على الشريط الجانبي +Name[be]=Бакавы прагноз надвор'я +Name[bg]=Метеорологично време +Name[bn]=সাইডবারে প্রদর্শিত আবহাওয়া রিপোর্ট +Name[bs]=Sidebar vremenska prognoza +Name[ca]=Barra d'informació del temps +Name[cs]=Zpráva o počasí pro postranní lištu +Name[cy]=Adroddiad Tywydd i'r Bar Ochr +Name[da]=Sidebjælke vejrudsigt +Name[de]=Navigationsbereich für Wetterbericht +Name[el]=Μετεωρολογική αναφορά Πλευρικής μπάρας +Name[eo]=Flank-VeterRaporto +Name[es]=Barra lateral de informe meteorológico +Name[et]=Külgriba ilmateade +Name[eu]=Eguraldiaren Egoera Alboko Barran +Name[fa]=گزارش جانبی آب و هوا +Name[fi]=Navigointipalkin säätiedotus +Name[fr]=Rapport météorologique de la barre latérale +Name[gl]=Barra de Información Meteorolóxica +Name[he]=דו"ח מזג אוויר בסרגל צד +Name[hi]=साइडबार वेदर रपट +Name[hr]=Meteorološki izvještaj u bočnoj traci +Name[hu]=Időjárás-jelentési oldalsáv +Name[is]=Veðurupplýusingar í hliðarstiku +Name[it]=Bollettino meteorologico per la barra laterale +Name[ja]=サイドバー気象レポート +Name[km]=របាយការណ៍​អាកាសធាតុ​នៅ​របារ​ចំហៀង +Name[ko]=사이드바 날씨 보고 +Name[lv]=Sānjoslas laikaziņas +Name[mk]=Извештај за време за странична лента +Name[mt]=Sidebar tar-rapport tat-temp +Name[nb]=Værrapport på sidestolpen +Name[nds]=Sietpaneel för Wederberichten +Name[ne]=किनारापट्टी मौसम प्रतिवेदन +Name[nl]=Zijbalk Weersbericht +Name[nn]=Sidestolpe med vêrmelding +Name[pl]=Raport o pogodzie w pasku bocznym +Name[pt]=Boletim Meteorológico da Barra Lateral +Name[pt_BR]=Informações sobre o Tempo +Name[ro]=Bară laterală raport meteo +Name[ru]=Информация о погоде на панели +Name[sk]=Správa o počasí pre bočný panel +Name[sl]=Stransko vremensko poročilo +Name[sr]=Временска прогноза у бочној траци +Name[sr@Latn]=Vremenska prognoza u bočnoj traci +Name[sv]=Sidopanel med väderprognos +Name[ta]= பக்கப் பட்டை வானிலை அறிக்கை +Name[tg]=Ахборот дар бораи ҳаво +Name[tr]=Yan Çubuk Hava Durumu Raporlayıcı +Name[uk]=Панель прогнозу погоди +Name[wa]=Rapoirt meteyo sol bår di costé +Name[zh_CN]=气象报告边栏 +Name[zh_TW]=天氣報告工具列 + +Open=false +X-KDE-KonqSidebarAddModule=weather_sidebar diff --git a/kweather/weatherbutton.cpp b/kweather/weatherbutton.cpp new file mode 100644 index 0000000..7ae680c --- /dev/null +++ b/kweather/weatherbutton.cpp @@ -0,0 +1,161 @@ +/* This file is part of the KDE project + Copyright (C) 2003-2004 Nadeem Hasan + + 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. + + 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 "weatherbutton.h" + +#include + +#include +#include +#include +#include +#include +#include +#include + +WeatherButton::WeatherButton( QWidget *parent, const char *name ) + : QButton( parent, name ), m_highlight( false ) +{ + setBackgroundOrigin( AncestorOrigin ); + + connect( kapp, SIGNAL( settingsChanged( int ) ), + SLOT( slotSettingsChanged( int ) ) ); + connect( kapp, SIGNAL( iconChanged( int ) ), + SLOT( slotIconChanged( int ) ) ); + + kapp->addKipcEventMask( KIPC::SettingsChanged ); + kapp->addKipcEventMask( KIPC::IconChanged ); + + slotSettingsChanged( KApplication::SETTINGS_MOUSE ); +} + +void WeatherButton::drawButton( QPainter *p ) +{ + drawButtonLabel(p); +} + +void WeatherButton::drawButtonLabel( QPainter *p ) +{ + if (!pixmap()) + { + return; + } + + QPixmap pix = m_highlight? m_activeIcon : m_normalIcon; + + if (isOn() || isDown()) + { + pix = pix.convertToImage().smoothScale(pix.width() - 2, + pix.height() - 2); + } + + int h = height(); + int w = width(); + int ph = pix.height(); + int pw = pix.width(); + int margin = 3; + QPoint origin(margin / 2, margin / 2); + + if (ph < (h - margin)) + { + origin.setY((h - ph) / 2); + } + + if (pw < (w - margin)) + { + origin.setX((w - pw) / 2); + } + + p->drawPixmap(origin, pix); +} + + +void WeatherButton::setPixmap( const QPixmap &pix ) +{ + QButton::setPixmap( pix ); + generateIcons(); +} + +void WeatherButton::generateIcons() +{ + if ( !pixmap() ) + return; + + QImage image = pixmap()->convertToImage(); + image = image.smoothScale( pixmapSize(), QImage::ScaleMin ); + + KIconEffect effect; + + m_normalIcon = effect.apply( image, KIcon::Panel, KIcon::DefaultState ); + m_activeIcon = effect.apply( image, KIcon::Panel, KIcon::ActiveState ); +} + +void WeatherButton::slotSettingsChanged( int category ) +{ + if ( category != KApplication::SETTINGS_MOUSE ) return; + + bool changeCursor = KGlobalSettings::changeCursorOverIcon(); + + if ( changeCursor ) + setCursor( KCursor::handCursor() ); + else + unsetCursor(); +} + +void WeatherButton::slotIconChanged( int group ) +{ + if ( group != KIcon::Panel ) + return; + + generateIcons(); + repaint( false ); +} + +void WeatherButton::enterEvent( QEvent *e ) +{ + m_highlight = true; + + repaint( false ); + QButton::enterEvent( e ); +} + +void WeatherButton::leaveEvent( QEvent *e ) +{ + m_highlight = false; + + repaint( false ); + QButton::enterEvent( e ); +} + +void WeatherButton::resizeEvent( QResizeEvent * ) +{ + generateIcons(); +} + +QPoint WeatherButton::pixmapOrigin() const +{ + QSize point = margin()/2; + QPoint origin( point.width(), point.height() ); + + return origin; +} + +#include "weatherbutton.moc" + +// vim:ts=4:sw=4:et diff --git a/kweather/weatherbutton.h b/kweather/weatherbutton.h new file mode 100644 index 0000000..d846169 --- /dev/null +++ b/kweather/weatherbutton.h @@ -0,0 +1,57 @@ +/* This file is part of the KDE project + Copyright (C) 2003-2004 Nadeem Hasan + + 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. + + 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 WEATHERBUTTON_H +#define WEATHERBUTTON_H + +#include +#include + +class WeatherButton : public QButton +{ + Q_OBJECT + + public: + WeatherButton( QWidget *parent, const char *name ); + void setPixmap( const QPixmap &pix ); + + protected: + void drawButton( QPainter *p ); + void drawButtonLabel( QPainter *p ); + QSize margin() const { return QSize( 3, 3 ); } + QSize pixmapSize() const { return size() - margin()*2; } + QPoint pixmapOrigin() const; + void generateIcons(); + + void enterEvent( QEvent *e ); + void leaveEvent( QEvent *e ); + void resizeEvent( QResizeEvent *e ); + + bool m_highlight; + QPixmap m_normalIcon; + QPixmap m_activeIcon; + + protected slots: + void slotSettingsChanged( int category ); + void slotIconChanged( int group ); +}; + +#endif // WEATHERBUTTON_H + +// vim:ts=4:sw=4:et diff --git a/kweather/weatherlib.cpp b/kweather/weatherlib.cpp new file mode 100644 index 0000000..cb79a05 --- /dev/null +++ b/kweather/weatherlib.cpp @@ -0,0 +1,355 @@ +/*************************************************************************** + weatherlib.cpp - description + ------------------- +begin : Wed Jul 5 2000 +copyright : (C) 2000 by Ian Reinhart Geiser +email : geiseri@msoe.edu +***************************************************************************/ + +/*************************************************************************** +* * +* 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 "config.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "metar_parser.h" +#include "stationdatabase.h" +#include "sun.h" +#include "weatherlib.h" + +#include "weatherlib.moc" + + +class WeatherLib::Data +{ + public: + Data(); + ~Data(){ if ( target ) delete target; } + + void clear(); + + /** The current weather state outside */ + struct WeatherInfo wi; + QDateTime age; + KTempFile *target; + bool downloading; + bool updated; + KIO::Job *job; +}; + +WeatherLib::Data::Data() + : target( 0 ), job( 0 ) +{ + clear(); +} + +void WeatherLib::Data::clear() +{ + age = QDateTime::currentDateTime(); + downloading = false; + updated = false; + job = 0; + + if ( target ) + { + delete target; + target = 0; + } +} + +WeatherLib::WeatherLib(StationDatabase *stationDB, QObject *parent, const char *name) + : QObject (parent, name) +{ + KGlobal::locale()->insertCatalogue("kweather"); + + m_StationDb = stationDB; + + data.setAutoDelete( true ); +} + +WeatherLib::~WeatherLib() +{ +} + +void WeatherLib::slotCopyDone(KIO::Job* job) +{ + kdDebug(12006) << "Copy done..." << endl; + if( job->error()) + { + kdDebug(12006) << "Error code: " << job->error() << endl; + //job->showErrorDialog(0L); + if ((job->error() == KIO::ERR_COULD_NOT_CONNECT || job->error() == KIO::ERR_UNKNOWN_HOST) + && !hostDown) + { + hostDown= true; + // no need to show a passive popup here, as below all stations will show "dunno" icon + } + } + // Find the job + QDictIterator it( data ); + Data *d = 0L; + for( ; it.current(); ++it ) + { + kdDebug(12006) << "Searching for job..." << endl; + if(it.current()->job == job) + { + d = it.current(); + d->downloading = false; + if( !job->error() ) + { + kdDebug( 12006) << "Reading: " << d->target->name() << endl; + QFile file( d->target->name() ); + file.open( IO_ReadOnly ); + QTextStream *t = new QTextStream( &file ); + //QTextStream *t = d->target->textStream(); + if( t ) + { + QString s = QString::null; + while ( !t->eof() ) + { + s += " " + t->readLine(); + } + + if ( !s.isEmpty() ) + { + kdDebug( 12006 ) << "Parse: " << s << endl; + MetarParser parser(m_StationDb, KGlobal::locale()->measureSystem()); + d->wi = parser.processData(d->wi.reportLocation, s); + d->age = QDateTime::currentDateTime().addSecs(1800); + emit fileUpdate(d->wi.reportLocation); + d->updated = true; + } + else + { + // File error + kdDebug( 12006 ) << "File empty error..." << endl; + KPassivePopup::message( i18n("KWeather Error!"), + i18n("The temp file %1 was empty.").arg(d->target->name()), 0L,"error" ); + d->updated = false; + } + } + else + { + // File error + kdDebug( 12006 ) << "File read error..." << endl; + KPassivePopup::message( i18n("KWeather Error!"), + i18n("Could not read the temp file %1.").arg(d->target->name()), 0L,"error" ); + d->updated = false; + } + delete d->target; + d->target = 0L; + d->job = 0L; + + } + else if( job->error() == KIO::ERR_DOES_NOT_EXIST) + { + data.remove(d->wi.reportLocation); + kdDebug( 12006 ) << "Bad station data so i am going to remove it" << endl; + KPassivePopup::message( i18n("KWeather Error!"), + i18n("The requested station does not exist."), 0L,"error" ); + } + else if(job->error() == KIO::ERR_COULD_NOT_CONNECT || + job->error() == KIO::ERR_UNKNOWN_HOST) + { + kdDebug( 12006 ) << "Offline now..." << endl; + d->clear(); + d->wi.theWeather = "dunno"; + d->wi.qsCurrentList.append(i18n("The network is currently offline...")); + d->wi.qsCurrentList.append(i18n("Please update later.")); + emit fileUpdate(d->wi.reportLocation); + } + else + { + kdDebug( 12006 ) << "Duh?..." << endl; + } + + } + } +} + +void WeatherLib::getData(Data *d, bool force /* try even if host was down last time*/) +{ + if(!d->downloading && (force || !hostDown) ) + { + d->downloading = true; + d->updated = false; + QString u = "http://weather.noaa.gov/pub/data/observations/metar/stations/"; + u += d->wi.reportLocation.upper().stripWhiteSpace(); + u += ".TXT"; + + d->target = new KTempFile(QString::null, "-weather"); + d->target->setAutoDelete(true); + d->target->file(); + + KURL url(u); + KURL local(d->target->name()); + + d->job = KIO::file_copy( url, local, -1, true, false, false); + d->job->addMetaData("cache", "reload"); // Make sure to get fresh info + connect( d->job, SIGNAL( result( KIO::Job *)), + SLOT(slotCopyDone(KIO::Job *))); + kdDebug( 12006 ) << "Copying " << url.prettyURL() << " to " + << local.prettyURL() << endl; + emit fileUpdating(d->wi.reportLocation); + } +} + +WeatherLib::Data* WeatherLib::findData(const QString &stationID) +{ + Data *d = data[stationID]; + if (!d) + { + d = new Data(); + d->wi.reportLocation = stationID; + d->wi.theWeather = "dunno"; + d->wi.qsCurrentList.append( i18n( "Retrieving weather data..." ) ); + data.insert(stationID, d); + getData(d); + } + + return d; +} + +QString WeatherLib::temperature(const QString &stationID){ + Data *d = findData(stationID); + return d->wi.qsTemperature; +} + +QString WeatherLib::pressure(const QString &stationID){ + Data *d = findData(stationID); + return d->wi.qsPressure; +} + +QString WeatherLib::wind(const QString &stationID){ + Data *d = findData(stationID); + return (d->wi.qsWindSpeed + " " + d->wi.qsWindDirection); +} + +/** */ +QString WeatherLib::dewPoint(const QString &stationID){ + Data *d = findData(stationID); + return d->wi.qsDewPoint; +} + +QString WeatherLib::relHumidity(const QString &stationID){ + Data *d = findData(stationID); + return d->wi.qsRelHumidity; +} + +QString WeatherLib::heatIndex(const QString &stationID){ + Data *d = findData(stationID); + return d->wi.qsHeatIndex; +} + +QString WeatherLib::windChill(const QString &stationID){ + Data *d = findData(stationID); + return d->wi.qsWindChill; +} + +QString WeatherLib::iconName(const QString &stationID){ + + QString result("dunno"); + + // isEmpty is true for null or 0 length strings + if ( !stationID.isEmpty() ) + { + Data *d = findData(stationID); + result = d->wi.theWeather; + } + + return result; +} + +QString WeatherLib::date(const QString &stationID){ + Data *d = findData(stationID); + + if ( ! d->wi.qsDate.isValid() ) + return ""; + else + { + QDateTime gmtDateTime(d->wi.qsDate, d->wi.qsTime); + QDateTime localDateTime = gmtDateTime.addSecs(KRFCDate::localUTCOffset() * 60); + return KGlobal::locale()->formatDateTime(localDateTime, false, false); + } +} + +/** Returns the current cover */ +QStringList WeatherLib::cover(const QString &stationID){ + Data *d = findData(stationID); + return d->wi.qsCoverList; +} + +/** return the visibility */ +QString WeatherLib::visibility(const QString &stationID){ + Data *d = findData(stationID); + return d->wi.qsVisibility; +} + +/** return the weather text */ +QStringList WeatherLib::weather(const QString &stationID){ + Data *d = findData(stationID); + return d->wi.qsCurrentList; +} + +bool WeatherLib::stationNeedsMaintenance(const QString &stationID) +{ + Data *d = findData(stationID); + return d->wi.stationNeedsMaintenance; +} + +void WeatherLib::update(const QString &stationID) +{ + // Only grab new data if its more than 50 minutes old + Data *d = findData(stationID); + + QDateTime timeout = QDateTime::currentDateTime(); + + kdDebug (12006) << "Current Time: " << KGlobal::locale()->formatDateTime(timeout, false, false) << + " Update at: " << KGlobal::locale()->formatDateTime(d->age, false, false) << endl; + if( timeout >= d->age || !d->updated) + getData(d, true /* try even if host was down last time */); + else + emit fileUpdate(d->wi.reportLocation); +} + +QStringList WeatherLib::stations() +{ + QStringList l; + QDictIterator it( data ); + for( ; it.current(); ++it ) + l += it.currentKey(); + return l; +} + +void WeatherLib::forceUpdate(const QString &stationID) +{ + hostDown = false; // we want to show error message if host is still down + Data *d = findData(stationID); + getData( d ); +} + +void WeatherLib::remove(const QString &stationID) +{ + data.remove(stationID); + emit stationRemoved(stationID); +} diff --git a/kweather/weatherlib.h b/kweather/weatherlib.h new file mode 100644 index 0000000..723e3dc --- /dev/null +++ b/kweather/weatherlib.h @@ -0,0 +1,84 @@ +/*************************************************************************** + weatherlib.h - description + ------------------- + begin : Wed Jul 5 2000 + copyright : (C) 2000 by Ian Reinhart Geiser + email : geiseri@msoe.edu + ***************************************************************************/ + +/*************************************************************************** + * * + * 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 WEATHERLIB_H +#define WEATHERLIB_H +#include +#include +#include +#include + +namespace KIO +{ + class Job; +} + +class StationDatabase; + +class WeatherLib : public QObject +{ + Q_OBJECT + + public: + class Data; + + WeatherLib(StationDatabase *stationDB, QObject *parent =0L, const char *name =0L); + virtual ~WeatherLib(); + + QString temperature(const QString &stationID); + QString dewPoint(const QString &stationID); + QString relHumidity(const QString &stationID); + QString heatIndex(const QString &stationID); + QString windChill(const QString &stationID); + QString wind(const QString &stationID); + QString pressure(const QString &stationID); + QString iconName(const QString &stationID); + QString date(const QString &stationID); + QStringList weather(const QString &stationID); + QString visibility(const QString &stationID); + QStringList cover(const QString &stationID); + bool stationNeedsMaintenance(const QString &stationID); + + QStringList stations(); + bool isNight(const QString &stationID) const; + + void update(const QString &stationID); + void forceUpdate(const QString &stationID); + void remove(const QString &stationID); + + signals: + void fileUpdating(const QString &stationID); + void fileUpdate(const QString &stationID); + void stationRemoved(const QString &stationID); + + private slots: + void slotCopyDone(KIO::Job*); + + private: + Data* findData(const QString &stationID); + void clearData(Data *d); + void getData(Data *d, bool force = false); + void processData(const QString &metar, Data *d); + + StationDatabase *m_StationDb; + + QDict data; + bool fileDownloaded; + bool hostDown; +}; + +#endif diff --git a/kweather/weatherlog.sh b/kweather/weatherlog.sh new file mode 100755 index 0000000..51afc45 --- /dev/null +++ b/kweather/weatherlog.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +LOC=KEWR +TEMP=`dcop KWeatherService WeatherService temperature $LOC` +WIND=`dcop KWeatherService WeatherService wind $LOC` +VIS=`dcop KWeatherService WeatherService visibility $LOC` +DATE=`date` +echo "$DATE,$TEMP,$WIND,$VIS" >> $LOC.log diff --git a/kweather/weatherservice.cpp b/kweather/weatherservice.cpp new file mode 100644 index 0000000..c35ed8f --- /dev/null +++ b/kweather/weatherservice.cpp @@ -0,0 +1,343 @@ +/* This file is part of the KDE project + Copyright (C) 2001-2004 Ian Geiser + Copyright (C) 2002-2004 Nadeem Hasan + Copyright (C) 2003-2004 John Ratke + + 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. + + 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 +#include +#include +#include +#include +#include + +#include "weatherlib.h" +#include "weatherservice.h" +#include "stationdatabase.h" +#include "sun.h" + +WeatherService::WeatherService(QObject *parent, const char *name) : QObject (parent, name), DCOPObject("WeatherService") +{ + kdDebug(12006) << "Starting new service... " << endl; + + stationDB = new StationDatabase(); + + m_weatherLib = new WeatherLib(stationDB, this, "WeatherLib"); + connect(m_weatherLib, SIGNAL(fileUpdating( const QString&)), + SLOT(updating( const QString&))); + connect(m_weatherLib, SIGNAL(fileUpdate( const QString&)), + SLOT(updated( const QString&))); + connect(m_weatherLib, SIGNAL(stationRemoved(const QString&)), + SLOT(slotStationRemoved(const QString&))); + + KConfig *conf = kapp->config(); + + conf->setGroup("WEATHERSTATIONS"); + QStringList stations =conf->readListEntry("stations"); + QStringList::Iterator it = stations.begin(); + for ( ; it != stations.end(); ++it ) + m_weatherLib->update(*it); +} + +WeatherService::~WeatherService() +{ + kdDebug(12006) << "Going away... " << endl; + // Don't need to call saveSettings() because WeatherService::exit + // already does that. Plus it wouldn't work here anyway because + // we can't get the config after calling kapp->quit(); + delete stationDB; +} + +void WeatherService::updated(const QString &stationID) +{ + kdDebug(12006) << "Sending update for " << stationID << endl; + emit fileUpdate( stationID ); +} + +void WeatherService::updateAll() +{ + kdDebug(12006) << "Sending for all" << endl; + QStringList stations = m_weatherLib->stations(); + QStringList::ConstIterator end(stations.end()); + for ( QStringList::ConstIterator it = stations.begin(); it != end; ++it ) { + update(*it); + } + +} + +void WeatherService::updating(const QString &stationID) +{ + kdDebug(12006) << "Sending updating for " << stationID << endl; + emit fileUpdating( stationID ); +} + +void WeatherService::slotStationRemoved(const QString &stationID) +{ + kdDebug(12006) << "Sending stationRemoved for " << stationID << endl; + emit stationRemoved( stationID ); +} + +QString WeatherService::temperature(const QString &stationID) +{ + kdDebug (12006) << "Returning " << stationID << endl; + return m_weatherLib->temperature(stationID); +} + +QString WeatherService::dewPoint(const QString &stationID) +{ + return m_weatherLib->dewPoint(stationID); +} + +QString WeatherService::relativeHumidity(const QString &stationID) +{ + return m_weatherLib->relHumidity(stationID); +} + +QString WeatherService::heatIndex(const QString &stationID) +{ + return m_weatherLib->heatIndex(stationID); +} + +QString WeatherService::windChill(const QString &stationID) +{ + return m_weatherLib->windChill(stationID); +} + +QString WeatherService::wind(const QString &stationID) +{ + return m_weatherLib->wind(stationID); +} + +QString WeatherService::pressure(const QString &stationID) +{ + return m_weatherLib->pressure(stationID); +} + +QPixmap WeatherService::currentIcon(const QString &stationID) +{ + return icon( stationID ); +} + +QPixmap WeatherService::icon(const QString &stationID) +{ + kdDebug(12006) << "Get the current weather icon.." << endl; + QString icon = iconFileName(stationID); + QPixmap theIcon = QPixmap(icon); + return theIcon; +} + +QString WeatherService::currentIconString(const QString &stationID) +{ + return m_weatherLib->iconName(stationID); +} + +QString WeatherService::iconFileName(const QString &stationID) +{ + QString icon = m_weatherLib->iconName(stationID); + icon = locate( "data", "kweather/" + icon + ".png" ); + return icon; +} + +QString WeatherService::date(const QString &stationID) +{ + return m_weatherLib->date(stationID); +} + +QString WeatherService::visibility(const QString &stationID) +{ + return m_weatherLib->visibility(stationID); +} + +QStringList WeatherService::cover(const QString &stationID) +{ + return m_weatherLib->cover(stationID); +} + +QStringList WeatherService::weather(const QString &stationID) +{ + return m_weatherLib->weather(stationID); +} + +bool WeatherService::stationNeedsMaintenance(const QString &stationID) +{ + return m_weatherLib->stationNeedsMaintenance(stationID); +} + +void WeatherService::update(const QString &stationID) +{ + m_weatherLib->update(stationID); +} + +void WeatherService::forceUpdate(const QString &stationID) +{ + m_weatherLib->forceUpdate(stationID); +} + +void WeatherService::removeStation(const QString &stationID) +{ + m_weatherLib->remove(stationID); + saveSettings(); +} + +void WeatherService::addStation(const QString &stationID) +{ + m_weatherLib->update(stationID); + saveSettings(); +} + +void WeatherService::exit() +{ + saveSettings(); + kapp->quit(); +} + +QStringList WeatherService::listStations() +{ + return m_weatherLib->stations(); +} + +void WeatherService::saveSettings() +{ + KConfig *conf = kapp->config(); + conf->setGroup("WEATHERSTATIONS"); + conf->writeEntry( "stations", m_weatherLib->stations()); + conf->sync(); +} + +QString WeatherService::stationName(const QString &stationID) +{ + if ( stationDB ) + { + QString upperStationID = stationID.upper(); + return stationDB->stationNameFromID(upperStationID); + } + else + return stationID; +} +QString WeatherService::stationCode( const QString &stationName ) +{ + if ( stationDB ) + { + return stationDB->stationIDfromName(stationName); + } + else + return stationName; +} + +QString WeatherService::stationCountry(const QString &stationID) +{ + + if ( stationDB ) + { + QString upperStationID = stationID.upper(); + return stationDB->stationCountryFromID(upperStationID); + } + else + return stationID; +} +QString WeatherService::longitude(const QString &stationID) +{ + if ( stationDB ) + { + QString upperStationID = stationID.upper(); + return stationDB->stationLongitudeFromID(upperStationID); + } + else + return "None"; +} +QString WeatherService::latitude(const QString &stationID) +{ + if ( stationDB ) + { + QString upperStationID = stationID.upper(); + return stationDB->stationLatitudeFromID(upperStationID); + } + else + return "None"; +} + +QStringList WeatherService::findStations(float /*lon*/, float /*lat*/) +{ + QStringList stationList; + stationList << "KMKE" << "KPNE" << "KTPW"; + return stationList; +} + +QString WeatherService::getTime(const QString &stationID, TimeType timeType) +{ + QString upperStationID = stationID.upper(); + + QString latitude = stationDB->stationLatitudeFromID(upperStationID); + QString longitude = stationDB->stationLongitudeFromID(upperStationID); + + if ( latitude.compare( i18n("Unknown Station" ) ) == 0 || + longitude.compare( i18n("Unknown Station" ) ) == 0 ) + { + return i18n( "Unknown Station" ); + } + else + { + Sun theSun( latitude, longitude ); + + QTime time; + switch ( timeType ) + { + case RISE: + time = theSun.computeRiseTime(); + break; + case SET: + time = theSun.computeSetTime(); + break; + case CIVIL_START: + time = theSun.computeCivilTwilightStart(); + break; + case CIVIL_END: + time = theSun.computeCivilTwilightEnd(); + break; + } + + kdDebug(12006) << "station, lat, lon, time: " << upperStationID << " " << + latitude << " " << longitude << " " << time << endl; + + return KGlobal::locale()->formatTime(time); + } +} + +QString WeatherService::sunRiseTime(const QString &stationID) +{ + return getTime(stationID, RISE); +} + +QString WeatherService::sunSetTime(const QString &stationID) +{ + return getTime(stationID, SET); +} + +QString WeatherService::civilTwilightStart(const QString &stationID) +{ + return getTime(stationID, CIVIL_START); +} + +QString WeatherService::civilTwilightEnd(const QString &stationID) +{ + return getTime(stationID, CIVIL_END); +} + + + +#include "weatherservice.moc" diff --git a/kweather/weatherservice.h b/kweather/weatherservice.h new file mode 100644 index 0000000..1f3c781 --- /dev/null +++ b/kweather/weatherservice.h @@ -0,0 +1,107 @@ +/* This file is part of the KDE project + Copyright (C) 2001-2004 Ian Geiser + Copyright (C) 2002-2004 Nadeem Hasan + Copyright (C) 2003-2004 John Ratke + + 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. + + 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 _WEATHER_SERVICE +#define _WEATHER_SERVICE + +#include +#include +#include + +class WeatherLib; +class StationDatabase; + +class WeatherService : public QObject, public DCOPObject +{ + Q_OBJECT + K_DCOP + + private: + WeatherLib *m_weatherLib; + + private slots: + void updated(const QString &stationID); + void updating(const QString &stationID); + void slotStationRemoved(const QString &stationID); + + public: + WeatherService(QObject *parent, const char *name); + ~WeatherService(); + + k_dcop_signals: + void fileUpdating(QString); + void fileUpdate(QString); + void stationRemoved(QString); + + k_dcop: + QString temperature(const QString &stationID); + QString dewPoint(const QString &stationID); + QString relativeHumidity(const QString &stationID); + QString heatIndex(const QString &stationID); + QString windChill(const QString &stationID); + QString wind(const QString &stationID); + QString pressure(const QString &stationID); + QPixmap currentIcon(const QString &stationID); + QPixmap icon(const QString &stationID); + QString currentIconString(const QString &stationID); + QString iconFileName(const QString &stationID); + QString date(const QString &stationID); + QString visibility(const QString &stationID); + QStringList cover(const QString &stationID); + QStringList weather(const QString &stationID); + bool stationNeedsMaintenance(const QString &stationID); + + QString stationName(const QString &stationID); + QString stationCountry(const QString &stationID); + QString longitude(const QString &stationID); + QString latitude(const QString &stationID); + + QStringList findStations(float lon, float lat); + + QString sunRiseTime(const QString &stationID); + QString sunSetTime(const QString &stationID); + QString civilTwilightStart(const QString &stationID); + QString civilTwilightEnd(const QString &stationID); + + void update(const QString &stationID); + void updateAll(); + void forceUpdate(const QString &stationID); + void removeStation(const QString &stationID); + void addStation(const QString &stationID); + QStringList listStations(); + QString stationCode( const QString &stationName ); + + void exit(); + + private: + enum TimeType + { + RISE = 0, + SET, + CIVIL_START, + CIVIL_END + }; + + void saveSettings(); + QString getTime(const QString &stationID, TimeType timeType); + StationDatabase *stationDB; +}; +#endif diff --git a/kweather/weathersig.sh b/kweather/weathersig.sh new file mode 100644 index 0000000..03f2fa0 --- /dev/null +++ b/kweather/weathersig.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +LOC=KPTW +TEMP=`dcop KWeatherService WeatherService temperature $LOC` +WIND=`dcop KWeatherService WeatherService wind $LOC` +DATE=`dcop KWeatherService WeatherService date $LOC` +VIS=`dcop KWeatherService WeatherService visibility $LOC` +NAME=`dcop KWeatherService WeatherService stationName $LOC` +EMAIL="geiseri@kde.org" +echo "===++=++===" +echo " Report for $NAME" +echo " on $DATE" +echo " $TEMP with winds at $WIND and $VIS of visibility." +echo "===============================+<$EMAIL>+===" diff --git a/kworldwatch/Makefile.am b/kworldwatch/Makefile.am new file mode 100644 index 0000000..75901df --- /dev/null +++ b/kworldwatch/Makefile.am @@ -0,0 +1,42 @@ +SUBDIRS = maps pics + +noinst_LTLIBRARIES = libww.la +libww_la_SOURCES = maploader.cpp mapwidget.cpp astro.c sunclock.c about.ui cities.cpp zoneclock.cpp flags.cpp flow.cpp clock.ui + +KDE_ICON = kworldclock + +bin_PROGRAMS = kworldclock + +INCLUDES = $(all_includes) + +kworldclock_SOURCES = main.cpp +kworldclock_LDADD = libww.la $(LIB_KDEUI) +kworldclock_LDFLAGS = $(KDE_RPATH) $(all_libraries) + +xdg_apps_DATA= kworldclock.desktop + +progdir=$(kde_datadir)/kdesktop/programs +prog_DATA = kdeworld.desktop + +kde_module_LTLIBRARIES = ww_panelapplet.la + +ww_panelapplet_la_SOURCES = applet.cpp + +METASOURCES = main.moc zoneclock.moc applet.moc mapwidget.moc + +noinst_HEADERS = applet.h + +lnkdir = $(kde_datadir)/kicker/applets +lnk_DATA = kwwapplet.desktop + +tab_DATA = zone.tab +tabdir = $(kde_datadir)/kworldclock + +EXTRA_DIST = $(lnk_DATA) + +ww_panelapplet_la_LDFLAGS = $(KDE_PLUGIN) -module $(all_libraries) +ww_panelapplet_la_LIBADD = libww.la $(LIB_KSYCOCA) + +messages: rc.cpp + $(XGETTEXT) rc.cpp $(kworldclock_SOURCES) $(libww_la_SOURCES) -o $(podir)/kworldclock.pot + diff --git a/kworldwatch/about.ui b/kworldwatch/about.ui new file mode 100644 index 0000000..9d62a17 --- /dev/null +++ b/kworldwatch/about.ui @@ -0,0 +1,217 @@ + +AboutDialog + + + AboutDialog + + + + 0 + 0 + 350 + 216 + + + + About KDE World Clock + + + image0 + + + + unnamed + + + 11 + + + 6 + + + + Layout1 + + + + unnamed + + + 0 + + + 6 + + + + PixmapLabel3 + + + + 0 + 0 + 0 + 0 + + + + image1 + + + true + + + + + TextLabel3 + + + + 7 + 1 + 0 + 0 + + + + The KDE World Clock + + + + + + + Layout4 + + + + unnamed + + + 0 + + + 6 + + + + Spacer3 + + + Horizontal + + + Fixed + + + + 41 + 31 + + + + + + TextLabel4 + + + This is a little toy to display the time on each place on the earth. + +Copyright: (c) 2000 Matthias Hoelzer-Kluepfel + + + WordBreak|AlignVCenter|AlignLeft + + + + + + + + + Layout3 + + + + unnamed + + + 0 + + + 6 + + + + Spacer4 + + + Horizontal + + + Expanding + + + + 20 + 20 + + + + + + PushButton2 + + + &OK + + + true + + + + + Spacer5 + + + Horizontal + + + Expanding + + + + 20 + 20 + + + + + + + + + + 89504e470d0a1a0a0000000d49484452000000100000001008060000001ff3ff610000033249444154388da59349685c7500c67f6f992533992cd3c964330d934427c1a6a624968ad2d50a31a506b522a2143caa08ea4d7b11173c288aa8f4e0418a68d21244424911d21a43036d206d69d298669b26992493996c7df3f25edef6f76283209efccedff73b7d3ff89f910094a3bdf2eb2f263bdb1a4bdfc6710e20498e27cb0303c30b9f777df2d6ef6843e23f01be7dddf29b6fecffac3551f06e755057caa37e6459663e63b0b01d11b34b6b7659b4703bbb698ff60f672e0c0dce7ecfc82bda0ea1e3bd1b9d9f76a59da9991591cf6f09db76846d3be2fe7d5d8c8e2f8b8fba97c4d0ad6591d56c7137678b33ddf3e98617fa0e3ed82bcd1d1f7cf7c4437a9deaac1289848944c2c8803fe0c3ef83b9058deb33263555616cdba3a12a14318b4a5fce99ad03eb933d736a6ad93dd0f27c98faba04a9549ad9d9797cd915446515959565d497092e5cb738d89ac7a72a9896c323bbac8289c7933f4df7b734a91e8a9000455148d6d7b0327213fdd1466a6bab711c8fc97b065bdb2ef9cd35f286453abbc9b94bb7089454d63477bc735a2d2ef25f9d5ed48fefaeb120354dd963cdc4030184101886c9dc1aa8f60a67bbee309bceb1aabb6c990678d33c7bece4736aee9ef1d5cd6ce4c89ed169359a28a74056c076318c6d1697746e64824cce8cb1aee700f007c2ec7df21021552009a75ec96ebe3aa554c4a440ace0b06ce9e4359df5f52d52f39bfc3117e2cf9c8d1492d958d35094206d479fa1be2141c5ae307edb5a950048ce48475e72c763412bf970652192a29036fde41c8592aa5216a7ee327eed1ad589dd3cdd7e8891abc30415814f5bbfa8023051272cf9f6d9156de3cb9aa63845b118e536445df004c49a1b087a16ad6d495c43a3a9ae024337f9f597de1e69e751ed7de1d74e26c79289686d3c5e8ce982ed821020cbe09721a842812a280d499cef1ebcf3c3fbc7f7ab3b80be76fd7251cfa97d0d87fbab8b88980e38dedf00095405820a840312bf5d99583df7f517a7615b57fe298636767e7178217e295252fa5438541c9fcf38d89687a6bbc40a653cdbe2c79f0747befdf8c35322d33bb263e3bfa2467dd5c7ce74ee69d97b4256028d8ee37adac6eac4e8d095defce8371701f341f52fe03c715325d17f970000000049454e44ae426082 + + + 89504e470d0a1a0a0000000d49484452000000300000003008060000005702f98700001282494441546881ed99696c5cd775c77f6f9f8db371df298a12455114452d9663cb9becd88ee578411cc771e2264d53f4430bb41f02044d8b368b5104481314598a342d92268ed338889d7889bcca966c6d942c895a4d52dc49911c92b3706638db5b6e3f0c4991b2e42869d27ee9010ede9d8737effdfff77fceb9e7be07ff6fffb7265dd755f7bdaabbdd6a7373adaf335ca2dfe5f6a83b035eb5de63a80147082b993167d20b567f266bbd333a9b3d3015c9bc275eba7bea8f8c1db81e02f7bcdcb6bec9ffe97b6facf9c8c6e69296b5552e5f65d090dc868c224b08c0341d52599b89b99cd337918d9ce88d9d7be5c8e44f52f1dc8bbc79fffcff3e815b5f9014552a6d5d137cfcf69d357f7bdf4dd565f5e5869acf9acc4573cccd665848e628e42d6459c2f0e804421e2aca5d04832e1c49e2785f32f7e29bbda74f1c3af2a5e9e3cf1e217538fbc720a05ceda4bbf993755b37557ce3b1fbd6fed5c76eaf0b5b1672f7914b0c9fbf04a9792adc260d65321e698ebab04ca95b6026938c0c4439df9b209d97d9dc56aa6e6bafa92bc8c13be30bba9d98374e91edb7fed004562bd0f98ce4f5e94d5d5babbffbf9c7daef6ea8f2a83d67a3c42f0ed3d522b179531d1e8f8eaaa9288accc8c830c16008bf3f80e3d814f23673d114478e4f306556d0bab58eca3237af1e9e143ff9d9be4c520a652c474a59596b82bc791687c328d221ba1f1dfd8310d0ba9e29efda5afbedcf3edef1485585573d7674926675965d3794313337ce86d63674dd4096419665161616d0750d55d51042e038824824423a9da450f0f3ead179026d2db4adf5f3c63b6314126374ed68239185d1a905fa86e3f40ecccd8e8d258e8aacf90cbafc02473e91fafd0834fea7bcbeb3fa8b8f3ed6f90f1b5acb5cdd8727d81a9ee7ae5baa71b90d6cdbc2e5d251550d599690240959968022f025cfe5f208211042108ba6f9e9de39b4e6665aea7dec7fe30c4fdcee65d78debc90a88666168164ef427387064948347c686e391f4b731947fe3e827ae2b679673400e3fd475e77d1bbfb76d6753e0c889189dee08f7eeaec5ed31505505b7db40d735344d41d314545541516414455e319650d562788184cba5d3542171e4e834595f98fafa725e7da587dbb757e0d674bc8aa0ce0f1beadd747454b1b9ab29a41bcabdc323f1fbadf043034c3f3b747d042a7ee05adb5ef985bb1fdc72db584cc8b9bef3ec58bf40281cc0ef2f4155e515a095650556ba2c4bcbe7579a6e28b010e1ad330e55cde524922ae9e97e1ad6d4923505054ba0490ee586a0d4af51df5ac9a64db5559148f2891971b744e4b9fdbf9580a7fce18e1befdaf4c5706365f9f95397f8c4f602b1e814bdbd23388e4528e4c3ebf5a22832d207ac1c4522f22289e2787c7c8c50482531b5c0a9a89fc6c600a7bb2fb2715d09bacb8d650bf29620670a3caa4d48139886872d3b9a244958b7f7256e6da5e1e3bf61f2d9ab563005a066fd13f7b7ed5cfbf88ced5683a9293e7647051bdad6e0f1189c3d7b91d1d129745d5954e3aa957795c9b28410e03802afd787df1f44c3e4b5d305029521e6a766a92d85505910cb11cb9eb70408877297cdc09cc39a4d755485f48e5327273653bde739a65fb0af4aa0a2f1537fd770436b47dfa4cd3d7571badac3b83d2e6a6bab686f6f269fcf73e2442fc3c313188686cfe74655d5cb778944c03040511042502814c866738bb920e338025d85a367934c4961b45c0ead30cd9a963a2c87556edae0084195c7e695b3f3acd9d8407da9abb5a7fbbd46e65ef9f5d509343ff14fdeb6f5e1c94b291ed994a3b13180aa2aa8aa8cc7e3a2a9a9968a8a10f178929e9e3e1289141e8f816118303888fdeb5f916959cf4c2cc9e0e03867ce5ca4a7a797b2b2003e9f17db16086173e1628a9e5490a0622312036cec5cbb4a81252fd8024596680e49fc60ff3437ee6cc150b4ce81212343ead8e195045400ddedaa99c9aad8991c019f8c6ddb08a12ec732483434d4505d5dcec4c434dddde778e9a5039496fa49bf7b9c4053330baf1f2793c962182aa5a501b66edd4069690800c7b1912441a957303bed501b76138b67c8158a612d844000f28a04cb015e43e64fba0cbefe4a2f7ffde056fafb269f1cdcfbe67e72e78faf222069ba2b5990706c9bf9f92823c369aa6b6a70b92a5625ada669ac59534f7575056f1d38467f6f1f318f0fff428e5d5b6aa9ae2ea3a2a21497cb00246cdb219bcd31353549727e9e425e502840ce51c9176c32d91c8e00af4bc3ebd288255797fe6c0edaaa0d6eaecaf2cbee513ef3b93bf52f9f79f83bce40ef2d609b003280694a195512785c2ac16019cd6b5b080482804088f727a9cbb6b861668ced9d1bd9f5a1ed6cdbba911d3b3a6868a8c5e572b1b43e0a219024999a9a5a9a1a9b71bbbcb85d60db0eb22c8363e377ab844b0ce2f30b64b37972b92b3c6f52ed753872e02805afce1d0f3db21357e727572990cbdae3a5aab5c1f4bb984fa5966bb9e31457d4551d473e8ff5e28b7843016ebc652792242faec8abadb81a83102049328e80541e4a030a4a2e4945d8c3a6e672e61259666349e2f3e9c5672d0253657455e1f98343fcc7cb17b01732bc7ce0241fbf772b077ef3e017acf74e3d03222f03580571d270f278836ea6a216a6692df7368ee35cbeb1e3e01c3c8829cb6877deb9bca85dcd8a65d4599e844cc6249e5509f934c8a4b1b13978f222a7de1b62787c8a6c66815c368359c8210b8b99b904dffec541bef7f3b7c9a7a220329c397618c780adbbeeec4069b8638502ce5e733ef350b831e4198e2aa49279344d45924055156459a0081ba7bb9b7c2482fee8a3282bcbe855c0dbb68d6d3b140a058480d1891429b58450894c743e82bf4a21168b21c9128a2c232932aaaa323397a0fbdc08fbde1d603e960643652911cde40ca7ce9ee7e65b3771ecb91b1e253afa8a0a9088e47ad291cc60ed86f28e742e406fff2ce1d0284d4dcd4522aa8c3430487e7010f5fefb3f107c512807cb2a2a373131412e97e16caf8cbba281859c89484d110ee9e0985896436c21cff87494ded119866716b8343802ba068a0c66fef28dcd1ca78f7773d3e737e3aedf766b36facba00a5028c8fdc327675eaaebac6e6b68ac564f0fccf0c01d15b8dd1e4cdb411a9bc03c72186dcf1ed450e803665e60db0e9665635936a669535555cde14343a43c9568010f53ef0e63c8031cef2f259a1c667a2ec9742c492a9505d3a4b4be818ab52dcc4c8c21cb0a8e6d175b1445c1d65d4c8e8d826cd3d0d2d6d0d713682f4e65f45e33a6bef9e3a193339faeafabafaf5cd7ccc99e6102a112024e01eb9db7716edb8d1a0c6359f672bfb354628bc95a04bf44c0346d6cdb667c3cc158cc85bba992e98b167dc75e256e8dc150a4f8475942566434971b0c37e9f9245b6ede4d3a99c6711c02655500cc8c0d000a0ba9052291299a9a1bb43eb5aafd7263e3ffb39865c959e1d2efa86f09e8259ac4e45084c68933d8edede4822124014bf57d294157cfb8433abd80695a388ec3e4e43c474f26f1b7aee5dcaccea1170e138d1f46f3f950350d552bee2f14454596156459c1b62c54dd85dbeb47313cecbcef63c4a6a6b00b79dab6ec607a6c94b6f6565c5a88d3fbf79ebf4c20fd23b2f2e72e66338409b83b5bdb43aa4f96b83099c7a80e331d19251c2a03a4e5cd4b3c9ec0b6c53229db7688c5a24c4e5e6262c2e25c6f9adaae755c487b39f0fa04a44f30978da21a2e2459b9aa2b9a4e3a116721994092548465130806b8e3a30fb3ae6d13f1e81c6bd6d4e3d6021cdff75aefead672fedff359edcfdf8d47ed9ab4a16fa96f09d2b226c0853333d8a6444989812489e5b27ae9d204b22ca3aa1a8582492693271acd73f6ec3cb23b487d67136f8d1bbcf1da1cb5be21da6f6ee7c2857e64f9f28cbfdf556cdba6b2b195adbbf7606653b46fdd86c75039fef601da3b36515916c0cecb1c7bf5a573ef2b274e7fc7ecac72f16f8e1f1afb4c6cae8e8fde15e0d63b37635e8a70ee5c1cc7b1f07a15dc6e95542ac3ecac842c2f90c958e472e0f1bad872730753aa9fff3a0987f70d52571665e3ad5d0845275456c17c2c8ea25ca52d97c0324dcaeb9ad9f5c023f8bc6e366c68e4e59fff024512cc2712dc74d376ea6a435c9899010457ad87e2bd7589c2f643f34da5e5811ffc2846f78e72eede59cdd69de59492c7cc1648a7f21886174906af4fc7e333700c9d918cc1f3c312fb0fa5490c5fa4adcb43ddba0e4cc58da241454d3df3f124b2aabfffb98e83dbebe143f73d4c20e0461182a1f3bd6ceaec606278981d3bba686aaca4b404d2a91c58e9f4350b7a3a5f186b6d533a8e9deae68d67658ebdb396caa672d6afada0b5c14b7508fc7eb01d989b87b101e81bc972697c0a3395a1ba3acd8df737e1f2873001d30255064fa01459d15194d5041c21300b599ada36505119407600cb4495a06b7b1bbb6e6e4316c5955797612e9a824274fa9a04ccac79269db13bea6a03446343141666193de365ac47639fa4a3e80164c540d50c5c1e1955b5f0043d54d606099485f006d7e2283259f3f23d15c0464155f4550a08c7c16db858dbdec1a61ddbd0005d87543a43dff97e540992f104f7dd7b23b95c0ebc6e26c6230ed6ccc8b59754cb393016497faaa5a99ad3e7c7d15d4b0f34719c3c9619c741e296fb1f2450514aa150dc51398b6d53410057ec6215c0132c47d50d144505248410a8ba4ae3865602c100a1801b55025d82f2b01fd3b4d9f7fa61745d636c3c42677b23d5bbbb181b1a9a434407ae4d4091de387d319af8ecbd0d41c3e54156e4a2d48e83c7e7a2bdb31545d3a9ae2ac512a0a8608b22017bb10b75ae68c565010d2d8d44861a894e4da3682ab66513282b27bf90a1a96b036e4d4295c0d04058129a66a0e96e244566727a9ec71faa61706481e4684f2f5843f23509bc74cff0c5d1f8215577d1da528b2d6414554792356ebb6307bb6ed9c896ae165c2ab815706b8bae82472d8e3d57b85b8512176ce86c4792351c474637dc34aea9e7869bb65051e6c590415826a9780a8f21613b32020d49d2a8a92aa77d5d25070e0ec2dcb17780b90feccaec9cf5d4e1b3337beeb9a58d8b23716c07d6afafa373531db90228a208ca12e038971570161510707943241577158a043535a554d7d7e05836ad1bd7d0ded180244012e076c1e874826422454b4309db363771be6f8a9189380f7c781df91c1cd97f2846e1c23ec0fee0b652555e78f5c8d8c09e0fddd4d2d956cf99de6976ed5c87470361832a15c1db4be09d1504b84c62113f48c52da0dba3b1e7a3bb509562d329ec62e3a9ca60c830311e65dbe63a34e0e17bdab8657b13672e4cf2d05d6bf9e12f4648bff7e26b609e866bbc5e5fb6bea72cb3feb1b4234b0f3efae1751cee89d0541ba4b1c6877040968b33aa2c1e55f90a57405be1ba7c796c68c5dfaa04ba527443014d8670d0454db90f5d2ee64dd8afb1b323cce8258b6f7ee3d98439f4fdaf82751a16f7c41f68baf293bd6f8f1e9a4b16787ccf46de3a3a463663e1358ae1b3ecda8aa3b63a27569d5ffced5228e68f0a2ead385ef235353e3c5a712fe35abcb660c2f79f3a43e6dc0f9f86eca12578bffd355bdf5342b47cfad8d991d467fef481f57a366b93c95ab4d47b61850a2b675e5b9afd952ac857a871a5ab4505f4c56b97cebb55f079e1e917a7f9d5f7bff32ed1e79e04965ffafe760200177f3a93766d9f189c773ffc978faca3a9da0342425e0a9fc55058153a8b477505e025124ba1f43e12ca6512faa2427e1fbc7e34c9b7befed36967e09b7f0fe6dbc0f22bc6eb230030fed2e9a9394d9e90d6df765b5718efe2bab69403578bff25224bae5f9107575341578ba1b334f36f9d48f3d5af3d379febf9ca577062bf02322b615d3f0180b9eefda363194f7f61c3cddbdac254f88b5bb2950a185a11ec5258ad0c9be5305aa180b612fce2d8a381e682e70f2478f2c967e39977fff16b58977e06c4ae84f4bb1100889f7ce3d2e068e6e8cc9add0df515724b8d8abe08d8e7826cce419521e09170eb45604b2babd75824a95e2661ac2062a8e076432207fffaf331befbcf3f1e36cf7cedcb5893cf00b35783f3bb130048f51f9e1fe83eb1afdfbb332eaac26b6b7d94b825fac62c9e3990229d71c89b8291298b822928f32be4f30e839326652532a625087a243cfa65a55c0698c081530b3cf92fddecfbf1b75e63f83b5f4624f702f16b41b9be2ff5d7fcb7ab92ba87bf547ee3a73eb7e7eeedbe8dcd211229189ab2b8346791ca382832d484153279413465535fa6b29017b4d6e9d496a96c6951f17ba0fb429ae75f19e0e06b7bfb1878fa6972179e052e52e4756d08ff23024ba686b75075cf5f043a3ef2e0f61bbaaa3bda6a290d784052c99912d93c588b754320d014701c8b7c2ecf4c2446cfa97e73f0e4dbe7197b792f9993bf01ce03d7f585ff0f4360d9b426bcadbb29ddb25bafddd4515ed35453565eeef7f93cba6168d896432693b793f1786e6e7a321ebdd43fc2f4e9b324cf1dc58e9c044681dff333eb1fde2ac0a84709d422bbca4032001056163b1d43242320a629569605c0f97d1ef2df5c025013d9e7bdc30000000049454e44ae426082 + + + + + PushButton2 + clicked() + AboutDialog + reject() + + + + kseparator.h + + + PushButton2_clicked() + accept() + + + diff --git a/kworldwatch/applet.cpp b/kworldwatch/applet.cpp new file mode 100644 index 0000000..a12a987 --- /dev/null +++ b/kworldwatch/applet.cpp @@ -0,0 +1,122 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include + + +#include +#include +#include +#include +#include +#include + + +#include "mapwidget.h" +#include "applet.moc" + + +extern "C" +{ + KDE_EXPORT KPanelApplet *init(QWidget *parent, const QString& configFile) + { + KGlobal::locale()->insertCatalogue("kworldclock"); + KGlobal::locale()->insertCatalogue("timezones"); // For time zone translation + return new KWWApplet(configFile, KPanelApplet::Normal, + 0, + parent, "kwwapplet"); + } +} + + +KWWApplet::KWWApplet(const QString& configFile, Type type, int actions, + QWidget *parent, const char *name) + : KPanelApplet(configFile, type, actions, parent, name) +{ + // make use of the icons installed for ksaferppp + KGlobal::iconLoader()->addAppDir("kworldwatch"); + + QVBoxLayout *vbox = new QVBoxLayout(this, 0,0); + + map = new MapWidget(true, true, this); + map->load(config()); + vbox->addWidget(map); + setCustomMenu(map->contextMenu()); + + map->installEventFilter(this); +} + + +KWWApplet::~KWWApplet() +{ + map->save(config()); +} + + +int KWWApplet::widthForHeight(int height) const +{ + return height*2; +} + + +int KWWApplet::heightForWidth(int width) const +{ + return width/2; +} + + +// catch the mouse clicks of our child widgets +bool KWWApplet::eventFilter( QObject *o, QEvent *e ) +{ + if ((e->type() == QEvent::MouseButtonPress) || (e->type() == QEvent::MouseButtonDblClick)) + { + mousePressEvent(static_cast(e)); + return true; + } + + return KPanelApplet::eventFilter(o, e); +} + + +void KWWApplet::mousePressEvent(QMouseEvent *e) +{ + bool clicked = false; + + if (KGlobalSettings::singleClick()) + { + clicked = e->type() == QMouseEvent::MouseButtonPress; + } + else + { + clicked = e->type() == QMouseEvent::MouseButtonDblClick; + } + + if (clicked && e->button() == QMouseEvent::LeftButton) + { + KRun::run("kworldclock", KURL::List()); + } +} diff --git a/kworldwatch/applet.h b/kworldwatch/applet.h new file mode 100644 index 0000000..7965b8f --- /dev/null +++ b/kworldwatch/applet.h @@ -0,0 +1,70 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef KWW_applet_h +#define KWW_applet_h + + +#include +#include + + +#include + + +class MapWidget; + + +class KWWApplet : public KPanelApplet +{ + Q_OBJECT + +public: + + KWWApplet(const QString& configFile, Type t = Normal, int actions = 0, + QWidget *parent = 0, const char *name = 0); + ~KWWApplet(); + + int widthForHeight(int height) const; + int heightForWidth(int width) const; + + +protected: + + void mousePressEvent(QMouseEvent *ev); + bool eventFilter(QObject *, QEvent *); + + +private: + + MapWidget *map; + + +}; + + +#endif diff --git a/kworldwatch/astro.c b/kworldwatch/astro.c new file mode 100644 index 0000000..3423119 --- /dev/null +++ b/kworldwatch/astro.c @@ -0,0 +1,166 @@ +/* + * Sun clock - astronomical routines. + */ + +#include "sunclock.h" + +long jdate(struct tm *); +double jtime(struct tm *); +double kepler(double m, double ecc); +void sunpos(double jd, int apparent, double *ra, double *dec, double *rv, double *slong); +double gmst(double jd); + +/* JDATE -- Convert internal GMT date and time to Julian day + and fraction. */ + +long +jdate(t) +struct tm *t; +{ + long c, m, y; + + y = t->tm_year + 1900; + m = t->tm_mon + 1; + if (m > 2) + m = m - 3; + else { + m = m + 9; + y--; + } + c = y / 100L; /* Compute century */ + y -= 100L * c; + return t->tm_mday + (c * 146097L) / 4 + (y * 1461L) / 4 + + (m * 153L + 2) / 5 + 1721119L; +} + +/* JTIME -- Convert internal GMT date and time to astronomical + Julian time (i.e. Julian date plus day fraction, + expressed as a double). */ + +double +jtime(t) +struct tm *t; +{ + return (jdate(t) - 0.5) + + (((long) t->tm_sec) + + 60L * (t->tm_min + 60L * t->tm_hour)) / 86400.0; +} + +/* KEPLER -- Solve the equation of Kepler. */ + +double +kepler(m, ecc) +double m, ecc; +{ + double e, delta; +#define EPSILON 1E-6 + + e = m = dtr(m); + do { + delta = e - ecc * sin(e) - m; + e -= delta / (1 - ecc * cos(e)); + } while (abs(delta) > EPSILON); + return e; +} + +/* SUNPOS -- Calculate position of the Sun. JD is the Julian date + of the instant for which the position is desired and + APPARENT should be nonzero if the apparent position + (corrected for nutation and aberration) is desired. + The Sun's co-ordinates are returned in RA and DEC, + both specified in degrees (divide RA by 15 to obtain + hours). The radius vector to the Sun in astronomical + units is returned in RV and the Sun's longitude (true + or apparent, as desired) is returned as degrees in + SLONG. */ + +void +sunpos(jd, apparent, ra, dec, rv, slong) +double jd; +int apparent; +double *ra, *dec, *rv, *slong; +{ + double t, t2, t3, l, m, e, ea, v, theta, omega, + eps; + + /* Time, in Julian centuries of 36525 ephemeris days, + measured from the epoch 1900 January 0.5 ET. */ + + t = (jd - 2415020.0) / 36525.0; + t2 = t * t; + t3 = t2 * t; + + /* Geometric mean longitude of the Sun, referred to the + mean equinox of the date. */ + + l = fixangle(279.69668 + 36000.76892 * t + 0.0003025 * t2); + + /* Sun's mean anomaly. */ + + m = fixangle(358.47583 + 35999.04975*t - 0.000150*t2 - 0.0000033*t3); + + /* Eccentricity of the Earth's orbit. */ + + e = 0.01675104 - 0.0000418 * t - 0.000000126 * t2; + + /* Eccentric anomaly. */ + + ea = kepler(m, e); + + /* True anomaly */ + + v = fixangle(2 * rtd(atan(sqrt((1 + e) / (1 - e)) * tan(ea / 2)))); + + /* Sun's true longitude. */ + + theta = l + v - m; + + /* Obliquity of the ecliptic. */ + + eps = 23.452294 - 0.0130125 * t - 0.00000164 * t2 + 0.000000503 * t3; + + /* Corrections for Sun's apparent longitude, if desired. */ + + if (apparent) { + omega = fixangle(259.18 - 1934.142 * t); + theta = theta - 0.00569 - 0.00479 * sin(dtr(omega)); + eps += 0.00256 * cos(dtr(omega)); + } + + /* Return Sun's longitude and radius vector */ + + *slong = theta; + *rv = (1.0000002 * (1 - e * e)) / (1 + e * cos(dtr(v))); + + /* Determine solar co-ordinates. */ + + *ra = + fixangle(rtd(atan2(cos(dtr(eps)) * sin(dtr(theta)), cos(dtr(theta))))); + *dec = rtd(asin(sin(dtr(eps)) * sin(dtr(theta)))); +} + +/* GMST -- Calculate Greenwich Mean Siderial Time for a given + instant expressed as a Julian date and fraction. */ + +double +gmst(jd) +double jd; +{ + double t, theta0; + + + /* Time, in Julian centuries of 36525 ephemeris days, + measured from the epoch 1900 January 0.5 ET. */ + + t = ((floor(jd + 0.5) - 0.5) - 2415020.0) / 36525.0; + + theta0 = 6.6460656 + 2400.051262 * t + 0.00002581 * t * t; + + t = (jd + 0.5) - (floor(jd + 0.5)); + + theta0 += (t * 24.0) * 1.002737908; + + theta0 = (theta0 - 24.0 * (floor(theta0 / 24.0))); + + return theta0; +} diff --git a/kworldwatch/astro.h b/kworldwatch/astro.h new file mode 100644 index 0000000..2c6a561 --- /dev/null +++ b/kworldwatch/astro.h @@ -0,0 +1,42 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ + +#ifndef ASTRO_H +#define ASTRO_H + +#include + +extern "C" { +double jtime(struct tm *t); +double kepler(double m, double ecc); +void sunpos(double jd, int apparent, double *ra, double *dec, double *rv, double *slong); +void projillum(short *wtab, int xdots, int ydots, double dec); +} + +#endif // ASTRO_H + diff --git a/kworldwatch/cities.cpp b/kworldwatch/cities.cpp new file mode 100644 index 0000000..624c814 --- /dev/null +++ b/kworldwatch/cities.cpp @@ -0,0 +1,208 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include +#include +#include +#include + + +#include +#include + + +#include "cities.h" + + +CityList::CityList() +{ + readCityLists(); +} + +CityList::~CityList() +{ + _cities.setAutoDelete(true); + _cities.clear(); +} + +void CityList::readCityLists() +{ + QStringList lists = KGlobal::dirs()->findAllResources("data", "kworldclock/*.tab"); + for (QStringList::Iterator it = lists.begin(); it != lists.end(); ++it) + readCityList(*it); +} + + +double coordinate(QString c) +{ + int neg; + int d=0, m=0, s=0; + + neg = c.left(1) == "-"; + c.remove(0,1); + + switch (c.length()) + { + case 4: + d = c.left(2).toInt(); + m = c.mid(2).toInt(); + break; + case 5: + d = c.left(3).toInt(); + m = c.mid(3).toInt(); + break; + case 6: + d = c.left(2).toInt(); + m = c.mid(2,2).toInt(); + s = c.right(2).toInt(); + break; + case 7: + d = c.left(3).toInt(); + m = c.mid(3,2).toInt(); + s = c.right(2).toInt(); + break; + default: + break; + } + + if (neg) + return - (d + m/60.0 + s/3600.0); + else + return d + m/60.0 + s/3600.0; +} + + +void CityList::readCityList(const QString &fname) +{ + QFile f(fname); + + if (f.open(IO_ReadOnly)) + { + QTextStream is(&f); + + QString line; + QStringList tags; + QRegExp coord("[+-]\\d+[+-]\\d+"); + QRegExp name("[^\\s]+/[^\\s]+"); + int pos; + while (!is.eof()) + { + line = is.readLine().stripWhiteSpace(); + if (line.isEmpty() || line.left(1) == "#") + continue; + + QString c, n; + + pos = coord.search(line, 0); + if (pos >= 0) + c = line.mid(pos, coord.matchedLength()); + + pos = name.search(line, pos); + if (pos > 0) + n = line.mid(pos, name.matchedLength()).stripWhiteSpace(); + + if (!c.isEmpty() && !n.isEmpty()) + { + double la, lo; + pos = c.find("+", 1); + if (pos < 0) + pos = c.find("-", 1); + if (pos > 0) + { + la = coordinate(c.left(pos)); + lo = coordinate(c.mid(pos)); + _cities.append(new City(n.latin1(), la, lo)); + } + } + } + + f.close(); + } +} + + +QPoint CityList::getPosition(double la, double lo, int w, int h, int offset) +{ + int x = (int)((double)w * (180.0 + lo) / 360.0); + int y = (int)((double)h * (90.0 - la) / 180.0); + x = (x + offset + w/2) % w; + + return QPoint(x,y); +} + + +void CityList::paint(QPainter *p, int width, int height, int offset) +{ + p->setPen(Qt::black); + + QPtrListIterator it(_cities); + for ( ; it.current(); ++it) + { + QPoint pos = getPosition(it.current()->latitude(), it.current()->longitude(), width, height, offset); + + if (width > 100) + p->drawEllipse(pos.x(), pos.y(), 3,3); + else + p->drawPoint(pos); + } +} + + +City *CityList::getNearestCity(int w, int h, int offset, int x, int y, QPoint &where) +{ + City *result = 0; + double dist = 1.0e10; + + QPtrListIterator it(_cities); + for ( ; it.current(); ++it) + { + QPoint pos = getPosition(it.current()->latitude(), it.current()->longitude(), w, h, offset); + + double d = (pos.x()-x)*(pos.x()-x) + (pos.y()-y)*(pos.y()-y); + if (d < dist) + { + dist = d; + where = pos; + result = it.current(); + } + } + + return result; +} + + +QStringList CityList::timezones() +{ + QStringList r; + + QPtrListIterator it(_cities); + for ( ; it.current(); ++it) + r << it.current()->name(); + r.sort(); + + return r; +} diff --git a/kworldwatch/cities.h b/kworldwatch/cities.h new file mode 100644 index 0000000..9c55c37 --- /dev/null +++ b/kworldwatch/cities.h @@ -0,0 +1,87 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef CITIES_H +#define CITIES_H + + +#include +#include +#include + + +class QPainter; + + +class City +{ +public: + + City(const QString &n, double la, double lo) : _name(n), _latitude(la), _longitude(lo) {}; + QString name() { return _name; }; + + double latitude() { return _latitude; }; + double longitude() { return _longitude; }; + + +private: + + QString _name; + double _latitude, _longitude; + +}; + + +class CityList +{ +public: + + CityList(); + ~CityList(); + void paint(QPainter *p, int width, int height, int offset); + + City *getNearestCity(int w, int h, int offset, int x, int y, QPoint &where); + + QStringList timezones(); + + +private: + + void readCityLists(); + void readCityList(const QString &fname); + + QPoint getPosition(double la, double lo, int w, int h, int offset); + + +private: + + QPtrList _cities; + +}; + + +#endif diff --git a/kworldwatch/clock.ui b/kworldwatch/clock.ui new file mode 100644 index 0000000..faae5e7 --- /dev/null +++ b/kworldwatch/clock.ui @@ -0,0 +1,259 @@ + +ClockDialog + + + ClockDialog + + + + 0 + 0 + 373 + 173 + + + + Edit Clock Settings + + + clockimage0 + + + + unnamed + + + 11 + + + 6 + + + + Layout5 + + + + unnamed + + + 0 + + + 6 + + + + PixmapLabel1 + + + + 0 + 0 + 0 + 0 + + + + clockimage1 + + + true + + + + + Spacer4 + + + Vertical + + + Expanding + + + + 20 + 20 + + + + + + Spacer3 + + + Vertical + + + Expanding + + + + 20 + 20 + + + + + + Layout2 + + + + unnamed + + + 0 + + + 6 + + + + ClockZone + + + + + TextLabel2 + + + Please enter the settings for the clock. + + + + + TextLabel3 + + + &Caption: + + + ClockCaption + + + + + ClockCaption + + + + + TextLabel4 + + + &Timezone: + + + ClockZone + + + + + + + + + Layout1 + + + + unnamed + + + 0 + + + 6 + + + + Spacer2 + + + Horizontal + + + Expanding + + + + 20 + 20 + + + + + + PushButton1 + + + &OK + + + true + + + + + PushButton2 + + + &Cancel + + + + + Spacer1 + + + Horizontal + + + Expanding + + + + 20 + 20 + + + + + + + + + + 789c65d0c14e84301006e03b4fd130376258711717637c048d4713e3613a6db7651748743d18e3bbcb7468ece21f0efdfe740a6553a997e747556d8a8f339e0329f2f8ae2af3390c5faf6f0fdf45d9dc2a7ef6aa29af8ab256a49ea6d1f21ae6355cc7300db3db264ec2ae11dac46ecb3c3071870dee982393da344bc2f64ed80be946e813a9651e99cea5592d446c913908d366141a8bc40c429e669e1265b34b742ede5d024beabf0e50d31c6320eb88ac739608f2598aa72fb3cb41790787184bde39bfee20f4903af92c7fd91de77077f259e7867fdd5c71e743efc7d5be10fa69759ee6ceacde6b439fee063ec66a9dfd03b8485dfedc17bfee6d99a3 + + + 789ccd995b53e3481285dffb57109d6f1d1b39bedb8a8d7de08eb998fb75621eb224199b8b31c6806162fffb962a4f0ad3d8189ade88690d813f57294f669e524962fef83177b2b335f7e38f6f77431976e3b9b82383b91fc9fdf5f5d39f7ffde7ef6fdf2b8d39ff5fa9589c2b7dffd7b7efbbc3b978ae75d34b3360f24085f02f633acfb814796c642cf31957c498ae94cb0dcc7f54aec415097c9771b55489ab418c86cad502789071bd5c2fd6cb417f27b02b148a211e9f822baac7abc618df0537945daa5c8fea2ec45f0127ca1c65dc28db7c5e03c7887f668c7837ca45d4cb4bc6184fc0c8c7b5954d8fd68c1ba13eba556e149525e4d7c8f3e745658bc7057003fa3db0e5db34c6fcba7209f949c837aa583c5905dbfc05659bcfeb60eb77d118e3f360cbe7da18f1831f516cf1654fd9ce9735b0cdaf82ad9e2be5b2f57bcf18facf60eb770f8c7ce45e39aaea7a94fd8ca562f3a506b67e3f814dff52b962fa1b60ebc705d8f446ca5184eb61019c80ef95a5289530bf04ae82cb39c7810f02c765eb5f5dd9f271d760cbe7d818fde880adbf15b0d5373246fd9a4f5cb5eb19f1fdfa0ceb576e95a58a7a87c6885f3446fe8719bb4aaedf005b3d47caa6c75d30e2f33e18fd74b7c6c8b703467fdd9572ada87e73d87f5c62e3726c8cf35bca7ebeea3d804dbf0c8e10ef3c67ed0f2bd78bb5b0bfc98272de2fcd277125d4fb0cae29d372ce1a6f152cca12f6a7b86a7abc09463ddc56ae5bbd0739ebf81618ebdff573d6f11a18f549139cd4743fee294b8afd6a5ed9f2a307657fc156c3f93be01af8247062f93a56cef3bb07231f4760ebf74ace3a7f084e707f69e7ace315e506fa215a6f1297d04f675cd2f14b700dbc6d1c27215e58bf49d5e2cb96b2c5e73467cd5fc0d6df048c7a28cd59e73bb0d5d355b6fd809e95e314f95d2827c89fc3fd34491b567f5539b2fe0ec0b6ff9de6ace331d8fa7d94b3faabf9a722580f1d705a8ac2fc13e372318c2f29fbfcc2b8dc806b6031c6fc8671559f0f6cbe3fc2fc70ff4d6b969f8b73d6fc2ec1e89f7b61adcf290bfc72dd9cd5cf16d8fab30946bddc005b7da41ca7babea9af9ca4692dcc0ffb539ae6fb63012ce8af8053f0b2b2bf41abfea2725cc3f300c663c17ab8504e4a91eeafebc6ba5ee55139b5fe778d357fa19cc338d58db17f3d81cd9f3258743f7741bfedfb81f57baeecf3d77ef7c135d47703b6fab7c1a85f369413413f6370aaf5d093722ac8ff0e6c7e548c71ffec28b7512f158d11af609ca8debe711ad61b9d806bea27ed19b79535dfb63d0fcb3918f75fda02e37980d695edf9908e954b055ccfd7e08afa459be00678171c835bcaf6fc2c8972b50a6e836dff3e536e54b19ee29cf5797447392a46babe9ae048d71745e004fded29e7f7f70118eb838ec029b86aecf4fc54d9d5c00f60bb9e0e956dffa51258c0ba7eda89f9770016dd2fa8a6ec2f30dd3f58b96deb7d04ae814f8de1bf18c3ef45b060be03fb7f19ef0effbfc73f5b8369faf13b34422461c731279c729bcfb9c35dbee04bbee26beebdd6f9150d1fe186fb5ee396077cc743bee7077ef41a237ee2679ee7055ee4a51795cf6b04851b5ee6159ff52aaf7193d77de40dafd1e14ddee296575af4dfaf9aca2f696cfbdc77fcb1cabb3e5a93f77cd411effb6a0ef8d077efc877f1f82b1a4165874f7c474ef98c0b5cf41e6c70c977abecbb56e12ad7b8eeebfc42afa0d1f0ce46bce4cd251272fe108a29a19407d4f6b5f5bfa6b13ba473eaf85c77a91ba28f1f1774e9eb58a0ab97d9bfbc761bdca4eb370ad9d1f375f4beba768386f7836e266af4831fbf43c3fb3151213b323f7e8346e6c7348dcc8f5fd178bd17c18fe9757cc28f97c8746b4776b6fae1bf9d54057dc48f4991c78e4118cbae8f291ab3fd9812794c83eed48f90c5db2a68b61f1fd0801fd33466fb3151e39e1ea88f38037a343fc2ec913f9ee899e609dfccf6031af753ae30e74786e64798ed68d16b2cd1725645f866861f937dfc4963c5fcc0195ac76abeae67f8f1218d35f3233f23abc3e53cc38f571a4d5aa78d706cfe5c87f9f172ce0bcdf2634c43a36fe177eb4d1dbd691a1ff6633344def69f76c2a7dd77fc70b447fb2fbd7adf8fb12a0ee8908ec2a7e3a071f8ae1f2774fa513fde387e864e1dd2143f7046818ad6af597ebcd1d8c88fd2643f7046992a2f1aeffbf146a34ab57c6d4df0239f5fa7067d70bf9a7875446f34d65eef57c242fe9de743fbd58b82c492d086a4e1733b5390f3497e041e4947ba72219772059577fcf8f9da10ffdc213d7ceebda9a387bd6ae4ebe8ca8df469596e67dd3fc6ea188cb9fdfa0a1cf323ab213be4ceea90a1dcbf7f3f1f77634ce5581e5ef993fb1134b48e47ab4346f4eefdfc03fbe12b3fc6ea780a753ce7754cf1e3830a637ef8bbd6e8673f7c1d37d3fdf884c68acc677e082a411d2ef3c3777971ba1f9faa237b6e6fca5278a61eabc32b2c537bba1f9faa6325f34356654d9ab26eef06b2219bb2e5dfdebc1fd29af46ec024dbb233fb27d4b128bbb227fb7220877224c7dc9213ff7e93522aa772c6b75298f6fee1558a529232dd4bd1ffd8ef92b11f535e09ff7fa7267569f8b7c096448eb3e5ee9c8be9d2c717afd076c9a477352697d2dad8cf8afe76ed9fbfe7be3be74dd7e14789fc7be68a7f7fbee381eb4acb5df0811cf9f867d3de07df7baf7f752cfb68973e6ff1efb19bee8af7a5e2ae5dcfbf7dae73d3dd8c2b7ce56f009982ebfb2a5aee562a7c1c1416fc95b1e415befc3780d935bf9ef9cffe9bcc2734fefbef6fff031b478c7d + + + + + PushButton1 + clicked() + ClockDialog + accept() + + + PushButton2 + clicked() + ClockDialog + reject() + + + ClockZone + activated(const QString&) + ClockCaption + setText(const QString&) + + + + kseparator.h + + + diff --git a/kworldwatch/flags.cpp b/kworldwatch/flags.cpp new file mode 100644 index 0000000..dd60330 --- /dev/null +++ b/kworldwatch/flags.cpp @@ -0,0 +1,145 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include + + +#include + + +#include "flags.h" + + +FlagList::FlagList() +{ + _flags.setAutoDelete(true); + + _flagPixmap = QPixmap(locate("data", "kworldclock/pics/flag.png")); + _flagMask = QPixmap(locate("data", "kworldclock/pics/flag-mask.xpm"), 0, QPixmap::ThresholdDither); + _flagMask.setMask(_flagMask.createHeuristicMask()); +} + + +void FlagList::addFlag(Flag *f) +{ + _flags.append(f); +} + + +QPoint FlagList::getPosition(double la, double lo, int w, int h, int offset) +{ + int x = (int)((double)w * (180.0 + lo) / 360.0); + int y = (int)((double)h * (90.0 - la) / 180.0); + x = (x + offset + w/2) % w; + + return QPoint(x,y); +} + + +void FlagList::paint(QPainter *p, int width, int height, int offset) +{ + p->setPen(Qt::black); + + QPtrListIterator it(_flags); + for ( ; it.current(); ++it) + { + QPoint pos = getPosition(it.current()->latitude(), it.current()->longitude(), width, height, offset); + + p->setPen(it.current()->color()); + p->setBrush(it.current()->color()); + + if (width > 100) + { + pos -= QPoint(5,15); + + p->drawPixmap(pos,_flagMask); + p->drawPixmap(pos,_flagPixmap); + } + else + p->drawEllipse(pos.x()-1, pos.y()-1, 3, 3); + } +} + + +void FlagList::removeNearestFlag(const QPoint &target, int w, int h, int offset) +{ + Flag *flag = 0; + + QPoint diff; + + int dist = INT_MAX; + QPtrListIterator it(_flags); + for ( ; it.current(); ++it) + { + diff = getPosition(it.current()->latitude(), it.current()->longitude(), w, h, offset); + diff -= target; + if (diff.manhattanLength() < dist) + { + dist = diff.manhattanLength(); + flag = it.current(); + } + } + + if (flag) + _flags.remove(flag); +} + +void FlagList::removeAllFlags() +{ + _flags.clear(); +} + +void FlagList::save(KConfig *config) +{ + config->writeEntry("Flags", _flags.count()); + + QPtrListIterator it(_flags); + int cnt=0; + for ( ; it.current(); ++it) + { + config->writeEntry(QString("Flag_%1_Color").arg(cnt), it.current()->color()); + config->writeEntry(QString("Flag_%1_Latitude").arg(cnt), it.current()->latitude()); + config->writeEntry(QString("Flag_%1_Longitude").arg(cnt), it.current()->longitude()); + cnt++; + } +} + + +void FlagList::load(KConfig *config) +{ + _flags.clear(); + int num = config->readNumEntry("Flags", 0); + + for (int i=0; ireadDoubleNumEntry(QString("Flag_%1_Longitude").arg(i)), + config->readDoubleNumEntry(QString("Flag_%1_Latitude").arg(i)), + config->readColorEntry(QString("Flag_%1_Color").arg(i)))); + } +} + + diff --git a/kworldwatch/flags.h b/kworldwatch/flags.h new file mode 100644 index 0000000..7a444db --- /dev/null +++ b/kworldwatch/flags.h @@ -0,0 +1,100 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef FLAGS_H +#define FLAGS_H + + +#include +#include +#include +#include +#include +#include +#include + + +#include + + +class Flag +{ +public: + + Flag(double lo, double la, const QColor &col) + : _lo(lo), _la(la), _col(col) {}; + + double longitude() const { return _lo; }; + double latitude() const { return _la; }; + + QColor color() const { return _col; }; + + QString annotation() const { return _ann; }; + void setAnnotation(const QString &ann) { _ann = ann; }; + + +private: + + double _lo, _la; + + QColor _col; + + QString _ann; + +}; + + +class FlagList +{ +public: + + FlagList(); + + void paint(QPainter *p, int w, int h, int offset); + + void addFlag(Flag *f); + + void removeNearestFlag(const QPoint &target, int w, int h, int offset); + void removeAllFlags(); + + void save(KConfig *config); + void load(KConfig *config); + + +private: + + QPoint getPosition(double la, double lo, int w, int h, int offset); + + QPtrList _flags; + + QPixmap _flagPixmap; + QBitmap _flagMask; + +}; + + +#endif diff --git a/kworldwatch/flow.cpp b/kworldwatch/flow.cpp new file mode 100644 index 0000000..ca06d16 --- /dev/null +++ b/kworldwatch/flow.cpp @@ -0,0 +1,135 @@ +/**************************************************************************** +** $Id$ +** +** Implementing your own layout: flow example +** +** Copyright (C) 1996 by Trolltech AS. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include "flow.h" + +class SimpleFlowIterator :public QGLayoutIterator +{ +public: + SimpleFlowIterator( QPtrList *l ) :idx(0), list(l) {} + uint count() const; + QLayoutItem *current(); + QLayoutItem *next(); + QLayoutItem *takeCurrent(); + +private: + int idx; + QPtrList *list; + +}; + +uint SimpleFlowIterator::count() const +{ + return list->count(); +} + +QLayoutItem *SimpleFlowIterator::current() +{ + return idx < int(count()) ? list->at(idx) : 0; +} + +QLayoutItem *SimpleFlowIterator::next() +{ + idx++; return current(); +} + +QLayoutItem *SimpleFlowIterator::takeCurrent() +{ + return idx < int(count()) ? list->take( idx ) : 0; +} + +SimpleFlow::~SimpleFlow() +{ + deleteAllItems(); +} + + +int SimpleFlow::heightForWidth( int w ) const +{ + if ( cached_width != w ) { + //Not all C++ compilers support "mutable" yet: + SimpleFlow * mthis = (SimpleFlow*)this; + int h = mthis->doLayout( QRect(0,0,w,0), TRUE ); + mthis->cached_hfw = h; + mthis->cached_width = w; + return h; + } + return cached_hfw; +} + +void SimpleFlow::addItem( QLayoutItem *item) +{ + list.append( item ); +} + +bool SimpleFlow::hasHeightForWidth() const +{ + return TRUE; +} + +QSize SimpleFlow::sizeHint() const +{ + return minimumSize(); +} + +QSizePolicy::ExpandData SimpleFlow::expanding() const +{ + return QSizePolicy::NoDirection; +} + +QLayoutIterator SimpleFlow::iterator() +{ + return QLayoutIterator( new SimpleFlowIterator( &list ) ); +} + +void SimpleFlow::setGeometry( const QRect &r ) +{ + QLayout::setGeometry( r ); + doLayout( r ); +} + +int SimpleFlow::doLayout( const QRect &r, bool testonly ) +{ + int x = r.x(); + int y = r.y(); + int h = 0; //height of this line so far. + QPtrListIterator it(list); + QLayoutItem *o; + while ( (o=it.current()) != 0 ) { + ++it; + int nextX = x + o->sizeHint().width() + spacing(); + if ( nextX - spacing() > r.right() && h > 0 ) { + x = r.x(); + y = y + h + spacing(); + nextX = x + o->sizeHint().width() + spacing(); + h = 0; + } + if ( !testonly ) + o->setGeometry( QRect( QPoint( x, y ), o->sizeHint() ) ); + x = nextX; + h = QMAX( h, o->sizeHint().height() ); + } + return y + h - r.y(); +} + +QSize SimpleFlow::minimumSize() const +{ + QSize s(0,0); + QPtrListIterator it(list); + QLayoutItem *o; + while ( (o=it.current()) != 0 ) { + ++it; + s = s.expandedTo( o->minimumSize() ); + } + return s; +} + diff --git a/kworldwatch/flow.h b/kworldwatch/flow.h new file mode 100644 index 0000000..950c7e5 --- /dev/null +++ b/kworldwatch/flow.h @@ -0,0 +1,55 @@ +/**************************************************************************** +** $Id$ +** +** Definition of simple flow layout for custom layout example +** +** Created : 979899 +** +** Copyright (C) 1997 by Trolltech AS. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#ifndef FLOW_H +#define FLOW_H + +#include +#include + +class SimpleFlow : public QLayout +{ +public: + SimpleFlow( QWidget *parent, int border=0, int space=-1, + const char *name=0 ) + : QLayout( parent, border, space, name ), + cached_width(0), cached_hfw(0) {} + SimpleFlow( QLayout* parent, int space=-1, const char *name=0 ) + : QLayout( parent, space, name ), + cached_width(0), cached_hfw(0) {} + SimpleFlow( int space=-1, const char *name=0 ) + : QLayout( space, name ), + cached_width(0), cached_hfw(0) {} + + ~SimpleFlow(); + + void addItem( QLayoutItem *item); + bool hasHeightForWidth() const; + int heightForWidth( int ) const; + QSize sizeHint() const; + QSize minimumSize() const; + QLayoutIterator iterator(); + QSizePolicy::ExpandData expanding() const; + +protected: + void setGeometry( const QRect& ); + +private: + int doLayout( const QRect&, bool testonly = FALSE ); + QPtrList list; + int cached_width; + int cached_hfw; +}; + +#endif diff --git a/kworldwatch/hi16-app-kworldclock.png b/kworldwatch/hi16-app-kworldclock.png new file mode 100644 index 0000000000000000000000000000000000000000..4b86bb5f05ddcca907f88f3a263f1c9038ac6ee5 GIT binary patch literal 933 zcmV;W16urvP)$dl45r zD2k}`;6aLL(h@{MNfFW-Lj!FfZE4b&W}7CNB$JtJee?2O-uCxmgCL&#&foVteLwi0 zkpPsVz4GfXCOg|2OW($E4j@U6C(8o^!wa8xee%}tXhY&Z0lt0R@|$n$|Ex7p@NRWb zSIVP)WLaiDW3aFt5wlBcc3HG=JG*I*_77(+3=PhH&&Vs<4x!_{8=aqarJbpn6_L+x z3EOsrZ9C%reO-)>FN=@5m&DMmWs%ivaW`j+Gu`v)h8Ow{KG-YG9Upx6#6xZ}rp zgo#AL$bdiK!|#K+1&!-7CN))IY}=!uDikq`N?*>Itpn?mJ#%Vm**(zme3<&W1gTV- z+1Yt~*%d@(6_u4`)Rze^T(>ybn#ZRqn3lsMyR3qV$CE!z_qQ~u9*U3vMNvrB*RV2j z6aCRfYHO=;9FNI+23y-M`OP)*hDAEN$+=6n2$WRTG?d zW6i_^0fZ13hRNI-sP+nHyY4WX&atYyY?%gl(>#0ZEtz?_4O@M z^PBuJ7vj&HjTDmESkq9HAZ4NQo5FpFomm#P^ zfhs5sNu2Kr{fWCJ9a#7EzeGP~EtBZ)34mjT500~qDf(nEK62D!USUvak z7pGxcSN;&p6nYho-y43S~Uo;>Vu{N51{|!&4&DJF;Wr zzoJHc)yK|s?rGV3LRJEej^ldT#_GiA(3Rf&=r0tV-obE00000NkvXX Hu0mjfkdC*_ literal 0 HcmV?d00001 diff --git a/kworldwatch/hi22-app-kworldclock.png b/kworldwatch/hi22-app-kworldclock.png new file mode 100644 index 0000000000000000000000000000000000000000..9b377f1c14920a8c8bcf0ddf2d4675c82b36ed0a GIT binary patch literal 1544 zcmV+j2KV`iP)@J>}c@2M}{oS zWcv__1R=`;Bw2zWFoeT0dZHYv6_vC}lpV{kz{{t``%WC2S?tdq{a(pT4c2mZKK1RU z^62$kZ~BE3(@&rJ*^vP)7@|!WriE}g2tnXM2|y_U$2d?zAi}_nZ6H_CFw)B-5@47b z2?mA_OdWYh=Vpq#_WEnUZ5s?1=NkqD$5Cs9Q>!GCrj7gAK2R!khDhk?~3Bz)*{7DX< ze5P^}Pn|tiy7$kwn5o*Uo=fVx6(cd&r-PX~{QNG&i3!M&2mrwMeOQ)_hgB6dogze4 zl2JUeR3?3{`P666mMTCZmCz+v+|kDUK4_?fFB$J7Y@Vs zeR!S^+jgLJOgt!9$kiFv?_bAf8#Ppw4s;vvC<8A_@bnHEjS8PkKXIIcUD8!;q!dms z9P8oR-Jlj&ybGS|LDvn~mWy(^j_rbm>y;0)=O3fiv0&H)9^oJdV;IWJU@VhG zBoqSgP?G~pSdHu31!chE(uYq=A&I~=(N;B7t1UED2Rl_CYkL9QEI0_qDT;f0AcP0w zMKC5|^6(-?Co&+ejqKzY)KaC%003SEt=-peZS2msZr{_Q2T}=)Bt%G}jJC^TR{`3t zkN98=o*zIk(gR;nKnOwqXbN)+3()FSB*z9YKH7&{?^adzXapVG$WdzM8cKfloewt= z>xv;gJ&j0j6o_#MNdhcN;o20T?j#J|L3d9AhnE)68E1w`Z14JU^I>1?Q#*ATkaD1tbQ@3<&T*kOz|S5T+&vks9bi zfcX&MVs5er2hvGgdh^2a_O-wMp8IMeIcllk#HJI6=CVfz;t~nV97GNf86fjt!U7Ny zDPlo}kU$WX2zsMD5@Ck5mD|;efBfaIT%)}97z|tW>YLYYv(V7^lZ&(2M1&E6egW>o zkMJ*7R3Zq81Rt(!w9mix>hIcntA7IEJPreZrL^;RuU_4$a>>z5cB(%fU~1b12Okmx zc;X`<08t5u$OMMr;KEz0rSrde^|y`9_x}L+oyWhXuZPO9c=qH=OQ+8LAfB547AJMd zk|a>i10=ymZ_sqq%68*l7vEmFb?MLNoz{a70PL6j|A!x)v*>VW;NbDDkwf1J$A=~; u6(p_QXf})MchubVWv8{h3OLoTU;Ho1XL#5Hwf9W`00000n*iDWUBQ%jZ1^>??ePHW}lj=}!c;xt0=Kf4FaLfpaqoIIE zc|K0dbe3xk=hVVl>*W{DEI+?lu?n1e(EC3DP(SsI6p03myASq!>DW~F!@Gx!-IC{q ztW8U{EeBbWP(vD;uDX^d)n3gNUw!4w<$rzS%-}r&`y8wuHS9Toz^X>P1qW_zJ z_^E-vOsf81CBLfac2nw)`GoumY28Q1rnFL%%f-#mw$aS?k&&JU+9EAC{n5*{rI(t& z^9m&H{z>e?2X{Vk{7C;pW}y-sj<(1q+6)c#qpAw6RufHA5kjHSFv%~jvQP+8l4G=d z{O3>QtW8&4He3FMO5J*OAz%5W-*#r1{^R;@1&~Lc4BUO+j;}xX(B$7+#j-dt;WIKA zLs12RfQk?TS(X4F&-1Zumv-C1vf7-#ROaI#ieH?=~QV>^Q!*_9N>_N9}DKR!Gu!ofdno6dNF`=(j@aqR;E_I~nfUrCPj ze=gE2D2KOu%*`!Ot8LQN6(N?8 zd!#}zIGj`yJ;}Su<;M65pMIUy9~bWc7@B(Y8=K+O*!^P-4(;z}U?7WSS>$rpX*Nxw z(J+c4pk4>d!jT27mPxbOA{5dI1yp9{>s+fxkgF?MQ3Qq&CX-3h*H>hAHqWnqHBB~~LVYWTo9d<%&@oMm zbUMzC9iynK%wXK-zw&~J+n~{Yue(!02nm~AN4Ad@mskJcV)biZW%=>t+W>7e!!li3 z%__B;hGB$|B#CUci*!1{&6#=5UwD&3vBs`UKifw8h{vOZLP0#wXJvU6uf0jl?4fFV zR2wFWknw#VufwuGE0LQoa_GK;54EbRYctE@QE+_)z;mTqL>CD?948u$;rl+m?;}YP ziYzl!TqZIxMk{fM?(P)funvId`B;`sGL=RPdguWk;eziv1T>9O&BW~xC_-j3ZSzcS zT^c`d=uc+;d++0zuV0n{Wc=6TG0k5t+PJQV>w0*e54MeW=@RHVnaN#@j11g1z6G$= zx7~IrY|5lUE-iZln9)m;MUTt1AGG z>HRFE$%k(gBzB1Z}(?P;#?#5LP9@%&3x!nE{1z>%?ak6WB>+|JI>fpliD*b&v z_Cg-FTtVBv|20PDw)gE@3C5L$+# zbUd_o>oRIQ<(lHpF1O`C#u$iCg%wY#cnU3h6J6KwJfBLXifwziu1~$*pNo5e!F3^^cMn7^Am;09DZ#9vYAeHy4V^+e>R+ znQF|Z=l)JH+K)&FQyd$OLajh9SHLh-OtX%r1@V1Bqv_#F5lWFPFI;G0*4Np#C&PvF zw~*xb?G?|*wmp(veI!$HGF?g5m-2)S9Z4vL^6t)+)1!-l-@okq@}(u^^w~HM9PeQw zqu>e;KM=u`z!w^;w#=m!kBe7Iq?0bYj_l;tqQRAGbGWwsj&VSbMETf>`^jdznaf?| z&9mn?aBvUV?j){b`^x(-2itXv$#f%o;ryFCF`ptDO_E7P(e*HrB;m;lj-nFM6$W=j z2uBTCo{Z2V1jA9xM&tHaj%_o#doR6xJ+$jp#>NJi+A~CVDuKJ%plvoQcK|qT_k22= zdO!)xBPn(2%{tXhk4PfHp%eEav?u_w1P)N^Ot|T(Xn_ch?QdmQnnusyAa@;_!U)LZ z^JV6*-z1eV*t2U0)p6ZYd1K}dfQIRuj>l6c6g8v>AtM1@*)%;v1H=sj#{ka z9|(jD(tZ6b&0YryVyP|$h6jj+RRRJcdVpI?1s3va7(s=&5~!C8h1?wgv-!#kAD`@g zWMaqA*v!oW+s1nNy?gfK$r_dowzp;6**enr{#KX}l3>r&Zi=_o2^&EUAKgc`Cy6S# z)Jiqt5sk1B!*yNuPYm+ZKmY8yvv%(69RQx~&Af7P_3R%V9~oO*ZF2a~He$MlX@eqx z(*baO@ZJR=OAtF+dR1`&m)@B38w3ytU;tQXhVr{*OWeH}_o_Y~`?$!sV z<)1k@`S53V{95tdNID&1_l^vfyJg&Vw+!EQK?gwU>@Vd#m{5@Ib<=R81t;#!w-wf}wRZ01@q7_4jF514D(l zE{N*_U4uvvPQEa+dG)pDo&t03jAKo_}-h{4btv&i&{~XqVoJ9RC}D+bL|aOPl!eBjX1?aqr~B z@Xk;;7DEY#JcQ)AKCWZCt<6faUMiL^PQUS1;quRa&iYUP16T&!|M~0qBSlpRjdscX z$9G1O@$pzVxLp-e#B)6?%c_>k8#h|Tr5hBdui%w70P~|p`wiOPZEcUTG>`xQ002ov JPDHLkV1m+J9`FDF literal 0 HcmV?d00001 diff --git a/kworldwatch/hi48-app-kworldclock.png b/kworldwatch/hi48-app-kworldclock.png new file mode 100644 index 0000000000000000000000000000000000000000..76ee01d789e40c9dffef8b684e15a3269da8109f GIT binary patch literal 4825 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 +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include + + +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include + + +#include "main.moc" +#include "mapwidget.h" +#include "zoneclock.h" + + +WorldWideWatch::WorldWideWatch(bool restore, QWidget *parent, const char *name) + : KMainWindow(parent, name) +{ + KGlobal::locale()->insertCatalogue("timezones"); // For time zone translation + + QWidget *w = new QWidget(this); + setCentralWidget(w); + + setPlainCaption(i18n("KDE World Clock")); + + QVBoxLayout *vbox = new QVBoxLayout(w, 0,0); + + _map = new MapWidget(false, restore, w); + vbox->addWidget(_map,1); + + _clocks = new ZoneClockPanel(w); + vbox->addWidget(_clocks); + + connect(_map, SIGNAL(addClockClicked(const QString &)), _clocks, SLOT(addClock(const QString &))); + connect(_map, SIGNAL(saveSettings()), this, SLOT(doSave())); + + if (restore) + load(kapp->config()); +} + + +void WorldWideWatch::load(KConfig *config) +{ + _map->load(config); + _clocks->load(config); + + resize(config->readNumEntry("Width", 320), + config->readNumEntry("Height", 200)); +} + + +void WorldWideWatch::save(KConfig *config) +{ + _map->save(config); + _clocks->save(config); + + config->writeEntry("Width", width()); + config->writeEntry("Height", height()); +} + + +void WorldWideWatch::doSave() +{ + save(kapp->config()); +} + + +void WatchApplication::dumpMap() +{ + // guess some default parameters + QSize mapSize(kapp->desktop()->size()); + + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + + QCString themeName = args->getOption("theme"); + QCString outName = args->getOption("o"); + + QCString ssize = args->getOption("size"); + if (!ssize.isEmpty()) + { + int w,h; + if (sscanf(ssize.data(), "%dx%d", &w, &h) == 2) + mapSize = QSize(w,h); + } + + kdDebug() << "theme=" << themeName << " out=" << outName << " size=" << mapSize.width() << "x" << mapSize.height() << endl; + + MapWidget *w = new MapWidget(false, true, 0); + w->setTheme(themeName); + w->setSize(mapSize.width(), mapSize.height()); + + QPixmap pm = w->calculatePixmap(); + QPainter p(&pm); + w->paintContents(&p); + pm.save(outName, "PPM"); + + delete w; +} + + +int WatchApplication::newInstance() +{ + // dump mode, used for background drawing + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + if (args->isSet("dump")) + { + dumpMap(); + return 0; + } + + if (!restoringSession()) + { + WorldWideWatch *www = new WorldWideWatch(true); + www->show(); + } + + return 0; +} + +static void listThemes() +{ + QPtrList _themes = MapLoader::themes(); + QPtrListIterator it(_themes); + for ( ; it.current(); ++it) + { + printf("%s\n", it.current()->tag().local8Bit().data()); + } +} + +static KCmdLineOptions options[] = +{ + { "dump", I18N_NOOP("Write out a file containing the actual map"), 0 }, + { "theme ", I18N_NOOP("The name of the theme to use"), "depths"}, + { "themes", I18N_NOOP("List available themes"), 0 }, + { "o ", I18N_NOOP("The name of the file to write to"), "dump.ppm" }, + { "size ", I18N_NOOP("The size of the map to dump"), 0 }, + KCmdLineLastOption +}; + + +int main(int argc, char *argv[]) +{ + KAboutData about("kworldclock", I18N_NOOP("KDE World Clock"), "1.5"); + KCmdLineArgs::init(argc, argv, &about); + KCmdLineArgs::addCmdLineOptions(options); + KUniqueApplication::addCmdLineOptions(); + + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + if (args->isSet("themes")) + { + KInstance app(&about); + listThemes(); + return 0; + } + + if (!KUniqueApplication::start()) + return 0; + + WatchApplication app; + if (args->isSet("dump")) + app.disableSessionManagement(); + + if (app.isRestored()) + RESTORE(WorldWideWatch) + + return app.exec(); +} diff --git a/kworldwatch/main.h b/kworldwatch/main.h new file mode 100644 index 0000000..7b4c3c6 --- /dev/null +++ b/kworldwatch/main.h @@ -0,0 +1,85 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +#ifndef MAIN_H +#define MAIN_H + + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include +#include + + +class MapWidget; +class ZoneClockPanel; + + +class WorldWideWatch : public KMainWindow +{ + Q_OBJECT + +public: + + WorldWideWatch(bool restore=false, QWidget *parent=0, const char *name=0); + + void save(KConfig *config); + void load(KConfig *load); + + +protected: + + void readProperties(KConfig *sc) { load(sc); }; + void saveProperties(KConfig *sc) { save(sc); }; + + +private slots: + + void doSave(); + + +private: + + MapWidget *_map; + ZoneClockPanel *_clocks; + +}; + + +class WatchApplication : public KUniqueApplication +{ + Q_OBJECT + +public: + + WatchApplication() : KUniqueApplication() {}; + + int newInstance(); + + void dumpMap(); + +}; +#endif + diff --git a/kworldwatch/maploader.cpp b/kworldwatch/maploader.cpp new file mode 100644 index 0000000..236abd3 --- /dev/null +++ b/kworldwatch/maploader.cpp @@ -0,0 +1,172 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include + +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +#include + + +#include "astro.h" +#include "maploader.h" + + +QPtrList MapLoader::themes() +{ + QPtrList result; + + QStringList files = KGlobal::dirs()->findAllResources("data", "kworldclock/maps/*/*.desktop"); + for (QStringList::Iterator it=files.begin(); it != files.end(); ++it) + { + KDesktopFile conf(*it); + conf.setGroup("Theme"); + result.append(new MapTheme(conf.readName(), conf.readEntry("Theme"))); + } + + return result; +} + + +QStringList MapLoader::maps(const QString &theme) +{ + return KGlobal::dirs()->findAllResources("data", QString("kworldclock/maps/%1/*.jpg").arg(theme)); +} + + +void MapLoader::load(unsigned int width, const QString &theme, unsigned int height, float opacity) +{ + // find the maps available + QValueList sizes; + QStringList files = maps(theme); + for (uint i=0; i= 0) + f = f.mid(pos+1); + pos = f.findRev("."); + if (pos >= 0) + f = f.left(pos); + sizes.append(f.toInt()); + } + qHeapSort(sizes); + + // find the closest (bigger) size + uint size=0; + for (uint i=0; i= width) + break; + } + + QImage image; + if (size == 0) + { + image = QImage(locate("data", "kworldclock/maps/depths/800.jpg")); + size = 800; + } + else + image = QImage(locate("data", QString("kworldclock/maps/%1/%2.jpg").arg(theme).arg(size))); + + if (height == 0) + height = width/2; + + if ((image.width() != (int)width) || (image.height() != (int)height)) + image = image.smoothScale(width, height); + + // convert to light map + _light.convertFromImage(image); + + // calculate dark map + _dark.convertFromImage(KImageEffect::blend(Qt::black, image, opacity)); +} + + +QBitmap MapLoader::darkMask(int width, int height) +{ + time_t t; + struct tm *tmp; + double jt, sunra, sundec, sunrv, sunlong; + short *wtab; + + QBitmap illuMask(width, height); + + // calculate the position of the sun + t = time(NULL); + tmp = gmtime(&t); + jt = jtime(tmp); + sunpos(jt,FALSE, &sunra, &sundec, &sunrv, &sunlong); + + int sec = tmp->tm_hour*60*60 + tmp->tm_min*60 + tmp->tm_sec; + int gmt_position = width * sec / 86400; // note: greenwich is in the middle! + + // calculate the illuminated area + wtab = new short[height]; + projillum(wtab,width,height,sundec); + + // draw illumination + illuMask.fill(Qt::black); + QPainter p; + p.begin(&illuMask); + + int start, stop; + int middle = width - gmt_position; + for (int y=0; y0) + { + start = middle - wtab[y]; + stop = middle + wtab[y]; + if (start < 0) + { + p.drawLine(0,y,stop,y); + p.drawLine(width+start,y,width,y); + } + else + if (stop > width) + { + p.drawLine(start,y,width,y); + p.drawLine(0,y,stop-width,y); + } + else + p.drawLine(start,y,stop,y); + } + p.end(); + delete [] wtab; + return illuMask; +} + diff --git a/kworldwatch/maploader.h b/kworldwatch/maploader.h new file mode 100644 index 0000000..efce45f --- /dev/null +++ b/kworldwatch/maploader.h @@ -0,0 +1,81 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef MAP_LOADER_H +#define MAP_LOADER_H + +#include +#include +#include + + +class MapTheme +{ +public: + + MapTheme() : _name(""), _tag(""), _id(0) {}; + MapTheme(const QString &name, const QString &tag) : _name(name), _tag(tag), _id(0) {}; + + QString tag() { return _tag; }; + QString name() { return _name; }; + + void setID(int i) { _id = i; }; + int ID() { return _id; }; + + +private: + + QString _name, _tag; + int _id; + +}; + + +class MapLoader +{ +public: + + static QPtrList themes(); + + void load(unsigned int width=400, const QString &theme = "earth", unsigned int height=0, float opacity=0.5); + + QPixmap lightMap() { return _light; }; + QPixmap darkMap() { return _dark; }; + + QBitmap darkMask(int width, int height); + + +private: + + QStringList maps(const QString &theme); + + QPixmap _light, _dark; + +}; + + +#endif diff --git a/kworldwatch/maps/Makefile.am b/kworldwatch/maps/Makefile.am new file mode 100644 index 0000000..5d3d86e --- /dev/null +++ b/kworldwatch/maps/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = depths flatworld diff --git a/kworldwatch/maps/README.maps b/kworldwatch/maps/README.maps new file mode 100644 index 0000000..fc35886 --- /dev/null +++ b/kworldwatch/maps/README.maps @@ -0,0 +1,10 @@ +A nice collection of maps to be used with KWorldWatch +can be found at: + +http://www.radcyberzine.com/xglobe + +If you want to use your own map, you should make sure +that Greenwich is exactly in the middle of the map. + +Bye, +Matthias. diff --git a/kworldwatch/maps/depths/400.jpg b/kworldwatch/maps/depths/400.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1447b3d9c802a39197edf234d9439e2d315a4829 GIT binary patch literal 28526 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 OlB?9m5NYfWMgQ3dV9+@L literal 0 HcmV?d00001 diff --git a/kworldwatch/maps/depths/800.jpg b/kworldwatch/maps/depths/800.jpg new file mode 100644 index 0000000000000000000000000000000000000000..38866b638666c693f18c084f2a064721186dcedc GIT binary patch literal 105465 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

U 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

>D^H%){0i$S!%bGedn(-yIjjA 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 X{C|wB{U6VU|BxT{&%2CKoR9q%Zx;sq literal 0 HcmV?d00001 diff --git a/kworldwatch/maps/flatworld/200.jpg b/kworldwatch/maps/flatworld/200.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a60367117dca53fe5bda9b11373572f5f05881da GIT binary patch literal 9330 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 EFXOz0k^lez literal 0 HcmV?d00001 diff --git a/kworldwatch/maps/flatworld/400.jpg b/kworldwatch/maps/flatworld/400.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3dc3dac0ac8b71556b4e9aab081dffa8cd2ddbfa GIT binary patch literal 22751 zcmbrkbyyrh*C#r-1QI+*2<{R*0WuKW2A9DG*TI4Z5ANOXh?SM(ny z|5ptD^YOnf03kMD2qggxg&u%Ph=N9l@~;m-4L|{)qM|)d_rD1X8v_#!9S8M4-7*Bv zy{M=tXsGCD80Z*yXn^N;(E%8kghW`xbR@jkr1TOD>ZW9Tk{V{O`JDrGToRKC$QhZK z1vItYf>TmwW)Xj%*-$?7e;(uiHOMm`bQBEi=ROg_=NbHG0CaQ=R1A#gcTi9X0cdo* zL=x!grq0Clfr)$tb=@SA8dHB=lB6`v>i;nCn-@->{#yj#p*?>~h(-ty2b>y{5BTwB z@y3{w5B$%I3meEsCnQjC!h}r;J4uK)6aYY@VU*QG<)z{0CnO(m-eB^REA0Gs)U6V$ z2uCccqaNk#9Tj~NC{~}kyN5^e=nElYRzfztbMMK zQ3};|g1ri%8Z`mW%lAGKhEa_7sHmdK_*xAr5=|$go)Qpkk7DgL`)b4trIj(2({*Ky z_WVhL4xiEb+ib*2+jfmF%(QrUHjPT=qeD7tVe`l@BBk0+hw z^rwQGKvVic{mkLDVEI8RNv~=3>cO79!`I=a^^8POR@UJaP?^hy} zNtj>t;mhZ>jT@swTN6t9gq>PzW+!pf;rZh4W6#R19VqXwI?C8@V#}I7bN8SQka74u1o0U75nuvu;bmMg$Xjr=;=iwA|mdk zeWe3N1qQp_(M~yL{**qB8C!L@r1xutyhBz6NQetHjJ+Ffrg`A7{0Ep{{0F$S?t?ZZ zO@OwsH^lf4EWRj0RH4|zd3=`pSzsseJCZbJu>5bIpb=yZo5$Ovs_tU!;;|I zU>-x1J+Xve?2a9yl4m|eF*In>$z;wc*k#k8bo>jvO)2t)mf(;9_IM&X{it;-2d>$G z`BDZfp6xIrGV&{V-fQJ#V#6fb5OX;E(f4p(-}B>SL?)3+>MPvFzei_(S0`UtTYvoP zXGf~X4u>GJY51DUBQ4}ysfT!^J5PD9?)wH;`NM%9?(j*Y8$MUsIoRW2I9nDOAzJhw zzLPXHFGHt^tUebfRLReO=8<(34j_!L9ehkoe!}_(NOxRgI(pg=elY$ApuT-ToIJq1 zB4JaOPMEP}NCNr0$n$m}+vU6$eD76w(U3+jFXFJfBe+$S)gHyuE58AnR3sfE44ka`VO^5ng8q`pj_B(jA$-Q zUI266mOmbBl%w*f`F*vS&GsmDR4t~>+p43@+Cagu+4{dZfrTAZ(cRX+TBI9C}^fD2z0!bUCK#d7{$#|;lNX|`)$Ybw~P zu@WkCeyGa-{CjajS(_?0k7bh`+Ajz#rlr~3+|80&%bK9xgt zpW^5jzSz%CwX%$gy()ZdvrQ|p!WEF0gZ`dZL;Q(g+@Je7sw-_5BiAv@UawznQM$c7 za4nI|t6s7^LQ?5p5>c3BOu?#kR~!f0bm%4PpduPw(vzJfZig^+vuTEX21u6Y8Z%=w z;rVylW4)~ybD=mckdn3j_%RoJOJpegh2Y{@hi+9)RiK|iF=Qe_NgglIh|z@y{WCu= zZR5uoZ~aRfeIUl!8?G1Q9!u9!$C;HIT)kgBUoSxSpRD(2ST<~16!cH_I9aS4N?h-d zLN>6`D_kWEi%R^~3UMotX>AF)z-Oxb-s;AEZF8w+k6t@5qLKIebKi=HDH!&qoTm(t zgd0bRdSN_;Oi|bj(QEjXV1f)(L}b9lSWNbjl<7{B#+TUlw!YOG;F6vDH!U-CD|D4Nab)!||lv#YuwDUd=jwCEOFr+hVzz)A5}h%6no0rdxU^JA8S zbnL(J_2MPGG1mMo0~TnSaFgzLdbPZX!9ln>@)peWChIb;MEu0W7+3pdKDQH*fmOry zs0M)VAUq2Ywsj#9Q3M@p#xq4eZ_R!&-G;Hrod2Z;Dc0tp9$9I)9$714@M7wyCXz!< zQ)$0V$(}h)!e!q+|J!Lo208!{KVKk#Jc*t@Bao0hGKoI(8Qe27Ga};7`YVyQ3-5MY zonFp5!b>JUPZMLHep)b7fvzdH9Wy>9zTINtC-8R$_6>v%w;YdV%5JZbXHkB(h@}RT z*zDPVPq)aFU7!rDUHZ+)bMl>?U@$5cGZ5T3YKhO)CTOo;E-C3%*(z5mdIaBcPAhrT zcMDyhqhUYU@i%bw%G&6RJn#He@55Rt9cU8nv)7<-7#YF9q={Pt=RxDW%laOeauYZf zdE+P~j=vlOW->^yHJp#kFi7`q0sRBK`%G+Q{xd(*`0QBBCt7rXW4RJEWfnJ4Sg5m^ zx8r|wHC*yL=(8})A-@zIgxYUv)1$hQs4Fc+)nIk=MVULfEa_VNt#8?*c&B-Kgz*aWq!!SRZx=17dMtmSCF053EP4I_&&N*35`W$*hx5{?*<+bI zmXmwyyt@gomd9NP#ScFSb!d4`MIMV4v&qw0ad*i|E?)}K5%#( zrL+G22Ur~cGE2fLIEk?D$FH9XuB99eYiQZ5!f{1sM-PrIwB}(X`v;(yzX5(ILI_ED zTonHU6i0z~4sy~Xb3)`V+Ud-%sfNP!tGQ3CL}o4~{RZ}vR5V+%DyDom@q&Xm1`Xzg1;ywrHA%!~DA3`ax`K9sIcB@{W2LnZ#M_5(Jw zn15It?xdoM%wy}*R4svAo{KBUtjBut&8MvN*b}Ppz&)IA4^jJ;J<6W%QFJ+9@ zrO}?R4T_O7EsNPAsaBH>&p%7HY8G~yVVcM;%WjQ*8B$dK;aFCFwEWAyzLZ1IhQV>B zDb8roRto*EA~!;~mO< zgJ*9ef0Pg{bG~CWA(MERoKjKlbH93zVwJW7*1XhnkauwegVN(?#j+*k7AO+0ameh6 z)-A?lK7k?wW*&hZM!^alZg0k6sUseY}0wYpDG67ghI`m!B zIe{Yj?cBXK-;SD|<}9ALOR}Z!)&*7{)Y2XX3%U>TtcxeA5c9CPf<0cSVH#0Z33@jg zSy!T928jetqy%0c2n4d+zet~T-lkNLU4c*inB#-95YDTS{nD)?f#`!m^X_95Jap=q z?w^=j$=#T=lM#86v4f0o8Oo;*1vAUd2Imf>PBvHT8fB<0d;HgmRh;Rlj3&*b5m*yuvtl!3R1&!w!p7tH0%5UIvTv?B61c;HL~PqHHE$>=u^NY||O*y#;oqOn)!p5-IcTMU%EAs_R=aEhuzxtu$}M?!Ewz z=tEHO=~&Wf;YH8KMimFF3Tgej_)_~{U-Yy`AT=dSojnBsX;!WO0Aj1>T*ckZbJ^4RrQRnCXl)dYyKtKf_DRpuB;k%alPyahD=4}Lk6Lw z-hw24zWn8h0IhXI6i{O}?0a$h470*<@mr*SYL?q3i$duKtV`+Gzh380M&_q6BYSQ> zjxv7w9bB&u--$4WVn;mE@)J1N;f2b}E8tP(n0z~nXNcQq>(<9GLUX^fte~oX>u9#l zY(-CRWo1TBFPfQo6A=-gnVJ9WO>JftTmVK`bsc+HiI!qPL>wQ1=E? z1O-t}Q~QlDn=w0Ij80KeQpfsBjo7o+Xt9Y`7HT$RvxIUMIGVjz<~xq!Gv*RT$R$L}9R^64{0jTsJHAPy@Y3 zQU3w(!`3dj5bZjX)vd{zeeY+!6Z!6W?wIV@HQ!t672kZ`tTs%2yhnsqxBLp3;#|($;5ywfa}j+;yAWKBp%-$ZQItzV!ki{>nW!T1->FkGl&YZuyHW zLLylA;YI%@UWQ(eQVGGEE)u+Mko4HrN$`|%WPI+)B_qpp_(V?GsYp>f$(eHJmUvC^ zP9_z#(3;we$_%&`De$5%=tz{bgxShW4I5xi~^a2{7^(jGkMW=085t1k*y(z1nimIvr)+2N*Spi`GSM~);E zCx0*ArX#TD-f0U6bUJ-#)Xo=N-B7gue0x>6Bp$W&<>cqfWs;Njj)kU`GuWNAb=YaA z*h=QF1?1MGW)JMZeL!dlsBF-QL7G~_rQtw;j0|KEV0yiTK1EL|i6D2FXh6O+faf#a}-BvbSPg4KNoFsE~81mbn@3 zU>waMW2?VYe{RR9;GAE5c&A~E(!Hnp_MzikddeHz-AK?-^Q{Ovoy`du4;s0QNaSZs z@l$VAGW!~08KG}7gi%j06d8#w{mBF%Ep0|CZH6w(u>L=z8u5+N?i80XZM-qKG4gp5 z&tALVS(8Sxi}od$e1K1HZ0}I;;;OOgpb48w3&xsg)jIr1SmtpnClKdLIs_yk=X@$o z%$wLTDbw+x2`EQ%CwYE;&2}in_O4k&jLA0YYkuTu=%6NbJY>?PgpV(T<)(llpn}0@ z&LJtLn5LImY{c&%C(d|}rBsIq+xm4O&x_D#f>G^U;HwylHh3r%#r-g!qD7~5=MG)S z6Qz;S;r!N!-02E7`d%E;y&#lye(vo+sjA?Y7J zOO}iTLz$2?gQ`heo{>$Cz%k_-=?XuLef?Ftu}Xh42Zw?Vf7n27+7DoJ6GCS8o0DDe zH#_E`Y)pE*=(2sM0nguiYHo)lP8_9@ymQKUaaat4jGvAr}R75Od3n+W65~2bVG!#7smj_|dF- z=~(KFb<#*Zrry z$pHI}u@xhQ9|f}RvqCQmv^KZuq_tIge{ahNjW3RBFL7k%73gsCn(+eY0Q9`usXk@i zs86=n4-Kw1NT}8Itj5PTeX@!_F1cK@&`KOT5 zU8{BPOvP?&z;|(e{{ip!-NFMkxqIQ(lFS_`1VxrG)9$v|Od3`i*5`$4qm6?{poD!* zNT?o#rnl{6En8I>+mHTDchw#zEP5l4LmsTEd0>Q|)HDjBK{ zD%=%(j!|prBSFXQR$LGq2}`0sCpO-9ul%ldm}AT-YWO!k*wb<%{j7$24w=d<%43vh zDbX8JTcz>UZ&Ge}tvFG4zlIbt3)jV1YHbFDzXz=}4_sI9S*A5L)mVkGf(^Ij)o(LI zMk%+hf8)8Uh0AHoaej*_hz&1Y?u}V4x}8h0EnMvvnKf*ZZ?DWIE72);Wvd_i^kw*i zN%(}R<$Aqf(#90$po4qrHRV0!0VATKE5-*tL3WWfreDgG!~{U_p!ZlPipE7)Sedz~ zcJB%G{NeuO$gwY)FI{<2HT8 zE)R_!$%nMRCSA7?H@y@XP1aNjUrUJ6PXs;{L(fBdU()+Z>Z9-Mke3JE^ZJn{Z3|ez-NNiHSPBq&oU@ zK!#A*>&gf=15CQvq5kISMJyx)7cw`KQPnJM(E4Kyy&QUuOYaQyY6xT>&qFlHQ?e_2 z1!y2QbZbf-p9;L&wN*+wQ};PO$z>JJB#Q#tUS&8(bIwVC8NG17#&LqUN%I0CrbF&7 z1+vY5^t3^%Udfcb84>Xe zeDryR^rHLp3}q8d{6uBA1zpvz$KOy?1gc?d6|Q+c2bCtQoijVIXqL`^L1j?E^d<)e z@DGyIEjEQ(FqiAXhJIoDJDRelelTjrH92nvX!VP@*wSYXsu%iMSqI$na}X<)ZjTIh zQVJeRDIE_Q+SZY`P@@&g>D)}o_gnq zLs!Ut+LTRu-1)c?*2G>Edn ztoyX+SvDVOs8=??ZLiI6ng+J#<>0Z$Aki%3_D*xCNS{UZJ1Ir;z3$NXy-0F$>{2PR2wGW1j~Obq z)QO4uWUnldQbA!h`iK-ax%4wI&0AJX-^ADz!7M5+FU-=SZigf-SwWJf)^~sOL2D1f z%Jz-3JAUb0g(o+Yk!?hscv2l1{Y-?^)D%=L&PGGOV{SCSqyuYdoJ?*dtM5B`#HQhw z60~Y3enmvW-(2&Qn^)?aD#PqNu8c-WNi~yLVucqU-FsSi-TwiyjH~+lEe^VVPsA#u zQ}w0S1xj&MSv`n0~Fr{Mbcj zqQXngoWMAW`}cRj$r33@f!)%Sq==|S;D-(U?bcZu&aj0|{Z z9E-;1-2Ja~-T#xg`>z&ljYfwtysy2eWXi~4`W@=Rv3v6#RLfYruu*`6-)tcwGgy;U zpP{e2iD3xy#XF-%DQ1-ZaTDxGmjXng&Sc)5u&_{{`{^AyG4f<>LZ92U6A5mp-0-x6 zJvww4$ymE;^N`gPslqneMHxpfiiTGoqj^#hp5ZZd_G%uz6t93gu$=)b^VWSUk<7R! z=KnOrPM0qqc0R6=mY3r^v{mc74Q}m8aMjTd;N7rHpO)6k6 zezQ)ka@F_H997ST%1We;c5cI@fqZCu)ZfOan3uD`EW@Wq!;?YnLPG)}Sj>**KWFYF zdMa&O?g>P{NP}mznq;8E_mfE-jr9Z)^aL*V1R5L_qj}i+rk|A{Cch0!O0l@Y8Pp%G zZW2~>8q{npv_ls{1(%er)@6YyM1cz5BeTi$SU4>$(RnT&SI=#SnskJgqGQ{=hdl=B z&1hxCP}p?)xLCFPQ<)?=u%C9X`T5a|io>Hoz^{+be_S~Czr?_zdDpYy?e{&VQh-`)bKSzt zZ42C^xA)|&D?9TT`s21}#4!Us=t#ZY&cFrM6FmVRQPs|>F}#3!tB^Omy^lPli_Bn6 zWIa@5v@)~Aaho7g+DoxCa*MUFep@#39wKSnnpb4b5TN2GJ?9#$Y@1D*Jfx|wYFB|u zXEqGFQkf>3Ow)23$>OWG2VZyNi@S)jF#v}~_#;`HnBuR`d?!?Hw-h;b*yNG7dk4>I zn{)el_7s2TsyW^Ze=X*;n4in2wnK><8k;bYmKC#zGNTu>a%pv~f$YSenClH3?0GgO zq*7N-Irer{y=hpkNYlCc#h5{m1YK};W%(nB}gB|eZru}AVVKB`8hSnTb6OKBi<%1fvKdYu&s?%EKE zY_pz{sM zE3wV4hUVm{1TSqwZ|~Y&pBLm!+JCn3_~^`&uu|IDksQsuZk>Kfk7F-HLq`Z}4?cH{ z&YDxoYO!D_{e9N?4-+AQ20x{vV`rXy^IfNLS;K%$*vw}+vkpHWpR4NNeV`L&0{rbf z8__7yx(ydmhO3npCjYa^BN8oAWTKy@izVcsN3jNK^YGT!DX-4o&f5<*^Cg8AAwRA+wp7^KsGHsvS22U&QTW$WNt+v%w zm=vw?QqW3U^URrEn7K75AGrmF122U4d7XPD1Uo+6)lRe7!EWY4uwVN8P>45I~Qt5ji|M1KO z#~JWIE4~P#SrlK%Lr_R$3BkShp21)#jo*NFudU2Q{-|1~lABJ^jcbAclaK5YYx>CZ z1yX&p&2;`u7`aegW0f4Rx)@@YSNT;9O!BA#!cIf21h;&Td zZu2&H(9t%aCWpSpf_iPHz6lVdf-H2T=7p`UYOCA3-(Ami46#EU90-e}dCA`3oN07) zsR@rLIo#+lp=UZY=r6@7TU^_s z{sU5$XoJl4Qq&&qk|J1ORpk=!U9VA0hQ zZf(7K(qv(vNw*jJP{OUW7s@Mh5r1l15sU4Ia#EEdC<>bS+$z$*lG>Bcme~1|`kD{v zPUmg$opBq&u_dj3piIX;>Q@WN#%J`q@Day}-`6 z)W3hX70T7*@lI)i8W;WQZ9lXUo2iPn&DfHG1}H7-=*23t7q08x_u;o)@wXz^T6G_5 z#$1g(qfFp!Wt+~bpJ%0Wj5$l2{7ghANQk+0mR35eL3|t&@MHIUrKJsMKF#x)1 zVoFyGXiV1CB48irUHL1Y)-i7GX@~NB{#QBJEbVAQeAPqks?;vEZkWaEl;f9rO_iQ#M1{bKU$yw zVLumiERV^8R~2qTHyWi(H63U1t z8CMzPd-{zEzLAa1Z2-gOAY{6WPr5T4q=x%Xze&G{XrMPZwRCRMjid3R4wu&m_q>dz z9(G@%3cIAzV(=+GzO~jZ6P0susY7+?ntdPF4S?>gTW?Ns0&K6CZ1Ypv zj-xOe57z38TiS_jgh&)zX(Ng?3a9sN^*$}2pusSR>__!|URalDH`?L!3ncqhxc3)& zpT36E!YTT$AG`M%3X+5)`OxUFK|3 zJaGqkT`mQUerO~}QZHN^_v?WBxuVszuoHXQqa4Pys+6E@+?nkAMzbSzR_>24mpy>X z=Hw&w&zJv_fd6Xo3l9pv9F2CgbrJ*-w914?az+YtfKUx8=TT^rm1Zp(BItOJ@vZOx zygweSvk#nvK@Tfn_|gH+-HW%sdED-sXAKTd?d(HKw6_R!1P(t-=;c=xvm6(GTR1=G zZ-dFy&8jckaVY9Zc|jC9^n11fkLN6!QfK9}#$VgC6vK0{ex-~FP!iK+2?(w*y*FzH z*CHUE4c4O;jd-PC`PtHt#d}2h)yl_f&h|;rx#Z=GJnf5r0Ci(av*0UGtJ7|!juP0= zvUAj!`8uOstA!Ngf#W<((1!&{v3nbR9=T=c$Y$T9>6);w9NkJri#fAL%xr6LXeRaz z!$mOXHr{j9I5ls)3+dM3vEFW^FenI{(Q2-3ty~yRrHp3bg*(vB&P7Qw&iBFHAADsk zbOu!+o_R5s6gDDRhIK@Na(2Wn8y(rlR;*ou^3czUxxX&fta6)|tea%xALNhqWP1_^ zcER&GlQWR)33uqmvGicObS2LG2Q30GnOVG?Uf@r{RI>AaKN)eYn;otVWGYy-J(eq@ zl9Vee?6*i|*CDMjUq8M9eMUXsTpx4KJ@=0t`c;Nqu>-G~hT6^dkbXKVb0c{5m-$*m z&}Q6BSB*A%IohrXrPzivXkF(mrgK=O-JtvGFN3Mo&M7MR@oMD|r(N8Ly?}(ZI$Md9 zaZi3*8guuucA-T6;1!q*D3~e3E^FlmM|AG0y(#`Mp$=iDRF!u9R%B*iz}pB9YG}V)jhK=b~7p`T1`kburdO8K)U9ei+0b3SGRPyVN#l znaknJ8$d_c-~!Tk<`|Ke9J-l4(1w@#QNC%Y#=`jn&R7;i14-9Z)c0{a$+;wdRF(uA zhA+pACgn<&VcN~J2TgVd1DKcWS3k@jiMDb=`XO7yi=+P)5gD5icBPV#NKJ9;JOgA!uyTgA&LcN_n`#)u#YfQh>uJ)+JKvW}@ zD~>24$>*|rZ+mR|^38^-Uz7V1rfhmZl^)re zvTvYM>EWDmG+EjZy>_f_uxZo+$~_(^8W+4Z=V&G=$;gDxL?9`}OE1N{Ofcs8oIZZ0 z*}*aEH*~1>HpP;I?k9X?1P;5>49g$l8Fm4fA4>w{BOb%(KR#XZ9e)+J>V6~9oLmDN zU`B!|1XxU7I?cwFtIrl0)$c*c`4k9p5EzJ%TX1E?ZlC3hsLi`Vqsw#rH$T}1mX3fx zejRy3n|4^yQX-Jc7*c&fMIj61y0lzonzL~X+a8p0d%Pvd5!rh2nTKz`>#B;p5?UI87qw+3k>t^|rqx0a*r?=6jrWZkp9DaWA|*~oJIP(AJ3SXGL2eygajL)kTHsM9*qL@9#N zV|RHRDoiqZ?KJEc^Fpyk6Wwixb9=r5EL_utPQxu8!uO{J>AmE}_3xb^Eu@JcuEjbF zHUteWLgq*)7Wzk=K1D(@MZ6Y!z|UR?eAOgYV{VJ&ycayUpM1v#+F^f*rL6^(MHmpg`sz4W3u)xt+2PTN2s}R7^r;<4 z2)T)gkC5-1AC`3uJ54D%EWSqyQ^@i?sMCCQ*>?U1fP86Y;hAy)8o2W|g4A8#{Aw-t zT6kqy=0mG>x9gizr4VTrg6m%}N}iliiBzHaww_Imw<|bRtuj!&USC{4O5|8|@g>7g z$^c+Q_7Ox%Pr%dqH!^Pod)P^PzrPg;o_6JW+nlw}9uca$AkAV6LN|53xaToY9eGW_ zH^5qzgNMEtcr*U;XMadR^$em}wp8VGS$&T?;YoAZW5l1hlwRK>`%HCY5`11epanzYqyt(tL-?Ozwhc97oN{KkfpEmo11(>9x6yHa||-W3=fyotRPhu-BExV?D(H zZ)W|&vvBcQTu`T`?^Dy1*|1I;*F$vq0w^unx-taotO-6nBY^rd@)8O=cd%ZD!S=uH2|M<5C?nJ(s_R?& zbz~O^X$a)~A8^9aYDF|sR^LEQhIf*8*0-Yt7~3!#BHxFd zIA42yy>;!Jp8P9LRdj+IsVa;Udu*6hOjraIh09%bFwjAh;7a%+o`v( zaj1U4=kq#KnS}ph*YB9$4@<&%YnmO)aZB1pTdu8=$sYdzdUTABCk=BG(;vwv5>4yy z4~OKJRjix7@#;do@b&m-bJC8Lg^G>3{eq#xwu2>v>{*=OR?GE|Z?8uoyVqs+kl5Ih ztGF|8@y4=7(O0s32SJYgSBvSWJ&Fp)Qi?R|d`^O3jIUh)<#6PoKu){7P;J$=qcc)^$yJ1|SO=-)RKG=uNU>!5?FQTBsPt+pB>Td`s~pGC(rz@ZJMODr z$Bv~-(!6ie1dsZCo6e~-GWcr@UiN0s1;b@ck=yZ0tY067-wM=YWVHjP-Wek_#EQHN z*=>DVB6dR?8n+{Tv0(Tuvq8zo+uQs@ef+qcpVYf7s*gS9lHOM+<3REW7uv+MA)3$% zra_|UHkVudlDY|Zk;m8EYx{!IGBpLYP!0+HRi+SZLV5#!MpsCPO_Fe0z^j{NmM#AI z--e+d%@g0*&$hzw{pa9hU~=<{L+*n^?Q#nObvpC@>QEvTMhi;0bqiFC>I3)^{#;K} zvw9xTT5(bNeS#(qQrgZgTNAkw-5$NL7h0rppx1NiuHZ7yNIV>(0BJB~EG)l6= zG9wN(hsm?UsY4g_Hq~HaF7-x=4Qjyf2F_9?_N*yg=M>o7-&W&c!qzSuR6U|A)Hl_*nB+=&bGpJURO&X!`5?#;Q zYh|(pM!fjSq@A16H5eSd{S5PS-o`m(b~^141UH>f#k^igzt0OSx{(iwf^bj}CW`bJ zLBbfwZ-Wo|1t@HQ5&X3Nm^N8tlv((e*||`H_D->5ymRYrCvASbH@{Lo&T@!&kclR_ z;v!VOl9)6kls#I)xc&np_s%S846c?Pp+HyJS98@#ZaGlWKuUviNtJKj!Vh~&CCoe} z?)>M3z;m+r**F^=-K8d-`K@HKB2!}Tk=}%_sL#nxOdmz3{fmjODM3A20|SkhjA7kh z(dx&y&bYIKH^v#iYM3>v);c>&P2&CmrZ69?AW>c??H9QFlYE$^4=i)!vJpK?IQy0Vm!-xOezI*=XKTRIer6?NU)ryCTht3uQKD-uKm~ z(VDp7>fMgI3|L`m2;sbHpW{z+>$p899m56)Y`&#Q1332mh)uq5gZw7c>wbt?wF|!c zs+})qCwoKCdUnql5PiUXfAG1$hM%EA6Xn5L+q0+)UsJCxeNs0EC^q>{YTo$2&?{Pl z+UPVCR~vO$9w*mYhL=<)InNbwi1T_>MMinFb^%ovBui{wBTMKI>43q>CMI*!R+h2`U zvfCP(V;s9jjk;=WbJ>L;1>Y}ggixK6duM-d-3JRUs{bMda8r~O>s&@lBS^D7ohZh6 z=*Sde)$9~LHx4JKThg8IB6{hK&1ZDA+x1~mWA54PyXNjvbw~~D>~DgQY3 z7h&?PklB35=ajp&hV?9vyY%F(BtLSM-k<*q7-eZ?gH%{77tw6%-{qbLU+iD;7&Ued zLQmC$xr4V@wt1w3phe3HX!@M=Mk(8M$979R%C7iTtOVF;Jl`iw$mmgsWcX20X?g$t z2U-#lC+|gMi5u@Ban+&7Otn_Cn$}tQ!B!j-DSFxx`j@!$%&wfe(X*_v4DwehlVz(m ziR>b3a?Z;tTW3D`_KVG(>F2PI84b0+^hIhDTsfyw4@m-9BkAe{hQCK@O-ADsavY0d zl7mQgDcn1Nm*EONpbDx-*mEJSL52UIrQc$ihJ7``z0PYx_os_YJ9g~ytG7|TR-{5^ z^05g7$g-({+v(i#8+%kva8R6j#gAEyMQPk=QV-jr6F3?1Q5DiQ#c)pPBYD4q&mg6s zfZH9;9@Jeg0AJPw41UF1Ke9e0{qfDYu)&}qaizzha)8-Y_{6rUvEG}4_i~>z2pA?cCE9!`{OGE19|mTs_{QP zdMX27L%QBA)1~nR^uW7$I(ztqRe;b-8tt+CDufOB66Lrir>^@9W--{IMMC0`t`PsK zlGT7R4^%$s^M-hGIe#$Y5vS&;e{-?{L8$ z;LQ{A{_?+9Hp%$AueaB0(dptyJ6pRf1D^rdItk@zx^`MlfV<)%IF(-O7RvLpf*w+)l^z+e*&c3Nl zChU)Mb@dhgTP(wCgN_=yc~RT8A4j1(mzdWeU%>V6VoqAElyKMIDPLJdGYKQvGTWCM zTn!?<HQ4gX1fl*S=SzuJQ42oK%$8Z+4AE++%DIF%XLRTI2ia9jFLW zv*MZkm~P5l>S+1BCZxzW9U@S8QpuQX_)bA;YybER4CSrUAguinRTVa;JjxE6XZ>JC zwt-&%QY0wY5Jy5KM!=Q}nw zCN1qdHmO(tc~!))AsPDNrloRVpc~BymDv^+B7{hbAjD3@aN`NFC}b>T*g1M{EU~+W z`m5hVw)EVfjMf6OB%C&sMGc~vmaZ}4#ds@4sM(U&PM=5-ec}7@GBlcqL9s@Z6|kgy z1$3!aw%Pj?RUByO-O+O9!t~3Z+P_Bf)!GpZ+KLg+Pl*UBZgWGMFtw|vHv&^ipbjYe zq;|Xb&nhu8jtpT28&N_j!!?TPj9^I|Gt{Xj^%)NOQxN6EFY`>ppDrx;Km_y=^pEE) zlbWh>s-Ut#ZwyaM$STsOkp?;`=AAt2sEQj{Yn<-Cr2kWUqY zULWqqDT_?>Izl15SWm99vq+kEPOT`%{8OCMtu<)B&ZDplY;`fu61EOJ0x`(oNB^Ud z>kex2>(Ws{Q4ypUrAP_VO(F==1q3OAAcS5*NTiA)AT2?q1tYzK^d`MXS3qf@_k@lV zMF~|1EtC!W?KiW#v%i_W^ZxVxb7$_IGv_(ax#xM{oBGsK0 z@x4OXhgu#pFIyyh(phCS1&R+7P0Js{)DV!NLehvqg9w4f$fwKbm4rYZYivM?3ZsGg z9m?FXfPo>w9ik-r`!&0g{BB8x_k{LN&fXzHiG_bD!hh+&u;Ng*Fa4V1aE)v)wXm{_ zlZpOSGd%cVD>#wiOlc|{%7CE=O#9=GYs#MT`YOa-a|6=`lueiEKW4cg7MVh8!7M=w zUqblFhxC-)UXS;QTKRPfh%}qtI`&v8Tzuj)25+>AG2D#>99Ore0Dr}ZN}qpBeZfRb z?9h!}hstq`5R7r%pwenwM)MO^Wz+Sv%s$+>S=4U*{NBhm#DZj=n4k1_>Ry3V@2G*n zZzqKb5R+MU?W7qU`WSvogSSBQC6=kwExzTZmC8*}c@dO4|^U#^Sx_oOK|sqwWLW0n=9zN(~{VKx+XTXy9XKwq?3 zE#8#GB65_x&C~U=#6<~nMYO}cTJt+>tI?PpLW zOihn49Hi-l8}21-lwrRmZ~glo{}tL0`}w1Qx?14K^LhPwf(5Ir6|Y)%$%Qg!wsp18 zx+1Cact5SFA9nowOx&?z-!f=TRW4BQN3reF^#@OmDJBJwp4(}8LW>K&2ce1kClq;d z=T2f``W$ddvDrOuNLS=d_E@s5E$eS$nB`g_l{ze?Mts=hdIYA$C_KvtTE)Oo)%rU0 zcL#hu7Dip$y5y#jP=g>0#b>ih*@sovbS-xrJ#VrSPGmo0V3;$d^qGe1Ov-hTI$!2k zQo&zj&#FvkjI``=dv~dfm(P^>a>R@A-fxu3%x^j6W<>l;I#VxV?G)>bTPbt-mYHa- zs=$NK_|hxNYLA$slzl@WQ?xzHayL~IU1f}C%w1Gr2tKH53?^N}pNWYvMcXtml{TR+ z2J=qaMn{PJ9g61SF5GvxaRmM9y%XerKi#iv-_(fo(dsFITzU#PT+SKCc?BN!ba=~H zT6K(3%8H@@ry?iMug@BvM%V9s>yyf!4QXw!eiN*1A^0(tYrge~X~Y<3Eo z&H+6IFt9SNd+0jJ@PF#O4fRv&+?<5g#0OqIV9x7K+CE|8AnqmdfNxlq9M5*l5*+Lk zBxjr(`hs=5IeL|`YHG@F@#jSi-cmd2pU3l2JRy#@s)Y!jWP=!^Lwwdy)%`w^5jy-V z4d=J8=*3e2`4Il|%T8U5ysG8ED;9?Ayfvee@Wn^IHuxa@;>QA$W0O_1?okyFz7^!# z=a70LD|~+jtz}-;E6S-6GVm(Om2xr`3(Hg%>Q*Ob(1OI+&!MRxr| z&ectOv+~h5oo`bw>{SDCkK2&zn{F&?^&`wNHf&y6j{KH`2UYoJt>$osgp$% zPu0@xXRU7i(m!{d7uX5`Gf)@P;_`SOB1QJ*D@oMTKRI_9TkRY;d!z#MZiN@=mr_Sr zqm{ndCokDCO{h{eBwFCQn<`$S9(BB4s!}gyE3&1_^>U(eL1eKr{J`Z2-@0Ai{F=?> zLy)l>6(=^im?SU9r9|6L?tVQ^?bXdB2M7FRxdu^$PmtU zrJrn=C(;uv>-z}}|`&?_>p47t`cPk@Bai8an#NeHa%Cs=xm8&-*%80d1bGeI0d#3<}vv$OP z$Ij@qz0}{He%v8E*&RgUy(Y7$>9rz!Ufe3Qpv?ZV11B%H=S>}RQ*pWsOzYBxV8Oak88g=M!@{QTv)HZl|-eLYdT}M9VV9OB#rTz?$BKB94(*VW=;-L?p;zDGM@tdyY;bPR z#fm9vQ0DSNt8=D+)SKc}s6cgOXNc#bQ(lVrguT|RwcgX&kpJ31-RZci^QQch}g!a#LyRf;=iKnPdHD{XUk-(`9QwLfFZ9C#~gw(TPnSZDy z`upVKNxO!g9}-4tE#^b3jPgQq7VG|+8$YmB&}qZPdNF|%+Irzp=6LHTqWT^*b16Yz zTc)avbKiF{uG1PhVEB(MkC<%pnlXt}7aX8oJWre%Zda0IMe8$e7ZaeWp5$i#;;`A;~C&&VqIjf9614`R~A7Sj?oeYy!?d{6w#u=QPO564v@BO}@XFvK~$ zW@WToiCR~=#!D`(>&UuKEMBf-6w8YvVfDHN4zBpTe`Wj#r4pD5+O?Oy@dJ>BGdn^yl9X5W$}d?&PR;+}vPX znxnUIa#?cj;IZaNYBMd6td3Td>AwWQZ15icmG00|TD2Y>IJ|>CfohxrcD>Vc_x+dg zAzj9PP~Us@7fR)NKS`38&`OX?{0vOnkWrlvT*&7^O2vlT%D9FG zFmU9B)8i198+vXKBXkNVf)CMA^i`fd2$eR}4^Vk<0=k^+=6+%^?3s#;{KKv_ zmuGfN^y(8eKX38jX8X*!HqPGf$c3w4-sgW}{CT-;+m4rlN zkwk|tHqR=hqGk3|;b4=02QPw{uaRGd4{+VRSsA=s)5E0|T)Lijk|&)a^b;g8pe{oQ*ptnOFUIy;-BOLR}(xrM7BBdTjUB#veqNoB{WI z@1;6MT2b3ve8^LE>8mj8wCq)Po{xy$5u1cnzo`h;=LLWf z_K;DU(6%V%fi^X@-hnA;5sQ2At2VzPIA$kVdNIi!P)(}rbpg~sAkU%Smu6HGWat_& z#i*q4ZFUCXS+c`r7c&nBv0-pP(77UL>gX*0@Os~NT%MTI~?WK{>} z^fwGrVoE+~=47#H9q;53A3VImafRN)f&15k2P2XDx6($=EvWld#B*QO{AK95eeG!f zsFFTx^fjM9+g@1@`R93LR#TqD737CUGy^lfE*!m-!NGGAJwTz8d~`oQC_zDlME6#A zW1*4HM2*2;0NT`_2a^jN^iN>3+_e%-Vpx5jiAmg1W%r{?aB#FPV*C3?$pX#tY4#48 z()Jojd$oBYXzhYyDqh-^zUdkG?Y(na&2*)+Cm^{JX)&VR8?GB)N<+}X>$_9g%Gyrt zyDqi`f0t!l5{oM4>>8W*za=K*OkHWj@H^U&`Y+Z;Vws| zho(k_wM^ME_8*~i5A2m|_g&`R#@&_W&gxm}zuD-qZeZ|TX(oC)YW#*~a|cymi{ALe z9`+WByB=p=ia|wHCu@hysuLJj-tg$~sjlG5hfQ|fL`+qV=o5PfK1_D-T*}&w>SXlw zol`j8Eh&Hf(Hca8p+;TSHoPrfZ_F=3izlv?%+9AY6tYM+IAwXDq+{o0Z-~avrm*1n z%Z6YTYHb*?9}7_1ID@P!x-3OGOMdXtxZ)fH3=R)?2=`@3Yb4fThznp@()o}AXkm9< z=87(I2{N-bo8n~MEz}-brR`*#vIOKquE5SK4!*;rWtQXvNFYuj7IVKT+Zw4%g6`39 zC6Vc(T3TU4@~&&6?L7C7Pk8C-RO<}FW7A1w?z779w7^J-p67!O*1EeJrhOzw!?6!D z=YwvTo1a@=Hn$>uJ|t^|odS?_z5RvFK&$U5k-~@SYp&v7^IFDPBF6655z>8hn=`Im z`MrPu{OO0+G|Y5V4vBhc*gYWH&GJs*tIT?AexW~%Wn8?YlZD0{X5eYdNam~e+J@UiV8_onvgvDf z3r1af%EY9!o}mcl$^1PaH#t$UldR2r``!3$6sdr4H)hEo+TI&zvL|Q-?lN*Wsf61! z0U^B6FqVarpg8fG*l-;1_}yewP~(*439Ngk{B`3yp&1-|eZXUoJS zVgfJ>>0=;}q7o`kQSs%$R+)BPwYWcg?KL7$oYx1)g?~Q2khGcvYwvSyq78!qS*3nz zV(;NN4?WO}^2du-aoeaTe6M!aat#nL&l_k3e@(JqAjsaa<%smtxN3pI zUSTkwavz@7+M8vXc2UlftDZs-F%de>r!h=~P=RY=zBDMmR6H%ui(wW*AEv`$WHVWR ziRkyUb6DPgjns`?kP>ViMvn}Pd6A7(uty4;{EQ5)2ZkU8c4wz9dQzwhD;4P^^Y)4N zRQ_+F{5Tth!$w_fXdCnNq%3Nw(?1Dib=N0pqds7hC-k@7a(y-jvSp}o-;K<&yZ9I9 zXQ@X_n8A6^2Kl%V-l;-88`}I3m7Y_VRfUdz>G`gHL(R38pF2rAagY6aZ3mC68#dty z4G(!$cIzfY8+*MUGHhcJDTQ9RN{!MibW-*MYqH%S;VL_N?jts)Hg=6;AQPi zw}!_n6G1<+zt;uVKhjl%Wa~q>;+TmdQkyErc$Ng=c=qu`%wFP%^FVLvK)>@ot|E*C zVtqSk#&UHJDmNN*h0Vj)y!wQKmeKwHlapX67I^m)&O=>GoV3%(ma)R~iq=fycQsLV z8(Z7tCGQ>?uUt}fjpvsb)tpRq#c7j9t51W@Oo_r!;%JzQRA2`n0(<9V1hfDF0pZY< z>Xf<2W{XmKWTMfRcU#FF9mf}2gbGXiMcy4?0=#`&RuEu=i@}`oZQWn3q8Ve@yDm0l z;hOO0$Hs;_6J%wqpQ@;6e|lBzJDiDv&Q?~t`zvMt88NAC_2$}Le>&PNg*93>{+u^% zA|qHsB6TrYQgyz&($z&q4T*KVwWUSA{MBe%imWQne)%3{H(75wW;*S^`0WSv7Wv2z zsVDEyQwSYmcQIn1_kp4v6(k5FZ-$|UihBZ z>VJpiOHZwL#Ek)Ad=Jt(4&x1Znrogv!;Yr1ooOZH!6zl8nP;>r*AeBL|%jdo6x3Ua>rPwQB0{%Et zO?a;9wFf_Lc=mli1pQIHzGLm8nbhh{l zLMe?TvYN&k10@{E|BJHzzki97`38RxUni^AdGiFK9Ili{N2PVxyD(i&OixVWUO?GN z?YV_>z!27L`y*O*pZJG}lv`Rt>;B}~!eGeg+Z_-r>@R(tQt2zhAcfe0(~188-Z)aD literal 0 HcmV?d00001 diff --git a/kworldwatch/maps/flatworld/800.jpg b/kworldwatch/maps/flatworld/800.jpg new file mode 100644 index 0000000000000000000000000000000000000000..895faf4947b400a96614306b6a1cba94eed61824 GIT binary patch literal 51623 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 literal 0 HcmV?d00001 diff --git a/kworldwatch/maps/flatworld/Makefile.am b/kworldwatch/maps/flatworld/Makefile.am new file mode 100644 index 0000000..5feb5be --- /dev/null +++ b/kworldwatch/maps/flatworld/Makefile.am @@ -0,0 +1,2 @@ +maps_DATA = flatworld.desktop 200.jpg 400.jpg 800.jpg 1200.jpg 1600.jpg +mapsdir = $(kde_datadir)/kworldclock/maps/flatworld diff --git a/kworldwatch/maps/flatworld/flatworld.desktop b/kworldwatch/maps/flatworld/flatworld.desktop new file mode 100644 index 0000000..56ff332 --- /dev/null +++ b/kworldwatch/maps/flatworld/flatworld.desktop @@ -0,0 +1,53 @@ +[Theme] +Name=Flat World +Name[be]=Плоскі свет +Name[bg]=Без релеф на земната повърхност +Name[bn]=সমতল বিশ্ব +Name[br]=Bed kompez +Name[cs]=Plochý svět +Name[cy]=Byd Gwastad +Name[da]=Flad verden +Name[de]=Flache Welt +Name[el]=Επίπεδος κόσμος +Name[eo]=Plana Mondo +Name[es]=Mundo plano +Name[et]=Lame maailm +Name[eu]=Mundu zabal +Name[fa]=جهان مسطح +Name[fi]=Laakea maailma +Name[fr]=Monde plat +Name[ga]=Domhan Cothrom +Name[gl]=Mundo Chao +Name[he]=עולם שטוח +Name[hr]=Pljosnati svijet +Name[hu]=Lapos világ +Name[is]=Flatur heimur +Name[it]=Mondo piatto +Name[ja]=平坦な世界図 +Name[km]=ពិភពលោក​សំប៉ែត +Name[ko]=평평한 세계 +Name[lv]=Plakana pasaule +Name[mk]=Рамен свет +Name[mt]=Dinja Ċatta +Name[nb]=Flat verden +Name[nds]=Platte Welt +Name[ne]=फराकिलो संसार +Name[nl]=Vlakke wereld +Name[pl]=Płaski świat +Name[pt]=Mundo Plano +Name[pt_BR]=Mundo Plano +Name[ro]=Suprafaţă plată +Name[ru]=Плоский мир +Name[sk]=Plochý svet +Name[sl]=Ploščati svet +Name[sr]=Раван свет +Name[sr@Latn]=Ravan svet +Name[sv]=Platt värld +Name[ta]=படிமான உலகம் +Name[tg]=Ҷаҳони ҳамворӣ +Name[tr]=Düz Dünya +Name[uk]=Плоский світ +Name[wa]=Plate Daegne +Name[zh_CN]=平面世界 +Name[zh_TW]=平面世界 +Theme=flatworld diff --git a/kworldwatch/mapwidget.cpp b/kworldwatch/mapwidget.cpp new file mode 100644 index 0000000..2dac883 --- /dev/null +++ b/kworldwatch/mapwidget.cpp @@ -0,0 +1,576 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hözer-Klüpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include "config.h" + +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + + +#include "cities.h" +#include "about.h" +#include "flags.h" +#include "mapwidget.moc" + + +MapWidget::MapWidget(bool applet, bool restore, QWidget *parent, const char *name) + : QWidget(parent, name), _loader(), _illumination(true), _cities(true), _flags(true), _cityList(0), + _applet(applet), _width(0), _height(0) +{ + // this ugly construction is necessary so we don't load + // the map twice. + _theme = "depths"; + + if (restore) + { + KConfig *config = kapp->config(); + if (applet) + config = new KConfig("kwwwappletrc"); + _theme = config->readEntry("Theme", "depths"); + if (applet) + delete config; + } + + setBackgroundMode(QWidget::NoBackground); + + gmt_position = 0; + time_t t = time(NULL); + setTime(gmtime(&t)); + + _flagList = new FlagList; + + int id; + _flagPopup = new QPopupMenu(this); + QPixmap flag = QPixmap(locate("data", "kworldclock/pics/flag-red.png")); + id = _flagPopup->insertItem(QIconSet(flag), i18n("Add &Red"), this, SLOT(addFlag(int))); + _flagPopup->setItemParameter(id, 0); + flag = QPixmap(locate("data", "kworldclock/pics/flag-green.png")); + id = _flagPopup->insertItem(QIconSet(flag), i18n("Add &Green"), this, SLOT(addFlag(int))); + _flagPopup->setItemParameter(id, 1); + flag = QPixmap(locate("data", "kworldclock/pics/flag-blue.png")); + id = _flagPopup->insertItem(QIconSet(flag), i18n("Add &Blue"), this, SLOT(addFlag(int))); + _flagPopup->setItemParameter(id, 2); + id = _flagPopup->insertItem(i18n("Add &Custom..."), this, SLOT(addFlag(int))); + _flagPopup->setItemParameter(id, 3); + _flagPopup->insertSeparator(); + _flagPopup->insertItem(i18n("&Remove Flag"), this, SLOT(removeFlag())); + _flagPopup->insertItem(i18n("&Remove All Flags"), this, SLOT(removeAllFlags())); + + _themePopup = new QPopupMenu(this); + _themes = MapLoader::themes(); + int cnt=0; + QPtrListIterator it(_themes); + for ( ; it.current(); ++it) + { + int id = _themePopup->insertItem(it.current()->name(), this, SLOT(themeSelected(int))); + _themePopup->setItemParameter(id, cnt++); + it.current()->setID(id); + } + + QPopupMenu *_clocksPopup = new QPopupMenu(this); + _clocksPopup->insertItem(i18n("&Add..."), this, SLOT(addClock())); + + _popup = new QPopupMenu(this); + _popup->insertItem(i18n("&Flags"), _flagPopup); + + if (!applet) + _popup->insertItem(i18n("&Clocks"), _clocksPopup); + + _popup->insertSeparator(); + _popup->insertItem(i18n("&Map Theme"), _themePopup); + _illuminationID = _popup->insertItem(i18n("Show &Daylight"), this, SLOT(toggleIllumination())); + _citiesID = _popup->insertItem(i18n("Show &Cities"), this, SLOT(toggleCities())); + _flagsID = _popup->insertItem(i18n("Show F&lags"), this, SLOT(toggleFlags())); + + if (!applet) + { + _popup->insertSeparator(); + _popup->insertItem(i18n("&Save Settings"), this, SLOT(slotSaveSettings())); + } + + _popup->insertSeparator(); + _popup->insertItem(i18n("&About"), this, SLOT(about())); + + QTimer *timer = new QTimer(this); + connect(timer, SIGNAL(timeout()), this, SLOT(timeout())); + timer->start(1000); + + _cityIndicator = new QLabel(0,0, WStyle_StaysOnTop | WStyle_Customize | WStyle_NoBorder | WStyle_Tool | WX11BypassWM ); + _cityIndicator->setMargin(1); + _cityIndicator->setIndent(0); + _cityIndicator->setAutoMask(false); + _cityIndicator->setLineWidth(1); + _cityIndicator->setAlignment(QLabel::AlignAuto | QLabel::AlignTop); + _cityIndicator->setAutoResize(true); + _cityIndicator->setFrameStyle(QFrame::Box | QFrame::Plain); + _cityIndicator->setPalette(QToolTip::palette()); + + if (restore && !applet) + load(kapp->config()); + + connect(&m_timer, SIGNAL(timeout()), this, SLOT(updateCityIndicator())); +} + + +MapWidget::~MapWidget() +{ + if (_applet) + { + KConfig *conf = new KConfig("kwwwappletrc"); + save(conf); + delete conf; + } + delete _cityList; + delete _flagList; +} + + +void MapWidget::load(KConfig *config) +{ + setCities(config->readBoolEntry("Cities", true)); + setIllumination(config->readBoolEntry("Illumination", true)); + setFlags(config->readBoolEntry("Flags", true)); + + if ( !_applet ) + { + KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); + if (args->isSet("theme")) + setTheme(QString::fromLocal8Bit(args->getOption("theme"))); + else + setTheme(config->readEntry("Theme", "depths")); + + _flagList->load(config); + } +} + + +void MapWidget::save(KConfig *config) +{ + config->writeEntry("Cities", _cities); + config->writeEntry("Illumination", _illumination); + config->writeEntry("Flags", _flags); + + config->writeEntry("Theme", _theme); + + _flagList->save(config); +} + + +void MapWidget::slotSaveSettings() +{ + emit saveSettings(); +} + + +void MapWidget::addClock() +{ + if (!_cityList) + _cityList = new CityList; + + QPoint where; + City *c = _cityList->getNearestCity(_width, _height, gmt_position, _flagPos.x(), _flagPos.y(), where); + + QString zone = ""; + if (c) + zone = c->name(); + + emit addClockClicked(zone); +} + + +void MapWidget::addFlag(int index) +{ + QColor col = Qt::red; + + switch (index) + { + case 0: + col = Qt::red; + break; + case 1: + col = Qt::green; + break; + case 2: + col = Qt::blue; + break; + case 3: + if (KColorDialog::getColor(col, this) != KColorDialog::Accepted) + return; + break; + } + + int x = _flagPos.x() - gmt_position + width()/2; + if (x>width()) + x -= width(); + double la = 90.0 - 180.0 * ((double)_flagPos.y()) / ((double)_height); + double lo = 360.0 * ((double)x) / ((double)_width) - 180.0; + + _flagList->addFlag(new Flag(lo, la, col)); + + update(); +} + + +void MapWidget::removeFlag() +{ + _flagList->removeNearestFlag(_flagPos, _width, _height, gmt_position); + update(); +} + +void MapWidget::removeAllFlags() +{ + if ( KMessageBox::warningContinueCancel( this, i18n( "Do you really want to remove all flags?" ), QString::null, KStdGuiItem::del() ) == KMessageBox::Continue ) + _flagList->removeAllFlags(); + + update(); +} + +void MapWidget::setCities(bool c) +{ + _cities = c; + _popup->setItemChecked(_citiesID, c); + + if (c && !_cityList) + _cityList = new CityList; + + setMouseTracking(c); + if (!c) + { + _cityIndicator->hide(); + m_timer.stop(); + } + + update(); +} + + +void MapWidget::toggleCities() +{ + setCities(!_popup->isItemChecked(_citiesID)); +} + + +void MapWidget::toggleIllumination() +{ + setIllumination(!_popup->isItemChecked(_illuminationID)); +} + + +void MapWidget::setFlags(bool f) +{ + _flags = f; + _popup->setItemChecked(_flagsID, f); + + update(); +} + + +void MapWidget::toggleFlags() +{ + setFlags(!_popup->isItemChecked(_flagsID)); +} + + +void MapWidget::updateBackground() +{ + if (!_height) + return; + _pixmap = calculatePixmap(); + setBackgroundPixmap(_pixmap); + + update(); +} + + +QPixmap MapWidget::getPixmap() +{ + return _pixmap; +} + + +void MapWidget::setIllumination(bool i) +{ + _illumination = i; + _popup->setItemChecked(_illuminationID, i); + + updateBackground(); +} + + +void MapWidget::timeout() +{ + time_t t = time(NULL); + setTime(gmtime(&t)); + + if (_cities && !_currentCity.isEmpty()) + _cityIndicator->setText(cityTime(_currentCity)); +} + + +QString MapWidget::cityTime(const QString &city) +{ + QString result = i18n(city.latin1()); // Time zone translation + int pos = result.find("/"); + if (pos >= 0) + result = result.mid(pos+1); + result.replace(QRegExp("_"), " "); + result.append(": "); + + char *initial_TZ = getenv("TZ"); + setenv("TZ", city.latin1(), 1); + tzset(); + + time_t t = time(NULL); + QDateTime dt; + dt.setTime_t(t); + result.append(QString("%1, %2").arg(KGlobal::locale()->formatTime(dt.time(), true)).arg(KGlobal::locale()->formatDate(dt.date(), true))); + + if (initial_TZ != 0) + setenv("TZ", initial_TZ, 1); + else + unsetenv("TZ"); + tzset(); + return result; +} + + +void MapWidget::enterEvent(QEvent *) +{ + if ( _cities ) + updateCityIndicator(); +} + +void MapWidget::leaveEvent(QEvent *) +{ + _cityIndicator->hide(); + m_timer.stop(); +} + + +void MapWidget::about() +{ + AboutDialog dlg(this, 0, true); + dlg.exec(); +} + + +void MapWidget::themeSelected(int index) +{ + QString t = _themes.at(index)->tag(); + if (!t.isEmpty()) + setTheme(t); +} + + +void MapWidget::mousePressEvent(QMouseEvent *ev) +{ + if (ev->button() == QMouseEvent::RightButton) + { + _flagPos = ev->pos(); + _popup->exec(ev->globalPos()); + } +} + + +void MapWidget::mouseMoveEvent(QMouseEvent *) +{ + if (!_cities) + return; + + if (!m_timer.isActive()) + m_timer.start(25, true); +} + +void MapWidget::updateCityIndicator() +{ + QPoint where; + QPoint pos = mapFromGlobal(QCursor::pos()); + + if (!_cityList) + _cityList = new CityList; + City *c = _cityList->getNearestCity(_width, _height, gmt_position, pos.x(), pos.y(), where); + + if (c) + { + _currentCity = c->name(); + showIndicator(QCursor::pos()); + } + else + _cityIndicator->hide(); +} + + +void MapWidget::showIndicator(const QPoint &pos) +{ + _cityIndicator->setText(cityTime(_currentCity)); + + int w = _cityIndicator->width(); + int h = _cityIndicator->height(); + + QRect desk = KGlobalSettings::desktopGeometry(pos); + + QPoint newPos; + + if (pos.x()+w+10 > desk.right()) + newPos.setX(pos.x()-w-5); + else + newPos.setX(pos.x()+10); + + if (pos.y()+h+10 > desk.bottom()) + newPos.setY(pos.y()-h-5); + else + newPos.setY(pos.y()+10); + + _cityIndicator->move(newPos); + + _cityIndicator->show(); + +} + + +void MapWidget::setTheme(const QString &theme) +{ + _theme = theme; + + QPtrListIterator it(_themes); + for ( ; it.current(); ++it) + _themePopup->setItemChecked(it.current()->ID(), theme == it.current()->tag()); + + if (_height) + setSize(_width, _height); +} + + +void MapWidget::setTime(struct tm *time) +{ + sec = time->tm_hour*60*60 + time->tm_min*60 + time->tm_sec; + + if (isVisible()) + { + int old_position = gmt_position; + gmt_position = width() * sec / 86400; // note: greenwich is in the middle! + + if (old_position != gmt_position) + updateBackground(); + } +} + +void MapWidget::setSize(int w, int h) +{ + _width = w; + _height = h; + _loader.load(_width, _theme, _height); + + gmt_position = width() * sec / 86400; // note: greenwich is in the middle! + + updateBackground(); +} + +void MapWidget::resizeEvent(QResizeEvent *ev) +{ + setSize(width(), height()); + QWidget::resizeEvent(ev); +} + +void MapWidget::paintContents(QPainter *p) +{ + if (_cities) + _cityList->paint(p, _width, _height, gmt_position); + if (_flags) + _flagList->paint(p, _width, _height, gmt_position); +} + +void MapWidget::paintEvent(QPaintEvent *ev) +{ + QWidget::paintEvent(ev); + + if (_cities || _flags) + { + QPainter p(this); + + p.setClipping(true); + p.setClipRegion(ev->region()); + + paintContents(&p); + } +} + + +QPixmap MapWidget::calculatePixmap() +{ + QPixmap map; + + if (_illumination) + { + map = _loader.darkMap(); + QPixmap clean = _loader.lightMap(); + + QPainter mp(&map); + clean.setMask(_loader.darkMask(map.width(), map.height())); + mp.drawPixmap(0,0, clean); + } + else + map = _loader.lightMap(); + + int greenwich = map.width()/2; + + QPixmap pm(_width, _height); + QPainter p; + p.begin(&pm); + + if (gmt_position >= greenwich) + { + p.drawPixmap(gmt_position-greenwich, 0, map, 0, 0, map.width()-gmt_position+greenwich); + p.drawPixmap(0,0, map, map.width()-gmt_position+greenwich, 0, gmt_position-greenwich); + } + else + { + p.drawPixmap(0,0, map, greenwich-gmt_position, 0, map.width()+gmt_position-greenwich); + p.drawPixmap(map.width()+gmt_position-greenwich, 0, map, 0, 0, greenwich-gmt_position); + } + + return pm; +} diff --git a/kworldwatch/mapwidget.h b/kworldwatch/mapwidget.h new file mode 100644 index 0000000..54e4f58 --- /dev/null +++ b/kworldwatch/mapwidget.h @@ -0,0 +1,161 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef MAP_WIDGET_H +#define MAP_WIDGET_H + + +#include + + +#include +#include +#include +#include +#include +#include + + +class QPopupMenu; + + +#include + + +class CityList; +class FlagList; + + +#include "maploader.h" + + +class MapWidget : public QWidget +{ + Q_OBJECT + +public: + + MapWidget(bool applet=false, bool restore=false, QWidget *parent=0, const char *name=0); + ~MapWidget(); + + void setTheme(const QString &theme); + void setTime(struct tm *time); + void setIllumination(bool i); + void setCities(bool c); + void setFlags(bool f); + void setSize(int w, int h); + + void save(KConfig *config); + void load(KConfig *config); + + void updateBackground(); + + QPixmap getPixmap(); + QPopupMenu* contextMenu() const { return _popup; } + + void paintContents(QPainter *p); + QPixmap calculatePixmap(); + +signals: + + void addClockClicked(const QString &zone); + void saveSettings(); + + +protected slots: + + void timeout(); + void updateCityIndicator(); + +public slots: + + void about(); + + void toggleIllumination(); + void toggleCities(); + void toggleFlags(); + + void removeFlag(); + void removeAllFlags(); + + void slotSaveSettings(); + + +protected: + + void resizeEvent(QResizeEvent *ev); + void paintEvent(QPaintEvent *ev); + void mousePressEvent(QMouseEvent *ev); + void mouseMoveEvent(QMouseEvent *ev); + void enterEvent(QEvent *ev); + void leaveEvent(QEvent *ev); + + +private slots: + + void themeSelected(int index); + void addFlag(int index); + void addClock(); + + +private: + + void updateMap(); + QString cityTime(const QString &city); + void showIndicator(const QPoint &pos); + + MapLoader _loader; + + QString _theme; + + QPixmap _pixmap; + + int gmt_position; + + time_t sec; + + QPopupMenu *_popup, *_themePopup, *_flagPopup; + QPtrList _themes; + + bool _illumination, _cities, _flags; + int _illuminationID, _citiesID, _flagsID; + + CityList *_cityList; + QLabel *_cityIndicator; + QString _currentCity; + + FlagList *_flagList; + QPoint _flagPos; + + bool _applet; + QTimer m_timer; + + int _width, _height; +}; + + +#endif diff --git a/kworldwatch/pics/Makefile.am b/kworldwatch/pics/Makefile.am new file mode 100644 index 0000000..b0cbcf9 --- /dev/null +++ b/kworldwatch/pics/Makefile.am @@ -0,0 +1,2 @@ +pics_DATA = flag.png flag-mask.xpm flag-red.png flag-blue.png flag-green.png +picsdir = $(kde_datadir)/kworldclock/pics diff --git a/kworldwatch/pics/flag-blue.png b/kworldwatch/pics/flag-blue.png new file mode 100644 index 0000000000000000000000000000000000000000..b0d41dc37f0bce4120170ca7f418532223dc8b05 GIT binary patch literal 316 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)07?Fw^Pk3ZO`ar;B4q z#jUjy1Njapa5%60_%A$7UTUte#>J1xNt4|(UG>=ihAvWP{PmDQB*>|TIqN~e!rOXb z=C|{Gm#5Bm_baG9pR-E&RR zx9^jdsM^^+1!$*xiEBhjaDG}zd16s2gM)^$re|(qda7??dS-IAf~lUNo}q$)fxdx} zzJZ}app}I}a#3b+Nu@(>WpPPnvR-PjUP@^}eqM=Qa(=FJlhJRWky>CQGt=`DOG<%e znkOcwB^sJonx!UM8e15r7^fL0nVO~=8>XeEm>C%+pP6yW7^sWE)78&qol`;+0909N AdjJ3c literal 0 HcmV?d00001 diff --git a/kworldwatch/pics/flag-green.png b/kworldwatch/pics/flag-green.png new file mode 100644 index 0000000000000000000000000000000000000000..dba9c2ddd0736b24f7dbe5d4596a3d0d533a3246 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)07?Fw^Pk3ZO`ur;B4q z#jUjy1Gx?;@Hhv5{1?7X{?xIw*=;-jaj?Zr7O{|tUN63j<3qsG32qR6bv?zjwMQkkP?0%-Ug5JjY)ynLW9JuV#OK+f&cfm(DQn zwur=3sl|FJr3LwUC3?yExz0^Szkx<-fsM>e&r2*R1)7T@mSSk0Y+#a-oNAhwYH4b2Xlas|Xpn4TY?2Z@b!{h57lWs(pUXO@geCxH9%|SC literal 0 HcmV?d00001 diff --git a/kworldwatch/pics/flag-mask.xpm b/kworldwatch/pics/flag-mask.xpm new file mode 100644 index 0000000..d7ceb66 --- /dev/null +++ b/kworldwatch/pics/flag-mask.xpm @@ -0,0 +1,21 @@ +/* XPM */ +static char * flag_xpm[] = { +"16 16 2 1", +" c #ffffff", +". c #000000", +" ", +" ...... ", +" ....... ", +" ......... ", +" ............. ", +" ............. ", +" ............ ", +" ............ ", +" .. ........ ", +" .. .......", +" .. .... ", +" .. ", +" .. ", +" .. ", +" .. ", +" "}; diff --git a/kworldwatch/pics/flag-red.png b/kworldwatch/pics/flag-red.png new file mode 100644 index 0000000000000000000000000000000000000000..ef05d3be1bc9eca396ffbf306ed7589319d709ac GIT binary patch literal 313 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)07?Fw^Pk3ZO`;r;B4q z#jUjyz4;m(IGp9v-qokxv5=bT|M)~(i(0=}!p1i*?!AyYki4-aXX=aa(=zv7EbLb6 z=KUJsxyQ;W`8I=_Qd{)YjDIthm(SF*Vh}yS!mje`1 xWs+s8g;}bZiD|02Wm;OQiMfGgYHFf|MRJmHN?K@r*bksC22WQ%mvv4FO#rZ{Z2bTL literal 0 HcmV?d00001 diff --git a/kworldwatch/pics/flag.png b/kworldwatch/pics/flag.png new file mode 100644 index 0000000000000000000000000000000000000000..3aaa7883ae8ab73d7c11d3ebab692d080d891f16 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6n3BBRT^RPt$G%|(@&Y|w978H@ zO$|8B#h}1*>Bay0n|g-dR6cDnRM+~zz^L(-wMgXYW38?(m0R-7%kF-E@kU5Ijf16Z z($h0xo+3s^SLD6(`SqzyWUcsBvE6F_IsIie%$DGF+M_ZBXt;ZcYeY$Kep*R+Vo@rC zgNCxEXKrG8s&8U?W^%TIsh**pp@M;dzJZaxfuTa6m4!lbQD$*Tr9*CIaY<&fUTU#k zN@+oUUWs0Eey($q(QlxUT3{nH)AJHbN`Yo3rI=e78X6c|7+EBxrdb$RnwXjcfpKbz Zv5|pMTH-UOcTPZE44$rjF6*2UngE}lUsM19 literal 0 HcmV?d00001 diff --git a/kworldwatch/pics/world2.png b/kworldwatch/pics/world2.png new file mode 100644 index 0000000000000000000000000000000000000000..20b4a05dd30ab91662e89bd9ced12131c99abbb9 GIT binary patch literal 5132 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. This program, like + * the one it was derived from, is in the public domain: `Love is the + * law, love under will.' + */ + +/* + + Sun clock + + Designed and implemented by John Walker in November of 1988. + + Version for the Sun Workstation. + + The algorithm used to calculate the position of the Sun is given in + Chapter 18 of: + + "Astronomical Formulae for Calculators" by Jean Meeus, Third Edition, + Richmond: Willmann-Bell, 1985. This book can be obtained from: + + Willmann-Bell + P.O. Box 35025 + Richmond, VA 23235 + USA + Phone: (804) 320-7016 + + This program was written by: + + John Walker + Autodesk, Inc. + 2320 Marinship Way + Sausalito, CA 94965 + USA + Fax: (415) 389-9418 + Voice: (415) 332-2344 Ext. 2829 + Usenet: {sun,well,uunet}!acad!kelvin + or: kelvin@acad.uu.net + + modified for interactive maps by + + Stephen Martin + Fujitsu Systems Business of Canada + smartin@fujitsu.ca + + This program is in the public domain: "Do what thou wilt shall be the + whole of the law". I'd appreciate receiving any bug fixes and/or + enhancements, which I'll incorporate in future versions of the + program. Please leave the original attribution information intact so + that credit and blame may be properly apportioned. + + Revision history: + + 1.0 12/21/89 Initial version. + 8/24/89 Finally got around to submitting. + + 1.1 8/31/94 Version with interactive map. + 1.2 10/12/94 Fixes for HP and Solaris, new icon bitmap + 1.3 11/01/94 Timezone now shown in icon + 1.4 03/29/98 Fixed city drawing, added icon animation + +*/ + +#include "sunclock.h" + +void projillum(short *wtab, int xdots, int ydots, double dec); + +/* PROJILLUM -- Project illuminated area on the map. */ + +void +projillum(wtab, xdots, ydots, dec) +short *wtab; +int xdots, ydots; +double dec; +{ + int i, ftf = 1, ilon, ilat, lilon = 0, lilat = 0, xt; + double m, x, y, z, th, lon, lat, s, c; + + /* Clear unoccupied cells in width table */ + + for (i = 0; i < ydots; i++) + wtab[i] = -1; + + /* Build transformation for declination */ + + s = sin(-dtr(dec)); + c = cos(-dtr(dec)); + + /* Increment over a semicircle of illumination */ + + for (th = -(PI / 2); th <= PI / 2 + 0.001; + th += PI / TERMINC) { + + /* Transform the point through the declination rotation. */ + + x = -s * sin(th); + y = cos(th); + z = c * sin(th); + + /* Transform the resulting co-ordinate through the + map projection to obtain screen co-ordinates. */ + + lon = (y == 0 && x == 0) ? 0.0 : rtd(atan2(y, x)); + lat = rtd(asin(z)); + + ilat = ydots - (lat + 90) * (ydots / 180.0); + ilon = lon * (xdots / 360.0); + + if (ftf) { + + /* First time. Just save start co-ordinate. */ + + lilon = ilon; + lilat = ilat; + ftf = 0; + } else { + + /* Trace out the line and set the width table. */ + + if (lilat == ilat) { + wtab[(ydots - 1) - ilat] = ilon == 0 ? 1 : ilon; + } else { + m = ((double) (ilon - lilon)) / (ilat - lilat); + for (i = lilat; i != ilat; i += sgn(ilat - lilat)) { + xt = lilon + floor((m * (i - lilat)) + 0.5); + wtab[(ydots - 1) - i] = xt == 0 ? 1 : xt; + } + } + lilon = ilon; + lilat = ilat; + } + } + + /* Now tweak the widths to generate full illumination for + the correct pole. */ + + if (dec < 0.0) { + ilat = ydots - 1; + lilat = -1; + } else { + ilat = 0; + lilat = 1; + } + + for (i = ilat; i != ydots / 2; i += lilat) { + if (wtab[i] != -1) { + while (1) { + wtab[i] = xdots / 2; + if (i == ilat) + break; + i -= lilat; + } + break; + } + } +} + diff --git a/kworldwatch/sunclock.h b/kworldwatch/sunclock.h new file mode 100644 index 0000000..1787506 --- /dev/null +++ b/kworldwatch/sunclock.h @@ -0,0 +1,98 @@ +/* + * Sun clock. X11 version by John Mackin. + * + * This program was derived from, and is still in part identical with, the + * Suntools Sun clock program whose author's comment appears immediately + * below. Please preserve both notices. + * + * The X11R3/4 version of this program was written by John Mackin, at the + * Basser Department of Computer Science, University of Sydney, Sydney, + * New South Wales, Australia; . This program, like + * the one it was derived from, is in the public domain: `Love is the + * law, love under will.' + */ + +/* + + Sun clock + + Designed and implemented by John Walker in November of 1988. + + Version for the Sun Workstation. + + The algorithm used to calculate the position of the Sun is given in + Chapter 18 of: + + "Astronomical Formulae for Calculators" by Jean Meeus, Third Edition, + Richmond: Willmann-Bell, 1985. This book can be obtained from: + + Willmann-Bell + P.O. Box 35025 + Richmond, VA 23235 + USA + Phone: (804) 320-7016 + + This program was written by: + + John Walker + Autodesk, Inc. + 2320 Marinship Way + Sausalito, CA 94965 + USA + Fax: (415) 389-9418 + Voice: (415) 332-2344 Ext. 2829 + Usenet: {sun,well,uunet}!acad!kelvin + or: kelvin@acad.uu.net + + modified for interactive maps by + + Stephen Martin + Fujitsu Systems Business of Canada + smartin@fujitsu.ca + + This program is in the public domain: "Do what thou wilt shall be the + whole of the law". I'd appreciate receiving any bug fixes and/or + enhancements, which I'll incorporate in future versions of the + program. Please leave the original attribution information intact so + that credit and blame may be properly apportioned. + + Revision history: + + 1.0 12/21/89 Initial version. + 8/24/89 Finally got around to submitting. + + 1.1 8/31/94 Version with interactive map. + 1.2 10/12/94 Fixes for HP and Solaris, new icon bitmap + 1.3 11/01/94 Timezone now shown in icon + 1.4 03/29/98 Fixed city drawing, added icon animation + +*/ + +#ifndef SUNCLOCK_H +#define SUNCLOCK_H + +#include +#include +#include +#include + +#ifndef PI +#define PI 3.14159265358979323846 +#endif + +#ifndef E +#define E 2.7182818284590452354 +#endif + +#define abs(x) ((x) < 0 ? (-(x)) : x) /* Absolute value */ +#define sgn(x) (((x) < 0) ? -1 : ((x) > 0 ? 1 : 0)) /* Extract sign */ +#define dtr(x) ((x) * (PI / 180.0)) /* Degree->Radian */ +#define rtd(x) ((x) / (PI / 180.0)) /* Radian->Degree */ +#define fixangle(a) ((a) - 360.0 * (floor((a) / 360.0))) /* Fix angle */ + +#define TERMINC 100 /* Circle segments for terminator */ + +#define PROJINT (60 * 10) /* Frequency of seasonal recalculation */ + +#endif + diff --git a/kworldwatch/zone.tab b/kworldwatch/zone.tab new file mode 100644 index 0000000..e3c8e39 --- /dev/null +++ b/kworldwatch/zone.tab @@ -0,0 +1,409 @@ +# @(#)zone.tab 1.30 +# +# TZ zone descriptions +# +# From Paul Eggert (1996-08-05): +# +# This file contains a table with the following columns: +# 1. ISO 3166 2-character country code. See the file `iso3166.tab'. +# 2. Latitude and longitude of the zone's principal location +# in ISO 6709 sign-degrees-minutes-seconds format, +# either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS, +# first latitude (+ is north), then longitude (+ is east). +# 3. Zone name used in value of TZ environment variable. +# 4. Comments; present if and only if the country has multiple rows. +# +# Columns are separated by a single tab. +# The table is sorted first by country, then an order within the country that +# (1) makes some geographical sense, and +# (2) puts the most populous zones first, where that does not contradict (1). +# +# Lines beginning with `#' are comments. +# +#country- +#code coordinates TZ comments +AD +4230+00131 Europe/Andorra +AE +2518+05518 Asia/Dubai +AF +3431+06912 Asia/Kabul +AG +1703-06148 America/Antigua +AI +1812-06304 America/Anguilla +AL +4120+01950 Europe/Tirane +AM +4011+04430 Asia/Yerevan +AN +1211-06900 America/Curacao +AO -0848+01314 Africa/Luanda +AQ -7750+16636 Antarctica/McMurdo McMurdo Station, Ross Island +AQ -9000+00000 Antarctica/South_Pole Amundsen-Scott Station, South Pole +AQ -6734-06808 Antarctica/Rothera Rothera Station, Adelaide Island +AQ -6448-06406 Antarctica/Palmer Palmer Station, Anvers Island +AQ -6736+06253 Antarctica/Mawson Mawson Station, Holme Bay +AQ -6835+07758 Antarctica/Davis Davis Station, Vestfold Hills +AQ -6617+11031 Antarctica/Casey Casey Station, Bailey Peninsula +AQ -7824+10654 Antarctica/Vostok Vostok Station, S Magnetic Pole +AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Base, Terre Adelie +AQ -690022+0393524 Antarctica/Syowa Syowa Station, E Ongul I +AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) +AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, LP, MN, NQ, RN, SA, SE, SF, SL) +AR -2411-06518 America/Argentina/Jujuy Jujuy (JY) +AR -3124-06411 America/Argentina/Tucuman Tucuman (TM) +AR -2828-06547 America/Argentina/Catamarca Catamarca (CT) +AR -2926-06651 America/Argentina/La_Rioja La Rioja (LR) +AR -3132-06831 America/Argentina/San_Juan San Juan (SJ) +AR -3253-06849 America/Argentina/Mendoza Mendoza (MZ) +AR -4552-06730 America/Argentina/ComodRivadavia Chubut (CH) +AR -5138-06913 America/Argentina/Rio_Gallegos Santa Cruz (SC) +AR -5448-06818 America/Argentina/Ushuaia Tierra del Fuego (TF) +AS -1416-17042 Pacific/Pago_Pago +AT +4813+01620 Europe/Vienna +AU -3133+15905 Australia/Lord_Howe Lord Howe Island +AU -4253+14719 Australia/Hobart Tasmania +AU -3749+14458 Australia/Melbourne Victoria +AU -3352+15113 Australia/Sydney New South Wales - most locations +AU -3157+14127 Australia/Broken_Hill New South Wales - Yancowinna +AU -2728+15302 Australia/Brisbane Queensland - most locations +AU -2016+14900 Australia/Lindeman Queensland - Holiday Islands +AU -3455+13835 Australia/Adelaide South Australia +AU -1228+13050 Australia/Darwin Northern Territory +AU -3157+11551 Australia/Perth Western Australia +AW +1230-06858 America/Aruba +AX +6006+01957 Europe/Mariehamn +AZ +4023+04951 Asia/Baku +BA +4352+01825 Europe/Sarajevo +BB +1306-05937 America/Barbados +BD +2343+09025 Asia/Dhaka +BE +5050+00420 Europe/Brussels +BF +1222-00131 Africa/Ouagadougou +BG +4241+02319 Europe/Sofia +BH +2623+05035 Asia/Bahrain +BI -0323+02922 Africa/Bujumbura +BJ +0629+00237 Africa/Porto-Novo +BM +3217-06446 Atlantic/Bermuda +BN +0456+11455 Asia/Brunei +BO -1630-06809 America/La_Paz +BR -0351-03225 America/Noronha Atlantic islands +BR -0127-04829 America/Belem Amapa, E Para +BR -0343-03830 America/Fortaleza NE Brazil (MA, PI, CE, RN, PB) +BR -0803-03454 America/Recife Pernambuco +BR -0712-04812 America/Araguaina Tocantins +BR -0940-03543 America/Maceio Alagoas, Sergipe +BR -1259-03831 America/Bahia Bahia +BR -2332-04637 America/Sao_Paulo S & SE Brazil (GO, DF, MG, ES, RJ, SP, PR, SC, RS) +BR -2027-05437 America/Campo_Grande Mato Grosso do Sul +BR -1535-05605 America/Cuiaba Mato Grosso +BR -0846-06354 America/Porto_Velho W Para, Rondonia +BR +0249-06040 America/Boa_Vista Roraima +BR -0308-06001 America/Manaus E Amazonas +BR -0640-06952 America/Eirunepe W Amazonas +BR -0958-06748 America/Rio_Branco Acre +BS +2505-07721 America/Nassau +BT +2728+08939 Asia/Thimphu +BW -2545+02555 Africa/Gaborone +BY +5354+02734 Europe/Minsk +BZ +1730-08812 America/Belize +CA +4734-05243 America/St_Johns Newfoundland Island +CA +4439-06336 America/Halifax Atlantic Time - Nova Scotia (most places), NB, W Labrador, E Quebec & PEI +CA +4612-05957 America/Glace_Bay Atlantic Time - Nova Scotia - places that did not observe DST 1966-1971 +CA +5320-06025 America/Goose_Bay Atlantic Time - E Labrador +CA +4531-07334 America/Montreal Eastern Time - Quebec - most locations +CA +4339-07923 America/Toronto Eastern Time - Ontario - most locations +CA +4901-08816 America/Nipigon Eastern Time - Ontario & Quebec - places that did not observe DST 1967-1973 +CA +4823-08915 America/Thunder_Bay Eastern Time - Thunder Bay, Ontario +CA +6608-06544 America/Pangnirtung Eastern Standard Time - Pangnirtung, Nunavut +CA +6344-06828 America/Iqaluit Eastern Standard Time - east Nunavut +CA +6245-09210 America/Rankin_Inlet Eastern Standard Time - central Nunavut +CA +4953-09709 America/Winnipeg Central Time - Manitoba & west Ontario +CA +4843-09429 America/Rainy_River Central Time - Rainy River & Fort Frances, Ontario +CA +6903-10505 America/Cambridge_Bay Central Time - west Nunavut +CA +5024-10439 America/Regina Central Standard Time - Saskatchewan - most locations +CA +5017-10750 America/Swift_Current Central Standard Time - Saskatchewan - midwest +CA +5333-11328 America/Edmonton Mountain Time - Alberta, east British Columbia & west Saskatchewan +CA +6227-11421 America/Yellowknife Mountain Time - central Northwest Territories +CA +6825-11330 America/Inuvik Mountain Time - west Northwest Territories +CA +5946-12014 America/Dawson_Creek Mountain Standard Time - Dawson Creek & Fort Saint John, British Columbia +CA +4916-12307 America/Vancouver Pacific Time - west British Columbia +CA +6043-13503 America/Whitehorse Pacific Time - south Yukon +CA +6404-13925 America/Dawson Pacific Time - north Yukon +CC -1210+09655 Indian/Cocos +CD -0418+01518 Africa/Kinshasa west Dem. Rep. of Congo +CD -1140+02728 Africa/Lubumbashi east Dem. Rep. of Congo +CF +0422+01835 Africa/Bangui +CG -0416+01517 Africa/Brazzaville +CH +4723+00832 Europe/Zurich +CI +0519-00402 Africa/Abidjan +CK -2114-15946 Pacific/Rarotonga +CL -3327-07040 America/Santiago most locations +CL -2710-10927 Pacific/Easter Easter Island & Sala y Gomez +CM +0403+00942 Africa/Douala +CN +3114+12128 Asia/Shanghai east China - Beijing, Guangdong, Shanghai, etc. +CN +4545+12641 Asia/Harbin Heilongjiang +CN +2934+10635 Asia/Chongqing central China - Gansu, Guizhou, Sichuan, Yunnan, etc. +CN +4348+08735 Asia/Urumqi Tibet & most of Xinjiang Uyghur +CN +3929+07559 Asia/Kashgar southwest Xinjiang Uyghur +CO +0436-07405 America/Bogota +CR +0956-08405 America/Costa_Rica +CS +4450+02030 Europe/Belgrade +CU +2308-08222 America/Havana +CV +1455-02331 Atlantic/Cape_Verde +CX -1025+10543 Indian/Christmas +CY +3510+03322 Asia/Nicosia +CZ +5005+01426 Europe/Prague +DE +5230+01322 Europe/Berlin +DJ +1136+04309 Africa/Djibouti +DK +5540+01235 Europe/Copenhagen +DM +1518-06124 America/Dominica +DO +1828-06954 America/Santo_Domingo +DZ +3647+00303 Africa/Algiers +EC -0210-07950 America/Guayaquil mainland +EC -0054-08936 Pacific/Galapagos Galapagos Islands +EE +5925+02445 Europe/Tallinn +EG +3003+03115 Africa/Cairo +EH +2709-01312 Africa/El_Aaiun +ER +1520+03853 Africa/Asmera +ES +4024-00341 Europe/Madrid mainland +ES +3553-00519 Africa/Ceuta Ceuta & Melilla +ES +2806-01524 Atlantic/Canary Canary Islands +ET +0902+03842 Africa/Addis_Ababa +FI +6010+02458 Europe/Helsinki +FJ -1808+17825 Pacific/Fiji +FK -5142-05751 Atlantic/Stanley +FM +0931+13808 Pacific/Yap Yap +FM +0725+15147 Pacific/Truk Truk (Chuuk) +FM +0658+15813 Pacific/Ponape Ponape (Pohnpei) +FM +0519+16259 Pacific/Kosrae Kosrae +FO +6201-00646 Atlantic/Faeroe +FR +4852+00220 Europe/Paris +GA +0023+00927 Africa/Libreville +GB +512830-0001845 Europe/London Great Britain +GB +5435-00555 Europe/Belfast Northern Ireland +GD +1203-06145 America/Grenada +GE +4143+04449 Asia/Tbilisi +GF +0456-05220 America/Cayenne +GH +0533-00013 Africa/Accra +GI +3608-00521 Europe/Gibraltar +GL +6411-05144 America/Godthab most locations +GL +7646-01840 America/Danmarkshavn east coast, north of Scoresbysund +GL +7030-02215 America/Scoresbysund Scoresbysund / Ittoqqortoormiit +GL +7634-06847 America/Thule Thule / Pituffik +GM +1328-01639 Africa/Banjul +GN +0931-01343 Africa/Conakry +GP +1614-06132 America/Guadeloupe +GQ +0345+00847 Africa/Malabo +GR +3758+02343 Europe/Athens +GS -5416-03632 Atlantic/South_Georgia +GT +1438-09031 America/Guatemala +GU +1328+14445 Pacific/Guam +GW +1151-01535 Africa/Bissau +GY +0648-05810 America/Guyana +HK +2217+11409 Asia/Hong_Kong +HN +1406-08713 America/Tegucigalpa +HR +4548+01558 Europe/Zagreb +HT +1832-07220 America/Port-au-Prince +HU +4730+01905 Europe/Budapest +ID -0610+10648 Asia/Jakarta Java & Sumatra +ID -0002+10920 Asia/Pontianak west & central Borneo +ID -0507+11924 Asia/Makassar east & south Borneo, Celebes, Bali, Nusa Tengarra, west Timor +ID -0232+14042 Asia/Jayapura Irian Jaya & the Moluccas +IE +5320-00615 Europe/Dublin +IL +3146+03514 Asia/Jerusalem +IN +2232+08822 Asia/Calcutta +IO -0720+07225 Indian/Chagos +IQ +3321+04425 Asia/Baghdad +IR +3540+05126 Asia/Tehran +IS +6409-02151 Atlantic/Reykjavik +IT +4154+01229 Europe/Rome +JM +1800-07648 America/Jamaica +JO +3157+03556 Asia/Amman +JP +353916+1394441 Asia/Tokyo +KE -0117+03649 Africa/Nairobi +KG +4254+07436 Asia/Bishkek +KH +1133+10455 Asia/Phnom_Penh +KI +0125+17300 Pacific/Tarawa Gilbert Islands +KI -0308-17105 Pacific/Enderbury Phoenix Islands +KI +0152-15720 Pacific/Kiritimati Line Islands +KM -1141+04316 Indian/Comoro +KN +1718-06243 America/St_Kitts +KP +3901+12545 Asia/Pyongyang +KR +3733+12658 Asia/Seoul +KW +2920+04759 Asia/Kuwait +KY +1918-08123 America/Cayman +KZ +4315+07657 Asia/Almaty most locations +KZ +4448+06528 Asia/Qyzylorda Qyzylorda (Kyzylorda, Kzyl-Orda) +KZ +5017+05710 Asia/Aqtobe Aqtobe (Aktobe) +KZ +4431+05016 Asia/Aqtau Atyrau (Atirau, Gur'yev), Mangghystau (Mankistau) +KZ +5113+05121 Asia/Oral West Kazakhstan +LA +1758+10236 Asia/Vientiane +LB +3353+03530 Asia/Beirut +LC +1401-06100 America/St_Lucia +LI +4709+00931 Europe/Vaduz +LK +0656+07951 Asia/Colombo +LR +0618-01047 Africa/Monrovia +LS -2928+02730 Africa/Maseru +LT +5441+02519 Europe/Vilnius +LU +4936+00609 Europe/Luxembourg +LV +5657+02406 Europe/Riga +LY +3254+01311 Africa/Tripoli +MA +3339-00735 Africa/Casablanca +MC +4342+00723 Europe/Monaco +MD +4700+02850 Europe/Chisinau +MG -1855+04731 Indian/Antananarivo +MH +0709+17112 Pacific/Majuro most locations +MH +0905+16720 Pacific/Kwajalein Kwajalein +MK +4159+02126 Europe/Skopje +ML +1239-00800 Africa/Bamako southwest Mali +ML +1446-00301 Africa/Timbuktu northeast Mali +MM +1647+09610 Asia/Rangoon +MN +4755+10653 Asia/Ulaanbaatar most locations +MN +4801+09139 Asia/Hovd Bayan-Olgiy, Govi-Altai, Hovd, Uvs, Zavkhan +MN +4804+11430 Asia/Choibalsan Dornod, Sukhbaatar +MO +2214+11335 Asia/Macau +MP +1512+14545 Pacific/Saipan +MQ +1436-06105 America/Martinique +MR +1806-01557 Africa/Nouakchott +MS +1644-06213 America/Montserrat +MT +3554+01431 Europe/Malta +MU -2010+05730 Indian/Mauritius +MV +0410+07330 Indian/Maldives +MW -1547+03500 Africa/Blantyre +MX +1924-09909 America/Mexico_City Central Time - most locations +MX +2105-08646 America/Cancun Central Time - Quintana Roo +MX +2058-08937 America/Merida Central Time - Campeche, Yucatan +MX +2540-10019 America/Monterrey Central Time - Coahuila, Durango, Nuevo Leon, Tamaulipas +MX +2313-10625 America/Mazatlan Mountain Time - S Baja, Nayarit, Sinaloa +MX +2838-10605 America/Chihuahua Mountain Time - Chihuahua +MX +2904-11058 America/Hermosillo Mountain Standard Time - Sonora +MX +3232-11701 America/Tijuana Pacific Time +MY +0310+10142 Asia/Kuala_Lumpur peninsular Malaysia +MY +0133+11020 Asia/Kuching Sabah & Sarawak +MZ -2558+03235 Africa/Maputo +NA -2234+01706 Africa/Windhoek +NC -2216+16530 Pacific/Noumea +NE +1331+00207 Africa/Niamey +NF -2903+16758 Pacific/Norfolk +NG +0627+00324 Africa/Lagos +NI +1209-08617 America/Managua +NL +5222+00454 Europe/Amsterdam +NO +5955+01045 Europe/Oslo +NP +2743+08519 Asia/Katmandu +NR -0031+16655 Pacific/Nauru +NU -1901+16955 Pacific/Niue +NZ -3652+17446 Pacific/Auckland most locations +NZ -4357-17633 Pacific/Chatham Chatham Islands +OM +2336+05835 Asia/Muscat +PA +0858-07932 America/Panama +PE -1203-07703 America/Lima +PF -1732-14934 Pacific/Tahiti Society Islands +PF -0900-13930 Pacific/Marquesas Marquesas Islands +PF -2308-13457 Pacific/Gambier Gambier Islands +PG -0930+14710 Pacific/Port_Moresby +PH +1435+12100 Asia/Manila +PK +2452+06703 Asia/Karachi +PL +5215+02100 Europe/Warsaw +PM +4703-05620 America/Miquelon +PN -2504-13005 Pacific/Pitcairn +PR +182806-0660622 America/Puerto_Rico +PS +3130+03428 Asia/Gaza +PT +3843-00908 Europe/Lisbon mainland +PT +3238-01654 Atlantic/Madeira Madeira Islands +PT +3744-02540 Atlantic/Azores Azores +PW +0720+13429 Pacific/Palau +PY -2516-05740 America/Asuncion +QA +2517+05132 Asia/Qatar +RE -2052+05528 Indian/Reunion +RO +4426+02606 Europe/Bucharest +RU +5443+02030 Europe/Kaliningrad Moscow-01 - Kaliningrad +RU +5545+03735 Europe/Moscow Moscow+00 - west Russia +RU +5312+05009 Europe/Samara Moscow+01 - Caspian Sea +RU +5651+06036 Asia/Yekaterinburg Moscow+02 - Urals +RU +5500+07324 Asia/Omsk Moscow+03 - west Siberia +RU +5502+08255 Asia/Novosibirsk Moscow+03 - Novosibirsk +RU +5601+09250 Asia/Krasnoyarsk Moscow+04 - Yenisei River +RU +5216+10420 Asia/Irkutsk Moscow+05 - Lake Baikal +RU +6200+12940 Asia/Yakutsk Moscow+06 - Lena River +RU +4310+13156 Asia/Vladivostok Moscow+07 - Amur River +RU +4658+14242 Asia/Sakhalin Moscow+07 - Sakhalin Island +RU +5934+15048 Asia/Magadan Moscow+08 - Magadan +RU +5301+15839 Asia/Kamchatka Moscow+09 - Kamchatka +RU +6445+17729 Asia/Anadyr Moscow+10 - Bering Sea +RW -0157+03004 Africa/Kigali +SA +2438+04643 Asia/Riyadh +SB -0932+16012 Pacific/Guadalcanal +SC -0440+05528 Indian/Mahe +SD +1536+03232 Africa/Khartoum +SE +5920+01803 Europe/Stockholm +SG +0117+10351 Asia/Singapore +SH -1555-00542 Atlantic/St_Helena +SI +4603+01431 Europe/Ljubljana +SJ +7800+01600 Arctic/Longyearbyen Svalbard +SJ +7059-00805 Atlantic/Jan_Mayen Jan Mayen +SK +4809+01707 Europe/Bratislava +SL +0830-01315 Africa/Freetown +SM +4355+01228 Europe/San_Marino +SN +1440-01726 Africa/Dakar +SO +0204+04522 Africa/Mogadishu +SR +0550-05510 America/Paramaribo +ST +0020+00644 Africa/Sao_Tome +SV +1342-08912 America/El_Salvador +SY +3330+03618 Asia/Damascus +SZ -2618+03106 Africa/Mbabane +TC +2128-07108 America/Grand_Turk +TD +1207+01503 Africa/Ndjamena +TF -492110+0701303 Indian/Kerguelen +TG +0608+00113 Africa/Lome +TH +1345+10031 Asia/Bangkok +TJ +3835+06848 Asia/Dushanbe +TK -0922-17114 Pacific/Fakaofo +TL -0833+12535 Asia/Dili +TM +3757+05823 Asia/Ashgabat +TN +3648+01011 Africa/Tunis +TO -2110+17510 Pacific/Tongatapu +TR +4101+02858 Europe/Istanbul +TT +1039-06131 America/Port_of_Spain +TV -0831+17913 Pacific/Funafuti +TW +2503+12130 Asia/Taipei +TZ -0648+03917 Africa/Dar_es_Salaam +UA +5026+03031 Europe/Kiev most locations +UA +4837+02218 Europe/Uzhgorod Ruthenia +UA +4750+03510 Europe/Zaporozhye Zaporozh'ye, E Lugansk +UA +4457+03406 Europe/Simferopol central Crimea +UG +0019+03225 Africa/Kampala +UM +1700-16830 Pacific/Johnston Johnston Atoll +UM +2813-17722 Pacific/Midway Midway Islands +UM +1917+16637 Pacific/Wake Wake Island +US +404251-0740023 America/New_York Eastern Time +US +421953-0830245 America/Detroit Eastern Time - Michigan - most locations +US +381515-0854534 America/Louisville Eastern Time - Kentucky - Louisville area +US +364947-0845057 America/Kentucky/Monticello Eastern Time - Kentucky - Wayne County +US +394606-0860929 America/Indianapolis Eastern Standard Time - Indiana - most locations +US +382232-0862041 America/Indiana/Marengo Eastern Standard Time - Indiana - Crawford County +US +411745-0863730 America/Indiana/Knox Eastern Standard Time - Indiana - Starke County +US +384452-0850402 America/Indiana/Vevay Eastern Standard Time - Indiana - Switzerland County +US +415100-0873900 America/Chicago Central Time +US +450628-0873651 America/Menominee Central Time - Michigan - Wisconsin border +US +470659-1011757 America/North_Dakota/Center Central Time - North Dakota - Oliver County +US +394421-1045903 America/Denver Mountain Time +US +433649-1161209 America/Boise Mountain Time - south Idaho & east Oregon +US +364708-1084111 America/Shiprock Mountain Time - Navajo +US +332654-1120424 America/Phoenix Mountain Standard Time - Arizona +US +340308-1181434 America/Los_Angeles Pacific Time +US +611305-1495401 America/Anchorage Alaska Time +US +581807-1342511 America/Juneau Alaska Time - Alaska panhandle +US +593249-1394338 America/Yakutat Alaska Time - Alaska panhandle neck +US +643004-1652423 America/Nome Alaska Time - west Alaska +US +515248-1763929 America/Adak Aleutian Islands +US +211825-1575130 Pacific/Honolulu Hawaii +UY -3453-05611 America/Montevideo +UZ +3940+06648 Asia/Samarkand west Uzbekistan +UZ +4120+06918 Asia/Tashkent east Uzbekistan +VA +4154+01227 Europe/Vatican +VC +1309-06114 America/St_Vincent +VE +1030-06656 America/Caracas +VG +1827-06437 America/Tortola +VI +1821-06456 America/St_Thomas +VN +1045+10640 Asia/Saigon +VU -1740+16825 Pacific/Efate +WF -1318-17610 Pacific/Wallis +WS -1350-17144 Pacific/Apia +YE +1245+04512 Asia/Aden +YT -1247+04514 Indian/Mayotte +ZA -2615+02800 Africa/Johannesburg +ZM -1525+02817 Africa/Lusaka +ZW -1750+03103 Africa/Harare diff --git a/kworldwatch/zoneclock.cpp b/kworldwatch/zoneclock.cpp new file mode 100644 index 0000000..7b15fbc --- /dev/null +++ b/kworldwatch/zoneclock.cpp @@ -0,0 +1,287 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#include "config.h" + +#include +#include + + +#include +#include +#include +#include +#include +#include +#include + + +#include +#include +#include + + +#include "flow.h" +#include "clock.h" +#include "cities.h" +#include "zoneclock.moc" +#include + +ZoneClock::ZoneClock(const QString &zone, const QString &name, QWidget *parent, const char *n) + : QFrame(parent, n), _zone(zone), _name(name) +{ + setFrameStyle(QFrame::Panel | QFrame::Raised); + QHBoxLayout *hbox = new QHBoxLayout(this, 2,2); + + _name.append(":"); + _nameLabel = new QLabel(_name, this); + hbox->addWidget(_nameLabel, 1); + hbox->addSpacing(4); + + _timeLabel = new QLabel(this); + hbox->addWidget(_timeLabel, 0, Qt::AlignRight); + + _popup = new QPopupMenu(this); + _popup->insertItem(i18n("&Edit..."), this, SLOT(editClock())); + _popup->insertItem(i18n("&Add..."), this, SLOT(slotAddClock())); + _popup->insertItem(i18n("&Remove"), this, SLOT(slotRemoveClock())); + + _nameLabel->installEventFilter(this); + _timeLabel->installEventFilter(this); + + updateTime(); +} + + +void ZoneClock::slotRemoveClock() +{ + // Note: this is stupid, but we can't get us deleted + // from this slot, as we would return and crash. + // So instead we fire up an idle event triggering the delete + // after the return. + + QTimer::singleShot(0, this, SLOT(removeTimeout())); +} + + +void ZoneClock::removeTimeout() +{ + emit removeMe(this); +} + + +void ZoneClock::slotAddClock() +{ + emit addClock(_zone); +} + + +void ZoneClock::editClock() +{ + ClockDialog *_dlg = new ClockDialog(this, 0, true); + CityList cities; + QStringList timezones = cities.timezones(); + for (QStringList::iterator it = timezones.begin(); it != timezones.end(); ++it) + _dlg->ClockZone->insertItem(i18n((*it).utf8())); + + _dlg->ClockCaption->setText(_nameLabel->text().left(_nameLabel->text().length()-1)); + for (int i=0; i<_dlg->ClockZone->count(); ++i) + if (_dlg->ClockZone->text(i) == i18n(_zone.utf8())) + { + _dlg->ClockZone->setCurrentItem(i); + break; + } + + if (_dlg->exec() == QDialog::Accepted) + { + _zone = timezones[_dlg->ClockZone->currentItem()]; + _name = _dlg->ClockCaption->text().append(":"); + _nameLabel->setText(_dlg->ClockCaption->text().append(":")); + updateTime(); + layout()->invalidate(); + emit changed(); + } + + delete _dlg; +} + + +bool ZoneClock::eventFilter(QObject *obj, QEvent *ev) +{ + if (ev->type() == QEvent::MouseButtonPress) + { + QMouseEvent *e = (QMouseEvent*)ev; + if (e->button() == QMouseEvent::RightButton) + _popup->exec(e->globalPos()); + } + + return QFrame::eventFilter(obj, ev); +} + + +void ZoneClock::updateTime() +{ + char *initial_TZ = getenv("TZ"); + setenv("TZ", _zone.latin1(), 1); + tzset(); + + time_t t = time(NULL); + QDateTime dt; + dt.setTime_t(t); + _timeLabel->setText(QString("%1, %2").arg(KGlobal::locale()->formatTime(dt.time(), true)).arg(KGlobal::locale()->formatDate(dt.date(), true))); + + if (initial_TZ != 0) + setenv("TZ", initial_TZ, 1); + else + unsetenv("TZ"); + tzset(); +} + + +ZoneClockPanel::ZoneClockPanel(QWidget *parent, const char *name) + : QFrame(parent, name), _dlg(0) +{ + _flow = new SimpleFlow(this,1,1); + + QTimer *t = new QTimer(this); + + connect(t, SIGNAL(timeout()), this, SLOT(updateTimer())); + t->start(500); + + _clocks.setAutoDelete(true); +} + + +void ZoneClockPanel::createDialog() +{ + if (!_dlg) + { + _dlg = new ClockDialog(this, 0, true); + CityList cities; + QStringList timezones = cities.timezones(); + for (QStringList::iterator it = timezones.begin(); it != timezones.end(); ++it) + _dlg->ClockZone->insertItem(i18n((*it).utf8())); + } +} + + +void ZoneClockPanel::addClock(const QString &zone, const QString &name) +{ + // add the clocks + ZoneClock *zc = new ZoneClock(zone, name, this); + _flow->add(zc); + _clocks.append(zc); + zc->show(); + + realign(); + + connect(zc, SIGNAL(addClock(const QString &)), this, SLOT(addClock(const QString &))); + connect(zc, SIGNAL(changed()), this, SLOT(realign())); + connect(zc, SIGNAL(removeMe(ZoneClock *)), this, SLOT(removeClock(ZoneClock *))); +} + + +void ZoneClockPanel::removeClock(ZoneClock *clock) +{ + _clocks.remove(clock); + realign(); +} + + +void ZoneClockPanel::realign() +{ + // realign the labels + int w = 0; + QPtrListIterator it(_clocks); + for ( ; it.current(); ++it) + if (it.current()->sizeHint().width() > w) + w = it.current()->sizeHint().width(); + it.toFirst(); + for ( ; it.current(); ++it) + it.current()->setFixedWidth(w); +} + + +void ZoneClockPanel::updateTimer() +{ + QPtrListIterator it(_clocks); + for ( ; it.current(); ++it) + it.current()->updateTime(); +} + +void ZoneClockPanel::addClock(const QString &zone) +{ + createDialog(); + + _dlg->ClockCaption->setText(i18n(zone.utf8()).section('/', -1)); + for (int i=0; i<_dlg->ClockZone->count(); ++i) + if (_dlg->ClockZone->text(i) == i18n(zone.utf8())) + { + _dlg->ClockZone->setCurrentItem(i); + break; + } + + if (_dlg->exec() == QDialog::Accepted) + { + CityList cities; + QStringList timezones = cities.timezones(); + QString newzone = timezones[_dlg->ClockZone->currentItem()]; + addClock(newzone, _dlg->ClockCaption->text()); + update(); + } +} + + +void ZoneClockPanel::save(KConfig *config) +{ + config->writeEntry("Clocks", _clocks.count()); + + QPtrListIterator it(_clocks); + int cnt=0; + for ( ; it.current(); ++it) + { + QString n = it.current()->name(); + n = n.left(n.length()-1); + config->writeEntry(QString("Clock_%1_Name").arg(cnt), n); + config->writeEntry(QString("Clock_%1_Zone").arg(cnt), it.current()->zone()); + cnt++; + } +} + + +void ZoneClockPanel::load(KConfig *config) +{ + _clocks.clear(); + + int num = config->readNumEntry("Clocks", 0); + + for (int i=0; ireadEntry(QString("Clock_%1_Zone").arg(i)), config->readEntry(QString("Clock_%1_Name").arg(i))); + } +} + diff --git a/kworldwatch/zoneclock.h b/kworldwatch/zoneclock.h new file mode 100644 index 0000000..50a6768 --- /dev/null +++ b/kworldwatch/zoneclock.h @@ -0,0 +1,134 @@ +/* +** +** Copyright (C) 1998-2001 by Matthias Hlzer-Klpfel +** Maintainence has ceased - send questions to kde-devel@kde.org. +** +*/ + +/* +** 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. +** +** 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 in a file called COPYING; if not, write to +** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +** MA 02110-1301, USA. +*/ + +/* +** Bug reports and questions can be sent to kde-devel@kde.org +*/ +#ifndef ZONECLOCK_H +#define ZONECLOCK_H + + +#include +#include +#include +#include + + +class QLabel; +class SimpleFlow; +class KConfig; + + +class ClockDialog; + + +class ZoneClock : public QFrame +{ + Q_OBJECT + +public: + + ZoneClock(const QString &zone, const QString &name, QWidget *parent=0, const char *n=0); + + + QString zone() const { return _zone; }; + void setZone(const QString &z) { _zone = z; updateTime(); }; + + QString name() const { return _name; }; + void setName( const QString &n) { _name = n; updateTime(); }; + + +signals: + + void removeMe(ZoneClock *t); + void addClock(const QString &zone); + void changed(); + + +public slots: + + void updateTime(); + + +protected: + + virtual bool eventFilter(QObject *, QEvent *); + + +private slots: + + void editClock(); + void slotRemoveClock(); + void removeTimeout(); + void slotAddClock(); + + +private: + + QString _zone; + QString _name; + QLabel *_timeLabel, *_nameLabel; + QPopupMenu *_popup; + +}; + + +class ZoneClockPanel : public QFrame +{ + Q_OBJECT + +public: + + ZoneClockPanel(QWidget *parent=0, const char *name=0); + + void addClock(const QString &zone, const QString &name); + + void save(KConfig *config); + void load(KConfig *config); + + +public slots: + + void addClock(const QString &zone); + + +private slots: + + void updateTimer(); + void realign(); + void removeClock(ZoneClock *); + + +private: + + void createDialog(); + + SimpleFlow *_flow; + QPtrList _clocks; + ClockDialog *_dlg; + +}; + + +#endif

Bs<$m4?9jUii-Do*b@%pbEN2FB@18Z*KjL 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%0D?WJXv-ss^5yoLxHWspt#>0=6GBQf@0a+M8;%gyc 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 F|JjTJ4B!9& literal 0 HcmV?d00001 diff --git a/kworldwatch/maps/depths/Makefile.am b/kworldwatch/maps/depths/Makefile.am new file mode 100644 index 0000000..d543382 --- /dev/null +++ b/kworldwatch/maps/depths/Makefile.am @@ -0,0 +1,2 @@ +maps_DATA = depths.desktop 400.jpg 800.jpg +mapsdir = $(kde_datadir)/kworldclock/maps/depths diff --git a/kworldwatch/maps/depths/depths.desktop b/kworldwatch/maps/depths/depths.desktop new file mode 100644 index 0000000..33a11a5 --- /dev/null +++ b/kworldwatch/maps/depths/depths.desktop @@ -0,0 +1,64 @@ +[Theme] +Name=Surface Depth +Name[af]=Oppervlakte Diepte +Name[ar]=عمق السطح +Name[az]=Səth Dərinliyi +Name[be]=Глыбіня паверхні +Name[bg]=Релеф на земната повърхност +Name[bn]=পৃষ্ঠের গভীরতা +Name[br]=Krogad en egor +Name[ca]=Extensió de la superfície +Name[cs]=Plocha do hloubky +Name[cy]=Dyfnder Arwyneb +Name[da]=Overfladedybde +Name[de]=Oberflächenstruktur +Name[el]=Βάθος επιφάνειας +Name[eo]=Surfacprofundo +Name[es]=Profundidad de superficie +Name[et]=Pinnasügavus +Name[eu]=Azalaren Sakona +Name[fa]=عمق سطح +Name[fi]=Pinnan syvyys +Name[fr]=Relief +Name[ga]=Doimhneacht an Dromchla +Name[gl]=Profundidade da Superfície +Name[he]=מעמקים +Name[hi]=सतह गहराई +Name[hr]=Površinska dubina +Name[hu]=Felületmélység +Name[is]=Yfirborðsdýpt +Name[it]=Profondità superficie +Name[ja]=表面の深さ +Name[km]=ជម្រៅ​ផ្ទៃ +Name[ko]=표면 깊이 +Name[lt]=Paviršiaus gylis +Name[lv]=Virsmas dziļums +Name[mk]=Длабочина на површина +Name[mt]=Fond tal-wiċċ +Name[nb]=Overflate-dybde +Name[nds]=Böversiet-Deepde +Name[ne]=धरातलिय गहिराइ +Name[nl]=Oppervlaktediepte +Name[nn]=Overflatedjupne +Name[pl]=Głębokość powierzchni +Name[pt]=Profundidade da Superfície +Name[pt_BR]=Profundidade de superfície +Name[ro]=Suprafaţă de adîncimi +Name[ru]=Глубина поверхности +Name[sk]=Hĺbka povrchu +Name[sl]=Globina ploskve +Name[sr]=Дубина рељефа +Name[sr@Latn]=Dubina reljefa +Name[sv]=Ytdjup +Name[ta]= தள ஆழம் +Name[tg]=Қаъри Сатҳ +Name[th]=ความลึกพื้นผิว +Name[tr]=Yüzey Derinliği +Name[uk]=Глибина поверхні +Name[ven]=Vhulapfu uya fhasi +Name[wa]=Surface e relief +Name[xh]=Ubunzulu Bomphezulu +Name[zh_CN]=表面纵深 +Name[zh_TW]=表面深度 +Name[zu]=Ubunzulu Baphezulu +Theme=depths diff --git a/kworldwatch/maps/flatworld/1200.jpg b/kworldwatch/maps/flatworld/1200.jpg new file mode 100644 index 0000000000000000000000000000000000000000..40a086d633a3ad2698d6169cec4b918759ed471e GIT binary patch literal 89701 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⪚F7GB&pec$|lXdm$4z5y)U`?}Y}_t%E?00#&A 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ιvGb_ZduPl4Z@eli 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 yJ_&$mgH0s!)qD2n+0+04AOJ~3 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

~ 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 WPI3#J2)yI~00009?zwk~nIg?Lv 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%0A1;EY=&VFK~#+ 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 + * based on keyes (C) 1999 by Jerome Tollet + * + * 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. + * + * 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; if not, write to the Free Software + */ + +#include + +#include +#include +#include + +#include +#include +#include + +#include "eyes.h" +#include "eyes.moc" + +#define AAFACTOR 4 + +extern "C" +{ + KDE_EXPORT KPanelApplet* init(QWidget *parent, const QString& configFile) + { + KGlobal::locale()->insertCatalogue("keyesapplet"); + EyesApplet *applet = new EyesApplet(configFile, KPanelApplet::Normal, 0, parent, "keyesapplet"); + return applet; + } +} + +EyesApplet::EyesApplet(const QString& configFile, Type t, int actions, + QWidget *parent, const char *name) + : KPanelApplet( configFile, t, actions, parent, name ) +{ + setWFlags(WNoAutoErase); + setBackgroundOrigin(AncestorOrigin); + startTimer(50); + oldleft = QPoint(-1, -1); + oldright = QPoint(-1, -1); + oldMouse = QPoint(-1, -1); +} + +int EyesApplet::widthForHeight(int h) const +{ + return static_cast(1.4 * h); // rectangular shape. +} +int EyesApplet::heightForWidth(int w) const +{ + return static_cast(w / 1.4); // rectangular shape. +} + +void EyesApplet::resizeEvent( QResizeEvent*e ) +{ + QWidget::resizeEvent(e); +} + +void EyesApplet::timerEvent(QTimerEvent*) +{ + QPoint mouse = mapFromGlobal(QCursor::pos()); + if (mouse != oldMouse) + update(); +} + +void EyesApplet::paintEvent(QPaintEvent*) +{ + int spWidth = width() * AAFACTOR; + int spHeight = height() * AAFACTOR; + + if (spWidth != _cache.width() || spHeight != _cache.height()) + _cache.resize(spWidth, spHeight); + + QPainter paint(&_cache); + + if (paletteBackgroundPixmap()) + { + QPixmap bg(width(), height()); + QPainter p(&bg); + QPoint offset = backgroundOffset(); + p.drawTiledPixmap(0, 0, width(), height(), *paletteBackgroundPixmap(), offset.x(), offset.y()); + p.end(); + QImage bgImage = bg.convertToImage().scale(spWidth, spHeight); + paint.drawImage(0, 0, bgImage); + } + else + { + _cache.fill(paletteBackgroundColor()); + } + + // draw eyes, no pupils + paint.setPen(QPen(black, 2 * AAFACTOR)); + paint.setBrush(QBrush(white)); + + int w = spWidth; // - AAFACTOR * 2; + int h = spHeight; // - AAFACTOR * 2; + + // left eye + paint.drawEllipse(AAFACTOR, AAFACTOR, w/2 - AAFACTOR, h - AAFACTOR * 2); + + // right eye + paint.drawEllipse(w/2, AAFACTOR, w/2 - AAFACTOR, h - AAFACTOR * 2); + + // draw pupils + drawPupils(&paint); + paint.end(); + + QPainter paintFinal(this); + QImage spImage = _cache.convertToImage(); + QImage displayImage = spImage.smoothScale(size()); + paintFinal.drawImage(0, 0, displayImage); + paintFinal.end(); +} + +void EyesApplet::drawPupils(QPainter* p) +{ + QPoint pos, mouse, vect; + double cos_alpha,sin_alpha; + + int w = width() * AAFACTOR; + int h = height() * AAFACTOR; + + oldMouse = mapFromGlobal(QCursor::pos()); + mouse = oldMouse * AAFACTOR; + int tmp = QMIN(h, w)/6; + + // left pupil + vect.setX(mouse.x() - h / 4); + vect.setY(mouse.y() - h / 2); + + cos_alpha = vect.x() / sqrt(double(vect.x() * vect.x() + vect.y() * vect.y())); + sin_alpha = vect.y() / sqrt(double(vect.x() * vect.x() + vect.y() * vect.y())); + + if(vect.x() * vect.x() + vect.y() * vect.y() > (w/4 - tmp) * (w/4 - tmp)* + cos_alpha * cos_alpha+ (h/2-tmp) * (h/2-tmp) * sin_alpha * sin_alpha) { + pos.setX(int((w/4-tmp) * cos_alpha+w/4)); + pos.setY(int((h/2-tmp) * sin_alpha+h/2)); + } + else + pos = mouse; + + if(pos != oldleft) { + + int sizeEye=QMIN(h,w)/6; + +// // draw over old pos +// p->setPen(QPen(NoPen)); +// p->setBrush(QBrush(white)); +// p->drawEllipse(oldleft.x() - sizeEye/2, oldleft.y() - sizeEye/2, sizeEye, sizeEye); + + // draw left pupil + p->setPen(QPen(NoPen)); + p->setBrush(QBrush(black)); + p->drawEllipse(pos.x() - sizeEye/2, pos.y() - sizeEye/2, sizeEye, sizeEye); + + //oldleft = pos; + } + + // right pupil + vect.setX(mouse.x() - 3*w/4); + vect.setY(mouse.y() - h/2); + + cos_alpha = vect.x()/sqrt(double(vect.x()*vect.x()+vect.y()*vect.y())); + sin_alpha = vect.y()/sqrt(double(vect.x()*vect.x()+vect.y()*vect.y())); + + if(vect.x()*vect.x() + vect.y()*vect.y() > (w/4-tmp)*(w/4-tmp) + *cos_alpha*cos_alpha+(h/2-tmp)*(h/2-tmp)*sin_alpha*sin_alpha) + { + pos.setX(int((w/4-tmp)*cos_alpha+3*w/4)); + pos.setY(int((h/2-tmp)*sin_alpha+h/2)); + } + else + pos = mouse; + + if(pos != oldright) { + + int sizeEye=QMIN(h,w)/6; + +// // draw over old pos +// p->setPen(QPen(NoPen)); +// p->setBrush(QBrush(white)); +// p->drawEllipse(oldright.x() - sizeEye/2, oldright.y() - sizeEye/2, sizeEye, sizeEye); + + // draw left pupil + p->setPen(QPen(NoPen)); + p->setBrush(QBrush(black)); + p->drawEllipse(pos.x() - sizeEye/2, pos.y() - sizeEye/2, sizeEye, sizeEye); + + //oldright = pos; + } +} diff --git a/eyesapplet/eyes.h b/eyesapplet/eyes.h new file mode 100644 index 0000000..2bb8d72 --- /dev/null +++ b/eyesapplet/eyes.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2000 Matthias Elter + * based on keyes (C) 1999 by Jerome Tollet + * + * 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. + * + * 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; if not, write to the Free Software + */ + +#ifndef __eyes_h__ +#define __eyes_h__ + +#include +#include + +class EyesApplet : public KPanelApplet +{ + Q_OBJECT + +public: + EyesApplet(const QString& configFile, Type t = Normal, int actions = 0, + QWidget *parent = 0, const char *name = 0); + + int widthForHeight(int height) const; + int heightForWidth(int width) const; + +protected: + void timerEvent(QTimerEvent*); + void resizeEvent(QResizeEvent*); + void paintEvent(QPaintEvent*); + +private: + void drawPupils(QPainter* p); + + QPoint oldleft, oldright, oldMouse; + QPixmap _cache; +}; + +#endif // __eyes_h__ diff --git a/eyesapplet/eyesapplet.desktop b/eyesapplet/eyesapplet.desktop new file mode 100644 index 0000000..7ffeda1 --- /dev/null +++ b/eyesapplet/eyesapplet.desktop @@ -0,0 +1,120 @@ +[Desktop Entry] +Type=Plugin +Name=Eyes +Name[af]=Oë +Name[ar]=عيون +Name[az]=Gözlər +Name[be]=Вочы +Name[bg]=Очички +Name[bn]=চোখ +Name[br]=Daoulagad +Name[bs]=Oči +Name[ca]=Ulls +Name[cs]=Oči +Name[cy]=Llygaid +Name[da]=Øjne +Name[de]=Augen +Name[el]=Μάτια +Name[eo]=Okuloj +Name[es]=Ojos +Name[et]=Silmad +Name[eu]=Begiak +Name[fa]=چشمها +Name[fi]=Silmät +Name[fo]=Eygu +Name[fr]=Yeux +Name[gl]=Ollos +Name[he]=עיניים +Name[hi]=आँखें +Name[hr]=Oči +Name[hu]=Szemek +Name[is]=Augu +Name[it]=Occhi +Name[km]=ភ្នែក +Name[ko]=눈 +Name[lt]=Akys +Name[lv]=Acis +Name[mk]=Очи +Name[mt]=Għajnejn +Name[nb]=Øyne +Name[nds]=Ogen +Name[ne]=आँखा +Name[nl]=Ogen +Name[nn]=Auge +Name[pa]=ਅੱਖਾਂ +Name[pl]=Oczy +Name[pt]=Olhos +Name[pt_BR]=Olhos +Name[ro]=Ochi +Name[ru]=Глаза +Name[sk]=Oči +Name[sl]=Oči +Name[sr]=Очи +Name[sr@Latn]=Oči +Name[sv]=Ögon +Name[ta]= கண்கள் +Name[tg]=Чашмҳо +Name[th]=ดวงตา +Name[tr]=Gözler +Name[uk]=Очі +Name[uz]=Koʻzlar +Name[uz@cyrillic]=Кўзлар +Name[ven]=Mato +Name[wa]=Ouys +Name[xh]=Amehlo +Name[zh_CN]=眼睛 +Name[zh_TW]=眼睛 +Name[zu]=Amehlo + +Comment=Keeps an eye on your mouse pointer +Comment[ar]=عين تلاحق دوماً مؤشر الفأرة +Comment[be]=Сочаць за мышшу +Comment[bg]=Очички, които следят показалеца на мишката +Comment[bn]=মাউস পয়েন্টারের ওপর চোখ রাখে +Comment[ca]=Vigila el cursor del ratolí +Comment[cs]=Oči sledující ukazatel myši +Comment[cy]=Yn cadw llygad ar bwyntydd eich llygoden +Comment[da]=Holder øje med din musemarkør +Comment[de]=Beobachtet Ihren Mauszeiger +Comment[el]=Ακολουθεί το δρομέα του ποντικιού σας +Comment[eo]=Konservu okulon sur via musmontrilo +Comment[es]=Echa una ojeada al puntero del ratón +Comment[et]=Utiliit, mis hoiab su hiirekursoril silma peal +Comment[eu]=Begi bat zure saguaren erakuslean mantentzen du +Comment[fa]=به اشاره‌گر موشی چشم می‌دوزد +Comment[fi]=Silmäilee hiiriosoitintasi +Comment[fr]=Garde un œil sur le pointeur de votre souris +Comment[ga]=Coinnigh súil ar do phointeoir luiche +Comment[gl]=Non perde de vista o ponteiro do rato +Comment[he]=עוקב אחרי הסמן של העכבר שלך +Comment[hr]=Drži oko na pokazivaču miša +Comment[hu]=Az egérmozgás figyelése +Comment[is]=Fylgist með músarbendlinum +Comment[it]=Fissa un occhio sul puntatore del mouse +Comment[ja]=マウスポインタを追いかける目 +Comment[km]=ចាំ​យាម​មើលព្រួញ​កណ្ដុរ​របស់​អ្នក +Comment[lv]=Pieskata jūsu peli +Comment[mk]=Го следи движењето на вашиот покажувач +Comment[nb]=Holder et øye med musepekeren din +Comment[nds]=Beluert Dien Muuswieser +Comment[ne]=तपाईँको माउस पोइन्टरमा आँखा राख्दछ +Comment[nl]=Houdt een oogje op uw muisaanwijzer +Comment[nn]=Held auge med musepeikaren +Comment[pl]=Trzyma oko na Twój kursor myszy +Comment[pt]=Vigia o ponteiro do rato +Comment[pt_BR]=Vigia o ponteiro do seu mouse +Comment[ro]=Urmăreşte cursorul mouse-ului +Comment[ru]=Не сводит глаз с мыши +Comment[sk]=Drží pohľad na kurzor myši +Comment[sl]=Z očmi spremlja kazalec vaše miške +Comment[sr]=Прати погледом ваш показивач миша +Comment[sr@Latn]=Prati pogledom vaš pokazivač miša +Comment[sv]=Håller ett öga på muspekaren +Comment[tg]=Нишонаи мушро нигоҳ дошта истодааст +Comment[tr]=Gözlerin fare imlecinizi takip etmesini sağlar +Comment[uk]=Спостерігає за стрілкою мишки +Comment[zh_CN]=盯着您鼠标指针的眼睛 +Comment[zh_TW]=讓眼睛盯著滑鼠游標跑 + +Icon=xeyes +X-KDE-Library=eyes_panelapplet diff --git a/fifteenapplet/Makefile.am b/fifteenapplet/Makefile.am new file mode 100644 index 0000000..b2e4c3d --- /dev/null +++ b/fifteenapplet/Makefile.am @@ -0,0 +1,19 @@ +INCLUDES = $(all_includes) + +kde_module_LTLIBRARIES = fifteen_panelapplet.la + +fifteen_panelapplet_la_SOURCES = fifteenapplet.cpp qttableview.cpp + +METASOURCES = AUTO +noinst_HEADERS = fifteenapplet.h + +lnkdir = $(kde_datadir)/kicker/applets +lnk_DATA = kfifteenapplet.desktop + +EXTRA_DIST = $(lnk_DATA) + +fifteen_panelapplet_la_LDFLAGS = $(KDE_PLUGIN) -module $(all_libraries) +fifteen_panelapplet_la_LIBADD = $(LIB_KDEUI) + +messages: + $(XGETTEXT) *.cpp *.h -o $(podir)/kfifteenapplet.pot diff --git a/fifteenapplet/fifteenapplet.cpp b/fifteenapplet/fifteenapplet.cpp new file mode 100644 index 0000000..d55221a --- /dev/null +++ b/fifteenapplet/fifteenapplet.cpp @@ -0,0 +1,321 @@ +/***************************************************************** + +Copyright (c) 2001 Matthias Elter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +******************************************************************/ + +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +#include "fifteenapplet.h" +#include "fifteenapplet.moc" + +extern "C" +{ + KDE_EXPORT KPanelApplet* init(QWidget *parent, const QString& configFile) + { + KGlobal::locale()->insertCatalogue("kfifteenapplet"); + return new FifteenApplet(configFile, KPanelApplet::Normal, + KPanelApplet::About, parent, "kfifteenapplet"); + } +} + +FifteenApplet::FifteenApplet(const QString& configFile, Type type, int actions, + QWidget *parent, const char *name) + : KPanelApplet(configFile, type, actions, parent, name), _aboutData(0) +{ + // setup table + _table = new PiecesTable(this); + setCustomMenu(_table->popup()); + + // setup layout + QHBoxLayout *_layout = new QHBoxLayout(this); + _layout->add(_table); + + srand(time(0)); +} + +int FifteenApplet::widthForHeight(int h) const +{ + return h; // we want to be quadratic +} + +int FifteenApplet::heightForWidth(int w) const +{ + return w; // we want to be quadratic +} + +void FifteenApplet::about() +{ + if(!_aboutData) { + _aboutData = new KAboutData("kfifteenapplet", I18N_NOOP("KFifteenApplet"), "1.0", + I18N_NOOP("Fifteen pieces applet.\n\n" + "The goal is to put the sliding pieces into numerical order.\n" + "Select \"Randomize Pieces\" from the right mouse button menu\n" + "to start a game."), + KAboutData::License_BSD, "(c) 2001, Matthias Elter"); + _aboutData->addAuthor("Matthias Elter", 0, "elter@kde.org"); + } + + KAboutApplication dialog(_aboutData); + dialog.exec(); +} + +PiecesTable::PiecesTable(QWidget* parent, const char* name ) + : QtTableView(parent, name), _activeRow(-1), _activeCol(-1), _randomized(false) +{ + _menu = new QPopupMenu(this); + _menu->insertItem(i18n("R&andomize Pieces"), this, SLOT(randomizeMap())); + _menu->insertItem(i18n("&Reset Pieces"), this, SLOT(resetMap())); + _menu->adjustSize(); // setup table view + + setFrameStyle(StyledPanel | Sunken); + setBackgroundMode(NoBackground); + setMouseTracking(true); + + setNumRows(4); + setNumCols(4); + + // init arrays + initMap(); + initColors(); +} + +void PiecesTable::paintCell(QPainter *p, int row, int col) +{ + int w = cellWidth(); + int h = cellHeight(); + int x2 = w - 1; + int y2 = h - 1; + + int number = _map[col + row * numCols()] + 1; + + bool active = (row == _activeRow && col == _activeCol); + + // draw cell background + if(number == 16) + p->setBrush(colorGroup().background()); + else + p->setBrush(_colors[number-1]); + p->setPen(NoPen); + p->drawRect(0, 0, w, h); + + // draw borders + if (height() > 40) { + p->setPen(colorGroup().text()); + if(col < numCols()-1) + p->drawLine(x2, 0, x2, y2); // right border line + + if(row < numRows()-1) + p->drawLine(0, y2, x2, y2); // bottom boder line + } + + // draw number + if (number == 16) return; + if(active) + p->setPen(white); + else + p->setPen(black); + p->drawText(0, 0, x2, y2, AlignHCenter | AlignVCenter, QString::number(number)); +} + +void PiecesTable::resizeEvent(QResizeEvent *e) +{ + QtTableView::resizeEvent(e); + + // set font + QFont f = font(); + if (height() > 50) + f.setPixelSize(8); + else if (height() > 40) + f.setPixelSize(7); + else if (height() > 24) + f.setPixelSize(5); + else + f.setPixelSize(3); + + setFont(f); + + setCellWidth(contentsRect().width()/ numRows()); + setCellHeight(contentsRect().height() / numCols()); +} + +void PiecesTable::initColors() +{ + _colors.resize(numRows() * numCols()); + for (int r = 0; r < numRows(); r++) + for (int c = 0; c < numCols(); c++) + _colors[c + r *numCols()] = QColor(255 - 70 * c,255 - 70 * r, 150); +} + +void PiecesTable::initMap() +{ + _map.resize(16); + for (unsigned int i = 0; i < 16; i++) + _map[i] = i; + + _randomized = false; +} + +void PiecesTable::randomizeMap() +{ + QMemArray positions; + positions.fill(0, 16); + + for (unsigned int i = 0; i < 16; i++) { + while(1) { + int r = (int) (((double)rand() / RAND_MAX) * 16); + if(positions[r] == 0) { + _map[i] = r; + positions[r] = 1; + break; + } + } + } + repaint(); + _randomized = true; +} + +void PiecesTable::resetMap() +{ + initMap(); + repaint(); +} + +void PiecesTable::checkwin() +{ + if(!_randomized) return; + + int i; + for (i = 0; i < 16; i++) + if(i != _map[i]) + break; + + if (i == 16) + KMessageBox::information(this, i18n("Congratulations!\nYou win the game!"), i18n("Fifteen Pieces")); +} + +void PiecesTable::mousePressEvent(QMouseEvent* e) +{ + QtTableView::mousePressEvent(e); + + if (e->button() == RightButton) { + // execute RMB popup and check result + _menu->exec(mapToGlobal(e->pos())); + e->accept(); + return; + } + else { + // GAME LOGIC + + // find the free position + int pos = _map.find(15); + if(pos < 0) return; + + int frow = pos / numCols(); + int fcol = pos - frow * numCols(); + + // find click position + int row = findRow(e->y()); + int col = findCol(e->x()); + + // sanity check + if (row < 0 || row >= numRows()) return; + if (col < 0 || col >= numCols()) return; + + // valid move? + if(row != frow && col != fcol) return; + + // rows match -> shift pieces + if(row == frow) { + + if (col < fcol) { + for(int c = fcol; c > col; c--) { + _map[c + row * numCols()] = _map[ c-1 + row *numCols()]; + updateCell(row, c, false); + } + } + else if (col > fcol) { + for(int c = fcol; c < col; c++) { + _map[c + row * numCols()] = _map[ c+1 + row *numCols()]; + updateCell(row, c, false); + } + } + } + // cols match -> shift pieces + else if (col == fcol) { + + if (row < frow) { + for(int r = frow; r > row; r--) { + _map[col + r * numCols()] = _map[ col + (r-1) *numCols()]; + updateCell(r, col, false); + } + } + else if (row > frow) { + for(int r = frow; r < row; r++) { + _map[col + r * numCols()] = _map[ col + (r+1) *numCols()]; + updateCell(r, col, false); + } + } + } + // move free cell to click position + _map[col + row * numCols()] = 15; + updateCell(row, col, false); + + // check if the player wins with this move + checkwin(); + } +} + +void PiecesTable::mouseMoveEvent(QMouseEvent* e) +{ + QtTableView::mouseMoveEvent(e); + + // highlight on mouse over + int row = findRow(e->y()); + int col = findCol(e->x()); + + int oldrow = _activeRow; + int oldcol = _activeCol; + + if(row >= numRows() + || col >= numCols() + || row < 0 + || col < 0) { + _activeRow = -1; + _activeCol = -1; + } + else { + _activeRow = row; + _activeCol = col; + } + + updateCell(oldrow, oldcol, false); + updateCell(row, col, false); +} diff --git a/fifteenapplet/fifteenapplet.h b/fifteenapplet/fifteenapplet.h new file mode 100644 index 0000000..21f431c --- /dev/null +++ b/fifteenapplet/fifteenapplet.h @@ -0,0 +1,84 @@ +/***************************************************************** + +Copyright (c) 2001 Matthias Elter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +******************************************************************/ + +#ifndef __fifteenapplet_h__ +#define __fifteenapplet_h__ + +#include "qttableview.h" +#include + +#include + +class QPopupMenu; +class KAboutData; + +class PiecesTable : public QtTableView +{ + Q_OBJECT + +public: + PiecesTable(QWidget* parent = 0, const char* name = 0); + QPopupMenu* popup() { return _menu; } + +protected: + void resizeEvent(QResizeEvent*); + void mousePressEvent(QMouseEvent*); + void mouseMoveEvent(QMouseEvent*); + + void paintCell(QPainter *, int row, int col); + + void initMap(); + void initColors(); + void checkwin(); + +protected slots: + void randomizeMap(); + void resetMap(); + +private: + QMemArray _map; + QMemArray _colors; + QPopupMenu *_menu; + int _activeRow, _activeCol; + bool _randomized; +}; + +class FifteenApplet : public KPanelApplet +{ + Q_OBJECT + +public: + FifteenApplet(const QString& configFile, Type t = Stretch, int actions = 0, + QWidget *parent = 0, const char *name = 0); + + int widthForHeight(int height) const; + int heightForWidth(int width) const; + + void about(); + +private: + PiecesTable *_table; + KAboutData *_aboutData; +}; + +#endif diff --git a/fifteenapplet/kfifteenapplet.desktop b/fifteenapplet/kfifteenapplet.desktop new file mode 100644 index 0000000..a8094e9 --- /dev/null +++ b/fifteenapplet/kfifteenapplet.desktop @@ -0,0 +1,118 @@ +[Desktop Entry] +Type=Plugin +Name=Fifteen Pieces +Name[af]=Vyftien Dele +Name[ar]=خمسة عشرة قطعة +Name[az]=On beş Parça +Name[be]=Пятнаццаць чарапкоў +Name[bg]=Пъзел от 15 части +Name[bn]=পনেরর ধাঁধা +Name[ca]=Quinze peces +Name[cs]=Patnáct +Name[cy]=Pymtheg Darn +Name[de]=Fünfzehn Steine +Name[el]=Δεκαπέντε κομμάτια +Name[eo]=Kvindek pecoj +Name[es]=Quince piezas +Name[et]=Viisteist tükki +Name[eu]=Hamabost Zati +Name[fa]=پانزده قطعه +Name[fi]=Viisitoista palasta +Name[fr]=Taquin +Name[ga]=Cúig Phíosa Déag +Name[gl]=Quince pezas +Name[he]=חמישה עשר חלקים +Name[hi]=पन्द्रह टुकड़े +Name[hr]=Petnaest dijelova +Name[hu]=Tizenötös játék +Name[is]=Fimmtán hlutir +Name[it]=Gioco del 15 +Name[ja]=15 ピース +Name[km]=១៥ បំណែក +Name[ko]=열 다섯 조각 +Name[lt]=Penkiolika dalių +Name[lv]=Piecpadsmit gabali +Name[mk]=Петнаесет парчиња +Name[nb]=Femten biter +Name[nds]=Foffteihn Steen +Name[ne]=पन्ध्र टुक्रा +Name[nl]=Vijftien stukken +Name[nn]=Femten brikker +Name[pa]=ਪੰਦਰਾਂ ਟੁਕੜੇ +Name[pl]=Piętnaście kawałków +Name[pt]=Quinze Peças +Name[pt_BR]=Quinze peças +Name[ro]=15 piese +Name[ru]=Пятнашки +Name[sk]=Hra Pätnásť +Name[sl]=Petnajst kosov +Name[sr]=Петнаест парчића +Name[sr@Latn]=Petnaest parčića +Name[sv]=Femtonspel +Name[ta]= பதினைந்து துண்டுகள் +Name[tg]=Понздаҳ Қисмҳо +Name[th]=เกมสิบห้าชิ้น +Name[tr]=Onbeş Parça +Name[uk]=П'ятнашки +Name[uz]=Oʻn beshta tosh +Name[uz@cyrillic]=Ўн бешта тош +Name[ven]=Zwipida zwa fumi na zwitanu +Name[wa]=Djeu des cwénze pîces +Name[xh]=Amaceba alishumi elinesihlanu +Name[zh_CN]=十五块 +Name[zh_TW]=十五片 +Name[zu]=Izingcezu Ezingamashumi nanhlanu +Comment=A little game with fifteen pieces +Comment[ar]= لعبة صغيرة مع خمسة عشرة قطعة +Comment[be]=Маленькая гульня з пятнаццацю чарапкамі +Comment[bg]=Малък пъзел от 15 части +Comment[bn]=পনেরটি টুকরোর একটি ছোট খেলা +Comment[ca]=Una joguina amb quinze peces +Comment[cs]=Malá hra s patnácti kameny +Comment[cy]=Gêm fach efo pymtheg darn +Comment[da]=Et lille spil med femten brikker +Comment[de]=Ein kleines Spiel mit fünfzehn Steinen +Comment[el]=Ένα μικρό παιχνίδι με 15 κομμάτια +Comment[eo]=Ludeto kun dek kvin pecoj +Comment[es]=Un pequeño juego con quince piezas +Comment[et]=Väike mäng viieteistkümne klotsiga +Comment[eu]=Hamabost piezadun joko txiki bat +Comment[fa]=بازیی کوچک با پانزده قطعه +Comment[fi]=Pieni 15 palan peli +Comment[fr]=Un petit jeu de taquin avec 15 pièces +Comment[ga]=Cluiche beag le cúig phíosa dhéag +Comment[gl]=Un xogo con quince pezas +Comment[he]=משחקון עם 15 חלקים +Comment[hr]=Mala igra s petnaest dijelova +Comment[hu]=A klasszikus kirakós játék +Comment[is]=Lítill leikur með fimmtán hluti +Comment[it]=Un piccolo gioco composto da quindici pezzi +Comment[ja]=15 ピースのちょっとしたゲーム +Comment[km]=កូន​ល្បែង​តូច​មួយ​ដែល​មាន​១៥ បំណែក +Comment[ko]=열 다섯 조각이 있는 작은 게임 +Comment[lv]=Neliela spēlīte ar piecapdsmit gabaliem +Comment[mk]=Мала игра со петнаесет парчиња +Comment[nb]=Et lite spill med femten biter +Comment[nds]=Lütt Speel mit foffteihn Steen +Comment[ne]=पन्ध्र टुक्रा गरिएको सानो खेल +Comment[nl]=Een klein spel met vijftien stukken +Comment[nn]=Eit lite spel med femten brikker +Comment[pl]=Prosta gra w piętnaście kawałków +Comment[pt]=Um pequeno jogo com quinze peças +Comment[pt_BR]=Um pequeno jogo com quinze peças +Comment[ro]=Un mic joc cu 15 piese +Comment[ru]=Всем известная игра в пятнашки +Comment[sk]=Malá hra s pätnástimi kúskami +Comment[sl]=Igrica s petnajstimi delčki +Comment[sr]=Игрица са петнаест делића +Comment[sr@Latn]=Igrica sa petnaest delića +Comment[sv]=Ett litet spel med femton delar +Comment[tg]=Бозии хурд бо понздах қисмҳо +Comment[tr]=Onbeş parçadan oluşan küçük bir oyun +Comment[uk]=Маленька гра з 15-ти частин +Comment[wa]=On ptit djeu avou cwénze pîces +Comment[zh_CN]=有十五块的小游戏 +Comment[zh_TW]=十五片的小遊戲 +Icon=fifteenpieces +X-KDE-Library=fifteen_panelapplet +X-KDE-UniqueApplet=false diff --git a/fifteenapplet/qttableview.cpp b/fifteenapplet/qttableview.cpp new file mode 100644 index 0000000..7f044d2 --- /dev/null +++ b/fifteenapplet/qttableview.cpp @@ -0,0 +1,2274 @@ +/********************************************************************** +** $Id$ +** +** Implementation of QtTableView class +** +** Created : 941115 +** +** Copyright (C) 1992-2000 Trolltech AS. All rights reserved. +** +** This file contains a class moved out of the Qt GUI Toolkit API. It +** may be used, distributed and modified without limitation. +** +**********************************************************************/ + +#include "qttableview.h" +#include "qttableview.moc" +#ifndef QT_NO_QTTABLEVIEW +#include "qscrollbar.h" +#include "qpainter.h" +#include "qdrawutil.h" +#include + +enum ScrollBarDirtyFlags { + verGeometry = 0x01, + verSteps = 0x02, + verRange = 0x04, + verValue = 0x08, + horGeometry = 0x10, + horSteps = 0x20, + horRange = 0x40, + horValue = 0x80, + verMask = 0x0F, + horMask = 0xF0 +}; + + +#define HSBEXT horizontalScrollBar()->sizeHint().height() +#define VSBEXT verticalScrollBar()->sizeHint().width() + + +class QCornerSquare : public QWidget // internal class +{ +public: + QCornerSquare( QWidget *, const char* = 0 ); + void paintEvent( QPaintEvent * ); +}; + +QCornerSquare::QCornerSquare( QWidget *parent, const char *name ) + : QWidget( parent, name ) +{ +} + +void QCornerSquare::paintEvent( QPaintEvent * ) +{ +} + + +// NOT REVISED +/*! + \class QtTableView qttableview.h + \brief The QtTableView class provides an abstract base for tables. + + \obsolete + + A table view consists of a number of abstract cells organized in rows + and columns, and a visible part called a view. The cells are identified + with a row index and a column index. The top-left cell is in row 0, + column 0. + + The behavior of the widget can be finely tuned using + setTableFlags(); a typical subclass will consist of little more than a + call to setTableFlags(), some table content manipulation and an + implementation of paintCell(). Subclasses that need cells with + variable width or height must reimplement cellHeight() and/or + cellWidth(). Use updateTableSize() to tell QtTableView when the + width or height has changed. + + When you read this documentation, it is important to understand the + distinctions among the four pixel coordinate systems involved. + + \list 1 + \i The \e cell coordinates. (0,0) is the top-left corner of a cell. + Cell coordinates are used by functions such as paintCell(). + + \i The \e table coordinates. (0,0) is the top-left corner of the cell at + row 0 and column 0. These coordinates are absolute; that is, they are + independent of what part of the table is visible at the moment. They are + used by functions such as setXOffset() or maxYOffset(). + + \i The \e widget coordinates. (0,0) is the top-left corner of the widget, + \e including the frame. They are used by functions such as repaint(). + + \i The \e view coordinates. (0,0) is the top-left corner of the view, \e + excluding the frame. This is the least-used coordinate system; it is used by + functions such as viewWidth(). \endlist + + It is rather unfortunate that we have to use four different + coordinate systems, but there was no alternative to provide a flexible and + powerful base class. + + Note: The row,column indices are always given in that order, + i.e., first the vertical (row), then the horizontal (column). This is + the opposite order of all pixel operations, which take first the + horizontal (x) and then the vertical (y). + + + + \warning the functions setNumRows(), setNumCols(), setCellHeight(), + setCellWidth(), setTableFlags() and clearTableFlags() may cause + virtual functions such as cellWidth() and cellHeight() to be called, + even if autoUpdate() is FALSE. This may cause errors if relevant + state variables are not initialized. + + \warning Experience has shown that use of this widget tends to cause + more bugs than expected and our analysis indicates that the widget's + very flexibility is the problem. If QScrollView or QListBox can + easily be made to do the job you need, we recommend subclassing + those widgets rather than QtTableView. In addition, QScrollView makes + it easy to have child widgets inside tables, which QtTableView + doesn't support at all. + + \sa QScrollView + \link guibooks.html#fowler GUI Design Handbook: Table\endlink +*/ + + +/*! + Constructs a table view. The \a parent, \a name and \f arguments + are passed to the QFrame constructor. + + The \link setTableFlags() table flags\endlink are all cleared (set to 0). + Set \c Tbl_autoVScrollBar or \c Tbl_autoHScrollBar to get automatic scroll + bars and \c Tbl_clipCellPainting to get safe clipping. + + The \link setCellHeight() cell height\endlink and \link setCellWidth() + cell width\endlink are set to 0. + + Frame line shapes (QFrame::HLink and QFrame::VLine) are disallowed; + see QFrame::setFrameStyle(). + + Note that the \a f argument is \e not \link setTableFlags() table + flags \endlink but rather \link QWidget::QWidget() widget + flags. \endlink + +*/ + +QtTableView::QtTableView( QWidget *parent, const char *name, WFlags f ) + : QFrame( parent, name, f ) +{ + nRows = nCols = 0; // zero rows/cols + xCellOffs = yCellOffs = 0; // zero offset + xCellDelta = yCellDelta = 0; // zero cell offset + xOffs = yOffs = 0; // zero total pixel offset + cellH = cellW = 0; // user defined cell size + tFlags = 0; + vScrollBar = hScrollBar = 0; // no scroll bars + cornerSquare = 0; + sbDirty = 0; + eraseInPaint = FALSE; + verSliding = FALSE; + verSnappingOff = FALSE; + horSliding = FALSE; + horSnappingOff = FALSE; + coveringCornerSquare = FALSE; + inSbUpdate = FALSE; +} + +/*! + Destroys the table view. +*/ + +QtTableView::~QtTableView() +{ + delete vScrollBar; + delete hScrollBar; + delete cornerSquare; +} + + +/*! + \internal + Reimplements QWidget::setBackgroundColor() for binary compatibility. + \sa setPalette() +*/ + +void QtTableView::setBackgroundColor( const QColor &c ) +{ + QWidget::setBackgroundColor( c ); +} + +/*!\reimp +*/ + +void QtTableView::setPalette( const QPalette &p ) +{ + QWidget::setPalette( p ); +} + +/*!\reimp +*/ + +void QtTableView::show() +{ + showOrHideScrollBars(); + QWidget::show(); +} + + +/*! + \overload void QtTableView::repaint( bool erase ) + Repaints the entire view. +*/ + +/*! + Repaints the table view directly by calling paintEvent() directly + unless updates are disabled. + + Erases the view area \a (x,y,w,h) if \a erase is TRUE. Parameters \a + (x,y) are in \e widget coordinates. + + If \a w is negative, it is replaced with width() - x. + If \a h is negative, it is replaced with height() - y. + + Doing a repaint() usually is faster than doing an update(), but + calling update() many times in a row will generate a single paint + event. + + At present, QtTableView is the only widget that reimplements \link + QWidget::repaint() repaint()\endlink. It does this because by + clearing and then repainting one cell at at time, it can make the + screen flicker less than it would otherwise. */ + +void QtTableView::repaint( int x, int y, int w, int h, bool erase ) +{ + if ( !isVisible() || testWState(WState_BlockUpdates) ) + return; + if ( w < 0 ) + w = width() - x; + if ( h < 0 ) + h = height() - y; + QRect r( x, y, w, h ); + if ( r.isEmpty() ) + return; // nothing to do + QPaintEvent e( r ); + if ( erase && backgroundMode() != NoBackground ) + eraseInPaint = TRUE; // erase when painting + paintEvent( &e ); + eraseInPaint = FALSE; +} + +/*! + \overload void QtTableView::repaint( const QRect &r, bool erase ) + Replaints rectangle \a r. If \a erase is TRUE draws the background + using the palette's background. +*/ + + +/*! + \fn int QtTableView::numRows() const + Returns the number of rows in the table. + \sa numCols(), setNumRows() +*/ + +/*! + Sets the number of rows of the table to \a rows (must be non-negative). + Does not change topCell(). + + The table repaints itself automatically if autoUpdate() is set. + + \sa numCols(), setNumCols(), numRows() +*/ + +void QtTableView::setNumRows( int rows ) +{ + if ( rows < 0 ) { +#if defined(QT_CHECK_RANGE) + qWarning( "QtTableView::setNumRows: (%s) Negative argument %d.", + name( "unnamed" ), rows ); +#endif + return; + } + if ( nRows == rows ) + return; + + if ( autoUpdate() && isVisible() ) { + int oldLastVisible = lastRowVisible(); + int oldTopCell = topCell(); + nRows = rows; + if ( autoUpdate() && isVisible() && + ( oldLastVisible != lastRowVisible() || oldTopCell != topCell() ) ) + repaint( oldTopCell != topCell() ); + } else { + // Be more careful - if destructing, bad things might happen. + nRows = rows; + } + updateScrollBars( verRange ); + updateFrameSize(); +} + +/*! + \fn int QtTableView::numCols() const + Returns the number of columns in the table. + \sa numRows(), setNumCols() +*/ + +/*! + Sets the number of columns of the table to \a cols (must be non-negative). + Does not change leftCell(). + + The table repaints itself automatically if autoUpdate() is set. + + \sa numCols(), numRows(), setNumRows() +*/ + +void QtTableView::setNumCols( int cols ) +{ + if ( cols < 0 ) { +#if defined(QT_CHECK_RANGE) + qWarning( "QtTableView::setNumCols: (%s) Negative argument %d.", + name( "unnamed" ), cols ); +#endif + return; + } + if ( nCols == cols ) + return; + int oldCols = nCols; + nCols = cols; + if ( autoUpdate() && isVisible() ) { + int maxCol = lastColVisible(); + if ( maxCol >= oldCols || maxCol >= nCols ) + repaint(); + } + updateScrollBars( horRange ); + updateFrameSize(); +} + + +/*! + \fn int QtTableView::topCell() const + Returns the index of the first row in the table that is visible in + the view. The index of the first row is 0. + \sa leftCell(), setTopCell() +*/ + +/*! + Scrolls the table so that \a row becomes the top row. + The index of the very first row is 0. + \sa setYOffset(), setTopLeftCell(), setLeftCell() +*/ + +void QtTableView::setTopCell( int row ) +{ + setTopLeftCell( row, -1 ); + return; +} + +/*! + \fn int QtTableView::leftCell() const + Returns the index of the first column in the table that is visible in + the view. The index of the very leftmost column is 0. + \sa topCell(), setLeftCell() +*/ + +/*! + Scrolls the table so that \a col becomes the leftmost + column. The index of the leftmost column is 0. + \sa setXOffset(), setTopLeftCell(), setTopCell() +*/ + +void QtTableView::setLeftCell( int col ) +{ + setTopLeftCell( -1, col ); + return; +} + +/*! + Scrolls the table so that the cell at row \a row and colum \a + col becomes the top-left cell in the view. The cell at the extreme + top left of the table is at position (0,0). + \sa setLeftCell(), setTopCell(), setOffset() +*/ + +void QtTableView::setTopLeftCell( int row, int col ) +{ + int newX = xOffs; + int newY = yOffs; + + if ( col >= 0 ) { + if ( cellW ) { + newX = col*cellW; + if ( newX > maxXOffset() ) + newX = maxXOffset(); + } else { + newX = 0; + while ( col ) + newX += cellWidth( --col ); // optimize using current! ### + } + } + if ( row >= 0 ) { + if ( cellH ) { + newY = row*cellH; + if ( newY > maxYOffset() ) + newY = maxYOffset(); + } else { + newY = 0; + while ( row ) + newY += cellHeight( --row ); // optimize using current! ### + } + } + setOffset( newX, newY ); +} + + +/*! + \fn int QtTableView::xOffset() const + + Returns the x coordinate in \e table coordinates of the pixel that is + currently on the left edge of the view. + + \sa setXOffset(), yOffset(), leftCell() */ + +/*! + Scrolls the table so that \a x becomes the leftmost pixel in the view. + The \a x parameter is in \e table coordinates. + + The interaction with \link setTableFlags() Tbl_snapToHGrid + \endlink is tricky. + + \sa xOffset(), setYOffset(), setOffset(), setLeftCell() +*/ + +void QtTableView::setXOffset( int x ) +{ + setOffset( x, yOffset() ); +} + +/*! + \fn int QtTableView::yOffset() const + + Returns the y coordinate in \e table coordinates of the pixel that is + currently on the top edge of the view. + + \sa setYOffset(), xOffset(), topCell() +*/ + + +/*! + Scrolls the table so that \a y becomes the top pixel in the view. + The \a y parameter is in \e table coordinates. + + The interaction with \link setTableFlags() Tbl_snapToVGrid + \endlink is tricky. + + \sa yOffset(), setXOffset(), setOffset(), setTopCell() +*/ + +void QtTableView::setYOffset( int y ) +{ + setOffset( xOffset(), y ); +} + +/*! + Scrolls the table so that \a (x,y) becomes the top-left pixel + in the view. Parameters \a (x,y) are in \e table coordinates. + + The interaction with \link setTableFlags() Tbl_snapTo*Grid \endlink + is tricky. If \a updateScrBars is TRUE, the scroll bars are + updated. + + \sa xOffset(), yOffset(), setXOffset(), setYOffset(), setTopLeftCell() +*/ + +void QtTableView::setOffset( int x, int y, bool updateScrBars ) +{ + if ( (!testTableFlags(Tbl_snapToHGrid) || xCellDelta == 0) && + (!testTableFlags(Tbl_snapToVGrid) || yCellDelta == 0) && + (x == xOffs && y == yOffs) ) + return; + + if ( x < 0 ) + x = 0; + if ( y < 0 ) + y = 0; + + if ( cellW ) { + if ( x > maxXOffset() ) + x = maxXOffset(); + xCellOffs = x / cellW; + if ( !testTableFlags(Tbl_snapToHGrid) ) { + xCellDelta = (short)(x % cellW); + } else { + x = xCellOffs*cellW; + xCellDelta = 0; + } + } else { + int xn=0, xcd=0, col = 0; + while ( col < nCols-1 && x >= xn+(xcd=cellWidth(col)) ) { + xn += xcd; + col++; + } + xCellOffs = col; + if ( testTableFlags(Tbl_snapToHGrid) ) { + xCellDelta = 0; + x = xn; + } else { + xCellDelta = (short)(x-xn); + } + } + if ( cellH ) { + if ( y > maxYOffset() ) + y = maxYOffset(); + yCellOffs = y / cellH; + if ( !testTableFlags(Tbl_snapToVGrid) ) { + yCellDelta = (short)(y % cellH); + } else { + y = yCellOffs*cellH; + yCellDelta = 0; + } + } else { + int yn=0, yrd=0, row=0; + while ( row < nRows-1 && y >= yn+(yrd=cellHeight(row)) ) { + yn += yrd; + row++; + } + yCellOffs = row; + if ( testTableFlags(Tbl_snapToVGrid) ) { + yCellDelta = 0; + y = yn; + } else { + yCellDelta = (short)(y-yn); + } + } + int dx = (x - xOffs); + int dy = (y - yOffs); + xOffs = x; + yOffs = y; + if ( autoUpdate() && isVisible() ) + scroll( dx, dy ); + if ( updateScrBars ) + updateScrollBars( verValue | horValue ); +} + + +/*! + \overload int QtTableView::cellWidth() const + + Returns the column width in pixels. Returns 0 if the columns have + variable widths. + + \sa setCellWidth(), cellHeight() +*/ + +/*! + Returns the width of column \a col in pixels. + + This function is virtual and must be reimplemented by subclasses that + have variable cell widths. Note that if the total table width + changes, updateTableSize() must be called. + + \sa setCellWidth(), cellHeight(), totalWidth(), updateTableSize() +*/ + +int QtTableView::cellWidth( int ) +{ + return cellW; +} + + +/*! + Sets the width in pixels of the table cells to \a cellWidth. + + Setting it to 0 means that the column width is variable. When + set to 0 (this is the default) QtTableView calls the virtual function + cellWidth() to get the width. + + \sa cellWidth(), setCellHeight(), totalWidth(), numCols() +*/ + +void QtTableView::setCellWidth( int cellWidth ) +{ + if ( cellW == cellWidth ) + return; +#if defined(QT_CHECK_RANGE) + if ( cellWidth < 0 || cellWidth > SHRT_MAX ) { + qWarning( "QtTableView::setCellWidth: (%s) Argument out of range (%d)", + name( "unnamed" ), cellWidth ); + return; + } +#endif + cellW = (short)cellWidth; + + updateScrollBars( horSteps | horRange ); + if ( autoUpdate() && isVisible() ) + repaint(); + +} + +/*! + \overload int QtTableView::cellHeight() const + + Returns the row height, in pixels. Returns 0 if the rows have + variable heights. + + \sa setCellHeight(), cellWidth() +*/ + + +/*! + Returns the height of row \a row in pixels. + + This function is virtual and must be reimplemented by subclasses that + have variable cell heights. Note that if the total table height + changes, updateTableSize() must be called. + + \sa setCellHeight(), cellWidth(), totalHeight() +*/ + +int QtTableView::cellHeight( int ) +{ + return cellH; +} + +/*! + Sets the height in pixels of the table cells to \a cellHeight. + + Setting it to 0 means that the row height is variable. When set + to 0 (this is the default), QtTableView calls the virtual function + cellHeight() to get the height. + + \sa cellHeight(), setCellWidth(), totalHeight(), numRows() +*/ + +void QtTableView::setCellHeight( int cellHeight ) +{ + if ( cellH == cellHeight ) + return; +#if defined(QT_CHECK_RANGE) + if ( cellHeight < 0 || cellHeight > SHRT_MAX ) { + qWarning( "QtTableView::setCellHeight: (%s) Argument out of range (%d)", + name( "unnamed" ), cellHeight ); + return; + } +#endif + cellH = (short)cellHeight; + if ( autoUpdate() && isVisible() ) + repaint(); + updateScrollBars( verSteps | verRange ); +} + + +/*! + Returns the total width of the table in pixels. + + This function is virtual and should be reimplemented by subclasses that + have variable cell widths and a non-trivial cellWidth() function, or a + large number of columns in the table. + + The default implementation may be slow for very wide tables. + + \sa cellWidth(), totalHeight() */ + +int QtTableView::totalWidth() +{ + if ( cellW ) { + return cellW*nCols; + } else { + int tw = 0; + for( int i = 0 ; i < nCols ; i++ ) + tw += cellWidth( i ); + return tw; + } +} + +/*! + Returns the total height of the table in pixels. + + This function is virtual and should be reimplemented by subclasses that + have variable cell heights and a non-trivial cellHeight() function, or a + large number of rows in the table. + + The default implementation may be slow for very tall tables. + + \sa cellHeight(), totalWidth() +*/ + +int QtTableView::totalHeight() +{ + if ( cellH ) { + return cellH*nRows; + } else { + int th = 0; + for( int i = 0 ; i < nRows ; i++ ) + th += cellHeight( i ); + return th; + } +} + + +/*! + \fn uint QtTableView::tableFlags() const + + Returns the union of the table flags that are currently set. + + \sa setTableFlags(), clearTableFlags(), testTableFlags() +*/ + +/*! + \fn bool QtTableView::testTableFlags( uint f ) const + + Returns TRUE if any of the table flags in \a f are currently set, + otherwise FALSE. + + \sa setTableFlags(), clearTableFlags(), tableFlags() +*/ + +/*! + Sets the table flags to \a f. + + If a flag setting changes the appearance of the table, the table is + repainted if - and only if - autoUpdate() is TRUE. + + The table flags are mostly single bits, though there are some multibit + flags for convenience. Here is a complete list: + +