home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.next.sysadmin
- Path: sparky!uunet!charon.amdahl.com!pacbell.com!decwrl!csus.edu!news
- From: eps@futon.SFSU.EDU (Eric P. Scott)
- Subject: Re: Empty recycler whenever user login/logout ....
- Message-ID: <1992Nov6.034314.12741@csus.edu>
- Sender: news@csus.edu
- Reply-To: eps@cs.sfsu.edu
- Organization: San Francisco State University
- References: <1992Nov3.170233.2839@umr.edu>
- Date: Fri, 6 Nov 1992 03:43:14 GMT
- Lines: 256
-
- In article <1992Nov3.170233.2839@umr.edu> jlu@cs.umr.edu
- ( Eric Jui-Lin Lu ) writes:
- >How shall I do to empty users' recycler whenever they logout/login?
- >Most of our users don't know (or forget) to empty their recyclers.
- >And it's untolerable in our env -- short of disk space.
-
- We had a similar problem--lots of recoverable disk space tied up
- in recyclers and uncompacted mailboxes. But we took a different
- approach: we opted to educate our users.
-
-
- Reminders don't hurt, so I wrote a LoginHook to display a Panel
- with a disk usage "meter" showing the same percentage _df_ would,
- and the actual amount free below that. [The information comes
- from a statfs() call.] Then a horizontal Box rule, and easy-to-
- follow instructions to encourage the desired behavior (see
- attached graphic).
-
- The Panel only appears if the /Users filesystem is at least 60%
- full, and goes away if the user clicks the Panel's close button,
- the "OK" button in the lower-right-hand corner, presses return
- (i.e. the keyEquivalent), or after 20 seconds.
-
- It worked--disk usage dropped dramatically within a few days.
-
-
- "For you comp.sys.next.programmer types"
-
- The application is totally straightforward, created in Interface
- Builder, and containing a very small amount of custom code.
-
- When operating as a LoginHook, I don't want it to display a main
- menu or an application tile. This is simple to accomplish, but
- UNDOCUMENTED. Here's the "secret" for 2.x; 3.0 is probably
- similar (don't look at me, I'm waiting for 3.1):
-
- Subclass Application, and override the internal _replyToLaunch
- method as follows:
-
- - _replyToLaunch
- {
- if (NXGetDefaultValue("ApplicationKit", "MachLaunch"))
- [super _replyToLaunch]; // ignore the warnings this generates
- else [self setMainMenu:nil];
- return self;
- }
-
- N.B. this still allows things to function normally when launched
- from the Workspace.
-
- You also need one additional line in an appDidInit: method:
-
- if (![NXApp mainMenu]) (void)[NXApp activateSelf:YES];
-
- That's all. [Usual caveats and disclaimers.]
-
- -=EPS=-
- ------- uudecode this article to extract illustration "howto.tiff"
- begin 644 howto.tiff
- M34T`*@``(9:2J@"_\O\`*J.J`+_S_P;]*JJJ@``J^*H!J"K[J@.H""@J]:H!
- MJ"K\JO\`]JH`"OJJ``KWJ@`*_:H`H/ZJ``K[J@"@`+[SJ@:I*JJJ@``*^*H!
- MJ"K[J@.@""@J^ZH`"OVJ`J"H*ORJ_P``*O>J``KZJ@`*]ZH!"H+^J@"@_JH'
- M"JJJJ"JJJHH`OO.J!JDJJJJ"J@+PJ@.@JJ@J^ZH`"OVJ`J"H*ORJ`@JH"O>J
- M``KZJ@`*]ZH!BH+^J@"@_JH'"JJJJ"JJJH``OO.J!JDJJJJ"JH+PJ@.@JJ@J
- M^ZH`"OVJ`J"H*ORJ`@JJ"O>J``KZJ@`*]ZH!BH+^J@"@_JH'"JJJJ"JJJH(`
- MOO.J#ZDJJJJ"JJ"@@H`*J`(*H`C^*$P*J`(*J@`(*"J`*J@"JJ``J`"JJ@`(
- M*`JH`JJJ"JH*H`JJ`"H*H*H`*@J@"J""JJ@""J`"JH`JJ`*@H"HH`"JJ@""J
- M`*H*H`J``J`*N@"^\ZI0J2JJJH*JH*""`@*@``J``"@H(`*@``JJH*@H*@`*
- MH`"JJ@J@`"JJH*@@`J``JJH*J`J``J@`"@J@J``*"H`"H(*JH``*@`"J``J@
- M`*"`"JJ"_ZK_``JH`"H*@`*H*H`"J@"^\ZHZJ2JJJH*JH*`J"H*@J@J"J"@H
- M"H*@J@JJH*@H*"J"@J"JJ@J@J"JJH*@*@H*H*JH``"H*H*@J"@J@J"K^"O^@
- M""JJH*@*@J"H*O^"_Z`)*@JJ@JJJ"H"@JOX*!:"H*@J@J@"^\ZH%J2JJJH*J
- M_Z#_JA("@JH*"J@H*"J"@JH*JJ"H*"@J_X+^JA`*@JH*JJ"H*H*"J"JJ``"J
- M"O^@_ZK_@@"@_ZK_"O^@_ZH4@JH*"J@H*H*"JJ"J"JJ"JJ@JH*"J_@H%H*@J
- M"J"J`+[\JOY5`5`"_:HTJ2JJJH*JH*"J@`*"J@H*J"@H*H*"J@JJH*@H*``"
- M@`*JJ@J"J@JJH*@J@H``*JH*J"H``*#_JO^"':"JJ@H``*"JJH*J"@JH*``"
- M@`*@J@JJ@JJH*J"@`/\*_P`$J"H``*D`OOVJ!J6___\%F"K^JBFI*JJJ@JJ@
- MH*H"@H*J"@JH*"@J@H*J"JJ@J"@H*JJH`*JJ"H*J"JJ@J"K_@OZJ!0JH*@JJ
- MH/^J_X(`H/^J_PH5JJ"JJH*J"@JH*"JJJ`"@J@JJ@JJH*O^@_ZK_"@6JJ"H*
- MJK\`OOVJ!IO___Q6:HK^JBFI*JJJ@JJ"H*H*@H*J"@JH*"@J@H*J"JJ@J"@H
- M*JJJH*JJ"H*J"JJ@J"K_@OZJ"@JJ"@JJH*JJHHJ@_ZK_"@JJH*JJ@JH*"J@H
- M*O^J_Z`&J@JJ@JJH*O^@_ZK_"@6JJ"H*JK\`OOVJ!F____%9JN+^JCVI*JJJ
- M@JH"H*H*@J"H"H*@*"@J@J"H"JJ@J"@H"H*"H*JJ"J"H*JJ@J"J"@*@JJ@JJ
- M"@*@J"H*H`JH*@H*`O^@_ZH&H*@*@J"H"O^"_Z`2J@JJ@JJJ"H"@*@H*`J"H
- M*@*@O`"^_:H&?___Q6:[LOZJ4*DJJJJ```J@J@("H``*@``H*"J"H``*JJ"H
- M*"H``H`"JJH"H``JJJ`H*H*@`"JJ"JH*@`"H``JH*J@`"@J``*"JJJ``"H``
- MJ@`"@`*@J@JJ@/^J_P`*J``*"H``J`J``*(`OOZJ`*G^_V;%FN[LJ1JJJ2JJ
- MJH``*J"J@(*H`@J@""@H*H*H`@JJH*@H*H`JH`JJJH*H`*JJJ"@J@J@"JJH*
- MJ@J@"JH`*J@JJ@`J"J`*H*JJJ`(*H`*J@"J@"J"J"JJ@JJJ`(*H`J@J@"JH*
- MH`J[`+[^J@"I_O\((FN[N)`:JJDJ]JH#"JJH*ORJ``KAJ@&H*MNJ`*X`OOZJ
- M`*?^_P@AKN[O#6JJJ2KXJ@2@J"J"H/VJ`J"H*N&J`:@JVZH`NP"^_JH$I___
- M_*C^NP2XJJJI*OBJ!*``*H``_:H"H``JX:H`@-FJ`+[^J@2?___\J/[N!.*J
- MJJDJ]ZH#`JJH"ORJ``+@J@"`V:H`OOZJ#)____*J.[N[EJJJJ2JCJ@"^_JH,
- M;___\JHN[N[*JJJI*J2J`*0`OOZJ#)+__\JJB[N[*JJJJ2JCJ@"^_JH,J2__
- MRJH.[NUJJJJI*J.J`+[]J@:2_RJ0N[NX_JH!J2K^J@&H*OFJ`*#VJ@*H*"K[
- MJ@`*^JH'@`JH*"JJJH+XJ@2"J@JH*OVJ``KTJ@"@]ZH`J`"^_:H0J2\J@```
- M`J4JJJDJJJJ@J"KYJ@"@]JH%J"@JJJJ"_JH`"ONJ"*@``*@H*JJJ@OBJ!(*J
- M"J@J_:H`"O2J`*#WJ@""`;ZJ_E4!6I#\J@E;*JJI*JJJH*@J[:H!J"K^J@""
- M_JH`"ONJ!*`JH"@J_JH`@OBJ!(*J"J@J_:H`"O2J`*CWJ@"@!KZJ;___QJC]
- MJ@JE[HJJJ2JJJJ"H*NVJ`:@J_JH`@OZJ``K[J@2@JJ@H*OZJ`(+XJ@2"J`*H
- M*OVJ``KTJ@"H]JH%OJJ"___R_*H26[N*JJDJJJH`""@*J`*H*"H*JOZ@%*@J
- M"@J"J@"JH`@H*@`H`"H`J@H*H/VJ*X"JJJ@H*H`*@J"JJH`*H*`JJJ"H`J"J
- M@`J@@@J"J`*@@"J@`JH`*J`*HJH`^:H`BC6^JJ@___6JJ_IJI:[NXJJI*JJJ
- MH*@@`J``J"`(`JJ@H(`@"@@"`*@`*H``*"@("H*H`"H*"J#]J@>"JJJH*"H`
- M`O^"_ZH@``*@@`JJH*BBH*H``J"""@J@`*``"H"`J``*@`*JJ``J^JH`BC&^
- MJJI___RJK^I:F[N[LJJI*JJJH*@*@H*H*`H"@JJ@H"@*"@*`H*"J"H*@*"@J
- M"H*@JOX*`*#]JA&"JJJH*"H*@H(*JJH*@J`J"JK]H!:J"H*@*@@J@J"@*@J"
- MH*@J"@J@JJ"H*OFJ,;ZJJ;___BJO^DJ>[N[HJJDJJJJ@J"J"@J@H*@J"JJ"@
- MJ"H*"H*@H*H*"J@H*J@*@J"J_PK_@OVJ$8*JJJ@H*"JJ@"JJJ"J@H*H*JOV@
- M%*@JH*"J`*J"JJ"J@JJ`H*JJ"J"JH/BJ`*`"OJJI_O\K6J[J2J>[N[BJJ2JJ
- MJJ"H*H*``"@J"H*JH*"H*@H*@J"@``H*J"@J``J"H`#_"O^"_:HD@JJJJ"@H
- M*JJ`"JJH*J"@J@JJJ""@@J@JH*"J`"J``J"J@J``H/^J_P`"JJ``^:H`J`*^
- MJJ;^_P3*JJE*IO[N%BJI*JJJH*@J@H*JJ"H*@JJ@H*@J"@J"_Z#_J@$*J/\H
- M_PH$@J"JJ@K_@OVJ(H"JJJ@H*"JJ@@JJJ"J@H*H*JJ@@H(*H*J"@J@@JJ`"@
- MJH*`_Z#_J@`*_JH!`"KYJ@*^JJ?^_P3BJJ4:J?Z[%BJI*JJJH*@J@H*JJ"H*
- M@JJ@H*@J"@J"_Z#_J@P*J"@H*@J"H*JJ"J**_:H"H*JH_B@:*JJ"@JJH*J"@
- MJ@JJJ"*H@J@JH*"J"@JJH*"J_X+_H/^J``K^J@&H*OFJ-;ZJI____/6E5"JI
- MKN[N*JDJJJJ@J"J"@*@H*@J"JJ"@J"H*"H*@H"H*@J`H*"H*@J`J"@J@"OVJ
- M+*`JH"@H*@J"@H"JJ@J"H*H*JJH"J`JJ"H*@J@H"@J"@*@J"H*@J"@*@JJ"H
- M*OFJ-KZJI___\0BI`:JJ>[N[*JDJJJJ@*"J"H``H*@J"JJ"@J"H*"H*@J``*
- M@``H*`@*@*@`"@JH*J#^JBNH``"H*"H``H*@JJH``J"J"JJJ"JH*J@`"H*H*
- M@H`"H``*@("H``J``*J@`/BJ-KZJIO__XJ"JJJ2J;N[N*JDJJJJH*"J"J`*H
- M*@J"JJ"@J"H*"H*@J@"JH`@H*@(*H*H`J@JH*J#]JBJ`"J@H*H`*@J`JJH`*
- MH*H*JJH*J@JJ@`J@J@J`H`J@@"J@(*H`*J`*JJ@"^*H%OJJI___*_JH'I*J;
- MN[BJJ2K>J@&H*MZJ`*#LJ@6^JJF__XK^J@>8JIKNZ*JI*MZJ`:@JWJH`H.RJ
- M!;ZJJG__*OZJ!YRJI[NBJJDJWJH`@-VJ`*#MJ@"_!;ZJJF_^*OZJ!VRJINT"
- MJJDJWJH`@-VJ`*#LJA"^JJJ?_``!5:I\!%5`2JJI*J.J$+ZJJIOX5FKLJ;__
- M_[I*JJDJHZH0OJJJI_%9J[BI___^Z2JJJ2K_JNK_`,?D_P#*VZH(OJJJIN%F
- MKNRF_O\'J2JJJ2JJJNKKJ@!'Y*H`2MNJ$[ZJJJG%FKNXI____N2JJJDJJJKJ
- MZZH`1^2J`$KZJ@&H"N2J$[ZJJJF%:N[LF___^Z2JJJDJJJKJZZH`1^2J`TJJ
- MJ@K]J@&@"N6J`*D`OOZJ#T6KN[B;___^HJJJJ2JJJNKKJ@!'Y*H#2JJJ"OVJ
- M`*#DJ@">`+[^JA-%KN[LI___^I*JJJDJJJKJH`"BBN^J`T>J@`+]J@2*JJJ@
- M`OJJ`*+XJ@-*JJH*_:H`H..J`+[^JA.%J[NXIO__[DJJJJDJJJKJHJJJBO*J
- M!8:JJD>JBORJ!(JJJJ*H^JH`HOBJ'$JJH`"H`*JJ``@@J`*J@"JJJ@"H(`JH
- M`*J`"J@"]ZH`OOZJ%**N[NRI__^Y*JJJJ2JJJNJBJJ**@/.J$HEJJD>JBJJ(
- MHJ(*`BHJHJBH"J#^*@0"HJ`J(ONJ'$JJJ@J@`"JJH*@@H`"J``JJJ``H``*@
- M("H``J``]ZH`OOZJ!Z@[N[BIO_Z0_JH(J2JJJNJBJJ**_RKTJ@^*EJI'JHJJ
- M@@B@HHHJ*J*H_Z+_B@8J**BBBHH*^ZH=2JJJ"J"H*JJ@J`J"J"@J@JJ@J"@*
- M@J"H*@J"@J@J^:H`J`"^_:H&@```JGP`"OZJ"*DJJJKJH`*BBO\J]*H:BJNJ
- M1ZJ``HHHHJ***BJ@`J*BBJHJ**JBBHHJ^ZH=2JJJ"H*J"JJ@J"J"J"@J@JJ@
- MJJ@JH*J@*"JJ@J@J^:H`H@"^^:H`;/RJ"JDJJJKJHJJBB@`J]*H:BKZJ1ZJ*
- MJHHHHJ****JBHJ`"BJHHJ*JB@`HJ^ZH=2JJJ"H*J"JJ@J"J``"@``JJ@`*@J
- MH*@`*"JJ@``J^:H`B@"^^:H`G/RJ":DJJJKJHJJBBBKSJAJ+ZJI'JHJJBBBB
- MHHJ(JJ*HHJJ*JHBHJJ**JBK[J@Y*JJH*@JH*JJ"H*H*JJ"K^J@(`*"K_H/\H
- M`BJJ@O:J`+[YJ@"8_*H(J2JJJNJBJJ**_RKTJ@^.JJI'JHJJBBB@HHJ(JJ*H
- M_Z+_B@:(J*BBBHHJ^ZH.2JJJ"H*J"JJ@J"J"JJ@J_JH)J"@JH*"H*"JJ@O>J
- M`*@`OOFJ`*3\J@FI*JJJZJ*JHHJ`\*H51ZJ``HHHH@J"HJJBJ*@*H"JBJ@*B
- MH/\J^ZH=2JJJ"J"H*JJ@J"J`J"@*@JJ@J"@*@J"H*@J"@*@J^*H`OOFJ`*3\
- MJ@2I*JJJZNNJ`$?\J@.BJJJB^JH`HO6J'DJJJ@*@`"JJH*@JH``J``*JH`"H
- M``*@("H``J``*"KZJ@"5`+[SJ@2I*JJJZNNJ`$?\J@.BJJJ*^JH`BO6J'DJJ
- MJH*H`*JJH*@JJ`*J@"JJJ`*H(`JH""J`"J@"J"KZJ@"``+[SJ@2I*JJJZNNJ
- M`$?\J@.BJJHJ^JH`*O6J`$KOJ@&H*N^J`+[SJ@2I*JJJZNNJ`$?DJ@!*[ZH!
- MJ"KOJ@"^\ZH$J2JJJM7K50!'Y%4`2N^J`:@J[ZH`O?)5`"K_JNH```3D```*
- M[ZH!J"KOJ@"P\@``*J.JDJJ2JI*JDJJ2JI*JDJJ2JI*JDJJ2JI*JDJJ2JI*J
- MDJJ2JI*JDJJ2JI*JDJJ2JI*JDJJ2JI*JDJJ2JI*JDJH`O_+_`"K_JO+_`/RU
- MJ@"Z\ZH$J2JJJNKSJ@"DM:H`NO.J!*DJJJKJ\ZH%I*JJH*J`[JH("JJ"JJJH
- M*JH*_P#_"OZJ"*"JJJ"JJJ@H*OFJ`J@H*ONJ``KYJ@"@`+KSJ@2I*JJJZO.J
- M!:2JJJ"J`.ZJ"`*J@JJJJ`JH"O\`_PK^J@B@JJJ@JJJH*"KYJ@*H*"K]J@*H
- M*@KYJ@"@`+KSJ@2I*JJJZO.J!:2JJJ"J"NZJ`@"J@OZJ!@JH*JH*JHK^J@.@
- M*JJ`_JH!J"KYJ@&H*ORJ`:@J^*H`J`"Z\ZH$J2JJJNKSJ@6DJJJ@J@KNJ@(`
- MJH+^J@8"H"JJ"JJ*_JH#H"JJ@/ZJ`:@J^:H!J"K\J@&H*O>J`+KSJ@2I*JJJ
- MZORJ`I0`!?NJ`*3_JO^@0P"JH*H*H`*H*H*JH*H*H`JH`JJJ""J"J`*J@J"J
- MJ@JJ*J`*JJ`*J@"H`*@H*JJ`"H(`J@@"J"@J@`J@`H`""J`"J"@*_:H`NO.J
- M!*DJJJKJ_:H`J/X```K\JA:DJJJ@J@JJH*H*@`"H*H*JH*H*@`*@`/^J_PHM
- M@J``JJ""JJH*JJJ``JJ@"JH`H"`H*"JJ`@*``"H``*@H*@`"@("H*@J``*@@
- M`OZJ`((`NO.J!*DJJJKJ_:H`@/T`_*H1I*JJH*H*JJ"J"H*@J"J"JJ"J_PK_
- M@@*H*JK_"O^"*Z@JJ`JJJ@JJJ@J"JJ""J""@J"@H*JH*@H"H*@*@J"@J"H*"
- MH*@J"H*@J`J"_JH`@@"Z\ZH$J2JJJNK^J@"I_```&OVJ&:2JJJ"J"JJH*"H*
- MJ"@J@JJ@J@H*JH*H*JH*_H(<J"JH"JJJ"JJJ"JJJH(*H(*J@*"@JJJH"@JH*
- M"JC^*`LJJJJ`J"H*"J@H*H+^J@"@`+KZJ@#:^ZH$J2JJJNK^J@:@``%54``"
- M_:HHI*JJH*H*JJ@H*@JH*"J"JJ"J"@`*@``JJ@J"@H``*J""JJH*JJH`"JK]
- MH`RH`"@H*JJ``H*J"@JH_B@+*JJ@`*@J"@JH*"J"_JH`J`"Z^ZH!J_;[J@2I
- M*JJJZOZJ!H``6JJI0`#]JA6DJJJ@J@JJJ"@J"J@H*H*JH*H*H`*"_JH!"J#_
- M@O^J"8*@JJH*JJJ@`JK\H/XH""JJ`H*"J@H*J/XH"RJJ@*"H*@H*J"@J@OVJ
- M`+K[J@&O_?NJ!*DJJJKJ_JH!``7^J@*4`"K^JA.DJJJ@J@JJJBBJ"J@H*H*J
- MH*H*JO^"_JH*"J@"@JJJ`J`JJ@K^JA*"JJ"HHJ"@J"@H*JH*@H*J"@JH_B@+
- M*JJ"H*@J"@JH*"J"_:H`NONJ`K__:ORJ":DJJJKJJJJH`!K^J@*I``K^JDBD
- MJJJ@J@JJJ@"J@J"H*@*JH*@*"H*`J"JJ"J@"@*@J"J@JJ@JJJ@J"JJ"H`J"@
- MJ"@H*JH*@H"H*@*@J"@J"H*"H*@J"H*@J"J"_:H`NONJ__\`VORJ":DJJJKJ
- MJJJD`&K^J@*D``;^JD>DJJJ@J@JJJH*J@`"H`(*JH`(*``J@`"JJ"JH"H``H
- M"J@*J@JJJ@`*JJ"J"J"@("@H*JH"`H``*@``J"@J``*`@*@*"H``J"K_@OZJ
- M`+K\J@.K_/_V_*H(J2JJJNJJJJ`!_:H"D``"_JI'I*JJH*H*JJJ"JJ`"J@*"
- MJJ@*"H`JJ`*JJ@JJ@J@"J"JJ"JH*JJJ`*JJ@J@J@J`@H*"JJ@(*"`*H(`J@H
- M*H`*H""J"@J@`J@J_X+^J@"Z_*H%K_?/^:MJ_JH(J2JJJNJJJH`&_:H"0`0`
- M_JH`I/JJ`(+5J@."JJH*\:H`HOZJ`+K\J@6_[[SE?]K^J@BI*JJJZJJJ@!K^
- MJ@.I`!D`_JH`I/JJ`(+5J@."JJH*\:H`HOZJ`+K\J@7_//9G_]K^J@BI*JJJ
- MZJJJ`!K^J@>D`&D`*JJJI/NJ`:@*U:H#@JJJ"O&J`(K^J@"Z_:H&J_S[H;__
- M]OZJ"*DJJJKJJJH`:OZJ!Y`!JD`JJJJD^ZH!J`K5J@."JJH*[:H`NOVJ!J_W
- MSEO___;^J@BI*JJJZJJI`&K^J@=`!JI`&JJJI+6J`+K]J@:_WRF__U_]_JH'
- MJ2JJJNJJJ0#^J@BI`!JJ@!JJJJ2UJ@"Z_:H&_[RG__G__?ZJ!ZDJJJKJJJ@!
- M_JH(I`!JJI`*JJJDM:H`NOZJ$JO\^7__+_]_:JJJJ2JJJNJJJ`'^J@B0`:JJ
- MD`JJJJ3NJN[_`!_C_P`J_*H`E0"Z_JH2K_>7__K_]?]JJJJI*JJJZJJH`?ZJ
- M"$`&JJJ0"JJJI/VJ!:@H*JJJ@OBJ`.KPJ@&I'N2J`:DJ_*H`OP"Z_JH>O\E_
- M_X__7__:JJJI*JJJZJJH`:JJJ0`:JJJ0"JJJI/VJ!:@H*JJJ@OBJ`.KPJ@&I
- M'N2J`:DJ_*H`OP"Z_JH>^E?_\O_P__?:JJJI*JJJZJJH`:JJI`!JJJJ0"JJJ
- MI/VJ`:@J_JH`@OBJ`.KPJ@&I'N2J`:DJ_*H`OQJZJJJKJ6JJ*JH:J@JFJJJI
- M*JJJZJJH`:JJD`'^J@20"JJJI/VJ`:@J_JH`@OBJ`.KPJ@&I'N2J`:DJ_*H`
- MOP.ZJJJE_5425%5155:JJJDJJJKJJJ@!JJI`!OZJ'Y`*JJJDJJJH`*@H*H`*
- M@J"JJH`*H*`JJNJBJ*******]ZH$J1ZJH`KXJ@"B\ZH#BJJI*ORJ`+\"NJJK
- M]_\-:JJI*JJJZJJI`*JI`!K^J@V`&JJJI*JJH``H*"H``O^"_ZH,``*@@`JJ
- MZJ*HHJHJHOBJ!AJJJ1ZJBJ+XJ@"B\ZH#BJJI*ORJ`+\"NJJK]_\-*JJI*JJJ
- MZJJI`&JD`&K^JB)`&JJJI*JJH*@H*"H*@H(*JJH*@J`J"JKJHJB`BBB`BH"J
- M"ORJ$"6JJ1ZJ*JJ@*B**B"J`J@*`\ZH#BBJI*ORJ`+\$NJJKPD_Y_PPJJJDJ
- MJJKJJJH`:I`!_:HB0"JJJJ2JJH*JJ"@H*JJ`*JJH*J"@J@JJZJ*HHHHHHHHJ
- M**+\JA`J6JD>JBJJBHH((H***BBHHO.J`XBJJ2K\J@"``KJJJ_G_#L`/&JJI
- M*JJJZJJJ`!I`!OZJ(JD`*JJJI*JJ@JJH*"@JJH`*JJ@JH*"J"JKJHJBBBBBB
- MBBHH^ZH0*JZI'JHJJHJ*****BJHHJJ+SJ@."JJDJ_*H`O`2ZJJO,B_O_#LJ/
- M&JJI*JJJZJJJ@!D`&OZJ`:D`_JH>I*JJ@JJH*"@JJH(*JJ@JH*"J"JKJHJBB
- MBBBBB@`J"ORJ$"KZJ1ZJ*JJ*BBBBBHJ`**JB\ZH#@JJI*ONJ`KJJJ_G_#LF/
- M&JJI*JJJZJJJ@`0`:OZJ`:0`_JH>I*JJ@JJH*"@JJH*"JJ@JH*"J"JKJHJBB
- MBBBBBBJJHORJ$"^JJ1ZJ*JJ*BBBBBHHJ**JB\ZH#B*JI*ONJ!+JJJ\1-^_\-
- MQ4\:JJDJJJKJJJJ@``']J@&0`OZJ'J2JJJ"H*"@J"H*"@*JJ"H*@J@JJZJ*H
- MHHHHHHHJ**+\JA`ZJJD>JHJBBHHHHH***BBHHO.J`XHJJ2K\J@"D`KJJJ_G_
- M#<`/&JJI*JJJZJJJI``&_:H!0`;^JAZDJJJ@`"@H*@`"@J"JJ@`"H*H*JNJH
- M`J"***"*@*H*^JH.J1ZJH`J@*BBBB"J`B@*@\ZK_B@&I*ONJ`KJJJ_?_"QJJ
- MJ2JJJNJJJJ@`&OZJ`JD`"OZJ%*2JJJ@`J"@J@`J"H"JJ@`J@J@JJZO"J`:D>
- M^JH`BNRJ`:DJ^ZH'NJJK___]]]__]_[_!AJJJ2JJJNK^J@$`!OZJ`J0`*OZJ
- M`*3NJ@#J\*H!J1[ZJ@"*[*H!J2K\J@"K$[JJJ____8$?A,-___\:JJDJJJKJ
- M_JH&@`!:JJE``/VJ`*3NJ@#J\*H!J1[ZJ@"*[*H!J2K[J@*ZJJOW_P8:JJDJ
- MJJKJ_JH&H``!550``OVJ`*3NJ@#J\*H!J1[DJ@&I*ONJ!;JJJ____?[W`'_^
- M_P8:JJDJJJKJ_JH`J?P``!K]J@"D[JH`U>]5`!WC50`J^ZH3NJJK___^-/@8
- M4W___QJJJ2JJJNK]J@"`_0#\J@"D[JKN```0XP``*ONJ`KJJJ_?_!AJJJ2JJ
- MJNK]J@"H_@``"ORJ`*2UJ@FZJJO___W_?__W_O\&&JJI*JJJZORJ`I0`!?NJ
- M`*2UJA.ZJJO___Q.P?R*'___&JJI*JJJZO.J`*2UJ@*ZJJOW_P8:JJDJJJKJ
- M\ZH`I/BJ`*#QJ@"@_JH`"OFJ`(+=J@*ZJJOW_P8:JJDJJJKJ\ZH#I*JJH/NJ
- M`*#\J@"@]ZH`H/ZJ!`JJJJ@J_:H`@MVJ`KJJJ_?_!AJJJ2JJJNKSJ@.DJJJ@
- M^ZH`H/RJ`*#WJ@"@_JH$"JJJJ"K]J@""WJH`@`*ZJJOW_P8:JJDJJJKJ\ZH#
- MI*JJH/NJ`*#\J@"@]ZH`H/ZJ!`JJJJ@J_:H`@MZJ`*("NJJK]_\&&JJI*JJJ
- MZO.J/:2JJ@`*@`JJJH`@J@"JH`H`"""H`*H*H*JJ@""J`*H*H`J``J`*J@""
- MJJ"@J"J@"JH`JH`J@`JH`@J@"JH`\ZH`@@*ZJJOW_P\:JJDJJJKJJJJ@!JJJ
- MBJJH_*H&I*JJH*H``O^J_P`,J``J@`*@J""@`"H*H/^J_P`BJ``J"H`"J"J`
- M`J@``JJ@@"`*@`*H`"H`"@("H``*@`*H`"KSJ@*ZJJCW``\:JJDJJJKJJJJB
- MH:JJBJJH_*H=I*JJH*H*@JJJ"H"@J@H*@J"H"J"H*@J@JJH*@*"J_@H*H*@J
- M"J"H*@*JH"C^"O^@!Z@H*@H*@J"J_PK_H`&H*O.J`[JJJI7X51%:JJDJJJKJ
- MJJJBJ*@&BH!@*@'^JAVDJJJ@J"J@JJ@JH*"J"@JJH*@J@JH*@H*JJ"J@H*K^
- M"@N@J"H*H*"J@JJ@J"K_"O^@!ZJH*JJJ`H*J_PK_H/&J`+KSJ@VI*JJJZJJJ
- MHJBBHHHJ*/^H_JH=I*JJH*@JH*JH*J"@``H`"J"H*H*J"H*"JJ@JH*``_PK_
- M`!NH*@``H*J"JJ"H*@H``*``J``J@`*"J@H``*``\ZH`D@"Z\ZH/J2JJJNJJ
- MJJ*HH`**`"BH`/ZJ":2JJJ"H*J"JJ"K_H/^J#*`"H*@J@JH*@H*JJ"K_H/^J
- M_PH+JJ@J"JJ@JH*JH*@J_PK_J@<`*H`*`H*"JO\*_ZH!`"KSJ@"Z\ZH,J2JJ
- MJNJJJJ*HHJJ**O^H_:H)I*JJH*@JH*JH*O^@_JH+@J"H*H*J"J**JJ@J_Z#_
- MJO\*"ZJH*@JJH*J"JJ"H*O\*_ZH"J"JJ_PK_@@"J_PK_J@&H*O.J`+KSJ@^I
- M*JJJZJJJHJ&AHHH:**AH_JH^I*JJH*H*@JJJ"H"@*@H*@J"H*J"H*J`*JJH*
- M@*`J"@H"H*@J`J"H*@*JH*@J"@*@H*@H*@H*@J"H"@*@H*@J\ZH`NO.J#ZDJ
- MJJKJJJJ@!J@&BH!I*@'^J@:DJJJ@*@`"_ZK_``RH``H`"J`H*J``*J@J_ZK_
- M`".H``H*@`"H"H``J``"JJ"H*@J``*``J``J`@*@``J``*``J"KTJ@"Z\ZH$
- MJ2JJJNKSJC^DJJJH*H`*JJJ`(*H`JH`JJ"@JJ`"JJ"JJJH`@J@"J"J`*J@J@
- M"JH`@JJ@J"H*H`JH`JH`JH""J`(*H`JH`J@J]*H`NO.J!*DJJJKJ\ZH`I.RJ
- M`:@JX*H`"N^J`*@`NO.J!*DJJJKJ\ZH`I.RJ`:@JXJH"H*@J[ZH`OP"U\E4#
- M*JJJU?-5`%3LJ@"`X:H"H``J[ZH`@`"`\@``*O^J\0#LJ@"`X*H``NZJ`("3
- MJ@"```P!```#`````0&Y```!`0`#`````0"A```!`@`#`````0`"```!`P`#
- M`````8`%```!!@`#`````0`!```!$0`$`````0````@!%0`#`````0`!```!
- M%P`$`````0``(8X!&@`%`````0``(BP!&P`%`````0``(C0!'``#`````0`"
- B```!*``#`````0`"``````````K\@```)Q``"OR````G$#0!
- `
- end
-