Author: Nicholas Prado <nmprado@nzen.ws>
Date: Mon Dec 2 04:10:30 UTC 2019
Parent: 5534450dfddfb5d8fa917b6adad0db0b410355ab
Log message:
(181203,4) abortive day 3 first task I forget if this is an incomplete attempt or complete and gives the wrong answer. Oh well. I'd probably restart if I took another crack at it.
1: diff --git a/src/java/Exercise18031.java b/src/java/Exercise18031.java 2: new file mode 100644 3: index 0000000..3f75c4c 4: --- /dev/null 5: +++ b/src/java/Exercise18031.java 6: @@ -0,0 +1,359 @@ 7: + 8: +import java.io.IOException; 9: +import java.nio.file.Files; 10: +import java.nio.file.InvalidPathException; 11: +import java.nio.file.Path; 12: +import java.nio.file.Paths; 13: +import java.text.ParseException; 14: +import java.util.LinkedList; 15: +import java.util.List; 16: +import java.util.Map; 17: +import java.util.NavigableMap; 18: +import java.util.Set; 19: +import java.util.TreeSet; 20: +import java.util.TreeMap; 21: +import java.util.regex.Matcher; 22: +import java.util.regex.Pattern; 23: + 24: +public class Exercise18031 25: +{ 26: + private class Rectangle 27: + { 28: + String rectId = ""; 29: + int posX = 0; 30: + int posY = 0; 31: + int lenX = 0; 32: + int lenY = 0; 33: + boolean beenChecked = false; 34: + public String toString() 35: + { 36: + return String.format( "id-%s px-%d py-%d lx-%d ly-%d", 37: + rectId, posX, posY, lenX, lenY ); 38: + } 39: + } 40: + private static final String cl = "e031."; 41: + 42: + public static void main( String args[] ) 43: + { 44: + final String here = cl +"m "; 45: + if ( args.length < 1 ) 46: + { 47: + throw new RuntimeException( here +"add a filename argument" ); 48: + } 49: + String userSaysFile = args[ 0 ]; 50: + List<String> fileLines = new LinkedList<>(); 51: + try 52: + { 53: + Path where = Paths.get( userSaysFile ); 54: + fileLines = Files.readAllLines( where ); 55: + } 56: + catch ( IOException | InvalidPathException ie ) 57: + { 58: + System.err.println( here +"couldn't read file "+ userSaysFile +" because "+ ie ); 59: + return; 60: + } 61: + Exercise18031 solvesTheProblem = new Exercise18031(); 62: + solvesTheProblem.with( fileLines ); 63: + } 64: + 65: + 66: + void with( List<String> fileLines ) 67: + { 68: + final String here = cl +"w "; 69: + // 4TESTS 70: + fileLines.clear(); 71: + fileLines.add( "#11 @ 1,1: 3x3" ); 72: + fileLines.add( "#22 @ 2,1: 3x3" ); 73: + fileLines.add( "#33 @ 1,2: 3x3" ); 74: + // fileLines.add( "#44 @ 5,4: 1x1" ); 75: + // fileLines.add( "#55 @ 1,6: 7x3" ); 76: + // 4TESTS 77: + List<Rectangle> userRectangles = parse( fileLines ); 78: + Map<String, Rectangle> allRect = new TreeMap<>(); 79: + NavigableMap<Integer, List<String>> xxPositions = new TreeMap<>(); 80: + NavigableMap<Integer, List<String>> yyPositions = new TreeMap<>(); 81: + for ( Rectangle currRect : userRectangles ) 82: + { 83: + allRect.put( currRect.rectId, currRect ); 84: + List<String> shapesAtXx = xxPositions.get( currRect.posX ); 85: + if ( shapesAtXx == null ) 86: + { 87: + shapesAtXx = new LinkedList<>(); 88: + } 89: + shapesAtXx.add( currRect.rectId ); 90: + xxPositions.put( currRect.posX, shapesAtXx ); 91: + List<String> shapesAtYy = yyPositions.get( currRect.posY ); 92: + if ( shapesAtYy == null ) 93: + { 94: + shapesAtYy = new LinkedList<>(); 95: + } 96: + shapesAtYy.add( currRect.rectId ); 97: + yyPositions.put( currRect.posY, shapesAtYy ); 98: + } 99: + String delimiter = "@@", separator = "^^"; 100: + Set<String> bothOcclude = occlusionPairs( 101: + userRectangles, xxPositions, yyPositions, delimiter ); 102: + // NOTE create new rectangles at the intersection 103: + Map<String, Rectangle> allJoins = new TreeMap<>(); 104: + xxPositions.clear(); 105: + yyPositions.clear(); 106: + for ( String comboId : bothOcclude ) 107: + { 108: + String[] pair = comboId.split( delimiter ); 109: + Rectangle first = allRect.get( pair[0 ] ); 110: + Rectangle last = allRect.get( pair[ 1 ] ); 111: + Rectangle intersect = intersectionOf( first, last, comboId ); 112: + System.out.println( here +"occluded at "+ intersect ); // 4TESTS 113: + allJoins.put( comboId, intersect ); 114: + List<String> shapesAtXx = xxPositions.get( intersect.posX ); 115: + if ( shapesAtXx == null ) 116: + { 117: + shapesAtXx = new LinkedList<>(); 118: + } 119: + shapesAtXx.add( intersect.rectId ); 120: + xxPositions.put( intersect.posX, shapesAtXx ); 121: + List<String> shapesAtYy = yyPositions.get( intersect.posY ); 122: + if ( shapesAtYy == null ) 123: + { 124: + shapesAtYy = new LinkedList<>(); 125: + } 126: + shapesAtYy.add( intersect.rectId ); 127: + yyPositions.put( intersect.posY, shapesAtYy ); 128: + } 129: + System.out.println( here +"combined area is "+ overlappingAreaOf( allJoins, xxPositions, yyPositions, separator ) ); 130: + } 131: + 132: + 133: + /** format: #[[ number ]] @ [[ x ]],[[ y ]]: [[ width ]]x[[ height ]] 134: + ex: #121 @ 55,2424: 224x2424 */ 135: + List<Rectangle> parse( List<String> rectangleDesc ) 136: + { 137: + final String here = cl +"p "; 138: + List<Rectangle> rectangles = new LinkedList<>(); 139: + int idInd = 1, xposInd = idInd +1, yposInd = xposInd +1, 140: + xlenInd = yposInd +1, ylenInd = xlenInd +1; // one indexed because 0 is the whole thing 141: + int currInd = 0; 142: + String rectangleFormat = "#(\\d+) @ (\\d+),(\\d+): (\\d+)x(\\d+)"; 143: + String expression = ""; 144: + try 145: + { 146: + Pattern fsmSpec = Pattern.compile( rectangleFormat ); 147: + Matcher fsmRuntime; 148: + for ( String currInput : rectangleDesc ) 149: + { 150: + expression = currInput; // 4TESTS ensuring that I can get the problematic line, otherwise unnecessary 151: + fsmRuntime = fsmSpec.matcher( currInput ); 152: + Rectangle currRect = new Rectangle(); 153: + if ( fsmRuntime.find( currInd ) ) 154: + { 155: + currRect.rectId = fsmRuntime.group( idInd ); 156: + currRect.posX = Integer.valueOf( fsmRuntime.group( xposInd ) ); 157: + currRect.posY = Integer.valueOf( fsmRuntime.group( yposInd ) ); 158: + currRect.lenX = Integer.valueOf( fsmRuntime.group( xlenInd ) ); 159: + currRect.lenY = Integer.valueOf( fsmRuntime.group( ylenInd ) ); 160: + rectangles.add( currRect ); 161: + } 162: + } 163: + } 164: + catch ( IllegalArgumentException | IllegalStateException iae ) 165: + { 166: + System.err.println( here +"couldn't interpret "+ expression 167: + +" as a rectangle "+ iae ); 168: + } 169: + return rectangles; 170: + } 171: + 172: + 173: + Set<String> occlusionPairs( List<Rectangle> userRectangles, 174: + NavigableMap<Integer, List<String>> xxPositions, 175: + NavigableMap<Integer, List<String>> yyPositions, 176: + String delimiter ) 177: + { 178: + Set<String> bothOcclude = new TreeSet<>(); 179: + final boolean inclusive = true; 180: + for ( Rectangle currRect : userRectangles ) 181: + { 182: + NavigableMap<Integer, List<String>> xxOcclusions = xxPositions.subMap( 183: + currRect.posX, inclusive, currRect.posX + currRect.lenX, ! inclusive ); 184: + NavigableMap<Integer, List<String>> yyOcclusions = yyPositions.subMap( 185: + currRect.posY, inclusive, currRect.posY + currRect.lenY, ! inclusive ); 186: + Set<String> inXxShadow = new TreeSet<>(); 187: + Set<String> inYyShadow = new TreeSet<>(); 188: + for ( Integer currXx : xxOcclusions.keySet() ) 189: + { 190: + List<String> idsAtXx = xxOcclusions.get( currXx ); 191: + for ( String idAt : idsAtXx ) 192: + { 193: + if ( idAt.equals( currRect.rectId ) ) 194: + { 195: + continue; 196: + } 197: + else 198: + { 199: + inXxShadow.add( idAt ); 200: + } 201: + } 202: + } 203: + for ( Integer currYy : yyOcclusions.keySet() ) 204: + { 205: + List<String> idsAtYy = yyOcclusions.get( currYy ); 206: + for ( String idAt : idsAtYy ) 207: + { 208: + if ( idAt.equals( currRect.rectId ) ) 209: + { 210: + continue; 211: + } 212: + else 213: + { 214: + inYyShadow.add( idAt ); 215: + } 216: + } 217: + } 218: + // NOTE find the intersection of the two sets, these actually overlap the current rectangle 219: + for ( String xxId : inXxShadow ) 220: + { 221: + for ( String yyId : inYyShadow ) 222: + { 223: + if ( xxId.equals( yyId ) 224: + && ! bothOcclude.contains( xxId + delimiter + currRect.rectId ) ) // avoiding inserting when we find the reverse of an existing pair 225: + { 226: + bothOcclude.add( currRect.rectId + delimiter + xxId ); 227: + } 228: + } 229: + } 230: + } 231: + return bothOcclude; 232: + } 233: + 234: + 235: + int overlappingAreaOf( Map<String, Rectangle> allJoins, 236: + NavigableMap<Integer, List<String>> xxPositions, 237: + NavigableMap<Integer, List<String>> yyPositions, 238: + String delimiter ) 239: + { 240: + int combinedArea = 0; 241: + final boolean inclusive = true; 242: + boolean multiOverlap; 243: + for ( String pairId : allJoins.keySet() ) 244: + { 245: + multiOverlap = false; 246: + Rectangle currRect = allJoins.get( pairId ); 247: + NavigableMap<Integer, List<String>> xxOcclusions = xxPositions.subMap( 248: + currRect.posX, inclusive, currRect.posX + currRect.lenX, ! inclusive ); 249: + NavigableMap<Integer, List<String>> yyOcclusions = yyPositions.subMap( 250: + currRect.posY, inclusive, currRect.posY + currRect.lenY, ! inclusive ); 251: + Set<String> inXxShadow = new TreeSet<>(); 252: + Set<String> inYyShadow = new TreeSet<>(); 253: + for ( Integer currXx : xxOcclusions.keySet() ) 254: + { 255: + List<String> idsAtXx = xxOcclusions.get( currXx ); 256: + for ( String idAt : idsAtXx ) 257: + { 258: + if ( idAt.equals( currRect.rectId ) ) 259: + { 260: + continue; 261: + } 262: + else 263: + { 264: + inXxShadow.add( idAt ); 265: + multiOverlap |= true; 266: + } 267: + } 268: + } 269: + for ( Integer currYy : yyOcclusions.keySet() ) 270: + { 271: + List<String> idsAtYy = yyOcclusions.get( currYy ); 272: + for ( String idAt : idsAtYy ) 273: + { 274: + if ( idAt.equals( currRect.rectId ) ) 275: + { 276: + continue; 277: + } 278: + else 279: + { 280: + inYyShadow.add( idAt ); 281: + } 282: + } 283: + } 284: + // NOTE find the intersection of the two sets, these actually overlap the current rectangle 285: + for ( String xxId : inXxShadow ) 286: + { 287: + for ( String yyId : inYyShadow ) 288: + { 289: + if ( xxId.equals( yyId ) ) 290: + { 291: + Rectangle first = allJoins.get( xxId ); 292: + Rectangle intersect = intersectionOf( first, currRect, delimiter ); 293: + if ( ! first.beenChecked || ! currRect.beenChecked ) 294: + { 295: + // if they've both been checked, then this is a really multi overlap (3 pairs) avoiding overdraft 296: + combinedArea -= intersect.lenX * intersect.lenY; 297: + } 298: + if ( ! first.beenChecked ) 299: + { 300: + combinedArea += first.lenX * first.lenY; 301: + first.beenChecked = true; 302: + } 303: + if ( ! currRect.beenChecked ) 304: + { 305: + combinedArea += currRect.lenX * currRect.lenY; 306: + currRect.beenChecked = true; 307: + } 308: + multiOverlap |= true; 309: + } 310: + } 311: + } 312: + if ( ! multiOverlap ) 313: + { 314: + combinedArea += currRect.lenX * currRect.lenY; 315: + currRect.beenChecked = true; 316: + } 317: + // else handled above 318: + } 319: + return combinedArea; 320: + } 321: + 322: + 323: + Rectangle intersectionOf( Rectangle some, Rectangle other, String idToUse ) 324: + { 325: + Rectangle between = new Rectangle(); 326: + between.rectId = idToUse; 327: + between.posX = Math.max( some.posX, other.posX ); 328: + between.posY = Math.max( some.posY, other.posY ); 329: + int endSome = some.posX + some.lenX; 330: + int endOther = other.posX + other.lenX; 331: + between.lenX = Math.min( endSome, endOther ) - between.posX; 332: + endSome = some.posY + some.lenY; 333: + endOther = other.posY + other.lenY; 334: + between.lenY = Math.min( endSome, endOther ) - between.posY; 335: + return between; 336: + } 337: + 338: +} 339: + 340: + 341: + 342: + 343: + 344: + 345: + 346: + 347: + 348: + 349: + 350: + 351: + 352: + 353: + 354: + 355: + 356: + 357: + 358: + 359: + 360: + 361: + 362: + 363: + 364: + 365: + 366: diff --git a/src/res/18_03_input.txt b/src/res/18_03_input.txt 367: new file mode 100644 368: index 0000000..dfe5246 369: --- /dev/null 370: +++ b/src/res/18_03_input.txt 371: @@ -0,0 +1,1285 @@ 372: +#1 @ 82,901: 26x12 373: +#2 @ 8,540: 18x12 374: +#3 @ 835,180: 23x13 375: +#4 @ 690,544: 29x23 376: +#5 @ 140,218: 18x12 377: +#6 @ 366,229: 28x28 378: +#7 @ 41,677: 18x17 379: +#8 @ 569,685: 10x10 380: +#9 @ 432,953: 13x20 381: +#10 @ 411,225: 13x28 382: +#11 @ 155,396: 28x26 383: +#12 @ 590,968: 25x14 384: +#13 @ 928,664: 18x15 385: +#14 @ 733,903: 18x24 386: +#15 @ 722,641: 17x20 387: +#16 @ 930,579: 24x29 388: +#17 @ 496,596: 23x13 389: +#18 @ 724,650: 14x15 390: +#19 @ 735,418: 27x10 391: +#20 @ 265,936: 14x13 392: +#21 @ 369,495: 14x14 393: +#22 @ 12,203: 18x27 394: +#23 @ 550,409: 21x19 395: +#24 @ 756,58: 19x20 396: +#25 @ 676,294: 29x22 397: +#26 @ 983,152: 8x7 398: +#27 @ 706,431: 18x23 399: +#28 @ 249,118: 27x29 400: +#29 @ 239,531: 11x22 401: +#30 @ 339,916: 20x26 402: +#31 @ 89,280: 27x20 403: +#32 @ 264,844: 23x18 404: +#33 @ 233,729: 29x27 405: +#34 @ 885,845: 20x22 406: +#35 @ 721,450: 11x22 407: +#36 @ 113,661: 16x24 408: +#37 @ 753,478: 29x22 409: +#38 @ 530,92: 20x18 410: +#39 @ 215,72: 28x14 411: +#40 @ 694,750: 27x11 412: +#41 @ 671,810: 22x11 413: +#42 @ 141,515: 17x24 414: +#43 @ 247,258: 14x24 415: +#44 @ 13,6: 11x12 416: +#45 @ 478,983: 25x11 417: +#46 @ 568,522: 14x28 418: +#47 @ 428,720: 25x21 419: +#48 @ 872,518: 18x14 420: +#49 @ 439,942: 26x28 421: +#50 @ 14,68: 21x26 422: +#51 @ 19,977: 11x23 423: +#52 @ 139,203: 22x21 424: +#53 @ 821,665: 29x20 425: +#54 @ 957,936: 23x16 426: +#55 @ 594,134: 13x27 427: +#56 @ 21,617: 28x14 428: +#57 @ 213,324: 20x27 429: +#58 @ 266,456: 16x25 430: +#59 @ 206,369: 14x13 431: +#60 @ 77,374: 20x23 432: +#61 @ 624,476: 16x29 433: +#62 @ 301,425: 27x25 434: +#63 @ 404,275: 29x12 435: +#64 @ 170,14: 22x26 436: +#65 @ 292,546: 29x27 437: +#66 @ 897,27: 25x13 438: +#67 @ 198,227: 21x13 439: +#68 @ 910,355: 15x28 440: +#69 @ 69,897: 27x29 441: +#70 @ 507,916: 23x20 442: +#71 @ 712,413: 12x17 443: +#72 @ 895,851: 12x20 444: +#73 @ 820,946: 19x20 445: +#74 @ 33,317: 16x19 446: +#75 @ 800,810: 27x19 447: +#76 @ 103,18: 18x16 448: +#77 @ 383,884: 23x14 449: +#78 @ 222,262: 12x10 450: +#79 @ 277,562: 16x13 451: +#80 @ 606,631: 27x13 452: +#81 @ 141,532: 24x21 453: +#82 @ 862,495: 4x7 454: +#83 @ 456,216: 15x17 455: +#84 @ 165,53: 12x21 456: +#85 @ 273,74: 10x20 457: +#86 @ 471,831: 17x17 458: +#87 @ 662,452: 13x10 459: +#88 @ 567,255: 14x22 460: +#89 @ 473,836: 8x4 461: +#90 @ 813,854: 14x18 462: +#91 @ 24,966: 15x20 463: +#92 @ 120,537: 15x24 464: +#93 @ 122,957: 28x15 465: +#94 @ 46,800: 10x10 466: +#95 @ 132,650: 15x13 467: +#96 @ 400,543: 17x29 468: +#97 @ 739,868: 13x26 469: +#98 @ 805,576: 27x19 470: +#99 @ 393,673: 25x27 471: +#100 @ 499,695: 24x28 472: +#101 @ 534,393: 28x27 473: +#102 @ 294,720: 16x25 474: +#103 @ 436,878: 25x25 475: +#104 @ 273,522: 21x23 476: +#105 @ 194,364: 22x15 477: +#106 @ 183,754: 17x14 478: +#107 @ 423,42: 26x10 479: +#108 @ 197,420: 20x24 480: +#109 @ 32,317: 20x14 481: +#110 @ 440,876: 23x23 482: +#111 @ 803,971: 28x10 483: +#112 @ 458,558: 28x28 484: +#113 @ 462,896: 10x29 485: +#114 @ 143,725: 15x16 486: +#115 @ 611,629: 15x18 487: +#116 @ 0,239: 25x15 488: +#117 @ 160,485: 11x17 489: +#118 @ 383,457: 24x22 490: +#119 @ 96,823: 28x26 491: +#120 @ 557,936: 19x10 492: +#121 @ 178,3: 14x27 493: +#122 @ 353,296: 24x23 494: +#123 @ 424,829: 13x29 495: +#124 @ 714,415: 5x11 496: +#125 @ 501,66: 14x5 497: +#126 @ 302,637: 27x20 498: +#127 @ 266,64: 11x26 499: +#128 @ 725,348: 13x25 500: +#129 @ 710,543: 24x18 501: +#130 @ 204,907: 29x22 502: +#131 @ 900,528: 22x19 503: +#132 @ 177,469: 16x27 504: +#133 @ 483,932: 12x26 505: +#134 @ 950,16: 24x29 506: +#135 @ 431,936: 22x25 507: +#136 @ 508,879: 11x26 508: +#137 @ 468,819: 16x25 509: +#138 @ 262,104: 25x14 510: +#139 @ 309,933: 21x12 511: +#140 @ 801,805: 23x18 512: +#141 @ 671,967: 21x15 513: +#142 @ 794,251: 23x19 514: +#143 @ 957,482: 17x29 515: +#144 @ 61,684: 23x28 516: +#145 @ 191,824: 24x29 517: +#146 @ 772,315: 14x20 518: +#147 @ 883,493: 12x22 519: +#148 @ 4,238: 22x18 520: +#149 @ 962,488: 29x23 521: +#150 @ 159,896: 12x26 522: +#151 @ 315,903: 13x16 523: +#152 @ 979,857: 12x20 524: +#153 @ 339,935: 22x11 525: +#154 @ 543,92: 12x27 526: +#155 @ 697,500: 22x25 527: +#156 @ 431,682: 15x26 528: +#157 @ 134,754: 25x27 529: +#158 @ 723,216: 18x14 530: +#159 @ 682,387: 16x23 531: +#160 @ 460,909: 15x19 532: +#161 @ 926,661: 21x16 533: +#162 @ 194,274: 14x12 534: +#163 @ 113,158: 27x24 535: +#164 @ 496,672: 29x13 536: +#165 @ 490,44: 16x13 537: +#166 @ 44,184: 13x21 538: +#167 @ 812,722: 21x28 539: +#168 @ 691,132: 21x29 540: +#169 @ 242,732: 11x11 541: +#170 @ 965,231: 18x28 542: +#171 @ 201,315: 27x24 543: +#172 @ 454,833: 20x15 544: +#173 @ 50,509: 29x28 545: +#174 @ 526,590: 16x17 546: +#175 @ 885,743: 14x19 547: +#176 @ 38,933: 23x24 548: +#177 @ 691,166: 27x13 549: +#178 @ 261,108: 23x12 550: +#179 @ 532,332: 16x13 551: +#180 @ 18,86: 29x12 552: +#181 @ 385,425: 15x13 553: +#182 @ 695,490: 25x16 554: +#183 @ 127,959: 15x18 555: +#184 @ 86,789: 23x24 556: +#185 @ 242,613: 23x19 557: +#186 @ 445,334: 23x24 558: +#187 @ 474,350: 25x25 559: +#188 @ 921,905: 26x19 560: +#189 @ 558,277: 20x23 561: +#190 @ 320,323: 29x29 562: +#191 @ 449,68: 12x28 563: +#192 @ 375,934: 11x13 564: +#193 @ 107,323: 29x11 565: +#194 @ 563,587: 29x24 566: +#195 @ 957,590: 13x27 567: +#196 @ 442,241: 16x10 568: +#197 @ 518,602: 18x10 569: +#198 @ 569,526: 25x27 570: +#199 @ 556,400: 12x28 571: +#200 @ 659,301: 26x16 572: +#201 @ 833,350: 29x13 573: +#202 @ 96,835: 10x14 574: +#203 @ 231,902: 27x26 575: +#204 @ 78,168: 23x11 576: +#205 @ 57,937: 19x13 577: +#206 @ 167,762: 21x22 578: +#207 @ 251,506: 17x23 579: +#208 @ 864,536: 21x14 580: +#209 @ 605,488: 15x26 581: +#210 @ 345,368: 27x18 582: +#211 @ 974,247: 25x24 583: +#212 @ 253,493: 12x27 584: +#213 @ 141,86: 10x17 585: +#214 @ 257,115: 16x12 586: +#215 @ 110,949: 28x11 587: +#216 @ 323,910: 18x26 588: +#217 @ 908,433: 27x17 589: +#218 @ 688,866: 25x12 590: +#219 @ 598,308: 14x23 591: +#220 @ 72,203: 12x12 592: +#221 @ 114,187: 15x27 593: +#222 @ 191,808: 28x11 594: +#223 @ 297,332: 18x12 595: +#224 @ 664,894: 12x25 596: +#225 @ 691,839: 17x12 597: +#226 @ 182,538: 26x24 598: +#227 @ 435,670: 10x23 599: +#228 @ 535,365: 22x19 600: +#229 @ 785,642: 21x10 601: +#230 @ 666,452: 10x20 602: +#231 @ 239,577: 20x25 603: +#232 @ 591,493: 23x14 604: +#233 @ 823,513: 12x27 605: +#234 @ 932,470: 22x15 606: +#235 @ 639,207: 22x13 607: +#236 @ 690,546: 10x16 608: +#237 @ 192,110: 16x16 609: +#238 @ 828,193: 26x26 610: +#239 @ 749,423: 20x23 611: +#240 @ 892,415: 16x28 612: +#241 @ 423,955: 25x20 613: +#242 @ 864,302: 21x18 614: +#243 @ 538,344: 17x28 615: +#244 @ 324,259: 25x17 616: +#245 @ 659,851: 23x18 617: +#246 @ 905,868: 27x27 618: +#247 @ 566,519: 12x19 619: +#248 @ 30,552: 28x10 620: +#249 @ 419,314: 13x26 621: +#250 @ 938,294: 25x12 622: +#251 @ 70,361: 10x16 623: +#252 @ 679,143: 26x14 624: +#253 @ 911,499: 18x23 625: +#254 @ 385,914: 18x14 626: +#255 @ 562,134: 13x16 627: +#256 @ 117,368: 19x17 628: +#257 @ 32,315: 11x17 629: +#258 @ 741,550: 11x24 630: +#259 @ 729,317: 14x17 631: +#260 @ 7,944: 28x28 632: +#261 @ 479,603: 29x17 633: +#262 @ 341,958: 23x10 634: +#263 @ 599,451: 16x19 635: +#264 @ 605,136: 13x18 636: +#265 @ 569,276: 23x13 637: +#266 @ 787,857: 13x16 638: +#267 @ 939,324: 19x17 639: +#268 @ 781,866: 12x13 640: +#269 @ 289,740: 22x11 641: +#270 @ 347,238: 11x19 642: +#271 @ 843,569: 25x13 643: +#272 @ 81,371: 11x14 644: +#273 @ 411,58: 21x27 645: +#274 @ 607,517: 16x22 646: +#275 @ 301,927: 28x23 647: +#276 @ 410,191: 17x17 648: +#277 @ 262,67: 29x12 649: +#278 @ 246,184: 12x11 650: +#279 @ 213,16: 29x25 651: +#280 @ 941,292: 16x13 652: +#281 @ 91,756: 27x14 653: +#282 @ 936,975: 13x14 654: +#283 @ 262,820: 13x27 655: +#284 @ 480,127: 24x27 656: +#285 @ 935,973: 14x17 657: +#286 @ 320,607: 25x25 658: +#287 @ 967,117: 20x22 659: +#288 @ 517,724: 10x25 660: +#289 @ 438,751: 10x19 661: +#290 @ 672,465: 15x27 662: +#291 @ 813,834: 23x11 663: +#292 @ 699,174: 20x25 664: +#293 @ 436,775: 17x16 665: +#294 @ 601,209: 16x19 666: +#295 @ 732,372: 15x29 667: +#296 @ 931,378: 22x27 668: +#297 @ 312,778: 24x22 669: +#298 @ 47,100: 24x19 670: +#299 @ 340,115: 15x14 671: +#300 @ 581,375: 29x20 672: +#301 @ 122,679: 3x4 673: +#302 @ 422,780: 27x14 674: +#303 @ 818,464: 11x17 675: +#304 @ 518,142: 18x24 676: +#305 @ 49,523: 19x17 677: +#306 @ 87,157: 15x28 678: +#307 @ 801,509: 18x21 679: +#308 @ 525,189: 18x12 680: +#309 @ 670,832: 11x12 681: +#310 @ 276,752: 24x20 682: +#311 @ 695,834: 12x10 683: +#312 @ 709,479: 11x20 684: +#313 @ 751,72: 24x10 685: +#314 @ 841,794: 24x19 686: +#315 @ 503,134: 15x24 687: +#316 @ 591,959: 22x12 688: +#317 @ 184,598: 19x10 689: +#318 @ 768,496: 28x25 690: +#319 @ 243,676: 22x26 691: +#320 @ 225,530: 17x29 692: +#321 @ 90,675: 24x17 693: +#322 @ 898,801: 20x10 694: +#323 @ 287,756: 17x28 695: +#324 @ 629,199: 11x14 696: +#325 @ 631,532: 25x15 697: +#326 @ 448,317: 18x15 698: +#327 @ 789,865: 11x20 699: +#328 @ 520,548: 18x27 700: +#329 @ 336,49: 29x17 701: +#330 @ 657,506: 17x22 702: +#331 @ 298,426: 17x23 703: +#332 @ 615,965: 23x28 704: +#333 @ 780,52: 25x29 705: +#334 @ 556,961: 23x19 706: +#335 @ 196,191: 11x13 707: +#336 @ 230,262: 12x11 708: +#337 @ 683,161: 19x25 709: +#338 @ 31,615: 19x15 710: +#339 @ 762,856: 15x22 711: +#340 @ 323,370: 28x26 712: +#341 @ 466,328: 23x12 713: +#342 @ 757,863: 29x23 714: +#343 @ 837,672: 12x14 715: +#344 @ 650,41: 14x13 716: +#345 @ 175,297: 11x29 717: +#346 @ 300,414: 10x25 718: +#347 @ 827,107: 15x22 719: +#348 @ 348,89: 17x10 720: +#349 @ 940,726: 18x14 721: +#350 @ 446,300: 23x23 722: +#351 @ 32,331: 28x12 723: +#352 @ 615,491: 26x27 724: +#353 @ 343,223: 26x18 725: +#354 @ 598,371: 25x12 726: +#355 @ 682,687: 20x24 727: +#356 @ 27,93: 22x16 728: +#357 @ 239,10: 14x27 729: +#358 @ 151,886: 18x23 730: +#359 @ 940,849: 20x29 731: +#360 @ 282,65: 19x21 732: +#361 @ 933,65: 27x23 733: +#362 @ 26,264: 21x19 734: +#363 @ 683,418: 23x25 735: +#364 @ 882,313: 14x19 736: +#365 @ 200,686: 19x24 737: +#366 @ 36,809: 15x11 738: +#367 @ 764,312: 21x24 739: +#368 @ 448,757: 18x27 740: +#369 @ 513,644: 20x18 741: +#370 @ 482,740: 14x27 742: +#371 @ 709,6: 25x17 743: +#372 @ 259,234: 12x28 744: +#373 @ 659,145: 23x16 745: +#374 @ 514,954: 11x26 746: +#375 @ 575,937: 17x28 747: +#376 @ 484,892: 25x12 748: +#377 @ 897,857: 7x7 749: +#378 @ 36,103: 18x19 750: +#379 @ 458,212: 17x21 751: +#380 @ 499,62: 19x13 752: +#381 @ 200,51: 24x21 753: +#382 @ 675,243: 14x23 754: +#383 @ 73,182: 28x23 755: +#384 @ 442,326: 23x14 756: +#385 @ 375,675: 23x22 757: +#386 @ 266,350: 10x25 758: +#387 @ 545,31: 16x28 759: +#388 @ 439,672: 12x23 760: +#389 @ 328,221: 29x24 761: +#390 @ 844,643: 20x12 762: +#391 @ 474,896: 14x27 763: +#392 @ 666,35: 23x12 764: +#393 @ 228,29: 15x12 765: +#394 @ 844,241: 21x11 766: +#395 @ 785,632: 16x20 767: +#396 @ 885,458: 28x29 768: +#397 @ 648,554: 19x21 769: +#398 @ 809,169: 25x13 770: +#399 @ 797,380: 16x11 771: +#400 @ 512,621: 16x28 772: +#401 @ 892,19: 19x14 773: +#402 @ 376,194: 23x10 774: +#403 @ 436,667: 13x11 775: +#404 @ 25,550: 11x27 776: +#405 @ 546,863: 28x26 777: +#406 @ 129,530: 17x10 778: +#407 @ 304,965: 26x16 779: +#408 @ 877,630: 29x11 780: +#409 @ 226,47: 23x10 781: +#410 @ 28,293: 21x26 782: +#411 @ 199,185: 25x20 783: +#412 @ 249,50: 12x28 784: +#413 @ 702,643: 29x18 785: +#414 @ 326,485: 16x24 786: +#415 @ 662,142: 25x10 787: +#416 @ 463,382: 26x12 788: +#417 @ 786,731: 15x18 789: +#418 @ 440,797: 21x15 790: +#419 @ 674,673: 14x11 791: +#420 @ 191,722: 11x26 792: +#421 @ 903,117: 15x14 793: +#422 @ 330,14: 21x15 794: +#423 @ 240,160: 19x29 795: +#424 @ 636,380: 16x24 796: +#425 @ 802,821: 10x19 797: +#426 @ 496,587: 22x28 798: +#427 @ 586,314: 16x29 799: +#428 @ 936,107: 12x13 800: +#429 @ 276,794: 10x21 801: +#430 @ 495,148: 15x27 802: +#431 @ 500,318: 29x12 803: +#432 @ 49,545: 27x14 804: +#433 @ 83,841: 11x19 805: +#434 @ 139,425: 10x20 806: +#435 @ 332,730: 26x25 807: +#436 @ 108,919: 15x27 808: +#437 @ 191,598: 10x16 809: +#438 @ 683,707: 21x26 810: +#439 @ 835,356: 22x10 811: +#440 @ 807,809: 10x29 812: +#441 @ 55,65: 12x10 813: +#442 @ 422,40: 12x10 814: +#443 @ 922,618: 12x26 815: +#444 @ 478,69: 29x16 816: +#445 @ 883,171: 26x12 817: +#446 @ 377,58: 20x23 818: +#447 @ 155,628: 23x26 819: +#448 @ 264,334: 19x19 820: +#449 @ 158,748: 14x10 821: +#450 @ 625,490: 28x23 822: +#451 @ 239,459: 23x21 823: +#452 @ 636,19: 29x27 824: +#453 @ 205,811: 11x23 825: +#454 @ 170,212: 16x25 826: +#455 @ 90,922: 27x14 827: +#456 @ 956,39: 15x10 828: +#457 @ 238,586: 19x25 829: +#458 @ 463,150: 18x22 830: +#459 @ 88,366: 16x11 831: +#460 @ 170,177: 11x19 832: +#461 @ 647,261: 17x26 833: +#462 @ 502,693: 20x25 834: +#463 @ 631,435: 28x19 835: +#464 @ 409,53: 26x19 836: +#465 @ 875,106: 27x26 837: +#466 @ 632,722: 11x27 838: +#467 @ 618,231: 28x13 839: +#468 @ 845,370: 18x29 840: +#469 @ 641,137: 10x14 841: +#470 @ 587,379: 14x5 842: +#471 @ 15,415: 28x11 843: +#472 @ 337,409: 10x18 844: +#473 @ 749,673: 26x20 845: +#474 @ 27,736: 25x19 846: +#475 @ 943,462: 17x16 847: +#476 @ 580,432: 20x20 848: +#477 @ 244,592: 16x13 849: +#478 @ 903,733: 20x25 850: +#479 @ 755,736: 16x19 851: +#480 @ 786,864: 12x15 852: +#481 @ 659,329: 22x11 853: +#482 @ 474,122: 16x14 854: +#483 @ 871,849: 22x16 855: +#484 @ 524,849: 19x23 856: +#485 @ 714,890: 13x15 857: +#486 @ 836,782: 19x24 858: +#487 @ 562,528: 12x15 859: +#488 @ 301,71: 23x13 860: +#489 @ 309,715: 25x17 861: +#490 @ 253,802: 25x22 862: +#491 @ 264,53: 17x29 863: +#492 @ 112,952: 17x19 864: +#493 @ 585,377: 20x16 865: +#494 @ 679,396: 29x27 866: +#495 @ 104,31: 21x11 867: +#496 @ 367,892: 17x26 868: +#497 @ 89,193: 28x10 869: +#498 @ 734,541: 11x10 870: +#499 @ 938,416: 18x25 871: +#500 @ 90,845: 13x16 872: +#501 @ 267,491: 19x27 873: +#502 @ 519,145: 20x22 874: +#503 @ 144,468: 20x15 875: +#504 @ 104,244: 12x12 876: +#505 @ 592,914: 23x18 877: +#506 @ 852,562: 11x18 878: +#507 @ 611,205: 29x27 879: +#508 @ 429,7: 12x26 880: +#509 @ 223,325: 11x24 881: +#510 @ 845,201: 16x12 882: +#511 @ 680,691: 15x20 883: +#512 @ 365,494: 28x24 884: +#513 @ 5,0: 25x12 885: +#514 @ 319,848: 12x24 886: +#515 @ 7,834: 27x10 887: +#516 @ 731,346: 26x11 888: +#517 @ 772,340: 13x20 889: +#518 @ 168,466: 26x28 890: +#519 @ 757,420: 14x10 891: +#520 @ 665,908: 23x29 892: +#521 @ 807,961: 10x14 893: +#522 @ 942,456: 11x21 894: +#523 @ 719,811: 29x25 895: +#524 @ 476,211: 21x28 896: +#525 @ 766,90: 15x20 897: +#526 @ 747,410: 16x20 898: +#527 @ 443,756: 25x14 899: +#528 @ 741,847: 29x28 900: +#529 @ 970,782: 22x16 901: +#530 @ 167,710: 25x16 902: +#531 @ 209,468: 11x22 903: +#532 @ 267,279: 25x11 904: +#533 @ 458,60: 23x18 905: +#534 @ 196,579: 14x14 906: +#535 @ 537,408: 20x23 907: +#536 @ 750,862: 29x19 908: +#537 @ 301,780: 25x12 909: +#538 @ 298,669: 10x11 910: +#539 @ 389,801: 25x17 911: +#540 @ 677,468: 10x15 912: +#541 @ 751,325: 27x25 913: +#542 @ 757,466: 12x27 914: +#543 @ 700,146: 18x14 915: +#544 @ 800,45: 24x25 916: +#545 @ 297,545: 15x10 917: +#546 @ 948,383: 29x24 918: +#547 @ 939,77: 26x15 919: +#548 @ 218,948: 11x24 920: +#549 @ 704,814: 12x13 921: +#550 @ 801,373: 23x13 922: +#551 @ 268,254: 20x12 923: +#552 @ 494,923: 17x22 924: +#553 @ 730,169: 19x18 925: +#554 @ 39,255: 12x26 926: +#555 @ 169,191: 18x15 927: +#556 @ 359,553: 21x26 928: +#557 @ 228,212: 23x10 929: +#558 @ 485,754: 7x6 930: +#559 @ 965,910: 28x24 931: +#560 @ 400,790: 23x22 932: +#561 @ 653,33: 22x13 933: +#562 @ 161,647: 12x16 934: +#563 @ 654,697: 3x12 935: +#564 @ 183,66: 27x10 936: +#565 @ 758,708: 29x24 937: +#566 @ 298,622: 26x27 938: +#567 @ 799,301: 26x20 939: +#568 @ 12,528: 16x22 940: +#569 @ 701,473: 10x13 941: +#570 @ 238,324: 16x27 942: +#571 @ 652,691: 10x23 943: +#572 @ 169,618: 25x11 944: +#573 @ 915,792: 10x28 945: +#574 @ 450,848: 24x18 946: +#575 @ 23,311: 26x13 947: +#576 @ 346,302: 25x23 948: +#577 @ 652,275: 14x15 949: +#578 @ 791,311: 20x21 950: +#579 @ 907,148: 28x16 951: +#580 @ 559,395: 15x14 952: +#581 @ 422,723: 24x14 953: +#582 @ 859,99: 16x21 954: +#583 @ 217,69: 12x10 955: +#584 @ 206,313: 24x15 956: +#585 @ 716,317: 19x15 957: +#586 @ 172,893: 15x16 958: +#587 @ 734,377: 12x12 959: +#588 @ 565,260: 16x13 960: +#589 @ 762,574: 13x11 961: +#590 @ 21,303: 26x28 962: +#591 @ 814,708: 24x17 963: +#592 @ 267,797: 25x18 964: +#593 @ 211,464: 10x12 965: +#594 @ 799,583: 18x22 966: +#595 @ 213,351: 10x14 967: +#596 @ 901,794: 20x23 968: +#597 @ 589,749: 29x21 969: +#598 @ 217,335: 28x28 970: +#599 @ 574,287: 10x29 971: +#600 @ 125,14: 23x25 972: +#601 @ 40,690: 26x29 973: +#602 @ 973,247: 13x23 974: +#603 @ 734,422: 24x19 975: +#604 @ 880,539: 17x13 976: +#605 @ 501,974: 19x21 977: +#606 @ 613,746: 22x29 978: +#607 @ 569,752: 5x10 979: +#608 @ 50,785: 12x27 980: +#609 @ 222,7: 19x10 981: +#610 @ 510,857: 23x29 982: +#611 @ 873,342: 14x29 983: +#612 @ 368,65: 10x23 984: +#613 @ 705,490: 26x11 985: +#614 @ 193,454: 15x16 986: +#615 @ 942,669: 21x26 987: +#616 @ 795,960: 29x29 988: +#617 @ 681,555: 26x29 989: +#618 @ 877,685: 19x28 990: +#619 @ 158,482: 17x27 991: +#620 @ 123,166: 18x20 992: +#621 @ 409,733: 29x28 993: +#622 @ 701,843: 12x13 994: +#623 @ 808,459: 11x20 995: +#624 @ 105,699: 27x13 996: +#625 @ 191,421: 19x26 997: +#626 @ 465,120: 28x11 998: +#627 @ 91,793: 17x11 999: +#628 @ 755,345: 27x27 1000: +#629 @ 778,268: 20x22 1001: +#630 @ 141,487: 27x11 1002: +#631 @ 399,938: 17x25 1003: +#632 @ 201,771: 17x18 1004: +#633 @ 582,373: 17x29 1005: +#634 @ 3,944: 10x12 1006: +#635 @ 488,320: 19x15 1007: +#636 @ 358,642: 24x26 1008: +#637 @ 881,90: 18x20 1009: +#638 @ 930,857: 21x16 1010: +#639 @ 753,535: 15x25 1011: +#640 @ 527,135: 22x18 1012: +#641 @ 514,742: 12x21 1013: +#642 @ 617,21: 18x10 1014: +#643 @ 821,348: 25x22 1015: +#644 @ 721,764: 19x13 1016: +#645 @ 865,158: 23x11 1017: +#646 @ 275,62: 19x27 1018: +#647 @ 378,413: 23x28 1019: +#648 @ 498,667: 13x16 1020: +#649 @ 308,97: 28x10 1021: +#650 @ 111,377: 16x22 1022: +#651 @ 242,461: 26x18 1023: +#652 @ 890,178: 26x24 1024: +#653 @ 489,320: 26x16 1025: +#654 @ 667,368: 19x17 1026: +#655 @ 730,859: 16x25 1027: +#656 @ 356,215: 16x25 1028: +#657 @ 634,29: 24x12 1029: +#658 @ 805,663: 12x25 1030: +#659 @ 293,541: 21x10 1031: +#660 @ 642,287: 28x23 1032: +#661 @ 785,105: 27x15 1033: +#662 @ 370,198: 25x15 1034: +#663 @ 205,462: 18x24 1035: +#664 @ 205,936: 28x26 1036: +#665 @ 241,12: 8x22 1037: +#666 @ 204,237: 25x12 1038: +#667 @ 40,412: 17x25 1039: +#668 @ 643,313: 23x28 1040: +#669 @ 527,144: 10x28 1041: +#670 @ 677,936: 10x20 1042: +#671 @ 774,575: 16x23 1043: +#672 @ 387,676: 15x20 1044: +#673 @ 768,335: 18x12 1045: +#674 @ 878,746: 29x16 1046: +#675 @ 203,826: 12x24 1047: +#676 @ 82,762: 27x15 1048: +#677 @ 500,536: 21x28 1049: +#678 @ 982,378: 13x21 1050: +#679 @ 724,803: 19x18 1051: +#680 @ 856,232: 11x25 1052: +#681 @ 728,114: 29x29 1053: +#682 @ 704,175: 14x10 1054: +#683 @ 755,824: 28x23 1055: +#684 @ 651,523: 12x29 1056: +#685 @ 331,25: 20x21 1057: +#686 @ 881,335: 20x17 1058: +#687 @ 563,498: 21x15 1059: +#688 @ 370,414: 29x19 1060: +#689 @ 70,946: 22x13 1061: +#690 @ 450,319: 12x9 1062: +#691 @ 905,812: 29x12 1063: +#692 @ 383,954: 17x22 1064: +#693 @ 149,726: 14x18 1065: +#694 @ 793,315: 14x13 1066: +#695 @ 426,624: 15x17 1067: +#696 @ 264,390: 22x19 1068: +#697 @ 708,747: 27x14 1069: +#698 @ 837,319: 14x29 1070: +#699 @ 266,260: 27x17 1071: +#700 @ 765,14: 11x14 1072: +#701 @ 188,260: 23x20 1073: +#702 @ 420,264: 22x13 1074: +#703 @ 150,536: 21x23 1075: +#704 @ 356,535: 19x25 1076: +#705 @ 203,545: 29x15 1077: +#706 @ 374,270: 27x20 1078: +#707 @ 906,380: 11x26 1079: +#708 @ 901,418: 27x23 1080: +#709 @ 323,764: 15x23 1081: +#710 @ 635,488: 12x21 1082: +#711 @ 236,550: 21x24 1083: +#712 @ 693,826: 22x22 1084: +#713 @ 720,9: 10x10 1085: +#714 @ 315,105: 29x13 1086: +#715 @ 374,286: 25x12 1087: +#716 @ 609,904: 15x29 1088: +#717 @ 661,363: 26x19 1089: +#718 @ 776,347: 18x26 1090: +#719 @ 91,246: 26x23 1091: +#720 @ 664,786: 11x21 1092: +#721 @ 868,518: 12x20 1093: +#722 @ 577,203: 26x26 1094: +#723 @ 793,723: 23x26 1095: +#724 @ 803,137: 12x25 1096: +#725 @ 576,728: 14x23 1097: +#726 @ 719,109: 15x14 1098: +#727 @ 671,423: 22x12 1099: +#728 @ 970,677: 17x26 1100: +#729 @ 647,467: 20x10 1101: +#730 @ 350,705: 29x29 1102: +#731 @ 791,958: 21x26 1103: +#732 @ 952,566: 8x8 1104: +#733 @ 829,110: 18x27 1105: +#734 @ 383,177: 21x20 1106: +#735 @ 480,352: 7x16 1107: +#736 @ 873,745: 10x14 1108: +#737 @ 43,701: 26x10 1109: +#738 @ 564,482: 16x10 1110: +#739 @ 421,247: 23x19 1111: +#740 @ 674,932: 18x11 1112: +#741 @ 102,75: 24x28 1113: +#742 @ 810,287: 11x22 1114: +#743 @ 803,499: 19x25 1115: +#744 @ 941,358: 14x25 1116: +#745 @ 336,495: 27x21 1117: +#746 @ 445,393: 21x19 1118: +#747 @ 745,411: 29x23 1119: +#748 @ 236,797: 27x21 1120: +#749 @ 890,702: 15x27 1121: +#750 @ 714,214: 15x26 1122: +#751 @ 191,915: 25x24 1123: +#752 @ 492,722: 14x28 1124: +#753 @ 916,441: 12x23 1125: +#754 @ 254,231: 29x14 1126: +#755 @ 746,172: 22x11 1127: +#756 @ 693,444: 29x11 1128: +#757 @ 398,644: 15x17 1129: +#758 @ 781,180: 11x28 1130: +#759 @ 918,285: 20x18 1131: +#760 @ 407,919: 13x28 1132: +#761 @ 269,402: 19x11 1133: +#762 @ 496,46: 5x6 1134: +#763 @ 591,911: 16x20 1135: +#764 @ 248,586: 18x18 1136: +#765 @ 343,960: 21x16 1137: +#766 @ 832,313: 10x17 1138: +#767 @ 906,441: 24x10 1139: +#768 @ 121,953: 21x28 1140: +#769 @ 204,343: 12x29 1141: +#770 @ 664,228: 14x24 1142: +#771 @ 819,559: 15x14 1143: +#772 @ 111,3: 26x18 1144: +#773 @ 898,46: 13x10 1145: +#774 @ 320,780: 12x13 1146: +#775 @ 664,230: 18x27 1147: +#776 @ 22,736: 15x16 1148: +#777 @ 189,927: 29x16 1149: +#778 @ 392,416: 19x20 1150: +#779 @ 920,793: 17x20 1151: +#780 @ 138,99: 11x10 1152: +#781 @ 385,946: 17x12 1153: +#782 @ 317,420: 29x17 1154: +#783 @ 291,967: 28x11 1155: +#784 @ 365,493: 10x16 1156: +#785 @ 502,978: 18x15 1157: +#786 @ 566,464: 29x17 1158: +#787 @ 925,873: 20x13 1159: +#788 @ 364,250: 17x28 1160: +#789 @ 514,324: 26x15 1161: +#790 @ 513,901: 14x19 1162: +#791 @ 839,217: 26x19 1163: +#792 @ 791,171: 11x19 1164: +#793 @ 904,635: 18x19 1165: +#794 @ 262,789: 10x15 1166: +#795 @ 323,107: 19x10 1167: +#796 @ 28,528: 29x26 1168: +#797 @ 129,409: 12x12 1169: +#798 @ 638,405: 11x22 1170: +#799 @ 288,42: 20x25 1171: +#800 @ 579,280: 18x25 1172: +#801 @ 446,908: 13x26 1173: +#802 @ 465,334: 28x20 1174: +#803 @ 874,154: 24x23 1175: +#804 @ 799,44: 23x18 1176: +#805 @ 510,185: 18x11 1177: +#806 @ 10,856: 16x16 1178: +#807 @ 552,924: 11x25 1179: +#808 @ 567,746: 10x23 1180: +#809 @ 862,633: 18x21 1181: +#810 @ 125,407: 17x19 1182: +#811 @ 336,769: 22x13 1183: +#812 @ 383,463: 10x17 1184: +#813 @ 843,622: 22x23 1185: +#814 @ 363,793: 12x29 1186: +#815 @ 762,472: 5x4 1187: +#816 @ 672,549: 21x17 1188: +#817 @ 255,468: 17x19 1189: +#818 @ 24,930: 27x29 1190: +#819 @ 451,666: 16x11 1191: +#820 @ 567,688: 14x13 1192: +#821 @ 526,42: 14x11 1193: +#822 @ 262,213: 10x28 1194: +#823 @ 874,352: 16x26 1195: +#824 @ 839,783: 11x11 1196: +#825 @ 143,434: 25x16 1197: +#826 @ 936,834: 25x18 1198: +#827 @ 350,88: 11x26 1199: +#828 @ 199,648: 27x20 1200: +#829 @ 922,379: 14x21 1201: +#830 @ 958,477: 12x17 1202: +#831 @ 103,63: 23x14 1203: +#832 @ 125,746: 29x13 1204: +#833 @ 951,933: 17x10 1205: +#834 @ 235,809: 22x26 1206: +#835 @ 55,710: 16x15 1207: +#836 @ 701,807: 14x24 1208: +#837 @ 345,422: 15x16 1209: +#838 @ 837,786: 12x14 1210: +#839 @ 26,290: 18x28 1211: +#840 @ 554,870: 18x24 1212: +#841 @ 233,14: 14x27 1213: +#842 @ 345,267: 19x11 1214: +#843 @ 830,526: 13x22 1215: +#844 @ 951,354: 15x21 1216: +#845 @ 367,192: 26x15 1217: +#846 @ 368,695: 18x12 1218: +#847 @ 352,758: 27x18 1219: +#848 @ 629,694: 13x12 1220: +#849 @ 218,666: 23x23 1221: +#850 @ 970,688: 12x10 1222: +#851 @ 764,100: 13x10 1223: +#852 @ 52,590: 19x3 1224: +#853 @ 884,466: 28x21 1225: +#854 @ 829,73: 24x26 1226: +#855 @ 32,71: 24x16 1227: +#856 @ 411,289: 17x25 1228: +#857 @ 174,635: 11x26 1229: +#858 @ 150,875: 26x12 1230: +#859 @ 468,847: 10x21 1231: +#860 @ 23,929: 10x12 1232: +#861 @ 279,75: 28x27 1233: +#862 @ 220,966: 23x13 1234: +#863 @ 236,17: 13x21 1235: +#864 @ 53,801: 10x13 1236: +#865 @ 903,362: 26x28 1237: +#866 @ 146,515: 15x26 1238: +#867 @ 236,379: 10x19 1239: +#868 @ 705,227: 17x20 1240: +#869 @ 146,398: 20x14 1241: +#870 @ 200,585: 26x21 1242: +#871 @ 905,46: 18x19 1243: +#872 @ 323,24: 29x26 1244: +#873 @ 976,846: 16x14 1245: +#874 @ 437,808: 14x29 1246: +#875 @ 641,417: 28x19 1247: +#876 @ 508,390: 23x29 1248: +#877 @ 548,354: 15x18 1249: +#878 @ 152,975: 26x20 1250: +#879 @ 880,750: 16x24 1251: +#880 @ 452,785: 29x25 1252: +#881 @ 482,338: 26x18 1253: +#882 @ 516,899: 10x13 1254: +#883 @ 628,481: 16x27 1255: +#884 @ 76,200: 15x22 1256: +#885 @ 544,97: 26x21 1257: +#886 @ 491,19: 16x23 1258: +#887 @ 86,770: 23x20 1259: +#888 @ 369,794: 10x26 1260: +#889 @ 78,950: 11x26 1261: +#890 @ 874,425: 14x10 1262: +#891 @ 482,945: 29x10 1263: +#892 @ 768,5: 29x24 1264: +#893 @ 562,400: 17x7 1265: +#894 @ 587,928: 15x13 1266: +#895 @ 134,526: 28x18 1267: +#896 @ 148,67: 27x26 1268: +#897 @ 188,861: 16x15 1269: +#898 @ 725,374: 22x22 1270: +#899 @ 916,792: 14x13 1271: +#900 @ 704,497: 10x23 1272: +#901 @ 392,935: 16x15 1273: +#902 @ 358,407: 12x14 1274: +#903 @ 429,322: 20x10 1275: +#904 @ 929,780: 23x28 1276: +#905 @ 683,974: 26x15 1277: +#906 @ 728,547: 17x22 1278: +#907 @ 803,130: 15x18 1279: +#908 @ 330,933: 14x21 1280: +#909 @ 964,788: 25x19 1281: +#910 @ 731,800: 12x23 1282: +#911 @ 301,833: 12x23 1283: +#912 @ 507,382: 13x11 1284: +#913 @ 766,6: 15x16 1285: +#914 @ 293,510: 19x14 1286: +#915 @ 534,93: 19x16 1287: +#916 @ 984,912: 10x14 1288: +#917 @ 915,133: 15x18 1289: +#918 @ 336,521: 22x17 1290: +#919 @ 325,430: 18x28 1291: +#920 @ 907,98: 29x28 1292: +#921 @ 651,555: 10x19 1293: +#922 @ 314,321: 26x22 1294: +#923 @ 550,111: 12x16 1295: +#924 @ 543,464: 20x11 1296: +#925 @ 932,621: 16x21 1297: +#926 @ 169,201: 24x17 1298: +#927 @ 670,439: 13x17 1299: +#928 @ 172,316: 19x27 1300: +#929 @ 84,839: 24x28 1301: +#930 @ 732,391: 13x20 1302: +#931 @ 166,367: 29x29 1303: +#932 @ 673,808: 24x22 1304: +#933 @ 26,246: 14x28 1305: +#934 @ 49,585: 28x19 1306: +#935 @ 741,801: 28x16 1307: +#936 @ 303,817: 27x27 1308: +#937 @ 795,864: 22x20 1309: +#938 @ 981,147: 18x25 1310: +#939 @ 116,746: 19x27 1311: +#940 @ 735,930: 28x16 1312: +#941 @ 118,462: 21x12 1313: +#942 @ 560,398: 26x13 1314: +#943 @ 562,115: 11x25 1315: +#944 @ 740,863: 12x24 1316: +#945 @ 661,461: 14x20 1317: +#946 @ 71,700: 15x16 1318: +#947 @ 485,540: 15x21 1319: +#948 @ 369,689: 22x25 1320: +#949 @ 639,707: 10x15 1321: +#950 @ 929,920: 18x23 1322: +#951 @ 943,232: 23x19 1323: +#952 @ 336,760: 6x13 1324: +#953 @ 705,430: 27x19 1325: +#954 @ 443,90: 15x16 1326: +#955 @ 61,350: 27x29 1327: +#956 @ 752,571: 15x28 1328: +#957 @ 17,511: 26x25 1329: +#958 @ 298,316: 15x19 1330: +#959 @ 632,367: 20x24 1331: +#960 @ 688,233: 13x26 1332: +#961 @ 649,747: 19x24 1333: +#962 @ 415,331: 14x29 1334: +#963 @ 17,200: 23x14 1335: +#964 @ 209,835: 15x15 1336: +#965 @ 816,644: 12x11 1337: +#966 @ 31,102: 18x19 1338: +#967 @ 559,376: 24x29 1339: +#968 @ 662,467: 27x20 1340: +#969 @ 261,615: 24x29 1341: +#970 @ 744,908: 11x24 1342: +#971 @ 832,229: 27x13 1343: +#972 @ 266,219: 14x25 1344: +#973 @ 306,724: 10x18 1345: +#974 @ 120,668: 12x29 1346: +#975 @ 775,836: 20x14 1347: +#976 @ 941,805: 20x18 1348: +#977 @ 461,370: 10x18 1349: +#978 @ 821,538: 12x26 1350: +#979 @ 799,500: 14x10 1351: +#980 @ 883,472: 18x25 1352: +#981 @ 132,677: 29x28 1353: +#982 @ 26,54: 18x18 1354: +#983 @ 659,394: 26x17 1355: +#984 @ 501,13: 17x14 1356: +#985 @ 633,470: 18x16 1357: +#986 @ 518,861: 21x27 1358: +#987 @ 658,53: 17x19 1359: +#988 @ 898,487: 19x13 1360: +#989 @ 141,209: 21x20 1361: +#990 @ 23,245: 26x25 1362: +#991 @ 882,630: 19x26 1363: +#992 @ 339,39: 11x18 1364: +#993 @ 505,167: 17x14 1365: +#994 @ 348,312: 17x15 1366: +#995 @ 442,801: 22x27 1367: +#996 @ 963,496: 10x14 1368: +#997 @ 658,50: 25x20 1369: +#998 @ 138,573: 25x21 1370: +#999 @ 819,101: 29x16 1371: +#1000 @ 470,160: 25x12 1372: +#1001 @ 973,681: 19x25 1373: +#1002 @ 756,596: 24x20 1374: +#1003 @ 87,295: 29x16 1375: +#1004 @ 745,538: 21x28 1376: +#1005 @ 390,199: 28x18 1377: +#1006 @ 829,339: 12x10 1378: +#1007 @ 687,814: 17x19 1379: +#1008 @ 277,661: 26x18 1380: +#1009 @ 145,538: 24x12 1381: +#1010 @ 534,31: 13x24 1382: +#1011 @ 459,349: 21x26 1383: +#1012 @ 447,98: 6x3 1384: +#1013 @ 643,769: 22x23 1385: +#1014 @ 813,85: 25x16 1386: +#1015 @ 364,922: 18x21 1387: +#1016 @ 419,628: 18x18 1388: +#1017 @ 43,683: 22x26 1389: +#1018 @ 749,752: 28x27 1390: +#1019 @ 774,69: 28x22 1391: +#1020 @ 940,438: 11x24 1392: +#1021 @ 218,941: 25x27 1393: +#1022 @ 609,213: 12x28 1394: +#1023 @ 333,753: 19x24 1395: +#1024 @ 115,255: 27x18 1396: +#1025 @ 153,459: 21x20 1397: +#1026 @ 809,650: 11x12 1398: +#1027 @ 883,745: 24x11 1399: +#1028 @ 473,915: 18x28 1400: +#1029 @ 362,179: 22x20 1401: +#1030 @ 440,909: 23x13 1402: +#1031 @ 943,198: 10x17 1403: +#1032 @ 194,834: 24x20 1404: +#1033 @ 727,774: 28x16 1405: +#1034 @ 882,639: 14x17 1406: +#1035 @ 385,416: 11x17 1407: +#1036 @ 895,312: 26x12 1408: +#1037 @ 597,569: 28x22 1409: +#1038 @ 482,924: 10x28 1410: +#1039 @ 858,384: 22x11 1411: +#1040 @ 900,417: 27x22 1412: +#1041 @ 884,432: 29x10 1413: +#1042 @ 576,424: 28x27 1414: +#1043 @ 833,176: 29x13 1415: +#1044 @ 508,703: 14x20 1416: +#1045 @ 759,343: 12x16 1417: +#1046 @ 803,510: 17x19 1418: +#1047 @ 36,34: 17x29 1419: +#1048 @ 280,569: 29x23 1420: +#1049 @ 162,858: 24x20 1421: +#1050 @ 647,492: 25x13 1422: +#1051 @ 595,535: 14x20 1423: +#1052 @ 749,692: 11x21 1424: +#1053 @ 876,13: 15x18 1425: +#1054 @ 696,644: 28x21 1426: +#1055 @ 958,237: 27x27 1427: +#1056 @ 588,230: 25x20 1428: +#1057 @ 97,782: 13x14 1429: +#1058 @ 410,816: 27x24 1430: +#1059 @ 959,498: 27x18 1431: +#1060 @ 915,274: 20x17 1432: +#1061 @ 226,267: 8x20 1433: +#1062 @ 888,307: 20x27 1434: +#1063 @ 609,983: 10x12 1435: +#1064 @ 959,676: 17x13 1436: +#1065 @ 249,603: 18x21 1437: +#1066 @ 507,159: 29x29 1438: +#1067 @ 846,490: 25x17 1439: +#1068 @ 131,672: 28x18 1440: +#1069 @ 153,487: 22x13 1441: +#1070 @ 713,426: 10x14 1442: +#1071 @ 334,584: 23x28 1443: +#1072 @ 721,228: 25x14 1444: +#1073 @ 591,142: 16x18 1445: +#1074 @ 236,359: 17x21 1446: +#1075 @ 490,939: 12x27 1447: +#1076 @ 643,139: 4x4 1448: +#1077 @ 915,599: 19x15 1449: +#1078 @ 237,278: 10x23 1450: +#1079 @ 124,444: 21x29 1451: +#1080 @ 663,415: 17x10 1452: +#1081 @ 954,599: 20x16 1453: +#1082 @ 584,450: 24x16 1454: +#1083 @ 974,918: 18x24 1455: +#1084 @ 202,931: 12x27 1456: +#1085 @ 502,921: 16x17 1457: +#1086 @ 231,720: 13x14 1458: +#1087 @ 665,135: 17x24 1459: +#1088 @ 962,217: 10x18 1460: +#1089 @ 164,886: 22x16 1461: +#1090 @ 128,239: 14x24 1462: +#1091 @ 361,439: 28x23 1463: +#1092 @ 363,413: 13x11 1464: +#1093 @ 448,701: 18x25 1465: +#1094 @ 413,235: 24x19 1466: +#1095 @ 47,180: 11x25 1467: +#1096 @ 615,515: 13x18 1468: +#1097 @ 188,690: 18x13 1469: +#1098 @ 399,66: 25x25 1470: +#1099 @ 96,698: 18x23 1471: +#1100 @ 940,174: 13x27 1472: +#1101 @ 319,508: 18x21 1473: +#1102 @ 122,539: 5x17 1474: +#1103 @ 620,222: 11x21 1475: +#1104 @ 245,214: 22x15 1476: +#1105 @ 432,28: 27x17 1477: +#1106 @ 844,284: 26x12 1478: +#1107 @ 268,490: 29x23 1479: +#1108 @ 186,463: 27x16 1480: +#1109 @ 338,26: 12x13 1481: +#1110 @ 191,467: 10x24 1482: +#1111 @ 1,840: 16x20 1483: +#1112 @ 635,503: 12x12 1484: +#1113 @ 463,344: 10x18 1485: +#1114 @ 830,188: 18x17 1486: +#1115 @ 268,57: 21x16 1487: +#1116 @ 681,464: 27x13 1488: +#1117 @ 133,657: 17x23 1489: +#1118 @ 200,859: 23x27 1490: +#1119 @ 740,421: 12x19 1491: +#1120 @ 33,104: 13x14 1492: +#1121 @ 167,642: 22x11 1493: +#1122 @ 711,303: 19x20 1494: +#1123 @ 704,860: 10x19 1495: +#1124 @ 377,635: 24x17 1496: +#1125 @ 425,858: 18x25 1497: +#1126 @ 352,417: 18x18 1498: +#1127 @ 200,365: 13x13 1499: +#1128 @ 785,831: 14x25 1500: +#1129 @ 330,960: 21x25 1501: +#1130 @ 232,214: 14x29 1502: +#1131 @ 914,984: 16x13 1503: +#1132 @ 485,705: 21x11 1504: +#1133 @ 907,987: 20x13 1505: +#1134 @ 171,369: 19x22 1506: +#1135 @ 916,518: 26x15 1507: +#1136 @ 279,275: 22x11 1508: +#1137 @ 361,172: 17x23 1509: +#1138 @ 955,668: 28x19 1510: +#1139 @ 855,282: 29x19 1511: +#1140 @ 442,666: 17x18 1512: +#1141 @ 41,59: 18x24 1513: +#1142 @ 260,792: 23x27 1514: +#1143 @ 652,383: 12x20 1515: +#1144 @ 571,454: 26x28 1516: +#1145 @ 295,434: 16x10 1517: +#1146 @ 744,906: 25x11 1518: +#1147 @ 894,499: 27x15 1519: +#1148 @ 678,694: 19x19 1520: +#1149 @ 215,855: 22x25 1521: +#1150 @ 224,265: 27x25 1522: +#1151 @ 812,657: 11x29 1523: +#1152 @ 251,519: 15x28 1524: +#1153 @ 300,627: 28x28 1525: +#1154 @ 832,651: 15x21 1526: +#1155 @ 682,675: 28x21 1527: +#1156 @ 248,929: 21x10 1528: +#1157 @ 151,529: 15x27 1529: +#1158 @ 243,844: 25x13 1530: +#1159 @ 415,538: 12x16 1531: +#1160 @ 590,151: 29x23 1532: +#1161 @ 132,214: 17x14 1533: +#1162 @ 240,675: 16x23 1534: +#1163 @ 962,24: 28x26 1535: +#1164 @ 598,571: 25x22 1536: +#1165 @ 544,478: 21x22 1537: +#1166 @ 701,529: 15x25 1538: +#1167 @ 245,49: 26x29 1539: +#1168 @ 641,415: 29x26 1540: +#1169 @ 134,394: 26x21 1541: +#1170 @ 671,363: 20x29 1542: +#1171 @ 715,434: 15x28 1543: +#1172 @ 628,721: 21x27 1544: +#1173 @ 175,767: 27x29 1545: +#1174 @ 790,515: 21x14 1546: +#1175 @ 320,714: 17x27 1547: +#1176 @ 807,143: 14x26 1548: +#1177 @ 487,238: 16x19 1549: +#1178 @ 397,913: 15x19 1550: +#1179 @ 3,574: 26x28 1551: +#1180 @ 961,106: 23x17 1552: +#1181 @ 497,921: 16x27 1553: +#1182 @ 471,331: 28x16 1554: +#1183 @ 115,319: 23x25 1555: +#1184 @ 316,291: 14x26 1556: +#1185 @ 321,861: 14x12 1557: +#1186 @ 64,362: 29x12 1558: +#1187 @ 412,639: 22x16 1559: +#1188 @ 549,105: 25x21 1560: +#1189 @ 756,727: 15x11 1561: +#1190 @ 929,702: 29x25 1562: +#1191 @ 946,507: 17x11 1563: +#1192 @ 446,73: 20x27 1564: +#1193 @ 937,334: 24x10 1565: +#1194 @ 121,121: 20x12 1566: +#1195 @ 258,241: 26x23 1567: +#1196 @ 555,474: 12x10 1568: +#1197 @ 886,26: 22x12 1569: +#1198 @ 356,501: 23x18 1570: +#1199 @ 343,304: 17x11 1571: +#1200 @ 776,19: 11x14 1572: +#1201 @ 475,318: 10x14 1573: +#1202 @ 923,108: 25x11 1574: +#1203 @ 240,641: 25x26 1575: +#1204 @ 793,839: 18x11 1576: +#1205 @ 737,874: 17x22 1577: +#1206 @ 728,323: 24x13 1578: +#1207 @ 128,560: 11x23 1579: +#1208 @ 129,112: 22x24 1580: +#1209 @ 592,544: 18x12 1581: +#1210 @ 971,491: 10x25 1582: +#1211 @ 352,13: 26x20 1583: +#1212 @ 237,547: 12x14 1584: +#1213 @ 670,312: 10x24 1585: +#1214 @ 488,194: 14x29 1586: +#1215 @ 792,687: 26x26 1587: +#1216 @ 240,727: 17x17 1588: +#1217 @ 419,71: 10x22 1589: +#1218 @ 398,161: 23x20 1590: +#1219 @ 218,352: 22x13 1591: +#1220 @ 312,272: 15x29 1592: +#1221 @ 759,458: 21x23 1593: +#1222 @ 588,579: 17x14 1594: +#1223 @ 809,131: 14x11 1595: +#1224 @ 618,702: 27x16 1596: +#1225 @ 495,724: 6x18 1597: +#1226 @ 130,955: 12x10 1598: +#1227 @ 830,85: 13x22 1599: +#1228 @ 864,108: 19x20 1600: +#1229 @ 650,836: 23x17 1601: +#1230 @ 634,770: 23x10 1602: +#1231 @ 815,821: 17x24 1603: +#1232 @ 974,396: 11x13 1604: +#1233 @ 277,792: 23x22 1605: +#1234 @ 355,935: 26x10 1606: +#1235 @ 971,18: 19x17 1607: +#1236 @ 174,955: 15x23 1608: +#1237 @ 76,697: 24x25 1609: +#1238 @ 336,421: 19x20 1610: +#1239 @ 108,402: 23x12 1611: +#1240 @ 724,407: 28x19 1612: +#1241 @ 222,274: 24x15 1613: +#1242 @ 900,330: 20x15 1614: +#1243 @ 650,853: 13x10 1615: +#1244 @ 987,903: 12x14 1616: +#1245 @ 225,826: 15x17 1617: +#1246 @ 399,926: 26x20 1618: +#1247 @ 318,625: 10x21 1619: +#1248 @ 503,167: 21x11 1620: +#1249 @ 176,120: 19x13 1621: +#1250 @ 679,440: 15x29 1622: +#1251 @ 70,187: 12x23 1623: +#1252 @ 348,957: 21x16 1624: +#1253 @ 253,265: 13x18 1625: +#1254 @ 691,893: 24x17 1626: +#1255 @ 485,605: 16x11 1627: +#1256 @ 173,857: 22x17 1628: +#1257 @ 933,855: 13x23 1629: +#1258 @ 523,25: 24x24 1630: +#1259 @ 567,491: 21x12 1631: +#1260 @ 787,972: 21x10 1632: +#1261 @ 85,823: 28x25 1633: +#1262 @ 431,810: 23x24 1634: +#1263 @ 258,71: 15x14 1635: +#1264 @ 330,26: 24x20 1636: +#1265 @ 385,180: 29x15 1637: +#1266 @ 149,624: 26x15 1638: +#1267 @ 949,564: 25x16 1639: +#1268 @ 257,900: 25x14 1640: +#1269 @ 638,46: 14x19 1641: +#1270 @ 711,537: 12x14 1642: +#1271 @ 418,285: 12x19 1643: +#1272 @ 477,191: 18x22 1644: +#1273 @ 0,826: 20x16 1645: +#1274 @ 681,790: 22x25 1646: +#1275 @ 214,28: 27x29 1647: +#1276 @ 646,539: 15x22 1648: +#1277 @ 651,49: 14x14 1649: +#1278 @ 641,209: 15x5 1650: +#1279 @ 792,710: 27x25 1651: +#1280 @ 515,859: 24x17 1652: +#1281 @ 888,541: 19x29 1653: +#1282 @ 977,504: 17x16 1654: +#1283 @ 553,394: 27x21 1655: +#1284 @ 951,507: 20x26 1656: +#1285 @ 429,871: 21x24