summaryrefslogtreecommitdiffstats
path: root/package/hotplug/diethotplug-0.5.tar
blob: a22c3cd5b413be4802c370acfbb34c993380ce89 (plain)
ofshex dumpascii
0000 64 69 65 74 68 6f 74 70 6c 75 67 2d 30 2e 35 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diethotplug-0.5/................
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 31 37 35 30 00 30 30 30 31 37 35 30 00 30 30 30 30 ....0000755.0001750.0001750.0000
0080 30 30 30 30 30 30 30 00 31 30 34 36 36 37 31 30 34 33 34 00 30 31 34 30 37 33 00 20 35 00 00 00 0000000.10466710434.014073..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...andersen...............
0120 00 00 00 00 00 00 00 00 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........andersen...............
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 64 69 65 74 68 6f 74 70 6c 75 67 2d 30 2e 35 2f 4d 61 6b 65 66 69 6c 65 00 00 00 00 00 00 00 00 diethotplug-0.5/Makefile........
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 31 37 35 30 00 30 30 30 31 37 35 30 00 30 30 30 30 ....0000644.0001750.0001750.0000
0280 30 30 30 32 33 31 37 00 31 30 34 36 36 37 31 30 34 33 34 00 30 31 35 35 33 36 00 20 30 00 00 00 0002317.10466710434.015536..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...andersen...............
0320 00 00 00 00 00 00 00 00 00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........andersen...............
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 23 20 4d 61 6b 65 66 69 6c 65 20 66 6f 72 20 64 69 65 74 68 6f 74 70 6c 75 67 0a 0a 23 20 53 65 #.Makefile.for.diethotplug..#.Se
0420 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 60 74 72 75 65 27 20 74 6f 20 6d 61 6b t.the.following.to.`true'.to.mak
0440 65 20 61 20 64 65 62 75 67 67 61 62 6c 65 20 62 75 69 6c 64 2e 0a 23 20 4c 65 61 76 65 20 74 68 e.a.debuggable.build..#.Leave.th
0460 69 73 20 73 65 74 20 74 6f 20 60 66 61 6c 73 65 27 20 66 6f 72 20 70 72 6f 64 75 63 74 69 6f 6e is.set.to.`false'.for.production
0480 20 75 73 65 2e 0a 44 45 42 55 47 20 3d 20 66 61 6c 73 65 0a 0a 23 20 49 66 20 79 6f 75 20 61 72 .use..DEBUG.=.false..#.If.you.ar
04a0 65 20 72 75 6e 6e 69 6e 67 20 61 20 63 72 6f 73 73 20 63 6f 6d 70 69 6c 65 72 2c 20 79 6f 75 20 e.running.a.cross.compiler,.you.
04c0 6d 61 79 20 77 61 6e 74 20 74 6f 20 73 65 74 20 74 68 69 73 0a 23 20 74 6f 20 73 6f 6d 65 74 68 may.want.to.set.this.#.to.someth
04e0 69 6e 67 20 6d 6f 72 65 20 69 6e 74 65 72 65 73 74 69 6e 67 2c 20 6c 69 6b 65 20 22 61 72 6d 2d ing.more.interesting,.like."arm-
0500 6c 69 6e 75 78 2d 22 2e 20 20 49 20 79 6f 75 20 77 61 6e 74 0a 23 20 74 6f 20 63 6f 6d 70 69 6c linux-"...I.you.want.#.to.compil
0520 65 20 76 73 20 75 43 6c 69 62 63 2c 20 74 68 61 74 20 63 61 6e 20 62 65 20 64 6f 6e 65 20 68 65 e.vs.uClibc,.that.can.be.done.he
0540 72 65 20 61 73 20 77 65 6c 6c 2e 0a 43 52 4f 53 53 20 3d 20 23 2f 75 73 72 2f 69 33 38 36 2d 6c re.as.well..CROSS.=.#/usr/i386-l
0560 69 6e 75 78 2d 75 63 6c 69 62 63 2f 75 73 72 2f 62 69 6e 2f 69 33 38 36 2d 75 63 6c 69 62 63 2d inux-uclibc/usr/bin/i386-uclibc-
0580 0a 43 43 20 3d 20 24 28 43 52 4f 53 53 29 67 63 63 0a 41 52 20 3d 20 24 28 43 52 4f 53 53 29 61 .CC.=.$(CROSS)gcc.AR.=.$(CROSS)a
05a0 72 0a 53 54 52 49 50 20 3d 20 24 28 43 52 4f 53 53 29 73 74 72 69 70 0a 0a 0a 23 20 75 73 65 20 r.STRIP.=.$(CROSS)strip...#.use.
05c0 27 2d 4f 73 27 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2c '-Os'.optimization.if.available,
05e0 20 65 6c 73 65 20 75 73 65 20 2d 4f 32 0a 4f 50 54 49 4d 49 5a 41 54 49 4f 4e 20 3a 3d 20 24 7b .else.use.-O2.OPTIMIZATION.:=.${
0600 73 68 65 6c 6c 20 69 66 20 24 28 43 43 29 20 2d 4f 73 20 2d 53 20 2d 6f 20 2f 64 65 76 2f 6e 75 shell.if.$(CC).-Os.-S.-o./dev/nu
0620 6c 6c 20 2d 78 63 20 2f 64 65 76 2f 6e 75 6c 6c 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 26 31 ll.-xc./dev/null.>/dev/null.2>&1
0640 3b 20 5c 0a 09 09 74 68 65 6e 20 65 63 68 6f 20 22 2d 4f 73 22 3b 20 65 6c 73 65 20 65 63 68 6f ;.\...then.echo."-Os";.else.echo
0660 20 22 2d 4f 32 22 20 3b 20 66 69 7d 0a 0a 57 41 52 4e 49 4e 47 53 20 3a 3d 20 2d 57 61 6c 6c 20 ."-O2".;.fi}..WARNINGS.:=.-Wall.
0680 2d 57 73 68 61 64 6f 77 20 2d 57 73 74 72 69 63 74 2d 70 72 6f 74 6f 74 79 70 65 73 0a 43 46 4c -Wshadow.-Wstrict-prototypes.CFL
06a0 41 47 53 2b 3d 2d 70 69 70 65 0a 0a 23 20 69 66 20 44 45 42 55 47 20 69 73 20 65 6e 61 62 6c 65 AGS+=-pipe..#.if.DEBUG.is.enable
06c0 64 2c 20 74 68 65 6e 20 77 65 20 64 6f 20 6e 6f 74 20 73 74 72 69 70 20 6f 72 20 6f 70 74 69 6d d,.then.we.do.not.strip.or.optim
06e0 69 7a 65 0a 69 66 65 71 20 28 24 28 44 45 42 55 47 29 2c 74 72 75 65 29 0a 09 43 46 4c 41 47 53 ize.ifeq.($(DEBUG),true)..CFLAGS
0700 20 20 2b 3d 20 24 28 57 41 52 4e 49 4e 47 53 29 20 2d 4f 31 20 2d 67 20 2d 44 44 45 42 55 47 20 ..+=.$(WARNINGS).-O1.-g.-DDEBUG.
0720 2d 44 5f 47 4e 55 5f 53 4f 55 52 43 45 0a 09 4c 44 46 4c 41 47 53 20 2b 3d 20 2d 57 6c 2c 2d 77 -D_GNU_SOURCE..LDFLAGS.+=.-Wl,-w
0740 61 72 6e 2d 63 6f 6d 6d 6f 6e 0a 09 53 54 52 49 50 43 4d 44 20 3d 20 2f 62 69 6e 2f 74 72 75 65 arn-common..STRIPCMD.=./bin/true
0760 20 2d 53 69 6e 63 65 5f 77 65 5f 61 72 65 5f 64 65 62 75 67 67 69 6e 67 0a 65 6c 73 65 0a 09 43 .-Since_we_are_debugging.else..C
0780 46 4c 41 47 53 20 20 2b 3d 20 24 28 57 41 52 4e 49 4e 47 53 29 20 24 28 4f 50 54 49 4d 49 5a 41 FLAGS..+=.$(WARNINGS).$(OPTIMIZA
07a0 54 49 4f 4e 29 20 2d 66 6f 6d 69 74 2d 66 72 61 6d 65 2d 70 6f 69 6e 74 65 72 20 2d 44 5f 47 4e TION).-fomit-frame-pointer.-D_GN
07c0 55 5f 53 4f 55 52 43 45 0a 09 4c 44 46 4c 41 47 53 20 2b 3d 20 2d 73 20 2d 57 6c 2c 2d 77 61 72 U_SOURCE..LDFLAGS.+=.-s.-Wl,-war
07e0 6e 2d 63 6f 6d 6d 6f 6e 0a 09 53 54 52 49 50 43 4d 44 20 3d 20 24 28 53 54 52 49 50 29 20 2d 73 n-common..STRIPCMD.=.$(STRIP).-s
0800 20 2d 2d 72 65 6d 6f 76 65 2d 73 65 63 74 69 6f 6e 3d 2e 6e 6f 74 65 20 2d 2d 72 65 6d 6f 76 65 .--remove-section=.note.--remove
0820 2d 73 65 63 74 69 6f 6e 3d 2e 63 6f 6d 6d 65 6e 74 0a 65 6e 64 69 66 0a 0a 0a 61 6c 6c 3a 20 68 -section=.comment.endif...all:.h
0840 6f 74 70 6c 75 67 0a 0a 68 6f 74 70 6c 75 67 3a 20 68 6f 74 70 6c 75 67 2e 63 0a 09 24 28 43 43 otplug..hotplug:.hotplug.c..$(CC
0860 29 20 24 28 43 46 4c 41 47 53 29 20 24 28 4c 44 46 4c 41 47 53 29 20 68 6f 74 70 6c 75 67 2e 63 ).$(CFLAGS).$(LDFLAGS).hotplug.c
0880 20 2d 6f 20 68 6f 74 70 6c 75 67 0a 09 24 28 53 54 52 49 50 43 4d 44 29 20 68 6f 74 70 6c 75 67 .-o.hotplug..$(STRIPCMD).hotplug
08a0 0a 0a 63 6c 65 61 6e 3a 0a 09 72 6d 20 2d 72 66 20 63 6f 72 65 20 68 6f 74 70 6c 75 67 20 2a 2e ..clean:..rm.-rf.core.hotplug.*.
08c0 5b 61 6f 5d 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ao]............................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 69 65 74 68 6f 74 70 6c .......................diethotpl
0a00 75 67 2d 30 2e 35 2f 68 6f 74 70 6c 75 67 2e 63 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ug-0.5/hotplug.c................
0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 30 30 30 36 ...........................00006
0a60 34 34 00 30 30 30 31 37 35 30 00 30 30 30 31 37 35 30 00 30 30 30 30 30 30 36 35 34 33 34 00 31 44.0001750.0001750.00000065434.1
0a80 30 34 36 36 37 31 30 34 33 34 00 30 31 35 37 33 35 00 20 30 00 00 00 00 00 00 00 00 00 00 00 00 0466710434.015735..0............
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 75 73 74 61 72 20 20 00 ........................ustar...
0b00 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 andersen........................
0b20 61 6e 64 65 72 73 65 6e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 andersen........................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2f 2a 0a 20 2a 20 68 6f 74 ......................./*..*.hot
0c00 70 6c 75 67 2e 63 0a 20 2a 0a 20 2a 20 41 20 76 65 72 73 69 6f 6e 20 6f 66 20 2f 73 62 69 6e 2f plug.c..*..*.A.version.of./sbin/
0c20 68 6f 74 70 6c 75 67 20 74 68 61 74 20 69 73 20 6e 6f 74 20 61 20 73 63 72 69 70 74 2e 0a 20 2a hotplug.that.is.not.a.script...*
0c40 0a 20 2a 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 31 20 47 72 65 67 20 4b 72 6f 61 ..*.Copyright.(C).2001.Greg.Kroa
0c60 68 2d 48 61 72 74 6d 61 6e 20 3c 67 72 65 67 40 6b 72 6f 61 68 2e 63 6f 6d 3e 0a 20 2a 0a 20 2a h-Hartman.<greg@kroah.com>..*..*
0c80 09 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 .This.program.is.free.software;.
0ca0 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d you.can.redistribute.it.and/or.m
0cc0 6f 64 69 66 79 20 69 74 0a 20 2a 09 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 odify.it..*.under.the.terms.of.t
0ce0 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 he.GNU.General.Public.License.as
0d00 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 0a 20 2a 09 46 72 65 65 20 53 6f 66 74 77 61 .published.by.the..*.Free.Softwa
0d20 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 76 65 72 73 69 6f 6e 20 32 20 6f 66 20 74 68 65 20 4c re.Foundation.version.2.of.the.L
0d40 69 63 65 6e 73 65 2e 0a 20 2a 0a 20 2a 09 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 icense...*..*.This.program.is.di
0d60 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 stributed.in.the.hope.that.it.wi
0d80 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 0a 20 2a 09 57 49 54 48 4f 55 54 20 41 4e 59 ll.be.useful,.but..*.WITHOUT.ANY
0da0 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c .WARRANTY;.without.even.the.impl
0dc0 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 20 2a 09 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 ied.warranty.of..*.MERCHANTABILI
0de0 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 TY.or.FITNESS.FOR.A.PARTICULAR.P
0e00 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 0a 20 2a 09 47 65 6e 65 72 61 6c 20 URPOSE...See.the.GNU..*.General.
0e20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e Public.License.for.more.details.
0e40 0a 20 2a 0a 20 2a 09 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 ..*..*.You.should.have.received.
0e60 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 a.copy.of.the.GNU.General.Public
0e80 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 0a 20 2a 09 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 .License.along..*.with.this.prog
0ea0 72 61 6d 3b 20 69 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 46 72 65 65 20 53 ram;.if.not,.write.to.the.Free.S
0ec0 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 0a 20 2a 09 36 37 35 oftware.Foundation,.Inc.,..*.675
0ee0 20 4d 61 73 73 20 41 76 65 2c 20 43 61 6d 62 72 69 64 67 65 2c 20 4d 41 20 30 32 31 33 39 2c 20 .Mass.Ave,.Cambridge,.MA.02139,.
0f00 55 53 41 2e 0a 20 2a 0a 20 2a 20 48 61 63 6b 65 64 20 75 70 20 74 6f 20 72 65 61 64 20 74 68 65 USA...*..*.Hacked.up.to.read.the
0f20 20 76 61 72 69 6f 75 73 20 6d 6f 64 75 6c 65 73 2e 2a 6d 61 70 20 66 69 6c 65 73 20 61 6e 64 20 .various.modules.*map.files.and.
0f40 66 6f 72 20 75 73 65 0a 20 2a 20 69 6e 20 42 75 73 79 42 6f 78 20 62 79 20 45 72 69 6b 20 41 6e for.use..*.in.BusyBox.by.Erik.An
0f60 64 65 72 73 65 6e 20 3c 61 6e 64 65 72 73 65 6e 40 63 6f 64 65 70 6f 65 74 2e 6f 72 67 3e 0a 20 dersen.<andersen@codepoet.org>..
0f80 2a 0a 20 2a 2f 0a 0a 0a 23 69 6e 63 6c 75 64 65 20 3c 65 72 72 6e 6f 2e 68 3e 0a 23 69 6e 63 6c *..*/...#include.<errno.h>.#incl
0fa0 75 64 65 20 3c 73 74 64 69 6f 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 61 72 67 2e 68 ude.<stdio.h>.#include.<stdarg.h
0fc0 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 64 64 65 66 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c >.#include.<stddef.h>.#include.<
0fe0 73 74 64 6c 69 62 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68 3e 0a 23 69 stdlib.h>.#include.<string.h>.#i
1000 6e 63 6c 75 64 65 20 3c 73 79 73 6c 6f 67 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 75 6e 69 73 nclude.<syslog.h>.#include.<unis
1020 74 64 2e 68 3e 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 2f 70 61 72 61 6d 2e 68 3e 0a 23 69 6e td.h>.#include.<sys/param.h>.#in
1040 63 6c 75 64 65 20 3c 73 79 73 2f 75 74 73 6e 61 6d 65 2e 68 3e 0a 0a 23 64 65 66 69 6e 65 20 4c clude.<sys/utsname.h>..#define.L
1060 49 4e 45 4c 45 4e 47 54 48 20 38 31 39 32 0a 0a 0a 2f 2a 20 45 6e 61 62 6c 65 20 69 66 20 6e 6f INELENGTH.8192.../*.Enable.if.no
1080 74 20 75 73 65 64 20 61 73 20 61 20 62 75 73 79 62 6f 78 20 61 70 70 6c 65 74 20 2a 2f 0a 23 69 t.used.as.a.busybox.applet.*/.#i
10a0 66 20 31 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 63 6f 6e 73 74 20 61 70 f.1.static.const.char.*.const.ap
10c0 70 5f 6e 61 6d 65 20 3d 20 22 68 6f 74 70 6c 75 67 22 3b 0a 73 74 61 74 69 63 20 76 6f 69 64 20 p_name.=."hotplug";.static.void.
10e0 76 65 72 72 6f 72 5f 6d 73 67 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 76 61 5f 6c 69 73 verror_msg(const.char.*s,.va_lis
1100 74 20 70 29 0a 7b 0a 09 66 66 6c 75 73 68 28 73 74 64 6f 75 74 29 3b 0a 09 66 70 72 69 6e 74 66 t.p).{..fflush(stdout);..fprintf
1120 28 73 74 64 65 72 72 2c 20 22 5c 6e 5c 6e 5c 6e 25 73 3a 20 22 2c 20 61 70 70 5f 6e 61 6d 65 29 (stderr,."\n\n\n%s:.",.app_name)
1140 3b 0a 09 76 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 73 2c 20 70 29 3b 0a 7d 0a 65 78 74 ;..vfprintf(stderr,.s,.p);.}.ext
1160 65 72 6e 20 76 6f 69 64 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 63 6f 6e 73 74 20 63 68 61 72 ern.void.bb_error_msg(const.char
1180 20 2a 73 2c 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f 6c 69 73 74 20 70 3b 0a 0a 09 76 61 5f 73 74 61 .*s,....).{..va_list.p;...va_sta
11a0 72 74 28 70 2c 20 73 29 3b 0a 09 76 65 72 72 6f 72 5f 6d 73 67 28 73 2c 20 70 29 3b 0a 09 76 61 rt(p,.s);..verror_msg(s,.p);..va
11c0 5f 65 6e 64 28 70 29 3b 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 6e 5c 6e 5c _end(p);..fprintf(stderr,."\n\n\
11e0 6e 22 29 3b 0a 7d 0a 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 n");.}..extern.void.bb_error_msg
1200 5f 61 6e 64 5f 64 69 65 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 2e 2e 2e 29 0a 7b 0a 09 _and_die(const.char.*s,....).{..
1220 76 61 5f 6c 69 73 74 20 70 3b 0a 0a 09 76 61 5f 73 74 61 72 74 28 70 2c 20 73 29 3b 0a 09 76 65 va_list.p;...va_start(p,.s);..ve
1240 72 72 6f 72 5f 6d 73 67 28 73 2c 20 70 29 3b 0a 09 76 61 5f 65 6e 64 28 70 29 3b 0a 09 66 70 72 rror_msg(s,.p);..va_end(p);..fpr
1260 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 6e 5c 6e 5c 6e 22 29 3b 0a 09 65 78 69 74 28 45 58 intf(stderr,."\n\n\n");..exit(EX
1280 49 54 5f 46 41 49 4c 55 52 45 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 76 6f 69 64 20 76 70 65 72 IT_FAILURE);.}..static.void.vper
12a0 72 6f 72 5f 6d 73 67 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 2c 20 76 61 5f 6c 69 73 74 20 70 ror_msg(const.char.*s,.va_list.p
12c0 29 0a 7b 0a 09 69 6e 74 20 65 72 72 20 3d 20 65 72 72 6e 6f 3b 0a 0a 09 69 66 20 28 73 20 3d 3d ).{..int.err.=.errno;...if.(s.==
12e0 20 30 29 0a 09 09 73 20 3d 20 22 22 3b 0a 09 76 65 72 72 6f 72 5f 6d 73 67 28 73 2c 20 70 29 3b .0)...s.=."";..verror_msg(s,.p);
1300 0a 09 69 66 20 28 2a 73 29 0a 09 09 73 20 3d 20 22 3a 20 22 3b 0a 09 66 70 72 69 6e 74 66 28 73 ..if.(*s)...s.=.":.";..fprintf(s
1320 74 64 65 72 72 2c 20 22 25 73 25 73 5c 6e 22 2c 20 73 2c 20 73 74 72 65 72 72 6f 72 28 65 72 72 tderr,."%s%s\n",.s,.strerror(err
1340 29 29 3b 0a 09 66 70 72 69 6e 74 66 28 73 74 64 65 72 72 2c 20 22 5c 6e 5c 6e 5c 6e 22 29 3b 0a ));..fprintf(stderr,."\n\n\n");.
1360 7d 0a 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 28 63 6f 6e }..extern.void.bb_perror_msg(con
1380 73 74 20 63 68 61 72 20 2a 73 2c 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f 6c 69 73 74 20 70 3b 0a 0a st.char.*s,....).{..va_list.p;..
13a0 09 76 61 5f 73 74 61 72 74 28 70 2c 20 73 29 3b 0a 09 76 70 65 72 72 6f 72 5f 6d 73 67 28 73 2c .va_start(p,.s);..vperror_msg(s,
13c0 20 70 29 3b 0a 09 76 61 5f 65 6e 64 28 70 29 3b 0a 7d 0a 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 .p);..va_end(p);.}..extern.void.
13e0 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 63 6f 6e 73 74 20 63 68 61 72 bb_perror_msg_and_die(const.char
1400 20 2a 73 2c 20 2e 2e 2e 29 0a 7b 0a 09 76 61 5f 6c 69 73 74 20 70 3b 0a 0a 09 76 61 5f 73 74 61 .*s,....).{..va_list.p;...va_sta
1420 72 74 28 70 2c 20 73 29 3b 0a 09 76 70 65 72 72 6f 72 5f 6d 73 67 28 73 2c 20 70 29 3b 0a 09 76 rt(p,.s);..vperror_msg(s,.p);..v
1440 61 5f 65 6e 64 28 70 29 3b 0a 09 65 78 69 74 28 45 58 49 54 5f 46 41 49 4c 55 52 45 29 3b 0a 7d a_end(p);..exit(EXIT_FAILURE);.}
1460 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 63 6f 6e 73 74 20 6d 65 6d 6f 72 .static.const.char.*.const.memor
1480 79 5f 65 78 68 61 75 73 74 65 64 20 3d 20 22 6d 65 6d 6f 72 79 20 65 78 68 61 75 73 74 65 64 22 y_exhausted.=."memory.exhausted"
14a0 3b 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 2a 78 6d 61 6c 6c 6f 63 28 73 69 7a 65 5f 74 20 73 69 ;.extern.void.*xmalloc(size_t.si
14c0 7a 65 29 0a 7b 0a 09 76 6f 69 64 20 2a 70 74 72 20 3d 20 6d 61 6c 6c 6f 63 28 73 69 7a 65 29 3b ze).{..void.*ptr.=.malloc(size);
14e0 0a 0a 09 69 66 20 28 21 70 74 72 29 0a 09 09 62 62 5f 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f ...if.(!ptr)...bb_error_msg_and_
1500 64 69 65 28 28 63 68 61 72 2a 29 6d 65 6d 6f 72 79 5f 65 78 68 61 75 73 74 65 64 29 3b 0a 09 72 die((char*)memory_exhausted);..r
1520 65 74 75 72 6e 20 70 74 72 3b 0a 7d 0a 0a 65 78 74 65 72 6e 20 76 6f 69 64 20 2a 78 72 65 61 6c eturn.ptr;.}..extern.void.*xreal
1540 6c 6f 63 28 76 6f 69 64 20 2a 6f 6c 64 2c 20 73 69 7a 65 5f 74 20 73 69 7a 65 29 0a 7b 0a 09 76 loc(void.*old,.size_t.size).{..v
1560 6f 69 64 20 2a 70 74 72 3b 0a 0a 09 2f 2a 20 53 75 53 32 20 73 61 79 73 20 22 49 66 20 73 69 7a oid.*ptr;.../*.SuS2.says."If.siz
1580 65 20 69 73 20 30 20 61 6e 64 20 70 74 72 20 69 73 20 6e 6f 74 20 61 20 6e 75 6c 6c 20 70 6f 69 e.is.0.and.ptr.is.not.a.null.poi
15a0 6e 74 65 72 2c 20 74 68 65 0a 09 20 2a 20 6f 62 6a 65 63 74 20 70 6f 69 6e 74 65 64 20 74 6f 20 nter,.the...*.object.pointed.to.
15c0 69 73 20 66 72 65 65 64 2e 22 20 20 44 6f 20 74 68 61 74 20 68 65 72 65 2c 20 69 6e 20 63 61 73 is.freed."..Do.that.here,.in.cas
15e0 65 20 72 65 61 6c 6c 6f 63 0a 09 20 2a 20 72 65 74 75 72 6e 73 20 61 20 4e 55 4c 4c 2c 20 73 69 e.realloc...*.returns.a.NULL,.si
1600 6e 63 65 20 77 65 20 64 6f 6e 27 74 20 77 61 6e 74 20 74 6f 20 63 68 6f 6b 65 20 69 6e 20 74 68 nce.we.don't.want.to.choke.in.th
1620 61 74 20 63 61 73 65 2e 20 2a 2f 0a 09 69 66 20 28 73 69 7a 65 3d 3d 30 20 26 26 20 6f 6c 64 29 at.case..*/..if.(size==0.&&.old)
1640 20 7b 0a 09 09 66 72 65 65 28 6f 6c 64 29 3b 0a 09 09 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 0a 09 .{...free(old);...return.NULL;..
1660 7d 0a 0a 09 70 74 72 20 3d 20 72 65 61 6c 6c 6f 63 28 6f 6c 64 2c 20 73 69 7a 65 29 3b 0a 09 69 }...ptr.=.realloc(old,.size);..i
1680 66 20 28 21 70 74 72 29 0a 09 09 62 62 5f 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 f.(!ptr)...bb_error_msg_and_die(
16a0 28 63 68 61 72 2a 29 6d 65 6d 6f 72 79 5f 65 78 68 61 75 73 74 65 64 29 3b 0a 09 72 65 74 75 72 (char*)memory_exhausted);..retur
16c0 6e 20 70 74 72 3b 0a 7d 0a 23 64 65 66 69 6e 65 20 68 6f 74 70 6c 75 67 5f 6d 61 69 6e 09 6d 61 n.ptr;.}.#define.hotplug_main.ma
16e0 69 6e 0a 23 65 6e 64 69 66 0a 0a 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 7b 0a 20 20 in.#endif..struct.subsystem.{...
1700 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 6e 61 6d 65 3b 0a 20 20 20 20 69 6e 74 20 28 2a 20 ..const.char.*.name;.....int.(*.
1720 68 61 6e 64 6c 65 72 29 20 28 76 6f 69 64 29 3b 0a 7d 3b 0a 0a 65 78 74 65 72 6e 20 69 6e 74 20 handler).(void);.};..extern.int.
1740 6c 6f 67 5f 6d 65 73 73 61 67 65 20 28 69 6e 74 20 6c 65 76 65 6c 2c 20 63 6f 6e 73 74 20 63 68 log_message.(int.level,.const.ch
1760 61 72 20 2a 66 6d 74 2c 20 2e 2e 2e 29 20 20 5f 5f 61 74 74 72 69 62 75 74 65 5f 5f 20 28 28 5f ar.*fmt,....)..__attribute__.((_
1780 5f 66 6f 72 6d 61 74 5f 5f 28 5f 5f 70 72 69 6e 74 66 5f 5f 2c 20 32 2c 20 33 29 29 29 3b 0a 65 _format__(__printf__,.2,.3)));.e
17a0 78 74 65 72 6e 20 69 6e 74 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 20 28 63 6f 6e 73 74 20 63 xtern.int.split_3values.(const.c
17c0 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 75 6e 73 69 67 6e 65 64 20 har.*string,.int.base,.unsigned.
17e0 69 6e 74 20 2a 20 76 61 6c 75 65 31 2c 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 int.*.value1,..unsigned.int.*.va
1800 6c 75 65 32 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c 75 65 33 29 3b 0a 65 78 lue2,.unsigned.int.*.value3);.ex
1820 74 65 72 6e 20 69 6e 74 20 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 28 63 6f 6e 73 74 20 63 68 tern.int.split_2values.(const.ch
1840 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 75 6e 73 69 67 6e 65 64 20 69 ar.*string,.int.base,.unsigned.i
1860 6e 74 20 2a 20 76 61 6c 75 65 31 2c 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c nt.*.value1,..unsigned.int.*.val
1880 75 65 32 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 ue2);.extern.int.call_subsystem.
18a0 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 69 6e 67 2c 20 73 74 72 75 63 74 20 73 75 62 73 (const.char.*string,.struct.subs
18c0 79 73 74 65 6d 20 2a 73 75 62 73 79 73 74 65 6d 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 6c 6f ystem.*subsystem);.extern.int.lo
18e0 61 64 5f 6d 6f 64 75 6c 65 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 6f 64 75 6c 65 5f 6e 61 ad_module.(const.char.*module_na
1900 6d 65 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 75 73 62 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 me);.extern.int.usb_handler.(voi
1920 64 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 70 63 69 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 d);.extern.int.pci_handler.(void
1940 29 3b 0a 65 78 74 65 72 6e 20 69 6e 74 20 69 65 65 65 31 33 39 34 5f 68 61 6e 64 6c 65 72 20 28 );.extern.int.ieee1394_handler.(
1960 76 6f 69 64 29 3b 0a 0a 23 64 65 66 69 6e 65 20 41 44 44 5f 53 54 52 49 4e 47 09 22 61 64 64 22 void);..#define.ADD_STRING."add"
1980 0a 23 64 65 66 69 6e 65 20 52 45 4d 4f 56 45 5f 53 54 52 49 4e 47 09 22 72 65 6d 6f 76 65 22 0a .#define.REMOVE_STRING."remove".
19a0 0a 0a 2f 2f 23 64 65 66 69 6e 65 20 44 45 42 55 47 20 31 0a 23 69 66 64 65 66 20 44 45 42 55 47 ..//#define.DEBUG.1.#ifdef.DEBUG
19c0 0a 23 69 6e 63 6c 75 64 65 20 3c 73 79 73 6c 6f 67 2e 68 3e 0a 09 23 64 65 66 69 6e 65 20 64 62 .#include.<syslog.h>..#define.db
19e0 67 28 66 6f 72 6d 61 74 2c 20 61 72 67 2e 2e 2e 29 20 64 6f 20 7b 20 6c 6f 67 5f 6d 65 73 73 61 g(format,.arg...).do.{.log_messa
1a00 67 65 20 28 4c 4f 47 5f 44 45 42 55 47 2c 20 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 20 22 3a 20 22 ge.(LOG_DEBUG,.__FUNCTION__.":."
1a20 20 66 6f 72 6d 61 74 2c 20 23 23 20 61 72 67 29 3b 20 7d 20 77 68 69 6c 65 20 28 30 29 0a 23 65 .format,.##.arg);.}.while.(0).#e
1a40 6c 73 65 0a 09 23 64 65 66 69 6e 65 20 64 62 67 28 66 6f 72 6d 61 74 2c 20 61 72 67 2e 2e 2e 29 lse..#define.dbg(format,.arg...)
1a60 20 64 6f 20 7b 20 7d 20 77 68 69 6c 65 20 28 30 29 0a 23 65 6e 64 69 66 0a 0a 0a 69 6e 74 20 63 .do.{.}.while.(0).#endif...int.c
1a80 70 75 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 2f 2a 20 4e 6f 74 20 68 pu_handler.(void).{...../*.Not.h
1aa0 61 6e 64 6c 65 64 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 6e 74 20 6e andled.*/.....return.0;.}..int.n
1ac0 65 74 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 2f 2a 20 4e 6f 74 20 68 et_handler.(void).{...../*.Not.h
1ae0 61 6e 64 6c 65 64 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 6e 74 20 64 andled.*/.....return.0;.}..int.d
1b00 6f 63 6b 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 2f 2a 20 4e 6f 74 20 ock_handler.(void).{...../*.Not.
1b20 68 61 6e 64 6c 65 64 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 73 74 61 74 handled.*/.....return.0;.}..stat
1b40 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 6d 61 69 6e 5f 73 75 62 73 79 73 74 ic.struct.subsystem.main_subsyst
1b60 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 22 70 63 69 22 2c 09 20 20 20 20 70 63 69 5f 68 61 em[].=.{.....{."pci",.....pci_ha
1b80 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 22 75 73 62 22 2c 09 20 20 20 20 75 73 62 5f 68 61 ndler.},.....{."usb",.....usb_ha
1ba0 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 22 69 65 65 65 31 33 39 34 22 2c 20 20 20 69 65 65 ndler.},.....{."ieee1394",...iee
1bc0 65 31 33 39 34 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 22 63 70 75 22 2c 09 20 20 e1394_handler.},.....{."cpu",...
1be0 20 20 63 70 75 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 22 6e 65 74 22 2c 09 20 20 ..cpu_handler.},.....{."net",...
1c00 20 20 6e 65 74 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 22 64 6f 63 6b 22 2c 09 20 ..net_handler.},.....{."dock",..
1c20 20 20 20 64 6f 63 6b 5f 68 61 6e 64 6c 65 72 20 7d 2c 0a 20 20 20 20 7b 20 4e 55 4c 4c 2c 09 20 ...dock_handler.},.....{.NULL,..
1c40 20 20 20 4e 55 4c 4c 20 7d 0a 7d 3b 0a 0a 69 6e 74 20 68 6f 74 70 6c 75 67 5f 6d 61 69 6e 28 69 ...NULL.}.};..int.hotplug_main(i
1c60 6e 74 20 61 72 67 63 2c 20 63 68 61 72 20 2a 61 72 67 76 5b 5d 29 0a 7b 0a 20 20 20 20 69 66 20 nt.argc,.char.*argv[]).{.....if.
1c80 28 61 72 67 63 20 21 3d 20 32 29 20 7b 0a 09 64 62 67 20 28 22 75 6e 6b 6e 6f 77 6e 20 6e 75 6d (argc.!=.2).{..dbg.("unknown.num
1ca0 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 ber.of.arguments");..return.1;..
1cc0 20 20 20 7d 0a 20 20 20 20 2f 2a 20 70 61 73 73 20 63 6f 6e 74 72 6f 6c 20 74 6f 20 74 68 65 20 ...}...../*.pass.control.to.the.
1ce0 73 75 62 73 79 73 74 65 6d 20 73 70 65 63 69 66 69 65 64 20 62 79 20 61 72 67 76 5b 31 5d 2e 20 subsystem.specified.by.argv[1]..
1d00 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 61 72 */.....return.call_subsystem.(ar
1d20 67 76 5b 31 5d 2c 20 6d 61 69 6e 5f 73 75 62 73 79 73 74 65 6d 29 3b 0a 7d 0a 0a 0a 0a 2f 2a 20 gv[1],.main_subsystem);.}..../*.
1d40 54 68 65 20 69 65 65 65 31 33 39 34 20 66 75 6e 63 74 69 6f 6e 73 20 2a 2f 0a 23 64 65 66 69 6e The.ieee1394.functions.*/.#defin
1d60 65 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 5f 49 44 09 30 78 30 30 30 e.IEEE1394_MATCH_VENDOR_ID.0x000
1d80 31 0a 23 64 65 66 69 6e 65 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 4d 4f 44 45 4c 5f 49 1.#define.IEEE1394_MATCH_MODEL_I
1da0 44 09 09 30 78 30 30 30 32 0a 23 64 65 66 69 6e 65 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 D..0x0002.#define.IEEE1394_MATCH
1dc0 5f 53 50 45 43 49 46 49 45 52 5f 49 44 09 30 78 30 30 30 34 0a 23 64 65 66 69 6e 65 20 49 45 45 _SPECIFIER_ID.0x0004.#define.IEE
1de0 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 52 53 49 4f 4e 09 09 30 78 30 30 30 38 0a 0a 73 74 72 E1394_MATCH_VERSION..0x0008..str
1e00 75 63 74 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 7b 0a 09 63 6f 6e 73 74 uct.ieee1394_module_map.{..const
1e20 20 63 68 61 72 20 2a 20 6d 6f 64 75 6c 65 5f 6e 61 6d 65 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 .char.*.module_name;..unsigned.i
1e40 6e 74 20 6d 61 74 63 68 5f 66 6c 61 67 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 nt.match_flags;..unsigned.int.ve
1e60 6e 64 6f 72 5f 69 64 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 6d 6f 64 65 6c 5f 69 64 3b ndor_id;..unsigned.int.model_id;
1e80 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 70 65 63 69 66 69 65 72 5f 69 64 3b 0a 09 75 6e ..unsigned.int.specifier_id;..un
1ea0 73 69 67 6e 65 64 20 69 6e 74 20 76 65 72 73 69 6f 6e 3b 0a 7d 20 5f 5f 61 74 74 72 69 62 75 74 signed.int.version;.}.__attribut
1ec0 65 5f 5f 20 28 28 70 61 63 6b 65 64 29 29 3b 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 69 65 e__.((packed));.static.struct.ie
1ee0 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2a 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 ee1394_module_map.*ieee1394_modu
1f00 6c 65 5f 6d 61 70 3b 0a 0a 76 6f 69 64 20 69 65 65 65 31 33 39 34 5f 72 65 61 64 5f 70 63 69 6d le_map;..void.ieee1394_read_pcim
1f20 61 70 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 46 49 4c 45 20 2a 69 65 65 65 31 33 39 34 6d 61 70 ap(void).{.....FILE.*ieee1394map
1f40 5f 66 69 6c 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 74 73 6e 61 6d 65 20 75 74 73 6e 61 6d _file;.....struct.utsname.utsnam
1f60 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 e;.....struct.ieee1394_module_ma
1f80 70 20 2a 65 6e 74 72 79 20 3d 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a p.*entry.=.ieee1394_module_map;.
1fa0 20 20 20 20 63 68 61 72 20 2a 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 22 22 3b 0a 20 20 20 20 63 ....char.*prevmodule.=."";.....c
1fc0 68 61 72 20 66 69 6c 65 6e 61 6d 65 5b 4d 41 58 50 41 54 48 4c 45 4e 5d 3b 0a 20 20 20 20 63 68 har.filename[MAXPATHLEN];.....ch
1fe0 61 72 20 6c 69 6e 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 63 68 61 72 20 6d 6f ar.line[LINELENGTH];.....char.mo
2000 64 75 6c 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 5d 3b 0a 20 20 20 20 69 6e 74 20 63 6f 75 6e 74 2c dule[LINELENGTH];.....int.count,
2020 20 6d 61 70 73 69 7a 65 3b 0a 0a 20 20 20 20 69 66 20 28 75 6e 61 6d 65 28 26 75 74 73 6e 61 6d .mapsize;......if.(uname(&utsnam
2040 65 29 20 3c 20 30 29 20 7b 0a 09 70 65 72 72 6f 72 28 22 75 6e 61 6d 65 22 29 3b 0a 09 65 78 69 e).<.0).{..perror("uname");..exi
2060 74 28 31 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 73 70 72 69 6e 74 66 28 66 69 6c 65 6e 61 6d 65 t(1);.....}.....sprintf(filename
2080 2c 20 22 2f 6c 69 62 2f 6d 6f 64 75 6c 65 73 2f 25 73 2f 6d 6f 64 75 6c 65 73 2e 69 65 65 65 31 ,."/lib/modules/%s/modules.ieee1
20a0 33 39 34 6d 61 70 22 2c 20 75 74 73 6e 61 6d 65 2e 72 65 6c 65 61 73 65 29 3b 0a 20 20 20 20 69 394map",.utsname.release);.....i
20c0 66 20 28 28 69 65 65 65 31 33 39 34 6d 61 70 5f 66 69 6c 65 20 3d 20 66 6f 70 65 6e 28 66 69 6c f.((ieee1394map_file.=.fopen(fil
20e0 65 6e 61 6d 65 2c 20 22 72 22 29 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 62 62 5f 70 65 72 72 ename,."r")).==.NULL).{..bb_perr
2100 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 22 43 6f 75 6c 64 20 6e 6f 74 20 6f 70 65 6e 20 25 or_msg_and_die("Could.not.open.%
2120 73 22 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 63 6f 75 6e 74 20 s",.filename);.....}......count.
2140 3d 20 6d 61 70 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c 65 28 66 67 65 74 73 28 6c =.mapsize.=.0;.....while(fgets(l
2160 69 6e 65 2c 20 4c 49 4e 45 4c 45 4e 47 54 48 2c 20 69 65 65 65 31 33 39 34 6d 61 70 5f 66 69 6c ine,.LINELENGTH,.ieee1394map_fil
2180 65 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 0a 09 69 66 20 28 6c 69 6e 65 5b 30 5d 20 3d 3d 20 27 e).!=.NULL).{...if.(line[0].==.'
21a0 23 27 29 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 09 63 6f 75 6e 74 2b 2b 3b 0a 09 69 #')......continue;...count++;..i
21c0 66 20 28 63 6f 75 6e 74 20 3e 3d 20 6d 61 70 73 69 7a 65 29 20 7b 0a 09 20 20 20 20 6d 61 70 73 f.(count.>=.mapsize).{......maps
21e0 69 7a 65 2b 3d 31 30 30 3b 0a 09 20 20 20 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d ize+=100;......ieee1394_module_m
2200 61 70 20 3d 20 78 72 65 61 6c 6c 6f 63 28 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 ap.=.xrealloc(ieee1394_module_ma
2220 70 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c p,.(sizeof(struct.ieee1394_modul
2240 65 5f 6d 61 70 29 20 2a 20 6d 61 70 73 69 7a 65 29 29 3b 0a 09 20 20 20 20 65 6e 74 72 79 20 3d e_map).*.mapsize));......entry.=
2260 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 .ieee1394_module_map.+.count.-.1
2280 3b 0a 09 20 20 20 20 6d 65 6d 73 65 74 28 65 6e 74 72 79 2c 20 30 2c 20 28 73 69 7a 65 6f 66 28 ;......memset(entry,.0,.(sizeof(
22a0 73 74 72 75 63 74 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 29 20 2a 20 31 30 struct.ieee1394_module_map).*.10
22c0 30 29 29 3b 0a 09 7d 0a 0a 09 69 66 20 28 73 73 63 61 6e 66 28 6c 69 6e 65 2c 20 22 25 73 20 30 0));..}...if.(sscanf(line,."%s.0
22e0 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 22 2c 0a 09 09 20 20 20 20 x%x.0x%x.0x%x.0x%x.0x%x",.......
2300 6d 6f 64 75 6c 65 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 6d 61 74 63 68 5f 66 6c 61 67 module,.......&entry->match_flag
2320 73 2c 20 26 65 6e 74 72 79 2d 3e 76 65 6e 64 6f 72 5f 69 64 2c 0a 09 09 20 20 20 20 26 65 6e 74 s,.&entry->vendor_id,.......&ent
2340 72 79 2d 3e 6d 6f 64 65 6c 5f 69 64 2c 20 26 65 6e 74 72 79 2d 3e 73 70 65 63 69 66 69 65 72 5f ry->model_id,.&entry->specifier_
2360 69 64 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 76 65 72 73 69 6f 6e 29 20 21 3d 20 36 29 id,.......&entry->version).!=.6)
2380 20 7b 0a 09 20 20 20 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 22 6d 6f 64 75 6c 65 73 2e 69 65 .{......bb_error_msg("modules.ie
23a0 65 65 31 33 39 34 6d 61 70 20 75 6e 70 61 72 73 61 62 6c 65 20 6c 69 6e 65 3a 20 25 73 2e 5c 6e ee1394map.unparsable.line:.%s.\n
23c0 22 2c 20 6c 69 6e 65 29 3b 0a 09 20 20 20 20 66 72 65 65 28 65 6e 74 72 79 29 3b 0a 09 20 20 20 ",.line);......free(entry);.....
23e0 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 4f 70 74 69 6d 69 7a 65 20 6d 65 6d 6f .continue;..}.../*.Optimize.memo
2400 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 61 20 62 69 74 2c 20 69 6e 20 63 61 73 65 20 73 6f 6d ry.allocation.a.bit,.in.case.som
2420 65 64 61 79 20 77 65 0a 09 20 20 20 68 61 76 65 20 4c 69 6e 75 78 20 73 79 73 74 65 6d 73 20 77 eday.we.....have.Linux.systems.w
2440 69 74 68 20 7e 31 30 30 2c 30 30 30 20 6d 6f 64 75 6c 65 73 2e 20 20 49 74 20 61 6c 73 6f 0a 09 ith.~100,000.modules...It.also..
2460 20 20 20 61 6c 6c 6f 77 73 20 75 73 20 74 6f 20 6a 75 73 74 20 63 6f 6d 70 61 72 65 20 70 6f 69 ...allows.us.to.just.compare.poi
2480 6e 74 65 72 73 20 74 6f 20 61 76 6f 69 64 20 74 72 79 69 6e 67 0a 09 20 20 20 74 6f 20 6c 6f 61 nters.to.avoid.trying.....to.loa
24a0 64 20 61 20 6d 6f 64 75 6c 65 20 74 77 69 63 65 2e 20 2a 2f 0a 09 69 66 20 28 73 74 72 63 6d 70 d.a.module.twice..*/..if.(strcmp
24c0 28 6d 6f 64 75 6c 65 2c 20 70 72 65 76 6d 6f 64 75 6c 65 29 20 21 3d 20 30 29 20 7b 0a 09 20 20 (module,.prevmodule).!=.0).{....
24e0 20 20 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 78 6d 61 6c 6c 6f 63 28 73 74 72 6c 65 6e 28 6d 6f ..prevmodule.=.xmalloc(strlen(mo
2500 64 75 6c 65 29 2b 31 29 3b 0a 09 20 20 20 20 73 74 72 63 70 79 28 70 72 65 76 6d 6f 64 75 6c 65 dule)+1);......strcpy(prevmodule
2520 2c 20 6d 6f 64 75 6c 65 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 2d 3e 6d 6f 64 75 6c 65 5f 6e 61 6d ,.module);..}..entry->module_nam
2540 65 20 3d 20 70 72 65 76 6d 6f 64 75 6c 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 66 63 6c 6f 73 65 e.=.prevmodule;.....}.....fclose
2560 28 69 65 65 65 31 33 39 34 6d 61 70 5f 66 69 6c 65 29 3b 0a 7d 0a 73 74 61 74 69 63 20 69 6e 74 (ieee1394map_file);.}.static.int
2580 20 69 65 65 65 31 33 39 34 5f 6d 61 74 63 68 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 6e .ieee1394_match(unsigned.int.ven
25a0 64 6f 72 5f 69 64 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 70 65 63 69 66 69 65 72 5f 69 dor_id,.unsigned.int.specifier_i
25c0 64 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 72 73 69 6f 6e 29 0a 7b 0a 20 20 20 20 69 d,.unsigned.int.version).{.....i
25e0 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a 20 20 20 20 64 62 67 20 28 nt.i;.....int.retval;......dbg.(
2600 22 76 65 6e 64 6f 72 5f 69 64 20 3d 20 25 78 2c 20 73 70 65 63 69 66 69 65 72 5f 69 64 20 3d 20 "vendor_id.=.%x,.specifier_id.=.
2620 25 78 2c 20 76 65 72 73 69 6f 6e 20 3d 20 25 78 22 2c 0a 09 20 20 20 20 76 65 6e 64 6f 72 5f 69 %x,.version.=.%x",......vendor_i
2640 64 2c 20 73 70 65 63 69 66 69 65 72 5f 69 64 2c 20 76 65 72 73 69 6f 6e 29 3b 0a 0a 20 20 20 20 d,.specifier_id,.version);......
2660 66 6f 72 20 28 69 20 3d 20 30 3b 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b for.(i.=.0;.ieee1394_module_map[
2680 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e 55 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 i].module_name.!=.NULL;.++i).{..
26a0 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 2c 20 6d 61 74 63 68 5f 66 6c 61 67 73 dbg.("looking.at.%s,.match_flags
26c0 20 3d 20 25 78 22 2c 0a 09 09 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d .=.%x",...ieee1394_module_map[i]
26e0 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 2c 0a 09 09 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f .module_name,...ieee1394_module_
2700 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 29 3b 0a 09 69 66 20 28 28 69 65 65 65 31 map[i].match_flags);..if.((ieee1
2720 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 394_module_map[i].match_flags.&.
2740 49 45 45 45 31 33 39 34 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 5f 49 44 29 20 26 26 0a 09 09 28 IEEE1394_MATCH_VENDOR_ID).&&...(
2760 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 6e 64 6f 72 5f 69 64 ieee1394_module_map[i].vendor_id
2780 20 21 3d 20 76 65 6e 64 6f 72 5f 69 64 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 76 65 6e .!=.vendor_id)).{......dbg.("ven
27a0 64 6f 72 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 dor.check.failed.%x.!=.%x",.....
27c0 20 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 6e 64 6f 72 5f ..ieee1394_module_map[i].vendor_
27e0 69 64 2c 0a 09 09 20 20 20 20 76 65 6e 64 6f 72 5f 69 64 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 id,.......vendor_id);......conti
2800 6e 75 65 3b 0a 09 7d 0a 09 69 66 20 28 28 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 nue;..}..if.((ieee1394_module_ma
2820 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 49 45 45 45 31 33 39 34 5f 4d 41 54 43 p[i].match_flags.&.IEEE1394_MATC
2840 48 5f 53 50 45 43 49 46 49 45 52 5f 49 44 29 20 26 26 0a 09 09 28 69 65 65 65 31 33 39 34 5f 6d H_SPECIFIER_ID).&&...(ieee1394_m
2860 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 70 65 63 69 66 69 65 72 5f 69 64 20 21 3d 20 73 70 65 odule_map[i].specifier_id.!=.spe
2880 63 69 66 69 65 72 5f 69 64 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 73 70 65 63 69 66 69 cifier_id)).{......dbg.("specifi
28a0 65 72 5f 69 64 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 er_id.check.failed.%x.!=.%x",...
28c0 20 20 20 20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 70 65 63 69 ....ieee1394_module_map[i].speci
28e0 66 69 65 72 5f 69 64 2c 0a 09 09 20 20 20 20 73 70 65 63 69 66 69 65 72 5f 69 64 29 3b 0a 09 20 fier_id,.......specifier_id);...
2900 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 20 28 28 69 65 65 65 31 33 39 34 5f 6d ...continue;..}..if.((ieee1394_m
2920 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 49 45 45 45 31 odule_map[i].match_flags.&.IEEE1
2940 33 39 34 5f 4d 41 54 43 48 5f 56 45 52 53 49 4f 4e 29 20 26 26 0a 09 09 28 69 65 65 65 31 33 39 394_MATCH_VERSION).&&...(ieee139
2960 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 72 73 69 6f 6e 20 21 3d 20 76 65 72 73 69 4_module_map[i].version.!=.versi
2980 6f 6e 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 76 65 72 73 69 6f 6e 20 63 68 65 63 6b 20 on)).{......dbg.("version.check.
29a0 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 69 65 65 65 31 33 39 34 failed.%x.!=.%x",.......ieee1394
29c0 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 72 73 69 6f 6e 2c 0a 09 09 20 20 20 20 76 65 _module_map[i].version,.......ve
29e0 72 73 69 6f 6e 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 2f 2a 20 66 6f rsion);......continue;..}../*.fo
2a00 75 6e 64 20 6f 6e 65 21 20 2a 2f 0a 09 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 und.one!.*/..dbg.("loading.%s",.
2a20 69 65 65 65 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 ieee1394_module_map[i].module_na
2a40 6d 65 29 3b 0a 09 72 65 74 76 61 6c 20 3d 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 69 65 65 65 me);..retval.=.load_module.(ieee
2a60 31 33 39 34 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 1394_module_map[i].module_name);
2a80 0a 09 69 66 20 28 72 65 74 76 61 6c 29 0a 09 20 20 20 20 72 65 74 75 72 6e 20 72 65 74 76 61 6c ..if.(retval)......return.retval
2aa0 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 61 74 69 ;.....}......return.0;.}...stati
2ac0 63 20 69 6e 74 20 69 65 65 65 31 33 39 34 5f 61 64 64 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 c.int.ieee1394_add.(void).{.....
2ae0 63 68 61 72 20 2a 76 65 6e 64 6f 72 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 2a 73 70 65 63 char.*vendor_env;.....char.*spec
2b00 69 66 69 65 72 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 2a 76 65 72 73 69 6f 6e 5f 65 6e 76 ifier_env;.....char.*version_env
2b20 3b 0a 20 20 20 20 69 6e 74 20 65 72 72 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e ;.....int.error;.....unsigned.in
2b40 74 20 76 65 6e 64 6f 72 5f 69 64 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 70 t.vendor_id;.....unsigned.int.sp
2b60 65 63 69 66 69 65 72 5f 69 64 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 72 ecifier_id;.....unsigned.int.ver
2b80 73 69 6f 6e 3b 0a 0a 20 20 20 20 69 65 65 65 31 33 39 34 5f 72 65 61 64 5f 70 63 69 6d 61 70 28 sion;......ieee1394_read_pcimap(
2ba0 29 3b 0a 0a 20 20 20 20 76 65 6e 64 6f 72 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 20 28 22 56 45 );......vendor_env.=.getenv.("VE
2bc0 4e 44 4f 52 5f 49 44 22 29 3b 0a 20 20 20 20 73 70 65 63 69 66 69 65 72 5f 65 6e 76 20 3d 20 67 NDOR_ID");.....specifier_env.=.g
2be0 65 74 65 6e 76 20 28 22 53 50 45 43 49 46 49 45 52 5f 49 44 22 29 3b 0a 20 20 20 20 76 65 72 73 etenv.("SPECIFIER_ID");.....vers
2c00 69 6f 6e 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 20 28 22 56 45 52 53 49 4f 4e 22 29 3b 0a 20 20 ion_env.=.getenv.("VERSION");...
2c20 20 20 69 66 20 28 28 76 65 6e 64 6f 72 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 ..if.((vendor_env.==.NULL).||...
2c40 20 20 20 28 73 70 65 63 69 66 69 65 72 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 ...(specifier_env.==.NULL).||...
2c60 20 20 20 28 76 65 72 73 69 6f 6e 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 29 20 7b 0a 09 64 62 67 ...(version_env.==.NULL)).{..dbg
2c80 20 28 22 6d 69 73 73 69 6e 67 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 .("missing.an.environment.variab
2ca0 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 le,.aborting.");..return.1;.....
2cc0 7d 0a 20 20 20 20 76 65 6e 64 6f 72 5f 69 64 20 3d 20 73 74 72 74 6f 75 6c 20 28 76 65 6e 64 6f }.....vendor_id.=.strtoul.(vendo
2ce0 72 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b 0a 20 20 20 20 73 70 65 63 69 66 69 65 72 5f r_env,.NULL,.16);.....specifier_
2d00 69 64 20 3d 20 73 74 72 74 6f 75 6c 20 28 73 70 65 63 69 66 69 65 72 5f 65 6e 76 2c 20 4e 55 4c id.=.strtoul.(specifier_env,.NUL
2d20 4c 2c 20 31 36 29 3b 0a 20 20 20 20 76 65 72 73 69 6f 6e 20 3d 20 73 74 72 74 6f 75 6c 20 28 76 L,.16);.....version.=.strtoul.(v
2d40 65 72 73 69 6f 6e 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b 0a 0a 20 20 20 20 65 72 72 6f ersion_env,.NULL,.16);......erro
2d60 72 20 3d 20 69 65 65 65 31 33 39 34 5f 6d 61 74 63 68 20 28 76 65 6e 64 6f 72 5f 69 64 2c 20 73 r.=.ieee1394_match.(vendor_id,.s
2d80 70 65 63 69 66 69 65 72 5f 69 64 2c 20 76 65 72 73 69 6f 6e 29 3b 0a 0a 20 20 20 20 72 65 74 75 pecifier_id,.version);......retu
2da0 72 6e 20 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 69 65 65 65 31 33 39 rn.error;.}...static.int.ieee139
2dc0 34 5f 72 65 6d 6f 76 65 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 2f 2a 20 72 69 67 68 74 20 6e 4_remove.(void).{...../*.right.n
2de0 6f 77 20 77 65 20 64 6f 6e 27 74 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 68 65 72 65 20 3a 29 20 ow.we.don't.do.anything.here.:).
2e00 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 73 74 72 75 */.....return.0;.}...static.stru
2e20 63 74 20 73 75 62 73 79 73 74 65 6d 20 69 65 65 65 31 33 39 34 5f 73 75 62 73 79 73 74 65 6d 5b ct.subsystem.ieee1394_subsystem[
2e40 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 41 44 44 5f 53 54 52 49 4e 47 2c 20 69 65 65 65 31 33 39 34 ].=.{.....{.ADD_STRING,.ieee1394
2e60 5f 61 64 64 20 7d 2c 0a 20 20 20 20 7b 20 52 45 4d 4f 56 45 5f 53 54 52 49 4e 47 2c 20 69 65 65 _add.},.....{.REMOVE_STRING,.iee
2e80 65 31 33 39 34 5f 72 65 6d 6f 76 65 20 7d 2c 0a 20 20 20 20 7b 20 4e 55 4c 4c 2c 20 4e 55 4c 4c e1394_remove.},.....{.NULL,.NULL
2ea0 20 7d 0a 7d 3b 0a 0a 0a 69 6e 74 20 69 65 65 65 31 33 39 34 5f 68 61 6e 64 6c 65 72 20 28 76 6f .}.};...int.ieee1394_handler.(vo
2ec0 69 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 20 61 63 74 69 6f 6e 3b 0a 20 20 20 20 61 63 74 id).{.....char.*.action;.....act
2ee0 69 6f 6e 20 3d 20 67 65 74 65 6e 76 20 28 22 41 43 54 49 4f 4e 22 29 3b 0a 20 20 20 20 64 62 67 ion.=.getenv.("ACTION");.....dbg
2f00 20 28 22 61 63 74 69 6f 6e 20 3d 20 25 73 22 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 20 20 69 66 .("action.=.%s",.action);.....if
2f20 20 28 61 63 74 69 6f 6e 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 .(action.==.NULL).{..dbg.("missi
2f40 6e 67 20 41 43 54 49 4f 4e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 ng.ACTION.environment.variable,.
2f60 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 aborting.");..return.1;.....}...
2f80 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 61 63 74 69 6f 6e 2c ..return.call_subsystem.(action,
2fa0 20 69 65 65 65 31 33 39 34 5f 73 75 62 73 79 73 74 65 6d 29 3b 0a 7d 0a 0a 2f 2a 20 54 68 65 20 .ieee1394_subsystem);.}../*.The.
2fc0 70 63 69 20 66 75 6e 63 74 69 6f 6e 73 20 2a 2f 0a 23 64 65 66 69 6e 65 20 50 43 49 5f 41 4e 59 pci.functions.*/.#define.PCI_ANY
2fe0 09 09 09 09 30 78 66 66 66 66 66 66 66 66 0a 0a 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 6c ....0xffffffff..struct.pci_modul
3000 65 5f 6d 61 70 20 7b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 6d 6f 64 75 6c 65 5f e_map.{.....const.char.*.module_
3020 6e 61 6d 65 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 6e 64 6f 72 3b 0a 20 name;.....unsigned.int.vendor;..
3040 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 3b 0a 20 20 20 20 75 6e 73 69 ...unsigned.int.device;.....unsi
3060 67 6e 65 64 20 69 6e 74 20 73 75 62 76 65 6e 64 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 gned.int.subvendor;.....unsigned
3080 20 69 6e 74 20 73 75 62 64 65 76 69 63 65 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 .int.subdevice;.....unsigned.int
30a0 20 63 6c 61 73 73 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 5f 6d .class;.....unsigned.int.class_m
30c0 61 73 6b 3b 0a 7d 20 5f 5f 61 74 74 72 69 62 75 74 65 5f 5f 20 28 28 70 61 63 6b 65 64 29 29 3b ask;.}.__attribute__.((packed));
30e0 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2a 70 .static.struct.pci_module_map.*p
3100 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 0a 76 6f 69 64 20 70 63 69 5f 72 65 61 64 5f 70 63 ci_module_map;..void.pci_read_pc
3120 69 6d 61 70 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 46 49 4c 45 20 2a 70 63 69 6d 61 70 5f 66 69 imap(void).{.....FILE.*pcimap_fi
3140 6c 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 74 73 6e 61 6d 65 20 75 74 73 6e 61 6d 65 3b 0a le;.....struct.utsname.utsname;.
3160 20 20 20 20 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2a 65 6e 74 72 79 ....struct.pci_module_map.*entry
3180 20 3d 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 .=.pci_module_map;.....unsigned.
31a0 69 6e 74 20 64 72 69 76 65 72 5f 64 61 74 61 3b 0a 20 20 20 20 63 68 61 72 20 2a 70 72 65 76 6d int.driver_data;.....char.*prevm
31c0 6f 64 75 6c 65 20 3d 20 22 22 3b 0a 20 20 20 20 63 68 61 72 20 66 69 6c 65 6e 61 6d 65 5b 4d 41 odule.=."";.....char.filename[MA
31e0 58 50 41 54 48 4c 45 4e 5d 3b 0a 20 20 20 20 63 68 61 72 20 6c 69 6e 65 5b 4c 49 4e 45 4c 45 4e XPATHLEN];.....char.line[LINELEN
3200 47 54 48 5d 3b 0a 20 20 20 20 63 68 61 72 20 6d 6f 64 75 6c 65 5b 4c 49 4e 45 4c 45 4e 47 54 48 GTH];.....char.module[LINELENGTH
3220 5d 3b 0a 20 20 20 20 69 6e 74 20 63 6f 75 6e 74 2c 20 6d 61 70 73 69 7a 65 3b 0a 0a 20 20 20 20 ];.....int.count,.mapsize;......
3240 69 66 20 28 75 6e 61 6d 65 28 26 75 74 73 6e 61 6d 65 29 20 3c 20 30 29 20 7b 0a 09 70 65 72 72 if.(uname(&utsname).<.0).{..perr
3260 6f 72 28 22 75 6e 61 6d 65 22 29 3b 0a 09 65 78 69 74 28 31 29 3b 0a 20 20 20 20 7d 0a 20 20 20 or("uname");..exit(1);.....}....
3280 20 73 70 72 69 6e 74 66 28 66 69 6c 65 6e 61 6d 65 2c 20 22 2f 6c 69 62 2f 6d 6f 64 75 6c 65 73 .sprintf(filename,."/lib/modules
32a0 2f 25 73 2f 6d 6f 64 75 6c 65 73 2e 70 63 69 6d 61 70 22 2c 20 75 74 73 6e 61 6d 65 2e 72 65 6c /%s/modules.pcimap",.utsname.rel
32c0 65 61 73 65 29 3b 0a 20 20 20 20 69 66 20 28 28 70 63 69 6d 61 70 5f 66 69 6c 65 20 3d 20 66 6f ease);.....if.((pcimap_file.=.fo
32e0 70 65 6e 28 66 69 6c 65 6e 61 6d 65 2c 20 22 72 22 29 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 pen(filename,."r")).==.NULL).{..
3300 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 22 43 6f 75 6c 64 20 6e 6f 74 bb_perror_msg_and_die("Could.not
3320 20 6f 70 65 6e 20 25 73 22 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 .open.%s",.filename);.....}.....
3340 20 63 6f 75 6e 74 20 3d 20 6d 61 70 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c 65 28 .count.=.mapsize.=.0;.....while(
3360 66 67 65 74 73 28 6c 69 6e 65 2c 20 4c 49 4e 45 4c 45 4e 47 54 48 2c 20 70 63 69 6d 61 70 5f 66 fgets(line,.LINELENGTH,.pcimap_f
3380 69 6c 65 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 0a 09 69 66 20 28 6c 69 6e 65 5b 30 5d 20 3d 3d ile).!=.NULL).{...if.(line[0].==
33a0 20 27 23 27 29 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 09 63 6f 75 6e 74 2b 2b 3b 0a .'#')......continue;...count++;.
33c0 09 69 66 20 28 63 6f 75 6e 74 20 3e 3d 20 6d 61 70 73 69 7a 65 29 20 7b 0a 09 20 20 20 20 6d 61 .if.(count.>=.mapsize).{......ma
33e0 70 73 69 7a 65 2b 3d 31 30 30 3b 0a 09 20 20 20 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 psize+=100;......pci_module_map.
3400 3d 20 78 72 65 61 6c 6c 6f 63 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 2c 20 28 73 69 7a 65 =.xrealloc(pci_module_map,.(size
3420 6f 66 28 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 29 20 2a 20 6d 61 70 73 of(struct.pci_module_map).*.maps
3440 69 7a 65 29 29 3b 0a 09 20 20 20 20 65 6e 74 72 79 20 3d 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d ize));......entry.=.pci_module_m
3460 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a 09 20 20 20 20 6d 65 6d 73 65 74 28 65 6e 74 72 ap.+.count.-.1;......memset(entr
3480 79 2c 20 30 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 70 63 69 5f 6d 6f 64 75 6c 65 5f y,.0,.(sizeof(struct.pci_module_
34a0 6d 61 70 29 20 2a 20 31 30 30 29 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 20 3d 20 70 63 69 5f 6d 6f map).*.100));..}..entry.=.pci_mo
34c0 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a 0a 09 69 66 20 28 73 73 63 61 dule_map.+.count.-.1;...if.(ssca
34e0 6e 66 28 6c 69 6e 65 2c 20 22 25 73 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 nf(line,."%s.0x%x.0x%x.0x%x.0x%x
3500 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 22 2c 0a 09 09 20 20 20 20 6d 6f 64 75 6c 65 2c 0a .0x%x.0x%x.0x%x",.......module,.
3520 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 76 65 6e 64 6f 72 2c 20 26 65 6e 74 72 79 2d 3e 64 65 ......&entry->vendor,.&entry->de
3540 76 69 63 65 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 73 75 62 76 65 6e 64 6f 72 2c 20 26 vice,.......&entry->subvendor,.&
3560 65 6e 74 72 79 2d 3e 73 75 62 64 65 76 69 63 65 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e entry->subdevice,.......&entry->
3580 63 6c 61 73 73 2c 20 26 65 6e 74 72 79 2d 3e 63 6c 61 73 73 5f 6d 61 73 6b 2c 0a 09 09 20 20 20 class,.&entry->class_mask,......
35a0 20 26 64 72 69 76 65 72 5f 64 61 74 61 29 20 21 3d 20 38 29 20 7b 0a 09 20 20 20 20 62 62 5f 65 .&driver_data).!=.8).{......bb_e
35c0 72 72 6f 72 5f 6d 73 67 28 22 6d 6f 64 75 6c 65 73 2e 70 63 69 6d 61 70 20 75 6e 70 61 72 73 61 rror_msg("modules.pcimap.unparsa
35e0 62 6c 65 20 6c 69 6e 65 3a 20 25 73 2e 5c 6e 22 2c 20 6c 69 6e 65 29 3b 0a 09 20 20 20 20 66 72 ble.line:.%s.\n",.line);......fr
3600 65 65 28 65 6e 74 72 79 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f ee(entry);......continue;..}.../
3620 2a 20 4f 70 74 69 6d 69 7a 65 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f 63 61 74 69 6f 6e 20 61 20 62 *.Optimize.memory.allocation.a.b
3640 69 74 2c 20 69 6e 20 63 61 73 65 20 73 6f 6d 65 64 61 79 20 77 65 0a 09 20 20 20 68 61 76 65 20 it,.in.case.someday.we.....have.
3660 4c 69 6e 75 78 20 73 79 73 74 65 6d 73 20 77 69 74 68 20 7e 31 30 30 2c 30 30 30 20 6d 6f 64 75 Linux.systems.with.~100,000.modu
3680 6c 65 73 2e 20 20 49 74 20 61 6c 73 6f 0a 09 20 20 20 61 6c 6c 6f 77 73 20 75 73 20 74 6f 20 6a les...It.also.....allows.us.to.j
36a0 75 73 74 20 63 6f 6d 70 61 72 65 20 70 6f 69 6e 74 65 72 73 20 74 6f 20 61 76 6f 69 64 20 74 72 ust.compare.pointers.to.avoid.tr
36c0 79 69 6e 67 0a 09 20 20 20 74 6f 20 6c 6f 61 64 20 61 20 6d 6f 64 75 6c 65 20 74 77 69 63 65 2e ying.....to.load.a.module.twice.
36e0 20 2a 2f 0a 09 69 66 20 28 73 74 72 63 6d 70 28 6d 6f 64 75 6c 65 2c 20 70 72 65 76 6d 6f 64 75 .*/..if.(strcmp(module,.prevmodu
3700 6c 65 29 20 21 3d 20 30 29 20 7b 0a 09 20 20 20 20 70 72 65 76 6d 6f 64 75 6c 65 20 3d 20 78 6d le).!=.0).{......prevmodule.=.xm
3720 61 6c 6c 6f 63 28 73 74 72 6c 65 6e 28 6d 6f 64 75 6c 65 29 2b 31 29 3b 0a 09 20 20 20 20 73 74 alloc(strlen(module)+1);......st
3740 72 63 70 79 28 70 72 65 76 6d 6f 64 75 6c 65 2c 20 6d 6f 64 75 6c 65 29 3b 0a 09 7d 0a 09 65 6e rcpy(prevmodule,.module);..}..en
3760 74 72 79 2d 3e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 3d 20 70 72 65 76 6d 6f 64 75 6c 65 3b 0a 20 try->module_name.=.prevmodule;..
3780 20 20 20 7d 0a 20 20 20 20 66 63 6c 6f 73 65 28 70 63 69 6d 61 70 5f 66 69 6c 65 29 3b 0a 7d 0a ...}.....fclose(pcimap_file);.}.
37a0 0a 73 74 61 74 69 63 20 69 6e 74 20 70 63 69 5f 6d 61 74 63 68 5f 76 65 6e 64 6f 72 20 28 75 6e .static.int.pci_match_vendor.(un
37c0 73 69 67 6e 65 64 20 69 6e 74 20 76 65 6e 64 6f 72 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 signed.int.vendor,.unsigned.int.
37e0 64 65 76 69 63 65 2c 0a 09 09 09 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 76 65 6e 64 device,.....unsigned.int.subvend
3800 6f 72 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 64 65 76 69 63 65 2c 0a 09 09 09 20 or,.unsigned.int.subdevice,.....
3820 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 63 69 5f 63 6c 61 73 73 29 0a 7b 0a 20 20 20 20 69 6e unsigned.int.pci_class).{.....in
3840 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 t.i;.....int.retval;.....unsigne
3860 64 20 69 6e 74 20 63 6c 61 73 73 5f 74 65 6d 70 3b 0a 0a 20 20 20 20 64 62 67 20 28 22 76 65 6e d.int.class_temp;......dbg.("ven
3880 64 6f 72 20 3d 20 25 78 2c 20 64 65 76 69 63 65 20 3d 20 25 78 2c 20 73 75 62 76 65 6e 64 6f 72 dor.=.%x,.device.=.%x,.subvendor
38a0 20 3d 20 25 78 2c 20 73 75 62 64 65 76 69 63 65 20 3d 20 25 78 22 2c 0a 09 20 20 20 20 76 65 6e .=.%x,.subdevice.=.%x",......ven
38c0 64 6f 72 2c 20 64 65 76 69 63 65 2c 20 73 75 62 76 65 6e 64 6f 72 2c 20 73 75 62 64 65 76 69 63 dor,.device,.subvendor,.subdevic
38e0 65 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 70 63 69 5f 6d 6f 64 75 6c 65 5f e);......for.(i.=.0;.pci_module_
3900 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e 55 4c 4c 3b 20 2b 2b 69 29 map[i].module_name.!=.NULL;.++i)
3920 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 22 2c 20 70 63 69 5f 6d 6f .{..dbg.("looking.at.%s",.pci_mo
3940 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 69 66 20 28 28 dule_map[i].module_name);..if.((
3960 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 6e 64 6f 72 20 21 3d 20 50 43 49 5f pci_module_map[i].vendor.!=.PCI_
3980 41 4e 59 29 20 26 26 0a 09 09 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 6e ANY).&&...(pci_module_map[i].ven
39a0 64 6f 72 20 21 3d 20 76 65 6e 64 6f 72 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 76 65 6e dor.!=.vendor)).{......dbg.("ven
39c0 64 6f 72 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 dor.check.failed.%x.!=.%x",.....
39e0 20 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 76 65 6e 64 6f 72 2c 20 76 65 6e 64 ..pci_module_map[i].vendor,.vend
3a00 6f 72 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 20 28 28 70 63 69 or);......continue;..}..if.((pci
3a20 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 64 65 76 69 63 65 20 21 3d 20 50 43 49 5f 41 4e 59 _module_map[i].device.!=.PCI_ANY
3a40 29 20 26 26 0a 09 09 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 64 65 76 69 63 65 ).&&...(pci_module_map[i].device
3a60 20 21 3d 20 64 65 76 69 63 65 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 64 65 76 69 63 65 .!=.device)).{......dbg.("device
3a80 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 70 .check.failed.%x.!=.%x",.......p
3aa0 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 64 65 76 69 63 65 2c 20 64 65 76 69 63 65 29 ci_module_map[i].device,.device)
3ac0 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 09 69 66 20 28 28 70 63 69 5f 6d 6f ;......continue;..}..if.((pci_mo
3ae0 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 76 65 6e 64 6f 72 20 21 3d 20 50 43 49 5f 41 4e 59 dule_map[i].subvendor.!=.PCI_ANY
3b00 29 20 26 26 0a 09 09 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 76 65 6e ).&&...(pci_module_map[i].subven
3b20 64 6f 72 20 21 3d 20 73 75 62 76 65 6e 64 6f 72 29 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 dor.!=.subvendor)).{......dbg.("
3b40 73 75 62 76 65 6e 64 6f 72 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 subvendor.check.failed.%x.!=.%x"
3b60 2c 0a 09 09 20 20 20 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 76 65 6e ,.......pci_module_map[i].subven
3b80 64 6f 72 2c 20 73 75 62 76 65 6e 64 6f 72 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a dor,.subvendor);......continue;.
3ba0 09 7d 0a 09 69 66 20 28 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 64 65 .}..if.((pci_module_map[i].subde
3bc0 76 69 63 65 20 21 3d 20 50 43 49 5f 41 4e 59 29 20 26 26 0a 09 09 28 70 63 69 5f 6d 6f 64 75 6c vice.!=.PCI_ANY).&&...(pci_modul
3be0 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 64 65 76 69 63 65 20 21 3d 20 73 75 62 64 65 76 69 63 65 29 e_map[i].subdevice.!=.subdevice)
3c00 29 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 73 75 62 64 65 76 69 63 65 20 63 68 65 63 6b 20 66 ).{......dbg.("subdevice.check.f
3c20 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 70 63 69 5f 6d 6f 64 75 6c ailed.%x.!=.%x",.......pci_modul
3c40 65 5f 6d 61 70 5b 69 5d 2e 73 75 62 64 65 76 69 63 65 2c 20 73 75 62 64 65 76 69 63 65 29 3b 0a e_map[i].subdevice,.subdevice);.
3c60 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 63 68 65 63 6b 20 74 68 61 .....continue;..}.../*.check.tha
3c80 74 20 74 68 65 20 63 6c 61 73 73 20 6d 61 74 63 68 65 73 20 2a 2f 0a 09 63 6c 61 73 73 5f 74 65 t.the.class.matches.*/..class_te
3ca0 6d 70 20 3d 20 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 63 6c 61 73 73 20 5e 20 mp.=.(pci_module_map[i].class.^.
3cc0 70 63 69 5f 63 6c 61 73 73 29 20 26 20 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 63 pci_class).&.pci_module_map[i].c
3ce0 6c 61 73 73 5f 6d 61 73 6b 3b 0a 09 69 66 20 28 63 6c 61 73 73 5f 74 65 6d 70 20 21 3d 20 30 29 lass_mask;..if.(class_temp.!=.0)
3d00 20 7b 0a 09 20 20 20 20 64 62 67 20 28 22 63 6c 61 73 73 20 6d 61 73 6b 20 63 68 65 63 6b 20 66 .{......dbg.("class.mask.check.f
3d20 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 0a 09 09 20 20 20 20 70 63 69 5f 6d 6f 64 75 6c ailed.%x.!=.%x",.......pci_modul
3d40 65 5f 6d 61 70 5b 69 5d 2e 63 6c 61 73 73 2c 20 63 6c 61 73 73 5f 74 65 6d 70 29 3b 0a 09 20 20 e_map[i].class,.class_temp);....
3d60 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 21 20 2a ..continue;..}.../*.found.one!.*
3d80 2f 0a 09 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 70 63 69 5f 6d 6f 64 75 6c 65 /..dbg.("loading.%s",.pci_module
3da0 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 72 65 74 76 61 6c 20 3d 20 _map[i].module_name);..retval.=.
3dc0 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 70 63 69 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d load_module.(pci_module_map[i].m
3de0 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 69 66 20 28 72 65 74 76 61 6c 29 0a 09 20 20 20 20 72 odule_name);..if.(retval)......r
3e00 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 eturn.retval;.....}......return.
3e20 30 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 70 63 69 5f 61 64 64 20 28 76 6f 69 64 29 0a 0;.}..static.int.pci_add.(void).
3e40 7b 0a 20 20 20 20 63 68 61 72 20 2a 63 6c 61 73 73 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 {.....char.*class_env;.....char.
3e60 2a 69 64 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 2a 73 75 62 73 79 73 5f 65 6e 76 3b 0a 20 *id_env;.....char.*subsys_env;..
3e80 20 20 20 69 6e 74 20 65 72 72 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 ...int.error;.....unsigned.int.v
3ea0 65 6e 64 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 65 76 69 63 65 3b 0a endor;.....unsigned.int.device;.
3ec0 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 76 65 6e 64 6f 72 3b 0a 20 20 20 20 ....unsigned.int.subvendor;.....
3ee0 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 64 65 76 69 63 65 3b 0a 20 20 20 20 75 6e 73 69 unsigned.int.subdevice;.....unsi
3f00 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 3b 0a 0a 20 20 20 20 70 63 69 5f 72 65 61 64 5f 70 63 gned.int.class;......pci_read_pc
3f20 69 6d 61 70 28 29 3b 0a 0a 20 20 20 20 69 64 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 28 22 50 43 imap();......id_env.=.getenv("PC
3f40 49 5f 49 44 22 29 3b 0a 20 20 20 20 73 75 62 73 79 73 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 28 I_ID");.....subsys_env.=.getenv(
3f60 22 50 43 49 5f 53 55 42 53 59 53 5f 49 44 22 29 3b 0a 20 20 20 20 63 6c 61 73 73 5f 65 6e 76 20 "PCI_SUBSYS_ID");.....class_env.
3f80 3d 20 67 65 74 65 6e 76 28 22 50 43 49 5f 43 4c 41 53 53 22 29 3b 0a 20 20 20 20 69 66 20 28 28 =.getenv("PCI_CLASS");.....if.((
3fa0 69 64 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 73 75 62 73 79 73 5f id_env.==.NULL).||......(subsys_
3fc0 65 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 63 6c 61 73 73 5f 65 6e 76 20 env.==.NULL).||......(class_env.
3fe0 3d 3d 20 4e 55 4c 4c 29 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 6e 67 20 61 6e 20 65 6e ==.NULL)).{..dbg.("missing.an.en
4000 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b vironment.variable,.aborting.");
4020 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 73 ..return.1;.....}......error.=.s
4040 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 28 69 64 5f 65 6e 76 2c 20 31 36 2c 20 26 76 65 6e 64 6f plit_2values.(id_env,.16,.&vendo
4060 72 2c 20 26 64 65 76 69 63 65 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 r,.&device);.....if.(error)..ret
4080 75 72 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 73 70 6c 69 74 5f 32 76 61 urn.error;.....error.=.split_2va
40a0 6c 75 65 73 20 28 73 75 62 73 79 73 5f 65 6e 76 2c 20 31 36 2c 20 26 73 75 62 76 65 6e 64 6f 72 lues.(subsys_env,.16,.&subvendor
40c0 2c 20 26 73 75 62 64 65 76 69 63 65 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 ,.&subdevice);.....if.(error)..r
40e0 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 63 6c 61 73 73 20 3d 20 73 74 72 74 6f 75 6c eturn.error;.....class.=.strtoul
4100 20 28 63 6c 61 73 73 5f 65 6e 76 2c 20 4e 55 4c 4c 2c 20 31 36 29 3b 0a 0a 20 20 20 20 65 72 72 .(class_env,.NULL,.16);......err
4120 6f 72 20 3d 20 70 63 69 5f 6d 61 74 63 68 5f 76 65 6e 64 6f 72 20 28 76 65 6e 64 6f 72 2c 20 64 or.=.pci_match_vendor.(vendor,.d
4140 65 76 69 63 65 2c 20 73 75 62 76 65 6e 64 6f 72 2c 20 73 75 62 64 65 76 69 63 65 2c 20 63 6c 61 evice,.subvendor,.subdevice,.cla
4160 73 73 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 73 74 61 74 ss);......return.error;.}...stat
4180 69 63 20 69 6e 74 20 70 63 69 5f 72 65 6d 6f 76 65 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 2f ic.int.pci_remove.(void).{...../
41a0 2a 20 72 69 67 68 74 20 6e 6f 77 20 77 65 20 64 6f 6e 27 74 20 64 6f 20 61 6e 79 74 68 69 6e 67 *.right.now.we.don't.do.anything
41c0 20 68 65 72 65 20 3a 29 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 73 74 61 .here.:).*/.....return.0;.}..sta
41e0 74 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 70 63 69 5f 73 75 62 73 79 73 74 tic.struct.subsystem.pci_subsyst
4200 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 41 44 44 5f 53 54 52 49 4e 47 2c 09 70 63 69 5f 61 em[].=.{.....{.ADD_STRING,.pci_a
4220 64 64 20 7d 2c 0a 20 20 20 20 7b 20 52 45 4d 4f 56 45 5f 53 54 52 49 4e 47 2c 09 70 63 69 5f 72 dd.},.....{.REMOVE_STRING,.pci_r
4240 65 6d 6f 76 65 20 7d 2c 0a 20 20 20 20 7b 20 4e 55 4c 4c 2c 09 09 4e 55 4c 4c 20 7d 0a 7d 3b 0a emove.},.....{.NULL,..NULL.}.};.
4260 0a 69 6e 74 20 70 63 69 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 68 .int.pci_handler.(void).{.....ch
4280 61 72 20 2a 20 61 63 74 69 6f 6e 3b 0a 0a 20 20 20 20 61 63 74 69 6f 6e 20 3d 20 67 65 74 65 6e ar.*.action;......action.=.geten
42a0 76 20 28 22 41 43 54 49 4f 4e 22 29 3b 0a 20 20 20 20 64 62 67 20 28 22 61 63 74 69 6f 6e 20 3d v.("ACTION");.....dbg.("action.=
42c0 20 25 73 22 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 20 20 69 66 20 28 61 63 74 69 6f 6e 20 3d 3d .%s",.action);.....if.(action.==
42e0 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 6e 67 20 41 43 54 49 4f 4e 20 65 .NULL).{..dbg.("missing.ACTION.e
4300 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 nvironment.variable,.aborting.")
4320 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 63 61 ;..return.1;.....}.....return.ca
4340 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 61 63 74 69 6f 6e 2c 20 70 63 69 5f 73 75 62 73 79 73 ll_subsystem.(action,.pci_subsys
4360 74 65 6d 29 3b 0a 7d 0a 0a 0a 2f 2a 20 54 68 65 20 75 73 62 20 66 75 6e 63 74 69 6f 6e 73 20 2a tem);.}.../*.The.usb.functions.*
4380 2f 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 56 45 /.#define.USB_DEVICE_ID_MATCH_VE
43a0 4e 44 4f 52 09 09 30 78 30 30 30 31 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f NDOR..0x0001.#define.USB_DEVICE_
43c0 49 44 5f 4d 41 54 43 48 5f 50 52 4f 44 55 43 54 09 09 30 78 30 30 30 32 0a 23 64 65 66 69 6e 65 ID_MATCH_PRODUCT..0x0002.#define
43e0 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 4c 4f 09 09 30 78 30 .USB_DEVICE_ID_MATCH_DEV_LO..0x0
4400 30 30 34 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 004.#define.USB_DEVICE_ID_MATCH_
4420 44 45 56 5f 48 49 09 09 30 78 30 30 30 38 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 DEV_HI..0x0008.#define.USB_DEVIC
4440 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 43 4c 41 53 53 09 09 30 78 30 30 31 30 0a 23 64 65 E_ID_MATCH_DEV_CLASS..0x0010.#de
4460 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 53 55 42 fine.USB_DEVICE_ID_MATCH_DEV_SUB
4480 43 4c 41 53 53 09 30 78 30 30 32 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f CLASS.0x0020.#define.USB_DEVICE_
44a0 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 50 52 4f 54 4f 43 4f 4c 09 30 78 30 30 34 30 0a 23 64 65 ID_MATCH_DEV_PROTOCOL.0x0040.#de
44c0 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 43 4c 41 fine.USB_DEVICE_ID_MATCH_INT_CLA
44e0 53 53 09 09 30 78 30 30 38 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 SS..0x0080.#define.USB_DEVICE_ID
4500 5f 4d 41 54 43 48 5f 49 4e 54 5f 53 55 42 43 4c 41 53 53 09 30 78 30 31 30 30 0a 23 64 65 66 69 _MATCH_INT_SUBCLASS.0x0100.#defi
4520 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 50 52 4f 54 4f ne.USB_DEVICE_ID_MATCH_INT_PROTO
4540 43 4f 4c 09 30 78 30 32 30 30 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 COL.0x0200.#define.USB_DEVICE_ID
4560 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 09 09 28 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 _MATCH_DEVICE..(USB_DEVICE_ID_MA
4580 54 43 48 5f 56 45 4e 44 4f 52 20 7c 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 TCH_VENDOR.|.USB_DEVICE_ID_MATCH
45a0 5f 50 52 4f 44 55 43 54 29 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f _PRODUCT).#define.USB_DEVICE_ID_
45c0 4d 41 54 43 48 5f 44 45 56 5f 52 41 4e 47 45 09 09 28 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f MATCH_DEV_RANGE..(USB_DEVICE_ID_
45e0 4d 41 54 43 48 5f 44 45 56 5f 4c 4f 20 7c 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 MATCH_DEV_LO.|.USB_DEVICE_ID_MAT
4600 43 48 5f 44 45 56 5f 48 49 29 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 CH_DEV_HI).#define.USB_DEVICE_ID
4620 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 5f 41 4e 44 5f 56 45 52 53 49 4f 4e 09 28 55 53 42 5f 44 _MATCH_DEVICE_AND_VERSION.(USB_D
4640 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 49 43 45 20 7c 20 55 53 42 5f 44 45 56 49 EVICE_ID_MATCH_DEVICE.|.USB_DEVI
4660 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 52 41 4e 47 45 29 0a 23 64 65 66 69 6e 65 20 55 CE_ID_MATCH_DEV_RANGE).#define.U
4680 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 49 4e 46 4f 09 09 28 55 53 SB_DEVICE_ID_MATCH_DEV_INFO..(US
46a0 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 43 4c 41 53 53 20 7c 20 5c 0a B_DEVICE_ID_MATCH_DEV_CLASS.|.\.
46c0 09 09 09 09 09 09 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 53 55 ......USB_DEVICE_ID_MATCH_DEV_SU
46e0 42 43 4c 41 53 53 20 7c 20 5c 0a 09 09 09 09 09 09 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d BCLASS.|.\.......USB_DEVICE_ID_M
4700 41 54 43 48 5f 44 45 56 5f 50 52 4f 54 4f 43 4f 4c 29 0a 23 64 65 66 69 6e 65 20 55 53 42 5f 44 ATCH_DEV_PROTOCOL).#define.USB_D
4720 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 49 4e 46 4f 09 09 28 55 53 42 5f 44 45 EVICE_ID_MATCH_INT_INFO..(USB_DE
4740 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 43 4c 41 53 53 20 7c 20 5c 0a 09 09 09 09 VICE_ID_MATCH_INT_CLASS.|.\.....
4760 09 09 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 53 55 42 43 4c 41 ..USB_DEVICE_ID_MATCH_INT_SUBCLA
4780 53 53 20 7c 20 5c 0a 09 09 09 09 09 09 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 SS.|.\.......USB_DEVICE_ID_MATCH
47a0 5f 49 4e 54 5f 50 52 4f 54 4f 43 4f 4c 29 0a 0a 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c _INT_PROTOCOL)..struct.usb_modul
47c0 65 5f 6d 61 70 20 7b 0a 09 63 6f 6e 73 74 20 63 68 61 72 20 2a 20 6d 6f 64 75 6c 65 5f 6e 61 6d e_map.{..const.char.*.module_nam
47e0 65 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 6d 61 74 63 68 5f 66 6c 61 67 73 3b 0a 09 75 e;..unsigned.int.match_flags;..u
4800 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 64 56 65 6e 64 6f 72 3b 0a 09 75 6e 73 69 67 6e 65 64 20 nsigned.int.idVendor;..unsigned.
4820 69 6e 74 20 69 64 50 72 6f 64 75 63 74 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 63 64 int.idProduct;..unsigned.int.bcd
4840 44 65 76 69 63 65 5f 6c 6f 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 63 64 44 65 76 69 Device_lo;..unsigned.int.bcdDevi
4860 63 65 5f 68 69 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 44 65 76 69 63 65 43 6c 61 73 ce_hi;..unsigned.int.bDeviceClas
4880 73 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 44 65 76 69 63 65 53 75 62 43 6c 61 73 73 s;..unsigned.int.bDeviceSubClass
48a0 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 44 65 76 69 63 65 50 72 6f 74 6f 63 6f 6c 3b ;..unsigned.int.bDeviceProtocol;
48c0 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 49 6e 74 65 72 66 61 63 65 43 6c 61 73 73 3b 0a ..unsigned.int.bInterfaceClass;.
48e0 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 49 6e 74 65 72 66 61 63 65 53 75 62 43 6c 61 73 73 .unsigned.int.bInterfaceSubClass
4900 3b 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 62 49 6e 74 65 72 66 61 63 65 50 72 6f 74 6f 63 ;..unsigned.int.bInterfaceProtoc
4920 6f 6c 3b 0a 7d 20 5f 5f 61 74 74 72 69 62 75 74 65 5f 5f 20 28 28 70 61 63 6b 65 64 29 29 3b 0a ol;.}.__attribute__.((packed));.
4940 73 74 61 74 69 63 20 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2a 75 73 static.struct.usb_module_map.*us
4960 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 0a 76 6f 69 64 20 75 73 62 5f 72 65 61 64 5f 75 73 62 b_module_map;..void.usb_read_usb
4980 6d 61 70 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 46 49 4c 45 20 2a 75 73 62 6d 61 70 5f 66 69 6c map(void).{.....FILE.*usbmap_fil
49a0 65 3b 0a 20 20 20 20 73 74 72 75 63 74 20 75 74 73 6e 61 6d 65 20 75 74 73 6e 61 6d 65 3b 0a 20 e;.....struct.utsname.utsname;..
49c0 20 20 20 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 20 2a 65 6e 74 72 79 20 ...struct.usb_module_map.*entry.
49e0 3d 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 3b 0a 20 20 20 20 63 68 61 72 20 2a 70 72 65 76 =.usb_module_map;.....char.*prev
4a00 6d 6f 64 75 6c 65 20 3d 20 22 22 3b 0a 20 20 20 20 63 68 61 72 20 66 69 6c 65 6e 61 6d 65 5b 4d module.=."";.....char.filename[M
4a20 41 58 50 41 54 48 4c 45 4e 5d 3b 0a 20 20 20 20 63 68 61 72 20 6c 69 6e 65 5b 4c 49 4e 45 4c 45 AXPATHLEN];.....char.line[LINELE
4a40 4e 47 54 48 5d 3b 0a 20 20 20 20 63 68 61 72 20 6d 6f 64 75 6c 65 5b 4c 49 4e 45 4c 45 4e 47 54 NGTH];.....char.module[LINELENGT
4a60 48 5d 3b 0a 20 20 20 20 69 6e 74 20 63 6f 75 6e 74 2c 20 6d 61 70 73 69 7a 65 3b 0a 0a 20 20 20 H];.....int.count,.mapsize;.....
4a80 20 69 66 20 28 75 6e 61 6d 65 28 26 75 74 73 6e 61 6d 65 29 20 3c 20 30 29 20 7b 0a 09 70 65 72 .if.(uname(&utsname).<.0).{..per
4aa0 72 6f 72 28 22 75 6e 61 6d 65 22 29 3b 0a 09 65 78 69 74 28 31 29 3b 0a 20 20 20 20 7d 0a 20 20 ror("uname");..exit(1);.....}...
4ac0 20 20 73 70 72 69 6e 74 66 28 66 69 6c 65 6e 61 6d 65 2c 20 22 2f 6c 69 62 2f 6d 6f 64 75 6c 65 ..sprintf(filename,."/lib/module
4ae0 73 2f 25 73 2f 6d 6f 64 75 6c 65 73 2e 75 73 62 6d 61 70 22 2c 20 75 74 73 6e 61 6d 65 2e 72 65 s/%s/modules.usbmap",.utsname.re
4b00 6c 65 61 73 65 29 3b 0a 20 20 20 20 69 66 20 28 28 75 73 62 6d 61 70 5f 66 69 6c 65 20 3d 20 66 lease);.....if.((usbmap_file.=.f
4b20 6f 70 65 6e 28 66 69 6c 65 6e 61 6d 65 2c 20 22 72 22 29 29 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a open(filename,."r")).==.NULL).{.
4b40 09 62 62 5f 70 65 72 72 6f 72 5f 6d 73 67 5f 61 6e 64 5f 64 69 65 28 22 43 6f 75 6c 64 20 6e 6f .bb_perror_msg_and_die("Could.no
4b60 74 20 6f 70 65 6e 20 25 73 22 2c 20 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 t.open.%s",.filename);.....}....
4b80 20 20 63 6f 75 6e 74 20 3d 20 6d 61 70 73 69 7a 65 20 3d 20 30 3b 0a 20 20 20 20 77 68 69 6c 65 ..count.=.mapsize.=.0;.....while
4ba0 28 66 67 65 74 73 28 6c 69 6e 65 2c 20 4c 49 4e 45 4c 45 4e 47 54 48 2c 20 75 73 62 6d 61 70 5f (fgets(line,.LINELENGTH,.usbmap_
4bc0 66 69 6c 65 29 20 21 3d 20 4e 55 4c 4c 29 20 7b 0a 0a 09 69 66 20 28 6c 69 6e 65 5b 30 5d 20 3d file).!=.NULL).{...if.(line[0].=
4be0 3d 20 27 23 27 29 0a 09 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 0a 09 63 6f 75 6e 74 2b 2b 3b =.'#')......continue;...count++;
4c00 0a 09 69 66 20 28 63 6f 75 6e 74 20 3e 3d 20 6d 61 70 73 69 7a 65 29 20 7b 0a 09 20 20 20 20 6d ..if.(count.>=.mapsize).{......m
4c20 61 70 73 69 7a 65 2b 3d 31 30 30 3b 0a 09 20 20 20 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 apsize+=100;......usb_module_map
4c40 20 3d 20 78 72 65 61 6c 6c 6f 63 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 2c 20 28 73 69 7a .=.xrealloc(usb_module_map,.(siz
4c60 65 6f 66 28 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 29 20 2a 20 6d 61 70 eof(struct.usb_module_map).*.map
4c80 73 69 7a 65 29 29 3b 0a 09 20 20 20 20 65 6e 74 72 79 20 3d 20 75 73 62 5f 6d 6f 64 75 6c 65 5f size));......entry.=.usb_module_
4ca0 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a 09 20 20 20 20 6d 65 6d 73 65 74 28 65 6e 74 map.+.count.-.1;......memset(ent
4cc0 72 79 2c 20 30 2c 20 28 73 69 7a 65 6f 66 28 73 74 72 75 63 74 20 75 73 62 5f 6d 6f 64 75 6c 65 ry,.0,.(sizeof(struct.usb_module
4ce0 5f 6d 61 70 29 20 2a 20 31 30 30 29 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 20 3d 20 75 73 62 5f 6d _map).*.100));..}..entry.=.usb_m
4d00 6f 64 75 6c 65 5f 6d 61 70 20 2b 20 63 6f 75 6e 74 20 2d 20 31 3b 0a 0a 09 69 66 20 28 73 73 63 odule_map.+.count.-.1;...if.(ssc
4d20 61 6e 66 28 6c 69 6e 65 2c 20 22 25 73 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 anf(line,."%s.0x%x.0x%x.0x%x.0x%
4d40 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 30 78 25 78 20 x.0x%x.0x%x.0x%x.0x%x.0x%x.0x%x.
4d60 30 78 25 78 22 2c 0a 09 09 20 20 20 20 6d 6f 64 75 6c 65 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 0x%x",.......module,.......&entr
4d80 79 2d 3e 6d 61 74 63 68 5f 66 6c 61 67 73 2c 20 26 65 6e 74 72 79 2d 3e 69 64 56 65 6e 64 6f 72 y->match_flags,.&entry->idVendor
4da0 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 69 64 50 72 6f 64 75 63 74 2c 20 26 65 6e 74 72 ,.......&entry->idProduct,.&entr
4dc0 79 2d 3e 62 63 64 44 65 76 69 63 65 5f 6c 6f 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 62 y->bcdDevice_lo,.......&entry->b
4de0 63 64 44 65 76 69 63 65 5f 68 69 2c 20 26 65 6e 74 72 79 2d 3e 62 44 65 76 69 63 65 43 6c 61 73 cdDevice_hi,.&entry->bDeviceClas
4e00 73 2c 0a 09 09 20 20 20 20 26 65 6e 74 72 79 2d 3e 62 44 65 76 69 63 65 53 75 62 43 6c 61 73 73 s,.......&entry->bDeviceSubClass
4e20 2c 20 26 65 6e 74 72 79 2d 3e 62 44 65 76 69 63 65 50 72 6f 74 6f 63 6f 6c 2c 0a 09 09 20 20 20 ,.&entry->bDeviceProtocol,......
4e40 20 26 65 6e 74 72 79 2d 3e 62 49 6e 74 65 72 66 61 63 65 43 6c 61 73 73 2c 20 26 65 6e 74 72 79 .&entry->bInterfaceClass,.&entry
4e60 2d 3e 62 49 6e 74 65 72 66 61 63 65 53 75 62 43 6c 61 73 73 2c 0a 09 09 20 20 20 20 26 65 6e 74 ->bInterfaceSubClass,.......&ent
4e80 72 79 2d 3e 62 49 6e 74 65 72 66 61 63 65 50 72 6f 74 6f 63 6f 6c 29 20 21 3d 20 31 32 29 20 7b ry->bInterfaceProtocol).!=.12).{
4ea0 0a 09 20 20 20 20 62 62 5f 65 72 72 6f 72 5f 6d 73 67 28 22 6d 6f 64 75 6c 65 73 2e 75 73 62 6d ......bb_error_msg("modules.usbm
4ec0 61 70 20 75 6e 70 61 72 73 61 62 6c 65 20 6c 69 6e 65 3a 20 25 73 2e 5c 6e 22 2c 20 6c 69 6e 65 ap.unparsable.line:.%s.\n",.line
4ee0 29 3b 0a 09 20 20 20 20 66 72 65 65 28 65 6e 74 72 79 29 3b 0a 09 20 20 20 20 63 6f 6e 74 69 6e );......free(entry);......contin
4f00 75 65 3b 0a 09 7d 0a 0a 09 2f 2a 20 4f 70 74 69 6d 69 7a 65 20 6d 65 6d 6f 72 79 20 61 6c 6c 6f ue;..}.../*.Optimize.memory.allo
4f20 63 61 74 69 6f 6e 20 61 20 62 69 74 2c 20 69 6e 20 63 61 73 65 20 73 6f 6d 65 64 61 79 20 77 65 cation.a.bit,.in.case.someday.we
4f40 0a 09 20 20 20 68 61 76 65 20 4c 69 6e 75 78 20 73 79 73 74 65 6d 73 20 77 69 74 68 20 7e 31 30 .....have.Linux.systems.with.~10
4f60 30 2c 30 30 30 20 6d 6f 64 75 6c 65 73 2e 20 20 49 74 20 61 6c 73 6f 0a 09 20 20 20 61 6c 6c 6f 0,000.modules...It.also.....allo
4f80 77 73 20 75 73 20 74 6f 20 6a 75 73 74 20 63 6f 6d 70 61 72 65 20 70 6f 69 6e 74 65 72 73 20 74 ws.us.to.just.compare.pointers.t
4fa0 6f 20 61 76 6f 69 64 20 74 72 79 69 6e 67 0a 09 20 20 20 74 6f 20 6c 6f 61 64 20 61 20 6d 6f 64 o.avoid.trying.....to.load.a.mod
4fc0 75 6c 65 20 74 77 69 63 65 2e 20 2a 2f 0a 09 69 66 20 28 73 74 72 63 6d 70 28 6d 6f 64 75 6c 65 ule.twice..*/..if.(strcmp(module
4fe0 2c 20 70 72 65 76 6d 6f 64 75 6c 65 29 20 21 3d 20 30 29 20 7b 0a 09 20 20 20 20 70 72 65 76 6d ,.prevmodule).!=.0).{......prevm
5000 6f 64 75 6c 65 20 3d 20 78 6d 61 6c 6c 6f 63 28 73 74 72 6c 65 6e 28 6d 6f 64 75 6c 65 29 2b 31 odule.=.xmalloc(strlen(module)+1
5020 29 3b 0a 09 20 20 20 20 73 74 72 63 70 79 28 70 72 65 76 6d 6f 64 75 6c 65 2c 20 6d 6f 64 75 6c );......strcpy(prevmodule,.modul
5040 65 29 3b 0a 09 7d 0a 09 65 6e 74 72 79 2d 3e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 3d 20 70 72 65 e);..}..entry->module_name.=.pre
5060 76 6d 6f 64 75 6c 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 66 63 6c 6f 73 65 28 75 73 62 6d 61 70 vmodule;.....}.....fclose(usbmap
5080 5f 66 69 6c 65 29 3b 0a 7d 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 75 73 62 5f 6d 61 74 63 68 5f _file);.}..static.int.usb_match_
50a0 76 65 6e 64 6f 72 5f 70 72 6f 64 75 63 74 20 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 76 65 6e vendor_product.(unsigned.int.ven
50c0 64 6f 72 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 72 6f 64 75 63 74 2c 20 75 6e 73 69 67 dor,.unsigned.int.product,.unsig
50e0 6e 65 64 20 69 6e 74 20 62 63 64 44 65 76 69 63 65 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a ned.int.bcdDevice).{.....int.i;.
5100 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a 20 20 20 20 64 62 67 20 28 22 76 65 6e 64 6f ....int.retval;......dbg.("vendo
5120 72 20 3d 20 25 78 2c 20 70 72 6f 64 75 63 74 20 3d 20 25 78 2c 20 62 63 64 44 65 76 69 63 65 20 r.=.%x,.product.=.%x,.bcdDevice.
5140 3d 20 25 78 22 2c 20 76 65 6e 64 6f 72 2c 20 70 72 6f 64 75 63 74 2c 20 62 63 64 44 65 76 69 63 =.%x",.vendor,.product,.bcdDevic
5160 65 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 75 73 62 5f 6d 6f 64 75 6c 65 5f e);......for.(i.=.0;.usb_module_
5180 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e 55 4c 4c 3b 20 2b 2b 69 29 map[i].module_name.!=.NULL;.++i)
51a0 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 2c 20 6d 61 74 63 68 5f 66 .{..dbg.("looking.at.%s,.match_f
51c0 6c 61 67 73 20 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f lags.=.%x",.usb_module_map[i].mo
51e0 64 75 6c 65 5f 6e 61 6d 65 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 dule_name,.usb_module_map[i].mat
5200 63 68 5f 66 6c 61 67 73 29 3b 0a 09 69 66 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 ch_flags);..if.(usb_module_map[i
5220 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 28 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d ].match_flags.&.(USB_DEVICE_ID_M
5240 41 54 43 48 5f 44 45 56 49 43 45 20 7c 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 ATCH_DEVICE.|.USB_DEVICE_ID_MATC
5260 48 5f 44 45 56 5f 52 41 4e 47 45 29 29 20 7b 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f H_DEV_RANGE)).{......if.((usb_mo
5280 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 dule_map[i].match_flags.&.USB_DE
52a0 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 56 45 4e 44 4f 52 29 20 26 26 0a 09 09 20 20 20 20 28 VICE_ID_MATCH_VENDOR).&&.......(
52c0 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 69 64 56 65 6e 64 6f 72 20 21 3d 20 76 65 usb_module_map[i].idVendor.!=.ve
52e0 6e 64 6f 72 29 29 20 7b 0a 09 09 64 62 67 20 28 22 76 65 6e 64 6f 72 20 63 68 65 63 6b 20 66 61 ndor)).{...dbg.("vendor.check.fa
5300 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 iled.%x.!=.%x",.usb_module_map[i
5320 5d 2e 69 64 56 65 6e 64 6f 72 2c 20 76 65 6e 64 6f 72 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b ].idVendor,.vendor);...continue;
5340 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 ......}......if.((usb_module_map
5360 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f [i].match_flags.&.USB_DEVICE_ID_
5380 4d 41 54 43 48 5f 50 52 4f 44 55 43 54 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 MATCH_PRODUCT).&&.......(usb_mod
53a0 75 6c 65 5f 6d 61 70 5b 69 5d 2e 69 64 50 72 6f 64 75 63 74 20 21 3d 20 70 72 6f 64 75 63 74 29 ule_map[i].idProduct.!=.product)
53c0 29 20 7b 0a 09 09 64 62 67 20 28 22 70 72 6f 64 75 63 74 20 63 68 65 63 6b 20 66 61 69 6c 65 64 ).{...dbg.("product.check.failed
53e0 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 69 64 .%x.!=.%x",.usb_module_map[i].id
5400 50 72 6f 64 75 63 74 2c 20 70 72 6f 64 75 63 74 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 Product,.product);...continue;..
5420 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 ....}......if.((usb_module_map[i
5440 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 ].match_flags.&.USB_DEVICE_ID_MA
5460 54 43 48 5f 44 45 56 5f 4c 4f 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 TCH_DEV_LO).&&.......(usb_module
5480 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 76 69 63 65 5f 6c 6f 20 3c 20 62 63 64 44 65 76 69 63 65 _map[i].bcdDevice_lo.<.bcdDevice
54a0 29 29 20 7b 0a 09 09 64 62 67 20 28 22 62 63 64 44 65 76 69 63 65 5f 6c 6f 20 63 68 65 63 6b 20 )).{...dbg.("bcdDevice_lo.check.
54c0 66 61 69 6c 65 64 20 25 78 20 3e 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b failed.%x.>.%x",.usb_module_map[
54e0 69 5d 2e 62 63 64 44 65 76 69 63 65 5f 6c 6f 2c 20 62 63 64 44 65 76 69 63 65 29 3b 0a 09 09 63 i].bcdDevice_lo,.bcdDevice);...c
5500 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f ontinue;......}......if.((usb_mo
5520 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 dule_map[i].match_flags.&.USB_DE
5540 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 48 49 29 20 26 26 0a 09 09 20 20 20 20 28 VICE_ID_MATCH_DEV_HI).&&.......(
5560 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 76 69 63 65 5f 68 69 20 3e usb_module_map[i].bcdDevice_hi.>
5580 3d 20 62 63 64 44 65 76 69 63 65 29 29 20 7b 0a 09 09 64 62 67 20 28 22 62 63 64 44 65 76 69 63 =.bcdDevice)).{...dbg.("bcdDevic
55a0 65 5f 68 69 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 3c 3d 20 25 78 22 2c 20 75 73 62 e_hi.check.failed.%x.<=.%x",.usb
55c0 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 63 64 44 65 76 69 63 65 5f 68 69 2c 20 62 63 64 _module_map[i].bcdDevice_hi,.bcd
55e0 44 65 76 69 63 65 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 Device);...continue;......}.....
5600 20 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 21 20 2a 2f 0a 09 20 20 20 20 64 62 67 20 28 22 6c 6f 61 ./*.found.one!.*/......dbg.("loa
5620 64 69 6e 67 20 25 73 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 ding.%s",.usb_module_map[i].modu
5640 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 72 65 74 76 61 6c 20 3d 20 6c 6f 61 64 5f 6d 6f 64 le_name);......retval.=.load_mod
5660 75 6c 65 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 ule.(usb_module_map[i].module_na
5680 6d 65 29 3b 0a 09 20 20 20 20 69 66 20 28 72 65 74 76 61 6c 29 0a 09 09 72 65 74 75 72 6e 20 72 me);......if.(retval)...return.r
56a0 65 74 76 61 6c 3b 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d etval;..}.....}......return.0;.}
56c0 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 75 73 62 5f 6d 61 74 63 68 5f 64 65 76 69 63 65 5f 63 6c ..static.int.usb_match_device_cl
56e0 61 73 73 20 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 63 6c 61 73 73 2c 20 75 6e 73 69 67 6e 65 ass.(unsigned.int.class,.unsigne
5700 64 20 69 6e 74 20 73 75 62 63 6c 61 73 73 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 70 72 6f d.int.subclass,.unsigned.int.pro
5720 74 6f 63 6f 6c 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 tocol).{.....int.i;.....int.retv
5740 61 6c 3b 0a 0a 20 20 20 20 64 62 67 20 28 22 63 6c 61 73 73 20 3d 20 25 78 2c 20 73 75 62 63 6c al;......dbg.("class.=.%x,.subcl
5760 61 73 73 20 3d 20 25 78 2c 20 70 72 6f 74 6f 63 6f 6c 20 3d 20 25 78 22 2c 20 63 6c 61 73 73 2c ass.=.%x,.protocol.=.%x",.class,
5780 20 73 75 62 63 6c 61 73 73 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 .subclass,.protocol);......for.(
57a0 69 20 3d 20 30 3b 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f i.=.0;.usb_module_map[i].module_
57c0 6e 61 6d 65 20 21 3d 20 4e 55 4c 4c 3b 20 2b 2b 69 29 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b name.!=.NULL;.++i).{..dbg.("look
57e0 69 6e 67 20 61 74 20 25 73 2c 20 6d 61 74 63 68 5f 66 6c 61 67 73 20 3d 20 25 78 22 2c 20 75 73 ing.at.%s,.match_flags.=.%x",.us
5800 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 2c 20 75 73 62 b_module_map[i].module_name,.usb
5820 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 29 3b 0a 09 69 66 _module_map[i].match_flags);..if
5840 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 .(usb_module_map[i].match_flags.
5860 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 49 4e 46 4f 29 20 &.USB_DEVICE_ID_MATCH_DEV_INFO).
5880 7b 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 {......if.((usb_module_map[i].ma
58a0 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f tch_flags.&.USB_DEVICE_ID_MATCH_
58c0 44 45 56 5f 43 4c 41 53 53 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f DEV_CLASS).&&.......(usb_module_
58e0 6d 61 70 5b 69 5d 2e 62 44 65 76 69 63 65 43 6c 61 73 73 20 21 3d 20 63 6c 61 73 73 29 29 20 7b map[i].bDeviceClass.!=.class)).{
5900 0a 09 09 64 62 67 20 28 22 63 6c 61 73 73 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 ...dbg.("class.check.failed.%x.!
5920 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 44 65 76 69 63 65 =.%x",.usb_module_map[i].bDevice
5940 43 6c 61 73 73 2c 20 63 6c 61 73 73 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 Class,.class);...continue;......
5960 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 }......if.((usb_module_map[i].ma
5980 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f tch_flags.&.USB_DEVICE_ID_MATCH_
59a0 44 45 56 5f 53 55 42 43 4c 41 53 53 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 DEV_SUBCLASS).&&.......(usb_modu
59c0 6c 65 5f 6d 61 70 5b 69 5d 2e 62 44 65 76 69 63 65 53 75 62 43 6c 61 73 73 20 21 3d 20 73 75 62 le_map[i].bDeviceSubClass.!=.sub
59e0 63 6c 61 73 73 29 29 20 7b 0a 09 09 64 62 67 20 28 22 73 75 62 63 6c 61 73 73 20 63 68 65 63 6b class)).{...dbg.("subclass.check
5a00 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 .failed.%x.!=.%x",.usb_module_ma
5a20 70 5b 69 5d 2e 62 44 65 76 69 63 65 53 75 62 43 6c 61 73 73 2c 20 73 75 62 63 6c 61 73 73 29 3b p[i].bDeviceSubClass,.subclass);
5a40 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 ...continue;......}......if.((us
5a60 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 b_module_map[i].match_flags.&.US
5a80 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 44 45 56 5f 50 52 4f 54 4f 43 4f 4c 29 20 B_DEVICE_ID_MATCH_DEV_PROTOCOL).
5aa0 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 44 65 76 &&.......(usb_module_map[i].bDev
5ac0 69 63 65 50 72 6f 74 6f 63 6f 6c 20 21 3d 20 70 72 6f 74 6f 63 6f 6c 29 29 20 7b 0a 09 09 64 62 iceProtocol.!=.protocol)).{...db
5ae0 67 20 28 22 70 72 6f 74 6f 63 6f 6c 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 g.("protocol.check.failed.%x.!=.
5b00 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 44 65 76 69 63 65 50 72 %x",.usb_module_map[i].bDevicePr
5b20 6f 74 6f 63 6f 6c 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 otocol,.protocol);...continue;..
5b40 20 20 20 20 7d 0a 09 20 20 20 20 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 21 20 2a 2f 0a 09 20 20 20 ....}....../*.found.one!.*/.....
5b60 20 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d .dbg.("loading.%s",.usb_module_m
5b80 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 72 65 74 76 61 6c 20 ap[i].module_name);......retval.
5ba0 3d 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d =.load_module.(usb_module_map[i]
5bc0 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 69 66 20 28 72 65 74 76 61 6c 29 0a .module_name);......if.(retval).
5be0 09 09 72 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 ..return.retval;..}.....}......r
5c00 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 75 73 62 5f 6d 61 74 63 eturn.0;.}...static.int.usb_matc
5c20 68 5f 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 20 28 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 h_interface_class.(unsigned.int.
5c40 63 6c 61 73 73 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 73 75 62 63 6c 61 73 73 2c 20 75 6e class,.unsigned.int.subclass,.un
5c60 73 69 67 6e 65 64 20 69 6e 74 20 70 72 6f 74 6f 63 6f 6c 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 signed.int.protocol).{.....int.i
5c80 3b 0a 20 20 20 20 69 6e 74 20 72 65 74 76 61 6c 3b 0a 0a 20 20 20 20 64 62 67 20 28 22 63 6c 61 ;.....int.retval;......dbg.("cla
5ca0 73 73 20 3d 20 25 78 2c 20 73 75 62 63 6c 61 73 73 20 3d 20 25 78 2c 20 70 72 6f 74 6f 63 6f 6c ss.=.%x,.subclass.=.%x,.protocol
5cc0 20 3d 20 25 78 22 2c 20 63 6c 61 73 73 2c 20 73 75 62 63 6c 61 73 73 2c 20 70 72 6f 74 6f 63 6f .=.%x",.class,.subclass,.protoco
5ce0 6c 29 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 75 73 62 5f 6d 6f 64 75 6c 65 5f l);......for.(i.=.0;.usb_module_
5d00 6d 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 20 21 3d 20 4e 55 4c 4c 3b 20 2b 2b 69 29 map[i].module_name.!=.NULL;.++i)
5d20 20 7b 0a 09 64 62 67 20 28 22 6c 6f 6f 6b 69 6e 67 20 61 74 20 25 73 2c 20 6d 61 74 63 68 5f 66 .{..dbg.("looking.at.%s,.match_f
5d40 6c 61 67 73 20 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 6f lags.=.%x",.usb_module_map[i].mo
5d60 64 75 6c 65 5f 6e 61 6d 65 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 dule_name,.usb_module_map[i].mat
5d80 63 68 5f 66 6c 61 67 73 29 3b 0a 09 69 66 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 ch_flags);..if.(usb_module_map[i
5da0 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 ].match_flags.&.USB_DEVICE_ID_MA
5dc0 54 43 48 5f 49 4e 54 5f 49 4e 46 4f 29 20 7b 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f TCH_INT_INFO).{......if.((usb_mo
5de0 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 dule_map[i].match_flags.&.USB_DE
5e00 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 43 4c 41 53 53 29 20 26 26 0a 09 09 20 20 VICE_ID_MATCH_INT_CLASS).&&.....
5e20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 6e 74 65 72 66 61 63 65 43 ..(usb_module_map[i].bInterfaceC
5e40 6c 61 73 73 20 21 3d 20 63 6c 61 73 73 29 29 20 7b 0a 09 09 64 62 67 20 28 22 63 6c 61 73 73 20 lass.!=.class)).{...dbg.("class.
5e60 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 check.failed.%x.!=.%x",.usb_modu
5e80 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 6e 74 65 72 66 61 63 65 43 6c 61 73 73 2c 20 63 6c 61 73 73 le_map[i].bInterfaceClass,.class
5ea0 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 );...continue;......}......if.((
5ec0 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 usb_module_map[i].match_flags.&.
5ee0 55 53 42 5f 44 45 56 49 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 53 55 42 43 4c 41 53 53 USB_DEVICE_ID_MATCH_INT_SUBCLASS
5f00 29 20 26 26 0a 09 09 20 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 ).&&.......(usb_module_map[i].bI
5f20 6e 74 65 72 66 61 63 65 53 75 62 43 6c 61 73 73 20 21 3d 20 73 75 62 63 6c 61 73 73 29 29 20 7b nterfaceSubClass.!=.subclass)).{
5f40 0a 09 09 64 62 67 20 28 22 73 75 62 63 6c 61 73 73 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 ...dbg.("subclass.check.failed.%
5f60 78 20 21 3d 20 25 78 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 6e 74 x.!=.%x",.usb_module_map[i].bInt
5f80 65 72 66 61 63 65 53 75 62 43 6c 61 73 73 2c 20 73 75 62 63 6c 61 73 73 29 3b 0a 09 09 63 6f 6e erfaceSubClass,.subclass);...con
5fa0 74 69 6e 75 65 3b 0a 09 20 20 20 20 7d 0a 09 20 20 20 20 69 66 20 28 28 75 73 62 5f 6d 6f 64 75 tinue;......}......if.((usb_modu
5fc0 6c 65 5f 6d 61 70 5b 69 5d 2e 6d 61 74 63 68 5f 66 6c 61 67 73 20 26 20 55 53 42 5f 44 45 56 49 le_map[i].match_flags.&.USB_DEVI
5fe0 43 45 5f 49 44 5f 4d 41 54 43 48 5f 49 4e 54 5f 50 52 4f 54 4f 43 4f 4c 29 20 26 26 0a 09 09 20 CE_ID_MATCH_INT_PROTOCOL).&&....
6000 20 20 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 6e 74 65 72 66 61 63 65 ...(usb_module_map[i].bInterface
6020 50 72 6f 74 6f 63 6f 6c 20 21 3d 20 70 72 6f 74 6f 63 6f 6c 29 29 20 7b 0a 09 09 64 62 67 20 28 Protocol.!=.protocol)).{...dbg.(
6040 22 70 72 6f 74 6f 63 6f 6c 20 63 68 65 63 6b 20 66 61 69 6c 65 64 20 25 78 20 21 3d 20 25 78 22 "protocol.check.failed.%x.!=.%x"
6060 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d 2e 62 49 6e 74 65 72 66 61 63 65 50 72 ,.usb_module_map[i].bInterfacePr
6080 6f 74 6f 63 6f 6c 2c 20 70 72 6f 74 6f 63 6f 6c 29 3b 0a 09 09 63 6f 6e 74 69 6e 75 65 3b 0a 09 otocol,.protocol);...continue;..
60a0 20 20 20 20 7d 0a 09 20 20 20 20 2f 2a 20 66 6f 75 6e 64 20 6f 6e 65 21 20 2a 2f 0a 09 20 20 20 ....}....../*.found.one!.*/.....
60c0 20 64 62 67 20 28 22 6c 6f 61 64 69 6e 67 20 25 73 22 2c 20 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d .dbg.("loading.%s",.usb_module_m
60e0 61 70 5b 69 5d 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 72 65 74 76 61 6c 20 ap[i].module_name);......retval.
6100 3d 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 75 73 62 5f 6d 6f 64 75 6c 65 5f 6d 61 70 5b 69 5d =.load_module.(usb_module_map[i]
6120 2e 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a 09 20 20 20 20 69 66 20 28 72 65 74 76 61 6c 29 0a .module_name);......if.(retval).
6140 09 09 72 65 74 75 72 6e 20 72 65 74 76 61 6c 3b 0a 09 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 ..return.retval;..}.....}......r
6160 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 73 74 61 74 69 63 20 69 6e 74 20 75 73 62 5f 61 64 64 20 eturn.0;.}...static.int.usb_add.
6180 28 76 6f 69 64 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 70 72 6f 64 75 63 74 5f 65 6e 76 3b 0a (void).{.....char.*product_env;.
61a0 20 20 20 20 63 68 61 72 20 2a 74 79 70 65 5f 65 6e 76 3b 0a 20 20 20 20 63 68 61 72 20 2a 69 6e ....char.*type_env;.....char.*in
61c0 74 65 72 66 61 63 65 5f 65 6e 76 3b 0a 20 20 20 20 69 6e 74 20 65 72 72 6f 72 3b 0a 20 20 20 20 terface_env;.....int.error;.....
61e0 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 64 56 65 6e 64 6f 72 3b 0a 20 20 20 20 75 6e 73 69 67 unsigned.int.idVendor;.....unsig
6200 6e 65 64 20 69 6e 74 20 69 64 50 72 6f 64 75 63 74 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 ned.int.idProduct;.....unsigned.
6220 69 6e 74 20 62 63 64 44 65 76 69 63 65 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 int.bcdDevice;.....unsigned.int.
6240 64 65 76 69 63 65 5f 63 6c 61 73 73 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 64 device_class;.....unsigned.int.d
6260 65 76 69 63 65 5f 73 75 62 63 6c 61 73 73 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 evice_subclass;.....unsigned.int
6280 20 64 65 76 69 63 65 5f 70 72 6f 74 6f 63 6f 6c 3b 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 .device_protocol;.....unsigned.i
62a0 6e 74 20 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 20 3d 20 30 3b 0a 20 20 20 20 75 6e 73 69 nt.interface_class.=.0;.....unsi
62c0 67 6e 65 64 20 69 6e 74 20 69 6e 74 65 72 66 61 63 65 5f 73 75 62 63 6c 61 73 73 20 3d 20 30 3b gned.int.interface_subclass.=.0;
62e0 0a 20 20 20 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69 6e 74 65 72 66 61 63 65 5f 70 72 6f 74 .....unsigned.int.interface_prot
6300 6f 63 6f 6c 20 3d 20 30 3b 0a 0a 20 20 20 20 75 73 62 5f 72 65 61 64 5f 75 73 62 6d 61 70 28 29 ocol.=.0;......usb_read_usbmap()
6320 3b 0a 0a 20 20 20 20 70 72 6f 64 75 63 74 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 20 28 22 50 52 ;......product_env.=.getenv.("PR
6340 4f 44 55 43 54 22 29 3b 0a 20 20 20 20 74 79 70 65 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 20 28 ODUCT");.....type_env.=.getenv.(
6360 22 54 59 50 45 22 29 3b 0a 20 20 20 20 69 66 20 28 28 70 72 6f 64 75 63 74 5f 65 6e 76 20 3d 3d "TYPE");.....if.((product_env.==
6380 20 4e 55 4c 4c 29 20 7c 7c 0a 09 20 20 20 20 28 74 79 70 65 5f 65 6e 76 20 3d 3d 20 4e 55 4c 4c .NULL).||......(type_env.==.NULL
63a0 29 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 6e 67 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 )).{..dbg.("missing.an.environme
63c0 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 nt.variable,.aborting.");..retur
63e0 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 73 70 6c 69 74 5f 33 76 61 n.1;.....}.....error.=.split_3va
6400 6c 75 65 73 20 28 70 72 6f 64 75 63 74 5f 65 6e 76 2c 20 31 36 2c 20 26 69 64 56 65 6e 64 6f 72 lues.(product_env,.16,.&idVendor
6420 2c 20 26 69 64 50 72 6f 64 75 63 74 2c 20 26 62 63 64 44 65 76 69 63 65 29 3b 0a 20 20 20 20 69 ,.&idProduct,.&bcdDevice);.....i
6440 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 0a 20 20 20 20 65 72 f.(error)..return.error;......er
6460 72 6f 72 20 3d 20 75 73 62 5f 6d 61 74 63 68 5f 76 65 6e 64 6f 72 5f 70 72 6f 64 75 63 74 20 28 ror.=.usb_match_vendor_product.(
6480 69 64 56 65 6e 64 6f 72 2c 20 69 64 50 72 6f 64 75 63 74 2c 20 62 63 64 44 65 76 69 63 65 29 3b idVendor,.idProduct,.bcdDevice);
64a0 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 0a .....if.(error)..return.error;..
64c0 20 20 20 20 65 72 72 6f 72 20 3d 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 20 28 74 79 70 65 5f ....error.=.split_3values.(type_
64e0 65 6e 76 2c 20 31 30 2c 20 26 64 65 76 69 63 65 5f 63 6c 61 73 73 2c 0a 09 20 20 20 20 26 64 65 env,.10,.&device_class,......&de
6500 76 69 63 65 5f 73 75 62 63 6c 61 73 73 2c 20 26 64 65 76 69 63 65 5f 70 72 6f 74 6f 63 6f 6c 29 vice_subclass,.&device_protocol)
6520 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a ;.....if.(error)..return.error;.
6540 20 20 20 20 65 72 72 6f 72 20 3d 20 75 73 62 5f 6d 61 74 63 68 5f 64 65 76 69 63 65 5f 63 6c 61 ....error.=.usb_match_device_cla
6560 73 73 20 28 64 65 76 69 63 65 5f 63 6c 61 73 73 2c 20 64 65 76 69 63 65 5f 73 75 62 63 6c 61 73 ss.(device_class,.device_subclas
6580 73 2c 20 64 65 76 69 63 65 5f 70 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 s,.device_protocol);.....if.(err
65a0 6f 72 29 0a 09 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 0a 20 20 20 20 2f 2a 20 77 65 20 6e 65 or)..return.error;....../*.we.ne
65c0 65 64 20 74 6f 20 6c 6f 6f 6b 20 61 74 20 74 68 65 20 69 6e 74 65 72 66 61 63 65 20 74 6f 6f 20 ed.to.look.at.the.interface.too.
65e0 2a 2f 0a 20 20 20 20 69 6e 74 65 72 66 61 63 65 5f 65 6e 76 20 3d 20 67 65 74 65 6e 76 20 28 22 */.....interface_env.=.getenv.("
6600 49 4e 54 45 52 46 41 43 45 22 29 3b 0a 20 20 20 20 69 66 20 28 69 6e 74 65 72 66 61 63 65 5f 65 INTERFACE");.....if.(interface_e
6620 6e 76 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 67 20 28 22 69 6e 74 65 72 66 61 63 65 20 69 nv.==.NULL).{..dbg.("interface.i
6640 73 20 6e 75 6c 6c 2c 20 77 65 20 64 6f 6e 27 74 20 6b 6e 6f 77 20 77 68 61 74 20 74 6f 20 64 6f s.null,.we.don't.know.what.to.do
6660 20 68 65 72 65 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65 .here.");..return.1;.....}.....e
6680 72 72 6f 72 20 3d 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 20 28 69 6e 74 65 72 66 61 63 65 5f rror.=.split_3values.(interface_
66a0 65 6e 76 2c 20 31 30 2c 20 26 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 2c 0a 09 20 20 20 20 env,.10,.&interface_class,......
66c0 26 69 6e 74 65 72 66 61 63 65 5f 73 75 62 63 6c 61 73 73 2c 20 26 69 6e 74 65 72 66 61 63 65 5f &interface_subclass,.&interface_
66e0 70 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 20 20 69 66 20 28 65 72 72 6f 72 29 0a 09 72 65 74 75 72 protocol);.....if.(error)..retur
6700 6e 20 65 72 72 6f 72 3b 0a 20 20 20 20 65 72 72 6f 72 20 3d 20 75 73 62 5f 6d 61 74 63 68 5f 69 n.error;.....error.=.usb_match_i
6720 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 20 28 69 6e 74 65 72 66 61 63 65 5f 63 6c 61 73 73 2c nterface_class.(interface_class,
6740 20 69 6e 74 65 72 66 61 63 65 5f 73 75 62 63 6c 61 73 73 2c 20 69 6e 74 65 72 66 61 63 65 5f 70 .interface_subclass,.interface_p
6760 72 6f 74 6f 63 6f 6c 29 3b 0a 20 20 20 20 72 65 74 75 72 6e 20 65 72 72 6f 72 3b 0a 7d 0a 0a 0a rotocol);.....return.error;.}...
6780 73 74 61 74 69 63 20 69 6e 74 20 75 73 62 5f 72 65 6d 6f 76 65 20 28 76 6f 69 64 29 0a 7b 0a 20 static.int.usb_remove.(void).{..
67a0 20 20 20 2f 2a 20 72 69 67 68 74 20 6e 6f 77 20 77 65 20 64 6f 6e 27 74 20 64 6f 20 61 6e 79 74 .../*.right.now.we.don't.do.anyt
67c0 68 69 6e 67 20 68 65 72 65 20 3a 29 20 2a 2f 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a hing.here.:).*/.....return.0;.}.
67e0 0a 0a 73 74 61 74 69 63 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 75 73 62 5f 73 75 ..static.struct.subsystem.usb_su
6800 62 73 79 73 74 65 6d 5b 5d 20 3d 20 7b 0a 20 20 20 20 7b 20 41 44 44 5f 53 54 52 49 4e 47 2c 09 bsystem[].=.{.....{.ADD_STRING,.
6820 75 73 62 5f 61 64 64 20 7d 2c 0a 20 20 20 20 7b 20 52 45 4d 4f 56 45 5f 53 54 52 49 4e 47 2c 09 usb_add.},.....{.REMOVE_STRING,.
6840 75 73 62 5f 72 65 6d 6f 76 65 20 7d 2c 0a 20 20 20 20 7b 20 4e 55 4c 4c 2c 09 09 4e 55 4c 4c 20 usb_remove.},.....{.NULL,..NULL.
6860 7d 0a 7d 3b 0a 0a 0a 69 6e 74 20 75 73 62 5f 68 61 6e 64 6c 65 72 20 28 76 6f 69 64 29 0a 7b 0a }.};...int.usb_handler.(void).{.
6880 20 20 20 20 63 68 61 72 20 2a 20 61 63 74 69 6f 6e 3b 0a 0a 20 20 20 20 61 63 74 69 6f 6e 20 3d ....char.*.action;......action.=
68a0 20 67 65 74 65 6e 76 20 28 22 41 43 54 49 4f 4e 22 29 3b 0a 20 20 20 20 64 62 67 20 28 22 61 63 .getenv.("ACTION");.....dbg.("ac
68c0 74 69 6f 6e 20 3d 20 25 73 22 2c 20 61 63 74 69 6f 6e 29 3b 0a 20 20 20 20 69 66 20 28 61 63 74 tion.=.%s",.action);.....if.(act
68e0 69 6f 6e 20 3d 3d 20 4e 55 4c 4c 29 20 7b 0a 09 64 62 67 20 28 22 6d 69 73 73 69 6e 67 20 41 43 ion.==.NULL).{..dbg.("missing.AC
6900 54 49 4f 4e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 2c 20 61 62 6f 72 74 TION.environment.variable,.abort
6920 69 6e 67 2e 22 29 3b 0a 09 72 65 74 75 72 6e 20 31 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 ing.");..return.1;.....}.....ret
6940 75 72 6e 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 61 63 74 69 6f 6e 2c 20 75 73 62 5f urn.call_subsystem.(action,.usb_
6960 73 75 62 73 79 73 74 65 6d 29 3b 0a 7d 0a 0a 0a 2f 2a 20 55 74 69 6c 69 74 79 20 66 75 6e 63 74 subsystem);.}.../*.Utility.funct
6980 69 6f 6e 73 20 6e 65 65 64 65 64 20 62 79 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 73 75 62 73 79 ions.needed.by.some.of.the.subsy
69a0 73 74 65 6d 73 2e 20 2a 2f 0a 0a 2f 2a 0a 20 2a 20 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 0a 20 stems..*/../*..*.split_2values..
69c0 2a 0a 20 2a 20 74 61 6b 65 73 20 61 20 73 74 72 69 6e 67 20 6f 66 20 66 6f 72 6d 61 74 20 22 78 *..*.takes.a.string.of.format."x
69e0 78 78 78 3a 79 79 79 79 22 20 61 6e 64 20 66 69 67 75 72 65 73 20 6f 75 74 20 74 68 65 0a 20 2a xxx:yyyy".and.figures.out.the..*
6a00 20 76 61 6c 75 65 73 20 66 6f 72 20 78 78 78 78 20 61 6e 64 20 79 79 79 79 0a 20 2a 2f 0a 69 6e .values.for.xxxx.and.yyyy..*/.in
6a20 74 20 73 70 6c 69 74 5f 32 76 61 6c 75 65 73 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 t.split_2values.(const.char.*str
6a40 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 76 61 6c ing,.int.base,.unsigned.int.*val
6a60 75 65 31 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 76 61 6c 75 65 32 29 0a 7b 0a 20 20 20 ue1,.unsigned.int.*value2).{....
6a80 20 63 68 61 72 20 62 75 66 66 65 72 5b 32 30 30 5d 3b 0a 20 20 20 20 63 68 61 72 20 2a 74 65 6d .char.buffer[200];.....char.*tem
6aa0 70 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 74 65 6d 70 32 3b 0a 0a 20 20 20 20 p1;.....const.char.*temp2;......
6ac0 64 62 67 28 22 73 74 72 69 6e 67 20 3d 20 25 73 22 2c 20 73 74 72 69 6e 67 29 3b 0a 0a 20 20 20 dbg("string.=.%s",.string);.....
6ae0 20 69 66 20 28 73 74 72 69 6e 67 20 3d 3d 20 4e 55 4c 4c 29 0a 09 72 65 74 75 72 6e 20 2d 31 3b .if.(string.==.NULL)..return.-1;
6b00 0a 20 20 20 20 69 66 20 28 73 74 72 6e 6c 65 6e 20 28 73 74 72 69 6e 67 2c 20 73 69 7a 65 6f 66 .....if.(strnlen.(string,.sizeof
6b20 28 62 75 66 66 65 72 29 29 20 3e 3d 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 29 0a 09 72 65 (buffer)).>=.sizeof(buffer))..re
6b40 74 75 72 6e 20 2d 31 3b 0a 0a 20 20 20 20 2f 2a 20 70 69 63 6b 20 75 70 20 74 68 65 20 66 69 72 turn.-1;....../*.pick.up.the.fir
6b60 73 74 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d 20 26 62 75 66 66 65 72 st.number.*/.....temp1.=.&buffer
6b80 5b 30 5d 3b 0a 20 20 20 20 74 65 6d 70 32 20 3d 20 73 74 72 69 6e 67 3b 0a 20 20 20 20 77 68 69 [0];.....temp2.=.string;.....whi
6ba0 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 20 le.(1).{..if.(*temp2.==.0x00)...
6bc0 20 20 20 62 72 65 61 6b 3b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 27 3a 27 29 0a 09 20 ...break;..if.(*temp2.==.':')...
6be0 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b 74 ...break;..*temp1.=.*temp2;..++t
6c00 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 31 emp1;..++temp2;.....}.....*temp1
6c20 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 65 31 20 3d 20 73 74 72 74 6f 75 6c 20 28 .=.0x00;.....*value1.=.strtoul.(
6c40 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 20 20 64 62 67 20 28 22 62 buffer,.NULL,.base);.....dbg.("b
6c60 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 62 uffer.=.%s",.&buffer[0]);.....db
6c80 67 20 28 22 76 61 6c 75 65 31 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 65 31 29 3b 0a 0a 20 20 20 g.("value1.=.%d",.*value1);.....
6ca0 20 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 20 7b 0a 09 2f 2a 20 73 74 72 69 6e .if.(*temp2.==.0x00).{../*.strin
6cc0 67 20 69 73 20 65 6e 64 65 64 2c 20 6e 6f 74 20 67 6f 6f 64 20 2a 2f 0a 09 72 65 74 75 72 6e 20 g.is.ended,.not.good.*/..return.
6ce0 2d 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 67 65 74 20 74 68 65 20 73 65 63 6f 6e 64 -1;.....}....../*.get.the.second
6d00 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d 20 26 62 75 66 66 65 72 5b 30 .number.*/.....temp1.=.&buffer[0
6d20 5d 3b 0a 20 20 20 20 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 0a ];.....++temp2;.....while.(1).{.
6d40 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 20 20 20 20 62 72 65 61 6b 3b .if.(*temp2.==.0x00)......break;
6d60 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b 74 65 6d 70 31 3b 0a 09 2b 2b ..*temp1.=.*temp2;..++temp1;..++
6d80 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 31 20 3d 20 30 78 30 30 3b 0a temp2;.....}.....*temp1.=.0x00;.
6da0 20 20 20 20 2a 76 61 6c 75 65 32 20 3d 20 73 74 72 74 6f 75 6c 20 28 62 75 66 66 65 72 2c 20 4e ....*value2.=.strtoul.(buffer,.N
6dc0 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 20 20 64 62 67 20 28 22 62 75 66 66 65 72 20 3d 20 25 ULL,.base);.....dbg.("buffer.=.%
6de0 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 62 67 20 28 22 76 61 6c 75 65 s",.&buffer[0]);.....dbg.("value
6e00 32 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 65 32 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 2.=.%d",.*value2);......return.0
6e20 3b 0a 7d 0a 0a 0a 2f 2a 0a 20 2a 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 0a 20 2a 0a 20 2a 20 ;.}.../*..*.split_3values..*..*.
6e40 74 61 6b 65 73 20 61 20 73 74 72 69 6e 67 20 6f 66 20 66 6f 72 6d 61 74 20 22 78 78 78 78 2f 79 takes.a.string.of.format."xxxx/y
6e60 79 79 79 2f 7a 7a 7a 7a 22 20 61 6e 64 20 66 69 67 75 72 65 73 20 6f 75 74 20 74 68 65 0a 20 2a yyy/zzzz".and.figures.out.the..*
6e80 20 76 61 6c 75 65 73 20 66 6f 72 20 78 78 78 78 2c 20 79 79 79 79 2c 20 61 6e 64 20 7a 7a 7a 7a .values.for.xxxx,.yyyy,.and.zzzz
6ea0 0a 20 2a 2f 0a 69 6e 74 20 73 70 6c 69 74 5f 33 76 61 6c 75 65 73 20 28 63 6f 6e 73 74 20 63 68 ..*/.int.split_3values.(const.ch
6ec0 61 72 20 2a 73 74 72 69 6e 67 2c 20 69 6e 74 20 62 61 73 65 2c 20 75 6e 73 69 67 6e 65 64 20 69 ar.*string,.int.base,.unsigned.i
6ee0 6e 74 20 2a 20 76 61 6c 75 65 31 2c 0a 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c nt.*.value1,..unsigned.int.*.val
6f00 75 65 32 2c 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 2a 20 76 61 6c 75 65 33 29 0a 7b 0a 20 20 ue2,.unsigned.int.*.value3).{...
6f20 20 20 63 68 61 72 20 62 75 66 66 65 72 5b 32 30 30 5d 3b 0a 20 20 20 20 63 68 61 72 20 2a 74 65 ..char.buffer[200];.....char.*te
6f40 6d 70 31 3b 0a 20 20 20 20 63 6f 6e 73 74 20 63 68 61 72 20 2a 74 65 6d 70 32 3b 0a 0a 20 20 20 mp1;.....const.char.*temp2;.....
6f60 20 64 62 67 28 22 73 74 72 69 6e 67 20 3d 20 25 73 22 2c 20 73 74 72 69 6e 67 29 3b 0a 0a 20 20 .dbg("string.=.%s",.string);....
6f80 20 20 69 66 20 28 73 74 72 69 6e 67 20 3d 3d 20 4e 55 4c 4c 29 0a 09 72 65 74 75 72 6e 20 2d 31 ..if.(string.==.NULL)..return.-1
6fa0 3b 0a 20 20 20 20 69 66 20 28 73 74 72 6e 6c 65 6e 20 28 73 74 72 69 6e 67 2c 20 73 69 7a 65 6f ;.....if.(strnlen.(string,.sizeo
6fc0 66 28 62 75 66 66 65 72 29 29 20 3e 3d 20 73 69 7a 65 6f 66 28 62 75 66 66 65 72 29 29 0a 09 72 f(buffer)).>=.sizeof(buffer))..r
6fe0 65 74 75 72 6e 20 2d 31 3b 0a 0a 20 20 20 20 2f 2a 20 70 69 63 6b 20 75 70 20 74 68 65 20 66 69 eturn.-1;....../*.pick.up.the.fi
7000 72 73 74 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d 20 26 62 75 66 66 65 rst.number.*/.....temp1.=.&buffe
7020 72 5b 30 5d 3b 0a 20 20 20 20 74 65 6d 70 32 20 3d 20 73 74 72 69 6e 67 3b 0a 20 20 20 20 77 68 r[0];.....temp2.=.string;.....wh
7040 69 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 ile.(1).{..if.(*temp2.==.0x00)..
7060 20 20 20 20 62 72 65 61 6b 3b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 27 2f 27 29 0a 09 ....break;..if.(*temp2.==.'/')..
7080 20 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b ....break;..*temp1.=.*temp2;..++
70a0 74 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 temp1;..++temp2;.....}.....*temp
70c0 31 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 65 31 20 3d 20 73 74 72 74 6f 75 6c 20 1.=.0x00;.....*value1.=.strtoul.
70e0 28 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 20 20 64 62 67 20 28 22 (buffer,.NULL,.base);.....dbg.("
7100 62 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 buffer.=.%s",.&buffer[0]);.....d
7120 62 67 20 28 22 76 61 6c 75 65 31 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 65 31 29 3b 0a 0a 20 20 bg.("value1.=.%d",.*value1);....
7140 20 20 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 20 7b 0a 09 2f 2a 20 73 74 72 69 ..if.(*temp2.==.0x00).{../*.stri
7160 6e 67 20 69 73 20 65 6e 64 65 64 2c 20 6e 6f 74 20 67 6f 6f 64 20 2a 2f 0a 09 72 65 74 75 72 6e ng.is.ended,.not.good.*/..return
7180 20 2d 31 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 20 67 65 74 20 74 68 65 20 73 65 63 6f 6e .-1;.....}....../*.get.the.secon
71a0 64 20 6e 75 6d 62 65 72 20 2a 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d 20 26 62 75 66 66 65 72 5b d.number.*/.....temp1.=.&buffer[
71c0 30 5d 3b 0a 20 20 20 20 2b 2b 74 65 6d 70 32 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 0];.....++temp2;.....while.(1).{
71e0 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 20 20 20 20 62 72 65 61 6b ..if.(*temp2.==.0x00)......break
7200 3b 0a 09 69 66 20 28 2a 74 65 6d 70 32 20 3d 3d 20 27 2f 27 29 0a 09 20 20 20 20 62 72 65 61 6b ;..if.(*temp2.==.'/')......break
7220 3b 0a 09 2a 74 65 6d 70 31 20 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b 74 65 6d 70 31 3b 0a 09 2b ;..*temp1.=.*temp2;..++temp1;..+
7240 2b 74 65 6d 70 32 3b 0a 20 20 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 31 20 3d 20 30 78 30 30 3b +temp2;.....}.....*temp1.=.0x00;
7260 0a 20 20 20 20 2a 76 61 6c 75 65 32 20 3d 20 73 74 72 74 6f 75 6c 20 28 62 75 66 66 65 72 2c 20 .....*value2.=.strtoul.(buffer,.
7280 4e 55 4c 4c 2c 20 62 61 73 65 29 3b 0a 20 20 20 20 64 62 67 20 28 22 62 75 66 66 65 72 20 3d 20 NULL,.base);.....dbg.("buffer.=.
72a0 25 73 22 2c 20 26 62 75 66 66 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 62 67 20 28 22 76 61 6c 75 %s",.&buffer[0]);.....dbg.("valu
72c0 65 32 20 3d 20 25 64 22 2c 20 2a 76 61 6c 75 65 32 29 3b 0a 0a 20 20 20 20 69 66 20 28 2a 74 65 e2.=.%d",.*value2);......if.(*te
72e0 6d 70 32 20 3d 3d 20 30 78 30 30 29 20 7b 0a 09 2f 2a 20 73 74 72 69 6e 67 20 69 73 20 65 6e 64 mp2.==.0x00).{../*.string.is.end
7300 65 64 2c 20 6e 6f 74 20 67 6f 6f 64 20 2a 2f 0a 09 72 65 74 75 72 6e 20 2d 31 3b 0a 20 20 20 20 ed,.not.good.*/..return.-1;.....
7320 7d 0a 0a 20 20 20 20 2f 2a 20 67 65 74 20 74 68 65 20 74 68 69 72 64 20 6e 75 6d 62 65 72 20 2a }....../*.get.the.third.number.*
7340 2f 0a 20 20 20 20 74 65 6d 70 31 20 3d 20 26 62 75 66 66 65 72 5b 30 5d 3b 0a 20 20 20 20 2b 2b /.....temp1.=.&buffer[0];.....++
7360 74 65 6d 70 32 3b 0a 20 20 20 20 77 68 69 6c 65 20 28 31 29 20 7b 0a 09 69 66 20 28 2a 74 65 6d temp2;.....while.(1).{..if.(*tem
7380 70 32 20 3d 3d 20 30 78 30 30 29 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 2a 74 65 6d 70 31 20 p2.==.0x00)......break;..*temp1.
73a0 3d 20 2a 74 65 6d 70 32 3b 0a 09 2b 2b 74 65 6d 70 31 3b 0a 09 2b 2b 74 65 6d 70 32 3b 0a 20 20 =.*temp2;..++temp1;..++temp2;...
73c0 20 20 7d 0a 20 20 20 20 2a 74 65 6d 70 31 20 3d 20 30 78 30 30 3b 0a 20 20 20 20 2a 76 61 6c 75 ..}.....*temp1.=.0x00;.....*valu
73e0 65 33 20 3d 20 73 74 72 74 6f 75 6c 20 28 62 75 66 66 65 72 2c 20 4e 55 4c 4c 2c 20 62 61 73 65 e3.=.strtoul.(buffer,.NULL,.base
7400 29 3b 0a 20 20 20 20 64 62 67 20 28 22 62 75 66 66 65 72 20 3d 20 25 73 22 2c 20 26 62 75 66 66 );.....dbg.("buffer.=.%s",.&buff
7420 65 72 5b 30 5d 29 3b 0a 20 20 20 20 64 62 67 20 28 22 76 61 6c 75 65 33 20 3d 20 25 64 22 2c 20 er[0]);.....dbg.("value3.=.%d",.
7440 2a 76 61 6c 75 65 33 29 3b 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 69 6e 74 *value3);......return.0;.}...int
7460 20 63 61 6c 6c 5f 73 75 62 73 79 73 74 65 6d 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 73 74 72 .call_subsystem.(const.char.*str
7480 69 6e 67 2c 20 73 74 72 75 63 74 20 73 75 62 73 79 73 74 65 6d 20 2a 73 75 62 73 79 73 74 65 6d ing,.struct.subsystem.*subsystem
74a0 29 0a 7b 0a 20 20 20 20 69 6e 74 20 69 3b 0a 0a 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 3b 20 ).{.....int.i;......for.(i.=.0;.
74c0 73 75 62 73 79 73 74 65 6d 5b 69 5d 2e 6e 61 6d 65 20 21 3d 20 4e 55 4c 4c 3b 20 2b 2b 69 29 20 subsystem[i].name.!=.NULL;.++i).
74e0 7b 0a 09 69 66 20 28 73 74 72 6e 63 6d 70 20 28 73 74 72 69 6e 67 2c 20 73 75 62 73 79 73 74 65 {..if.(strncmp.(string,.subsyste
7500 6d 5b 69 5d 2e 6e 61 6d 65 2c 20 73 74 72 6c 65 6e 28 73 74 72 69 6e 67 29 29 20 3d 3d 20 30 29 m[i].name,.strlen(string)).==.0)
7520 0a 09 20 20 20 20 72 65 74 75 72 6e 20 73 75 62 73 79 73 74 65 6d 5b 69 5d 2e 68 61 6e 64 6c 65 ......return.subsystem[i].handle
7540 72 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 0a 69 6e 74 r();.....}.....return.1;.}...int
7560 20 6c 6f 61 64 5f 6d 6f 64 75 6c 65 20 28 63 6f 6e 73 74 20 63 68 61 72 20 2a 6d 6f 64 75 6c 65 .load_module.(const.char.*module
7580 5f 6e 61 6d 65 29 0a 7b 0a 20 20 20 20 63 68 61 72 20 2a 61 72 67 76 5b 33 5d 3b 0a 0a 20 20 20 _name).{.....char.*argv[3];.....
75a0 20 61 72 67 76 5b 30 5d 20 3d 20 22 2f 73 62 69 6e 2f 6d 6f 64 70 72 6f 62 65 22 3b 0a 20 20 20 .argv[0].=."/sbin/modprobe";....
75c0 20 61 72 67 76 5b 31 5d 20 3d 20 28 63 68 61 72 20 2a 29 6d 6f 64 75 6c 65 5f 6e 61 6d 65 3b 0a .argv[1].=.(char.*)module_name;.
75e0 20 20 20 20 61 72 67 76 5b 32 5d 20 3d 20 4e 55 4c 4c 3b 0a 20 20 20 20 64 62 67 20 28 22 6c 6f ....argv[2].=.NULL;.....dbg.("lo
7600 61 64 69 6e 67 20 6d 6f 64 75 6c 65 20 25 73 22 2c 20 6d 6f 64 75 6c 65 5f 6e 61 6d 65 29 3b 0a ading.module.%s",.module_name);.
7620 20 20 20 20 73 77 69 74 63 68 20 28 66 6f 72 6b 28 29 29 20 7b 0a 09 63 61 73 65 20 30 3a 0a 09 ....switch.(fork()).{..case.0:..
7640 20 20 20 20 2f 2a 20 77 65 20 61 72 65 20 74 68 65 20 63 68 69 6c 64 2c 20 73 6f 20 6c 65 74 73 ..../*.we.are.the.child,.so.lets
7660 20 72 75 6e 20 74 68 65 20 70 72 6f 67 72 61 6d 20 2a 2f 0a 09 20 20 20 20 65 78 65 63 76 20 28 .run.the.program.*/......execv.(
7680 22 2f 73 62 69 6e 2f 6d 6f 64 70 72 6f 62 65 22 2c 20 61 72 67 76 29 3b 0a 09 20 20 20 20 65 78 "/sbin/modprobe",.argv);......ex
76a0 69 74 28 30 29 3b 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 09 63 61 73 65 20 28 2d 31 29 3a 0a 09 it(0);......break;..case.(-1):..
76c0 20 20 20 20 64 62 67 20 28 22 66 6f 72 6b 20 66 61 69 6c 65 64 2e 22 29 3b 0a 09 20 20 20 20 62 ....dbg.("fork.failed.");......b
76e0 72 65 61 6b 3b 0a 09 64 65 66 61 75 6c 74 3a 0a 09 20 20 20 20 62 72 65 61 6b 3b 0a 20 20 20 20 reak;..default:......break;.....
7700 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 }.....return.0;.}...............
7720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
78e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
79a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
79c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
79e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
82e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
83e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
84e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
85e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
86e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
87e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
88e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
89e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
90e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
91e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
92e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
93e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
94e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
95e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
96e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
97e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
98e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
99e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .......................