· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/Ups-KLDP

UPS mini HOWTO

UPS mini HOWTO

±è±Ô¶û, krkim@epilab.snu.ac.kr

v1.0, 18 June 1998
ÄÄÇ»ÅÍ¿Í ¿¬°áÇϱâ À§ÇÑ ¸±·¹ÀÌ ½ÅÈ£ Ãâ·ÂÀÌ ¾ø´Â UPS¸¦ À§ÇÑ Àü¿øÀÌ»ó ¼¾¼­¸¸µé±â¿Í ÀÌ ¼¾¼­ ½ÅÈ£¸¦ ÀÌ¿ëÇÑ ¸®´ª½º ¼­¹öÀÇ ¼Ë´Ù¿î ÀÚµ¿ Á¦¾î

1. ¼Ò°³

UPS¸¦ ÄÄÇ»ÅÍ Àü¿ø¶óÀο¡ ¼³Ä¡ÇÏ´Â ÀÏÀº ±×·¸°Ô ¾î·Á¿î ÀÏÀº ¾Æ´ÏÁö¸¸, Àü¿øÀÌ ³ª°¬À» °æ¿ì À̸¦ °¨ÁöÇÏ°í ÀûÀýÈ÷ ó¸®(¹èÅ͸®°¡ ¿ÏÀüÈ÷ ¹æÀüµÇ±â Àü¿¡ ¼Ë´Ù¿î) ÇÏ´Â ÀÏÀº UPS¿¡ ÀûÀýÇÑ Ãâ·Â Æ÷Æ®°¡ ÀÖ°í À̸¦ Á¦´ë·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÏ´Ù. º» ¹®¼­¿¡¼­´Â UPS°¡ ¾î¶°ÇÑ Àü¿øÀÌ»ó ½ÅÈ£µµ Ãâ·ÂÇÏÁö ¾ÊÀ» °æ¿ì¿¡µµ ÃÖ¼ÒÇÑÀÇ ºñ¿ë°ú ³ë·ÂÀ¸·Î ¾ÈÀüÇÏ°Ô ¸®´ª½º ¼­¹ö¸¦ ¼Ë´Ù¿î ½Ãų ¼ö ÀÖ´Â ¹æ¹ýÀ» ±â¼úÇÏ°íÀÚ ÇÑ´Ù.

2. ÀÛ¾÷ÀÇ °³¿ä

  1. UPS¿¡ ÀÇÇØ ÄÄÇ»Å͵é(1´ë ¶Ç´Â ±× ÀÌ»ó)Àº Á¤Àü½Ã¿¡µµ °è¼Ó ÄÑÁ® ÀÖÀ½(ÃÖ¼Ò 2ºÐ ÀÌ»ó)
  2. UPS·Î ÀԷµǴ Àü¿ø¿¡ ÀÏ¹Ý DC¾î´ðÅ͸¦ ¿¬°áÇÏ°í ÀÌ ¾î´ðÅÍ¿¡¼­ ³ª¿À´Â Àü±â¸¦ ÀÌ¿ëÇÏ¿© Æò¼Ò¿¡´Â ¸±·¹ÀÌ°¡ ¶³¾îÁ® ÀÖ°í Á¤Àü½Ã¿¡´Â ºÙ´Â ȸ·Î¸¦ ¸¸µë
  3. À§ÀÇ È¸·Î¸¦ ÄÄÇ»ÅÍ Á÷·ÄÆ÷Æ®·Î °¨ÁöÇÒ ¼ö ÀÖµµ·Ï Á÷·ÄÆ÷Æ®¿¡ ¸î°³ÀÇ ÀúÇ×°ú À§ ½ÅÈ£¼±À» ¿¬°áÇÔ
  4. ½ÅÈ£¸¦ ÄÄÇ»ÅÍ OS¿¡¼­ °¨½ÃÇÏ°í Á¤Àü½Ã¸¦ ´ëºñÇÔ

3. ÇÊ¿ä ¹°Ç°

¸±·¹ÀÌ

5V ¿ëÀ̳ª 12V ¿ëÀÌ ±¸Çϱ⠽±´Ù. ¾î¶² ¸ð¾çÀ̰ųª »ó°ü ¾ø°í Àü±â°¡ µé¾î¿Ã ¶§´Â ¿­·ÁÀÖ´Ù°¡ Àü±â°¡ ³ª°¡¸é ´ÝÈ÷´Â ȸ·Î¸¸ ÀÖÀ¸¸é µÈ´Ù. ÇÊÀÚ´Â ¸ø¾²°ÔµÈ ¿ÜÀåÇü ¸ðµ©¿¡¼­ ¾ïÁö·Î ¶â¾î³»¾ú´Ù. º¸Åë ¿ÜÀåÇü ¸ðµ©¿¡´Â 5V¿ë ¸±·¹ÀÌ°¡ 2°³¾¿ ´Þ·ÁÀÖ´Ù.

DC¾î´ðÅÍ

À§ÀÇ ¸±·¹ÀÌÀÇ ±¸µ¿¿ëÀ¸·Î ¾µ¼ö ÀÖ´Â Àü¾ÐÀÌ Ãâ·ÂµÇ¾î¾ß ÇÑ´Ù.

10K 0hmÂ¥¸® ÀúÇ×

»ö±ò·Î ¸»ÇÏÀÚ¸é °¥,Èæ,µî,(±Ý) ÀÌ´Ù. ¸±·¹À̸¦ »ç¿ëÇÏ·Á°í ¿ÜÀåÇü ¸ðµ©À» ¹Ú»ì ³»¾ú´Ù¸é °°Àº ±âÆÇ¿¡¼­ ¿©·¯°³ ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.

½Ã¸®¾ó Æ÷Æ® Àè

¿ÜÀåÇü ¸ðµ©À» ¹Ú»ì ³»¾ú´Ù¸é ÀÌ°Í ¿ª½Ã Çϳª ÀÖÀ» °ÍÀÌ´Ù.

Àü¼±

¾ãÀº °ÍÀ¸·Î ¾à°£ (ÇÑ 20cm) ½Ã¸®¾ó Æ÷Æ®¸¦ ¹Ú»ì ³½ ÈÄ ±× ¾È¿¡ µé¾îÀÖ´Â Àü¼±À» »ç¿ëÇÏ¸é µÉ °ÍÀÌ´Ù.

±âŸ

¶«³³, ³³¶«ÀεÎ, ´ÏÆÛ, Àý¿¬Å×ÀÌÇÁ(±î¸¸Å×ÀÌÇÁ), ¸ÖƼÅ×½ºÅÍ µî

ÇÁ·Î±×·¥

Alessandro RubiniÀÇ powerd 2.0À» ÀÌ¿ëÇÏ¿´´Ù. sunsiteµî¿¡¼­ ½±°Ô ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù.

4. Çϵå¿þ¾î ¸¸µé±â

  1. ¸±·¹ÀÌÀÇ ¿·¸éÀ̳ª À­¸éÀ» ÀÚ¼¼È÷ º¸¸é ÄÚÀÏ ¸ð¾çÀÇ ±×¸²ÀÌ ¿¬°áµÇ¾î ÀÖ´Â ÇÉ µÎ°³°¡ ÀÖÀ» °ÍÀÌ´Ù. ÀÌ µÎ ÇÉ¿¡ ¾î´ðÅÍÀÇ µÎ ¼±À» ³³¶«ÇÑ´Ù. +, -¸¦ ½Å°æ ¾µ ÇÊ¿ä´Â ¾ø´Ù.
  2. ½Ã¸®¾ó Æ÷Æ® ÀèÀ» ¿ÏÀüÈ÷ ºÐÇØÇؼ­ ³³¶«À» ÇÒ ¼ö ÀÖ´Â ¸éÀÌ ¹ÛÀ¸·Î ³ª¿Àµµ·Ï ²¨³» ³õÀº ÈÄ DTR°ú DSRÀ» Àü¼±À» »ç¿ëÇؼ­ ¿¬°áÇÏ°í DTR°ú DCD¸¦ 10K OhmÂ¥¸® ÀúÇ×À¸·Î ¿¬°áÇÑ´Ù. ½Ã¸®¾ó Æ÷Æ®ÀÇ ÇÉ ¹øÈ£´Â ´ÙÀ½ ¼½¼ÇÀ» Âü°íÇÑ´Ù.
  3. ¸±·¹ÀÌ¿¡¼­ Á¤ÀüÀÏ °æ¿ì¿¡¸¸ ¿¬°áµÇ´Â ÇÉÀÌ ¾î´À °ÍÀÎÁö¸¦ È®ÀÎÇÑ´Ù. ¸ÖƼÅ×½ºÅÍÀÇ ÀúÇ×°ª È®ÀÎ ±â´É°ú ¾î´ðÅÍ¿¡ ½ÇÁ¦·Î Àü±â¸¦ °ø±Þ ÇÔÀ¸·Î½á ½±°Ô ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
  4. 3¹øÀÇ µÎ ÇÉÀ» Çϳª´Â DCD¿¡ ´Ù¸¥ Çϳª´Â GND¿¡ ¿¬°áÇÑ´Ù.
  5. ¸¶Áö¸·À¸·Î ÁöÀúºÐÇÑ °ÍµéÀÌ º¸ÀÌÁö ¾Êµµ·Ï Àý¿¬Å×ÀÌÇÁ·Î Àß °¨¾ÆÁØ´Ù.

5. ½Ã¸®¾ó Æ÷Æ®ÀÇ ÇÉ ¹øÈ£

¿ì¸®°¡ Ç¥ÁØÀ¸·Î ½Ã¸®¾ó Æ÷Æ®´Â µÎ°¡Áö Á¾·ù°¡ Àִµ¥ 9pin°ú 25pinÀÌ ±×°ÍÀÌ´Ù. º» ¹®¼­¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â ÇÉÀÇ À̸§°ú ¹øÈ£´Â ´ÙÀ½°ú °°´Ù. ÇÉÀÇ ¹øÈ£´Â ½Ã¸®¾ó Æ÷Æ® Àè¿¡ ±ú¾Ë¸¸ÇÑ ±ÛÂ¥·Î ¾º¿© ÀÖ´Ù. ÀÚ¼¼È÷ »ìÆ캸±â ¹Ù¶õ´Ù.

           9      25(pin)
DTR    4      20
DSR    6      6
DCD    1      8
GND    5      7

´Ù¸¥ ÇɵéÀÇ ¹øÈ£±îÁö ¾Ë°í ½ÍÀ¸½Ã´Ù¸é UPS HOWTO¸¦ ã¾Æº¸±â ¹Ù¶õ´Ù.

6. ÇÁ·Î±×·¥ ¼³Á¤

  • powerd 2.0À» ÇÑ µð·ºÅ丮¿¡ Ç®¾î³õÀº ´ÙÀ½ ÄÄÆÄÀÏÇÏ°í /sbin/¿¡ powerd ½ÇÇàÆÄÀÏÀ» º¹»çÇØ ³õ´Â´Ù.
  • /etc/powerd.conf¸¦ Àû´çÈ÷ ¼öÁ¤ÇÑ´Ù. ÇÊÀÚ´Â ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÏ¿´´Ù. (2¹ø° ½Ã¸®¾ó Æ÷Æ®¿¡ ¿¬°á)
    serialline         /dev/cua1
    monitor            DCD
    failwhen           low
    asserthigh       DTR
    
    Áï, ÇÁ·Î±×·¥ÀÌ ½ÃÀ۵Ǹé DTR¿¡ Àü¾ÐÀÌ µé¾î°¡°í 10K OhmÂ¥¸® ÀúÇ×À¸·Î ¿¬°áµÇ¾îÀÖ´Â DCDµµ ¿ª½Ã Àü¾ÐÀÌ Àΰ¡(high)µÈ´Ù. Á¤ÀüÀÌ µÇ¸é DCD¿Í GND°¡ ¸±·¹ÀÌ¿¡ ÀÇÇؼ­ ´ÝÈ÷°Ô µÇ´Âµ¥ ÀÌ¿¡µû¶ó DCD´Â Àü¾ÐÀÌ 0V°¡ µÇ°í ½ÅÈ£´Â low°¡ µÇ¸ç À̸¦ powerd¿¡¼­ °¨ÁöÇÏ´Â °ÍÀÌ´Ù.
  • ½Ãµ¿ÆÄÀÏ ¼öÁ¤ - /etc/rc.d/rc.localÆÄÀÏ(¾Æ´Ï¸é µ¿µîÇÑ ¿ªÇÒÀ» ÇÏ´Â ´Ù¸¥ ÆÄÀÏ)¿¡ ´ÙÀ½ ¶óÀÎÀ» Ãß°¡ÇÑ´Ù.
       if [ -f /sbin/powerd ]; then
           echo "Running powerd"
           /sbin/powerd &
       fi
    
  • /etc/inittab¼öÁ¤ - ÇÊÀÚ´Â ´ÙÀ½°ú °°Àº ¶óÀÎÀ» »ðÀÔÇÏ¿´´Ù.
       pf::powerfail:/sbin/shutdown -f -h +300 "Power Failure; System Shutting Down"
       pr::powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
    
    ù¹ø° ¶óÀÎÀº Á¤ÀüÀÌ µÇ¾úÀ» °æ¿ì ¸ðµç»ç¶÷µé¿¡°Ô À̸¦ ¾Ë¸®°í 300ºÐ(5½Ã°£) ÈÄ¿¡ ¼Ë´Ù¿îÀ» Çϵµ·Ï ÇÏ´Â ¶óÀÎÀÌ°í ´ÙÀ½ ¶óÀÎÀº Àü¿øÀÌ º¹±¸µÇ¾úÀ» ¶§ ¼Ë´Ù¿îÀ» Ãë¼ÒÇÏ´Â ¶óÀÎÀÌ´Ù. Á¤ÀüÈÄ ¸îºÐ ÈÄ¿¡ ¼Ë´Ù¿îÀ» ½ÃÄÑ¾ß ÇÏ´ÂÁö´Â ´ÙÀ½ ¼½¼Ç¿¡¼­ ¼³¸íÇÑ´Ù. inittabÀ» ¼öÁ¤ÇÏ¿´À» °æ¿ì ±× »çÇ×ÀÌ ¹Ý¿µµÇµµ·Ï ÇÏ·Á¸é ÀçºÎÆÃÀ» ÇÏ´øÁö ¾Æ´Ï¸é ·çÆ® ÇÁ·ÒÇÁÆ®¿¡¼­ "telinit Q"¶ó°í ÀÔ·ÂÇÏ¸é µÈ´Ù.
  • ½ÃÇè°¡µ¿

    ·çÆ® ±ÇÇÑÀ¸·Î "telinit Q"¸¦ ÀÔ·ÂÇÏ°í powerd¸¦ ½ÇÇàÇÑ´Ù. ±×·± ´ÙÀ½ ¾î´ðÅ͸¦ »©¼­ 10ÃÊ ¸¦ ±â´Ù¸®¸é ¼Ë´Ù¿îÀÌ 300ºÐ ÈÄ¿¡ ½ÃÀÛµÉ °ÍÀ̶ó°í ³ª¿Ã °ÍÀÌ´Ù. ÀÌ »óÅ¿¡¼­ ¾î´ðÅ͸¦ ´Ù½Ã ¿¬°áÇÑ ´ÙÀ½ 10ÃÊ°£ ±â´Ù¸®¸é ¼Ë´Ù¿îÀÌ Ãë¼ÒµÇ¾ú´Ù´Â ¸Þ½ÃÁö°¡ ³ª¿Â´Ù. ÀÌ·Î½á ¸ðµç °ÅÀÇ ¸ðµç ÀÛ¾÷ÀÌ ³¡³­ ¼ÀÀÌ´Ù.

  • ¼Ë´Ù¿î Ãë¼Ò°¡ ¾È µÉ °æ¿ì

    Ȥ½Ã ÇÊÀÚ°¡ »ç¿ëÇÏ¿´´ø powerd 2.0°ú °°Àº ¹öÀüÀÇ ÇÁ·Î±×·¥À» »ç¿ëÇÑ °æ¿ì¿¡ ÇÁ·Î±×·¥ÀÇ ¹ö±×¿¡ ÀÇÇØ ¼Ë´Ù¿î Ãë¼Ò°¡ ¾È µÉ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì ħÂøÇÏ°Ô "shutdown -c"¸í·ÉÀ¸·Î ¼Ë´Ù¿îÀ» Ãë¼ÒÇÑ ´ÙÀ½ powerd.c¸¦ ¼öÁ¤ÇÑ´Ù. ÇÊÀÚ°¡ ¼öÁ¤ÇÑ °÷Àº ´ÙÀ½°ú °°Àºµ¥(diff °á°ú) Àüü ¼Ò½ºÄڵ带 ´Ù ¶â¾îº» ÈÄ ÇÑ °ÍÀÌ ¾Æ´Ï¹Ç·Î À߸ø ÇÏ¿´À» Áöµµ ¸ð¸¥´Ù. ¾Æ¹¸µç ÇÊÀÚ´Â ¿øÇÏ´Â °á°ú¸¦ ¾òÀ» ¼ö ÀÖ¾úÀ¸¹Ç·Î ÀÌ·¸°Ô °íÃļ­ »ç¿ëÁßÀÌ´Ù.

    ÀÏ´Ü ´ÙÀ½À» powerd.patch·Î ÀúÀåÀ» ÇÑ´Ù.

    --------------- powerd.patch start! ----------------
    1127,1145d
    1098a
      /* Create an info file for init. */
      unlink(PWRSTAT);
      fd = open(PWRSTAT, O_CREAT|O_WRONLY, 0644);
      
      if (fd<0)
        {
        PERROR(PWRSTAT);
        return 1; /* maybe next time... */
        }
    
      if (action==ACT_OK)
        write(fd, "OK\n", 3);
      else
        write(fd, "FAIL\n", 5);
      close(fd);
    
      MESSAGE("Telling init about...");
      kill(1, SIGPWR);
    .
    1,$wq
    --------------- powerd.patch end! ----------------
    

    ±×·± ´ÙÀ½ "ed powerd.c < powerd.patch"¶ó°í ÇÁ·ÒÇÁÆ®¿¡¼­ ÀÔ·ÂÇϸé ÀÚµ¿À¸·Î ÇÁ·Î±×·¥ÀÌ ÆÐÄ¡µÉ °ÍÀÌ´Ù. ÀÌ·± ÈÄ ´Ù½Ã ÄÄÆÄÀÏÇÏ°í ½ÇÇàÇØ º¸±â ¹Ù¶õ´Ù.

7. ¹èÅ͸®ÀÇ ´É·Â ¾Ë¾Æ³»±â

¹èÅ͸®ÀÇ ¿ë·®Àº UPSÀÇ ¼º´É¿¡ ¾ÆÁÖ Å« ¿µÇâÀ» ³¢Ä£´Ù. ÇÊÀÚÀÇ UPS´Â ÅÂÀÏÀÚµ¿Á¦¾î½Ã½ºÅÛÀÇ UX210S·Î 1.1KW±ÞÀÌ´Ù. ³»ºÎ ¹èÅ͸® ¸¸À¸·Î ÃÖ´ë ¿ë·®À¸·Î »ç¿ëÇÒ °æ¿ì ¸Å´º¾ó »ó¿¡´Â 4ºÐ°£ »ç¿ëÇÒ ¼ö ÀÖ´Ù°í ¾º¿© ÀÖ´Ù. ÇöÀç ÄÄÇ»ÅÍ 4´ë¿Í ¸ð´ÏÅÍ 2´ë¸¦ UPS¿¡ ¿¬°áÇÏ¿© ¾à 450WÁ¤µµ¸¦ ¾²°í Àִµ¥ ÀÌ °æ¿ì ¹èÅ͸® ÀúÀü¾Ð °æ°í°¡ ³ª±â Àü ¾à 14ºÐ Á¤µµ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °æ°í ÈÄ¿¡ 2ºÐÀÌ¸é ¹èÅ͸® º¸È£¸¦ À§ÇØ UPS°¡ ¼Ë´Ù¿î µÈ´Ù. µû¶ó¼­ ÃÖ´ë »ç¿ëÇÒ ¼ö ÀÖ´Â ½Ã°£ À̳»¿¡ ½Ã½ºÅÛÀ» ¼Ë´Ù¿î ½ÃÄÑ¾ß ÇÑ´Ù. ½Ã½ºÅÛÀÇ ¼Ë´Ù¿î ½Ã°£Àº ¸®´ª½ºÀÇ °æ¿ì ÃÖ¼Ò 2ºÐ ÀÌ»óÀ̾î¾ß ¾ÈÀüÇÏ´Ù. ¿ÜºÎ ¹èÅ͸®¸¦ º´·Ä·Î ¿¬°áÇÏ¿´À» °æ¿ì¿¡µµ ¸¶Âù°¡Áö·Î ¿ë·® Å×½ºÆ®¸¦ ÇØ º¸¾Æ¾ß Çϴµ¥, ¹æ¹ýÀº ¹èÅ͸® ÀúÀü¾Ð °æ°í°¡ ³¯ ¶§±îÁöÀÇ ½Ã°£À» ±â·ÏÇØ ³õÀ¸¸é µÈ´Ù. À̶§ ÇÑ°¡Áö ÁÖÀÇÁ¡Àº óÀ½ ¹èÅ͸®¸¦ ±¸ÀÔÇÏ¿´À» °æ¿ì¿¡´Â ¹èÅ͸®°¡ ¿ÏÀüÈ÷ ÃæÀüµÇ¾îÀÖÁö ¾Ê±â ¶§¹®¿¡ 3ÀÏ ÀÌ»ó ÃæºÐÈ÷ ÃæÀüÀ» ÇÑ ´ÙÀ½ ½ÃÇèÀ» ÇØ º¸¾Æ¾ß ÇÑ´Ù´Â Á¡ÀÌ´Ù. ¹èÅ͸®°¡ ¿ÏÀüÈ÷ ¹æÀüµÈ ÈÄÀÇ ÃæÀü½Ã°£Àº ¼ö½Ã°£ - ¼öÀÏ·Î ÀÌ°Í ¿ª½Ã Å×½ºÆ® ÇØ º¸¾Æ¾ß ÇÑ´Ù. ÀϹÝÀûÀ¸·Î UPSÀÇ 12VÂ¥¸® ¹èÅ͸®ÀÇ Àü¾ÐÀº ¹«ºÎÇÏ ´ë±â »óÅ¿¡¼­ 13.75VÀÌ´Ù.

8. ±âŸ ´Ù¸¥ °¡´ÉÇÑ °Íµé

ÇÑ UPS¿¡ µÎ ´ë ÀÌ»óÀÇ ÄÄÇ»ÅÍ°¡ ¿¬°áµÇ¾úÀ» °æ¿ì¿¡µµ powerd¸¦ »ç¿ëÇϸé Àü¿øÀÇ ÀÌ»óÀ» °¨½ÃÇÏ´Â ¼­¹ö¿Í ³ª¸ÓÁö Ŭ¶óÀ̾ðÆ® ÄÄÇ»ÅÍ·Î Àü¿ø ÀÌ»óÀ» Áß¾Ó°ü¸®¸¦ ÇÒ ¼ö ÀÖ´Ù. powerdÀÇ readme¸¦ Àо±â ¹Ù¶õ´Ù. ÇÑÆí À©µµ ¿£Æ¼ÀÇ °æ¿ì¿¡µµ ¸®´ª½º¿Í ¸¶Âù°¡Áö·Î Àü¿ø °ü¸®¸¦ ÇÒ ¼öÀִµ¥, ÇÉÀÇ ¹è¿­ÀÌ Á¶±Ý ¹Ù²î¾î¾ß ÇÑ´Ù. ÀÌ ³»¿ëÀº UPS-Howto¿¡ Àß ³ª¿ÍÀÖ´Ù.

9. Âü°í¹®Çå

  • Rubin, A. 1995, powerd 2.0 README
  • Stein, H. J. 1997, UPS HOWTO v 2.02


ID
Password
Join
"Perl is executable line noise, Python is executable pseudo-code."


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2003-08-10 11:52:30
Processing time 0.0018 sec