hi,
I quickly integrated [mtx] object in the help patch to have separates values for each blob ... if it can help works on linux Pd-extended rc5 pix_invert works fine for me : maybe [pix_rgba] after your [pix_video] ?
a++ benjamin
IOhannes m zmoelnig a écrit :
|||__||| wrote:
also i'm not really sure about the way the list works that pix
multiblob outputs: am i right assuming that i have to add + 10 for
every additional blob in order to get their values? so $6 is minX
for the first blob, $16 minXfor the second blob... ?for now, the [pix_multiblob] outputs a "matrix" (as used by the iemmatrix objects). the format is "matrix <rows> <columns> <el_1_1> <el_1_2> ... <el_1_<columns>> <el_2_1> ... ... <el_<rows>_<columns>>"
so if you [list split] the meta information "matrix <rows> <columns>" then your assumption is somewhat correct: the #columns is 8(!)
mfga.sdr IOhannes
PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
#N canvas 509 42 863 826 10; #X obj 9 265 cnv 15 430 145 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 40 267 Inlets:; #X text 39 352 Outlets:; #X obj 9 227 cnv 15 430 30 empty empty empty 20 12 0 14 -195568 -66577 0; #X text 18 226 Arguments:; #X obj 8 56 cnv 15 430 165 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 449 37 cnv 15 200 380 empty empty empty 20 12 0 14 -228992 -66577 0; #X obj 451 684 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577 0; #N canvas 0 0 450 300 gemwin 0; #X obj 132 136 gemwin; #X obj 64 202 outlet; #X obj 67 10 inlet; #X msg 64 183 set destroy; #X msg 132 112 create , 1; #X msg 216 117 destroy; #X msg 190 58 set create; #X obj 67 41 route create; #X obj 219 6 inlet; #X connect 2 0 7 0; #X connect 3 0 1 0; #X connect 4 0 0 0; #X connect 5 0 0 0; #X connect 6 0 1 0; #X connect 7 0 3 0; #X connect 7 0 4 0; #X connect 7 1 6 0; #X connect 7 1 5 0; #X connect 8 0 0 0; #X restore 456 723 pd gemwin; #X msg 456 704 destroy; #X text 452 683 Create window:; #X obj 451 133 cnv 15 185 120 empty empty empty 20 12 0 14 -24198 -66577 0; #X obj 451 43 gemhead; #X text 17 366 Outlet 1: gemlist; #X text 24 281 Inlet 1: gemlist; #X obj 453 605 pix_texture; #X floatatom 491 235 3 0 100 2 threshold - -; #X obj 491 252 / 100; #X text 71 31 Class: pix object (analysis); #X msg 491 273 treshold $1; #X floatatom 581 235 3 0 100 2 blobsize - -; #X obj 581 252 / 100; #X msg 581 273 blobSize $1; #X text 24 296 Inlet 1: treshold <float>: minimum luminance of a pixel to be considered part of a blob. (default=0.04); #X text 24 325 Inlet 1: blobSize <float>: minimum relative size of a blob. (default=0.1); #X text 50 12 Synopsis: [pix_multiblob]; #X text 29 57 Description: blob detector (for multiple blobs); #X text 17 73 [pix_multiblob] is able to detect multiple blobs within an image.; #X text 17 103 a "blob" is a number of adjacent(!) pixels with a luminance that is bigger than the value defined by "treshold". you can set the minimum size of a blob that is needed to be detected.; #X text 17 156 the output is a matrix following the conventions of the mtx-objects from zexy/iemmatrix. each row describes one detected blob as follows: centerX(weighted) , centerY(weighted) , size(weighted) , minX , minY , maxX , maxY , size; #X text 64 237 int: max number N of blobs to detect; #X text 17 381 Outlet 2: (k , 8) matrix: describing k detected blobs (with 0<=k<N); #X obj 604 114 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; #X obj 453 325 pix_multiblob 6; #X obj 451 111 pix_video; #X msg 683 93 driver 0; #X obj 453 660 rectangle 5.33 4; #X msg 683 69 device 1; #X obj 451 146 pix_rgba; #X floatatom 580 465 5 0 0 1 x - -; #X floatatom 581 481 5 0 0 1 y - -; #X floatatom 581 497 5 0 0 1 size - -; #X floatatom 582 513 5 0 0 1 minX - -; #X floatatom 582 529 5 0 0 1 minY - -; #X floatatom 583 545 5 0 0 1 maxX - -; #X floatatom 583 561 5 0 0 1 maxY - -; #X floatatom 584 577 5 0 0 1 area - -; #N canvas 183 567 687 354 showblob 0; #X obj 67 86 inlet blobinformation; #X obj 67 138 unpack 0 0 0 0 0 0 0 0; #X obj 67 167 outlet weightedX; #X obj 88 187 outlet weightedY; #X obj 109 207 outlet weightedSize; #X obj 156 236 outlet minX; #X obj 177 256 outlet minY; #X obj 243 236 outlet maxX; #X obj 260 256 outlet maxY; #X obj 348 238 outlet size; #X text 60 45 this extracts information of the 1st detected blob; #N canvas 517 405 450 300 rectangle 0; #X obj 68 75 inlet; #X obj 215 -1 inlet; #X obj 68 269 rectangle; #X obj 68 234 translateXYZ; #X obj 215 69 unpack 0 0 0 0; #X obj 215 94 +; #X obj 254 95 +; #X text 248 125 0..2; #X text 250 145 -1..+1; #X obj 340 148 -; #X obj 377 149 -; #X obj 193 124 - 1; #X obj 222 123 - 1; #X obj 222 146 * 4; #X obj 377 180 * -4; #X obj 155 151 * 5.334; #X obj 320 179 * -5.334; #X msg 184 263 draw line; #X obj 245 246 loadbang; #X connect 0 0 3 0; #X connect 1 0 4 0; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 4 0 9 0; #X connect 4 1 5 1; #X connect 4 1 9 1; #X connect 4 2 6 0; #X connect 4 2 10 0; #X connect 4 3 6 1; #X connect 4 3 10 1; #X connect 5 0 11 0; #X connect 6 0 12 0; #X connect 9 0 16 0; #X connect 10 0 14 0; #X connect 11 0 15 0; #X connect 12 0 13 0; #X connect 13 0 3 2; #X connect 14 0 2 2; #X connect 15 0 3 1; #X connect 16 0 2 1; #X connect 17 0 2 0; #X connect 18 0 17 0; #X restore 346 188 pd rectangle; #X obj 346 117 color 1 1 1 0.5; #X obj 346 96 gemhead 70; #X obj 346 138 alpha; #X msg 425 162 $5 $7 $6 $8; #X msg 66 114 $2 $3 $4 $5 $6 $7 $8 $9; #X connect 0 0 16 0; #X connect 0 0 15 0; #X connect 1 0 2 0; #X connect 1 1 3 0; #X connect 1 2 4 0; #X connect 1 3 5 0; #X connect 1 4 6 0; #X connect 1 5 7 0; #X connect 1 6 8 0; #X connect 1 7 9 0; #X connect 12 0 14 0; #X connect 13 0 12 0; #X connect 14 0 11 0; #X connect 15 0 11 1; #X connect 16 0 1 0; #X restore 558 439 pd showblob 2; #X obj 541 347 mtx; #X obj 541 368 route matrix; #X obj 758 653 print mtx2; #X obj 541 392 route 1 2 3 4 5 6; #X floatatom 667 466 5 0 0 1 x - -; #X floatatom 668 482 5 0 0 1 y - -; #X floatatom 668 498 5 0 0 1 size - -; #X floatatom 669 514 5 0 0 1 minX - -; #X floatatom 669 530 5 0 0 1 minY - -; #X floatatom 670 546 5 0 0 1 maxX - -; #X floatatom 670 562 5 0 0 1 maxY - -; #X floatatom 671 578 5 0 0 1 area - -; #X floatatom 754 467 5 0 0 1 x - -; #X floatatom 755 483 5 0 0 1 y - -; #X floatatom 755 499 5 0 0 1 size - -; #X floatatom 756 515 5 0 0 1 minX - -; #X floatatom 756 531 5 0 0 1 minY - -; #X floatatom 757 547 5 0 0 1 maxX - -; #X floatatom 757 563 5 0 0 1 maxY - -; #X floatatom 758 579 5 0 0 1 area - -; #X floatatom 494 466 5 0 0 1 x - -; #X floatatom 495 482 5 0 0 1 y - -; #X floatatom 495 498 5 0 0 1 size - -; #X floatatom 496 514 5 0 0 1 minX - -; #X floatatom 496 530 5 0 0 1 minY - -; #X floatatom 497 546 5 0 0 1 maxX - -; #X floatatom 497 562 5 0 0 1 maxY - -; #X floatatom 498 578 5 0 0 1 area - -; #N canvas 183 567 687 354 showblob 0; #X obj 67 86 inlet blobinformation; #X obj 67 138 unpack 0 0 0 0 0 0 0 0; #X obj 67 167 outlet weightedX; #X obj 88 187 outlet weightedY; #X obj 109 207 outlet weightedSize; #X obj 156 236 outlet minX; #X obj 177 256 outlet minY; #X obj 243 236 outlet maxX; #X obj 260 256 outlet maxY; #X obj 348 238 outlet size; #X text 60 45 this extracts information of the 1st detected blob; #N canvas 517 405 450 300 rectangle 0; #X obj 68 75 inlet; #X obj 215 -1 inlet; #X obj 68 269 rectangle; #X obj 68 234 translateXYZ; #X obj 215 69 unpack 0 0 0 0; #X obj 215 94 +; #X obj 254 95 +; #X text 248 125 0..2; #X text 250 145 -1..+1; #X obj 340 148 -; #X obj 377 149 -; #X obj 193 124 - 1; #X obj 222 123 - 1; #X obj 222 146 * 4; #X obj 377 180 * -4; #X obj 155 151 * 5.334; #X obj 320 179 * -5.334; #X msg 184 263 draw line; #X obj 245 246 loadbang; #X connect 0 0 3 0; #X connect 1 0 4 0; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 4 0 9 0; #X connect 4 1 5 1; #X connect 4 1 9 1; #X connect 4 2 6 0; #X connect 4 2 10 0; #X connect 4 3 6 1; #X connect 4 3 10 1; #X connect 5 0 11 0; #X connect 6 0 12 0; #X connect 9 0 16 0; #X connect 10 0 14 0; #X connect 11 0 15 0; #X connect 12 0 13 0; #X connect 13 0 3 2; #X connect 14 0 2 2; #X connect 15 0 3 1; #X connect 16 0 2 1; #X connect 17 0 2 0; #X connect 18 0 17 0; #X restore 346 188 pd rectangle; #X obj 346 117 color 1 1 1 0.5; #X obj 346 96 gemhead 70; #X obj 346 138 alpha; #X msg 425 162 $5 $7 $6 $8; #X msg 66 114 $2 $3 $4 $5 $6 $7 $8 $9; #X connect 0 0 16 0; #X connect 0 0 15 0; #X connect 1 0 2 0; #X connect 1 1 3 0; #X connect 1 2 4 0; #X connect 1 3 5 0; #X connect 1 4 6 0; #X connect 1 5 7 0; #X connect 1 6 8 0; #X connect 1 7 9 0; #X connect 12 0 14 0; #X connect 13 0 12 0; #X connect 14 0 11 0; #X connect 15 0 11 1; #X connect 16 0 1 0; #X restore 472 440 pd showblob 1; #N canvas 183 567 687 354 showblob 0; #X obj 67 86 inlet blobinformation; #X obj 67 138 unpack 0 0 0 0 0 0 0 0; #X obj 67 167 outlet weightedX; #X obj 88 187 outlet weightedY; #X obj 109 207 outlet weightedSize; #X obj 156 236 outlet minX; #X obj 177 256 outlet minY; #X obj 243 236 outlet maxX; #X obj 260 256 outlet maxY; #X obj 348 238 outlet size; #X text 60 45 this extracts information of the 1st detected blob; #N canvas 517 405 450 300 rectangle 0; #X obj 68 75 inlet; #X obj 215 -1 inlet; #X obj 68 269 rectangle; #X obj 68 234 translateXYZ; #X obj 215 69 unpack 0 0 0 0; #X obj 215 94 +; #X obj 254 95 +; #X text 248 125 0..2; #X text 250 145 -1..+1; #X obj 340 148 -; #X obj 377 149 -; #X obj 193 124 - 1; #X obj 222 123 - 1; #X obj 222 146 * 4; #X obj 377 180 * -4; #X obj 155 151 * 5.334; #X obj 320 179 * -5.334; #X msg 184 263 draw line; #X obj 245 246 loadbang; #X connect 0 0 3 0; #X connect 1 0 4 0; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 4 0 9 0; #X connect 4 1 5 1; #X connect 4 1 9 1; #X connect 4 2 6 0; #X connect 4 2 10 0; #X connect 4 3 6 1; #X connect 4 3 10 1; #X connect 5 0 11 0; #X connect 6 0 12 0; #X connect 9 0 16 0; #X connect 10 0 14 0; #X connect 11 0 15 0; #X connect 12 0 13 0; #X connect 13 0 3 2; #X connect 14 0 2 2; #X connect 15 0 3 1; #X connect 16 0 2 1; #X connect 17 0 2 0; #X connect 18 0 17 0; #X restore 346 188 pd rectangle; #X obj 346 96 gemhead 70; #X obj 346 138 alpha; #X msg 425 162 $5 $7 $6 $8; #X msg 66 114 $2 $3 $4 $5 $6 $7 $8 $9; #X obj 346 117 color 0 1 0 0.5; #X connect 0 0 15 0; #X connect 0 0 14 0; #X connect 1 0 2 0; #X connect 1 1 3 0; #X connect 1 2 4 0; #X connect 1 3 5 0; #X connect 1 4 6 0; #X connect 1 5 7 0; #X connect 1 6 8 0; #X connect 1 7 9 0; #X connect 12 0 16 0; #X connect 13 0 11 0; #X connect 14 0 11 1; #X connect 15 0 1 0; #X connect 16 0 13 0; #X restore 645 440 pd showblob 3; #N canvas 183 567 687 354 showblob 0; #X obj 67 86 inlet blobinformation; #X obj 67 138 unpack 0 0 0 0 0 0 0 0; #X obj 67 167 outlet weightedX; #X obj 88 187 outlet weightedY; #X obj 109 207 outlet weightedSize; #X obj 156 236 outlet minX; #X obj 177 256 outlet minY; #X obj 243 236 outlet maxX; #X obj 260 256 outlet maxY; #X obj 348 238 outlet size; #X text 60 45 this extracts information of the 1st detected blob; #N canvas 517 405 450 300 rectangle 0; #X obj 68 75 inlet; #X obj 215 -1 inlet; #X obj 68 269 rectangle; #X obj 68 234 translateXYZ; #X obj 215 69 unpack 0 0 0 0; #X obj 215 94 +; #X obj 254 95 +; #X text 248 125 0..2; #X text 250 145 -1..+1; #X obj 340 148 -; #X obj 377 149 -; #X obj 193 124 - 1; #X obj 222 123 - 1; #X obj 222 146 * 4; #X obj 377 180 * -4; #X obj 155 151 * 5.334; #X obj 320 179 * -5.334; #X msg 184 263 draw line; #X obj 245 246 loadbang; #X connect 0 0 3 0; #X connect 1 0 4 0; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 4 0 9 0; #X connect 4 1 5 1; #X connect 4 1 9 1; #X connect 4 2 6 0; #X connect 4 2 10 0; #X connect 4 3 6 1; #X connect 4 3 10 1; #X connect 5 0 11 0; #X connect 6 0 12 0; #X connect 9 0 16 0; #X connect 10 0 14 0; #X connect 11 0 15 0; #X connect 12 0 13 0; #X connect 13 0 3 2; #X connect 14 0 2 2; #X connect 15 0 3 1; #X connect 16 0 2 1; #X connect 17 0 2 0; #X connect 18 0 17 0; #X restore 346 188 pd rectangle; #X obj 346 96 gemhead 70; #X obj 346 138 alpha; #X msg 425 162 $5 $7 $6 $8; #X msg 66 114 $2 $3 $4 $5 $6 $7 $8 $9; #X obj 346 117 color 0 0 1 0.5; #X connect 0 0 15 0; #X connect 0 0 14 0; #X connect 1 0 2 0; #X connect 1 1 3 0; #X connect 1 2 4 0; #X connect 1 3 5 0; #X connect 1 4 6 0; #X connect 1 5 7 0; #X connect 1 6 8 0; #X connect 1 7 9 0; #X connect 12 0 16 0; #X connect 13 0 11 0; #X connect 14 0 11 1; #X connect 15 0 1 0; #X connect 16 0 13 0; #X restore 732 441 pd showblob 4; #X floatatom 696 293 5 0 0 1 x - -; #X floatatom 697 309 5 0 0 1 y - -; #X floatatom 697 325 5 0 0 1 size - -; #X floatatom 698 341 5 0 0 1 minX - -; #X floatatom 698 357 5 0 0 1 minY - -; #X floatatom 699 373 5 0 0 1 maxX - -; #X floatatom 699 389 5 0 0 1 maxY - -; #X floatatom 700 405 5 0 0 1 area - -; #X floatatom 783 294 5 0 0 1 x - -; #X floatatom 784 310 5 0 0 1 y - -; #X floatatom 784 326 5 0 0 1 size - -; #X floatatom 785 342 5 0 0 1 minX - -; #X floatatom 785 358 5 0 0 1 minY - -; #X floatatom 786 374 5 0 0 1 maxX - -; #X floatatom 786 390 5 0 0 1 maxY - -; #X floatatom 787 406 5 0 0 1 area - -; #N canvas 97 607 687 354 showblob 0; #X obj 67 86 inlet blobinformation; #X obj 67 138 unpack 0 0 0 0 0 0 0 0; #X obj 67 167 outlet weightedX; #X obj 88 187 outlet weightedY; #X obj 109 207 outlet weightedSize; #X obj 156 236 outlet minX; #X obj 177 256 outlet minY; #X obj 243 236 outlet maxX; #X obj 260 256 outlet maxY; #X obj 348 238 outlet size; #X text 60 45 this extracts information of the 1st detected blob; #N canvas 517 405 450 300 rectangle 0; #X obj 68 75 inlet; #X obj 215 -1 inlet; #X obj 68 269 rectangle; #X obj 68 234 translateXYZ; #X obj 215 69 unpack 0 0 0 0; #X obj 215 94 +; #X obj 254 95 +; #X text 248 125 0..2; #X text 250 145 -1..+1; #X obj 340 148 -; #X obj 377 149 -; #X obj 193 124 - 1; #X obj 222 123 - 1; #X obj 222 146 * 4; #X obj 377 180 * -4; #X obj 155 151 * 5.334; #X obj 320 179 * -5.334; #X msg 184 263 draw line; #X obj 245 246 loadbang; #X connect 0 0 3 0; #X connect 1 0 4 0; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 4 0 9 0; #X connect 4 1 5 1; #X connect 4 1 9 1; #X connect 4 2 6 0; #X connect 4 2 10 0; #X connect 4 3 6 1; #X connect 4 3 10 1; #X connect 5 0 11 0; #X connect 6 0 12 0; #X connect 9 0 16 0; #X connect 10 0 14 0; #X connect 11 0 15 0; #X connect 12 0 13 0; #X connect 13 0 3 2; #X connect 14 0 2 2; #X connect 15 0 3 1; #X connect 16 0 2 1; #X connect 17 0 2 0; #X connect 18 0 17 0; #X restore 346 188 pd rectangle; #X obj 346 96 gemhead 70; #X obj 346 138 alpha; #X msg 425 162 $5 $7 $6 $8; #X msg 66 114 $2 $3 $4 $5 $6 $7 $8 $9; #X obj 346 117 color 0 1 1 0.5; #X connect 0 0 15 0; #X connect 0 0 14 0; #X connect 1 0 2 0; #X connect 1 1 3 0; #X connect 1 2 4 0; #X connect 1 3 5 0; #X connect 1 4 6 0; #X connect 1 5 7 0; #X connect 1 6 8 0; #X connect 1 7 9 0; #X connect 12 0 16 0; #X connect 13 0 11 0; #X connect 14 0 11 1; #X connect 15 0 1 0; #X connect 16 0 13 0; #X restore 674 267 pd showblob 5; #N canvas 183 567 687 354 showblob 0; #X obj 67 86 inlet blobinformation; #X obj 67 138 unpack 0 0 0 0 0 0 0 0; #X obj 67 167 outlet weightedX; #X obj 88 187 outlet weightedY; #X obj 109 207 outlet weightedSize; #X obj 156 236 outlet minX; #X obj 177 256 outlet minY; #X obj 243 236 outlet maxX; #X obj 260 256 outlet maxY; #X obj 348 238 outlet size; #X text 60 45 this extracts information of the 1st detected blob; #N canvas 517 405 450 300 rectangle 0; #X obj 68 75 inlet; #X obj 215 -1 inlet; #X obj 68 269 rectangle; #X obj 68 234 translateXYZ; #X obj 215 69 unpack 0 0 0 0; #X obj 215 94 +; #X obj 254 95 +; #X text 248 125 0..2; #X text 250 145 -1..+1; #X obj 340 148 -; #X obj 377 149 -; #X obj 193 124 - 1; #X obj 222 123 - 1; #X obj 222 146 * 4; #X obj 377 180 * -4; #X obj 155 151 * 5.334; #X obj 320 179 * -5.334; #X msg 184 263 draw line; #X obj 245 246 loadbang; #X connect 0 0 3 0; #X connect 1 0 4 0; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 4 0 9 0; #X connect 4 1 5 1; #X connect 4 1 9 1; #X connect 4 2 6 0; #X connect 4 2 10 0; #X connect 4 3 6 1; #X connect 4 3 10 1; #X connect 5 0 11 0; #X connect 6 0 12 0; #X connect 9 0 16 0; #X connect 10 0 14 0; #X connect 11 0 15 0; #X connect 12 0 13 0; #X connect 13 0 3 2; #X connect 14 0 2 2; #X connect 15 0 3 1; #X connect 16 0 2 1; #X connect 17 0 2 0; #X connect 18 0 17 0; #X restore 346 188 pd rectangle; #X obj 346 96 gemhead 70; #X obj 346 138 alpha; #X msg 425 162 $5 $7 $6 $8; #X msg 66 114 $2 $3 $4 $5 $6 $7 $8 $9; #X obj 346 117 color 1 0.5 0 0.5; #X connect 0 0 15 0; #X connect 0 0 14 0; #X connect 1 0 2 0; #X connect 1 1 3 0; #X connect 1 2 4 0; #X connect 1 3 5 0; #X connect 1 4 6 0; #X connect 1 5 7 0; #X connect 1 6 8 0; #X connect 1 7 9 0; #X connect 12 0 16 0; #X connect 13 0 11 0; #X connect 14 0 11 1; #X connect 15 0 1 0; #X connect 16 0 13 0; #X restore 761 268 pd showblob 6; #X obj 451 185 pix_movement 0.17; #X obj 453 530 alpha; #X obj 440 501 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 1; #X msg 579 198 45; #X msg 641 200 3; #X obj 760 113 vsl 20 60 0 1 0 0 empty empty mov 0 -8 0 10 -261682 -1 -1 0 1; #X floatatom 548 167 5 0 0 0 - - -; #X msg 480 69 open device /dev/videoO; #X msg 518 701 dimen 640 480; #X connect 8 0 9 0; #X connect 9 0 8 0; #X connect 12 0 34 0; #X connect 15 0 36 0; #X connect 16 0 17 0; #X connect 17 0 19 0; #X connect 19 0 33 0; #X connect 20 0 21 0; #X connect 21 0 22 0; #X connect 22 0 33 0; #X connect 33 0 98 0; #X connect 33 1 48 0; #X connect 34 0 38 0; #X connect 35 0 34 0; #X connect 37 0 34 0; #X connect 38 0 97 0; #X connect 47 0 39 0; #X connect 47 1 40 0; #X connect 47 2 41 0; #X connect 47 3 42 0; #X connect 47 4 43 0; #X connect 47 5 44 0; #X connect 47 6 45 0; #X connect 47 7 46 0; #X connect 48 0 49 0; #X connect 49 0 51 0; #X connect 51 0 76 0; #X connect 51 1 47 0; #X connect 51 2 77 0; #X connect 51 3 78 0; #X connect 51 4 95 0; #X connect 51 5 96 0; #X connect 76 0 68 0; #X connect 76 1 69 0; #X connect 76 2 70 0; #X connect 76 3 71 0; #X connect 76 4 72 0; #X connect 76 5 73 0; #X connect 76 6 74 0; #X connect 76 7 75 0; #X connect 77 0 52 0; #X connect 77 1 53 0; #X connect 77 2 54 0; #X connect 77 3 55 0; #X connect 77 4 56 0; #X connect 77 5 57 0; #X connect 77 6 58 0; #X connect 77 7 59 0; #X connect 78 0 60 0; #X connect 78 1 61 0; #X connect 78 2 62 0; #X connect 78 3 63 0; #X connect 78 4 64 0; #X connect 78 5 65 0; #X connect 78 6 66 0; #X connect 78 7 67 0; #X connect 95 0 79 0; #X connect 95 1 80 0; #X connect 95 2 81 0; #X connect 95 3 82 0; #X connect 95 4 83 0; #X connect 95 5 84 0; #X connect 95 6 85 0; #X connect 95 7 86 0; #X connect 96 0 87 0; #X connect 96 1 88 0; #X connect 96 2 89 0; #X connect 96 3 90 0; #X connect 96 4 91 0; #X connect 96 5 92 0; #X connect 96 6 93 0; #X connect 96 7 94 0; #X connect 97 0 33 0; #X connect 98 0 15 0; #X connect 99 0 98 0; #X connect 100 0 16 0; #X connect 101 0 20 0; #X connect 102 0 103 0; #X connect 103 0 97 1; #X connect 104 0 34 0; #X connect 105 0 8 1;