summaryrefslogtreecommitdiffstats
path: root/perl-install/pixmaps/monitor-1280.png
blob: c83cc6288c80eb2cc38bd279de3aafbcbad4fead (plain)
ofshex dumpascii
0000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 00 00 00 b3 00 00 00 a0 08 06 00 00 00 47 56 5d .PNG........IHDR.............GV]
0020 c6 00 00 00 04 67 41 4d 41 00 00 d6 d8 d4 4f 58 32 00 00 00 19 74 45 58 74 53 6f 66 74 77 61 72 .....gAMA.....OX2....tEXtSoftwar
0040 65 00 41 64 6f 62 65 20 49 6d 61 67 65 52 65 61 64 79 71 c9 65 3c 00 00 3a 7b 49 44 41 54 78 da e.Adobe.ImageReadyq.e<..:{IDATx.
0060 62 bc 77 ef 1e 03 08 28 2a 2a fe 67 18 05 a3 60 08 82 fb f7 ef 33 82 68 80 00 62 1a 4d c8 a3 60 b.w....(**.g...`.....3.h..b.M..`
0080 a8 03 58 fa 05 08 20 16 e4 84 7c ee f8 39 86 1f 40 c8 01 84 a3 f4 28 3d 14 68 23 4b 23 86 ec b4 ..X.......|..9..@.....(=.h#K#...
00a0 6c 86 1f 7f 7e fc 07 08 20 c6 ff 40 00 4f c8 7f 7e 30 30 b0 00 39 7f 18 18 38 58 38 46 f9 a3 fc l...~......@.O..~00..9...8X8F...
00c0 21 c1 9f 3b 7b 2e b8 30 06 08 20 26 58 a9 0c 4e e9 40 05 20 00 56 38 ca 1f e5 0f 11 3e 38 81 03 !..;{..0...&X..N.@...V8.....>8..
00e0 01 40 00 31 21 b7 3d 40 29 1d 5c 84 83 52 fc 28 7f 94 3f 44 f8 a0 92 1a 04 00 02 08 25 31 8f e6 .@.1!.=@).\..R.(..?D........%1..
0100 f8 51 fe 50 e6 03 04 10 3c 31 8f e6 f0 51 fe 50 e6 83 00 40 00 8d b6 99 47 f9 c3 a6 cd 0c 10 40 .Q.P....<1...Q.P...@....G......@
0120 2c 18 6d 66 a4 5e 22 32 7f ee fc b9 a3 03 9a a3 80 ee 60 ee bc b9 0c c7 0e 1f c3 48 8f c8 7c 58 ,.mf.^"2..........`........H..|X
0140 9b 19 20 00 7b d6 ae 83 30 0c 03 5d 15 b6 7e 3f f0 5f 0c 0c 0c 8c 48 54 62 62 6c ee 38 3f 08 08 ....{...0..]..~?._....HTbbl.8?..
0160 09 16 56 12 59 be d8 f1 f9 22 65 a8 d2 d5 a7 6f e6 77 ef 63 b3 dd f5 bd a0 59 6b 34 7f d9 73 03 ..V.Y...."e....o.w.c.....Yk4..s.
0180 2a a1 38 eb e5 9a 48 10 79 a6 1f c7 c1 a6 69 5d 5b 07 d5 b1 0c 9d 23 ea f9 e0 12 bf 4f 78 cf 24 *.8...H.y.....i][.....#.....Ox.$
01a0 3f 9c ae b6 3f ce b6 a8 ae 2d 90 87 b4 c8 37 84 a6 c0 9e 13 86 c7 bc bf 70 e4 91 79 37 16 f6 de ?...?....-....7.........p..y7...
01c0 19 d7 99 8a 2b 6a 91 eb d4 c6 c4 c5 11 b1 f6 aa 1d a1 0f 68 cf 33 49 34 f9 ff 1f f5 cb 38 5f 6e ....+j.............h.3I4.....8_n
01e0 5f ef 65 f7 ba d8 77 01 d8 ad a3 1d 80 21 18 0a a0 24 c3 ff 7f af 6a e7 56 b1 4d e6 69 8f 93 18 _.e...w......!...$....j.V.M.i...
0200 0f 9d 4d 72 ae 38 96 3b f3 4b 02 d0 52 0a 1b cc b2 60 e6 27 e6 fa c8 54 5c 8c c1 79 df bc 02 cc ..Mr.8.;.K..R....`.'...T\..y....
0220 04 21 37 cc d2 31 6b b7 f5 ea 04 50 73 7d 8f 00 97 45 47 9d 03 e3 00 6b 9d db 7f 92 c1 53 bc 5a .!7..1k....Ps}...EG....k.....S.Z
0240 33 d1 8e fa 1e 00 6e df 10 42 10 78 c0 2d 36 52 0f 02 6a 06 64 0b 45 61 db 2f ff 12 3f 68 38 c8 3.....n..B.x.-6R..j.d.Ea./..?h8.
0260 76 37 86 ab cf 53 00 b1 a0 b7 99 f1 95 cc d4 00 8c c0 54 fc f9 eb 4f 06 3e 1e 76 b2 cd 78 f1 e6 v7...S............T...O.>.v..x..
0280 2b c3 af df 7f 18 fe 80 4a e5 bf 90 8c 80 5e 2a ff 83 b2 21 89 fd 1f a2 04 86 27 66 68 c2 87 97 +.......J.....^*...!......'fh...
02a0 c6 90 c4 0a 2e 75 a1 89 fd df 5f e4 12 f9 3f bc 44 86 94 ea ff 10 89 19 96 e0 ff fd 83 64 40 86 .....u...._...?.D............d@.
02c0 d1 d2 98 6a 89 f9 3f 03 c1 92 19 36 91 02 10 40 44 b7 99 a9 05 58 98 18 19 de 7d f8 4e 51 62 fe ...j..?....6...@D....X....}.NQb.
02e0 f9 eb 0f c3 af 5f 7f a1 4d 0b 48 62 fb 83 94 78 ff 22 25 ec bf c8 4d 09 68 42 fe f3 0f b5 04 ff ....._..M.Hb...x."%...M.hB......
0300 f7 ef 1f 82 86 26 66 08 1b b5 44 fe 8b dc a4 80 d6 24 c8 89 79 34 09 53 1f 80 e2 1a 5f 89 8c dc .....&f...D......$..y4.S...._...
0320 66 06 08 20 92 da cc d4 02 cc 8c cc 0c af de 7d 63 10 13 e2 22 4b 3f 2b 2b 33 b0 64 fe 8b d1 3e f..............}c..."K?++3.d...>
0340 fe 0b 6f 3e 20 da c5 7f 91 13 2a 38 31 33 40 d5 a3 25 e6 7f e8 cd 09 58 db 18 d1 04 42 4d c8 08 ..o>......*813@..%.....X....BM..
0360 b1 d1 92 98 76 e0 37 b0 3d 49 6c 9b 19 20 80 88 1e 67 26 09 bc 7a c9 c0 14 6e c3 c0 56 57 08 e6 ....v.7.=Il......g&..z...n..VW..
0380 7e ff fe 8d c1 35 29 96 61 cd c6 75 60 3e 1f 17 1b c3 33 60 c3 9e 5c c0 cb cd ca f0 0b d8 f6 06 ~....5).a..u`>....3`..\.........
03a0 63 60 3b 01 d4 0e ff f3 07 42 43 d8 c0 26 c8 5f 10 06 26 f8 3f a0 44 0f 91 07 35 37 7e 01 f1 ef c`;......BC..&._..&.?.D...57~...
03c0 bf 10 36 58 1e a8 0e 82 a1 ea e0 34 ac 4d 0d d3 ff 07 15 83 c4 81 39 63 34 21 d3 16 80 fa 56 c4 ..6X.......4.M........9c4!....V.
03e0 8e 33 03 04 10 d1 e3 cc 44 97 ba db 56 32 70 96 85 32 70 64 70 31 b0 c9 9f 67 e0 ac 8e 65 e0 3d .3......D...V2p..2pdp1...g...e.=
0400 76 82 a1 64 cd 4a 86 f7 ec 9c f0 46 bd 30 2f 27 c3 b5 3b 6f 19 98 99 48 f7 20 17 b0 23 0a ca b1 v..d.J.....F.0/'..;o...H....#...
0420 bf 81 a5 33 84 fe c7 f0 13 cc 46 c6 ff e0 ec 5f 60 f9 ff 40 fa 3f 98 ff 07 2a 0e a6 ff 40 d4 fe ...3......F...._`..@.?...*...@..
0440 41 32 0b a1 f7 0f dc 0c 58 a2 06 e3 7f a3 a3 14 f4 04 c4 8e 33 03 04 10 55 db cc 2c fd bd 0c 67 A2......X...........3...U..,...g
0460 57 77 32 dc 2f 73 66 10 51 15 62 f8 ab c6 c0 f0 6c e9 3d 06 f7 aa 64 86 4f c7 2b 18 1c 6c 55 e0 Ww2./sf.Q.b.....l.=...d.O.+..lU.
0480 6a 79 80 a5 f3 c3 17 1f 19 de 7e f8 c9 c0 cf cb 46 62 c9 cc 06 49 80 ff fe 82 3b 70 ff 90 db c6 jy........~.....Fb...I....;p....
04a0 d0 c4 86 32 4a 01 6f ef fe 07 27 46 48 b3 82 01 ae 16 3c 04 07 16 67 c0 da 9c 80 8c da fc 1d 6d ...2J.o...'FH.....<...g........m
04c0 17 0f 10 20 b6 cd 0c 10 40 24 ad cd c0 59 15 bc 7a ce c0 94 9d c1 c0 ca 74 99 21 5f 53 93 21 6e ........@$...Y..z.......t.!_S.!n
04e0 fa 3b 86 03 2b cd 19 26 b6 b1 33 24 cf b9 ca 70 3a 3d 8e 21 f6 ea 5a 06 bd 1d 9b 91 7a a9 ff 19 .;..+..&..3$...p:=.!..Z.....z...
0500 14 24 f9 19 ce 5c 79 0e 1e b6 63 64 24 de 73 0a 52 fc 0c df 7f fe 86 94 ae c0 2a ff 37 a8 da ff .$...\y...cd$.s.R.........*.7...
0520 0d a9 fe c1 25 29 b0 87 87 8e 21 cd 83 bf 48 18 c6 87 c9 fd c3 6c 4a 40 cd fd fb f7 37 a4 34 1e ....%)....!...H......lJ@....7.4.
0540 4d 57 03 56 32 13 93 3e 01 02 88 2a 6d e6 e7 ae 66 0c ec 8e c6 0c 0c e5 4b 18 e4 be f2 30 48 fe MW.V2..>...*m...f.......K....0H.
0560 61 66 50 32 50 65 50 e0 e7 65 60 00 96 be 5f 95 5c 19 d8 b7 1c 60 60 ff f9 82 81 b1 ad 08 ae 8f afP2PeP..e`..._.\....``.........
0580 9b 83 95 41 84 9f 93 e1 d0 e9 47 0c cc c0 f6 06 b1 09 1a ac 4f 90 0b d2 1c f8 05 69 1e 80 86 ea ...A......G.........O......i....
05a0 40 9d c2 5f 7f 80 cd 89 5f ff c0 4d 8b 5f b0 26 c3 1f 68 02 07 35 1b fe 20 35 23 c0 ec ff c0 04 @.._...._..M._.&..h..5...5#.....
05c0 fb 0f 9c 98 41 13 30 c8 cd 09 50 62 07 8d 33 8f 26 e2 81 2f 99 89 49 9f 00 01 44 95 36 73 84 83 ....A.0...Pb..3.&../..I...D.6s..
05e0 2f 03 43 4c 26 98 fd ee c9 33 86 17 97 4f 31 bc ba 77 9e 41 80 1d 34 88 fb 8d e1 df a7 97 60 b9 /.CL&....3...O1..w.A..4.......`.
0600 33 b3 d7 31 74 ff 41 a4 58 d0 8c 99 ac 04 2f c3 8f 1f 7f 18 ae dc 7c c3 c0 c2 cc 4c 94 e7 40 fa 3..1t.A.X...../.......|....L..@.
0620 f4 54 45 80 89 f6 37 a4 c3 07 4e 98 ff 11 f8 ef 3f 68 49 fb 0f 92 20 51 4a 64 48 27 0f 26 ff 17 .TE...7...N.....?hI....QJdH'.&..
0640 dc 51 44 4d c4 7f a1 1d bc d1 ce dd d0 6a 33 03 04 10 49 eb 99 71 81 5f bf 11 89 30 20 31 95 21 .QDM.........j3...I..q._...0.1.!
0660 25 3a 94 81 13 68 99 b8 ac 38 43 6a 56 1a 83 ba 86 3a 58 4e 0a 88 ef b2 0b 63 8c 3b eb ab 8b 31 %:...h...8CjV....:XN.....c.;...1
0680 5c b8 f1 92 e1 fe d3 0f 0c 1c ec cc 0c c4 f4 ad 0c 34 24 a0 a5 2e b0 24 fe 03 a1 21 a5 2c b4 43 \................4$....$...!.,.C
06a0 07 2e 69 a1 09 17 d6 d1 83 27 f0 ff 28 23 15 b0 d1 0c f8 e8 c7 68 e7 6e f0 b5 99 19 08 af 67 06 ..i......'..(#.......h.n......g.
06c0 08 20 aa b4 99 e5 3e 7c 80 b3 73 b3 f3 18 f4 d4 b5 19 16 15 94 33 ec a8 2c 61 08 0d 4b 60 30 33 ......>|..s..........3..,a..K`03
06e0 36 02 cb 89 02 1b c7 5c 5f be a1 e8 fd 0f 1e 9d 60 61 30 50 17 65 d8 79 e4 01 c3 a3 e7 9f 18 b8 6......\_.......`a0P.e.y........
0700 39 59 08 26 68 71 11 2e 06 45 19 01 86 1f bf fe c2 47 29 20 cd 88 3f d0 61 3a c4 48 04 38 11 83 9Y.&hq...E.......G)...?.a:.H.8..
0720 12 3a b4 a4 c6 d6 36 fe 0b 1d 6a 1b 6d 54 0c dd 36 33 40 00 91 d4 66 7e f5 f6 1b f6 51 8c 7f 3f .:....6...j.mT..63@...f~....Q..?
0740 51 f8 8f 1e 3c 67 00 8d 5b f0 7f f9 c7 f0 f0 f1 63 84 04 b0 34 e4 fc ff 07 43 3f 28 e1 4a 89 f1 Q...<g..[.......c...4....C?(.J..
0760 30 68 29 09 31 ac db 75 9b e1 d9 ab af 0c dc dc f8 13 34 13 b0 81 ed 6c a9 c8 f0 ed fb 6f d4 e6 0h).1..u..........4....l.....o..
0780 c3 5f 44 b3 02 3e fe 0c 2b 71 91 31 52 93 e2 2f 74 16 6f 14 0c ed 36 33 40 00 91 d4 66 fe f8 e5 ._D..>..+q.1R../t.o...63@...f...
07a0 17 c3 db 8f df 31 13 16 2b 2b 0a 9f 95 9d 8d e1 37 68 94 03 88 d9 90 4a 75 46 c6 ff 0c 4c 4c 4c .....1..++......7h.....JuF...LLL
07c0 38 06 c7 19 19 74 94 85 c1 6d e8 b5 bb 6e 30 3c 79 fe 99 81 87 0b 77 82 06 89 9b 68 4b 30 28 03 8....t...m...n0<y.....w....hK0(.
07e0 4b e7 ef df 7f 21 8d 1f 23 c6 9f e1 ed 62 70 42 47 9a 48 f9 87 98 1c 19 4d c2 c3 a7 cd 0c 10 40 K....!..#....bpBG.H.....M......@
0800 24 b5 99 a5 c4 b8 19 ee 3c 7c cf f0 fe e3 0f 60 c9 88 d0 27 2c 2c 84 3a da c0 cb cb c0 0f 1a 4b $.......<|.....`...',,.:.......K
0820 06 12 9c 42 12 88 12 9c 85 85 81 97 97 1b 47 e2 04 26 74 66 46 06 1b 43 29 06 11 7e 76 86 59 2b ...B..........G..&tfF..C)..~v.Y+
0840 cf 33 3c 79 01 4a d0 ac 38 13 34 0b 33 13 43 8c af 36 78 14 04 3e cb 07 1f 6e c3 d6 9c 40 b4 8f .3<y.J..8.4.3.C..6x..>...n...@..
0860 47 c7 8c 87 5f 9b 19 20 80 48 6a 33 73 73 b2 32 48 8b f1 32 5c b8 fe 8a e1 e5 bb 6f 0c ac 2c 90 G..._....Hj3ss.2H..2\......o..,.
0880 14 fd ee dd 3b 86 a7 4f 9f 32 9c 3e 7b 96 e1 e2 ed db 0c 2f de be 66 78 0b 14 7f 0b 34 fd d1 dd ....;..O.2.>{....../..fx....4...
08a0 cb 0c 37 ef dc 65 b8 76 fd 3a c3 a5 4b 97 18 1e 3f 7e 84 7b 94 02 d8 a6 66 65 61 66 b0 36 94 66 ..7..e.v.:..K...?~.{....feaf.6.f
08c0 90 10 e6 62 98 bb f6 22 c3 dd 27 1f 18 f8 78 d9 b0 26 3c d0 44 88 be a6 04 83 a7 9d 32 38 83 81 ...b..."..'...x..&<.D.......28..
08e0 47 31 7e 23 46 30 d0 67 ed 60 f4 bf d1 0e de b0 6c 33 03 04 10 49 eb 99 21 a5 33 0f b8 b9 71 f4 G1~#F0.g.`......l3...I..!.3...q.
0900 ec 53 06 23 6d 71 06 05 29 3e 86 9a 9a 3a 06 56 36 4e 06 79 59 45 70 33 22 af a0 88 e1 5f 76 0e .S.#mq..)>...:.V6N.yYEp3"...._v.
0920 78 46 8d 9d 8b 8b 81 8d 95 05 dc 7e 05 cd b8 55 54 d4 e1 75 38 68 98 8c 0b d8 01 f4 b6 57 62 d8 xF.........~...UT..u8h.......Wb.
0940 75 f4 01 c3 ac 15 e7 19 02 9c 55 19 ac 8c 64 18 3e 7e fa 89 99 a8 81 09 33 c4 53 83 e1 d4 a5 a7 u.........U...d.>~......3.S.....
0960 0c b7 ee bf 05 8f 8e 80 27 38 d0 96 66 8e 26 e0 21 de 66 26 62 3d 33 40 00 91 bc 9e 99 09 98 58 ........'8..f.&.!.f&b=3@.......X
0980 d4 14 04 c0 4b 30 8f 9f 7f ca f0 fd c7 6f 06 2d 2d 2d 70 1b f4 df 5f c8 22 7a 2e 2e 1e 78 49 0b ....K0.......o.---p..._."z...xI.
09a0 6b 42 c0 16 e7 f3 f1 f2 13 74 3c 68 39 27 37 b0 79 e1 6a 25 cf c0 cc fc 98 61 fe fa 4b e0 0c e4 kB.......t<h9'7.y.j%.....a..K...
09c0 6e a3 c4 f0 fd db 2f 70 09 8c 5c 3a 83 26 50 f2 e2 4c 19 8a db 76 31 7c fd f6 13 dc 04 82 24 64 n...../p..\:.&P..L...v1|......$d
09e0 90 7b 46 9b 13 c3 a9 cd 8c 6f 3d 33 40 00 91 35 ce cc 02 6c 0a 68 a9 0a 33 a8 2b 0a 31 1c bf f0 .{F......o=3@..5...l.h..3.+.1...
0a00 8c 61 d7 b1 fb e0 44 cc c6 ca 0c 4e ec d4 28 04 41 b3 77 9c c0 66 8d ab a5 3c 83 9d b1 0c c3 da .a....D....N..(.A.w..f...<......
0a20 9d d7 80 ed e8 73 e0 e5 9b 9c 1c ac 28 f6 80 c6 8c 0d b5 24 18 b2 63 8c 81 09 fd 0f c3 8f 5f bf .....s......(......$..c......._.
0a40 e1 23 14 a3 09 79 e4 b4 99 01 02 88 ac f5 cc a0 e6 03 33 b0 39 a1 a5 2c 02 e6 9f 3e b6 97 61 c1 .#...y............3.9..,...>..a.
0a60 8d 63 c0 92 f7 07 83 9d b5 25 78 c9 e7 cf 9f bf 19 be ff fc c9 70 03 d8 56 fe f6 fd 3b c3 97 2f .c.......%x..........p..V...;../
0a80 5f 19 ae 5e b9 cc d0 d2 d2 c5 20 21 2e 41 94 27 40 1d 39 50 06 71 30 97 67 e0 e3 61 63 d8 76 e0 _..^.......!.A.'@.9P.q0.g..ac.v.
0aa0 0e c3 ab b7 5f 18 c2 3d b5 19 14 64 21 b5 c3 8f 9f 7f e0 09 da d3 41 8d e1 e3 e7 1f 0c 53 96 9c ...._..=...d!.........A......S..
0ac0 04 8b 13 3b 01 33 0a 86 76 c9 0c 6b 72 00 04 10 c9 6d 66 e4 ce 1a a8 74 d4 06 26 e8 77 cf c5 19 ...;.3..v..kr....mf....t..&.w...
0ae0 b8 38 38 18 b6 ef d8 c1 a0 a5 9d 0c 57 f3 f3 c7 77 86 cc cc 74 86 b7 6f de 30 b8 b9 b9 31 1c 3f .88.........W...w...t..o.0...1.?
0b00 7e 94 e1 c0 fe bd 0c 11 11 d1 44 7b 04 d4 86 66 66 62 66 b0 d0 93 66 e0 e7 e1 00 b6 a3 ef 31 b4 ~.........D{...ffbf...f.......1.
0b20 4e 3f c4 10 e5 ab c7 60 6d 2c 0b 16 fb f4 ed 07 b8 99 c3 0e 4c f8 61 5e 3a c0 ce e0 77 86 05 eb N?.....`m,..........L.a^:...w...
0b40 cf 33 7c fd fe 1b e8 2e d6 d1 d4 30 42 da cc 00 01 44 d1 1e 40 50 82 06 8d 67 9c bf 70 81 e1 fb .3|........0B....D..@P...g..p...
0b60 97 2f 0c 97 2f 5d 82 8f 6e 7c fd f1 95 81 09 58 dd 73 b0 b1 01 4b 57 76 06 1e 60 47 10 d4 76 7e ./../]..n|.....X.s...KWv..`G..v~
0b80 f7 ee 0d c9 9e 81 ad 58 d3 54 16 05 6f b7 da b2 ff 26 c3 dc 55 67 19 2e df 7c ce 10 ee ad c7 20 .......X.T..o....&..Ug...|......
0ba0 21 c6 cd f0 13 68 d7 d7 af bf 18 d8 d9 58 18 62 fc f5 19 40 c3 d9 4b 36 5e 62 f8 0c 14 e3 e5 06 !....h.......X.b...@..K6^b......
0bc0 6d d1 1a 2d a2 87 7b 9b 19 20 80 28 5e cf 0c 1a 25 d8 b5 63 3b c3 c9 93 c7 19 82 02 43 c0 62 42 m..-..{....(^...%..c;.......C.bB
0be0 42 42 0c 20 08 6a 8f 7c f9 f6 0d 58 e5 7f 67 f8 f6 e3 07 78 62 84 91 89 89 2c 0f 81 ec 01 ed 07 BB...j.|...X..g....xb....,......
0c00 93 14 e5 65 88 f0 d6 61 90 97 7a ca b0 e3 e0 0d 86 5b 0f de 30 78 da ab 31 d8 98 c8 31 88 08 71 ...e...a..z......[..0x..1...1..q
0c20 33 bc ff f4 9d 41 90 9f 93 21 2e d0 80 41 58 80 8b 61 31 30 41 df 79 f0 96 41 80 8f 1d bc 32 6f 3....A...!...AX..a10A.y..A....2o
0c40 b4 d9 31 44 db cc 44 ac 67 06 08 20 aa ec 01 7c f9 f2 25 78 94 81 99 99 19 3c 96 7b f7 f6 6d 86 ..1D..D.g......|..%x.....<.{..m.
0c60 4f 9f 3f 33 fc fd f3 93 c1 d5 d5 8d e1 cd eb 57 0c ff a1 13 15 a0 a6 00 28 51 ff ff 47 de dc 1b O.?3...........W........(Q..G...
0c80 68 99 27 b8 63 68 a3 cc 20 27 c9 c7 b0 e3 f0 2d 86 45 c0 26 c5 d9 ab cf 18 fc 9c d4 18 34 55 44 h.'.ch...'.....-.E.&.........4UD
0ca0 a1 b3 8c ff 19 02 dd 74 18 a4 c4 f9 19 66 2e 3f c5 70 e1 fa 0b 06 56 16 26 06 2e 4e b6 d1 5d 22 .......t.....f.?.p....V.&..N..]"
0cc0 c3 b4 cd 0c 10 40 64 b7 99 51 72 ce 8f 9f 0c ca 2a ca 0c f3 e6 cf 07 63 74 c0 ca c2 c2 c0 c7 cf .....@d..Qr.....*......ct.......
0ce0 c7 20 26 26 ce f0 1e d8 41 e3 e7 65 07 8f 4a 7c fe f2 13 bc 8b 83 54 00 9e a2 06 d2 ba ea e2 e0 ..&&....A..e..J|......T.........
0d00 71 ef 93 17 9f 30 1c 3e fb 80 61 da 92 53 0c 5a 6a 62 0c 2e 56 4a 0c 3a c0 44 fd e7 2f 23 83 9d q....0.>..a..S.Zjb..VJ.:.D../#..
0d20 a9 02 83 b4 18 1f c3 dc 35 e7 18 0e 9f b9 cf f0 fa cd 57 06 7e 3e 0e f0 61 34 a3 69 7a 78 b5 99 ........5.........W.~>..a4.izx..
0d40 01 02 88 a4 36 f3 eb 77 df 18 44 85 b8 30 16 d1 7f ff fe 1d dc 7c 68 6a 6a 62 90 94 14 67 f8 fb ....6..w..D..0.......|hjjb...g..
0d60 fb 17 b8 14 06 37 2b 80 98 99 85 9d e1 22 b0 3d bd 6e dd 7a 86 f3 d7 5e 02 db b2 97 19 0c b5 25 .....7+......".=.n.z...^.......%
0d80 18 d4 14 85 c1 4d 59 50 bb f6 cf 5f d2 9b 1d a0 91 0b 5e 60 1b da dd 56 85 41 5d 49 88 e1 e0 a9 .....MYP..._......^`...V.A]I....
0da0 87 0c 57 6e bd 62 b8 ff e8 1d 83 89 ae 14 83 b1 b6 0c 83 36 30 71 1b eb 00 3b 8f bc 5c 0c aa 0a ..Wn.b.............60q...;..\...
0dc0 42 0c 3b 0f dd 66 b8 7a fb 15 78 ea 1c 34 a3 39 9a a0 87 4f 9b 19 20 80 48 6a 33 af de 71 03 58 B.;..f.z..x..4.9...O....Hj3..q.X
0de0 95 ab 32 c8 48 f0 82 d7 45 fc fa 07 49 81 5f bf 7e 65 50 52 90 63 a8 ad ad c5 e9 a0 cb 97 cf 33 ..2.H...E...I._.~ePR.c.........3
0e00 ac 5f bf 16 d8 cc 60 04 96 90 0f 19 8e 5f 78 c2 a0 0e 4c cc a6 7a 52 0c 06 1a 92 0c 2c ac ac 0c ._....`......_x...L..zR.....,...
0e20 5f 81 4d 15 50 33 82 d8 04 06 ca 28 df 7f fc 01 77 f6 e4 a5 05 19 82 3d 78 81 e6 7d 60 38 7c fa _.M.P3.....(....w......=x..}`8|.
0e40 01 78 42 e7 da 9d 37 0c da aa 62 0c 26 c0 c4 ac af 29 c9 20 2c 64 cc a0 af 21 c5 b0 69 cf 35 86 .xB...7...b.&....)..,d...!..i.5.
0e60 13 17 1f 31 3c 78 f2 81 81 9b 1b d8 41 65 61 1e 4d 31 c3 a0 cd 0c 10 40 24 b5 99 4f 5f 7e 01 ec ...1<x......Aea.M1.....@$..O_~..
0e80 c8 fd 61 b0 37 91 05 4f 52 80 c6 71 41 63 bd a0 52 92 85 f1 0f c3 db cf 9f 18 6e 3d 63 67 f8 fa ..a.7..OR..qAc..R.........n=cg..
0ea0 e9 2d 78 94 03 44 80 26 eb a4 a4 a4 18 fe fc fc 01 ae da b5 55 45 18 6c 5d 34 18 ce 5d 79 ce 70 .-x..D.&............UE.l]4..]y.p
0ec0 05 58 42 de 06 76 e0 f6 9f 78 00 14 17 06 9a 29 c9 20 26 cc cd f0 f3 27 68 e2 e3 0f 64 31 d0 3f .XB..v...x.....)..&....'h...d1.?
0ee0 fc 03 11 a0 5a 02 34 aa f2 e9 cb 0f 06 36 60 86 00 8d 78 48 00 cd 00 ad 8b be 70 fd 19 10 3f 67 ....Z.4......6`...xH......p...?g
0f00 78 f4 f4 03 c3 d1 b3 8f 19 ac 8c e5 c0 cd 0e 15 39 41 86 03 a7 a4 18 f6 1c bb c3 70 fe ea 73 70 x...............9A.........p..sp
0f20 09 cf ce ce c2 c0 cc 04 a9 49 46 c1 d0 6c 33 03 04 10 49 6d 66 50 fb f6 2c 30 11 3e 78 fc 9e e1 .........IF..l3...ImfP..,0.>x...
0f40 c6 bd 37 c0 ea 5b 0a 98 78 84 81 a5 e3 77 86 e7 af de 01 4d f8 c7 60 aa ce ce f0 ea 8d 20 78 b9 ..7..[..x....w.....M..`.......x.
0f60 27 f8 bc 38 60 e2 90 02 b6 26 8e 3d f8 cd f0 e2 e9 4b f0 d1 02 a6 40 7d 5a 4a c2 0c 8f 5e 7c 61 '..8`....&.=.....K....@}ZJ...^|a
0f80 b8 72 f3 15 c3 b5 db af 19 36 3d 7c cd 70 04 58 62 cb 49 f2 33 18 68 4a 00 9b 0d 22 c0 52 9c 05 .r.......6=|.p.Xb.I.3.hJ...".R..
0fa0 72 ee 1b f8 ec 39 d0 42 21 46 e8 29 42 90 89 1b 06 a4 8d b0 a0 44 f8 13 bc 50 ff 2f 78 6c 59 4b r....9.B!F.)B........D...P./xlYK
0fc0 59 8c 41 4e 8a 9f e1 e5 9b 2f 0c 17 81 9d bf 5b 0f 5e 31 bc 78 fd 89 41 54 98 97 c1 0c 58 1b 78 Y.AN...../.....[.^1.x..AT....X.x
0fe0 da a9 81 dd 7f e8 d4 03 60 f3 e4 3e b8 83 f8 ed fb 2f 60 0d c1 0c 5e df 01 ca 78 e0 8e ea 68 33 ........`..>...../`...^...x...h3
1000 64 c8 b4 99 01 02 88 a4 36 33 78 9d 03 30 31 3d 7d f1 89 61 2d 10 5f bc f9 9a c1 08 94 f0 54 d5 d.......63x..01=}..a-._.......T.
1020 18 b4 b5 34 19 3e 7e fa c4 20 c5 2b 00 5e 58 f4 ef 1f a4 ec 67 66 82 58 01 1a 29 f6 f5 f7 63 60 ...4.>~....+.^X.....gf.X..)...c`
1040 61 61 83 ce ce b1 80 db cc 0a d2 fc 0c 36 c0 12 f3 e2 8d 97 e0 52 fa de a3 f7 e0 04 78 f8 ec 43 aa...........6.......R......x..C
1060 06 29 51 5e 60 f3 41 80 41 02 d8 81 e3 e5 62 05 a6 58 c8 74 39 13 13 33 78 64 82 e1 3f e2 58 00 .)Q^`.A.A.....b..X.t9..3xd..?.X.
1080 d0 7a 8e ff 8c 90 75 ce df 7e fe 06 32 40 07 34 32 33 28 c8 08 00 4b 7b 1e 86 77 1f be 02 9b 1d .z....u..~..2@.423(...K{..w.....
10a0 af 19 9e 00 dd 7d ec dc 23 f0 0c a6 b2 bc 20 83 8b 8d 32 78 04 04 54 42 83 12 fd c5 1b cf 19 3e .....}..#.........2x..TB.......>
10c0 00 4b 6a d0 36 2c d0 06 00 d0 d4 3d 28 61 43 fc 3f 9a b0 06 73 9b 19 20 80 48 6a 33 83 d6 04 83 .Kj.6,.....=(aC.?...s....Hj3....
10e0 27 4a 80 09 01 54 0a 5e 00 76 e6 2e 5e 7f c5 f0 ed db 0f 86 17 2f 5f 33 ec db 77 94 c1 c2 fc 1b 'J...T.^.v..^......../_3..w.....
1100 30 51 a3 9e 56 f4 9e 9f 97 e1 cc 99 73 0c 8f 9f 3c 66 b0 b6 71 06 37 4b be ff 00 b6 8d 19 ff 01 0Q..V.......s...<f..q.7K........
1120 db de 8c 0c 42 02 9c 0c 76 66 0a 0c b6 26 72 0c af de 7e 65 b8 79 1f d8 89 7b fa 91 e1 d9 ab cf ....B...vf...&r...~e.y...{......
1140 c0 4e e7 57 60 53 e5 09 b8 d9 22 2c c4 0d 4c e0 7c e0 71 64 21 01 6e a0 d8 7f 70 49 0f 2a 9d 99 .N.W`S....",..L.|.qd!.n...pI.*..
1160 81 89 9b 95 01 32 8e fd ef 0f 68 68 8e 09 72 72 11 30 51 82 32 17 68 7c 5a 48 90 0b 3c cd fe e8 .....2....hh..rr.0Q.2.h|ZH..<...
1180 d9 47 86 3b 0f df 81 33 ce 7d 60 bb 19 64 bf a5 81 2c 83 99 ae 0c 30 83 be 00 63 d0 d8 f4 e3 17 .G.;...3.}`..d...,....0...c.....
11a0 1f c1 ab fd 7e fc fc 0f ee 23 b0 42 d7 9e 80 8f b1 19 4d d8 83 ae cd 0c 10 40 f0 ab d3 8e 1d 3f ....~....#.B......M......@.....?
11c0 86 f7 be b5 a9 b3 a7 32 7c e0 f2 02 b7 81 e1 27 6f 42 b7 f1 7f f9 f2 09 54 06 03 9b 06 62 e0 21 .......2|......'oB......T....b.!
11e0 31 15 05 61 60 a7 4e 8c 41 1c 58 22 82 12 19 28 21 fc fc fd 9b e1 fd 87 0f c0 c4 00 3a ce 96 09 1..a`.N.A.X"...(!...........:...
1200 5c c2 ff 03 26 38 50 82 84 2c 82 03 96 b8 d0 36 30 a8 89 02 aa e2 5f 03 13 f6 d3 17 9f 19 9e be \...&8P..,.....60....._.........
1220 fe 08 1e f1 00 d9 09 9a f8 00 9f 07 f7 9f 01 bc 3a 4e 44 90 93 81 9b 93 9d 41 80 9f 9d 41 18 98 ................:ND......A...A..
1240 c0 41 76 81 92 1b a8 6f ca c2 06 34 13 68 17 a8 14 66 00 66 1c 70 62 84 78 1b ac ee f9 eb 2f c0 .Av....o...4.h...f.f.pb.x...../.
1260 e6 c7 5b 70 06 05 ad 01 81 60 26 70 13 fd 25 d0 ee 1b 77 80 4d a0 bb af c0 6a 40 6b a4 7f fe 86 ..[p.....`&p..%...w.M....j@k....
1280 d4 02 a0 d2 1a 54 33 30 43 c7 b3 47 13 36 ed c0 f6 05 09 0c 5f 5e 3c c4 7b 1f e0 d2 f9 4b c1 09 .....T30C..G.6......_^<.{....K..
12a0 1b 20 00 3b e7 ae 82 30 10 44 d1 eb 23 86 8d 92 c4 80 31 8a a2 60 1a 11 0b ff ff 1f b4 4b 27 08 ...;...0.D..#.....1..`.......K'.
12c0 42 50 c8 03 25 3e 22 c6 38 33 5a d8 5a d9 f8 01 3b db dc 9d 3d 7b d9 b9 5f 31 33 4f 3f 17 9f a9 BP..%>".83Z.Z...;...={.._13O?...
12e0 40 c5 eb ee 55 ca 10 61 b3 2d b6 0a 76 70 a9 83 4e 86 36 7c ba c6 d9 4d f0 c7 0e 1c ea a6 96 69 @...U..a.-..vp..N.6|...M.......i
1300 89 08 78 ed 8d 3a 64 ce 21 86 c4 b8 5c 43 ea 8a 28 78 c0 ff c1 b0 0d b3 d9 80 4d eb e7 d3 ae f0 ..x..:d.!...\C..(x........M.....
1320 71 94 66 88 92 0b 21 c3 19 f1 e1 2c 61 e5 57 2a 92 9d 32 ac b7 09 94 ae c9 63 8e 7d 6c 16 bf d7 q.f...!....,a.W*..2......c.}l...
1340 69 c9 7e 6d 53 91 00 ab e2 2f 57 24 f0 bc 26 fc af 35 f8 f7 9f 0b 9d c4 19 a7 17 44 84 22 25 ed i.~mS..../W$..&..5.........D."%.
1360 6b 28 0d 03 af 8e 51 df c6 62 d6 43 b8 3f 62 43 dd 7c 19 84 92 60 2a c9 94 f9 fd 3d 4c 50 95 03 k(....Q..b.C.?bC.|...`*....=LP..
1380 a6 89 23 52 fe 71 e4 87 cc fc 14 80 9d 33 c8 21 18 0a c2 f0 2f a4 55 54 a2 2a 44 35 c1 96 23 58 ..#R.q.......3.!..../.UT.*D5..#X
13a0 ba 88 8d 1b 3a 82 23 08 91 54 44 17 94 94 68 55 95 26 bc 99 22 b6 36 56 56 6f 39 9b 7f 66 fe 37 ....:.#..TD...hU.&..".6VVo9..f.7
13c0 99 f9 be f2 cc 74 e5 fc a6 69 7e e0 5f 4b d9 03 1a 66 16 a3 b1 85 78 1f a3 d7 e9 22 9d da 63 36 .....t...i~._K...f....x...."..c6
13e0 df 60 eb 2c 31 99 e5 b0 b2 6c 78 41 06 c3 41 1f 46 5d 87 22 09 01 48 12 03 5d 48 58 24 ca 84 fb .`.,1....lxA..A.F]."..H..]HX$...
1400 f6 3c 69 12 a2 62 e0 37 81 c6 a3 e4 a5 d5 cf a6 21 a3 6d 6a 3c 27 a6 f8 be 1f 09 31 47 58 bb 27 .<i..b.7........!.mj<'.....1GX.'
1420 84 61 cc 95 38 27 a7 f9 3d 07 37 86 b8 38 a2 02 53 f5 bf 0a 9b 44 9d a0 58 50 58 94 46 55 65 bc .a..8'..=.7..8..S....D..XPX.FUe.
1440 6d b5 9c e7 4f 5f 4d 57 b9 33 b8 de 85 93 82 92 a0 a2 a9 22 31 35 b4 1c 9f 47 88 47 11 6f 61 bb m...O_MW.3........."15...G.G.oa.
1460 98 5a 3b 51 bd 4f 3c 75 21 cb 15 78 21 0b 3a f3 ec 44 2f 9f 8d fb 7f 2b e4 57 9e f9 21 80 48 6a .Z;Q.O<u!..x!.:..D/....+.W..!.Hj
1480 33 43 76 8b c0 12 f1 5f e8 f5 0a ff 18 6a 33 f5 18 6e dd ba c9 b0 68 cb 73 86 bf 02 c6 0c 11 9e 3Cv...._.....j3..n....h.s.......
14a0 52 0c 8e 8e 96 c0 e6 c7 0f 60 d5 ce c2 c0 ce c5 c1 50 53 dc cb b0 68 eb 47 86 07 c0 84 a5 aa aa R........`.......PS...h.G.......
14c0 ca a0 a1 24 0c 2c f9 04 c1 1d 3c 3e 6e 0e 60 67 8d 05 98 58 59 18 04 80 a5 e7 3f f0 86 53 d0 c9 ...$.,....<>n.`g...XY.....?..S..
14e0 44 7f c0 a5 3f e8 9a 87 3f d0 13 89 7e fd 87 8c 43 ff 83 5e 3d c1 0c 4c 7d a0 c5 47 02 c0 f6 30 D...?...?...~...C..^=..L}..G...0
1500 68 00 85 15 58 ea 82 d4 81 9a 29 ef 81 25 38 e8 40 c5 0f c0 84 f6 03 4a 83 52 16 68 18 0e a4 96 h...X.....)..%8.@......J.R.h....
1520 9d 85 85 81 19 e8 a7 b7 6f bf 82 33 cb 67 50 22 06 ba 59 14 d8 3c e2 66 67 03 9f 9c ff 0a 58 62 ........o..3.gP"..Y..<.fg.....Xb
1540 33 fc e1 04 b6 c3 ff 31 58 e8 c9 82 0f 4a 37 d2 94 04 d6 12 5f 19 5e 00 fd f2 f4 cd 27 48 c9 0d 3......1X....J7....._.^.....'H..
1560 6c 7b 7f f9 fe 0b bc 5b 1c 74 74 d8 d7 2f bf c0 ed 6b 50 53 84 05 da 24 61 62 1c 4d d8 b4 6c 33 l{.....[.tt../...kPS...$ab.M..l3
1580 03 04 60 ef 0a 56 10 84 82 e0 a2 50 59 99 a6 50 24 15 41 a7 2e 81 5f d0 87 77 ee 1a 74 a9 43 5d ..`..V.....PY..P$.A..._..w..t.C]
15a0 a2 a0 82 ac 44 93 34 c5 76 d6 8e 5d 82 8e 9d 9f 3c 84 9d 9d 9d 9d d5 f7 be f2 99 a5 01 fc 70 7e ....D.4.v..]....<.............p~
15c0 b1 65 b5 39 48 5b 9a b8 23 da e4 36 cd d7 57 72 c7 1e 45 09 e4 29 07 d3 bf d1 62 97 92 6e 37 e9 .e.9H[..#..6..Wr..E..)....b..n7.
15e0 70 51 68 39 5d d1 8c c1 67 ea 15 2e fd 65 72 5a 06 f5 19 d4 03 2e eb 3d c7 90 bf b2 55 06 5a b5 pQh9]...g....erZ.......=....U.Z.
1600 a4 ca 28 1c 60 00 d0 e1 8c e4 72 fd 44 f1 69 28 c0 2c cc 9d 15 e3 6d e8 f0 18 62 59 ee 13 c9 38 ..(.`.....r.D.i(.,....m...bY...8
1620 31 34 79 1e cd 1f 64 39 94 00 14 35 2a 0c e4 6e cc d5 00 76 1c 58 1a 89 99 ca c0 26 e7 86 36 a1 14y...d9...5*..n...v.X.....&..6.
1640 47 c4 2c af 16 fa 3a 60 60 de 99 e5 61 23 7a 2c 45 c0 e0 8d 9a 46 75 d6 ea dd 8e 49 e1 30 91 7d G.,...:``...a#z,E....Fu....I.0.}
1660 f6 27 5f 1a d8 e3 39 90 a4 48 c4 2a 4c 29 8c 9e b2 8e 77 56 de 5e 36 d8 5b 51 fe 9e f6 2f 7d e6 .'_...9..H.*L)....wV.^6.[Q.../}.
1680 97 00 ec 9d c1 0a 82 40 10 86 47 c3 cd b4 88 a8 0e d1 21 a2 5b 0f 10 bd 7b f7 a0 43 74 e9 11 3a .......@..G.......!.[...{..Ct..:
16a0 18 54 6a 96 a8 54 db fc b3 2b 74 8d ae 1d 64 4f 2b 0e fb fb fb 8d 8e b3 df 31 33 bb 98 7e 68 71 .Tj..T...+t...dO+........13..~hq
16c0 ca d7 47 a3 ee 1d 67 ff a7 6a 48 cb c5 8c e6 d9 99 36 fb 3b ad b7 2b 3a 26 29 c5 71 c1 0b a7 28 ..G...g..jH......6.;..+:&).q...(
16e0 2f 5c ea 0f 58 68 1e dc a9 c9 0b 5c d2 25 35 ce d9 f4 22 0a 43 8f da be a2 20 50 9c c8 31 5f 77 /\..Xh.....\.%5...".C.....P..1_w
1700 5a 34 19 75 79 f4 85 75 51 9c 2f a5 9c 70 5f 3c ce 39 59 33 ad 2e 20 66 2d 62 36 b0 ea 88 b8 b5 Z4.uy..uQ./..p_<.9Y3...f-b6.....
1720 4d cc 9e 16 55 20 d6 aa 34 fd e8 30 07 ce 8e f9 b8 06 89 43 9b 72 56 14 29 1d a2 c4 6e ce 63 7c M...U...4..0.......C.rV.)...n.c|
1740 14 18 01 2e c6 c7 1c 9c c7 a9 37 64 e1 c1 57 e6 66 c3 ab 46 88 33 e0 18 a6 e3 1e 85 1c 07 b8 3d ..........7d..W.f..F.3.........=
1760 cd 98 c5 e3 5c 7e 2f ab 2b ff 80 26 d7 5b 29 f5 d6 c6 bd ed d1 70 ff ca fd 81 99 df 02 b0 77 36 ....\~/.+..&.[)......p........w6
1780 29 0c c2 40 14 9e d4 6e a4 8b 62 0f 50 e8 fd 8f 54 e8 56 88 d2 85 fd d5 96 d8 f9 26 31 52 ba 69 )..@...n..b.P...T.V........&1R.i
17a0 f7 8d 88 82 44 02 79 8e 6f de 4c 26 3f 71 66 2c 57 b6 cc 21 ea ce 50 82 ba 09 52 fb 41 c6 e5 20 ....D.y.o.L&?qf,W..!..P...R.A...
17c0 ab 6a 27 d5 d0 8a 6f 95 43 96 1b 59 3b 9d b0 42 fb 1f f7 f2 ec 6f 08 ce 06 06 9c 2c 32 d8 c0 05 .j'...o.C..Y;..B.....o.....,2...
17e0 14 02 90 35 d7 8b 3c 7c 27 07 1c aa 22 02 24 72 d0 99 8b d2 70 f0 48 ca 9f da bc 58 f5 53 36 1b ...5..<|'...".$r....p.H....X.S6.
1800 27 80 eb d1 19 bf be c7 5f 7d 02 a4 51 a7 f0 5e 55 0e 6b 4a 1f 97 5c 3a 0b 00 d9 cb 90 fe 5c de '......._}..Q..^U.kJ..\:......\.
1820 28 28 d3 9d b4 41 11 c1 1a f2 a9 39 4b 22 8a 66 7d 17 56 b1 69 0b c0 f5 79 6f 55 45 47 fb 98 09 ((...A.....9K".f}.V.i...yoUEG...
1840 df 03 e8 93 8e e9 ac f7 d0 14 b4 6d d3 d2 d3 d5 c6 e1 fe 96 f9 1b ce fc 12 80 bc 33 d6 41 10 06 ...........m...............3.A..
1860 c2 70 6b 71 33 8e 4e be ff 8b 91 38 90 3a e8 60 62 4d 0d f7 dd 5d 49 21 0e 3a cb 76 b4 01 86 8f .pkq3.N....8.:.`bM...]I!.:.v....
1880 f4 bf ff 7a f0 a3 cf dc 7e 17 e6 cd a2 c1 60 e6 2b f8 53 7e 84 22 71 4c 25 5c f3 4d 96 e5 a7 76 ...z....~.....`.+.S~."qL%\.M...v
18a0 7f 80 83 f6 eb 69 c9 2e 76 90 85 05 3c c6 91 11 24 78 cc a8 5e 0c 79 39 e4 b5 96 05 18 8e cb 14 .....i..v...<...$x..^.y9........
18c0 dd 16 eb 18 fe 54 ea de c4 4d 16 f5 83 ad 84 dd cf c5 4e 6c ea 76 7d 0d e8 8d ab f3 0a 1e 51 b2 .....T...M........Nl.v}.......Q.
18e0 ed a9 e8 65 93 42 6f 75 4d f6 92 08 92 0f 8c 22 41 06 79 e6 83 e4 07 94 ec cf a7 a3 ee 71 61 75 ...e.BouM......"A.y..........qau
1900 e0 05 cb a2 ef f1 b5 ef 40 0d e4 0e 77 32 af d2 e4 89 df 78 f7 67 74 7f ab 99 67 01 44 62 9b 19 ........@...w2.....x.gt...g.Db..
1920 7a 11 0d da 75 61 af df 7d 67 78 fd f6 23 c3 cb cf c0 76 21 3b 13 b0 5d f9 9d e1 df 8f 9f a0 f8 z...ua..}gx..#....v!;..]........
1940 65 60 e5 60 67 60 67 fc c7 f0 fd fb 7f 06 4e 3c 3b 98 e0 89 1b 9a 50 c0 1d 27 76 26 ac c9 12 e5 e`.`g`g.......N<;.....P..'v&....
1960 aa 36 12 00 13 ce b5 17 ff f1 72 19 08 eb 80 b8 92 19 46 40 dc 0c bb f6 0d d4 56 fe 00 6c 6e 80 .6........r.......F@......V..ln.
1980 12 2e 68 48 f1 e9 cb 0f 0c 57 6e bf 60 10 11 e4 66 50 91 15 66 50 95 13 62 30 d4 94 66 70 34 55 ..hH.....Wn.`...fP..fP..b0..fp4U
19a0 62 f8 0a 6c 8e 3c 03 d6 4e cf 5e 7f 62 78 f2 ea 33 78 b7 39 a8 b9 02 9a 95 fc 06 94 03 af 45 81 b..l.<..N.^.bx..3x.9..........E.
19c0 a6 6a 58 26 1c ee 6d 6f 62 db cc 00 01 44 e2 da 8c 3f 18 37 2c 81 4a cc 57 ef 7f 32 bc fe f8 93 .jX&..mob....D...?.7,.J.W..2....
19e0 41 8c f3 39 83 e0 17 36 86 bf 2c 40 35 62 02 0c 0c dc 6c 0c 2c 9f 9f 31 b0 8a 2a 31 dc fc f0 8b A..9...6..,@5b....l.,..1..*1....
1a00 e1 d9 5d 46 06 1e 3e e2 3d 81 68 2e fc c7 9a 30 c9 01 b4 5c 98 ff 1f c5 a9 d0 92 1d b4 04 96 11 ..]F..>.=.h....0...\............
1a20 74 da 29 0b 38 4f 42 8e 3f 00 ad 01 ff cd f0 f0 d9 7b 86 c7 cf 3f 30 9c bf fe 0c bc 66 44 4f 55 t.).8OB.?........{...?0.....fDOU
1a40 0c 9c b0 55 e5 85 19 8c b5 a4 c0 0d 9d a7 c0 44 0d 4a dc 8f 5e 7c 62 78 fd fe 0b 78 34 e5 fd a7 ...U...........D.J..^|bx...x4...
1a60 1f 0c 9f 80 34 a8 2d 0f 6e ff ff 83 34 9b 98 a0 4b 6e 87 5b c1 4d 6c 9b 19 20 80 48 6a 33 43 26 ....4.-.n...4...Kn.[.Ml....Hj3C&
1a80 4b a0 37 2c 21 6d e3 7f f4 e4 13 c3 f7 5f 4f 19 f6 2f b1 63 e0 6a 9e ca c0 20 6d c3 c0 10 ac 0d K.7,!m......._O../.c.j....m.....
1aa0 31 be be 9e 81 41 50 9a 61 9d a9 09 43 ec 85 6f 24 25 e6 e1 04 60 09 1d 96 d8 c0 eb 4b a0 6d ee 1....AP.a...C..o$%...`......K.m.
1ac0 8f 5f be 03 13 e8 37 60 bf e3 23 c3 f1 8b 1c e0 e3 7a 55 e5 84 19 94 a4 04 19 44 81 a5 37 68 66 ._....7`..#......zU.......D..7hf
1ae0 53 57 55 12 dc f1 7e fd fe 2b 78 28 10 44 83 c6 b9 3f 00 3b 92 a0 75 27 1f 81 34 ec 06 5b f0 51 SWU...~..+x(.D...?.;..u'..4..[.Q
1b00 67 8c 90 f6 fd 70 68 92 10 db 66 06 08 20 d2 d7 66 40 7b fd c8 e5 db 37 60 35 c8 c4 fe 9d e1 fb g....ph...f.....f@{....7`5......
1b20 7f 59 06 ae bb 0f 19 18 b4 9c 18 18 9e bc 65 60 b8 01 c4 c7 6f 32 30 78 49 31 7c fb 2b 0e 0c dc .Y............e`....o20xI1|.+...
1b40 07 a3 07 78 a3 35 ea 21 1d 3d 48 d3 e4 fb 8f 5f e0 0e e2 91 f3 8f 19 6e 3d 7c c7 a0 ab 22 c6 a0 ...x.5.!.=H...._.......n=|..."..
1b60 26 2f c4 20 2e c4 0b 9d f4 f9 0b 1e 93 17 55 e3 06 2f a2 fa 04 6c 6b 83 9a 74 4f 80 25 f7 73 60 &/............U../...lk..tO.%.s`
1b80 09 0e 1a 35 01 35 47 40 09 fd 0f f4 42 4e f0 e9 a6 48 9d ca e1 dc 66 06 08 20 92 da cc ff 71 54 ...5.5G@....BN...H....f.......qT
1ba0 fa ec c0 7a f4 cd 6f 71 86 e3 93 56 33 f8 bc fb cd f0 fb d6 0d 86 3f 06 46 0c 4c 42 ff 19 58 3c ...z..oq...V3.........?.F.LB..X<
1bc0 bc 19 98 bb e7 32 9c ef 9c ce c0 fe fb 33 30 fe 44 46 13 31 0e 00 1b 9a fb f6 ed 3b c3 1b 60 ba .....2.......30.DF.1.......;..`.
1be0 3b 70 e6 21 c3 fd a7 ef 19 4c 34 25 19 54 14 44 c1 9d 55 d0 4c 29 68 a6 13 74 92 29 e8 20 4a 3e ;p.!.....L4%.T.D..U.L)h..t.)..J>
1c00 1e 60 49 2e c8 c3 60 a8 2e 09 3e a1 15 34 25 0f ea 4c 3e 05 96 de ef 80 a5 fd 9b 77 5f 81 b5 26 .`I...`...>..4%..L>........w_..&
1c20 a4 79 08 ee 90 0f c1 84 4d 6c 9b 19 20 80 48 6a 33 e3 6a 6f f2 88 a8 30 bc bf 7d 90 21 a8 6f 23 .y......Ml....Hj3.jo...0..}.!.o#
1c40 83 b8 84 1e c3 d7 e5 2f 19 fe 2e e9 06 f7 f0 59 d8 39 19 b8 f7 f8 32 3c b9 79 8c 41 dd bc 8a 81 ......./.......Y.9....2<.y.A....
1c60 89 15 d8 ce f8 f5 69 34 e5 e2 ed a8 32 31 7c 06 36 3d 04 f8 b9 81 6d e5 cf e0 b1 f0 f7 5f 40 33 ......i4....21|.6=....m......_@3
1c80 8f d2 e0 21 4a d0 10 29 a8 b9 02 4a d8 a0 05 5c 8c d0 12 1e d4 69 16 17 e2 61 50 07 26 7c 50 e9 ...!J..)...J...\.....i...aP.&|P.
1ca0 fc 09 58 63 be 7e f7 05 dc 1c 79 fe e6 13 c3 5b d0 78 f7 4f c8 78 37 68 b4 05 56 33 0c f6 0d 09 ..Xc.~....y....[.x.O.x7h..V3....
1cc0 c4 b6 99 01 02 88 2a 77 67 bf 79 72 88 e1 df 8f fb 0c 8c df de 31 bc 7e 09 6c 4a fc fb 0b d9 62 ......*wg.yr.........1.~.lJ....b
1ce0 02 5a 0a 04 0c a7 6f 7f be 32 b0 32 fd 65 f8 f6 f1 1a 03 eb 5f 29 60 22 17 18 4d b1 44 94 d2 1f .Z....o..2.2.e......_)`"..M.D...
1d00 3e 7e 65 10 01 76 0c 7f fc fe cf b0 f7 e4 5d 70 a7 d1 4c 57 0e 9c 68 41 63 fd a0 d1 49 0e 60 73 >~e..v........]p..LW..hAc...I.`s
1d20 03 34 f5 0f 5a c7 02 5a a3 02 4a a8 a0 2b e9 38 d8 58 19 24 44 79 19 24 84 41 89 fb 1f 78 29 2d .4..Z..Z..J..+.8.X.$Dy.$.A...x)-
1d40 28 53 80 4a 6e 70 93 04 48 83 26 72 fe 42 d7 da c0 da f2 83 31 61 13 db 66 06 08 20 aa dc 03 f8 (S.Jnp..H.&r.B......1a..f.......
1d60 8f 4d 9a 81 53 5c 9a 41 46 dc 96 ac 21 ad 51 80 3b 41 bf 03 96 b0 62 22 7c c0 12 94 9d e1 d0 b9 .M..S\.AF...!.Q.;A....b"|.......
1d80 07 e0 65 a8 36 06 f2 d0 44 07 39 90 12 36 78 09 1a ab 07 b5 24 be 01 9b 21 a0 61 bc 6b 77 5e 31 ..e.6...D.9..6x.....$...!.a.kw^1
1da0 b0 b3 32 81 47 4a 40 cd 11 d0 7a 70 99 1f 02 0c f2 52 42 0c 9f bf fd 64 78 f5 ee 33 30 61 7f 06 ..2.GJ@...zp.....RB....dx..30a..
1dc0 96 d8 5f c0 67 fb fd 85 ce 1f d0 36 51 33 92 9c 0a 88 6d 33 03 04 d0 80 dc 9d 3d 0a 48 03 6f df .._.g......6Q3....m3......=.H.o.
1de0 7f 66 90 10 11 00 26 36 0e 86 23 e7 ee 33 80 2e e5 32 d5 96 c1 48 70 e0 4b 39 81 25 b3 20 1f 17 .f....&6..#..3...2...Hp.K9.%....
1e00 78 f5 e1 27 46 d0 02 ab 3f 0c d7 ee be 04 cf a6 8a 03 13 35 68 29 00 3f 0f 68 39 2e 27 83 88 00 x..'F...?..........5h).?.h9.'...
1e20 37 83 ac a4 10 78 2d ca 2b a0 1d 2f df 7c 06 af 3d f9 03 bd ad eb 3f 03 a4 b3 4f dd 84 fd 9f e4 7....x-.+../.|..=.....?...O.....
1e40 04 4d 6c 9b 19 20 80 a8 72 6e c6 28 a0 e1 80 07 23 64 e6 12 d4 86 e6 01 26 c2 7f 7f d9 19 f6 9f .Ml.....rn.(....#d......&.......
1e60 be c7 c0 cd c9 c6 a0 a9 28 8e 55 0f ec da 37 d0 fa 16 0e 60 62 06 cd 3c be ff f2 83 e1 c6 bd d7 ........(.U...7....`b..<........
1e80 0c 42 c0 84 0e 5a eb 02 da 7d 03 9a a6 07 ad 87 01 4d b3 f3 f2 72 30 48 89 0b 00 13 f6 4f f0 b6 .B...Z...}.......M...r0H.....O..
1ea0 b5 97 6f 3f 33 7c fe fa 1d 72 46 09 f8 78 34 46 68 c2 a6 da 40 25 d5 db cc 00 01 44 95 36 f3 28 ..o?3|...rF..x4Fh...@%.....D.6.(
1ec0 a0 f9 08 1e c3 97 ef 3f 19 d8 81 09 8f 93 83 1d bc 76 64 e7 b1 db e0 f5 29 92 a2 fc e0 25 05 d8 .......?.........vd.....)....%..
1ee0 13 f5 3f b0 5e 50 13 83 9d 9d 95 e1 27 30 71 df 7f fa 8e e1 e9 eb f7 60 7d bc 5c ec 0c 6c c0 b6 ..?.^P......'0q........`}.\..l..
1f00 35 ec 4a 0c d0 06 62 56 5e 66 f0 ce 1d 19 09 41 f0 f8 f7 4b 60 c7 11 bc 20 ec e7 2f f0 15 75 20 5.J...bV^f.....A...K`....../..u.
1f20 b5 b0 14 cd 48 a7 cc 4c 6c 9b 19 20 80 a8 72 0f e0 28 a0 3d 00 8d 24 fd 00 af fb f8 0f 4c 84 9c ....H..Ll.....r..(.=..$......L..
1f40 e0 66 c4 6e 60 82 06 75 e2 18 f1 ea 83 26 6a 46 46 f0 da 17 65 59 11 06 69 71 41 86 db 8f de 30 .f.n`..u.....&jFF...eY..iqA....0
1f60 dc 7c f8 1a dc 6e 06 b5 97 21 2b 0c 21 db e0 40 6c d0 de 4c 01 5e 2e 06 65 39 51 06 43 6d 39 06 .|...n...!+.!..@l..L.^..e9Q.Cm9.
1f80 15 79 71 06 71 60 db 9d 0b 98 d0 59 e0 db c5 68 3f 6b 00 ea 37 10 7b 3e 33 40 00 51 e5 1e c0 51 .yq.q`.....Y...h?k..7.{>3@.Q...Q
1fa0 40 1f 00 2a 1d 61 09 9b 9f 9b 93 e1 39 b0 8d 7b e2 f2 23 a2 8a 48 f0 32 d8 bf 90 db be 40 25 b5 @..*.a......9..{..#..H.2.....@%.
1fc0 a1 a6 2c 78 9b d9 8d 7b af c0 c7 30 80 b6 a2 81 12 26 13 b4 63 09 de c6 06 2d b1 41 0b a9 40 eb ..,x...{...0.....&..c....-.A..@.
1fe0 48 54 e5 c5 18 b4 94 25 19 a4 81 a5 b6 00 2f 37 78 c4 04 bc df f2 1f ed f6 41 b2 b3 31 13 7d a7 HT.....%....../7x........A..1.}.
2000 09 40 00 51 e5 ee ec 51 40 1f 00 5b ae 0a 8e 38 f0 4a 43 36 86 33 57 1e 83 0f 60 27 b6 93 86 58 .@.Q...Q@..[...8.JC6.3W...`'...X
2020 a4 f5 1f dc 94 d0 53 97 62 f8 0a 6c c2 5c bf fb 9c e1 d1 93 77 0c df 7e fc 82 8e 3d 23 a9 87 ea ......S.b..l.\......w..~...=#...
2040 01 d1 ec ec cc c0 92 9d 9f 41 55 41 9c 41 56 4a 08 98 c8 79 c1 6b b7 21 67 f7 fd a7 fa da 17 d0 .........AUA.AVJ...y.k.!g.......
2060 7a 71 62 ef 01 04 08 20 aa dc 9d 3d 0a e8 07 7e fd fe 8d 28 b5 c0 9d 38 46 86 c3 e7 1e 82 3b 6a zqb........=...~...(...8F.....;j
2080 a4 35 5b 20 25 2a e8 68 32 03 2d 39 06 19 49 21 86 87 cf de 31 5c be fd 8c e1 19 b0 9d cc 00 5d .5[.%*.h2.-9..I!....1\.........]
20a0 9a cb 88 a1 07 72 18 10 88 c3 07 6c 86 c8 cb 08 33 c8 49 89 30 88 0b 0b 80 3b 9c ac ac ac 90 8d .....r.....l....3.I.0....;......
20c0 0f 54 4c d4 c4 de 03 08 10 40 a3 6d e6 a1 56 3a 23 5d 4e 04 4a c8 a0 51 89 07 c0 44 f8 e8 c5 07 .TL......@.m..V:#]N.J..Q...D....
20e0 b2 46 1a 40 85 34 68 af 25 68 fd 87 81 a6 0c 78 e8 ee c6 dd 97 c0 f6 f4 2b f0 56 2f 46 3c ab 13 .F.@.4h.%h.....x........+.V/F<..
2100 ff 41 f7 66 82 dc 20 02 d4 2f 09 6c 8b 83 da d5 82 7c dc 60 b1 ff 0c d4 59 a5 48 6c 9b 19 20 80 .A.f...../.l.....|.`....Y.Hl....
2120 46 db cc 43 0c fc fb 8b 5a 02 83 36 f0 82 12 dc a9 2b 8f c8 3a 1e 18 79 38 0f 94 90 b5 55 a4 18 F..C....Z..6.....+..:..y8....U..
2140 14 80 a5 2d 68 05 df e5 5b 4f 19 5e bd f9 04 cf 38 f8 db e3 7f c1 a5 38 e8 54 56 31 61 3e f0 ae ...-h...[O.^....8......8.TV1a>..
2160 76 d0 6a 3f 50 53 88 81 c2 44 4d 6c 9b 19 20 80 46 db cc 43 2d 31 a3 1d d2 0e 4a 63 a0 04 0d 9a v.j?PS...DMl....F..C-1....Jc....
2180 a2 06 95 ce 14 99 0d 4c 70 a0 76 b9 a4 18 e8 bc 13 69 f0 a1 39 b7 ee bf 62 b8 fb e8 15 78 35 1f .......Lp.v......i..9...b....x5.
21a0 a1 76 39 64 87 0d a4 7d 0d 4a c4 a0 d1 10 21 7e 1e 06 41 7e 60 67 91 82 44 4d 6c 9b 19 20 80 46 .v9d...}.J....!~..A~`g..DMl....F
21c0 db cc 43 0c fc c5 b2 c3 06 bc d3 9b 91 09 d8 19 04 dd 7e 4b f9 e8 2f e8 a8 06 d0 e6 61 35 79 09 ..C...............~K../.....a5y.
21e0 60 d3 81 1f 98 51 3e 00 9b 1e 2f 18 de 7f fa 4a 74 53 06 bc e1 19 88 41 a7 3f 71 73 71 80 cf c7 `....Q>.../....JtS.....A.?qsq...
2200 16 e0 83 24 6a 46 12 8f 5c 20 b6 cd 0c 10 40 a3 6d e6 21 06 b0 95 6c b0 cd af 2f df 7d 65 f8 f4 ...$jF..\.....@.m.!...l.../.}e..
2220 f9 1b 75 32 0d f8 96 2f 46 06 69 71 01 06 35 05 49 86 6f 3f 7f 32 dc 06 96 d2 4f 5e bc 87 d4 08 ..u2.../F.iq..5.I.o?.2....O^....
2240 24 b8 17 84 41 8b a3 38 d8 59 19 78 80 09 9b 97 9b 93 81 83 95 85 ea 6d 66 80 00 1a 6d 33 0f 13 $...A..8.Y.x...........mf...m3..
2260 00 de e0 0b 4c e7 d7 ee bd a2 da cc dc 3f e8 0e 74 d0 3a 0e 6d 15 69 60 09 cb 0e 3e 86 e1 c6 bd ....L........?..t.:.m.i`...>....
2280 e7 e0 23 22 48 e9 70 22 12 35 23 03 3b 2b 2b f8 48 06 d0 4c 23 2b 11 07 bd 13 db 66 06 08 a0 d1 ..#"H.p".5#.;++.H..L#+.....f....
22a0 36 f3 30 01 b0 b1 e1 7b 4f de 52 75 56 0e 36 84 07 3a 3e 41 51 46 84 41 44 90 87 e1 f3 97 1f c0 6.0....{O.RuV.6..:>AQF.AD.......
22c0 b6 f4 0b 86 2f 5f 7f c1 db ed a4 98 f7 1f 7a f6 08 e8 08 09 0e 76 36 06 4e 20 66 c6 73 0b 19 b1 ..../_........z......v6.N.f.s...
22e0 6d 66 80 00 1a 6d 33 0f c5 12 18 0b 80 9e 48 00 de f0 0a da f8 4a fd 8e e7 7f f0 d4 32 68 f6 4f mf...m3.......H......J......2h.O
2300 56 4a 04 7c 6e df 9d 47 2f c1 2b fa c0 17 9c 92 b9 02 09 b2 13 1f 58 5a b3 b1 32 b0 b1 b0 60 dd VJ.|n..G/.+...........XZ..2...`.
2320 a8 4c 6c 9b 19 20 80 46 db cc 43 ad 04 c6 33 ee 0b 1b 6d b8 ff f8 2d 4d db eb 42 02 5c 0c b2 12 .Ll....F..C...3...m...-M..B.\...
2340 42 e0 8e e7 a3 67 ef 18 5e 83 d6 77 fc f9 43 f1 91 07 a0 44 0d 2a ad 41 19 96 91 8c 36 33 40 00 B....g..^..w..C....D.*.A....63@.
2360 8d b6 99 87 18 c0 37 3c 06 9b af 03 4d a2 d0 b6 13 ca c0 c0 0b 9a fd 93 16 01 b7 7b 9f bf fa c0 ......7<....M..............{....
2380 f0 f4 e5 7b f0 d1 63 94 26 68 46 58 87 96 11 91 a0 89 6d 33 03 04 d0 68 9b 79 a8 35 33 f0 9c 47 ...{..c.&hFX......m3...h.y.53..G
23a0 07 4b e8 a0 cb 8a 40 3b bd 69 9d a2 41 d3 e9 a0 f5 1d 7c 3c 5c 40 3b bf 33 3c 07 26 68 d0 d6 2e .K....@;.i..A.....|<\@;.3<.&h...
23c0 16 26 2a 9c 99 87 b4 db 85 d8 36 33 40 00 8d b6 99 87 53 62 46 6a 3c bf 04 56 fd b4 06 a0 46 07 .&*.......63@.....SbFj<..V....F.
23e0 e8 00 4b 09 31 7e 06 01 3e 2e f0 56 ac 17 af 3f 30 7c fc fa 1d 7a 4b 2e 75 00 b1 6d 66 80 00 1a ..K.1~..>..V...?0|...zK.u..mf...
2400 6d 33 0f 31 c0 c6 8c 7f 28 0b 16 a1 8f 5e 7c a4 8b 7b c0 6b 9f 59 98 18 c4 84 f8 c0 f7 cc 80 d6 m3.1....(....^|..{.k.Y..........
2420 73 bc 7a f3 91 e1 c3 a7 af e0 a6 02 35 00 b1 6d 66 80 00 1a 6d 33 0f ad 16 33 03 13 33 71 17 70 s.z.........5..mf...m3...3..3q.p
2440 be a5 c1 88 06 be 04 0d 6a e7 0a 09 f0 02 31 0f c3 9f 7f 7f 19 de 7f fc ca f0 e1 f3 57 aa 6c b3 ........j.....1.............W.l.
2460 22 b6 cd 0c 10 40 a3 6d e6 21 04 c0 97 0f 11 99 38 40 67 d1 a1 af e3 a0 75 93 03 94 a0 41 cd 0d "....@.m.!......8@g.....u....A..
2480 70 82 fe ff 0f 98 a0 bf 81 a7 c0 29 9d 62 27 b6 cd 0c 10 40 a3 6d e6 21 04 40 0b 7f 08 97 dd 90 p..........).b'....@.m.!.@......
24a0 84 03 5a 9a 09 3a 79 74 20 46 5b 40 b7 0a 08 f1 f1 40 ae d6 00 76 46 3f 81 4b 68 f2 13 34 b1 6d ..Z..:yt.F[@.....@...vF?.Kh..4.m
24c0 66 80 00 1a 6d 33 0f 21 00 9a 58 20 3e 51 31 80 4f ed 1f 90 c6 10 d0 72 d0 66 59 01 5e 4e f0 84 f...m3.!..X.>Q1.O......r.fY.^N..
24e0 0a f8 30 f5 af 3f c8 2e a1 89 6d 33 03 04 d0 68 9b 79 88 00 50 bb 94 8d 84 c5 39 20 f0 f9 db af ..0..?....m3...h.y..P.....9.....
2500 81 73 30 30 41 73 73 83 ae f0 e0 02 bb 1d 94 a0 41 47 17 d0 b2 cd 0c 10 40 a3 6d e6 a1 32 8a 01 .s00Ass.........AG......@.m..2..
2520 dd 22 45 52 62 fe f2 73 60 bb ab a0 04 cd c9 ce c0 07 2c a1 41 b7 2c 7c fb fe 13 8c 49 2d a1 89 ."ERb..s`.........,.A.,|....I-..
2540 6d 33 03 04 d0 68 9b 79 88 00 d0 31 01 a4 8c 7a 80 c0 d7 ef bf 06 dc dd 90 23 0e 40 07 cd b0 83 m3...h.y...1...z.........#.@....
2560 3b 89 a0 cd b3 df 7f fe 24 29 63 12 db 66 06 08 a0 d1 36 f3 90 68 63 30 80 2f 33 22 15 7c f9 fe ;.......$)c..f....6..hc0./3".|..
2580 73 50 38 9f 11 da e4 e0 06 26 6a d0 b2 52 50 82 06 9d 01 42 6c 82 26 b6 cd 0c 10 40 a3 6d e6 21 sP8......&j..RP....Bl.&....@.m.!
25a0 31 8a c1 44 d6 8c da a7 af 83 a7 10 02 2d d9 00 ad 61 e6 02 76 62 c1 77 2d 82 4e 48 02 6f c5 a2 1..D.........-...a..vb.w-.NH.o..
25c0 5e 9b 19 20 80 46 db cc 43 00 70 71 92 57 98 80 0e cd a7 e6 b4 32 a5 1d 58 f0 95 79 5c ec e0 b5 ^....F..C.pq.W.......2..X..y\...
25e0 d1 a0 31 f0 1f c0 04 0d da 73 48 28 3d 13 db 66 06 08 a0 d1 36 f3 a0 07 90 4e 14 99 03 0a c0 f6 ..1......sH(=..f....6....N......
2600 e9 af 41 e5 1b d0 c4 0a 27 3b 3b 78 cc 1c 74 6c d8 0f d0 45 a1 04 6e 0e 23 b6 cd 0c 10 40 a3 6d ..A.....';;x..tl...E..n.#....@.m
2620 e6 c1 5e 2a 03 3b 7e 94 dc dc 0a 5a 41 37 a8 9a ff d0 a9 6f d0 0e 13 d0 96 29 d0 11 60 3f 7f ff ..^*.;~....ZA7.....o.....)..`?..
2640 a1 4a 9b 19 20 80 46 db cc 83 b9 df 07 8c 79 d0 31 b6 94 00 4a ce d2 a0 25 60 66 84 6c 70 65 82 .J....F.......y.1...J...%`f.lpe.
2660 de 02 f0 0b 4f 82 26 b6 cd 0c 10 40 a3 6d e6 41 0c d8 58 59 19 38 d9 58 29 32 63 30 5f 57 02 de ....O.&....@.m.A..XY.8.X)2c0_W..
2680 b1 cd 06 69 23 80 0e a1 01 b5 9f 29 69 33 03 04 d0 68 9b 79 d0 96 ca a0 73 95 39 87 fd bd d9 a0 ...i#......)i3...h.y....s.9.....
26a0 26 14 78 66 13 74 93 2d f4 92 54 72 db cc 00 01 34 da 66 1e b4 91 cc c8 c0 cb 33 32 0a 11 d0 be &.xf.t.-..Tr....4.f.......32....
26c0 3f 50 fb f9 3f 03 e4 2c 69 f4 53 9f 89 6d 33 03 04 d0 68 9b 79 90 b6 95 41 a5 32 28 41 8f 14 00 ?P..?..,i.S..m3...h.y...A.2(A...
26e0 ba d3 10 b4 a1 15 76 84 2e 39 6d 66 80 00 1a 6d 33 0f 52 00 3a 9f ed ff 08 bb 9a 8b 15 b4 2b 1b ......v..9mf...m3.R.:.........+.
2700 d8 ae 82 1c 5e fe 9f e4 36 33 40 00 8d b6 99 07 61 a9 0c ba cc 92 98 93 7e 86 1b 00 1f 0c 03 9d ....^...63@.....a.......~.......
2720 e4 f9 87 74 c5 04 b1 6d 66 80 00 1a 6d 33 0f b6 08 05 42 51 41 9e 11 57 2a 23 27 68 d8 ac 25 ac ...t...mf...m3....BQA..W*#'h..%.
2740 74 26 b6 cd 0c 10 40 a3 6d e6 41 56 2a 83 d6 ff b2 92 b8 6e 19 af 99 43 30 1c 90 af a1 20 a5 cd t&....@.m.AV*......n...C0.......
2760 0c 10 40 a3 6d e6 c1 14 89 c0 12 09 74 48 37 35 4b 65 1e 2e b6 a1 19 16 a0 7d e6 24 9e 9b 01 10 ..@.m.......tH75Ke.......}.$....
2780 40 a3 6d e6 41 54 2a 83 36 82 72 b2 b3 50 d5 5c 1e ce a1 1b 77 4c 24 b6 99 01 02 68 b4 cd 3c 58 @.m.AT*.6.r..P.\....wL$....h..<X
27a0 7a f2 2c 2c 0c 62 a0 52 99 ca 19 64 38 4c ba 10 db 66 06 08 a0 d1 36 f3 20 00 a0 9e 3b a8 79 c1 z.,,.b.R...d8L...f....6.....;.y.
27c0 c6 c6 42 d5 26 06 3b d8 bc a1 df 93 24 b6 cd 0c 10 40 a3 6d e6 41 d0 bc e0 60 65 05 df d6 44 bd ..B.&.;.....$....@.m.A...`e...D.
27e0 84 07 31 07 b4 43 7a 38 00 62 db cc 00 01 34 da 66 1e 04 89 59 42 94 9f 26 e3 ca 6c 6c 43 7f ac ..1..Cz8.b....4.f...YB..&..llC..
2800 fa 3f 09 6d 66 80 00 1a 6d 33 0f 64 f3 e2 df 3f 06 5e 1e 4e 60 13 83 87 26 cd 01 72 f6 0d 0e 36 .?.mf...m3.d...?.^.N`...&..r...6
2820 c0 42 c2 dd d9 00 01 34 da 66 1e c8 de 3a 30 a2 40 67 1c 33 b3 d0 66 6b 13 2f d7 d0 8f 37 5e 6e .B.....4.f...:0.@g.3..fk./...7^n
2840 36 a2 db cc 00 01 34 da 66 1e c0 52 59 52 54 00 7e ea 0f 2d 00 17 c7 d0 2f 99 99 a1 25 33 31 e9 6.....4.f..RYRT.~..-..../...%31.
2860 13 20 80 46 db cc 03 d4 4e 06 9d 25 21 2b 29 c8 f0 ef 3f 75 0f 37 44 5e 3e 29 c0 3b 3c e2 8d d8 ...F....N..%!+)...?u.7D^>).;<...
2880 36 33 40 00 8d b6 99 07 00 80 d6 1f 28 00 9b 17 e0 fb a5 69 34 72 06 2a ed 41 27 72 0e 97 d1 0c 63@.........(......i4r.*.A'r....
28a0 62 da cc 00 01 34 da 66 1e a0 d1 0b 29 20 06 15 ca 8c e0 75 08 8c f0 db a2 50 30 03 f9 87 c1 b2 b....4.f....)......u.....P0.....
28c0 b3 b3 80 67 13 11 e6 53 0b 33 e0 75 2b 2d e6 68 88 6d 33 03 04 60 ef 6c 5a 00 04 61 30 ec 6b 42 ...g...S.3.u+-.h.m3..`.lZ..a0.kB
28e0 87 a2 4b 04 9d ba f4 ff ff e2 96 9b 73 7d d2 a9 63 82 0c 71 8e 09 0f 53 51 5c ba ed 99 93 11 9f ..K.........s}..c..q...SQ\......
2900 ce ed bf 7c 53 fa ae 0d eb 32 69 22 9b d8 20 03 2d 0f d2 45 c6 90 45 20 b0 01 02 4d f0 0e 82 7e ...|S....2i"....-..E..E....M...~
2920 a0 42 0a 12 1f c0 31 6c 70 06 a8 06 fa 79 1c f4 ad 87 9c 2d 49 6f 02 4b 82 ca 20 36 5c 53 2a 99 .B....1lp....y.....-Io.K...6\S*.
2940 99 92 03 78 5f 28 e0 06 8b 26 54 95 11 cb 28 b3 e3 fe 88 af f2 37 46 9e 44 b4 e1 ec fd ec a4 ef ...x_(...&T...(......7F.D.......
2960 c0 57 ff d9 fd e7 97 c8 7c e5 f1 89 cf 4d 00 72 ae 76 05 61 18 06 f6 63 0a a2 88 bf 7c ff 07 d3 .W......|....M.r.v.a...c....|...
2980 7f be c2 10 64 49 bc bb 76 0e a7 3e 81 83 2d 1c 49 9a b4 5c 4b ca b6 0e eb 9a f9 97 e4 75 3e 6e ....dI..v..>..-.I..\K........u>n
29a0 5b df 4b 85 34 74 a8 67 c0 e3 fe b5 cc 20 31 e9 39 82 de 5e ae cf 18 fa fc 61 ff 7f f8 74 d8 a5 [.K.4t.g......1.9..^.....a...t..
29c0 c7 38 a6 fb 64 aa 6f dd f8 2c 18 ae 86 c3 79 c4 60 d1 f8 92 04 15 38 47 81 84 9e 84 e4 bd 01 a1 .8..d.o..,....y.`.....8G........
29e0 dc bb 3d ac 72 4d 61 26 82 85 15 11 6e 5f 3d 5d ae 37 b5 c7 f6 69 2f 3e be f0 1c af 13 14 fe 51 ..=.rMa&....n_=].7...i/>.......Q
2a00 5a 3e d8 76 81 f8 8b de 99 bf 4d 9a 6c 2a f1 81 fd 0d 67 fe 06 2e 51 d5 1e 08 0d 3c 30 5e 67 74 Z>.v......M.l*....g...Q....<0^gt
2a20 24 83 32 9a 0f e3 cb b1 4d b0 48 83 e2 f1 5b e6 25 5e eb ef 7a 05 fe 26 55 33 a3 d4 78 0a 40 db $.2.....M.H...[.%^..z..&U3..x.@.
2a40 b5 e4 20 08 03 d1 29 5f 37 c8 42 56 ba e0 2e 6e f0 5c de c1 db a9 04 42 dc 2a c4 10 03 da 3a d3 ......)_7.BV...n.\.....B.*....:.
2a60 29 1f 31 26 6e e8 86 d2 36 4c e7 f3 5e 5b 02 ad f3 37 02 30 1d f6 5b 28 8a 0b c4 71 ac 3b de b4 ).1&n...6L..^[...7.0..[(...q.;..
2a80 72 ba fa d0 bf be e8 6d 1e 94 29 e8 11 6a f1 a7 7d 16 4a 95 2e 16 a0 72 ca 65 07 60 de 52 a2 77 r......m..)..j..}.J....r.e.`.R.w
2aa0 be a5 18 b9 ac 8a 6d 78 81 da c9 2f 06 1a f3 12 e9 ae b4 e1 10 38 14 12 d2 36 6d 85 61 00 aa 71 ......mx.../.........8...6m.a..q
2ac0 34 7b 00 f6 e3 45 17 25 4d fd e8 49 6a c2 75 e6 56 62 00 66 59 0e ae e3 1a 94 32 cf d4 8f fa e3 4{...E.%M..Ij.u.Vb.fY.....2.....
2ae0 3d 31 e5 e9 b8 86 cd 66 0d 55 55 81 e7 f9 ec 38 c2 b7 2d 06 56 9d 21 5d 6f 37 08 82 00 6c 94 2f =1.....f.UU....8..-.V.!]o7...l./
2b00 9e 6c 3e b2 9b 80 f9 76 36 ba 23 38 a3 68 05 4d d3 42 59 96 5a 76 e7 8f 85 ef 43 18 2e 21 cd 53 .l>....v6.#8.h.M.BY.Zv....C..!.S
2b20 5e ec 92 6d 46 7e a3 51 49 f4 79 3e b9 95 40 74 3c 9d 21 49 76 c3 9c d9 f9 1d 9f dd 9c f9 2d 00 ^..mF~.QI.y>..@t<.!Iv.........-.
2b40 23 57 d7 d3 34 14 86 1f d7 76 9b fd 80 6e 93 75 0d 32 a2 89 b2 66 16 e2 ea b5 ff c2 3b 93 5d ca #W..4....v...n.u.2...f......;.].
2b60 0f 30 fc 06 fd 23 e8 45 13 7f c0 12 13 f5 02 88 3a 01 13 83 19 10 b6 86 4c d8 4e b7 32 d4 6e 14 .0...#.E........:.......L.N.2.n.
2b80 ea bb 33 09 5e 68 e2 45 ef fa e6 ed fb 3c cf fb 9c 37 27 3d 47 fc d7 cc fc 37 67 ce e8 32 4e 02 ..3.^h.E.....<...7'=G....7g..2N.
2ba0 09 47 ed 03 ac ae be c4 ca ca 53 74 bb 5d be 5f 3a 59 6a 12 30 4d 73 42 3c 26 cb e6 97 d6 37 a8 .G........St.]._:Yj.0MsB<&....7.
2bc0 aa 8c db ba c6 ab bb 40 0a 5b 5f d7 d0 0d f7 10 8b 49 08 be 8a 9c 56 c0 f0 6c 88 b2 55 86 a2 2a .......@.[_......I....V..l..U..*
2be0 dc f1 03 d6 41 9f 1d e3 86 79 13 aa 36 c5 bb 39 11 5f 11 b2 b7 7b 40 e0 fd 24 b0 12 b8 4e 55 cc ....A....y..6..9._...{@..$...NU.
2c00 ce df a1 9a 04 f4 28 66 7f e7 23 52 f2 2c dc 57 2e 96 9f 2c e3 d0 6b 22 ad 29 58 b0 6d 48 17 11 ......(f..#R.,.W...,..k".)X.mH..
2c20 da ed 1d a4 85 39 02 64 84 94 6e 40 16 43 08 91 4c 79 23 78 9e c7 1b 35 22 e7 39 27 77 38 27 01 .....9.d..n@.C..Ly#x...5".9'w8'.
2c40 9f 9e 7e 87 e3 38 60 2c c0 e6 d6 06 16 17 6d dc 2a 2d 61 ff e8 07 99 4d 8c d6 ee 6b d4 6a 35 1e ..~..8`,......m.*-a....M...k.j5.
2c60 97 94 92 18 8e 46 b0 4a 25 3c a0 18 a7 52 c1 9b b7 ef 70 af 6c c3 75 5d 54 ab 55 9a 67 25 0c 06 .....F.J%<...R....p.l.u]T.U.g%..
2c80 03 4e 9e 94 94 90 cb e6 50 af d7 61 18 f4 2d b2 cc 71 ec f7 7a c8 64 74 f8 7e 0f d9 5c 16 3e f3 .N......P..a..-..q..z.dt.~..\.>.
2ca0 61 59 16 27 7b fb f3 36 f4 69 9d 44 32 cd df 1f 51 3e 45 91 b9 40 3e 7d 78 8f 25 6b 01 ed 8e 87 aY.'{..6.i.D2...Q>E..@>}x.%k....
2cc0 e7 2f 9e e1 f1 c3 47 b8 5b b4 71 48 b8 08 a2 88 f9 e2 1c df 16 1c 3f a2 24 e1 8c 04 c8 7c 06 23 ./....G.[.qH..........?.$....|.#
2ce0 6f 20 8a 22 2e c6 b1 f8 44 6a 58 c6 18 66 f2 33 08 fa 01 8e 3b 1d 8a 2d f2 e6 0c c3 10 05 b3 c0 o.."....DjX..f.3....;..-........
2d00 af 42 10 04 11 8d 46 03 53 5a 0a eb 1b 9b 70 ee 57 88 ef df 47 be ae 8d ef c9 93 d0 6a 35 11 f8 .B....F.SZ....p.W...G.......j5..
2d20 4d ca 91 9f 8c 4f b8 fa f1 7e 8c d9 9f 46 70 29 e6 38 3e a1 1a d3 ff e5 cc 97 02 ff 25 00 25 d7 M....O...~...Fp).8>.........%.%.
2d40 d7 d3 34 14 c5 7f 64 50 56 8b 59 66 61 5b 74 03 17 15 30 b2 92 8c 12 8d 40 e4 c1 c4 57 9f d4 7d ..4...dPV.Yfa[t...0.....@...W..}
2d60 00 c5 07 f9 42 fa 05 24 31 21 c1 68 52 03 fe 89 98 39 60 d1 8c 6e cb 42 c6 e8 14 d6 6e 74 4e 02 ....B..$1!.hR....9`..n.B....ntN.
2d80 6b 95 0d 3c f7 a2 be f3 70 93 e6 26 3d bd f7 9c df 9f 93 3e 9c 53 f5 cc cc ee 98 aa f5 47 fa f1 k..<....p..&=......>.S.......G..
2da0 20 71 0f 46 a9 88 0b 91 08 25 37 8f 5b 93 37 61 d5 ec ff 8c eb 24 16 56 7f ec 21 6f b7 90 7f b7 .q.F.....%7.[.7a.....$.V..!o....
2dc0 8c 3b aa 82 f8 e0 79 b0 31 09 3f 0f d2 68 78 1a d8 28 59 d0 e6 32 08 36 8e 70 3f f1 08 61 06 5c .;....y.1.?..hx..(Y..2.6.p?..a.\
2de0 a9 87 00 e7 41 55 ff 0a a1 69 c1 28 66 21 c9 22 ce f8 7d 90 fa 14 f4 f8 ce 71 8b b2 ab 35 4c 4d ....AU...i.(f!."..}......q...5LM
2e00 4f 21 f5 fe 15 e2 a3 bd 28 6c 7d 41 60 e0 3a 58 9f 53 ae 3c 45 dd f2 23 7e f1 06 8c 95 b7 88 0f O!......(l}A`.:X.S.<E..#~.......
2e20 2b 30 db 44 a3 36 23 59 17 29 96 0f b6 53 27 2b 2e e2 d9 c2 1e 6e 8f a9 18 1f 19 e0 ea c5 12 bb +0.D.6#Y.)...S'+.....n..........
2e40 b4 b8 88 42 61 03 6b ab 2b 04 b6 6e 3c 99 9d fd 5b 9c 0e 04 a8 e8 aa 3a 8e 37 ab 45 2c 2c 6f d2 ...Ba.k.+..n<...[......:.7.E,,o.
2e60 3d db 18 3e db e0 ef 49 74 f6 c9 89 09 68 9a 76 22 e8 b4 0e 7f b7 d0 e5 11 d0 eb 0f 52 74 01 df =..>...It....h.v"...........Rt..
2e80 ca db 04 80 63 72 b8 ef 27 bf e8 44 91 83 3f 12 0e a3 75 d8 82 59 31 79 0e 19 91 9c a6 4b 60 ae ....cr..'..D..?...u..Y1y.....K`.
2ea0 c3 75 5c 02 5a 1b f6 ae cd 55 cf a5 fd 9d 83 0a 52 9f 53 bc 2f 56 14 85 8b 08 7b 76 29 06 ab d7 .u\.Z....U......R.S./V....{v)...
2ec0 8b f9 e7 b8 1a 1c 82 55 b6 d8 80 2f 72 45 0f 8f 9d cb e8 44 ce 7d 84 42 21 ec 12 58 45 22 83 eb .......U.../rE.....D.}.B!..XE"..
2ee0 3a 90 65 19 f9 6c 0e 63 aa 8a 74 7a 0d b1 91 18 91 c9 0f 73 bb 02 d3 34 e1 f5 7a f1 e9 c3 47 c4 :.e..l.c..tz.......s...4..z...G.
2f00 e8 5b 59 5d 47 34 1a 85 d0 2d 70 c2 b2 f3 fd 73 c9 5f 4d 07 7a 72 09 52 e8 12 6a 9b 19 4c df 4d .[Y]G4...-p....s._M.zr.R..j..L.M
2f20 70 a7 3b 3a ee c4 cb d7 1a ca c6 0e 46 95 6b 48 26 53 98 79 fc 90 84 4a 44 69 cb 40 a0 4f c6 fa p.;:........F.kH&S.y...JDi.@.O..
2f40 7a 0e 57 06 2f a3 56 b5 b9 82 77 9c b2 67 fe 23 00 25 e7 f7 d3 34 14 47 f1 c3 06 76 83 31 98 e9 z.W./.V...w..g.#.%...4.G...v.1..
2f60 80 51 c5 00 f3 01 41 16 1f 7c d1 a8 89 4e 12 e3 83 af 26 3e f8 ee 5f e5 bf e0 8b ff 81 2e 40 16 .Q....A..|...N....&>.._.......@.
2f80 05 e7 50 83 93 39 66 d6 35 a4 6b b7 5e 68 f7 43 cf f7 ce 3f 40 1f 9a 36 cd bd df a4 bd e7 9e f3 ..P..9f.5.k.^h.C...?@..6........
2fa0 b9 69 6e ff 8b 99 f7 cb 7b 1c b0 19 24 13 d3 c8 2d 5d 81 d7 3e d5 1b 2f 1f 3f ba 87 f7 ef 76 61 .in.....{...$...-]..>../.?....va
2fc0 66 17 c4 bf 75 5b df ef a2 df 1f 22 9b 36 70 1c 79 68 b5 4f e0 cc 45 58 b2 d6 f8 f2 62 70 26 02 f...u[.....".6p.yh.O..EX....bp&.
2fe0 0e c0 22 92 b9 39 ac 4e f7 35 93 d1 2f 34 27 5d c4 39 88 4e 0b b3 5e 80 58 d6 84 fa fe 13 3e 01 .."..9.N.5../4'].9.N..^.X.....>.
3000 6c 32 3f 85 cd 5b 77 51 af d5 70 73 f3 06 1c ba c8 e0 a8 0c a7 d3 43 c7 ee 62 f1 c5 16 2e 67 96 l2?..[wQ..ps..........C..b....g.
3020 11 9c 2d 63 fd ba 8d 67 0f 8a 88 c2 34 be fd 6a a2 e1 9e c1 a2 b1 9f 2b ba 31 93 a2 f4 35 c0 fd ..-c...g....4..j.......+.1...5..
3040 bc 09 6f 64 e1 f5 9b b7 d8 2e bc c2 24 dd 6a 48 96 fc 58 a9 a2 f1 e3 33 5e 3e 7f 88 cc 6c 02 83 ..od........$.jH..X....3^>...l..
3060 5e 7d bc 06 98 18 2f 85 6c db 46 36 a6 70 67 35 2e 74 09 e5 c9 46 4c f6 1d 46 f8 54 39 d0 13 4a ^}..../.l.F6.pg5.t...FL..F.T9..J
3080 0e 49 a6 9e ea c1 57 1e 2a b5 2a b1 26 44 ce 9a 67 8d 29 98 0b a6 76 21 11 ed f8 e3 40 9c 38 72 .I....W.*.*.&D..g.)...v!....@.8r
30a0 09 c9 99 a4 be 2f 82 33 18 d1 09 f9 d1 20 cf 61 18 22 1a 44 3a 52 a5 4d 2a 95 a2 63 67 b4 f3 89 ...../.3.......a.".D:R.M*..cg...
30c0 53 b6 da 2d 7d 1d a8 00 ea 5c f1 fd dc 86 dd b4 11 11 e5 d2 74 70 45 91 6d 6c 6d e8 3a 52 5f 6a S..-}....\..........tpE.mlm.:R_j
30e0 e6 7f e7 e1 33 21 a4 bf 08 57 b0 48 92 a2 b8 53 84 21 68 f4 17 fb 2e 98 9a 92 12 d6 8a c5 24 4c ....3!...W.H...S.!h...........$L
3100 60 9e c6 22 ae 2e 82 6b 33 41 3d df e3 73 e5 34 c6 35 ea 27 48 45 4d ec 95 5d ac 8d 4e d1 e9 b8 `.."...k3A=..s.4.5.'HEM..]..N...
3120 d0 bc 13 1b a1 50 d8 c6 51 95 06 c8 89 6b 18 87 4c 27 1f 07 87 1f e0 ba 5d ec 07 21 c5 5c c1 fa .....P..Q....k..L'......]..!.\..
3140 97 63 b4 29 e6 27 4f 77 50 da 2d e1 ea b5 95 7f 66 e6 3f 02 50 6a f6 3c 09 43 51 18 7e d1 0a 04 .c.).'OwP.-.....f.?.Pj.<.CQ.~...
3160 a2 62 c5 ad 88 4c 0e 3a a0 26 38 30 d8 41 31 6c 8e fe 01 27 7f 80 7f 83 e8 e2 e8 c2 ec a6 83 63 .b...L.:.&80.A1l...'...........c
3180 13 98 88 1f 31 36 8a 1a 42 a0 60 51 e4 53 52 af a0 e7 de 12 03 4e d2 a4 4b 6f 6e 72 9b f3 9e 73 ....16..B.`Q.SR......N..Konr...s
31a0 9e f7 b4 23 31 b3 a6 69 50 55 55 90 e7 6b 35 0f 8f a3 05 66 d5 a8 ba 9e 60 7b 77 0f e9 54 1a ca ...#1..iPUU..k5....f....`{w..T..
31c0 bc 22 aa 4e 9b 5a 73 34 b2 8a 15 62 d3 60 55 86 f1 d1 14 ad 4a 51 82 84 ca 3e 58 ed 1c cc da 1b .".N.Zs4...b.`U.....JQ...>X.....
31e0 fc 12 b9 6e ca 4e 36 f0 15 cc f9 29 a1 67 76 28 59 4a 08 af 45 71 79 cb 50 ba cb 60 31 b4 2c 2a ...n.N6....).gv(YJ..Eqy.P..`1.,*
3200 64 c5 ac d2 e1 c9 84 48 3d cc 76 72 f0 7b fd 68 4d f6 e8 11 89 ab df b6 d8 b8 85 86 fb 1d d3 73 d......H=.vr.{.hM..............s
3220 53 a8 3f 66 d1 30 2d 38 c9 1c 7d 75 19 ca f5 06 32 79 0b 85 9a 85 6e 39 85 6e bd 43 82 6c 52 ab S.?f.0-8..}u....2y....n9.n.C.lR.
3240 f4 8a 56 fb 7c ff 80 83 fd 1d a8 1b d4 09 e8 59 f6 e9 85 aa 5a 09 2e af 47 04 3e 91 48 d8 e6 b7 ..V.|..........Y....Z...G.>.H...
3260 cf d4 2e 0a ac 3c 23 8b e0 f3 75 59 96 45 c5 e5 17 6f d5 61 c2 92 eb 9b 2b 84 16 28 91 2d ce 8d .....<#...uY.E...o.a....+..(.-..
3280 c3 d3 21 8e 09 5c c8 5c 68 82 7b 09 31 84 30 89 45 c5 44 42 b2 7f e5 e4 02 b7 c7 6e 2e b1 87 31 ..!..\.\h.{.1.0.E.DB.......n...1
32a0 26 6e be ce b1 81 ef e7 c9 91 4c 26 45 52 1a 15 83 e2 c3 90 37 0a bf 66 eb af c9 19 e4 f7 ef 21 &n........L&ER......7..f.......!
32c0 37 f2 7f ae f7 51 b2 44 d6 23 fd 6d 1c 5f dc 88 6d 6d a2 a8 9d 92 86 6d d3 47 c7 c1 d1 e1 31 e2 7....Q.D.#.m._..mm.....m.G....1.
32e0 f1 18 15 3a 1b 5b f8 94 65 89 8a d2 98 63 02 e7 67 17 02 63 02 01 05 45 4a 42 fe 3e ba ae 8f c4 ...:.[..e....c..g..c...EJB.>....
3300 cc 3f 02 50 76 2e 2f 09 44 51 18 ff d0 24 c7 d0 34 b2 85 13 4a 1a 65 50 61 10 41 14 45 1b 5b ba .?.Pv./.DQ...$..4...J.ePa.A.E.[.
3320 6c 2b b5 68 d3 c6 3f ac 4d 9b 0a 5a 47 d8 03 17 51 90 9a 93 4e 21 51 8e 69 33 23 8e 3d ce 39 46 l+.h..?.M..ZG...Q...N!Q.i3#.=.9F
3340 ab 36 dd d5 30 30 f7 c1 fd ee 77 7e e7 32 73 e7 5f cc 9c cb e5 28 01 7a 90 ce 05 86 c7 a0 df b7 .6..00....w~.2s._....(.z........
3360 51 ac 16 a0 f8 43 38 3e 3a a1 10 31 d5 17 23 4d 4c a1 54 20 c1 b6 30 1e 52 60 54 4b 70 14 15 d1 Q....C8>:..1..#ML.T...0.R`TKp...
3380 d4 8c 00 bf d9 b2 51 bc d2 60 93 3b 2f 4d ac 10 8b c7 d0 31 6d 09 65 5c 2c bd 08 2f a1 cc e4 ca ......Q..`.;/M.....1m.e\,../....
33a0 2c ce 2e cf b1 49 9c 79 b0 ef a6 90 de e7 29 4e 36 98 15 8d 97 3a c2 b3 f3 b0 cc 1b 3c bf f5 10 ,....I.y......)N6....:......<...
33c0 a2 7e 99 a6 81 31 f5 8b 38 31 48 99 75 1b 5a ed 11 c9 e4 32 1c e8 70 28 b3 f4 f8 7d 18 6a 2a d8 .~...1..81H.u.Z....2..p(...}.j*.
33e0 88 d4 91 bf 7e 42 60 b0 8b b9 c5 09 9a 74 9b 5f 04 10 31 ef ee ed 60 32 ee 83 cb 31 d1 6b 77 71 ....~B`......t._..1...`2...1.kwq
3400 9a bf 43 66 2b 8d 57 a3 9f 1f bc 92 cb 87 46 82 18 52 7c d0 1f 9f 28 44 13 d3 1a 0d 11 1e 87 df ..Cf+.W.......F..R|...(D........
3420 72 b9 2c fc cb 25 1e 8f c3 24 17 af d7 5f 10 fb 1a 45 cb 78 43 90 9e 65 77 e7 f1 b2 e8 59 98 6c r.,..%...$..._...E.xC..ew....Y.l
3440 00 1c ea 59 fc 5c 0f 0b 39 4a 93 cb 42 65 d4 90 2f 97 e9 da b2 2c 61 e5 4a a5 82 44 22 01 4d d3 ...Y.\..9J..Be../....,a.J..D".M.
3460 10 89 44 e4 7e 2a 95 12 e6 55 55 55 9c f2 d6 be 81 8b 44 e4 6b 04 30 47 f9 02 d7 c1 ce cd 5c cf ..D.~*...UUU......D.k.0G......\.
3480 e3 e8 d1 42 f8 24 f1 73 7b 5e c5 4b 2e da 94 c8 2b ff 1b a4 7b 5d e7 67 91 fd 2c 9c 8f de df e7 ...B.$.s{^.K....+...{].g..,.....
34a0 c1 85 47 c3 bf 49 9f 5f f1 a0 44 d8 e0 6e 1c a2 a9 d7 b0 30 e0 c6 7b c7 23 1b 00 72 26 06 89 94 ..G..I._..D..n.....0..{.#..r&...
34c0 a3 c4 a7 ec d6 b8 50 d3 aa 98 4e 4e 21 93 49 13 73 5f 60 6d 7d 95 da ed c8 22 cb 66 b7 ff c5 cc ......P...NN!.I.s_`m}....".f....
34e0 df 02 70 76 2d 2d 09 44 61 f4 a8 93 66 da c3 32 2a 69 91 85 81 86 cb 28 37 2e 42 12 c2 a2 82 68 ..pv--.Da...f..2*i.....(7.B....h
3500 d1 0f 09 da d5 ff c9 75 9b a0 45 8b 56 16 3e 88 22 aa 45 6e a2 b0 d0 5e 9a d9 39 77 2c 68 55 b4 .......u..E.V.>.".En...^..9w,hU.
3520 18 ee 0c dc c7 77 67 ce fd ee 39 07 66 e6 9f 3e b3 5e f1 09 a0 1e 1a 25 6f aa 50 04 85 d0 3d d0 .....wg...9.f..>.^.....%o.P...=.
3540 cb 1b 18 b2 2d 3c 12 fd 4c 26 63 38 5a ae 58 40 ab 73 14 89 64 8a e2 8e 22 85 bc 7b 21 b9 8e b3 ....-<..L&c8Z.X@.s..d..."..{!...
3560 5c d9 28 fe 21 ff 04 1f ec 3d d6 d6 56 08 d2 a0 69 ef 1d a3 80 39 ca e1 81 c2 09 91 24 f2 a5 53 \.(.!....=..V...i....9......$..S
3580 3c 90 97 39 18 93 04 43 38 3c 86 dd dd 2c 16 57 57 61 bd 71 25 9f ec e1 b5 7a cd be 9b f0 75 05 <..9...C8<...,.WWa.q%....z....u.
35a0 30 3d b3 89 7c 31 cb bd bb 13 f5 a6 07 35 37 05 59 34 0e 67 db 34 ed 1f 0c 20 d1 df 83 61 1e 96 0=..|1.......57.Y4.g.4.......a..
35c0 2b 8a 3e 3f eb bd 3d 9b b1 05 a8 7a 63 9c 9c ba 81 bb f3 5b 86 fb 82 48 3c 69 db 44 8e d6 b7 3f +.>?..=....zc......[...H<i.D...?
35e0 2b 6e af 78 6f ca 65 9b 1f 33 30 81 4c a0 b9 24 0d fa ca 82 ca 96 de 0e 0b ae 57 0b 2b 4b 69 1c +n.xo.e..30.L..$..........W.+Ki.
3600 ee 17 a8 05 dc 26 83 2b c3 da 82 ab d7 16 83 cc c6 5a 4c ea 4b 42 4b e0 15 88 54 57 a0 17 d8 34 .....&.+.........ZL.KBK...TW...4
3620 a6 32 b4 ae 55 5f a5 80 ac 73 65 65 8d 67 5c 01 2e fc c7 6a 05 1b a9 65 1c 1f 14 cc 57 83 d4 af .2..U_...see.g\....j...e....W...
3640 bf cb 67 00 ab 36 16 77 b2 26 77 2a b5 11 b0 15 b4 d5 06 a5 c6 36 ff 1d 74 3a 8d 27 2e 97 ea e9 ..g..6.w.&w*.........6..t:.'....
3660 bd f1 6b 96 0e 86 23 88 c4 76 48 a9 3e 8c 95 e2 f0 10 96 b5 2b 42 f3 1d db 3b 5b 66 7e 9a 77 6c ..k...#..vH.>.......+B...;[f~.wl
3680 6a d2 2c 94 91 50 a0 bd 19 b8 08 e4 59 96 4d cc a7 e7 50 2a 5d fc fc 77 f6 1f 38 f3 a7 00 62 fc j.,..P......Y.M...P*]..w..8...b.
36a0 0f ed 4a 1e 3b 7e 0c 92 a0 19 7e 60 a5 a7 ce 9e ca 50 5b 57 cb 70 eb d6 2d 70 7b 0d d1 03 85 0e ..J.;~....~`.....P[W.p..-p{.....
36c0 b4 30 fe 85 0f b5 40 2a 29 26 48 5b 09 3c 48 c6 0c 19 2a fb 0f 19 26 82 eb fc 8f bc 9a 80 19 21 .0....@*)&H[.<H...*...&........!
36e0 0e ca 97 40 f3 7f 01 db 0c cc 90 81 48 48 af 17 3e aa cf 0c ae ce 20 93 01 cc e0 ca 92 09 58 f6 ...@........HH..>.............X.
3700 fe 01 e6 7e 90 7a f0 a8 07 e3 6f d0 c8 26 50 9c 03 d2 a0 fa 8f 7d 5a 19 3c 04 08 f7 cb 7f 78 05 ...~.z....o..&P......}Z.<.....x.
3720 fb 97 11 d2 10 63 82 f6 ca 41 43 88 3f bf 7f 67 38 7a f4 28 c3 de bd fb 50 aa 63 5e 60 78 7c f9 .....c...AC.?..g8z.(....P.c^`x|.
3740 fa 05 65 68 4e 4d 4d 9d c1 dd d5 1d dc 64 00 9d 72 79 e7 ce 4d f0 ce 0f 71 49 69 60 89 ce 83 77 ..ehNMM......d..ry..M...qIi`...w
3760 86 10 34 42 04 4a a4 a0 70 26 15 80 f4 82 3a 84 a0 a6 ce 85 1b 17 18 c4 80 7d 1a 66 06 1e a0 bd ..4B.J..p&....:..........}.f....
3780 92 b8 26 be 09 cc bd 13 de e1 cd c6 ca 0e 2e 49 6f dc b8 c1 20 23 2b cb c0 0e ac 71 40 71 c2 fa ..&............Io....#+....q@q..
37a0 ff 27 03 13 0b 2b c3 cb 37 ef 19 5e 3e 7f 04 6c c6 f1 62 5c fd f0 1f b9 45 f3 1f d6 4c ff cf 70 .'...+..7..^>..l..b\....E...L..p
37c0 f5 da 0d 86 d8 98 64 06 79 79 59 86 73 c7 cf e1 4c 97 20 7a ee fc b9 e0 28 06 08 20 92 da cc 0a ......d.yyY.s...L..z....(.......
37e0 0a 0a 60 3c 92 81 8b 93 2b 43 7d 6d c3 90 70 ab 85 85 05 5d ed 33 32 32 a2 9a 59 81 81 68 6b 33 ..`<....+C}m..p....].322..Y..hk3
3800 88 68 33 03 04 10 d1 6d e6 e4 d4 64 82 39 64 94 1e a5 69 42 13 d9 66 06 08 20 a2 d7 33 8f f2 47 .h3....m...d.9d...iB..f.....3..G
3820 f9 83 99 0f 02 00 01 44 f4 7a e6 51 fe 28 7f b0 f2 61 eb 99 01 02 88 a4 f5 cc a3 fc 51 fe 60 e4 .......D.z.Q.(...a..........Q.`.
3840 c3 da cc 00 01 44 d2 7a e6 51 fe 28 7f 30 f3 01 02 68 b4 cd 3c ca 1f 36 6d 66 80 00 1a 6d 33 8f .....D.z.Q.(.0...h..<..6mf...m3.
3860 f2 87 4d 9b 19 20 80 46 db cc a3 fc 61 d3 66 06 08 20 78 62 9e 3b 7b ee 68 8e 1f e5 0f 39 3e 68 ..M....F....a.f...xb.;{.h....9>h
3880 66 1a c6 07 08 20 46 d0 3a 82 96 e6 96 11 7a 4e fb 28 18 2e a0 a6 b6 86 11 20 80 98 60 0c e4 5d f.....F.:.....zN.(..........`..]
38a0 b0 b0 36 c8 28 7f 94 3f 14 f8 b0 f4 0b 10 40 e0 92 99 1c a0 a8 a8 08 2e cd c1 53 dc 7f 10 0b a4 ..6.(..?......@...........S.....
38c0 91 e7 ce 47 f9 a3 7c 52 f9 e0 45 43 48 09 94 14 00 10 40 14 1f d3 8e 3e 47 6e 64 49 fc 62 93 e4 ...G..|R..ECH.....@....>GndI.b..
38e0 b4 64 86 e4 c4 64 aa ea 1f a5 e9 47 97 d8 e6 80 e3 61 ca f1 39 64 c5 1f 0c 64 a7 65 33 44 27 46 .d...d.....G.....a..9d...d.e3D'F
3900 53 7c 82 16 40 00 51 e5 ce 01 f4 d5 75 c7 0e 1f 23 2a 47 c2 7a a1 54 d5 cf 32 ca a7 17 9f e1 37 S|..@.Q.....u...#*G.z.T..2.....7
3920 78 07 18 d9 f1 87 62 1e 15 ce 36 04 08 20 aa ec 3f 1f ed 55 8f 4c 3e 03 2b 75 e2 1f 9c a0 b1 8c x.....b...6.....?..U.L>.+u......
3940 1b 93 0a 00 02 88 e2 c4 8c 2d 47 51 3a 93 33 3a 8e 3a 34 f8 0c bf 19 70 c6 1b 39 e3 c4 70 73 ff .........-GQ:.3:.:4....p..9..ps.
3960 90 97 16 01 02 88 ea 6d 66 10 58 ba 78 29 f1 55 0c 95 f5 8f d2 f4 a3 89 29 99 89 a5 91 db ca e4 .......mf.X.x).U........).......
3980 b6 99 01 02 88 e2 d1 0c d0 76 ab d1 5e f8 28 1f c6 b7 b2 b5 62 48 4e 4a 26 bd 13 98 9a 0d d6 4f .........v..^.(.....bHNJ&......O
39a0 c9 68 06 40 00 b1 50 bb cd 3c 4a 8f 6c 1a 54 b8 81 13 26 99 3b 4a 28 49 95 00 01 44 71 62 06 4d .h.@..P..<J.l.T...&.;J(I...Dqb.M
39c0 83 8f 82 51 40 55 40 66 9b 19 20 80 28 ea 00 82 c6 79 47 67 a2 46 f9 34 e3 93 08 00 02 88 ec 36 ...Q@U@f....(....yGg.F.4.......6
39e0 f3 50 04 f0 76 3e 89 e3 a0 43 9d 0f ab 3d c9 69 87 0e 25 00 10 40 4c 0c 23 10 8c d4 f5 be c3 1d .P..v>...C...=.i..%..@L.#.......
3a00 00 04 d0 88 4c cc 23 75 bd ef 70 07 00 01 34 62 4b e6 11 59 42 0f 73 00 10 40 43 ae cd 0c 6b f7 ....L.#u..p...4bK..YB.s..@C...k.
3a20 8e 02 fa 82 fb f7 ef 0f fa f6 36 40 00 31 8d 46 d3 28 20 76 d4 6a b0 03 80 00 1a b2 5d 83 d1 99 ..........6@.1.F.(.v.j......]...
3a40 47 06 ba ae 2f 1e 0a 00 20 80 86 74 c9 3c ba 7a 8d f6 7c 64 7a b0 03 80 00 1a b2 89 79 74 f5 1a G.../......t.<.z..|dz.......yt..
3a60 fd cf a5 18 ec 00 20 80 86 6c 62 1e 2d 41 47 c7 a9 d1 01 40 00 0d e9 66 c6 68 89 49 a7 12 79 88 .........lb.-AG....@...f.h.I..y.
3a80 8c 53 03 04 d0 68 9b 79 94 3f 6c da cc 00 01 34 da 66 1e e5 0f 9b 36 33 40 00 8d b6 99 47 f9 c3 .S...h.y.?l....4.f....63@....G..
3aa0 a6 cd 0c 10 40 a3 6d e6 51 fe b0 69 33 03 04 d0 90 9d 34 01 2f 6b 1c 9d d8 a0 3d 7f 08 b5 99 01 ....@.m.Q..i3.....4./k....=.....
3ac0 02 68 48 96 cc f0 3d 66 38 76 f5 8e f2 69 c4 1f e4 00 20 c0 00 84 c9 03 af f3 99 e3 e1 00 00 00 .hH...=f8v...i..................
3ae0 00 49 45 4e 44 ae 42 60 82 .IEND.B`.
href='#n2806'>2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601
package printer::printerdrake;
# $Id$

use strict;

use common;
use modules;
use network::network;
use log;
use interactive;
use printer::main;
use printer::services;
use printer::detect;
use printer::default;
use printer::data;

my $companyname = "Mandrakesoft";
my $distroname = "Mandrakelinux";
my $shortdistroname = "Mandrakelinux";
my $domainname = "mandrakesoft.com";

my $hp1000fwtext = N("The HP LaserJet 1000 needs its firmware to be uploaded after being turned on. Download the Windows driver package from the HP web site (the firmware on the printer's CD does not work) and extract the firmware file from it by uncompresing the self-extracting '.exe' file with the 'unzip' utility and searching for the 'sihp1000.img' file. Copy this file into the '/etc/printer' directory. There it will be found by the automatic uploader script and uploaded whenever the printer is connected and turned on.
");

1;

sub config_cups {
    my ($printer, $in, $upNetwork) = @_;

    local $::isWizard = 0;
    # Check whether the network functionality is configured and
    # running
    if (!check_network($printer, $in, $upNetwork, 0)) { return 0 };

    #$in->set_help('configureRemoteCUPSServer') if $::isInstall;
    #- hack to handle cups remote server printing,
    #- first read /etc/cups/cupsd.conf for variable BrowsePoll address:port
    # Return value: 0 when nothing was changed ("Apply" never pressed), 1
    # when "Apply" was at least pressed once.
    my $retvalue = 0;
    # Read CUPS config file
    @{$printer->{cupsconfig}{cupsd_conf}} =
	printer::main::read_cupsd_conf();
    printer::main::read_cups_config($printer);
    # Read state of japanese text printing mode
    my $jap_textmode = printer::main::get_jap_textmode();
    # Read state for auto-correction of cupsd.conf
    $printer->{cupsconfig}{autocorrection} =
	printer::main::get_cups_autoconf();
    my $oldautocorr = $printer->{cupsconfig}{autocorrection};
    # Human-readable strings for hosts onto which the local printers
    # are shared
    my $maindone;
    while (!$maindone) {
	my $sharehosts = printer::main::makesharehostlist($printer);
	my $browsepoll = printer::main::makebrowsepolllist($printer);
	my $buttonclicked;
	#- Show dialog
	if ($in->ask_from_
	    (
	     { 
		 title => N("CUPS printer configuration"),
		 messages => N("Here you can choose whether the printers connected to this machine should be accessible by remote machines and by which remote machines.") .
		     N("You can also decide here whether printers on remote machines should be automatically made available on this machine."),
	     },
	     [
	      { text => N("The printers on this machine are available to other computers"), type => 'bool',
		val => \$printer->{cupsconfig}{localprintersshared} },
	      { text => N("Automatically find available printers on remote machines"), type => 'bool',
		val => \$printer->{cupsconfig}{remotebroadcastsaccepted} },
	      { val => N("Printer sharing on hosts/networks: ") .
		    ($printer->{cupsconfig}{customsharingsetup} ?
		     N("Custom configuration") :
		     ($#{$sharehosts->{list}} >= 0 ?
		      ($#{$sharehosts->{list}} > 1 ?
		       join(", ", @{$sharehosts->{list}}[0,1]) . " ..." :
		       join(", ", @{$sharehosts->{list}})) :
		      N("No remote machines"))), 
		type => 'button',
		clicked_may_quit => sub {
		    $buttonclicked = "sharehosts";
		    1;
		},
		disabled => sub {
		    (!$printer->{cupsconfig}{localprintersshared} &&
		     !$printer->{cupsconfig}{remotebroadcastsaccepted});
		} },
	      { val => N("Additional CUPS servers: ") .
		     ($#{$browsepoll->{list}} >= 0 ?
		      ($#{$browsepoll->{list}} > 1 ?
		       join(", ", @{$browsepoll->{list}}[0,1]) . " ..." :
		       join(", ", @{$browsepoll->{list}})) :
		      N("None")), 
		type => 'button',
		help => N("To get access to printers on remote CUPS servers in your local network you only need to turn on the \"Automatically find available printers on remote machines\" option; the CUPS servers inform your machine automatically about their printers. All printers currently known to your machine are listed in the \"Remote printers\" section in the main window of Printerdrake. If your CUPS server(s) is/are not in your local network, you have to enter the IP address(es) and optionally the port number(s) here to get the printer information from the server(s)."),
		clicked_may_quit => sub {
		    $buttonclicked = "browsepoll";
		    1;
		} },
	      { text => N("Japanese text printing mode"),
		help => N("Turning on this allows to print plain text files in japanese language. Only use this function if you really want to print text in japanese, if it is activated you cannot print accentuated characters in latin fonts any more and you will not be able to adjust the margins, the character size, etc. This setting only affects printers defined on this machine. If you want to print japanese text on a printer set up on a remote machine, you have to activate this function on that remote machine."),
		type => 'bool',
		val => \$jap_textmode },
	      if_($printer->{expert},
		  { text => N("Automatic correction of CUPS configuration"),
		    type => 'bool',
		    help => N("When this option is turned on, on every startup of CUPS it is automatically made sure that

- if LPD/LPRng is installed, /etc/printcap will not be overwritten by CUPS

- if /etc/cups/cupsd.conf is missing, it will be created

- when printer information is broadcasted, it does not contain \"localhost\" as the server name.

If some of these measures lead to problems for you, turn this option off, but then you have to take care of these points."),
		    val => \$printer->{cupsconfig}{autocorrection} }),
	      ]
	     )
	    ) {
	    if ($buttonclicked eq "sharehosts") {
		# Show dialog to add hosts to share printers to
		my $subdone = 0;
		my $choice;
		while (!$subdone) {
		    # Entry should be edited when double-clicked
		    $buttonclicked = "edit";
		    $in->ask_from_
			(
			 { title => N("Sharing of local printers"),
			   messages => N("These are the machines and networks on which the locally connected printer(s) should be available:"),
			   ok => "",
			   cancel => "",
		         },
			 # List the hosts
			 [ { val => \$choice, format => \&translate,
			     sort => 0, separator => "####",
			     tree_expanded => 1,
			     quit_if_double_click => 1,
			     allow_empty_list => 1,
			     list => $sharehosts->{list} },
			   { val => N("Add host/network"), 
			     type => 'button',
			     clicked_may_quit => sub {
				 $buttonclicked = "add";
				 1; 
			     } },
			   { val => N("Edit selected host/network"), 
			     type => 'button',
			     clicked_may_quit => sub {
				 $buttonclicked = "edit";
				 1; 
			     },
			     disabled => sub {
				 return ($#{$sharehosts->{list}} < 0);
			     } },
			   { val => N("Remove selected host/network"), 
			     type => 'button',
			     clicked_may_quit => sub {
				 $buttonclicked = "remove";
				 1; 
			     },
			     disabled => sub {
				 return ($#{$sharehosts->{list}} < 0);
			     } },
			   { val => N("Done"), 
			     type => 'button',
			     clicked_may_quit => sub {
				 $buttonclicked = "";
				 $subdone = 1;
				 1; 
			     } },
			   ]
			 );
		    if ($buttonclicked eq "add" ||
			$buttonclicked eq "edit") {
			my ($hostchoice, $ip);
			if ($buttonclicked eq "add") {
			    # Use first entry as default for a new entry
			    $hostchoice = N("Local network(s)");
			} else {
			    if ($sharehosts->{invhash}{$choice} =~ /^\@/) {
				# Entry to edit is not an IP address
				$hostchoice = $choice;
			    } else {
				# Entry is an IP address
				$hostchoice = 
				    N("IP address of host/network:");
				$ip = $sharehosts->{invhash}{$choice};
			    }
			}
			my @menu = N("Local network(s)");
			my @interfaces = 
			    printer::detect::getNetworkInterfaces();
		        foreach my $interface (@interfaces) {
			    push @menu, N("Interface \"%s\"", $interface);
			}
			push @menu, N("IP address of host/network:");
			# Show the dialog
			my $address;
			my $oldaddress = 
			    ($buttonclicked eq "edit" ?
			     $sharehosts->{invhash}{$choice} : "");
			if ($in->ask_from_
			    (
			     { title => N("Sharing of local printers"),
			       messages => N("Choose the network or host on which the local printers should be made available:"),
			       callbacks => {
				   complete => sub {
				       if ($hostchoice eq 
					    N("IP address of host/network:") &&
					   $ip =~ /^\s*$/) {
					   
					   $in->ask_warn(N("Error"), N("Host/network IP address missing."));
					   return (1,1);
				       }
				       if ($hostchoice eq 
					    N("IP address of host/network:") &&
					   !printer::main::is_network_ip($ip)) {
					   
					   $in->ask_warn(N("Error"), 
N("The entered host/network IP is not correct.\n") .
N("Examples for correct IPs:\n") .
  "192.168.100.194\n" .
  "10.0.0.*\n" .
  "10.1.*\n" .
  "192.168.100.0/24\n" .
  "192.168.100.0/255.255.255.0\n"
);
					   return (1,1);
				       }
				       if ($hostchoice eq $menu[0]) {
					   $address = '@LOCAL';
				       } elsif ($hostchoice eq $menu[-1]) {
					   $address = $ip;
				       } else {
					   ($address) =
					       grep { $hostchoice =~ /$_/ } 
					       @interfaces;
					   $address = "\@IF($address)";
				       }
				       # Check whether item is duplicate
				       if ($address ne $oldaddress &&
					   member($address,
						  @{$printer->{cupsconfig}{clientnetworks}})) {
					   $in->ask_warn(N("Error"), 
							 N("This host/network is already in the list, it cannot be added again.\n"));
					   if ($hostchoice eq 
					       N("IP address of host/network:")) {
					       return (1,1);
					   } else {
					       return (1,0);
					   }
				       }
				       return 0;
				   },
			       },
			   },
			     # List the host types
			     [ { val => \$hostchoice, format => \&translate,
				 type => 'list',
				 sort => 0,
				 list => \@menu },
			       { val => \$ip, 
				 disabled => sub {
				     $hostchoice ne 
					 N("IP address of host/network:");
			         } },
			       ],
			     )) {
			    # OK was clicked, insert new item into the list
			    if ($buttonclicked eq "add") {
				push(@{$printer->{cupsconfig}{clientnetworks}},
				     $address);
			    } else {
				@{$printer->{cupsconfig}{clientnetworks}} =
				    map { ($_ eq
					  $sharehosts->{invhash}{$choice} ?
					  $address : $_) }
				        @{$printer->{cupsconfig}{clientnetworks}};
			    }
			    # Refresh list of hosts
			    $sharehosts = 
			    printer::main::makesharehostlist($printer);
			    # We have modified the configuration now
			    $printer->{cupsconfig}{customsharingsetup} = 0;
			    # Position the list cursor on the new/modified
			    # item
			    $choice = $sharehosts->{hash}{$address};
			}
		    } elsif ($buttonclicked eq "remove") {
			@{$printer->{cupsconfig}{clientnetworks}} =
			    grep { $_ ne $sharehosts->{invhash}{$choice} }
			    @{$printer->{cupsconfig}{clientnetworks}};
			# Refresh list of hosts
			$sharehosts = 
			    printer::main::makesharehostlist($printer);
			# We have modified the configuration now
			$printer->{cupsconfig}{customsharingsetup} = 0;
		    }
		}
		# If we have no entry in the list, we do not
		# share the local printers, mark this
		if ($#{$printer->{cupsconfig}{clientnetworks}} < 0) {
		    $printer->{cupsconfig}{localprintersshared} = 0;
		    $printer->{cupsconfig}{remotebroadcastsaccepted} = 0;
		}
	    } elsif ($buttonclicked eq "browsepoll") {
		# Show dialog to add hosts to "BrowsePoll" from
		my $subdone = 0;
		my $choice;
		while (!$subdone) {
		    # Entry should be edited when double-clicked
		    $buttonclicked = "edit";
		    $in->ask_from_
			(
			 { title => N("Accessing printers on remote CUPS servers"),
			   messages => N("Add here the CUPS servers whose printers you want to use. You only need to do this if the servers do not broadcast their printer information into the local network."),
			   ok => "",
			   cancel => "",
		         },
			 # List the hosts
			 [ { val => \$choice, format => \&translate,
			     sort => 0, separator => "####",
			     tree_expanded => 1,
			     quit_if_double_click => 1,
			     allow_empty_list => 1,
			     list => $browsepoll->{list} },
			   { val => N("Add server"), 
			     type => 'button',
			     clicked_may_quit => sub {
				 $buttonclicked = "add";
				 1; 
			     } },
			   { val => N("Edit selected server"), 
			     type => 'button',
			     clicked_may_quit => sub {
				 $buttonclicked = "edit";
				 1; 
			     },
			     disabled => sub {
				 return ($#{$browsepoll->{list}} < 0);
			     } },
			   { val => N("Remove selected server"), 
			     type => 'button',
			     clicked_may_quit => sub {
				 $buttonclicked = "remove";
				 1; 
			     },
			     disabled => sub {
				 return ($#{$browsepoll->{list}} < 0);
			     } },
			   { val => N("Done"), 
			     type => 'button',
			     clicked_may_quit => sub {
				 $buttonclicked = "";
				 $subdone = 1;
				 1; 
			     } },
			   ]
			 );
		    if ($buttonclicked eq "add" ||
			$buttonclicked eq "edit") {
			my ($ip, $port);
			if ($buttonclicked eq "add") {
			    # Use default port
			    $port = '631';
			} else {
			    if ($browsepoll->{invhash}{$choice} =~
				/^([^:]+):([^:]+)$/) {
				# Entry to edit has IP and port
				$ip = $1;
				$port = $2;
			    } else {
				# Entry is only an IP, no port, so take
				# the default port 631
				$ip = $browsepoll->{invhash}{$choice};
				$port = '631';
			    }
			}
			# Show the dialog
			my $address;
			my $oldaddress = 
			    ($buttonclicked eq "edit" ?
			     $browsepoll->{invhash}{$choice} : "");
			if ($in->ask_from_
			    (
			     { title => N("Accessing printers on remote CUPS servers"),
			       messages => N("Enter IP address and port of the host whose printers you want to use.") . ' ' .
				   N("If no port is given, 631 will be taken as default."),
			       callbacks => {
				   complete => sub {
				       if ($ip =~ /^\s*$/) {
					   $in->ask_warn(N("Error"), N("Server IP missing!"));
					   return (1,0);
				       }
				       if ($ip !~ 
					   /^\s*(\d+\.\d+\.\d+\.\d+)\s*$/) {
					   $in->ask_warn(N("Error"), 
N("The entered IP is not correct.\n") .
N("Examples for correct IPs:\n") .
  "192.168.100.194\n" .
  "10.0.0.2\n"
);
					   return (1,0);
				       } else {
					   $ip = $1;
				       }
				       if ($port !~ /\S/) {
					   $port = '631';
				       } elsif ($port !~ /^\s*(\d+)\s*$/) {
					   $in->ask_warn(N("Error"), N("The port number should be an integer!"));
					   return (1,1);
				       } else {
					   $port = $1;
				       }
				       $address = "$ip:$port";
				       # Check whether item is duplicate
				       if ($address ne $oldaddress &&
					   member($address,
						  @{$printer->{cupsconfig}{BrowsePoll}})) {
					   $in->ask_warn(N("Error"), 
							 N("This server is already in the list, it cannot be added again.\n"));
					   return (1,0);
				       }
				       return 0;
				   },
			       },
			   },
			     # Ask for IP and port
			     [ { val => \$ip, 
				 label => N("IP address") },
			       { val => \$port, 
				 label => N("Port") },
			       ],
			     )) {
			    # OK was clicked, insert new item into the list
			    if ($buttonclicked eq "add") {
				push(@{$printer->{cupsconfig}{BrowsePoll}},
				     $address);
			    } else {
				@{$printer->{cupsconfig}{BrowsePoll}} =
				    map { ($_ eq
					  $browsepoll->{invhash}{$choice} ?
					  $address : $_) }
				        @{$printer->{cupsconfig}{BrowsePoll}};
			    }
			    # Refresh list of hosts
			    $browsepoll = 
			    printer::main::makebrowsepolllist($printer);
			    # Position the list cursor on the new/modified
			    # item
			    $choice = $browsepoll->{hash}{$address};
			}
		    } elsif ($buttonclicked eq "remove") {
			@{$printer->{cupsconfig}{BrowsePoll}} =
			    grep { $_ ne $browsepoll->{invhash}{$choice} }
			    @{$printer->{cupsconfig}{BrowsePoll}};
			# Refresh list of hosts
			$browsepoll = 
			    printer::main::makebrowsepolllist($printer);
		    }
		}
	    } else {
		# We have clicked "OK"
		$retvalue = 1;
		$maindone = 1;
		# Write state for auto-correction of cupsd.conf
		if ($oldautocorr != 
		    $printer->{cupsconfig}{autocorrection}) {
		    printer::main::set_cups_autoconf
			($printer->{cupsconfig}{autocorrection});
		}
		# Write state of japanese text printing mode
		printer::main::set_jap_textmode($jap_textmode);
		# Write cupsd.conf
		printer::main::write_cups_config($printer);
		my $w = 
		    $in->wait_message(N("Printerdrake"),
				      N("Restarting CUPS..."));
		printer::main::write_cupsd_conf
		    (@{$printer->{cupsconfig}{cupsd_conf}});
		undef $w;
	    }
	} else {
	    # Cancel clicked
	    $maindone = 1;
	}
    }
    printer::main::clean_cups_config($printer);
    return $retvalue;
}

sub choose_printer_type {
    my ($printer, $in, $upNetwork) = @_;
    my $havelocalnetworks = check_network($printer, $in, $upNetwork, 1) &&
	                    printer::detect::getIPsInLocalNetworks() != ();
    $printer->{str_type} = $printer_type_inv{$printer->{TYPE}};
    my $autodetect = 0;
    $autodetect = 1 if $printer->{AUTODETECT};
    my @printertypes = printer::main::printer_type($printer);
    $in->ask_from_(
		   { title => N("Select Printer Connection"),
		     messages => N("How is the printer connected?") .
			 if_($printer->{SPOOLER} eq "cups",
			  N("
Printers on remote CUPS servers do not need to be configured here; these printers will be automatically detected.")) .
			 if_(!$havelocalnetworks,
			  N("\nWARNING: No local network connection active, remote printers can neither be detected nor tested!")),
		     },
		   [
		    { val => \$printer->{str_type},
		      list => \@printertypes, 
		      not_edit => 1, sort => 0,
		      type => 'list' },
		    { text => N("Printer auto-detection (Local, TCP/Socket, SMB printers, and device URI)"),
		      type => 'bool', val => \$autodetect }
		    ]
		   ) or return 0;
    $printer->{AUTODETECT} = $autodetect ? 1 : undef;
    $printer->{TYPE} = $printer_type{$printer->{str_type}};
    1;
}

sub setup_printer_connection {
    my ($printer, $in, $upNetwork) = @_;
    # Choose the appropriate connection config dialog
    my $done = 1;
    for ($printer->{TYPE}) {
	/LOCAL/    and setup_local_autoscan($printer, $in, $upNetwork) and last;
	/LPD/      and setup_lpd(      $printer, $in, $upNetwork) and last;
	/SOCKET/   and setup_socket(   $printer, $in, $upNetwork) and last;
	/SMB/      and setup_smb(      $printer, $in, $upNetwork) and last;
	/NCP/      and setup_ncp(      $printer, $in, $upNetwork) and last;
	/URI/      and setup_uri(      $printer, $in, $upNetwork) and last;
	/POSTPIPE/ and setup_postpipe( $printer, $in) and last;
	$done = 0; last;
    }
    return $done;
}

sub first_time_dialog {
    my ($printer, $in, $upNetwork) = @_;
    return 1 if printer::default::get_spooler() || $::isInstall;

    my $w = $in->wait_message(N("Printerdrake"), N("Checking your system..."));

    # Auto-detect local printers   
    my @autodetected = printer::detect::local_detect();
    my $msg = do {
	if (@autodetected) {
	    my @printerlist = 
	      map {
		  my $entry = $_->{val}{DESCRIPTION};
		  $entry ||= "$_->{val}{MANUFACTURER} $_->{val}{MODEL}";
		  if_($entry, "  -  $entry\n");
	      } @autodetected;
	    my $unknown_printers = @autodetected - @printerlist;
	    if (@printerlist) {
		my $unknown_msg = 
		  $unknown_printers == 1 ? 
		    "\n" . N("and one unknown printer") :
		  $unknown_printers > 1 ?
		    "\n" . N("and %d unknown printers", $unknown_printers) :
		    '';
		my $main_msg = 
		  @printerlist > 1 ?
		    N_("The following printers\n\n%s%s\nare directly connected to your system") :
		  $unknown_printers ?
		    N_("The following printer\n\n%s%s\nare directly connected to your system") :
		    N_("The following printer\n\n%s%s\nis directly connected to your system");
		sprintf($main_msg, join('', @printerlist), $unknown_msg);
	    } else {
		$unknown_printers == 1 ?
		  N("\nThere is one unknown printer directly connected to your system") :
		  N("\nThere are %d unknown printers directly connected to your system", $unknown_printers);
	    }
	} else {
	    N("There are no printers found which are directly connected to your machine");
	}
    };
    $msg .= N(" (Make sure that all your printers are connected and turned on).\n");

    # Do we have a local network?

    # If networking is configured, start it, but don't ask the user to
    # configure networking.
    my $havelocalnetworks = 
	 check_network($printer, $in, $upNetwork, 1) && 
	  printer::detect::getIPsInLocalNetworks() != ();

    # Finish building the dialog text
    my $question = ($havelocalnetworks ?
		    (@autodetected ?
		     N("Do you want to enable printing on the printers mentioned above or on printers in the local network?\n") :
		     N("Do you want to enable printing on printers in the local network?\n")) :
		    (@autodetected ?
		     N("Do you want to enable printing on the printers mentioned above?\n") :
		     N("Are you sure that you want to set up printing on this machine?\n")));
    my $warning = N("NOTE: Depending on the printer model and the printing system up to %d MB of additional software will be installed.", 80);
    my $dialogtext = "$msg\n$question\n$warning";

    # Close wait message
    undef $w;

    # Show dialog
    
    my $do_it = N("Yes");
    my $quit = N("Quit");
    my @choices = ($do_it, $quit);
    my $choice = $in->ask_from_list(N("Printerdrake"), $dialogtext, 
				    \@choices, $quit);
    return ($choice eq $do_it);
}

sub configure_new_printers {
    my ($printer, $in, $_upNetwork) = @_;

    # This procedure auto-detects local printers and checks whether
    # there is already a queue for them. If there is no queue for an
    # auto-detected printer, a queue gets set up non-interactively.

    # Experts can have weird things as self-made CUPS backends, so do not
    # automatically pollute the system with unwished queues in expert
    # mode
    return 1 if $printer->{expert};
    
    # Wait message
    my $w = $in->wait_message(N("Printerdrake"),
			       N("Searching for new printers..."));

    # When HPOJ is running, it blocks the printer ports on which it is
    # configured, so we stop it here. If it is not installed or not 
    # configured, this command has no effect.
    require services;
    services::stop("hpoj");

    # Auto-detect local printers
    my @autodetected = printer::detect::local_detect();

    # We are ready with auto-detection, so we restart HPOJ here. If it 
    # is not installed or not configured, this command has no effect.
    services::start("hpoj");

    # No printer found? So no need of new queues.
    return 1 if !@autodetected;

    # Black-list all auto-detected printers for which there is already
    # a queue
    my @blacklist;
    foreach my $queue (keys %{$printer->{configured}}) {
	# Does the URI of this installed queue match one of the autodetected
	# printers?
	my $uri = $printer->{configured}{$queue}{queuedata}{connect};
	my $p = printer::main::autodetectionentry_for_uri
	    ($uri, @autodetected);
	if (defined($p)) {
	    # Blacklist the port
	    push(@blacklist, $p->{port});
	}
    }

    # Now install queues for all auto-detected printers which have no queue
    # yet
    $printer->{noninteractive} = 1; # Suppress all interactive steps
    my $configapps = 0;
    foreach my $p (@autodetected) {
	if (!member($p->{port}, @blacklist)) {
	    # Initialize some variables for queue setup
	    $printer->{NEW} = 1;
	    $printer->{TYPE} = "LOCAL";
	    $printer->{currentqueue} = { queue    => "",
					 foomatic => 0,
					 desc     => "",
					 loc      => "",
					 make     => "",
					 model    => "",
					 printer  => "",
					 driver   => "",
					 connect  => "",
					 spooler  => $printer->{SPOOLER},
				       };
	    # Generate a queue name from manufacturer and model
	    my $queue;
	    my $unknown;
	    if (!$p->{val}{MANUFACTURER} || !$p->{val}{MODEL} ||
		$p->{val}{MODEL} eq N("Unknown Model")) {
		$queue = N("Printer");
		$unknown = 1;
	    } else {
		my $make = $p->{val}{MANUFACTURER};
		if ($p->{val}{SKU}) {
		    $queue = $make . $p->{val}{SKU};
		} else {
		    $queue = $make . $p->{val}{MODEL};
		}
		$queue =~ s/series//gi;
		$queue =~ s/[\s\(\)\-,]//g;
		$queue =~ s/^$make$make/$make/;
	    }
	    # Append a number if the queue name already exists
	    if ($printer->{configured}{$queue}) {
		$queue =~ s/(\d)$/$1_/;
		my $i = 1;
		while ($printer->{configured}{"$queue$i"}) {
		    $i++;
		}
		$queue .= $i;
	    }
	    $printer->{currentqueue}{queue} = $queue;
	    undef $w;
	    $w = $in->wait_message(N("Printerdrake"),
				    ($unknown ?
				     N("Configuring printer ...") :
				     N("Configuring printer \"%s\"...",
				       $printer->{currentqueue}{queue})));
	    # Do configuration of multi-function devices and look up
	    # model name in the printer database
	    setup_common($printer, $in, $p->{val}{DESCRIPTION}, $p->{port},
			 1, @autodetected) or next;
	    # Set also OLD_QUEUE field so that the subroutines for the
	    # configuration work correctly.
	    $printer->{OLD_QUEUE} = $printer->{QUEUE} =
		$printer->{currentqueue}{queue};
	    # Do the steps of queue setup
	    get_db_entry($printer, $in);
	    # Let the user choose the model manually if it could not be
	    # auto-detected.
	    if (!$printer->{DBENTRY}) {
		# Set the OLD_CHOICE to a non-existing value
		$printer->{OLD_CHOICE} = "XXX";
		# Set model selection cursor onto the "Raw Printer" entry.
		$printer->{DBENTRY} = N("Raw printer (No driver)");
		# Info about what was detected
		my $info = N("(") . if_($p->{val}{DESCRIPTION},
					$p->{val}{DESCRIPTION} . N(" on ")) .
					$p->{port} . N(")");
		# Remove wait message
		undef $w;
		# Choose the printer/driver from the list
		$printer->{DBENTRY} = 
		    $in->ask_from_treelist(N("Printer model selection"),
					   N("Which printer model do you have?") .
					   N("

Printerdrake could not determine which model your printer %s is. Please choose the correct model from the list.", $info) . " " .
					   N("If your printer is not listed, choose a compatible (see printer manual) or a similar one."), '|',
					   [ keys %printer::main::thedb ], $printer->{DBENTRY}) or next;
		if ($unknown) {
		    # Rename the queue according to the chosen model
		    $queue = $printer->{DBENTRY};
		    $queue =~ s/\|/ /g;
		    $printer->{currentqueue}{desc} = $queue;
		    $queue =~ s/series//gi;
		    $queue =~ s/[\s\(\)\-,]//g;
		    # Append a number if the queue name already exists
		    if ($printer->{configured}{$queue}) {
			$queue =~ s/(\d)$/$1_/;
			my $i = 1;
			while ($printer->{configured}{"$queue$i"}) {
			    $i++;
			}
			$queue .= $i;
		    }
		    $printer->{currentqueue}{queue} = $queue;
		    $printer->{QUEUE} = $printer->{currentqueue}{queue};
		}
		# Restore wait message
		$w = $in->wait_message(N("Printerdrake"),
					N("Configuring printer \"%s\"...",
					  $printer->{currentqueue}{queue}));
	    }
	    get_printer_info($printer, $in) or next;
	    setup_options($printer, $in) or next;
	    configure_queue($printer, $in) or next;
	    $configapps = 1;
	    # If there is no default printer set, let this one get the
	    # default
	    if (!$printer->{DEFAULT}) {
		$printer->{DEFAULT} = $printer->{QUEUE};
		printer::default::set_printer($printer);
	    }
	}
	# Delete some variables
	foreach (qw(OLD_QUEUE QUEUE TYPE str_type DBENTRY ARGS OLD_CHOICE)) {
	    $printer->{$_} = "";
	}
	$printer->{currentqueue} = {};
	$printer->{complete} = 0;
    }
    # Configure the current printer queues in applications
    undef $w;
    if ($configapps) {
	$w =
	    $in->wait_message(N("Printerdrake"),
			      N("Configuring applications..."));
	printer::main::configureapplications($printer);
	undef $w;
    }
    undef $printer->{noninteractive};
}

sub wizard_welcome {
    my ($printer, $in, $upNetwork) = @_;
    my $ret;
    my $autodetectlocal = 0;
    my $autodetectnetwork = 0;
    my $autodetectsmb = 0;
    # If networking is configured, start it, but don't ask the user to
    # configure networking.
    my $havelocalnetworks;
    if ($printer->{expert}) {
	$havelocalnetworks = 0;
	undef $printer->{AUTODETECTNETWORK};
	undef $printer->{AUTODETECTSMB};
    } else {
	$havelocalnetworks = check_network($printer, $in, $upNetwork, 1) &&
			      printer::detect::getIPsInLocalNetworks() != ();
	if (!$havelocalnetworks) {
	    undef $printer->{AUTODETECTNETWORK};
	    undef $printer->{AUTODETECTSMB};
	}
	$autodetectlocal = 1 if $printer->{AUTODETECTLOCAL};
	$autodetectnetwork = 1 if $printer->{AUTODETECTNETWORK};
	$autodetectsmb = 1 if $printer->{AUTODETECTSMB};
    }
    if ($in) {
	eval {
	    if ($printer->{expert}) {
		if ($::isWizard) {
		    $ret = $in->ask_okcancel(
			 N("Add a new printer"),
			 N("
Welcome to the Printer Setup Wizard

This wizard allows you to install local or remote printers to be used from this machine and also from other machines in the network.

It asks you for all necessary information to set up the printer and gives you access to all available printer drivers, driver options, and printer connection types."));
		} else {
		    $ret = 1;
		}
	    } else {
		$ret = $in->ask_from_(
		     { title => N("Add a new printer"),
		       messages => ($printer->{SPOOLER} ne "pdq" ? 
				   ($havelocalnetworks ? N("
Welcome to the Printer Setup Wizard

This wizard will help you to install your printer(s) connected to this computer, connected directly to the network or to a remote Windows machine.

Please plug in and turn on all printers connected to this machine so that it/they can be auto-detected. Also your network printer(s) and your Windows machines must be connected and turned on.

Note that auto-detecting printers on the network takes longer than the auto-detection of only the printers connected to this machine. So turn off the auto-detection of network and/or Windows-hosted printers when you don't need it.

 Click on \"Next\" when you are ready, and on \"Cancel\" if you do not want to set up your printer(s) now.") : N("
Welcome to the Printer Setup Wizard

This wizard will help you to install your printer(s) connected to this computer.

Please plug in and turn on all printers connected to this machine so that it/they can be auto-detected.

 Click on \"Next\" when you are ready, and on \"Cancel\" if you do not want to set up your printer(s) now.")) : 
				   ($havelocalnetworks ? N("
Welcome to the Printer Setup Wizard

This wizard will help you to install your printer(s) connected to this computer or connected directly to the network.

If you have printer(s) connected to this machine, Please plug it/them in on this computer and turn it/them on so that it/they can be auto-detected. Also your network printer(s) must be connected and turned on.

Note that auto-detecting printers on the network takes longer than the auto-detection of only the printers connected to this machine. So turn off the auto-detection of network printers when you don't need it.

 Click on \"Next\" when you are ready, and on \"Cancel\" if you do not want to set up your printer(s) now.") : N("
Welcome to the Printer Setup Wizard

This wizard will help you to install your printer(s) connected to this computer.

If you have printer(s) connected to this machine, Please plug it/them in on this computer and turn it/them on so that it/they can be auto-detected.

 Click on \"Next\" when you are ready, and on \"Cancel\" if you do not want to set up your printer(s) now."))) },
		     [
		      { text => N("Auto-detect printers connected to this machine"), type => 'bool',
			val => \$autodetectlocal },
		           if_($havelocalnetworks,
		      { text => N("Auto-detect printers connected directly to the local network"), type => 'bool',
			val => \$autodetectnetwork },
			   if_($printer->{SPOOLER} ne "pdq",
		      { text => N("Auto-detect printers connected to machines running Microsoft Windows"), type => 'bool',
			val => \$autodetectsmb })),
		      ]);
		$printer->{AUTODETECTLOCAL} = $autodetectlocal ? 1 : undef;
		$printer->{AUTODETECTNETWORK} = $autodetectnetwork ? 1 : undef;
		$printer->{AUTODETECTSMB} = $autodetectsmb && $printer->{SPOOLER} ne "pdq" ? 1 : undef;
	    }
	};
	return $@ =~ /wizcancel/ ? 0 : $ret;
    }
}

sub wizard_congratulations {
    my ($in) = @_;
    if ($in) {
	$in->ask_okcancel(N("Add a new printer"),
			  N("
Congratulations, your printer is now installed and configured!

You can print using the \"Print\" command of your application (usually in the \"File\" menu).

If you want to add, remove, or rename a printer, or if you want to change the default option settings (paper input tray, printout quality, ...), select \"Printer\" in the \"Hardware\" section of the %s Control Center.", $shortdistroname))
    }
}

sub setup_local_autoscan {
    my ($printer, $in, $upNetwork) = @_;
    my $queue = $printer->{OLD_QUEUE};
    my $expert_or_modify = $printer->{expert} || !$printer->{NEW};
    my $do_auto_detect = 
	($expert_or_modify &&
	  $printer->{AUTODETECT} ||
	 (!$expert_or_modify &&
	  ($printer->{AUTODETECTLOCAL} ||
	   $printer->{AUTODETECTNETWORK} ||
	   $printer->{AUTODETECTSMB})));

    # If the user requested auto-detection of remote printers, check
    # whether the network functionality is configured and running
    if ($printer->{AUTODETECTNETWORK} || $printer->{AUTODETECTSMB}) {
	return 0 unless check_network($printer, $in, $upNetwork, 0);
    }

    my @autodetected;
    my $menuentries = {};
#    $in->set_help('setupLocal') if $::isInstall;
    if ($do_auto_detect) {
	if (!$::testing &&
	    !$expert_or_modify && $printer->{AUTODETECTSMB} && !files_exist('/usr/bin/smbclient')) {
	    $in->do_pkgs->install('samba-client') or do {
		$in->ask_warn(N("Warning"),
			      N("Could not install the %s packages!",
				"Samba client") . " " .
			      N("Skipping Windows/SMB server auto-detection"));
		$printer->{AUTODETECTSMB} = 0;
		return 0 if (!$printer->{AUTODETECTLOCAL} && 
			     !$printer->{AUTODETECTNETWORK});
	    };
	}
	my $_w = $in->wait_message(N("Printer auto-detection"), N("Detecting devices..."));
	# When HPOJ is running, it blocks the printer ports on which it is
	# configured, so we stop it here. If it is not installed or not 
	# configured, this command has no effect.
	require services;
	services::stop("hpoj");
	@autodetected = (
	    $expert_or_modify || $printer->{AUTODETECTLOCAL} ? printer::detect::local_detect() : (),
	    !$expert_or_modify ? printer::detect::whatNetPrinter($printer->{AUTODETECTNETWORK}, $printer->{AUTODETECTSMB}) : (),
        );
	# We have more than one printer, so we must ask the user for a queue
	# name in the fully automatic printer configuration.
	$printer->{MORETHANONE} = $#autodetected > 0;
	my @str;
	foreach my $p (@autodetected) {
	    if ($p->{val}{DESCRIPTION}) {
		my $menustr = $p->{val}{DESCRIPTION};
		if ($p->{port} =~ m!^/dev/lp(\d+)$!) {
		    $menustr .= N(" on parallel port #%s", $1);
		} elsif ($p->{port} =~ m!^/dev/usb/lp(\d+)$!) {
		    $menustr .= N(", USB printer #%s", $1);
		} elsif ($p->{port} =~ m!^socket://([^:]+):(\d+)$!) {
		    $menustr .= N(", network printer \"%s\", port %s", $1, $2);
		} elsif ($p->{port} =~ m!^smb://([^/:]+)/([^/:]+)$!) {
		    $menustr .= N(", printer \"%s\" on SMB/Windows server \"%s\"", $2, $1);
		}
		$menustr .= " ($p->{port})" if $printer->{expert};
		$menuentries->{$menustr} = $p->{port};
		push @str, N("Detected %s", $menustr);
	    } else {
		my $menustr;
		if ($p->{port} =~ m!^/dev/lp(\d+)$!) {
		    $menustr = N("Printer on parallel port #%s", $1);
		} elsif ($p->{port} =~ m!^/dev/usb/lp(\d+)$!) {
		    $menustr = N("USB printer #%s", $1);
		} elsif ($p->{port} =~ m!^socket://([^:]+):(\d+)$!) {
		    $menustr .= N("Network printer \"%s\", port %s", $1, $2);
		} elsif ($p->{port} =~ m!^smb://([^/:]+)/([^/:]+)$!) {
		    $menustr .= N("Printer \"%s\" on SMB/Windows server \"%s\"", $2, $1);
		}
		$menustr .= " ($p->{port})" if $printer->{expert};
		$menuentries->{$menustr} = $p->{port};
	    }
	}
	my @port;
	if ($printer->{expert}) {
	    @port = printer::detect::whatPrinterPort();
	  LOOP: foreach my $q (@port) {
		if (@str) {
		    foreach my $p (@autodetected) {
			last LOOP if $p->{port} eq $q;
		    }
		}
		my $menustr;
		if ($q =~ m!^/dev/lp(\d+)$!) {
		    $menustr = N("Printer on parallel port #%s", $1);
		} elsif ($q =~ m!^/dev/usb/lp(\d+)$!) {
		    $menustr = N("USB printer #%s", $1);
		}
		$menustr .= " ($q)" if $printer->{expert};
		$menuentries->{$menustr} = $q;
	    }
	}
	# We are ready with auto-detection, so we restart HPOJ here. If it 
	# is not installed or not configured, this command has no effect.
	printer::services::start("hpoj");
    } else {
	# Always ask for queue name in recommended mode when no auto-
	# detection was done
	$printer->{MORETHANONE} = $#autodetected > 0;
	my $m;
	for ($m = 0; $m <= 2; $m++) {
	    my $menustr = N("Printer on parallel port #%s", $m);
	    $menustr .= " (/dev/lp$m)" if $printer->{expert};
	    $menuentries->{$menustr} = "/dev/lp$m";
	    $menustr = N("USB printer #%s", $m);
	    $menustr .= " (/dev/usb/lp$m)" if $printer->{expert};
	    $menuentries->{$menustr} = "/dev/usb/lp$m";
	}
    }
    my @menuentrieslist = sort { 
	my @prefixes = ("/dev/lp", "/dev/usb/lp", "/dev/", "socket:", 
			"smb:");
	my $first = $menuentries->{$a};
	my $second = $menuentries->{$b};
	for (my $i = 0; $i <= $#prefixes; $i++) {
	    my $firstinlist = $first =~ m!^$prefixes[$i]!;
	    my $secondinlist = $second =~ m!^$prefixes[$i]!;
	    if ($firstinlist && !$secondinlist) { return -1 };
	    if ($secondinlist && !$firstinlist) { return 1 };
	}
	return $first cmp $second;
    } keys(%$menuentries);
    my $menuchoice = "";
    my $oldmenuchoice = "";
    my $device;
    if ($printer->{configured}{$queue}) {
	my $p = printer::main::autodetectionentry_for_uri
	    ($printer->{currentqueue}{connect}, @autodetected);
	if (defined($p)) {
	    $device = $p->{port};
	    $menuchoice = { reverse %$menuentries }->{$device};
	}
    }
    if ($menuchoice eq "" && @menuentrieslist > -1) {
	$menuchoice = $menuentrieslist[0];
	$oldmenuchoice = $menuchoice;
	$device = $menuentries->{$menuchoice} if $device eq "";
    }
    if ($in) {
#	$printer->{expert} or $in->set_help('configurePrinterDev') if $::isInstall;
	if ($#menuentrieslist < 0) { # No menu entry
	    # auto-detection has failed, we must do all manually
	    $do_auto_detect = 0;
	    $printer->{MANUAL} = 1;
	    if ($printer->{expert}) {
		$device = $in->ask_from_entry(
		     N("Local Printer"),
		     N("No local printer found! To manually install a printer enter a device name/file name in the input line (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."),
		     { 
			 complete => sub {
			     if ($menuchoice eq "") {
				 $in->ask_warn(N("Error"), N("You must enter a device or file name!"));
				 return (1,0);
			     }
			     return 0;
			 }
		     });
		return 0 if $device eq "";
	    } else {
		$in->ask_warn(N("Printer auto-detection"),
			      N("No printer found!"));
		return 0;
	    }
	} else {
	    my $manualconf = 0;
	    $manualconf = 1 if $printer->{MANUAL} || !$do_auto_detect;
	    if (!$in->ask_from_(
		 { title => ($expert_or_modify ?
			     N("Local Printers") :
			     N("Available printers")),
		   messages => (($do_auto_detect ?
				 ($printer->{expert} ?
				  ($#menuentrieslist == 0 ?
				   (N("The following printer was auto-detected. ") .
				    ($printer->{NEW} ?
				     N("If it is not the one you want to configure, enter a device name/file name in the input line") :
				     N("Alternatively, you can specify a device name/file name in the input line"))) :
				   (N("Here is a list of all auto-detected printers. ") .
				    ($printer->{NEW} ?
				     N("Please choose the printer you want to set up or enter a device name/file name in the input line") :
				     N("Please choose the printer to which the print jobs should go or enter a device name/file name in the input line")))) :
				  ($#menuentrieslist == 0 ?
				   (N("The following printer was auto-detected. ") .
				    ($printer->{NEW} ?
				     N("The configuration of the printer will work fully automatically. If your printer was not correctly detected or if you prefer a customized printer configuration, turn on \"Manual configuration\".") : 
				     N("Currently, no alternative possibility is available"))) :
				   (N("Here is a list of all auto-detected printers. ") .
				    ($printer->{NEW} ?
				     N("Please choose the printer you want to set up. The configuration of the printer will work fully automatically. If your printer was not correctly detected or if you prefer a customized printer configuration, turn on \"Manual configuration\".") :
				     N("Please choose the printer to which the print jobs should go."))))) :
				 ($printer->{expert} ?
				  N("Please choose the port that your printer is connected to or enter a device name/file name in the input line") :
				  N("Please choose the port that your printer is connected to."))) .
				if_($printer->{expert},
				    N(" (Parallel Ports: /dev/lp0, /dev/lp1, ..., equivalent to LPT1:, LPT2:, ..., 1st USB printer: /dev/usb/lp0, 2nd USB printer: /dev/usb/lp1, ...)."))), 
				  callbacks => {
				      complete => sub {
					  unless ($menuchoice ne "") {
					      $in->ask_warn(N("Error"), N("You must choose/enter a printer/device!"));
					      return (1,0);
					  }
					  return 0;
				      },
				      changed => sub {
					  if ($oldmenuchoice ne $menuchoice) {
					      $device = $menuentries->{$menuchoice};
					      $oldmenuchoice = $menuchoice;
					  }
					  return 0;
				      }
				  } },
		 [
		  if_($printer->{expert}, { val => \$device }),
		  { val => \$menuchoice, list => \@menuentrieslist, 
		    not_edit => !$printer->{expert}, format => \&translate,
		    allow_empty_list => 1, type => 'list' },
		  if_(!$printer->{expert} && $do_auto_detect && $printer->{NEW}, 
		   { text => N("Manual configuration"), type => 'bool',
		     val => \$manualconf }),
		  ]
		 )) {
		return 0;
	    }
	    if ($device ne $menuentries->{$menuchoice}) {
		$menuchoice = "";
		$do_auto_detect = 0;
	    }
	    $printer->{MANUAL} = $manualconf ? 1 : undef;
	}
    }

    #- LPD and LPRng need netcat ('nc') to access to socket printers
    if (($printer->{SPOOLER} eq 'lpd' || $printer->{SPOOLER} eq 'lprng') &&
        !$::testing && $device =~ /^socket:/ && !files_exist('/usr/bin/nc')) {
        $in->do_pkgs->install('nc') or do {
            $in->ask_warn(N("Error"),
		N("Could not install the %s packages!",
		  "nc") . " " .
		N("Aborting"));
	    return 0;
        };
    }

    # Do configuration of multi-function devices and look up model name
    # in the printer database
    setup_common($printer, $in, $menuchoice, $device, $do_auto_detect,
		  @autodetected);

    1;
}

sub setup_lpd {
    my ($printer, $in, $upNetwork) = @_;

    # Check whether the network functionality is configured and
    # running
    if (!check_network($printer, $in, $upNetwork, 0)) { return 0 };

#    $in->set_help('setupLPD') if $::isInstall;
    my ($uri, $remotehost, $remotequeue);
    my $queue = $printer->{OLD_QUEUE};
    if ($printer->{configured}{$queue} &&
	$printer->{currentqueue}{connect} =~ m/^lpd:/) {
	$uri = $printer->{currentqueue}{connect};
	if ($uri =~ m!^\s*lpd://([^/]+)/([^/]+)/?\s*$!) {
         $remotehost = $1;
         $remotequeue = $2;
     }
    } else {
	$remotehost = "";
	$remotequeue = "lp";
    }

    return if !$in->ask_from(N("Remote lpd Printer Options"),
N("To use a remote lpd printer, you need to supply the hostname of the printer server and the printer name on that server."), [
{ label => N("Remote host name"), val => \$remotehost },
{ label => N("Remote printer name"), val => \$remotequeue } ],
complete => sub {
    if ($remotehost eq "") {
	$in->ask_warn(N("Error"), N("Remote host name missing!"));
	return (1,0);
    }
    if ($remotequeue eq "") {
	$in->ask_warn(N("Error"), N("Remote printer name missing!"));
	return (1,1);
    }
    return 0;
}
			      );
    #- make the DeviceURI from user input.
    $printer->{currentqueue}{connect} = "lpd://$remotehost/$remotequeue";

    #- LPD does not support filtered queues to a remote LPD server by itself
    #- It needs an additional program as "rlpr"
    if ($printer->{SPOOLER} eq 'lpd' && !$::testing &&
        !files_exist('/usr/bin/rlpr')) {
        $in->do_pkgs->install('rlpr') or do {
            $in->ask_warn(N("Error"),
		N("Could not install the %s packages!",
		  "rlpr") . " " .
		N("Aborting"));
	    return 0;
        };
    }

    # Auto-detect printer model (works if host is an ethernet-connected
    # printer)
    my $modelinfo = printer::detect::getSNMPModel($remotehost);
    my $auto_hpoj;
    if (defined($modelinfo) &&
	$modelinfo->{MANUFACTURER} ne "" &&
	$modelinfo->{MODEL} ne "") {
        $in->ask_warn(N("Information"), N("Detected model: %s %s",
                            $modelinfo->{MANUFACTURER}, $modelinfo->{MODEL}));
        $auto_hpoj = 1;
    } else {
	$auto_hpoj = 0;
    }

    # Do configuration of multi-function devices and look up model name
    # in the printer database
    setup_common($printer, $in,
		  "$modelinfo->{MANUFACTURER} $modelinfo->{MODEL}", 
		  $printer->{currentqueue}{connect}, $auto_hpoj,
                  ({port => $printer->{currentqueue}{connect},
                    val => $modelinfo }));

    1;
}

sub setup_smb {
    my ($printer, $in, $upNetwork) = @_;

    # Check whether the network functionality is configured and
    # running
    if (!check_network($printer, $in, $upNetwork, 0)) { return 0 };

#    $in->set_help('setupSMB') if $::isInstall;
    my ($uri, $smbuser, $smbpassword, $workgroup, $smbserver, $smbserverip, $smbshare);
    my $queue = $printer->{OLD_QUEUE};
    if ($printer->{configured}{$queue} &&
	$printer->{currentqueue}{connect} =~ m/^smb:/) {
	$uri = $printer->{currentqueue}{connect};
	my $parameters = $1 if $uri =~ m!^\s*smb://(.*)$!;
	# Get the user's login and password from the URI
	if ($parameters =~ m!([^@]*)@([^@]+)!) {
	    my $login = $1;
	    $parameters = $2;
	    if ($login =~ m!([^:]*):([^:]*)!) {
		$smbuser = $1;
		$smbpassword = $2;
	    } else {
		$smbuser = $login;
		$smbpassword = "";
	    }
	} else {
	    $smbuser = "";
	    $smbpassword = "";
	}
	# Get the workgroup, server, and share name
	if ($parameters =~ m!([^/]*)/([^/]+)/([^/]+)$!) {
	    $workgroup = $1;
	    $smbserver = $2;
	    $smbshare = $3;
	} elsif ($parameters =~ m!([^/]+)/([^/]+)$!) {
	    $workgroup = "";
	    $smbserver = $1;
	    $smbshare = $2;
	} else {
	    die qq(The "smb://" URI must at least contain the server name and the share name!\n);
	}
	if (is_ip($smbserver)) {
	    $smbserverip = $smbserver;
	    $smbserver = "";
	}
    }

    my $autodetect = 0;
    my @autodetected;
    my $menuentries;
    my @menuentrieslist;
    my $menuchoice = "";
    my $oldmenuchoice = "";
    if ($printer->{AUTODETECT}) {
	$autodetect = 1;
	if (!$::testing && !files_exist('/usr/bin/smbclient')) {
	    $in->do_pkgs->install('samba-client') or do {
		$in->ask_warn(N("Error"),
			      N("Could not install the %s packages!",
				"Samba client") . " " .
			      N("Aborting"));
		return 0;
	    };
	}
	my $_w = $in->wait_message(N("Printer auto-detection"), N("Scanning network..."));
	@autodetected = printer::detect::net_smb_detect();
     my ($server, $share);
	foreach my $p (@autodetected) {
	    my $menustr;
	    if ($p->{port} =~ m!^smb://([^/:]+)/([^/:]+)$!) {
             $server = $1;
             $share = $2;
         }
	    if ($p->{val}{DESCRIPTION}) {
		$menustr = $p->{val}{DESCRIPTION};
		$menustr .= N(", printer \"%s\" on server \"%s\"",
			      $share, $server);
	    } else {
		$menustr = N("Printer \"%s\" on server \"%s\"",
			     $share, $server);
	    }
	    $menuentries->{$menustr} = $p->{port};
	    if ($server eq $smbserver &&
		$share eq $smbshare) {
		$menuchoice = $menustr;
	    }
	}
	@menuentrieslist = sort {
	    $menuentries->{$a} cmp $menuentries->{$b};
	} keys(%$menuentries);
	if ($printer->{configured}{$queue} &&
	    $printer->{currentqueue}{connect} =~ m/^smb:/ &&
	    $menuchoice eq "") {
	    my $menustr;
	    if ($printer->{currentqueue}{make}) {
		$menustr = "$printer->{currentqueue}{make} $printer->{currentqueue}{model}";
		$menustr .= N(", printer \"%s\" on server \"%s\"",
			      $smbshare, $smbserver);
	    } else {
		$menustr = N("Printer \"%s\" on server \"%s\"",
			     $smbshare, $smbserver);
	    }
	    $menuentries->{$menustr} = "smb://$smbserver/$smbshare";
	    unshift(@menuentrieslist, $menustr);
	    $menuchoice = $menustr;
	}
	if ($#menuentrieslist < 0) {
	    $autodetect = 0;
	} elsif ($menuchoice eq "") {
	    $menuchoice = $menuentrieslist[0];
	    if ($menuentries->{$menuentrieslist[0]} =~
		m!^smb://([^/:]+)/([^/:]+)$!) {
             $smbserver = $1;
             $smbshare = $2;
         }
	}
	$oldmenuchoice = $menuchoice;
    }

    return 0 if !$in->ask_from(
	 N("SMB (Windows 9x/NT) Printer Options"),
	 N("To print to a SMB printer, you need to provide the SMB host name (Note! It may be different from its TCP/IP hostname!) and possibly the IP address of the print server, as well as the share name for the printer you wish to access and any applicable user name, password, and workgroup information.") .
	 ($autodetect ? N(" If the desired printer was auto-detected, simply choose it from the list and then add user name, password, and/or workgroup if needed.") : ""),
	 [ 
	  { label => N("SMB server host"), val => \$smbserver },
	  { label => N("SMB server IP"), val => \$smbserverip },
	  { label => N("Share name"), val => \$smbshare },
	  { label => N("User name"), val => \$smbuser },
	  { label => N("Password"), val => \$smbpassword, hidden => 1 },
	  { label => N("Workgroup"), val => \$workgroup },
	  if_($autodetect,
	   { label => N("Auto-detected"),
	     val => \$menuchoice, list => \@menuentrieslist, 
	     not_edit => 1, format => \&translate, sort => 0,
	     allow_empty_list => 1, type => 'combo' }) ],
	 complete => sub {
	     if (!is_ip($smbserverip) && $smbserverip ne "") {
		 $in->ask_warn(N("Error"), N("IP address should be in format 1.2.3.4"));
		 return (1,1);
	     }
	     if ($smbserver eq "" && $smbserverip eq "") {
		 $in->ask_warn(N("Error"), N("Either the server name or the server's IP must be given!"));
		 return (1,0);
	     }
	     if ($smbshare eq "") {
		 $in->ask_warn(N("Error"), N("Samba share name missing!"));
		 return (1,2);
	     }
	     if ($smbpassword ne "") {
		 local $::isWizard = 0;
		 my $yes = $in->ask_yesorno(
		      N("SECURITY WARNING!"),
		      N("You are about to set up printing to a Windows account with password. Due to a fault in the architecture of the Samba client software the password is put in clear text into the command line of the Samba client used to transmit the print job to the Windows server. So it is possible for every user on this machine to display the password on the screen by issuing commands as \"ps auxwww\".

We recommend to make use of one of the following alternatives (in all cases you have to make sure that only machines from your local network have access to your Windows server, for example by means of a firewall):

Use a password-less account on your Windows server, as the \"GUEST\" account or a special account dedicated for printing. Do not remove the password protection from a personal account or the administrator account.

Set up your Windows server to make the printer available under the LPD protocol. Then set up printing from this machine with the \"%s\" connection type in Printerdrake.

", N("Printer on remote lpd server")) .
		      ($printer->{expert} ? 
		       N("Set up your Windows server to make the printer available under the IPP protocol and set up printing from this machine with the \"%s\" connection type in Printerdrake.

", N("Enter a printer device URI")) : "") .
N("Connect your printer to a Linux server and let your Windows machine(s) connect to it as a client.

Do you really want to continue setting up this printer as you are doing now?"), 0);
		 return 0 if $yes;
		 return (1,2);
	     }
	     return 0;
	 },
	 changed => sub {
	     return 0 if !$autodetect;
	     if ($oldmenuchoice ne $menuchoice) {
		 if ($menuentries->{$menuchoice} =~ m!^smb://([^/:]+)/([^/:]+)$!) {
               $smbserver = $1;
               $smbshare = $2;
           }
		 $oldmenuchoice = $menuchoice;
	     }
	     return 0;
	 }
	 );
    #- make the DeviceURI from, try to probe for available variable to
    #- build a suitable URI.
    $printer->{currentqueue}{connect} =
    join '', ("smb://", ($smbuser && ($smbuser . 
    ($smbpassword && ":$smbpassword") . '@')), ($workgroup && "$workgroup/"),
    ($smbserver || $smbserverip), "/$smbshare");

    if (!$::testing && !files_exist('/usr/bin/smbclient')) {
	$in->do_pkgs->install('samba-client') or do {
            $in->ask_warn(N("Error"),
		N("Could not install the %s packages!",
		  "Samba client") . " " .
		N("Aborting"));
	    return 0;
        };
    }
    $printer->{SPOOLER} eq 'cups' and printer::main::restart_queue($printer);
    1;
}

sub setup_ncp {
    my ($printer, $in, $upNetwork) = @_;

    # Check whether the network functionality is configured and
    # running
    if (!check_network($printer, $in, $upNetwork, 0)) { return 0 };

#    $in->set_help('setupNCP') if $::isInstall;
    my ($uri, $ncpuser, $ncppassword, $ncpserver, $ncpqueue);
    my $queue = $printer->{OLD_QUEUE};
    if ($printer->{configured}{$queue} &&
	$printer->{currentqueue}{connect} =~ m/^ncp:/) {
	$uri = $printer->{currentqueue}{connect};
	my $parameters = $uri =~ m!^\s*ncp://(.*)$!;
	# Get the user's login and password from the URI
	if ($parameters =~ m!([^@]*)@([^@]+)!) {
	    my $login = $1;
	    $parameters = $2;
	    if ($login =~ m!([^:]*):([^:]*)!) {
		$ncpuser = $1;
		$ncppassword = $2;
	    } else {
		$ncpuser = $login;
		$ncppassword = "";
	    }
	} else {
	    $ncpuser = "";
	    $ncppassword = "";
	}
	# Get the workgroup, server, and share name
	if ($parameters =~ m!([^/]+)/([^/]+)$!) {
	    $ncpserver = $1;
	    $ncpqueue = $2;
	} else {
	    die qq(The "ncp://" URI must at least contain the server name and the share name!\n);
	}
    }

    return 0 if !$in->ask_from(N("NetWare Printer Options"),
N("To print on a NetWare printer, you need to provide the NetWare print server name (Note! it may be different from its TCP/IP hostname!) as well as the print queue name for the printer you wish to access and any applicable user name and password."), [
{ label => N("Printer Server"), val => \$ncpserver },
{ label => N("Print Queue Name"), val => \$ncpqueue },
{ label => N("User name"), val => \$ncpuser },
{ label => N("Password"), val => \$ncppassword, hidden => 1 } ],
complete => sub {
    unless ($ncpserver ne "") {
	$in->ask_warn(N("Error"), N("NCP server name missing!"));
	return (1,0);
    }
    unless ($ncpqueue ne "") {
	$in->ask_warn(N("Error"), N("NCP queue name missing!"));
	return (1,1);
    }
    return 0;
}
					);
    # Generate the Foomatic URI
    $printer->{currentqueue}{connect} =
    join '', ("ncp://", ($ncpuser && ($ncpuser . 
    ($ncppassword && ":$ncppassword") . '@')),
    "$ncpserver/$ncpqueue");

    if (!$::testing && !files_exist('/usr/bin/nprint')) {
	$in->do_pkgs->install('ncpfs') or do {
            $in->ask_warn(N("Error"),
		N("Could not install the %s packages!",
		  "ncpfs") . " " .
		N("Aborting"));
	    return 0;
        };
    } 
    1;
}

sub setup_socket {
    my ($printer, $in, $upNetwork) = @_;

    # Check whether the network functionality is configured and
    # running
    if (!check_network($printer, $in, $upNetwork, 0)) { return 0 };

#    $in->set_help('setupSocket') if $::isInstall;

    my ($uri, $remotehost, $remoteport);
    my $queue = $printer->{OLD_QUEUE};
    if ($printer->{configured}{$queue} &&
	$printer->{currentqueue}{connect} =~  m!^(socket:|ptal://?hpjd:)!) {
	$uri = $printer->{currentqueue}{connect};
	if ($uri =~ m!^ptal:!) {
	    if ($uri =~ m!^ptal://?hpjd:([^/:]+):([0-9]+)/?\s*$!) {
		my $ptalport = $2 - 9100;
		($remotehost, $remoteport) = ($1, $ptalport);
	    } elsif ($uri =~ m!^ptal://?hpjd:([^/:]+)\s*$!) {
		($remotehost, $remoteport) = ($1, 9100);
	    }
	} else {
	    ($remotehost, $remoteport) =
		$uri =~ m!^\s*socket://([^/:]+):([0-9]+)/?\s*$!;
	}
    } else {
	$remotehost = "";
	$remoteport = "9100";
    }

    my $autodetect = 0;
    my @autodetected;
    my $menuentries;
    my @menuentrieslist;
    my $menuchoice = "";
    my $oldmenuchoice = "";
    if ($printer->{AUTODETECT}) {
	$autodetect = 1;
	my $_w = $in->wait_message(N("Printer auto-detection"), N("Scanning network..."));
	@autodetected = printer::detect::net_detect();
     my ($host, $port);
	foreach my $p (@autodetected) {
	    my $menustr;
	    if ($p->{port} =~ m!^socket://([^:]+):(\d+)$!) {
             $host = $1;
             $port = $2;
         }
	    if ($p->{val}{DESCRIPTION}) {
		$menustr = $p->{val}{DESCRIPTION};
		$menustr .= N(", host \"%s\", port %s",
			      $host, $port);
	    } else {
		$menustr = N("Host \"%s\", port %s", $host, $port);
	    }
	    $menuentries->{$menustr} = $p->{port};
	    if ($host eq $remotehost &&
		$host eq $remotehost) {
		$menuchoice = $menustr;
	    }
	}
	@menuentrieslist = sort { 
	    $menuentries->{$a} cmp $menuentries->{$b};
	} keys(%$menuentries);
	if ($printer->{configured}{$queue} &&
	    $printer->{currentqueue}{connect} =~ m!^(socket:|ptal://?hpjd:)! &&
	    $menuchoice eq "") {
	    my $menustr;
	    if ($printer->{currentqueue}{make}) {
		$menustr = "$printer->{currentqueue}{make} $printer->{currentqueue}{model}";
		$menustr .= N(", host \"%s\", port %s",
			      $remotehost, $remoteport);
	    } else {
		$menustr = N("Host \"%s\", port %s",
			      $remotehost, $remoteport);
	    }
	    $menuentries->{$menustr} = "socket://$remotehost:$remoteport";
	    unshift(@menuentrieslist, $menustr);
	    $menuchoice = $menustr;
	}
	if ($#menuentrieslist < 0) {
	    $autodetect = 0;
	} elsif ($menuchoice eq "") {
	    $menuchoice = $menuentrieslist[0];
	    if ($menuentries->{$menuentrieslist[0]} =~ m!^socket://([^:]+):(\d+)$!) {
             $remotehost = $1;
             $remoteport = $2;
         }
	}
	$oldmenuchoice = $menuchoice;
    }

    return 0 if !$in->ask_from_(
	 {
	     title => N("TCP/Socket Printer Options"),
	     messages => ($autodetect ?
			  N("Choose one of the auto-detected printers from the list or enter the hostname or IP and the optional port number (default is 9100) in the input fields.") :
			  N("To print to a TCP or socket printer, you need to provide the host name or IP of the printer and optionally the port number (default is 9100). On HP JetDirect servers the port number is usually 9100, on other servers it can vary. See the manual of your hardware.")),
		 callbacks => {
		 complete => sub {
		     unless ($remotehost ne "") {
			 $in->ask_warn(N("Error"), N("Printer host name or IP missing!"));
			 return (1,0);
		     }
		     unless ($remoteport =~ /^[0-9]+$/) {
			 $in->ask_warn(N("Error"), N("The port number should be an integer!"));
			 return (1,1);
		     }
		     return 0;
		 },
		 changed => sub {
		     return 0 if !$autodetect;
		     if ($oldmenuchoice ne $menuchoice) {
                   if ($menuentries->{$menuchoice} =~ m!^socket://([^:]+):(\d+)$!) {
                       $remotehost = $1;
                       $remoteport = $2;
                   }
                   $oldmenuchoice = $menuchoice;
		     }
		     return 0;
		 }
	     }
	 },
	 [
	  { label => ($autodetect ? "" : N("Printer host name or IP")),
	    val => \$remotehost },
	  { label => ($autodetect ? "" : N("Port")), val => \$remoteport },
	  if_($autodetect,
	   { val => \$menuchoice, list => \@menuentrieslist, 
	     not_edit => 0, format => \&translate, sort => 0,
	     allow_empty_list => 1, type => 'list' })
	  ]
	 );
    
    #- make the Foomatic URI
    $printer->{currentqueue}{connect} = 
	join '', ("socket://$remotehost", $remoteport ? ":$remoteport" : ());

    #- LPD and LPRng need netcat ('nc') to access to socket printers
    if (($printer->{SPOOLER} eq 'lpd' || $printer->{SPOOLER} eq 'lprng') && 
        !$::testing && !files_exist('/usr/bin/nc')) {
        $in->do_pkgs->install('nc') or do {
            $in->ask_warn(N("Error"),
		N("Could not install the %s packages!",
		  "nc") . " " .
		N("Aborting"));
	    return 0;
	}
    }

    # Auto-detect printer model
    my $modelinfo;
    if ($printer->{AUTODETECT}) {
	$modelinfo = printer::detect::getSNMPModel($remotehost);
    }
    my $auto_hpoj;
    if (defined($modelinfo) &&
	$modelinfo->{MANUFACTURER} ne "" &&
	$modelinfo->{MODEL} ne "") {
        $auto_hpoj = 1;
    } else {
	$auto_hpoj = 0;
    }

    # Do configuration of multi-function devices and look up model name
    # in the printer database
    setup_common($printer, $in,
		  "$modelinfo->{MANUFACTURER} $modelinfo->{MODEL}", 
		  $printer->{currentqueue}{connect}, $auto_hpoj,
                  ({port => $printer->{currentqueue}{connect},
                    val => $modelinfo }));
    1;
}

sub setup_uri {
    my ($printer, $in, $upNetwork) = @_;

#    $in->set_help('setupURI') if $::isInstall;
    if ($printer->{AUTODETECT} and ($printer->{SPOOLER} eq 'cups')) {
	my $_w = $in->wait_message(N("Printerdrake"), 
				   N("Refreshing Device URI list..."));
	printer::services::restart("cups");
    }
    return if !$in->ask_from(N("Printer Device URI"),
N("You can specify directly the URI to access the printer. The URI must fulfill either the CUPS or the Foomatic specifications. Note that not all URI types are supported by all the spoolers."), [
{ label => N("Printer Device URI"),
val => \$printer->{currentqueue}{connect},
list => [ if_($printer->{currentqueue}{connect},
	      $printer->{currentqueue}{connect}),
	  ($printer->{SPOOLER} eq 'cups' ?
	   printer::cups::lpinfo_v() :
	   ("parallel:/",
	    "usb:/",
	    "serial:/",
	    "http://",
	    "ipp://",
	    "lpd://",
	    "smb://",
	    "ncp://",
	    "socket://",
	    "ptal:/mlc:",
	    "ptal:/hpjd:",
	    "file:/",
	    'postpipe:""')),
	  ], not_edit => 0, sort => 0 }, ],
complete => sub {
    unless ($printer->{currentqueue}{connect} =~ /[^:]+:.+/) {
	$in->ask_warn(N("Error"), N("A valid URI must be entered!"));
	return (1,0);
    }
    return 0;
}
    );

    # Non-local printer, check network and abort if no network available
    if ($printer->{currentqueue}{connect} !~ m!^(file|parallel|usb|serial|mtink|ptal://?mlc):/! &&
        !check_network($printer, $in, $upNetwork, 0)) { 
        return 0;
    # If the chosen protocol needs additional software, install it.
    } elsif ($printer->{currentqueue}{connect} =~ /^lpd:/ &&
        $printer->{SPOOLER} eq 'lpd' &&
        !$::testing && !files_exist('/usr/bin/rlpr')) {
	# LPD does not support filtered queues to a remote LPD server by itself
	# It needs an additional program as "rlpr"
        $in->do_pkgs->install('rlpr') or do {
            $in->ask_warn(N("Error"),
		N("Could not install the %s packages!",
		  "rlpr") . " " .
		N("Aborting"));
		return 0;
            };
    } elsif ($printer->{currentqueue}{connect} =~ /^smb:/ &&
        !$::testing && !files_exist('/usr/bin/smbclient')) {
	$in->do_pkgs->install('samba-client') or do {
            $in->ask_warn(N("Error"),
		N("Could not install the %s packages!",
		  "Samba client") . " " .
		N("Aborting"));
		return 0;
            };
    } elsif ($printer->{currentqueue}{connect} =~ /^ncp:/ &&
	!$::testing && !files_exist('/usr/bin/nprint')) {
	$in->do_pkgs->install('ncpfs') or do {
            $in->ask_warn(N("Error"),
		N("Could not install the %s packages!",
		  "ncpfs") . " " .
		N("Aborting"));
		return 0;
            };
    } elsif ($printer->{currentqueue}{connect} =~ /^socket:/ &&
	#- LPD and LPRng need netcat ('nc') to access to socket printers
	($printer->{SPOOLER} eq 'lpd' || $printer->{SPOOLER} eq 'lprng') &&
        !$::testing && !files_exist('/usr/bin/nc')) {
        $in->do_pkgs->install('nc') or do {
            $in->ask_warn(N("Error"),
		N("Could not install the %s packages!",
		  "nc") . " " .
		N("Aborting"));
		return 0;
            };
    }

    if ($printer->{currentqueue}{connect} =~ m!^socket://([^:/]+)! ||
        $printer->{currentqueue}{connect} =~ m!^lpd://([^:/]+)! ||
        $printer->{currentqueue}{connect} =~ m!^http://([^:/]+)! ||
        $printer->{currentqueue}{connect} =~ m!^ipp://([^:/]+)!) {
	
	# Auto-detect printer model (works if host is an ethernet-connected
	# printer)
	my $remotehost = $1;
	my $modelinfo = printer::detect::getSNMPModel($remotehost);
        my $auto_hpoj;
        if (defined($modelinfo) &&
            $modelinfo->{MANUFACTURER} ne "" &&
	    $modelinfo->{MODEL} ne "") {
            $in->ask_warn(N("Information"), N("Detected model: %s %s",
                                $modelinfo->{MANUFACTURER},
				$modelinfo->{MODEL}));
            $auto_hpoj = 1;
        } else {
	    $auto_hpoj = 0;
        }

        # Do configuration of multi-function devices and look up model name
        # in the printer database
        setup_common($printer, $in,
		      "$modelinfo->{MANUFACTURER} $modelinfo->{MODEL}", 
		      $printer->{currentqueue}{connect}, $auto_hpoj,
                      ({port => $printer->{currentqueue}{connect},
                        val => $modelinfo }));
    }

    1;
}

sub setup_postpipe {
    my ($printer, $in) = @_;

#    $in->set_help('setupPostpipe') if $::isInstall;
    my $uri;
    my $commandline;
    my $queue = $printer->{OLD_QUEUE};
    if ($printer->{configured}{$queue} &&
	$printer->{currentqueue}{connect} =~ m/^postpipe:/) {
	$uri = $printer->{currentqueue}{connect};
	$commandline = $1 if $uri =~ m!^\s*postpipe:"(.*)"$!;
    } else {
	$commandline = "";
    }

    return if !$in->ask_from(N("Pipe into command"),
N("Here you can specify any arbitrary command line into which the job should be piped instead of being sent directly to a printer."), [
{ label => N("Command line"),
val => \$commandline }, ],
complete => sub {
    unless ($commandline ne "") {
	$in->ask_warn(N("Error"), N("A command line must be entered!"));
	return (1,0);
    }
    return 0;
}
);

    #- make the Foomatic URI
    $printer->{currentqueue}{connect} = "postpipe:$commandline";
    
    1;
}

sub setup_common {

    my ($printer, $in, $makemodel, $device, $do_auto_detect, @autodetected) = @_;

    #- Check whether the printer is an HP multi-function device and 
    #- configure HPOJ if it is one

    my $ptaldevice = "";
    my $isHPOJ = 0;
    my $w;
    if ($device =~ m!^/dev/! || $device =~ m!^socket://!) {
	# Ask user whether he has a multi-function device when he didn't
	# do auto-detection or when auto-detection failed
	my $searchunknown = N("Unknown model");
	if (!$do_auto_detect ||
	    $makemodel eq $searchunknown ||
	    $makemodel =~ /^\s*$/) {
	    local $::isWizard = 0;
	    if (!$printer->{noninteractive}) {
		$isHPOJ = $in->ask_yesorno(N("Add a new printer"),
					   N("Is your printer a multi-function device from HP or Sony (OfficeJet, PSC, LaserJet 1100/1200/1220/3200/3300 with scanner, DeskJet 450, Sony IJP-V100), an HP PhotoSmart or an HP LaserJet 2200?"), 0);
	    }
	}
	if ($makemodel =~ /HP\s+(OfficeJet|PSC|PhotoSmart|LaserJet\s+(1200|1220|2200|3200|33.0)|(DeskJet|dj)\s*450)/i ||
	    $makemodel =~ /Sony\s+IJP[\s\-]+V[\s\-]+100/i ||
	    $isHPOJ) {
	    # Install HPOJ package
	    my $hpojinstallfailed = 0;
	    if (!$::testing &&
		!files_exist(qw(/usr/sbin/ptal-mlcd
				/usr/sbin/ptal-init
				/usr/bin/xojpanel
				/usr/sbin/lsusb))) {
		$w = $in->wait_message(N("Printerdrake"),
					   N("Installing HPOJ package..."))
		    if !$printer->{noninteractive};
		$in->do_pkgs->install('hpoj', 'xojpanel', 'usbutils')
		    or do {
			$in->ask_warn(N("Warning"),
				      N("Could not install the %s packages!",
					"HPOJ") . " " .
				      N("Only printing will be possible on the %s.",
					$makemodel));
			$hpojinstallfailed = 1;
		    };
	    }
	    # Configure and start HPOJ
	    undef $w;
	    $w = $in->wait_message
		(N("Printerdrake"),
		 N("Checking device and configuring HPOJ..."))
		if !$printer->{noninteractive};
	    
	    eval {$ptaldevice = printer::main::configure_hpoj
		      ($device, @autodetected) if !$hpojinstallfailed;};

	    if (my $err = $@) {
		warn qq(HPOJ conf faillure: "$err");
		log::l(qq(HPOJ conf faillure: "$err"));
	    }

	    if ($ptaldevice) {
		# HPOJ has determined the device name, make use of it if we
		# didn't know it before
		if (!$do_auto_detect ||
		    !$makemodel ||
		    $makemodel eq $searchunknown ||
		    $makemodel =~ /^\s*$/) {
		    $makemodel = $ptaldevice;
		    $makemodel =~ s/^.*:([^:]+)$/$1/;
		    $makemodel =~ s/_/ /g;
		    if ($makemodel =~ /^\s*IJP/i) {
			$makemodel = "Sony $makemodel";
		    } else {
			$makemodel = "HP $makemodel";
		    }
		}
		# Configure scanning with SANE on the MF device
		if ($makemodel !~ /HP\s+PhotoSmart/i &&
		    $makemodel !~ /HP\s+LaserJet\s+2200/i &&
		    $makemodel !~ /HP\s+(DeskJet|dj)\s*450/i) {
		    # Install SANE
		    if (!$::testing &&
			(!files_exist(qw(/usr/bin/scanimage
					/usr/bin/xscanimage
					/etc/sane.d/dll.conf
					/usr/lib/libsane-hpoj.so.1)) ||
			 (!files_exist(qw(/usr/bin/xsane)) &&
			  !files_exist(qw(/usr/bin/kooka)) &&
			  !$in->do_pkgs->is_installed('scanner-gui')))) {
			undef $w;
			$w = $in->wait_message
			    (N("Printerdrake"),
			     N("Installing SANE packages..."))
			    if !$printer->{noninteractive};
			$in->do_pkgs->install('sane-backends',
					      'sane-frontends',
					      'scanner-gui', 
					      'libsane-hpoj1')
			    or do {
				$in->ask_warn(N("Warning"),
					      N("Could not install the %s packages!",
						"SANE") . " " .
					      N("Scanning on the %s will not be possible.",
						$makemodel));
			    };
		    }
		    # Configure the HPOJ SANE backend
		    printer::main::config_sane();
		}
		# Configure photo card access with mtools and MToolsFM
		if (($makemodel =~ /HP\s+PhotoSmart/i ||
		     $makemodel =~ /HP\s+PSC\s*9[05]0/i ||
		     $makemodel =~ /HP\s+PSC\s*135\d/i ||
		     $makemodel =~ /HP\s+PSC\s*21[57]\d/i ||
		     $makemodel =~ /HP\s+PSC\s*22\d\d/i ||
		     $makemodel =~ /HP\s+PSC\s*2[45]\d\d/i ||
		     $makemodel =~ /HP\s+OfficeJet\s+D\s*1[45]5/i ||
		     $makemodel =~ /HP\s+OfficeJet\s+71[34]0/i ||
		     $makemodel =~ /HP\s+(DeskJet|dj)\s*450/i) &&
		    $makemodel !~ /HP\s+PhotoSmart\s+7150/i) {
		    # Install mtools and MToolsFM
		    if (!$::testing &&
			!files_exist(qw(/usr/bin/mdir
						  /usr/bin/mcopy
						  /usr/bin/MToolsFM
						  ))) {
			undef $w;
			$w = $in->wait_message
			    (N("Printerdrake"),
			     N("Installing mtools packages..."))
			    if !$printer->{noninteractive};
			$in->do_pkgs->install('mtools', 'mtoolsfm')
			    or do {
				$in->ask_warn(N("Warning"),
					      N("Could not install the %s packages!",
						"Mtools") . " " .
					      N("Photo memory card access on the %s will not be possible.",
						$makemodel));
			    };
		    }
		    # Configure mtools/MToolsFM for photo card access
		    printer::main::config_photocard();
		}
		
		if (!$printer->{noninteractive}) {
		    my $text = "";
		    # Inform user about how to scan with his MF device
		    $text = scanner_help($makemodel, "ptal://$ptaldevice");
		    if ($text) {
			undef $w;
			$in->ask_warn
			    (N("Scanning on your HP multi-function device"),
			     $text);
		    }
		    # Inform user about how to access photo cards with his 
		    # MF device
		    $text = photocard_help($makemodel, "ptal://$ptaldevice");
		    if ($text) {
			undef $w;
			$in->ask_warn(N("Photo memory card access on your HP multi-function device"),
				      $text);
		    }
		}
		# make the DeviceURI from $ptaldevice.
		$printer->{currentqueue}{connect} = "ptal://" . $ptaldevice;
	    } else {
		# make the DeviceURI from $device.
		$printer->{currentqueue}{connect} = $device;
	    }
	    $w = $in->wait_message
		(N("Printerdrake"),
		 N("Checking device and configuring HPOJ..."))
		if !$printer->{noninteractive} && !defined($w);
	} else {
	    # make the DeviceURI from $device.
	    $printer->{currentqueue}{connect} = $device;
	}
    } else {
	# make the DeviceURI from $device.
	$printer->{currentqueue}{connect} = $device;
    }

    if ($printer->{currentqueue}{connect} !~ /:/) {
	if ($printer->{currentqueue}{connect} =~ /usb/) {
	    $printer->{currentqueue}{connect} =
		"usb:" . $printer->{currentqueue}{connect};
	} elsif ($printer->{currentqueue}{connect} =~ /(serial|tty)/) {
	    $printer->{currentqueue}{connect} =
		"serial:" . $printer->{currentqueue}{connect};
	} elsif ($printer->{currentqueue}{connect} =~ 
		 /(printers|parallel|parport|lp\d)/) {
	    $printer->{currentqueue}{connect} =
		"parallel:" . $printer->{currentqueue}{connect};
	} else {
	    $printer->{currentqueue}{connect} =
		"file:" . $printer->{currentqueue}{connect};
	}
    }

    #- if CUPS is the spooler, make sure that CUPS knows the device
    if ($printer->{SPOOLER} eq "cups" &&
	$device !~ /^lpd:/ &&
	$device !~ /^smb:/ &&
	$device !~ /^socket:/ &&
	$device !~ /^http:/ &&
	$device !~ /^ipp:/) {
	my $_w = $in->wait_message
	    (N("Printerdrake"),
	     N("Making printer port available for CUPS..."))
	    if !$printer->{noninteractive};
	printer::main::assure_device_is_available_for_cups($ptaldevice ||
							   $device);
    }

    #- Read the printer driver database if necessary
    if (keys %printer::main::thedb == 0) {
	my $_w = $in->wait_message
	    (N("Printerdrake"), N("Reading printer database..."))
	    if !$printer->{noninteractive};
        printer::main::read_printer_db($printer, $printer->{SPOOLER});
    }

    #- Search the database entry which matches the detected printer best
    my $descr = "";
    foreach (@autodetected) {
	$device eq $_->{port} or next;
	my ($automake, $automodel, $autodescr, $autocmdset, $autosku) =
	    ($_->{val}{MANUFACTURER}, $_->{val}{MODEL},
	     $_->{val}{DESCRIPTION}, $_->{val}{'COMMAND SET'},
	     $_->{val}{SKU});
	# Clean some manufacturer's names
	my $descrmake = printer::main::clean_manufacturer_name($automake);
	if ($automake && $autosku) {
	    $descr = "$descrmake|$autosku";
	} elsif ($automake && $automodel) {
	    $descr = "$descrmake|$automodel";
	} elsif ($autodescr) {
	    $descr = $autodescr;
	    $descr =~ s/ /|/;
	} elsif ($automodel) {
	    $descr = $automodel;
	    $descr =~ s/ /|/;
	} elsif ($automake) {
	    $descr = "$descrmake|";
	}
	# Remove manufacturer's name from the beginning of the
	# description (do not do this with manufacturer names which
	# contain odd characters)
	$descr =~ s/^$descrmake\|\s*$descrmake\s*/$descrmake|/i
	    if $descrmake && 
           $descrmake !~ m![\\/\(\)\[\]\|\.\$\@\%\*\?]!;
	# Clean up the description from noise which makes the best match
	# difficult
	$descr =~ s/\s+[Ss]eries//i;
	$descr =~ s/\s+\(?[Pp]rinter\)?$//i;
	$printer->{DBENTRY} = "";
	# Try to find an exact match, check both whether the detected
	# make|model is in the make|model of the database entry and vice versa
	# If there is more than one matching database entry, the longest match
	# counts.
	my $matchlength = -100;
	foreach my $entry (keys %printer::main::thedb) {
	    # Try to match the device ID string of the auto-detection
	    if ($printer::main::thedb{$entry}{make} =~ /Generic/i) {
		# Database entry for generic printer, check printer
		# languages (command set)
		my $_cmd = $printer::main::thedb{$entry}{devidcmd};
		if ($printer::main::thedb{$entry}{model} =~ 
		    m!PCL\s*5/5e!i) {
		    # Generic PCL 5/5e Printer
		    if ($autocmdset =~
			/(^|[:,])PCL\s*\-*\s*(5|)([,;]|$)/i) {
			if ($matchlength < -50) {
			    $matchlength = -50;
			    $printer->{DBENTRY} = $entry;
			    next;
			}
		    }
		} elsif ($printer::main::thedb{$entry}{model} =~ 
		    m!PCL\s*(6|XL)!i) {
		    # Generic PCL 6/XL Printer
		    if ($autocmdset =~
			/(^|[:,])PCL\s*\-*\s*(6|XL)([,;]|$)/i) {
			if ($matchlength < -40) {
			    $matchlength = -40;
			    $printer->{DBENTRY} = $entry;
			    next;
			}
		    }
		} elsif ($printer::main::thedb{$entry}{model} =~ 
		    m!(PostScript)!i) {
		    # Generic PostScript Printer
		    if ($autocmdset =~
			/(^|[:,])(PS|POSTSCRIPT)[^:;,]*([,;]|$)/i) {
			if ($matchlength < -10) {
			    $matchlength = -10;
			    $printer->{DBENTRY} = $entry;
			    next;
			}
		    }
		}
	    } else {
		# "Real" manufacturer, check manufacturer, model, and/or
		# description
		my $matched = 1;
		my ($mfg, $mdl, $des);
		if ($mfg = $printer::main::thedb{$entry}{devidmake}) {
		    $mfg =~ s/Hewlett[-\s_]Packard/HP/i;
		    if (uc($mfg) ne uc($automake)) {
			$matched = 0;
		    }
		}
		if ($mdl = $printer::main::thedb{$entry}{devidmodel}) {
		    if ($mdl ne $automodel) {
			$matched = 0;
		    }
		}
		if ($des = $printer::main::thedb{$entry}{deviddesc}) {
		    $des =~ s/Hewlett[-\s_]Packard/HP/;
		    $des =~ s/HEWLETT[-\s_]PACKARD/HP/;    
		    if ($des ne $autodescr) {