diff --git a/README.md b/README.md index 04bc27b..74bdca9 100644 --- a/README.md +++ b/README.md @@ -246,8 +246,14 @@ The stroke output is independent of the color artwork pixels. The revision's mode; `--output-dir` selects a fresh destination. `--views` uses the existing `texture-views` job's triangle ownership, seam margin and per-view page sizes. The command writes PNG/SVG/PDF, resolved settings and a hash manifest. -The projected-cell ratios do not guarantee a 0.2 mm physical stroke width; -measure the production SVG before manufacturing. +It also writes `stroke_texture_production_report.json`: per-view stroke and +vector-fragment counts, minimum/median/maximum printed width and length in mm, +the number of strokes below the 0.2 mm width target, and an estimated black +area ratio. One visible camera cell counts as one stroke even when UV triangles +split its SVG outline. Width and length are the short and long sides of the +minimum-area rectangle around the emitted fragments on the print page. This +envelope does not certify the narrowest local feature or guarantee 0.2 mm +manufacturing width; inspect the production SVG before manufacturing. ## Inspect printability (advisory) diff --git a/blender/scripts/camera_grid_stroke.py b/blender/scripts/camera_grid_stroke.py index 51f50a5..fef0901 100644 --- a/blender/scripts/camera_grid_stroke.py +++ b/blender/scripts/camera_grid_stroke.py @@ -24,12 +24,14 @@ from random_patch_dd02c import ( _prepare_mesh_object, _require_object, _require_uv_layer, + clip_polygon_to_page, fill_background, fill_polygon, save_png_image, write_pdf_vector, write_svg_vector, ) +from stroke_production_report import summarize_view, write_report MODE = "camera_grid_capsules" DEFAULT_PARAMS = { @@ -64,8 +66,8 @@ def _pixel_polygon(uv_polygon, width, height): def render_stroke_polygons(uv_name, mesh, strokes, width, height, vector, - base): - """Write the shared raster and vector artwork from UV polygons.""" + base, view_id=None): + """Write artwork and measure the same page-clipped vector polygons.""" image_name = f"CameraGridStroke_{uv_name}" if image_name in bpy.data.images: bpy.data.images.remove(bpy.data.images[image_name]) @@ -79,11 +81,13 @@ def render_stroke_polygons(uv_name, mesh, strokes, width, height, vector, fill_polygon(None, pixels, width, height, poly, (1, 1, 1, 1)) shapes = [] - for polygon in strokes: + labelled_shapes = [] + for i, j, polygon in strokes: pixel_poly = _pixel_polygon(polygon, width, height) if len(pixel_poly) < 3: continue shapes.append((pixel_poly, (0, 0, 0, 1))) + labelled_shapes.append((i, j, pixel_poly)) fill_polygon(None, pixels, width, height, pixel_poly, (0, 0, 0, 1)) image.pixels[:] = pixels @@ -99,6 +103,16 @@ def render_stroke_polygons(uv_name, mesh, strokes, width, height, vector, page_mesh, page_shapes, [], (0, 0, 0, 1), artwork_label="stroke") print(f"{uv_name}: {len(shapes)} projected stroke fragments") + report_shapes = [ + (i, j, [(round(x, 4), round(y, 4)) for x, y in clipped]) + for i, j, polygon in labelled_shapes + if (clipped := clip_polygon_to_page(polygon, width, height)) + ] + return summarize_view( + view_id or uv_name, uv_name, report_shapes, page_mesh, + (width, height), (vector["width_mm"], vector["height_mm"]), + base.with_suffix(".svg"), + ) def _render(uv_name, geometry, settings, output_dir, width_ratio, length_ratio, @@ -113,13 +127,14 @@ def _render(uv_name, geometry, settings, output_dir, width_ratio, length_ratio, outline_cache[key] = capsule_in_cell( i, j, nx, ny, seed, width_ratio, length_ratio, angle=None if angle_map is None else float(angle_map[j, i])) - strokes.append(projected_stroke_uv(fragment, loop_uvs, outline_cache[key])) + strokes.append((i, j, projected_stroke_uv(fragment, loop_uvs, outline_cache[key]))) label = artifact_prefix if angle_map is not None and artifact_prefix == "camera_grid_stroke": label += "_optimized" base = output_dir / f"{label}_{uv_name}" - render_stroke_polygons(uv_name, geometry["mesh"], strokes, - settings["width"], settings["height"], settings["vector"], base) + return render_stroke_polygons(uv_name, geometry["mesh"], strokes, + settings["width"], settings["height"], settings["vector"], + base) def main(): @@ -164,10 +179,14 @@ def main(): names, settings["nx"], settings["ny"], settings["edge_sample_grid"], capture_camera_fragments=True, ) + views = [] for name in names: - _render(name, geometry[name], settings, args.output_dir, - params["width_ratio"], params["length_ratio"], angle_map, - args.artifact_prefix) + views.append(_render(name, geometry[name], settings, args.output_dir, + params["width_ratio"], params["length_ratio"], angle_map, + args.artifact_prefix)) + report_path = args.output_dir / f"{args.artifact_prefix}_production_report.json" + write_report(report_path, args.job.resolve(), params, views) + print(f"Stroke production report: {report_path}") if __name__ == "__main__": diff --git a/blender/scripts/random_patch_multiview.py b/blender/scripts/random_patch_multiview.py index d1e13e9..9037c1b 100644 --- a/blender/scripts/random_patch_multiview.py +++ b/blender/scripts/random_patch_multiview.py @@ -57,6 +57,8 @@ from camera_grid_stroke import DEFAULT_PARAMS as STROKE_DEFAULT_PARAMS # noqa: from camera_grid_stroke import render_stroke_polygons # noqa: E402 from camera_grid_stroke_geometry import capsule_in_cell, projected_stroke_uv # noqa: E402 from camera_grid_stroke_optimizer import optimize_angles # noqa: E402 +from stroke_production_report import REPORT_FILENAME as STROKE_REPORT_FILENAME # noqa: E402 +from stroke_production_report import write_report as write_stroke_report # noqa: E402 from texture_merge import ( # noqa: E402 MergeConfigError, MergePolicy, @@ -966,6 +968,7 @@ def main() -> int: # ---- 5. Emit: mask each layout to its owned triangles --------------------------- emitted_stats: dict[str, dict[str, Any]] = {} + stroke_views = [] for pair, region_cam, _pattern_cam, uv_layer in resolved: pair_id = pair["id"] uv_map = pair["uv_map"] @@ -1191,12 +1194,13 @@ def main() -> int: geometry=filtered, ) else: - render_stroke_polygons( - uv_map, base_layer, [poly for _, _, poly in emitted_patches], + stroke_views.append(render_stroke_polygons( + uv_map, base_layer, emitted_patches, texture_width, texture_height, {"width_mm": page_width_mm, "height_mm": page_height_mm}, Path(pair["artifacts"]["png"]).with_suffix(""), - ) + view_id=pair_id, + )) except Exception as exc: # noqa: BLE001 print( f"ERROR: texture generation failed for view {pair_id!r}: {exc}", @@ -1407,6 +1411,12 @@ def main() -> int: _write_ground_truth(truth_path, truth) detail(f" ground truth -> {truth_path}") + if stroke_params is not None: + stroke_report_path = truth_path.parent / STROKE_REPORT_FILENAME + write_stroke_report(stroke_report_path, args.job.resolve(), stroke_params, + stroke_views) + report(f"stroke production report -> {stroke_report_path}") + # The artifact inventory is owned by the HOST, which is the only side that can verify the # files exist and are non-empty. Repeating it here was 11 of the run's lines printed twice. detail(f"Completed in {time.time() - start_time:.2f} seconds.") diff --git a/blender/scripts/stroke_production_report.py b/blender/scripts/stroke_production_report.py new file mode 100644 index 0000000..b12973c --- /dev/null +++ b/blender/scripts/stroke_production_report.py @@ -0,0 +1,171 @@ +"""Measure final camera-grid stroke polygons on their physical print pages. + +One camera cell is one intended mark. Projection, UV triangles, view ownership and +seam clipping can split it into many vector polygons; this module groups those +pieces before measuring a mark's planar envelope. +""" + +from __future__ import annotations + +import hashlib +import json +import math +from collections import defaultdict +from pathlib import Path + +REPORT_SCHEMA = "orisys-sensor-design/stroke-production-report-v1" +REPORT_FILENAME = "stroke_texture_production_report.json" +WIDTH_TARGET_MM = 0.2 + + +def _area(points): + return abs(sum(x * points[(k + 1) % len(points)][1] + - points[(k + 1) % len(points)][0] * y + for k, (x, y) in enumerate(points))) / 2 + + +def _hull(points): + unique = sorted(set(points)) + if len(unique) < 3: + return unique + + def cross(a, b, c): + return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]) + + lower = [] + for point in unique: + while len(lower) >= 2 and cross(lower[-2], lower[-1], point) <= 0: + lower.pop() + lower.append(point) + upper = [] + for point in reversed(unique): + while len(upper) >= 2 and cross(upper[-2], upper[-1], point) <= 0: + upper.pop() + upper.append(point) + return lower[:-1] + upper[:-1] + + +def _envelope(points): + """Short and long sides of the minimum-area rotated rectangle in mm.""" + hull = _hull(points) + if len(hull) < 3: + return (0.0, math.dist(*hull) if len(hull) == 2 else 0.0) + best = None + for a, b in zip(hull, hull[1:] + hull[:1]): + dx, dy = b[0] - a[0], b[1] - a[1] + edge = math.hypot(dx, dy) + if edge == 0: + continue + ux, uy = dx / edge, dy / edge + along = [x * ux + y * uy for x, y in hull] + across = [-x * uy + y * ux for x, y in hull] + side_a = max(along) - min(along) + side_b = max(across) - min(across) + candidate = (side_a * side_b, min(side_a, side_b), max(side_a, side_b)) + if best is None or candidate < best: + best = candidate + return best[1:] + + +def _stats(values): + if not values: + return {"min": None, "p5": None, "median": None, "p95": None, "max": None} + ordered = sorted(values) + + def percentile(fraction): + position = (len(ordered) - 1) * fraction + lo = math.floor(position) + hi = math.ceil(position) + return ordered[lo] + (ordered[hi] - ordered[lo]) * (position - lo) + + return {"min": round(ordered[0], 6), "p5": round(percentile(0.05), 6), + "median": round(percentile(0.5), 6), "p95": round(percentile(0.95), 6), + "max": round(ordered[-1], 6)} + + +def summarize_view(view_id, uv_map, polygons, mesh_polygons, raster, page_mm, svg_path): + """Measure page-clipped pixel polygons labelled with their source camera cell.""" + width_px, height_px = raster + width_mm, height_mm = page_mm + sx, sy = width_mm / width_px, height_mm / height_px + cells = defaultdict(lambda: {"points": [], "fragments": 0}) + ink_area = 0.0 + fragment_count = 0 + for i, j, polygon in polygons: + if len(polygon) < 3: + continue + scaled = [(x * sx, y * sy) for x, y in polygon] + area = _area(scaled) + if area <= 0: + continue + item = cells[(i, j)] + item["points"].extend(scaled) + item["fragments"] += 1 + fragment_count += 1 + ink_area += area + marks = [] + for (i, j), item in cells.items(): + width, length = _envelope(item["points"]) + marks.append({"cell": [i, j], "width_mm": width, "length_mm": length, + "fragments": item["fragments"]}) + marks.sort(key=lambda item: (item["width_mm"], item["cell"])) + base_area = sum(_area([(x * sx, y * sy) for x, y in polygon]) + for polygon in mesh_polygons if len(polygon) >= 3) + return { + "id": view_id, + "uv_map": uv_map, + "svg": {"path": str(svg_path), + "sha256": hashlib.sha256(Path(svg_path).read_bytes()).hexdigest()}, + "page_mm": [width_mm, height_mm], + "raster_px": [width_px, height_px], + "stroke_count": len(marks), + "vector_fragment_count": fragment_count, + "width_mm": _stats([mark["width_mm"] for mark in marks]), + "length_mm": _stats([mark["length_mm"] for mark in marks]), + "width_below_target_count": sum( + mark["width_mm"] < WIDTH_TARGET_MM - 1e-9 for mark in marks + ), + "smallest_width_strokes": [ + {**mark, "width_mm": round(mark["width_mm"], 6), + "length_mm": round(mark["length_mm"], 6)} for mark in marks[:10] + ], + "camera_cells": [mark["cell"] for mark in sorted(marks, key=lambda m: m["cell"])], + "summed_black_polygon_area_mm2": round(ink_area, 6), + "summed_white_base_area_mm2": round(base_area, 6), + "black_to_base_area_ratio_estimate": ( + round(ink_area / base_area, 6) if base_area > 0 else None + ), + } + + +def write_report(path, source_job, parameters, views): + """Write one report with distinct per-view and cross-view stroke counts.""" + counts = defaultdict(int) + for view in views: + for cell in view["camera_cells"]: + counts[tuple(cell)] += 1 + job = json.loads(Path(source_job).read_text(encoding="utf-8")) + nx, ny = job["settings"]["nx"], job["settings"]["ny"] + report = { + "schema": REPORT_SCHEMA, + "units": {"width": "mm", "length": "mm", "area": "mm2"}, + "measurement_method": ( + "Each visible camera cell is one stroke per view. SVG-bound polygons are clipped " + "to the print page, grouped by camera cell, then measured as the short and long " + "sides of their minimum-area rotated convex-hull rectangle. These are planar " + "envelope dimensions, not a guarantee of minimum local feature width. Summed " + "polygon areas may double-count overlaps and are only an occupancy estimate." + ), + "width_target_mm": WIDTH_TARGET_MM, + "source_job": {"path": str(source_job), + "sha256": hashlib.sha256(Path(source_job).read_bytes()).hexdigest()}, + "parameters": dict(parameters), + "camera_grid": [nx, ny], + "grid_cell_count": nx * ny, + "total_view_strokes": sum(view["stroke_count"] for view in views), + "unique_camera_cell_count": len(counts), + "cells_in_multiple_views": sum(n > 1 for n in counts.values()), + "views": views, + } + Path(path).write_text(json.dumps(report, indent=2) + "\n", encoding="utf-8") + return report diff --git a/build/textures/finger-xynova/r01/strokes-views/stroke_texture_manifest.json b/build/textures/finger-xynova/r01/strokes-views/stroke_texture_manifest.json index 0ac007c..453ae04 100644 --- a/build/textures/finger-xynova/r01/strokes-views/stroke_texture_manifest.json +++ b/build/textures/finger-xynova/r01/strokes-views/stroke_texture_manifest.json @@ -72,6 +72,10 @@ "_print_views.json": { "path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes-views\\_print_views.json", "sha256": "abd5938d35fc8863b91753b2915fb5b39d261f0920286ef3eca2cc4e6a6c89bf" + }, + "stroke_texture_production_report.json": { + "path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes-views\\stroke_texture_production_report.json", + "sha256": "d4286f0b1f446755a623aea297a34c470d4d87c92e2e4a79dc63e162009e08a9" } } } diff --git a/build/textures/finger-xynova/r01/strokes-views/stroke_texture_production_report.json b/build/textures/finger-xynova/r01/strokes-views/stroke_texture_production_report.json new file mode 100644 index 0000000..c71104d --- /dev/null +++ b/build/textures/finger-xynova/r01/strokes-views/stroke_texture_production_report.json @@ -0,0 +1,11335 @@ +{ + "schema": "orisys-sensor-design/stroke-production-report-v1", + "units": { + "width": "mm", + "length": "mm", + "area": "mm2" + }, + "measurement_method": "Each visible camera cell is one stroke per view. SVG-bound polygons are clipped to the print page, grouped by camera cell, then measured as the short and long sides of their minimum-area rotated convex-hull rectangle. These are planar envelope dimensions, not a guarantee of minimum local feature width. Summed polygon areas may double-count overlaps and are only an occupancy estimate.", + "width_target_mm": 0.2, + "source_job": { + "path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\_texture_views_job.json", + "sha256": "7259df462de85a86ec575a6296592bf78c008d44ae531d7efd233118686b194f" + }, + "parameters": { + "length_ratio": 0.84, + "orientation_mode": "random", + "proposals": 100000, + "seed": 7, + "width_ratio": 0.42 + }, + "camera_grid": [ + 80, + 80 + ], + "grid_cell_count": 6400, + "total_view_strokes": 2761, + "unique_camera_cell_count": 2761, + "cells_in_multiple_views": 0, + "views": [ + { + "id": "uv_1", + "uv_map": "uv_1", + "svg": { + "path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes-views\\stroke_texture_uv_1.svg", + "sha256": "392363d18ff980e3f698ebb2e745a0f0e5efa3870c9af966671b19d39831420e" + }, + "page_mm": [ + 17.67, + 23.565 + ], + "raster_px": [ + 3534, + 4713 + ], + "stroke_count": 1380, + "vector_fragment_count": 8292, + "width_mm": { + "min": 0.000602, + "p5": 0.043178, + "median": 0.141725, + "p95": 0.285637, + "max": 0.331894 + }, + "length_mm": { + "min": 0.026079, + "p5": 0.141389, + "median": 0.319669, + "p95": 0.578502, + "max": 0.667463 + }, + "width_below_target_count": 997, + "smallest_width_strokes": [ + { + "cell": [ + 0, + 36 + ], + "width_mm": 0.000602, + "length_mm": 0.026079, + "fragments": 1 + }, + { + "cell": [ + 0, + 35 + ], + "width_mm": 0.001795, + "length_mm": 0.044544, + "fragments": 1 + }, + { + "cell": [ + 4, + 47 + ], + "width_mm": 0.002203, + "length_mm": 0.027735, + "fragments": 1 + }, + { + "cell": [ + 1, + 22 + ], + "width_mm": 0.003522, + "length_mm": 0.050572, + "fragments": 4 + }, + { + "cell": [ + 0, + 34 + ], + "width_mm": 0.003803, + "length_mm": 0.061604, + "fragments": 1 + }, + { + "cell": [ + 0, + 39 + ], + "width_mm": 0.004067, + "length_mm": 0.114878, + "fragments": 1 + }, + { + "cell": [ + 38, + 65 + ], + "width_mm": 0.005448, + "length_mm": 0.076207, + "fragments": 4 + }, + { + "cell": [ + 0, + 41 + ], + "width_mm": 0.008027, + "length_mm": 0.156737, + "fragments": 2 + }, + { + "cell": [ + 11, + 22 + ], + "width_mm": 0.008732, + "length_mm": 0.065523, + "fragments": 1 + }, + { + "cell": [ + 9, + 22 + ], + "width_mm": 0.00958, + "length_mm": 0.065798, + "fragments": 1 + } + ], + "camera_cells": [ + [ + 0, + 34 + ], + [ + 0, + 35 + ], + [ + 0, + 36 + ], + [ + 0, + 37 + ], + [ + 0, + 38 + ], + [ + 0, + 39 + ], + [ + 0, + 40 + ], + [ + 0, + 41 + ], + [ + 0, + 42 + ], + [ + 0, + 43 + ], + [ + 1, + 22 + ], + [ + 1, + 23 + ], + [ + 1, + 24 + ], + [ + 1, + 25 + ], + [ + 1, + 26 + ], + [ + 1, + 27 + ], + [ + 1, + 28 + ], + [ + 1, + 29 + ], + [ + 1, + 30 + ], + [ + 1, + 31 + ], + [ + 1, + 32 + ], + [ + 1, + 33 + ], + [ + 1, + 34 + ], + [ + 1, + 35 + ], + [ + 1, + 36 + ], + [ + 1, + 37 + ], + [ + 1, + 38 + ], + [ + 1, + 39 + ], + [ + 1, + 40 + ], + [ + 1, + 41 + ], + [ + 1, + 42 + ], + [ + 1, + 43 + ], + [ + 1, + 44 + ], + [ + 2, + 22 + ], + [ + 2, + 23 + ], + [ + 2, + 24 + ], + [ + 2, + 25 + ], + [ + 2, + 26 + ], + [ + 2, + 27 + ], + [ + 2, + 28 + ], + [ + 2, + 29 + ], + [ + 2, + 30 + ], + [ + 2, + 31 + ], + [ + 2, + 32 + ], + [ + 2, + 33 + ], + [ + 2, + 34 + ], + [ + 2, + 35 + ], + [ + 2, + 36 + ], + [ + 2, + 37 + ], + [ + 2, + 38 + ], + [ + 2, + 39 + ], + [ + 2, + 40 + ], + [ + 2, + 41 + ], + [ + 2, + 42 + ], + [ + 2, + 43 + ], + [ + 2, + 44 + ], + [ + 2, + 45 + ], + [ + 3, + 22 + ], + [ + 3, + 23 + ], + [ + 3, + 24 + ], + [ + 3, + 25 + ], + [ + 3, + 26 + ], + [ + 3, + 27 + ], + [ + 3, + 28 + ], + [ + 3, + 29 + ], + [ + 3, + 30 + ], + [ + 3, + 31 + ], + [ + 3, + 32 + ], + [ + 3, + 33 + ], + [ + 3, + 34 + ], + [ + 3, + 35 + ], + [ + 3, + 36 + ], + [ + 3, + 37 + ], + [ + 3, + 38 + ], + [ + 3, + 39 + ], + [ + 3, + 40 + ], + [ + 3, + 41 + ], + [ + 3, + 42 + ], + [ + 3, + 43 + ], + [ + 3, + 44 + ], + [ + 3, + 45 + ], + [ + 3, + 46 + ], + [ + 4, + 22 + ], + [ + 4, + 23 + ], + [ + 4, + 24 + ], + [ + 4, + 25 + ], + [ + 4, + 26 + ], + [ + 4, + 27 + ], + [ + 4, + 28 + ], + [ + 4, + 29 + ], + [ + 4, + 30 + ], + [ + 4, + 31 + ], + [ + 4, + 32 + ], + [ + 4, + 33 + ], + [ + 4, + 34 + ], + [ + 4, + 35 + ], + [ + 4, + 36 + ], + [ + 4, + 37 + ], + [ + 4, + 38 + ], + [ + 4, + 39 + ], + [ + 4, + 40 + ], + [ + 4, + 41 + ], + [ + 4, + 42 + ], + [ + 4, + 43 + ], + [ + 4, + 44 + ], + [ + 4, + 45 + ], + [ + 4, + 46 + ], + [ + 4, + 47 + ], + [ + 5, + 22 + ], + [ + 5, + 23 + ], + [ + 5, + 24 + ], + [ + 5, + 25 + ], + [ + 5, + 26 + ], + [ + 5, + 27 + ], + [ + 5, + 28 + ], + [ + 5, + 29 + ], + [ + 5, + 30 + ], + [ + 5, + 31 + ], + [ + 5, + 32 + ], + [ + 5, + 33 + ], + [ + 5, + 34 + ], + [ + 5, + 35 + ], + [ + 5, + 36 + ], + [ + 5, + 37 + ], + [ + 5, + 38 + ], + [ + 5, + 39 + ], + [ + 5, + 40 + ], + [ + 5, + 41 + ], + [ + 5, + 42 + ], + [ + 5, + 43 + ], + [ + 5, + 44 + ], + [ + 5, + 45 + ], + [ + 5, + 46 + ], + [ + 5, + 47 + ], + [ + 6, + 22 + ], + [ + 6, + 23 + ], + [ + 6, + 24 + ], + [ + 6, + 25 + ], + [ + 6, + 26 + ], + [ + 6, + 27 + ], + [ + 6, + 28 + ], + [ + 6, + 29 + ], + [ + 6, + 30 + ], + [ + 6, + 31 + ], + [ + 6, + 32 + ], + [ + 6, + 33 + ], + [ + 6, + 34 + ], + [ + 6, + 35 + ], + [ + 6, + 36 + ], + [ + 6, + 37 + ], + [ + 6, + 38 + ], + [ + 6, + 39 + ], + [ + 6, + 40 + ], + [ + 6, + 41 + ], + [ + 6, + 42 + ], + [ + 6, + 43 + ], + [ + 6, + 44 + ], + [ + 6, + 45 + ], + [ + 6, + 46 + ], + [ + 6, + 47 + ], + [ + 6, + 48 + ], + [ + 7, + 22 + ], + [ + 7, + 23 + ], + [ + 7, + 24 + ], + [ + 7, + 25 + ], + [ + 7, + 26 + ], + [ + 7, + 27 + ], + [ + 7, + 28 + ], + [ + 7, + 29 + ], + [ + 7, + 30 + ], + [ + 7, + 31 + ], + [ + 7, + 32 + ], + [ + 7, + 33 + ], + [ + 7, + 34 + ], + [ + 7, + 35 + ], + [ + 7, + 36 + ], + [ + 7, + 37 + ], + [ + 7, + 38 + ], + [ + 7, + 39 + ], + [ + 7, + 40 + ], + [ + 7, + 41 + ], + [ + 7, + 42 + ], + [ + 7, + 43 + ], + [ + 7, + 44 + ], + [ + 7, + 45 + ], + [ + 7, + 46 + ], + [ + 7, + 47 + ], + [ + 7, + 48 + ], + [ + 7, + 49 + ], + [ + 8, + 22 + ], + [ + 8, + 23 + ], + [ + 8, + 24 + ], + [ + 8, + 25 + ], + [ + 8, + 26 + ], + [ + 8, + 27 + ], + [ + 8, + 28 + ], + [ + 8, + 29 + ], + [ + 8, + 30 + ], + [ + 8, + 31 + ], + [ + 8, + 32 + ], + [ + 8, + 33 + ], + [ + 8, + 34 + ], + [ + 8, + 35 + ], + [ + 8, + 36 + ], + [ + 8, + 37 + ], + [ + 8, + 38 + ], + [ + 8, + 39 + ], + [ + 8, + 40 + ], + [ + 8, + 41 + ], + [ + 8, + 42 + ], + [ + 8, + 43 + ], + [ + 8, + 44 + ], + [ + 8, + 45 + ], + [ + 8, + 46 + ], + [ + 8, + 47 + ], + [ + 8, + 48 + ], + [ + 8, + 49 + ], + [ + 8, + 50 + ], + [ + 9, + 22 + ], + [ + 9, + 23 + ], + [ + 9, + 24 + ], + [ + 9, + 25 + ], + [ + 9, + 26 + ], + [ + 9, + 27 + ], + [ + 9, + 28 + ], + [ + 9, + 29 + ], + [ + 9, + 30 + ], + [ + 9, + 31 + ], + [ + 9, + 32 + ], + [ + 9, + 33 + ], + [ + 9, + 34 + ], + [ + 9, + 35 + ], + [ + 9, + 36 + ], + [ + 9, + 37 + ], + [ + 9, + 38 + ], + [ + 9, + 39 + ], + [ + 9, + 40 + ], + [ + 9, + 41 + ], + [ + 9, + 42 + ], + [ + 9, + 43 + ], + [ + 9, + 44 + ], + [ + 9, + 45 + ], + [ + 9, + 46 + ], + [ + 9, + 47 + ], + [ + 9, + 48 + ], + [ + 9, + 49 + ], + [ + 9, + 50 + ], + [ + 10, + 22 + ], + [ + 10, + 23 + ], + [ + 10, + 24 + ], + [ + 10, + 25 + ], + [ + 10, + 26 + ], + [ + 10, + 27 + ], + [ + 10, + 28 + ], + [ + 10, + 29 + ], + [ + 10, + 30 + ], + [ + 10, + 31 + ], + [ + 10, + 32 + ], + [ + 10, + 33 + ], + [ + 10, + 34 + ], + [ + 10, + 35 + ], + [ + 10, + 36 + ], + [ + 10, + 37 + ], + [ + 10, + 38 + ], + [ + 10, + 39 + ], + [ + 10, + 40 + ], + [ + 10, + 41 + ], + [ + 10, + 42 + ], + [ + 10, + 43 + ], + [ + 10, + 44 + ], + [ + 10, + 45 + ], + [ + 10, + 46 + ], + [ + 10, + 47 + ], + [ + 10, + 48 + ], + [ + 10, + 49 + ], + [ + 10, + 50 + ], + [ + 10, + 51 + ], + [ + 11, + 22 + ], + [ + 11, + 23 + ], + [ + 11, + 24 + ], + [ + 11, + 25 + ], + [ + 11, + 26 + ], + [ + 11, + 27 + ], + [ + 11, + 28 + ], + [ + 11, + 29 + ], + [ + 11, + 30 + ], + [ + 11, + 31 + ], + [ + 11, + 32 + ], + [ + 11, + 33 + ], + [ + 11, + 34 + ], + [ + 11, + 35 + ], + [ + 11, + 36 + ], + [ + 11, + 37 + ], + [ + 11, + 38 + ], + [ + 11, + 39 + ], + [ + 11, + 40 + ], + [ + 11, + 41 + ], + [ + 11, + 42 + ], + [ + 11, + 43 + ], + [ + 11, + 44 + ], + [ + 11, + 45 + ], + [ + 11, + 46 + ], + [ + 11, + 47 + ], + [ + 11, + 48 + ], + [ + 11, + 49 + ], + [ + 11, + 50 + ], + [ + 11, + 51 + ], + [ + 11, + 52 + ], + [ + 12, + 23 + ], + [ + 12, + 24 + ], + [ + 12, + 25 + ], + [ + 12, + 26 + ], + [ + 12, + 27 + ], + [ + 12, + 28 + ], + [ + 12, + 29 + ], + [ + 12, + 30 + ], + [ + 12, + 31 + ], + [ + 12, + 32 + ], + [ + 12, + 33 + ], + [ + 12, + 34 + ], + [ + 12, + 35 + ], + [ + 12, + 36 + ], + [ + 12, + 37 + ], + [ + 12, + 38 + ], + [ + 12, + 39 + ], + [ + 12, + 40 + ], + [ + 12, + 41 + ], + [ + 12, + 42 + ], + [ + 12, + 43 + ], + [ + 12, + 44 + ], + [ + 12, + 45 + ], + [ + 12, + 46 + ], + [ + 12, + 47 + ], + [ + 12, + 48 + ], + [ + 12, + 49 + ], + [ + 12, + 50 + ], + [ + 12, + 51 + ], + [ + 12, + 52 + ], + [ + 12, + 53 + ], + [ + 13, + 23 + ], + [ + 13, + 24 + ], + [ + 13, + 25 + ], + [ + 13, + 26 + ], + [ + 13, + 27 + ], + [ + 13, + 28 + ], + [ + 13, + 29 + ], + [ + 13, + 30 + ], + [ + 13, + 31 + ], + [ + 13, + 32 + ], + [ + 13, + 33 + ], + [ + 13, + 34 + ], + [ + 13, + 35 + ], + [ + 13, + 36 + ], + [ + 13, + 37 + ], + [ + 13, + 38 + ], + [ + 13, + 39 + ], + [ + 13, + 40 + ], + [ + 13, + 41 + ], + [ + 13, + 42 + ], + [ + 13, + 43 + ], + [ + 13, + 44 + ], + [ + 13, + 45 + ], + [ + 13, + 46 + ], + [ + 13, + 47 + ], + [ + 13, + 48 + ], + [ + 13, + 49 + ], + [ + 13, + 50 + ], + [ + 13, + 51 + ], + [ + 13, + 52 + ], + [ + 13, + 53 + ], + [ + 14, + 23 + ], + [ + 14, + 24 + ], + [ + 14, + 25 + ], + [ + 14, + 26 + ], + [ + 14, + 27 + ], + [ + 14, + 28 + ], + [ + 14, + 29 + ], + [ + 14, + 30 + ], + [ + 14, + 31 + ], + [ + 14, + 32 + ], + [ + 14, + 33 + ], + [ + 14, + 34 + ], + [ + 14, + 35 + ], + [ + 14, + 36 + ], + [ + 14, + 37 + ], + [ + 14, + 38 + ], + [ + 14, + 39 + ], + [ + 14, + 40 + ], + [ + 14, + 41 + ], + [ + 14, + 42 + ], + [ + 14, + 43 + ], + [ + 14, + 44 + ], + [ + 14, + 45 + ], + [ + 14, + 46 + ], + [ + 14, + 47 + ], + [ + 14, + 48 + ], + [ + 14, + 49 + ], + [ + 14, + 50 + ], + [ + 14, + 51 + ], + [ + 14, + 52 + ], + [ + 14, + 53 + ], + [ + 14, + 54 + ], + [ + 15, + 23 + ], + [ + 15, + 24 + ], + [ + 15, + 25 + ], + [ + 15, + 26 + ], + [ + 15, + 27 + ], + [ + 15, + 28 + ], + [ + 15, + 29 + ], + [ + 15, + 30 + ], + [ + 15, + 31 + ], + [ + 15, + 32 + ], + [ + 15, + 33 + ], + [ + 15, + 34 + ], + [ + 15, + 35 + ], + [ + 15, + 36 + ], + [ + 15, + 37 + ], + [ + 15, + 38 + ], + [ + 15, + 39 + ], + [ + 15, + 40 + ], + [ + 15, + 41 + ], + [ + 15, + 42 + ], + [ + 15, + 43 + ], + [ + 15, + 44 + ], + [ + 15, + 45 + ], + [ + 15, + 46 + ], + [ + 15, + 47 + ], + [ + 15, + 48 + ], + [ + 15, + 49 + ], + [ + 15, + 50 + ], + [ + 15, + 51 + ], + [ + 15, + 52 + ], + [ + 15, + 53 + ], + [ + 15, + 54 + ], + [ + 15, + 55 + ], + [ + 16, + 23 + ], + [ + 16, + 24 + ], + [ + 16, + 25 + ], + [ + 16, + 26 + ], + [ + 16, + 27 + ], + [ + 16, + 28 + ], + [ + 16, + 29 + ], + [ + 16, + 30 + ], + [ + 16, + 31 + ], + [ + 16, + 32 + ], + [ + 16, + 33 + ], + [ + 16, + 34 + ], + [ + 16, + 35 + ], + [ + 16, + 36 + ], + [ + 16, + 37 + ], + [ + 16, + 38 + ], + [ + 16, + 39 + ], + [ + 16, + 40 + ], + [ + 16, + 41 + ], + [ + 16, + 42 + ], + [ + 16, + 43 + ], + [ + 16, + 44 + ], + [ + 16, + 45 + ], + [ + 16, + 46 + ], + [ + 16, + 47 + ], + [ + 16, + 48 + ], + [ + 16, + 49 + ], + [ + 16, + 50 + ], + [ + 16, + 51 + ], + [ + 16, + 52 + ], + [ + 16, + 53 + ], + [ + 16, + 54 + ], + [ + 16, + 55 + ], + [ + 16, + 56 + ], + [ + 17, + 23 + ], + [ + 17, + 24 + ], + [ + 17, + 25 + ], + [ + 17, + 26 + ], + [ + 17, + 27 + ], + [ + 17, + 28 + ], + [ + 17, + 29 + ], + [ + 17, + 30 + ], + [ + 17, + 31 + ], + [ + 17, + 32 + ], + [ + 17, + 33 + ], + [ + 17, + 34 + ], + [ + 17, + 35 + ], + [ + 17, + 36 + ], + [ + 17, + 37 + ], + [ + 17, + 38 + ], + [ + 17, + 39 + ], + [ + 17, + 40 + ], + [ + 17, + 41 + ], + [ + 17, + 42 + ], + [ + 17, + 43 + ], + [ + 17, + 44 + ], + [ + 17, + 45 + ], + [ + 17, + 46 + ], + [ + 17, + 47 + ], + [ + 17, + 48 + ], + [ + 17, + 49 + ], + [ + 17, + 50 + ], + [ + 17, + 51 + ], + [ + 17, + 52 + ], + [ + 17, + 53 + ], + [ + 17, + 54 + ], + [ + 17, + 55 + ], + [ + 17, + 56 + ], + [ + 18, + 23 + ], + [ + 18, + 24 + ], + [ + 18, + 25 + ], + [ + 18, + 26 + ], + [ + 18, + 27 + ], + [ + 18, + 28 + ], + [ + 18, + 29 + ], + [ + 18, + 30 + ], + [ + 18, + 31 + ], + [ + 18, + 32 + ], + [ + 18, + 33 + ], + [ + 18, + 34 + ], + [ + 18, + 35 + ], + [ + 18, + 36 + ], + [ + 18, + 37 + ], + [ + 18, + 38 + ], + [ + 18, + 39 + ], + [ + 18, + 40 + ], + [ + 18, + 41 + ], + [ + 18, + 42 + ], + [ + 18, + 43 + ], + [ + 18, + 44 + ], + [ + 18, + 45 + ], + [ + 18, + 46 + ], + [ + 18, + 47 + ], + [ + 18, + 48 + ], + [ + 18, + 49 + ], + [ + 18, + 50 + ], + [ + 18, + 51 + ], + [ + 18, + 52 + ], + [ + 18, + 53 + ], + [ + 18, + 54 + ], + [ + 18, + 55 + ], + [ + 18, + 56 + ], + [ + 18, + 57 + ], + [ + 19, + 23 + ], + [ + 19, + 24 + ], + [ + 19, + 25 + ], + [ + 19, + 26 + ], + [ + 19, + 27 + ], + [ + 19, + 28 + ], + [ + 19, + 29 + ], + [ + 19, + 30 + ], + [ + 19, + 31 + ], + [ + 19, + 32 + ], + [ + 19, + 33 + ], + [ + 19, + 34 + ], + [ + 19, + 35 + ], + [ + 19, + 36 + ], + [ + 19, + 37 + ], + [ + 19, + 38 + ], + [ + 19, + 39 + ], + [ + 19, + 40 + ], + [ + 19, + 41 + ], + [ + 19, + 42 + ], + [ + 19, + 43 + ], + [ + 19, + 44 + ], + [ + 19, + 45 + ], + [ + 19, + 46 + ], + [ + 19, + 47 + ], + [ + 19, + 48 + ], + [ + 19, + 49 + ], + [ + 19, + 50 + ], + [ + 19, + 51 + ], + [ + 19, + 52 + ], + [ + 19, + 53 + ], + [ + 19, + 54 + ], + [ + 19, + 55 + ], + [ + 19, + 56 + ], + [ + 19, + 57 + ], + [ + 19, + 58 + ], + [ + 20, + 23 + ], + [ + 20, + 24 + ], + [ + 20, + 25 + ], + [ + 20, + 26 + ], + [ + 20, + 27 + ], + [ + 20, + 28 + ], + [ + 20, + 29 + ], + [ + 20, + 30 + ], + [ + 20, + 31 + ], + [ + 20, + 32 + ], + [ + 20, + 33 + ], + [ + 20, + 34 + ], + [ + 20, + 35 + ], + [ + 20, + 36 + ], + [ + 20, + 37 + ], + [ + 20, + 38 + ], + [ + 20, + 39 + ], + [ + 20, + 40 + ], + [ + 20, + 41 + ], + [ + 20, + 42 + ], + [ + 20, + 43 + ], + [ + 20, + 44 + ], + [ + 20, + 45 + ], + [ + 20, + 46 + ], + [ + 20, + 47 + ], + [ + 20, + 48 + ], + [ + 20, + 49 + ], + [ + 20, + 50 + ], + [ + 20, + 51 + ], + [ + 20, + 52 + ], + [ + 20, + 53 + ], + [ + 20, + 54 + ], + [ + 20, + 55 + ], + [ + 20, + 56 + ], + [ + 20, + 57 + ], + [ + 20, + 58 + ], + [ + 21, + 23 + ], + [ + 21, + 24 + ], + [ + 21, + 25 + ], + [ + 21, + 26 + ], + [ + 21, + 27 + ], + [ + 21, + 28 + ], + [ + 21, + 29 + ], + [ + 21, + 30 + ], + [ + 21, + 31 + ], + [ + 21, + 32 + ], + [ + 21, + 33 + ], + [ + 21, + 34 + ], + [ + 21, + 35 + ], + [ + 21, + 36 + ], + [ + 21, + 37 + ], + [ + 21, + 38 + ], + [ + 21, + 39 + ], + [ + 21, + 40 + ], + [ + 21, + 41 + ], + [ + 21, + 42 + ], + [ + 21, + 43 + ], + [ + 21, + 44 + ], + [ + 21, + 45 + ], + [ + 21, + 46 + ], + [ + 21, + 47 + ], + [ + 21, + 48 + ], + [ + 21, + 49 + ], + [ + 21, + 50 + ], + [ + 21, + 51 + ], + [ + 21, + 52 + ], + [ + 21, + 53 + ], + [ + 21, + 54 + ], + [ + 21, + 55 + ], + [ + 21, + 56 + ], + [ + 21, + 57 + ], + [ + 21, + 58 + ], + [ + 21, + 59 + ], + [ + 22, + 23 + ], + [ + 22, + 24 + ], + [ + 22, + 25 + ], + [ + 22, + 26 + ], + [ + 22, + 27 + ], + [ + 22, + 28 + ], + [ + 22, + 29 + ], + [ + 22, + 30 + ], + [ + 22, + 31 + ], + [ + 22, + 32 + ], + [ + 22, + 33 + ], + [ + 22, + 34 + ], + [ + 22, + 35 + ], + [ + 22, + 36 + ], + [ + 22, + 37 + ], + [ + 22, + 38 + ], + [ + 22, + 39 + ], + [ + 22, + 40 + ], + [ + 22, + 41 + ], + [ + 22, + 42 + ], + [ + 22, + 43 + ], + [ + 22, + 44 + ], + [ + 22, + 45 + ], + [ + 22, + 46 + ], + [ + 22, + 47 + ], + [ + 22, + 48 + ], + [ + 22, + 49 + ], + [ + 22, + 50 + ], + [ + 22, + 51 + ], + [ + 22, + 52 + ], + [ + 22, + 53 + ], + [ + 22, + 54 + ], + [ + 22, + 55 + ], + [ + 22, + 56 + ], + [ + 22, + 57 + ], + [ + 22, + 58 + ], + [ + 22, + 59 + ], + [ + 23, + 23 + ], + [ + 23, + 24 + ], + [ + 23, + 25 + ], + [ + 23, + 26 + ], + [ + 23, + 27 + ], + [ + 23, + 28 + ], + [ + 23, + 29 + ], + [ + 23, + 30 + ], + [ + 23, + 31 + ], + [ + 23, + 32 + ], + [ + 23, + 33 + ], + [ + 23, + 34 + ], + [ + 23, + 35 + ], + [ + 23, + 36 + ], + [ + 23, + 37 + ], + [ + 23, + 38 + ], + [ + 23, + 39 + ], + [ + 23, + 40 + ], + [ + 23, + 41 + ], + [ + 23, + 42 + ], + [ + 23, + 43 + ], + [ + 23, + 44 + ], + [ + 23, + 45 + ], + [ + 23, + 46 + ], + [ + 23, + 47 + ], + [ + 23, + 48 + ], + [ + 23, + 49 + ], + [ + 23, + 50 + ], + [ + 23, + 51 + ], + [ + 23, + 52 + ], + [ + 23, + 53 + ], + [ + 23, + 54 + ], + [ + 23, + 55 + ], + [ + 23, + 56 + ], + [ + 23, + 57 + ], + [ + 23, + 58 + ], + [ + 23, + 59 + ], + [ + 23, + 60 + ], + [ + 24, + 23 + ], + [ + 24, + 24 + ], + [ + 24, + 25 + ], + [ + 24, + 26 + ], + [ + 24, + 27 + ], + [ + 24, + 28 + ], + [ + 24, + 29 + ], + [ + 24, + 30 + ], + [ + 24, + 31 + ], + [ + 24, + 32 + ], + [ + 24, + 33 + ], + [ + 24, + 34 + ], + [ + 24, + 35 + ], + [ + 24, + 36 + ], + [ + 24, + 37 + ], + [ + 24, + 38 + ], + [ + 24, + 39 + ], + [ + 24, + 40 + ], + [ + 24, + 41 + ], + [ + 24, + 42 + ], + [ + 24, + 43 + ], + [ + 24, + 44 + ], + [ + 24, + 45 + ], + [ + 24, + 46 + ], + [ + 24, + 47 + ], + [ + 24, + 48 + ], + [ + 24, + 49 + ], + [ + 24, + 50 + ], + [ + 24, + 51 + ], + [ + 24, + 52 + ], + [ + 24, + 53 + ], + [ + 24, + 54 + ], + [ + 24, + 55 + ], + [ + 24, + 56 + ], + [ + 24, + 57 + ], + [ + 24, + 58 + ], + [ + 24, + 59 + ], + [ + 24, + 60 + ], + [ + 24, + 61 + ], + [ + 25, + 23 + ], + [ + 25, + 24 + ], + [ + 25, + 25 + ], + [ + 25, + 26 + ], + [ + 25, + 27 + ], + [ + 25, + 28 + ], + [ + 25, + 29 + ], + [ + 25, + 30 + ], + [ + 25, + 31 + ], + [ + 25, + 32 + ], + [ + 25, + 33 + ], + [ + 25, + 34 + ], + [ + 25, + 35 + ], + [ + 25, + 36 + ], + [ + 25, + 37 + ], + [ + 25, + 38 + ], + [ + 25, + 39 + ], + [ + 25, + 40 + ], + [ + 25, + 41 + ], + [ + 25, + 42 + ], + [ + 25, + 43 + ], + [ + 25, + 44 + ], + [ + 25, + 45 + ], + [ + 25, + 46 + ], + [ + 25, + 47 + ], + [ + 25, + 48 + ], + [ + 25, + 49 + ], + [ + 25, + 50 + ], + [ + 25, + 51 + ], + [ + 25, + 52 + ], + [ + 25, + 53 + ], + [ + 25, + 54 + ], + [ + 25, + 55 + ], + [ + 25, + 56 + ], + [ + 25, + 57 + ], + [ + 25, + 58 + ], + [ + 25, + 59 + ], + [ + 25, + 60 + ], + [ + 25, + 61 + ], + [ + 26, + 23 + ], + [ + 26, + 24 + ], + [ + 26, + 25 + ], + [ + 26, + 26 + ], + [ + 26, + 27 + ], + [ + 26, + 28 + ], + [ + 26, + 29 + ], + [ + 26, + 30 + ], + [ + 26, + 31 + ], + [ + 26, + 32 + ], + [ + 26, + 33 + ], + [ + 26, + 34 + ], + [ + 26, + 35 + ], + [ + 26, + 36 + ], + [ + 26, + 37 + ], + [ + 26, + 38 + ], + [ + 26, + 39 + ], + [ + 26, + 40 + ], + [ + 26, + 41 + ], + [ + 26, + 42 + ], + [ + 26, + 43 + ], + [ + 26, + 44 + ], + [ + 26, + 45 + ], + [ + 26, + 46 + ], + [ + 26, + 47 + ], + [ + 26, + 48 + ], + [ + 26, + 49 + ], + [ + 26, + 50 + ], + [ + 26, + 51 + ], + [ + 26, + 52 + ], + [ + 26, + 53 + ], + [ + 26, + 54 + ], + [ + 26, + 55 + ], + [ + 26, + 56 + ], + [ + 26, + 57 + ], + [ + 26, + 58 + ], + [ + 26, + 59 + ], + [ + 26, + 60 + ], + [ + 26, + 61 + ], + [ + 26, + 62 + ], + [ + 27, + 23 + ], + [ + 27, + 24 + ], + [ + 27, + 25 + ], + [ + 27, + 26 + ], + [ + 27, + 27 + ], + [ + 27, + 28 + ], + [ + 27, + 29 + ], + [ + 27, + 30 + ], + [ + 27, + 31 + ], + [ + 27, + 32 + ], + [ + 27, + 33 + ], + [ + 27, + 34 + ], + [ + 27, + 35 + ], + [ + 27, + 36 + ], + [ + 27, + 37 + ], + [ + 27, + 38 + ], + [ + 27, + 39 + ], + [ + 27, + 40 + ], + [ + 27, + 41 + ], + [ + 27, + 42 + ], + [ + 27, + 43 + ], + [ + 27, + 44 + ], + [ + 27, + 45 + ], + [ + 27, + 46 + ], + [ + 27, + 47 + ], + [ + 27, + 48 + ], + [ + 27, + 49 + ], + [ + 27, + 50 + ], + [ + 27, + 51 + ], + [ + 27, + 52 + ], + [ + 27, + 53 + ], + [ + 27, + 54 + ], + [ + 27, + 55 + ], + [ + 27, + 56 + ], + [ + 27, + 57 + ], + [ + 27, + 58 + ], + [ + 27, + 59 + ], + [ + 27, + 60 + ], + [ + 27, + 61 + ], + [ + 27, + 62 + ], + [ + 28, + 23 + ], + [ + 28, + 24 + ], + [ + 28, + 25 + ], + [ + 28, + 26 + ], + [ + 28, + 27 + ], + [ + 28, + 28 + ], + [ + 28, + 29 + ], + [ + 28, + 30 + ], + [ + 28, + 31 + ], + [ + 28, + 32 + ], + [ + 28, + 33 + ], + [ + 28, + 34 + ], + [ + 28, + 35 + ], + [ + 28, + 36 + ], + [ + 28, + 37 + ], + [ + 28, + 38 + ], + [ + 28, + 39 + ], + [ + 28, + 40 + ], + [ + 28, + 41 + ], + [ + 28, + 42 + ], + [ + 28, + 43 + ], + [ + 28, + 44 + ], + [ + 28, + 45 + ], + [ + 28, + 46 + ], + [ + 28, + 47 + ], + [ + 28, + 48 + ], + [ + 28, + 49 + ], + [ + 28, + 50 + ], + [ + 28, + 51 + ], + [ + 28, + 52 + ], + [ + 28, + 53 + ], + [ + 28, + 54 + ], + [ + 28, + 55 + ], + [ + 28, + 56 + ], + [ + 28, + 57 + ], + [ + 28, + 58 + ], + [ + 28, + 59 + ], + [ + 28, + 60 + ], + [ + 28, + 61 + ], + [ + 28, + 62 + ], + [ + 29, + 23 + ], + [ + 29, + 24 + ], + [ + 29, + 25 + ], + [ + 29, + 26 + ], + [ + 29, + 27 + ], + [ + 29, + 28 + ], + [ + 29, + 29 + ], + [ + 29, + 30 + ], + [ + 29, + 31 + ], + [ + 29, + 32 + ], + [ + 29, + 33 + ], + [ + 29, + 34 + ], + [ + 29, + 35 + ], + [ + 29, + 36 + ], + [ + 29, + 37 + ], + [ + 29, + 38 + ], + [ + 29, + 39 + ], + [ + 29, + 40 + ], + [ + 29, + 41 + ], + [ + 29, + 42 + ], + [ + 29, + 43 + ], + [ + 29, + 44 + ], + [ + 29, + 45 + ], + [ + 29, + 46 + ], + [ + 29, + 47 + ], + [ + 29, + 48 + ], + [ + 29, + 49 + ], + [ + 29, + 50 + ], + [ + 29, + 51 + ], + [ + 29, + 52 + ], + [ + 29, + 53 + ], + [ + 29, + 54 + ], + [ + 29, + 55 + ], + [ + 29, + 56 + ], + [ + 29, + 57 + ], + [ + 29, + 58 + ], + [ + 29, + 59 + ], + [ + 29, + 60 + ], + [ + 29, + 61 + ], + [ + 29, + 62 + ], + [ + 29, + 63 + ], + [ + 30, + 23 + ], + [ + 30, + 24 + ], + [ + 30, + 25 + ], + [ + 30, + 26 + ], + [ + 30, + 27 + ], + [ + 30, + 28 + ], + [ + 30, + 29 + ], + [ + 30, + 30 + ], + [ + 30, + 31 + ], + [ + 30, + 32 + ], + [ + 30, + 33 + ], + [ + 30, + 34 + ], + [ + 30, + 35 + ], + [ + 30, + 36 + ], + [ + 30, + 37 + ], + [ + 30, + 38 + ], + [ + 30, + 39 + ], + [ + 30, + 40 + ], + [ + 30, + 41 + ], + [ + 30, + 42 + ], + [ + 30, + 43 + ], + [ + 30, + 44 + ], + [ + 30, + 45 + ], + [ + 30, + 46 + ], + [ + 30, + 47 + ], + [ + 30, + 48 + ], + [ + 30, + 49 + ], + [ + 30, + 50 + ], + [ + 30, + 51 + ], + [ + 30, + 52 + ], + [ + 30, + 53 + ], + [ + 30, + 54 + ], + [ + 30, + 55 + ], + [ + 30, + 56 + ], + [ + 30, + 57 + ], + [ + 30, + 58 + ], + [ + 30, + 59 + ], + [ + 30, + 60 + ], + [ + 30, + 61 + ], + [ + 30, + 62 + ], + [ + 30, + 63 + ], + [ + 31, + 23 + ], + [ + 31, + 24 + ], + [ + 31, + 25 + ], + [ + 31, + 26 + ], + [ + 31, + 27 + ], + [ + 31, + 28 + ], + [ + 31, + 29 + ], + [ + 31, + 30 + ], + [ + 31, + 31 + ], + [ + 31, + 32 + ], + [ + 31, + 33 + ], + [ + 31, + 34 + ], + [ + 31, + 35 + ], + [ + 31, + 36 + ], + [ + 31, + 37 + ], + [ + 31, + 38 + ], + [ + 31, + 39 + ], + [ + 31, + 40 + ], + [ + 31, + 41 + ], + [ + 31, + 42 + ], + [ + 31, + 43 + ], + [ + 31, + 44 + ], + [ + 31, + 45 + ], + [ + 31, + 46 + ], + [ + 31, + 47 + ], + [ + 31, + 48 + ], + [ + 31, + 49 + ], + [ + 31, + 50 + ], + [ + 31, + 51 + ], + [ + 31, + 52 + ], + [ + 31, + 53 + ], + [ + 31, + 54 + ], + [ + 31, + 55 + ], + [ + 31, + 56 + ], + [ + 31, + 57 + ], + [ + 31, + 58 + ], + [ + 31, + 59 + ], + [ + 31, + 60 + ], + [ + 31, + 61 + ], + [ + 31, + 62 + ], + [ + 31, + 63 + ], + [ + 32, + 23 + ], + [ + 32, + 24 + ], + [ + 32, + 25 + ], + [ + 32, + 26 + ], + [ + 32, + 27 + ], + [ + 32, + 28 + ], + [ + 32, + 29 + ], + [ + 32, + 30 + ], + [ + 32, + 31 + ], + [ + 32, + 32 + ], + [ + 32, + 33 + ], + [ + 32, + 34 + ], + [ + 32, + 35 + ], + [ + 32, + 36 + ], + [ + 32, + 37 + ], + [ + 32, + 38 + ], + [ + 32, + 39 + ], + [ + 32, + 40 + ], + [ + 32, + 41 + ], + [ + 32, + 42 + ], + [ + 32, + 43 + ], + [ + 32, + 44 + ], + [ + 32, + 45 + ], + [ + 32, + 46 + ], + [ + 32, + 47 + ], + [ + 32, + 48 + ], + [ + 32, + 49 + ], + [ + 32, + 50 + ], + [ + 32, + 51 + ], + [ + 32, + 52 + ], + [ + 32, + 53 + ], + [ + 32, + 54 + ], + [ + 32, + 55 + ], + [ + 32, + 56 + ], + [ + 32, + 57 + ], + [ + 32, + 58 + ], + [ + 32, + 59 + ], + [ + 32, + 60 + ], + [ + 32, + 61 + ], + [ + 32, + 62 + ], + [ + 32, + 63 + ], + [ + 32, + 64 + ], + [ + 33, + 23 + ], + [ + 33, + 24 + ], + [ + 33, + 25 + ], + [ + 33, + 26 + ], + [ + 33, + 27 + ], + [ + 33, + 28 + ], + [ + 33, + 29 + ], + [ + 33, + 30 + ], + [ + 33, + 31 + ], + [ + 33, + 32 + ], + [ + 33, + 33 + ], + [ + 33, + 34 + ], + [ + 33, + 35 + ], + [ + 33, + 36 + ], + [ + 33, + 37 + ], + [ + 33, + 38 + ], + [ + 33, + 39 + ], + [ + 33, + 40 + ], + [ + 33, + 41 + ], + [ + 33, + 42 + ], + [ + 33, + 43 + ], + [ + 33, + 44 + ], + [ + 33, + 45 + ], + [ + 33, + 46 + ], + [ + 33, + 47 + ], + [ + 33, + 48 + ], + [ + 33, + 49 + ], + [ + 33, + 50 + ], + [ + 33, + 51 + ], + [ + 33, + 52 + ], + [ + 33, + 53 + ], + [ + 33, + 54 + ], + [ + 33, + 55 + ], + [ + 33, + 56 + ], + [ + 33, + 57 + ], + [ + 33, + 58 + ], + [ + 33, + 59 + ], + [ + 33, + 60 + ], + [ + 33, + 61 + ], + [ + 33, + 62 + ], + [ + 33, + 63 + ], + [ + 33, + 64 + ], + [ + 34, + 23 + ], + [ + 34, + 24 + ], + [ + 34, + 25 + ], + [ + 34, + 26 + ], + [ + 34, + 27 + ], + [ + 34, + 28 + ], + [ + 34, + 29 + ], + [ + 34, + 30 + ], + [ + 34, + 31 + ], + [ + 34, + 32 + ], + [ + 34, + 33 + ], + [ + 34, + 34 + ], + [ + 34, + 35 + ], + [ + 34, + 36 + ], + [ + 34, + 37 + ], + [ + 34, + 38 + ], + [ + 34, + 39 + ], + [ + 34, + 40 + ], + [ + 34, + 41 + ], + [ + 34, + 42 + ], + [ + 34, + 43 + ], + [ + 34, + 44 + ], + [ + 34, + 45 + ], + [ + 34, + 46 + ], + [ + 34, + 47 + ], + [ + 34, + 48 + ], + [ + 34, + 49 + ], + [ + 34, + 50 + ], + [ + 34, + 51 + ], + [ + 34, + 52 + ], + [ + 34, + 53 + ], + [ + 34, + 54 + ], + [ + 34, + 55 + ], + [ + 34, + 56 + ], + [ + 34, + 57 + ], + [ + 34, + 58 + ], + [ + 34, + 59 + ], + [ + 34, + 60 + ], + [ + 34, + 61 + ], + [ + 34, + 62 + ], + [ + 34, + 63 + ], + [ + 34, + 64 + ], + [ + 35, + 23 + ], + [ + 35, + 24 + ], + [ + 35, + 25 + ], + [ + 35, + 26 + ], + [ + 35, + 27 + ], + [ + 35, + 28 + ], + [ + 35, + 29 + ], + [ + 35, + 30 + ], + [ + 35, + 31 + ], + [ + 35, + 32 + ], + [ + 35, + 33 + ], + [ + 35, + 34 + ], + [ + 35, + 35 + ], + [ + 35, + 36 + ], + [ + 35, + 37 + ], + [ + 35, + 38 + ], + [ + 35, + 39 + ], + [ + 35, + 40 + ], + [ + 35, + 41 + ], + [ + 35, + 42 + ], + [ + 35, + 43 + ], + [ + 35, + 44 + ], + [ + 35, + 45 + ], + [ + 35, + 46 + ], + [ + 35, + 47 + ], + [ + 35, + 48 + ], + [ + 35, + 49 + ], + [ + 35, + 50 + ], + [ + 35, + 51 + ], + [ + 35, + 52 + ], + [ + 35, + 53 + ], + [ + 35, + 54 + ], + [ + 35, + 55 + ], + [ + 35, + 56 + ], + [ + 35, + 57 + ], + [ + 35, + 58 + ], + [ + 35, + 59 + ], + [ + 35, + 60 + ], + [ + 35, + 61 + ], + [ + 35, + 62 + ], + [ + 35, + 63 + ], + [ + 35, + 64 + ], + [ + 36, + 23 + ], + [ + 36, + 24 + ], + [ + 36, + 25 + ], + [ + 36, + 26 + ], + [ + 36, + 27 + ], + [ + 36, + 28 + ], + [ + 36, + 29 + ], + [ + 36, + 30 + ], + [ + 36, + 31 + ], + [ + 36, + 32 + ], + [ + 36, + 33 + ], + [ + 36, + 34 + ], + [ + 36, + 35 + ], + [ + 36, + 36 + ], + [ + 36, + 37 + ], + [ + 36, + 38 + ], + [ + 36, + 39 + ], + [ + 36, + 40 + ], + [ + 36, + 41 + ], + [ + 36, + 42 + ], + [ + 36, + 43 + ], + [ + 36, + 44 + ], + [ + 36, + 45 + ], + [ + 36, + 46 + ], + [ + 36, + 47 + ], + [ + 36, + 48 + ], + [ + 36, + 49 + ], + [ + 36, + 50 + ], + [ + 36, + 51 + ], + [ + 36, + 52 + ], + [ + 36, + 53 + ], + [ + 36, + 54 + ], + [ + 36, + 55 + ], + [ + 36, + 56 + ], + [ + 36, + 57 + ], + [ + 36, + 58 + ], + [ + 36, + 59 + ], + [ + 36, + 60 + ], + [ + 36, + 61 + ], + [ + 36, + 62 + ], + [ + 36, + 63 + ], + [ + 36, + 64 + ], + [ + 37, + 23 + ], + [ + 37, + 24 + ], + [ + 37, + 25 + ], + [ + 37, + 26 + ], + [ + 37, + 27 + ], + [ + 37, + 28 + ], + [ + 37, + 29 + ], + [ + 37, + 30 + ], + [ + 37, + 31 + ], + [ + 37, + 32 + ], + [ + 37, + 33 + ], + [ + 37, + 34 + ], + [ + 37, + 35 + ], + [ + 37, + 36 + ], + [ + 37, + 37 + ], + [ + 37, + 38 + ], + [ + 37, + 39 + ], + [ + 37, + 40 + ], + [ + 37, + 41 + ], + [ + 37, + 42 + ], + [ + 37, + 43 + ], + [ + 37, + 44 + ], + [ + 37, + 45 + ], + [ + 37, + 46 + ], + [ + 37, + 47 + ], + [ + 37, + 48 + ], + [ + 37, + 49 + ], + [ + 37, + 50 + ], + [ + 37, + 51 + ], + [ + 37, + 52 + ], + [ + 37, + 53 + ], + [ + 37, + 54 + ], + [ + 37, + 55 + ], + [ + 37, + 56 + ], + [ + 37, + 57 + ], + [ + 37, + 58 + ], + [ + 37, + 59 + ], + [ + 37, + 60 + ], + [ + 37, + 61 + ], + [ + 37, + 62 + ], + [ + 37, + 63 + ], + [ + 37, + 64 + ], + [ + 38, + 23 + ], + [ + 38, + 24 + ], + [ + 38, + 25 + ], + [ + 38, + 26 + ], + [ + 38, + 27 + ], + [ + 38, + 28 + ], + [ + 38, + 29 + ], + [ + 38, + 30 + ], + [ + 38, + 31 + ], + [ + 38, + 32 + ], + [ + 38, + 33 + ], + [ + 38, + 34 + ], + [ + 38, + 35 + ], + [ + 38, + 36 + ], + [ + 38, + 37 + ], + [ + 38, + 38 + ], + [ + 38, + 39 + ], + [ + 38, + 40 + ], + [ + 38, + 41 + ], + [ + 38, + 42 + ], + [ + 38, + 43 + ], + [ + 38, + 44 + ], + [ + 38, + 45 + ], + [ + 38, + 46 + ], + [ + 38, + 47 + ], + [ + 38, + 48 + ], + [ + 38, + 49 + ], + [ + 38, + 50 + ], + [ + 38, + 51 + ], + [ + 38, + 52 + ], + [ + 38, + 53 + ], + [ + 38, + 54 + ], + [ + 38, + 55 + ], + [ + 38, + 56 + ], + [ + 38, + 57 + ], + [ + 38, + 58 + ], + [ + 38, + 59 + ], + [ + 38, + 60 + ], + [ + 38, + 61 + ], + [ + 38, + 62 + ], + [ + 38, + 63 + ], + [ + 38, + 64 + ], + [ + 38, + 65 + ], + [ + 39, + 23 + ], + [ + 39, + 24 + ], + [ + 39, + 25 + ], + [ + 39, + 26 + ], + [ + 39, + 27 + ], + [ + 39, + 28 + ], + [ + 39, + 29 + ], + [ + 39, + 30 + ], + [ + 39, + 31 + ], + [ + 39, + 32 + ], + [ + 39, + 33 + ], + [ + 39, + 34 + ], + [ + 39, + 35 + ], + [ + 39, + 36 + ], + [ + 39, + 37 + ], + [ + 39, + 38 + ], + [ + 39, + 39 + ], + [ + 39, + 40 + ], + [ + 39, + 41 + ], + [ + 39, + 42 + ], + [ + 39, + 43 + ], + [ + 39, + 44 + ], + [ + 39, + 45 + ], + [ + 39, + 46 + ], + [ + 39, + 47 + ], + [ + 39, + 48 + ], + [ + 39, + 49 + ], + [ + 39, + 50 + ], + [ + 39, + 51 + ], + [ + 39, + 52 + ], + [ + 39, + 53 + ], + [ + 39, + 54 + ], + [ + 39, + 55 + ], + [ + 39, + 56 + ], + [ + 39, + 57 + ], + [ + 39, + 58 + ], + [ + 39, + 59 + ], + [ + 39, + 60 + ], + [ + 39, + 61 + ], + [ + 39, + 62 + ], + [ + 39, + 63 + ], + [ + 39, + 64 + ] + ], + "summed_black_polygon_area_mm2": 70.355949, + "summed_white_base_area_mm2": 225.723974, + "black_to_base_area_ratio_estimate": 0.31169 + }, + { + "id": "uv_2", + "uv_map": "uv_2", + "svg": { + "path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes-views\\stroke_texture_uv_2.svg", + "sha256": "76a72e09a2d7ff22972b99b14b5849d500be9060208f875719360d1cb45321c1" + }, + "page_mm": [ + 17.67, + 23.565 + ], + "raster_px": [ + 3534, + 4713 + ], + "stroke_count": 1381, + "vector_fragment_count": 8334, + "width_mm": { + "min": 0.00048, + "p5": 0.042283, + "median": 0.144038, + "p95": 0.28534, + "max": 0.333373 + }, + "length_mm": { + "min": 0.02906, + "p5": 0.135639, + "median": 0.319359, + "p95": 0.579624, + "max": 0.666295 + }, + "width_below_target_count": 985, + "smallest_width_strokes": [ + { + "cell": [ + 79, + 37 + ], + "width_mm": 0.00048, + "length_mm": 0.02906, + "fragments": 3 + }, + { + "cell": [ + 79, + 33 + ], + "width_mm": 0.001257, + "length_mm": 0.035992, + "fragments": 3 + }, + { + "cell": [ + 79, + 35 + ], + "width_mm": 0.001322, + "length_mm": 0.035858, + "fragments": 1 + }, + { + "cell": [ + 72, + 22 + ], + "width_mm": 0.002823, + "length_mm": 0.116878, + "fragments": 3 + }, + { + "cell": [ + 41, + 65 + ], + "width_mm": 0.003079, + "length_mm": 0.042823, + "fragments": 1 + }, + { + "cell": [ + 69, + 22 + ], + "width_mm": 0.00514, + "length_mm": 0.050464, + "fragments": 1 + }, + { + "cell": [ + 79, + 36 + ], + "width_mm": 0.006582, + "length_mm": 0.078113, + "fragments": 4 + }, + { + "cell": [ + 51, + 63 + ], + "width_mm": 0.007778, + "length_mm": 0.11585, + "fragments": 1 + }, + { + "cell": [ + 70, + 51 + ], + "width_mm": 0.008034, + "length_mm": 0.061693, + "fragments": 5 + }, + { + "cell": [ + 79, + 42 + ], + "width_mm": 0.008628, + "length_mm": 0.169955, + "fragments": 3 + } + ], + "camera_cells": [ + [ + 40, + 23 + ], + [ + 40, + 24 + ], + [ + 40, + 25 + ], + [ + 40, + 26 + ], + [ + 40, + 27 + ], + [ + 40, + 28 + ], + [ + 40, + 29 + ], + [ + 40, + 30 + ], + [ + 40, + 31 + ], + [ + 40, + 32 + ], + [ + 40, + 33 + ], + [ + 40, + 34 + ], + [ + 40, + 35 + ], + [ + 40, + 36 + ], + [ + 40, + 37 + ], + [ + 40, + 38 + ], + [ + 40, + 39 + ], + [ + 40, + 40 + ], + [ + 40, + 41 + ], + [ + 40, + 42 + ], + [ + 40, + 43 + ], + [ + 40, + 44 + ], + [ + 40, + 45 + ], + [ + 40, + 46 + ], + [ + 40, + 47 + ], + [ + 40, + 48 + ], + [ + 40, + 49 + ], + [ + 40, + 50 + ], + [ + 40, + 51 + ], + [ + 40, + 52 + ], + [ + 40, + 53 + ], + [ + 40, + 54 + ], + [ + 40, + 55 + ], + [ + 40, + 56 + ], + [ + 40, + 57 + ], + [ + 40, + 58 + ], + [ + 40, + 59 + ], + [ + 40, + 60 + ], + [ + 40, + 61 + ], + [ + 40, + 62 + ], + [ + 40, + 63 + ], + [ + 40, + 64 + ], + [ + 40, + 65 + ], + [ + 41, + 23 + ], + [ + 41, + 24 + ], + [ + 41, + 25 + ], + [ + 41, + 26 + ], + [ + 41, + 27 + ], + [ + 41, + 28 + ], + [ + 41, + 29 + ], + [ + 41, + 30 + ], + [ + 41, + 31 + ], + [ + 41, + 32 + ], + [ + 41, + 33 + ], + [ + 41, + 34 + ], + [ + 41, + 35 + ], + [ + 41, + 36 + ], + [ + 41, + 37 + ], + [ + 41, + 38 + ], + [ + 41, + 39 + ], + [ + 41, + 40 + ], + [ + 41, + 41 + ], + [ + 41, + 42 + ], + [ + 41, + 43 + ], + [ + 41, + 44 + ], + [ + 41, + 45 + ], + [ + 41, + 46 + ], + [ + 41, + 47 + ], + [ + 41, + 48 + ], + [ + 41, + 49 + ], + [ + 41, + 50 + ], + [ + 41, + 51 + ], + [ + 41, + 52 + ], + [ + 41, + 53 + ], + [ + 41, + 54 + ], + [ + 41, + 55 + ], + [ + 41, + 56 + ], + [ + 41, + 57 + ], + [ + 41, + 58 + ], + [ + 41, + 59 + ], + [ + 41, + 60 + ], + [ + 41, + 61 + ], + [ + 41, + 62 + ], + [ + 41, + 63 + ], + [ + 41, + 64 + ], + [ + 41, + 65 + ], + [ + 42, + 23 + ], + [ + 42, + 24 + ], + [ + 42, + 25 + ], + [ + 42, + 26 + ], + [ + 42, + 27 + ], + [ + 42, + 28 + ], + [ + 42, + 29 + ], + [ + 42, + 30 + ], + [ + 42, + 31 + ], + [ + 42, + 32 + ], + [ + 42, + 33 + ], + [ + 42, + 34 + ], + [ + 42, + 35 + ], + [ + 42, + 36 + ], + [ + 42, + 37 + ], + [ + 42, + 38 + ], + [ + 42, + 39 + ], + [ + 42, + 40 + ], + [ + 42, + 41 + ], + [ + 42, + 42 + ], + [ + 42, + 43 + ], + [ + 42, + 44 + ], + [ + 42, + 45 + ], + [ + 42, + 46 + ], + [ + 42, + 47 + ], + [ + 42, + 48 + ], + [ + 42, + 49 + ], + [ + 42, + 50 + ], + [ + 42, + 51 + ], + [ + 42, + 52 + ], + [ + 42, + 53 + ], + [ + 42, + 54 + ], + [ + 42, + 55 + ], + [ + 42, + 56 + ], + [ + 42, + 57 + ], + [ + 42, + 58 + ], + [ + 42, + 59 + ], + [ + 42, + 60 + ], + [ + 42, + 61 + ], + [ + 42, + 62 + ], + [ + 42, + 63 + ], + [ + 42, + 64 + ], + [ + 43, + 23 + ], + [ + 43, + 24 + ], + [ + 43, + 25 + ], + [ + 43, + 26 + ], + [ + 43, + 27 + ], + [ + 43, + 28 + ], + [ + 43, + 29 + ], + [ + 43, + 30 + ], + [ + 43, + 31 + ], + [ + 43, + 32 + ], + [ + 43, + 33 + ], + [ + 43, + 34 + ], + [ + 43, + 35 + ], + [ + 43, + 36 + ], + [ + 43, + 37 + ], + [ + 43, + 38 + ], + [ + 43, + 39 + ], + [ + 43, + 40 + ], + [ + 43, + 41 + ], + [ + 43, + 42 + ], + [ + 43, + 43 + ], + [ + 43, + 44 + ], + [ + 43, + 45 + ], + [ + 43, + 46 + ], + [ + 43, + 47 + ], + [ + 43, + 48 + ], + [ + 43, + 49 + ], + [ + 43, + 50 + ], + [ + 43, + 51 + ], + [ + 43, + 52 + ], + [ + 43, + 53 + ], + [ + 43, + 54 + ], + [ + 43, + 55 + ], + [ + 43, + 56 + ], + [ + 43, + 57 + ], + [ + 43, + 58 + ], + [ + 43, + 59 + ], + [ + 43, + 60 + ], + [ + 43, + 61 + ], + [ + 43, + 62 + ], + [ + 43, + 63 + ], + [ + 43, + 64 + ], + [ + 44, + 23 + ], + [ + 44, + 24 + ], + [ + 44, + 25 + ], + [ + 44, + 26 + ], + [ + 44, + 27 + ], + [ + 44, + 28 + ], + [ + 44, + 29 + ], + [ + 44, + 30 + ], + [ + 44, + 31 + ], + [ + 44, + 32 + ], + [ + 44, + 33 + ], + [ + 44, + 34 + ], + [ + 44, + 35 + ], + [ + 44, + 36 + ], + [ + 44, + 37 + ], + [ + 44, + 38 + ], + [ + 44, + 39 + ], + [ + 44, + 40 + ], + [ + 44, + 41 + ], + [ + 44, + 42 + ], + [ + 44, + 43 + ], + [ + 44, + 44 + ], + [ + 44, + 45 + ], + [ + 44, + 46 + ], + [ + 44, + 47 + ], + [ + 44, + 48 + ], + [ + 44, + 49 + ], + [ + 44, + 50 + ], + [ + 44, + 51 + ], + [ + 44, + 52 + ], + [ + 44, + 53 + ], + [ + 44, + 54 + ], + [ + 44, + 55 + ], + [ + 44, + 56 + ], + [ + 44, + 57 + ], + [ + 44, + 58 + ], + [ + 44, + 59 + ], + [ + 44, + 60 + ], + [ + 44, + 61 + ], + [ + 44, + 62 + ], + [ + 44, + 63 + ], + [ + 44, + 64 + ], + [ + 45, + 23 + ], + [ + 45, + 24 + ], + [ + 45, + 25 + ], + [ + 45, + 26 + ], + [ + 45, + 27 + ], + [ + 45, + 28 + ], + [ + 45, + 29 + ], + [ + 45, + 30 + ], + [ + 45, + 31 + ], + [ + 45, + 32 + ], + [ + 45, + 33 + ], + [ + 45, + 34 + ], + [ + 45, + 35 + ], + [ + 45, + 36 + ], + [ + 45, + 37 + ], + [ + 45, + 38 + ], + [ + 45, + 39 + ], + [ + 45, + 40 + ], + [ + 45, + 41 + ], + [ + 45, + 42 + ], + [ + 45, + 43 + ], + [ + 45, + 44 + ], + [ + 45, + 45 + ], + [ + 45, + 46 + ], + [ + 45, + 47 + ], + [ + 45, + 48 + ], + [ + 45, + 49 + ], + [ + 45, + 50 + ], + [ + 45, + 51 + ], + [ + 45, + 52 + ], + [ + 45, + 53 + ], + [ + 45, + 54 + ], + [ + 45, + 55 + ], + [ + 45, + 56 + ], + [ + 45, + 57 + ], + [ + 45, + 58 + ], + [ + 45, + 59 + ], + [ + 45, + 60 + ], + [ + 45, + 61 + ], + [ + 45, + 62 + ], + [ + 45, + 63 + ], + [ + 45, + 64 + ], + [ + 46, + 23 + ], + [ + 46, + 24 + ], + [ + 46, + 25 + ], + [ + 46, + 26 + ], + [ + 46, + 27 + ], + [ + 46, + 28 + ], + [ + 46, + 29 + ], + [ + 46, + 30 + ], + [ + 46, + 31 + ], + [ + 46, + 32 + ], + [ + 46, + 33 + ], + [ + 46, + 34 + ], + [ + 46, + 35 + ], + [ + 46, + 36 + ], + [ + 46, + 37 + ], + [ + 46, + 38 + ], + [ + 46, + 39 + ], + [ + 46, + 40 + ], + [ + 46, + 41 + ], + [ + 46, + 42 + ], + [ + 46, + 43 + ], + [ + 46, + 44 + ], + [ + 46, + 45 + ], + [ + 46, + 46 + ], + [ + 46, + 47 + ], + [ + 46, + 48 + ], + [ + 46, + 49 + ], + [ + 46, + 50 + ], + [ + 46, + 51 + ], + [ + 46, + 52 + ], + [ + 46, + 53 + ], + [ + 46, + 54 + ], + [ + 46, + 55 + ], + [ + 46, + 56 + ], + [ + 46, + 57 + ], + [ + 46, + 58 + ], + [ + 46, + 59 + ], + [ + 46, + 60 + ], + [ + 46, + 61 + ], + [ + 46, + 62 + ], + [ + 46, + 63 + ], + [ + 46, + 64 + ], + [ + 47, + 23 + ], + [ + 47, + 24 + ], + [ + 47, + 25 + ], + [ + 47, + 26 + ], + [ + 47, + 27 + ], + [ + 47, + 28 + ], + [ + 47, + 29 + ], + [ + 47, + 30 + ], + [ + 47, + 31 + ], + [ + 47, + 32 + ], + [ + 47, + 33 + ], + [ + 47, + 34 + ], + [ + 47, + 35 + ], + [ + 47, + 36 + ], + [ + 47, + 37 + ], + [ + 47, + 38 + ], + [ + 47, + 39 + ], + [ + 47, + 40 + ], + [ + 47, + 41 + ], + [ + 47, + 42 + ], + [ + 47, + 43 + ], + [ + 47, + 44 + ], + [ + 47, + 45 + ], + [ + 47, + 46 + ], + [ + 47, + 47 + ], + [ + 47, + 48 + ], + [ + 47, + 49 + ], + [ + 47, + 50 + ], + [ + 47, + 51 + ], + [ + 47, + 52 + ], + [ + 47, + 53 + ], + [ + 47, + 54 + ], + [ + 47, + 55 + ], + [ + 47, + 56 + ], + [ + 47, + 57 + ], + [ + 47, + 58 + ], + [ + 47, + 59 + ], + [ + 47, + 60 + ], + [ + 47, + 61 + ], + [ + 47, + 62 + ], + [ + 47, + 63 + ], + [ + 47, + 64 + ], + [ + 48, + 23 + ], + [ + 48, + 24 + ], + [ + 48, + 25 + ], + [ + 48, + 26 + ], + [ + 48, + 27 + ], + [ + 48, + 28 + ], + [ + 48, + 29 + ], + [ + 48, + 30 + ], + [ + 48, + 31 + ], + [ + 48, + 32 + ], + [ + 48, + 33 + ], + [ + 48, + 34 + ], + [ + 48, + 35 + ], + [ + 48, + 36 + ], + [ + 48, + 37 + ], + [ + 48, + 38 + ], + [ + 48, + 39 + ], + [ + 48, + 40 + ], + [ + 48, + 41 + ], + [ + 48, + 42 + ], + [ + 48, + 43 + ], + [ + 48, + 44 + ], + [ + 48, + 45 + ], + [ + 48, + 46 + ], + [ + 48, + 47 + ], + [ + 48, + 48 + ], + [ + 48, + 49 + ], + [ + 48, + 50 + ], + [ + 48, + 51 + ], + [ + 48, + 52 + ], + [ + 48, + 53 + ], + [ + 48, + 54 + ], + [ + 48, + 55 + ], + [ + 48, + 56 + ], + [ + 48, + 57 + ], + [ + 48, + 58 + ], + [ + 48, + 59 + ], + [ + 48, + 60 + ], + [ + 48, + 61 + ], + [ + 48, + 62 + ], + [ + 48, + 63 + ], + [ + 49, + 23 + ], + [ + 49, + 24 + ], + [ + 49, + 25 + ], + [ + 49, + 26 + ], + [ + 49, + 27 + ], + [ + 49, + 28 + ], + [ + 49, + 29 + ], + [ + 49, + 30 + ], + [ + 49, + 31 + ], + [ + 49, + 32 + ], + [ + 49, + 33 + ], + [ + 49, + 34 + ], + [ + 49, + 35 + ], + [ + 49, + 36 + ], + [ + 49, + 37 + ], + [ + 49, + 38 + ], + [ + 49, + 39 + ], + [ + 49, + 40 + ], + [ + 49, + 41 + ], + [ + 49, + 42 + ], + [ + 49, + 43 + ], + [ + 49, + 44 + ], + [ + 49, + 45 + ], + [ + 49, + 46 + ], + [ + 49, + 47 + ], + [ + 49, + 48 + ], + [ + 49, + 49 + ], + [ + 49, + 50 + ], + [ + 49, + 51 + ], + [ + 49, + 52 + ], + [ + 49, + 53 + ], + [ + 49, + 54 + ], + [ + 49, + 55 + ], + [ + 49, + 56 + ], + [ + 49, + 57 + ], + [ + 49, + 58 + ], + [ + 49, + 59 + ], + [ + 49, + 60 + ], + [ + 49, + 61 + ], + [ + 49, + 62 + ], + [ + 49, + 63 + ], + [ + 50, + 23 + ], + [ + 50, + 24 + ], + [ + 50, + 25 + ], + [ + 50, + 26 + ], + [ + 50, + 27 + ], + [ + 50, + 28 + ], + [ + 50, + 29 + ], + [ + 50, + 30 + ], + [ + 50, + 31 + ], + [ + 50, + 32 + ], + [ + 50, + 33 + ], + [ + 50, + 34 + ], + [ + 50, + 35 + ], + [ + 50, + 36 + ], + [ + 50, + 37 + ], + [ + 50, + 38 + ], + [ + 50, + 39 + ], + [ + 50, + 40 + ], + [ + 50, + 41 + ], + [ + 50, + 42 + ], + [ + 50, + 43 + ], + [ + 50, + 44 + ], + [ + 50, + 45 + ], + [ + 50, + 46 + ], + [ + 50, + 47 + ], + [ + 50, + 48 + ], + [ + 50, + 49 + ], + [ + 50, + 50 + ], + [ + 50, + 51 + ], + [ + 50, + 52 + ], + [ + 50, + 53 + ], + [ + 50, + 54 + ], + [ + 50, + 55 + ], + [ + 50, + 56 + ], + [ + 50, + 57 + ], + [ + 50, + 58 + ], + [ + 50, + 59 + ], + [ + 50, + 60 + ], + [ + 50, + 61 + ], + [ + 50, + 62 + ], + [ + 50, + 63 + ], + [ + 51, + 23 + ], + [ + 51, + 24 + ], + [ + 51, + 25 + ], + [ + 51, + 26 + ], + [ + 51, + 27 + ], + [ + 51, + 28 + ], + [ + 51, + 29 + ], + [ + 51, + 30 + ], + [ + 51, + 31 + ], + [ + 51, + 32 + ], + [ + 51, + 33 + ], + [ + 51, + 34 + ], + [ + 51, + 35 + ], + [ + 51, + 36 + ], + [ + 51, + 37 + ], + [ + 51, + 38 + ], + [ + 51, + 39 + ], + [ + 51, + 40 + ], + [ + 51, + 41 + ], + [ + 51, + 42 + ], + [ + 51, + 43 + ], + [ + 51, + 44 + ], + [ + 51, + 45 + ], + [ + 51, + 46 + ], + [ + 51, + 47 + ], + [ + 51, + 48 + ], + [ + 51, + 49 + ], + [ + 51, + 50 + ], + [ + 51, + 51 + ], + [ + 51, + 52 + ], + [ + 51, + 53 + ], + [ + 51, + 54 + ], + [ + 51, + 55 + ], + [ + 51, + 56 + ], + [ + 51, + 57 + ], + [ + 51, + 58 + ], + [ + 51, + 59 + ], + [ + 51, + 60 + ], + [ + 51, + 61 + ], + [ + 51, + 62 + ], + [ + 51, + 63 + ], + [ + 52, + 23 + ], + [ + 52, + 24 + ], + [ + 52, + 25 + ], + [ + 52, + 26 + ], + [ + 52, + 27 + ], + [ + 52, + 28 + ], + [ + 52, + 29 + ], + [ + 52, + 30 + ], + [ + 52, + 31 + ], + [ + 52, + 32 + ], + [ + 52, + 33 + ], + [ + 52, + 34 + ], + [ + 52, + 35 + ], + [ + 52, + 36 + ], + [ + 52, + 37 + ], + [ + 52, + 38 + ], + [ + 52, + 39 + ], + [ + 52, + 40 + ], + [ + 52, + 41 + ], + [ + 52, + 42 + ], + [ + 52, + 43 + ], + [ + 52, + 44 + ], + [ + 52, + 45 + ], + [ + 52, + 46 + ], + [ + 52, + 47 + ], + [ + 52, + 48 + ], + [ + 52, + 49 + ], + [ + 52, + 50 + ], + [ + 52, + 51 + ], + [ + 52, + 52 + ], + [ + 52, + 53 + ], + [ + 52, + 54 + ], + [ + 52, + 55 + ], + [ + 52, + 56 + ], + [ + 52, + 57 + ], + [ + 52, + 58 + ], + [ + 52, + 59 + ], + [ + 52, + 60 + ], + [ + 52, + 61 + ], + [ + 52, + 62 + ], + [ + 53, + 23 + ], + [ + 53, + 24 + ], + [ + 53, + 25 + ], + [ + 53, + 26 + ], + [ + 53, + 27 + ], + [ + 53, + 28 + ], + [ + 53, + 29 + ], + [ + 53, + 30 + ], + [ + 53, + 31 + ], + [ + 53, + 32 + ], + [ + 53, + 33 + ], + [ + 53, + 34 + ], + [ + 53, + 35 + ], + [ + 53, + 36 + ], + [ + 53, + 37 + ], + [ + 53, + 38 + ], + [ + 53, + 39 + ], + [ + 53, + 40 + ], + [ + 53, + 41 + ], + [ + 53, + 42 + ], + [ + 53, + 43 + ], + [ + 53, + 44 + ], + [ + 53, + 45 + ], + [ + 53, + 46 + ], + [ + 53, + 47 + ], + [ + 53, + 48 + ], + [ + 53, + 49 + ], + [ + 53, + 50 + ], + [ + 53, + 51 + ], + [ + 53, + 52 + ], + [ + 53, + 53 + ], + [ + 53, + 54 + ], + [ + 53, + 55 + ], + [ + 53, + 56 + ], + [ + 53, + 57 + ], + [ + 53, + 58 + ], + [ + 53, + 59 + ], + [ + 53, + 60 + ], + [ + 53, + 61 + ], + [ + 53, + 62 + ], + [ + 54, + 23 + ], + [ + 54, + 24 + ], + [ + 54, + 25 + ], + [ + 54, + 26 + ], + [ + 54, + 27 + ], + [ + 54, + 28 + ], + [ + 54, + 29 + ], + [ + 54, + 30 + ], + [ + 54, + 31 + ], + [ + 54, + 32 + ], + [ + 54, + 33 + ], + [ + 54, + 34 + ], + [ + 54, + 35 + ], + [ + 54, + 36 + ], + [ + 54, + 37 + ], + [ + 54, + 38 + ], + [ + 54, + 39 + ], + [ + 54, + 40 + ], + [ + 54, + 41 + ], + [ + 54, + 42 + ], + [ + 54, + 43 + ], + [ + 54, + 44 + ], + [ + 54, + 45 + ], + [ + 54, + 46 + ], + [ + 54, + 47 + ], + [ + 54, + 48 + ], + [ + 54, + 49 + ], + [ + 54, + 50 + ], + [ + 54, + 51 + ], + [ + 54, + 52 + ], + [ + 54, + 53 + ], + [ + 54, + 54 + ], + [ + 54, + 55 + ], + [ + 54, + 56 + ], + [ + 54, + 57 + ], + [ + 54, + 58 + ], + [ + 54, + 59 + ], + [ + 54, + 60 + ], + [ + 54, + 61 + ], + [ + 55, + 23 + ], + [ + 55, + 24 + ], + [ + 55, + 25 + ], + [ + 55, + 26 + ], + [ + 55, + 27 + ], + [ + 55, + 28 + ], + [ + 55, + 29 + ], + [ + 55, + 30 + ], + [ + 55, + 31 + ], + [ + 55, + 32 + ], + [ + 55, + 33 + ], + [ + 55, + 34 + ], + [ + 55, + 35 + ], + [ + 55, + 36 + ], + [ + 55, + 37 + ], + [ + 55, + 38 + ], + [ + 55, + 39 + ], + [ + 55, + 40 + ], + [ + 55, + 41 + ], + [ + 55, + 42 + ], + [ + 55, + 43 + ], + [ + 55, + 44 + ], + [ + 55, + 45 + ], + [ + 55, + 46 + ], + [ + 55, + 47 + ], + [ + 55, + 48 + ], + [ + 55, + 49 + ], + [ + 55, + 50 + ], + [ + 55, + 51 + ], + [ + 55, + 52 + ], + [ + 55, + 53 + ], + [ + 55, + 54 + ], + [ + 55, + 55 + ], + [ + 55, + 56 + ], + [ + 55, + 57 + ], + [ + 55, + 58 + ], + [ + 55, + 59 + ], + [ + 55, + 60 + ], + [ + 55, + 61 + ], + [ + 56, + 23 + ], + [ + 56, + 24 + ], + [ + 56, + 25 + ], + [ + 56, + 26 + ], + [ + 56, + 27 + ], + [ + 56, + 28 + ], + [ + 56, + 29 + ], + [ + 56, + 30 + ], + [ + 56, + 31 + ], + [ + 56, + 32 + ], + [ + 56, + 33 + ], + [ + 56, + 34 + ], + [ + 56, + 35 + ], + [ + 56, + 36 + ], + [ + 56, + 37 + ], + [ + 56, + 38 + ], + [ + 56, + 39 + ], + [ + 56, + 40 + ], + [ + 56, + 41 + ], + [ + 56, + 42 + ], + [ + 56, + 43 + ], + [ + 56, + 44 + ], + [ + 56, + 45 + ], + [ + 56, + 46 + ], + [ + 56, + 47 + ], + [ + 56, + 48 + ], + [ + 56, + 49 + ], + [ + 56, + 50 + ], + [ + 56, + 51 + ], + [ + 56, + 52 + ], + [ + 56, + 53 + ], + [ + 56, + 54 + ], + [ + 56, + 55 + ], + [ + 56, + 56 + ], + [ + 56, + 57 + ], + [ + 56, + 58 + ], + [ + 56, + 59 + ], + [ + 56, + 60 + ], + [ + 57, + 23 + ], + [ + 57, + 24 + ], + [ + 57, + 25 + ], + [ + 57, + 26 + ], + [ + 57, + 27 + ], + [ + 57, + 28 + ], + [ + 57, + 29 + ], + [ + 57, + 30 + ], + [ + 57, + 31 + ], + [ + 57, + 32 + ], + [ + 57, + 33 + ], + [ + 57, + 34 + ], + [ + 57, + 35 + ], + [ + 57, + 36 + ], + [ + 57, + 37 + ], + [ + 57, + 38 + ], + [ + 57, + 39 + ], + [ + 57, + 40 + ], + [ + 57, + 41 + ], + [ + 57, + 42 + ], + [ + 57, + 43 + ], + [ + 57, + 44 + ], + [ + 57, + 45 + ], + [ + 57, + 46 + ], + [ + 57, + 47 + ], + [ + 57, + 48 + ], + [ + 57, + 49 + ], + [ + 57, + 50 + ], + [ + 57, + 51 + ], + [ + 57, + 52 + ], + [ + 57, + 53 + ], + [ + 57, + 54 + ], + [ + 57, + 55 + ], + [ + 57, + 56 + ], + [ + 57, + 57 + ], + [ + 57, + 58 + ], + [ + 57, + 59 + ], + [ + 58, + 23 + ], + [ + 58, + 24 + ], + [ + 58, + 25 + ], + [ + 58, + 26 + ], + [ + 58, + 27 + ], + [ + 58, + 28 + ], + [ + 58, + 29 + ], + [ + 58, + 30 + ], + [ + 58, + 31 + ], + [ + 58, + 32 + ], + [ + 58, + 33 + ], + [ + 58, + 34 + ], + [ + 58, + 35 + ], + [ + 58, + 36 + ], + [ + 58, + 37 + ], + [ + 58, + 38 + ], + [ + 58, + 39 + ], + [ + 58, + 40 + ], + [ + 58, + 41 + ], + [ + 58, + 42 + ], + [ + 58, + 43 + ], + [ + 58, + 44 + ], + [ + 58, + 45 + ], + [ + 58, + 46 + ], + [ + 58, + 47 + ], + [ + 58, + 48 + ], + [ + 58, + 49 + ], + [ + 58, + 50 + ], + [ + 58, + 51 + ], + [ + 58, + 52 + ], + [ + 58, + 53 + ], + [ + 58, + 54 + ], + [ + 58, + 55 + ], + [ + 58, + 56 + ], + [ + 58, + 57 + ], + [ + 58, + 58 + ], + [ + 58, + 59 + ], + [ + 59, + 23 + ], + [ + 59, + 24 + ], + [ + 59, + 25 + ], + [ + 59, + 26 + ], + [ + 59, + 27 + ], + [ + 59, + 28 + ], + [ + 59, + 29 + ], + [ + 59, + 30 + ], + [ + 59, + 31 + ], + [ + 59, + 32 + ], + [ + 59, + 33 + ], + [ + 59, + 34 + ], + [ + 59, + 35 + ], + [ + 59, + 36 + ], + [ + 59, + 37 + ], + [ + 59, + 38 + ], + [ + 59, + 39 + ], + [ + 59, + 40 + ], + [ + 59, + 41 + ], + [ + 59, + 42 + ], + [ + 59, + 43 + ], + [ + 59, + 44 + ], + [ + 59, + 45 + ], + [ + 59, + 46 + ], + [ + 59, + 47 + ], + [ + 59, + 48 + ], + [ + 59, + 49 + ], + [ + 59, + 50 + ], + [ + 59, + 51 + ], + [ + 59, + 52 + ], + [ + 59, + 53 + ], + [ + 59, + 54 + ], + [ + 59, + 55 + ], + [ + 59, + 56 + ], + [ + 59, + 57 + ], + [ + 59, + 58 + ], + [ + 60, + 23 + ], + [ + 60, + 24 + ], + [ + 60, + 25 + ], + [ + 60, + 26 + ], + [ + 60, + 27 + ], + [ + 60, + 28 + ], + [ + 60, + 29 + ], + [ + 60, + 30 + ], + [ + 60, + 31 + ], + [ + 60, + 32 + ], + [ + 60, + 33 + ], + [ + 60, + 34 + ], + [ + 60, + 35 + ], + [ + 60, + 36 + ], + [ + 60, + 37 + ], + [ + 60, + 38 + ], + [ + 60, + 39 + ], + [ + 60, + 40 + ], + [ + 60, + 41 + ], + [ + 60, + 42 + ], + [ + 60, + 43 + ], + [ + 60, + 44 + ], + [ + 60, + 45 + ], + [ + 60, + 46 + ], + [ + 60, + 47 + ], + [ + 60, + 48 + ], + [ + 60, + 49 + ], + [ + 60, + 50 + ], + [ + 60, + 51 + ], + [ + 60, + 52 + ], + [ + 60, + 53 + ], + [ + 60, + 54 + ], + [ + 60, + 55 + ], + [ + 60, + 56 + ], + [ + 60, + 57 + ], + [ + 61, + 23 + ], + [ + 61, + 24 + ], + [ + 61, + 25 + ], + [ + 61, + 26 + ], + [ + 61, + 27 + ], + [ + 61, + 28 + ], + [ + 61, + 29 + ], + [ + 61, + 30 + ], + [ + 61, + 31 + ], + [ + 61, + 32 + ], + [ + 61, + 33 + ], + [ + 61, + 34 + ], + [ + 61, + 35 + ], + [ + 61, + 36 + ], + [ + 61, + 37 + ], + [ + 61, + 38 + ], + [ + 61, + 39 + ], + [ + 61, + 40 + ], + [ + 61, + 41 + ], + [ + 61, + 42 + ], + [ + 61, + 43 + ], + [ + 61, + 44 + ], + [ + 61, + 45 + ], + [ + 61, + 46 + ], + [ + 61, + 47 + ], + [ + 61, + 48 + ], + [ + 61, + 49 + ], + [ + 61, + 50 + ], + [ + 61, + 51 + ], + [ + 61, + 52 + ], + [ + 61, + 53 + ], + [ + 61, + 54 + ], + [ + 61, + 55 + ], + [ + 61, + 56 + ], + [ + 61, + 57 + ], + [ + 62, + 23 + ], + [ + 62, + 24 + ], + [ + 62, + 25 + ], + [ + 62, + 26 + ], + [ + 62, + 27 + ], + [ + 62, + 28 + ], + [ + 62, + 29 + ], + [ + 62, + 30 + ], + [ + 62, + 31 + ], + [ + 62, + 32 + ], + [ + 62, + 33 + ], + [ + 62, + 34 + ], + [ + 62, + 35 + ], + [ + 62, + 36 + ], + [ + 62, + 37 + ], + [ + 62, + 38 + ], + [ + 62, + 39 + ], + [ + 62, + 40 + ], + [ + 62, + 41 + ], + [ + 62, + 42 + ], + [ + 62, + 43 + ], + [ + 62, + 44 + ], + [ + 62, + 45 + ], + [ + 62, + 46 + ], + [ + 62, + 47 + ], + [ + 62, + 48 + ], + [ + 62, + 49 + ], + [ + 62, + 50 + ], + [ + 62, + 51 + ], + [ + 62, + 52 + ], + [ + 62, + 53 + ], + [ + 62, + 54 + ], + [ + 62, + 55 + ], + [ + 62, + 56 + ], + [ + 63, + 23 + ], + [ + 63, + 24 + ], + [ + 63, + 25 + ], + [ + 63, + 26 + ], + [ + 63, + 27 + ], + [ + 63, + 28 + ], + [ + 63, + 29 + ], + [ + 63, + 30 + ], + [ + 63, + 31 + ], + [ + 63, + 32 + ], + [ + 63, + 33 + ], + [ + 63, + 34 + ], + [ + 63, + 35 + ], + [ + 63, + 36 + ], + [ + 63, + 37 + ], + [ + 63, + 38 + ], + [ + 63, + 39 + ], + [ + 63, + 40 + ], + [ + 63, + 41 + ], + [ + 63, + 42 + ], + [ + 63, + 43 + ], + [ + 63, + 44 + ], + [ + 63, + 45 + ], + [ + 63, + 46 + ], + [ + 63, + 47 + ], + [ + 63, + 48 + ], + [ + 63, + 49 + ], + [ + 63, + 50 + ], + [ + 63, + 51 + ], + [ + 63, + 52 + ], + [ + 63, + 53 + ], + [ + 63, + 54 + ], + [ + 63, + 55 + ], + [ + 63, + 56 + ], + [ + 64, + 23 + ], + [ + 64, + 24 + ], + [ + 64, + 25 + ], + [ + 64, + 26 + ], + [ + 64, + 27 + ], + [ + 64, + 28 + ], + [ + 64, + 29 + ], + [ + 64, + 30 + ], + [ + 64, + 31 + ], + [ + 64, + 32 + ], + [ + 64, + 33 + ], + [ + 64, + 34 + ], + [ + 64, + 35 + ], + [ + 64, + 36 + ], + [ + 64, + 37 + ], + [ + 64, + 38 + ], + [ + 64, + 39 + ], + [ + 64, + 40 + ], + [ + 64, + 41 + ], + [ + 64, + 42 + ], + [ + 64, + 43 + ], + [ + 64, + 44 + ], + [ + 64, + 45 + ], + [ + 64, + 46 + ], + [ + 64, + 47 + ], + [ + 64, + 48 + ], + [ + 64, + 49 + ], + [ + 64, + 50 + ], + [ + 64, + 51 + ], + [ + 64, + 52 + ], + [ + 64, + 53 + ], + [ + 64, + 54 + ], + [ + 64, + 55 + ], + [ + 65, + 23 + ], + [ + 65, + 24 + ], + [ + 65, + 25 + ], + [ + 65, + 26 + ], + [ + 65, + 27 + ], + [ + 65, + 28 + ], + [ + 65, + 29 + ], + [ + 65, + 30 + ], + [ + 65, + 31 + ], + [ + 65, + 32 + ], + [ + 65, + 33 + ], + [ + 65, + 34 + ], + [ + 65, + 35 + ], + [ + 65, + 36 + ], + [ + 65, + 37 + ], + [ + 65, + 38 + ], + [ + 65, + 39 + ], + [ + 65, + 40 + ], + [ + 65, + 41 + ], + [ + 65, + 42 + ], + [ + 65, + 43 + ], + [ + 65, + 44 + ], + [ + 65, + 45 + ], + [ + 65, + 46 + ], + [ + 65, + 47 + ], + [ + 65, + 48 + ], + [ + 65, + 49 + ], + [ + 65, + 50 + ], + [ + 65, + 51 + ], + [ + 65, + 52 + ], + [ + 65, + 53 + ], + [ + 65, + 54 + ], + [ + 66, + 23 + ], + [ + 66, + 24 + ], + [ + 66, + 25 + ], + [ + 66, + 26 + ], + [ + 66, + 27 + ], + [ + 66, + 28 + ], + [ + 66, + 29 + ], + [ + 66, + 30 + ], + [ + 66, + 31 + ], + [ + 66, + 32 + ], + [ + 66, + 33 + ], + [ + 66, + 34 + ], + [ + 66, + 35 + ], + [ + 66, + 36 + ], + [ + 66, + 37 + ], + [ + 66, + 38 + ], + [ + 66, + 39 + ], + [ + 66, + 40 + ], + [ + 66, + 41 + ], + [ + 66, + 42 + ], + [ + 66, + 43 + ], + [ + 66, + 44 + ], + [ + 66, + 45 + ], + [ + 66, + 46 + ], + [ + 66, + 47 + ], + [ + 66, + 48 + ], + [ + 66, + 49 + ], + [ + 66, + 50 + ], + [ + 66, + 51 + ], + [ + 66, + 52 + ], + [ + 66, + 53 + ], + [ + 67, + 23 + ], + [ + 67, + 24 + ], + [ + 67, + 25 + ], + [ + 67, + 26 + ], + [ + 67, + 27 + ], + [ + 67, + 28 + ], + [ + 67, + 29 + ], + [ + 67, + 30 + ], + [ + 67, + 31 + ], + [ + 67, + 32 + ], + [ + 67, + 33 + ], + [ + 67, + 34 + ], + [ + 67, + 35 + ], + [ + 67, + 36 + ], + [ + 67, + 37 + ], + [ + 67, + 38 + ], + [ + 67, + 39 + ], + [ + 67, + 40 + ], + [ + 67, + 41 + ], + [ + 67, + 42 + ], + [ + 67, + 43 + ], + [ + 67, + 44 + ], + [ + 67, + 45 + ], + [ + 67, + 46 + ], + [ + 67, + 47 + ], + [ + 67, + 48 + ], + [ + 67, + 49 + ], + [ + 67, + 50 + ], + [ + 67, + 51 + ], + [ + 67, + 52 + ], + [ + 67, + 53 + ], + [ + 68, + 22 + ], + [ + 68, + 23 + ], + [ + 68, + 24 + ], + [ + 68, + 25 + ], + [ + 68, + 26 + ], + [ + 68, + 27 + ], + [ + 68, + 28 + ], + [ + 68, + 29 + ], + [ + 68, + 30 + ], + [ + 68, + 31 + ], + [ + 68, + 32 + ], + [ + 68, + 33 + ], + [ + 68, + 34 + ], + [ + 68, + 35 + ], + [ + 68, + 36 + ], + [ + 68, + 37 + ], + [ + 68, + 38 + ], + [ + 68, + 39 + ], + [ + 68, + 40 + ], + [ + 68, + 41 + ], + [ + 68, + 42 + ], + [ + 68, + 43 + ], + [ + 68, + 44 + ], + [ + 68, + 45 + ], + [ + 68, + 46 + ], + [ + 68, + 47 + ], + [ + 68, + 48 + ], + [ + 68, + 49 + ], + [ + 68, + 50 + ], + [ + 68, + 51 + ], + [ + 68, + 52 + ], + [ + 69, + 22 + ], + [ + 69, + 23 + ], + [ + 69, + 24 + ], + [ + 69, + 25 + ], + [ + 69, + 26 + ], + [ + 69, + 27 + ], + [ + 69, + 28 + ], + [ + 69, + 29 + ], + [ + 69, + 30 + ], + [ + 69, + 31 + ], + [ + 69, + 32 + ], + [ + 69, + 33 + ], + [ + 69, + 34 + ], + [ + 69, + 35 + ], + [ + 69, + 36 + ], + [ + 69, + 37 + ], + [ + 69, + 38 + ], + [ + 69, + 39 + ], + [ + 69, + 40 + ], + [ + 69, + 41 + ], + [ + 69, + 42 + ], + [ + 69, + 43 + ], + [ + 69, + 44 + ], + [ + 69, + 45 + ], + [ + 69, + 46 + ], + [ + 69, + 47 + ], + [ + 69, + 48 + ], + [ + 69, + 49 + ], + [ + 69, + 50 + ], + [ + 69, + 51 + ], + [ + 70, + 23 + ], + [ + 70, + 24 + ], + [ + 70, + 25 + ], + [ + 70, + 26 + ], + [ + 70, + 27 + ], + [ + 70, + 28 + ], + [ + 70, + 29 + ], + [ + 70, + 30 + ], + [ + 70, + 31 + ], + [ + 70, + 32 + ], + [ + 70, + 33 + ], + [ + 70, + 34 + ], + [ + 70, + 35 + ], + [ + 70, + 36 + ], + [ + 70, + 37 + ], + [ + 70, + 38 + ], + [ + 70, + 39 + ], + [ + 70, + 40 + ], + [ + 70, + 41 + ], + [ + 70, + 42 + ], + [ + 70, + 43 + ], + [ + 70, + 44 + ], + [ + 70, + 45 + ], + [ + 70, + 46 + ], + [ + 70, + 47 + ], + [ + 70, + 48 + ], + [ + 70, + 49 + ], + [ + 70, + 50 + ], + [ + 70, + 51 + ], + [ + 71, + 22 + ], + [ + 71, + 23 + ], + [ + 71, + 24 + ], + [ + 71, + 25 + ], + [ + 71, + 26 + ], + [ + 71, + 27 + ], + [ + 71, + 28 + ], + [ + 71, + 29 + ], + [ + 71, + 30 + ], + [ + 71, + 31 + ], + [ + 71, + 32 + ], + [ + 71, + 33 + ], + [ + 71, + 34 + ], + [ + 71, + 35 + ], + [ + 71, + 36 + ], + [ + 71, + 37 + ], + [ + 71, + 38 + ], + [ + 71, + 39 + ], + [ + 71, + 40 + ], + [ + 71, + 41 + ], + [ + 71, + 42 + ], + [ + 71, + 43 + ], + [ + 71, + 44 + ], + [ + 71, + 45 + ], + [ + 71, + 46 + ], + [ + 71, + 47 + ], + [ + 71, + 48 + ], + [ + 71, + 49 + ], + [ + 71, + 50 + ], + [ + 72, + 22 + ], + [ + 72, + 23 + ], + [ + 72, + 24 + ], + [ + 72, + 25 + ], + [ + 72, + 26 + ], + [ + 72, + 27 + ], + [ + 72, + 28 + ], + [ + 72, + 29 + ], + [ + 72, + 30 + ], + [ + 72, + 31 + ], + [ + 72, + 32 + ], + [ + 72, + 33 + ], + [ + 72, + 34 + ], + [ + 72, + 35 + ], + [ + 72, + 36 + ], + [ + 72, + 37 + ], + [ + 72, + 38 + ], + [ + 72, + 39 + ], + [ + 72, + 40 + ], + [ + 72, + 41 + ], + [ + 72, + 42 + ], + [ + 72, + 43 + ], + [ + 72, + 44 + ], + [ + 72, + 45 + ], + [ + 72, + 46 + ], + [ + 72, + 47 + ], + [ + 72, + 48 + ], + [ + 72, + 49 + ], + [ + 73, + 22 + ], + [ + 73, + 23 + ], + [ + 73, + 24 + ], + [ + 73, + 25 + ], + [ + 73, + 26 + ], + [ + 73, + 27 + ], + [ + 73, + 28 + ], + [ + 73, + 29 + ], + [ + 73, + 30 + ], + [ + 73, + 31 + ], + [ + 73, + 32 + ], + [ + 73, + 33 + ], + [ + 73, + 34 + ], + [ + 73, + 35 + ], + [ + 73, + 36 + ], + [ + 73, + 37 + ], + [ + 73, + 38 + ], + [ + 73, + 39 + ], + [ + 73, + 40 + ], + [ + 73, + 41 + ], + [ + 73, + 42 + ], + [ + 73, + 43 + ], + [ + 73, + 44 + ], + [ + 73, + 45 + ], + [ + 73, + 46 + ], + [ + 73, + 47 + ], + [ + 73, + 48 + ], + [ + 74, + 22 + ], + [ + 74, + 23 + ], + [ + 74, + 24 + ], + [ + 74, + 25 + ], + [ + 74, + 26 + ], + [ + 74, + 27 + ], + [ + 74, + 28 + ], + [ + 74, + 29 + ], + [ + 74, + 30 + ], + [ + 74, + 31 + ], + [ + 74, + 32 + ], + [ + 74, + 33 + ], + [ + 74, + 34 + ], + [ + 74, + 35 + ], + [ + 74, + 36 + ], + [ + 74, + 37 + ], + [ + 74, + 38 + ], + [ + 74, + 39 + ], + [ + 74, + 40 + ], + [ + 74, + 41 + ], + [ + 74, + 42 + ], + [ + 74, + 43 + ], + [ + 74, + 44 + ], + [ + 74, + 45 + ], + [ + 74, + 46 + ], + [ + 74, + 47 + ], + [ + 75, + 22 + ], + [ + 75, + 23 + ], + [ + 75, + 24 + ], + [ + 75, + 25 + ], + [ + 75, + 26 + ], + [ + 75, + 27 + ], + [ + 75, + 28 + ], + [ + 75, + 29 + ], + [ + 75, + 30 + ], + [ + 75, + 31 + ], + [ + 75, + 32 + ], + [ + 75, + 33 + ], + [ + 75, + 34 + ], + [ + 75, + 35 + ], + [ + 75, + 36 + ], + [ + 75, + 37 + ], + [ + 75, + 38 + ], + [ + 75, + 39 + ], + [ + 75, + 40 + ], + [ + 75, + 41 + ], + [ + 75, + 42 + ], + [ + 75, + 43 + ], + [ + 75, + 44 + ], + [ + 75, + 45 + ], + [ + 75, + 46 + ], + [ + 75, + 47 + ], + [ + 76, + 22 + ], + [ + 76, + 23 + ], + [ + 76, + 24 + ], + [ + 76, + 25 + ], + [ + 76, + 26 + ], + [ + 76, + 27 + ], + [ + 76, + 28 + ], + [ + 76, + 29 + ], + [ + 76, + 30 + ], + [ + 76, + 31 + ], + [ + 76, + 32 + ], + [ + 76, + 33 + ], + [ + 76, + 34 + ], + [ + 76, + 35 + ], + [ + 76, + 36 + ], + [ + 76, + 37 + ], + [ + 76, + 38 + ], + [ + 76, + 39 + ], + [ + 76, + 40 + ], + [ + 76, + 41 + ], + [ + 76, + 42 + ], + [ + 76, + 43 + ], + [ + 76, + 44 + ], + [ + 76, + 45 + ], + [ + 76, + 46 + ], + [ + 77, + 22 + ], + [ + 77, + 23 + ], + [ + 77, + 24 + ], + [ + 77, + 25 + ], + [ + 77, + 26 + ], + [ + 77, + 27 + ], + [ + 77, + 28 + ], + [ + 77, + 29 + ], + [ + 77, + 30 + ], + [ + 77, + 31 + ], + [ + 77, + 32 + ], + [ + 77, + 33 + ], + [ + 77, + 34 + ], + [ + 77, + 35 + ], + [ + 77, + 36 + ], + [ + 77, + 37 + ], + [ + 77, + 38 + ], + [ + 77, + 39 + ], + [ + 77, + 40 + ], + [ + 77, + 41 + ], + [ + 77, + 42 + ], + [ + 77, + 43 + ], + [ + 77, + 44 + ], + [ + 77, + 45 + ], + [ + 78, + 22 + ], + [ + 78, + 23 + ], + [ + 78, + 24 + ], + [ + 78, + 25 + ], + [ + 78, + 26 + ], + [ + 78, + 27 + ], + [ + 78, + 28 + ], + [ + 78, + 29 + ], + [ + 78, + 30 + ], + [ + 78, + 31 + ], + [ + 78, + 32 + ], + [ + 78, + 33 + ], + [ + 78, + 34 + ], + [ + 78, + 35 + ], + [ + 78, + 36 + ], + [ + 78, + 37 + ], + [ + 78, + 38 + ], + [ + 78, + 39 + ], + [ + 78, + 40 + ], + [ + 78, + 41 + ], + [ + 78, + 42 + ], + [ + 78, + 43 + ], + [ + 78, + 44 + ], + [ + 79, + 33 + ], + [ + 79, + 35 + ], + [ + 79, + 36 + ], + [ + 79, + 37 + ], + [ + 79, + 38 + ], + [ + 79, + 39 + ], + [ + 79, + 40 + ], + [ + 79, + 41 + ], + [ + 79, + 42 + ], + [ + 79, + 43 + ] + ], + "summed_black_polygon_area_mm2": 70.344279, + "summed_white_base_area_mm2": 225.751951, + "black_to_base_area_ratio_estimate": 0.3116 + } + ] +} diff --git a/build/textures/finger-xynova/r01/strokes/stroke_texture_manifest.json b/build/textures/finger-xynova/r01/strokes/stroke_texture_manifest.json index 5d2e9b4..b6ae1b2 100644 --- a/build/textures/finger-xynova/r01/strokes/stroke_texture_manifest.json +++ b/build/textures/finger-xynova/r01/strokes/stroke_texture_manifest.json @@ -62,5 +62,11 @@ } } } - ] + ], + "auxiliary": { + "stroke_texture_production_report.json": { + "path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_production_report.json", + "sha256": "c128562a57d78291db4d8157a89eabbc8af179fec3675ed81ab8f8eaa7ee3e44" + } + } } diff --git a/build/textures/finger-xynova/r01/strokes/stroke_texture_production_report.json b/build/textures/finger-xynova/r01/strokes/stroke_texture_production_report.json new file mode 100644 index 0000000..e78316f --- /dev/null +++ b/build/textures/finger-xynova/r01/strokes/stroke_texture_production_report.json @@ -0,0 +1,22323 @@ +{ + "schema": "orisys-sensor-design/stroke-production-report-v1", + "units": { + "width": "mm", + "length": "mm", + "area": "mm2" + }, + "measurement_method": "Each visible camera cell is one stroke per view. SVG-bound polygons are clipped to the print page, grouped by camera cell, then measured as the short and long sides of their minimum-area rotated convex-hull rectangle. These are planar envelope dimensions, not a guarantee of minimum local feature width. Summed polygon areas may double-count overlaps and are only an occupancy estimate.", + "width_target_mm": 0.2, + "source_job": { + "path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\_texture_job.json", + "sha256": "1d9d9bf605cc95b1f8375438e944e1ff4f2f8553d1793784de50a6f6ef64de77" + }, + "parameters": { + "seed": 7, + "width_ratio": 0.42, + "length_ratio": 0.84, + "orientation_mode": "random", + "proposals": 100000 + }, + "camera_grid": [ + 80, + 80 + ], + "grid_cell_count": 6400, + "total_view_strokes": 5508, + "unique_camera_cell_count": 2754, + "cells_in_multiple_views": 2754, + "views": [ + { + "id": "produce", + "uv_map": "produce", + "svg": { + "path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_produce.svg", + "sha256": "b53b5c99eeac07399fac2167b63e938df4ee36bd9029d70faaca9ef945a09880" + }, + "page_mm": [ + 18.5, + 16.4 + ], + "raster_px": [ + 3700, + 3280 + ], + "stroke_count": 2754, + "vector_fragment_count": 17351, + "width_mm": { + "min": 3e-06, + "p5": 0.002248, + "median": 0.04844, + "p95": 0.256728, + "max": 0.320264 + }, + "length_mm": { + "min": 0.001715, + "p5": 0.100841, + "median": 0.269096, + "p95": 0.541046, + "max": 0.637608 + }, + "width_below_target_count": 2362, + "smallest_width_strokes": [ + { + "cell": [ + 0, + 36 + ], + "width_mm": 3e-06, + "length_mm": 0.001715, + "fragments": 1 + }, + { + "cell": [ + 79, + 37 + ], + "width_mm": 2.9e-05, + "length_mm": 0.019601, + "fragments": 2 + }, + { + "cell": [ + 0, + 39 + ], + "width_mm": 4.4e-05, + "length_mm": 0.035856, + "fragments": 3 + }, + { + "cell": [ + 0, + 35 + ], + "width_mm": 6.8e-05, + "length_mm": 0.030554, + "fragments": 1 + }, + { + "cell": [ + 79, + 35 + ], + "width_mm": 8.1e-05, + "length_mm": 0.024556, + "fragments": 1 + }, + { + "cell": [ + 38, + 65 + ], + "width_mm": 8.6e-05, + "length_mm": 0.013197, + "fragments": 1 + }, + { + "cell": [ + 0, + 41 + ], + "width_mm": 8.7e-05, + "length_mm": 0.08531, + "fragments": 13 + }, + { + "cell": [ + 0, + 37 + ], + "width_mm": 0.000114, + "length_mm": 0.052522, + "fragments": 6 + }, + { + "cell": [ + 0, + 34 + ], + "width_mm": 0.000127, + "length_mm": 0.034721, + "fragments": 5 + }, + { + "cell": [ + 79, + 36 + ], + "width_mm": 0.000136, + "length_mm": 0.03141, + "fragments": 3 + } + ], + "camera_cells": [ + [ + 0, + 34 + ], + [ + 0, + 35 + ], + [ + 0, + 36 + ], + [ + 0, + 37 + ], + [ + 0, + 38 + ], + [ + 0, + 39 + ], + [ + 0, + 40 + ], + [ + 0, + 41 + ], + [ + 0, + 42 + ], + [ + 0, + 43 + ], + [ + 1, + 22 + ], + [ + 1, + 23 + ], + [ + 1, + 24 + ], + [ + 1, + 25 + ], + [ + 1, + 26 + ], + [ + 1, + 27 + ], + [ + 1, + 28 + ], + [ + 1, + 29 + ], + [ + 1, + 30 + ], + [ + 1, + 31 + ], + [ + 1, + 32 + ], + [ + 1, + 33 + ], + [ + 1, + 34 + ], + [ + 1, + 35 + ], + [ + 1, + 36 + ], + [ + 1, + 37 + ], + [ + 1, + 38 + ], + [ + 1, + 39 + ], + [ + 1, + 40 + ], + [ + 1, + 41 + ], + [ + 1, + 42 + ], + [ + 1, + 43 + ], + [ + 1, + 44 + ], + [ + 2, + 22 + ], + [ + 2, + 23 + ], + [ + 2, + 24 + ], + [ + 2, + 25 + ], + [ + 2, + 26 + ], + [ + 2, + 27 + ], + [ + 2, + 28 + ], + [ + 2, + 29 + ], + [ + 2, + 30 + ], + [ + 2, + 31 + ], + [ + 2, + 32 + ], + [ + 2, + 33 + ], + [ + 2, + 34 + ], + [ + 2, + 35 + ], + [ + 2, + 36 + ], + [ + 2, + 37 + ], + [ + 2, + 38 + ], + [ + 2, + 39 + ], + [ + 2, + 40 + ], + [ + 2, + 41 + ], + [ + 2, + 42 + ], + [ + 2, + 43 + ], + [ + 2, + 44 + ], + [ + 2, + 45 + ], + [ + 3, + 22 + ], + [ + 3, + 23 + ], + [ + 3, + 24 + ], + [ + 3, + 25 + ], + [ + 3, + 26 + ], + [ + 3, + 27 + ], + [ + 3, + 28 + ], + [ + 3, + 29 + ], + [ + 3, + 30 + ], + [ + 3, + 31 + ], + [ + 3, + 32 + ], + [ + 3, + 33 + ], + [ + 3, + 34 + ], + [ + 3, + 35 + ], + [ + 3, + 36 + ], + [ + 3, + 37 + ], + [ + 3, + 38 + ], + [ + 3, + 39 + ], + [ + 3, + 40 + ], + [ + 3, + 41 + ], + [ + 3, + 42 + ], + [ + 3, + 43 + ], + [ + 3, + 44 + ], + [ + 3, + 45 + ], + [ + 3, + 46 + ], + [ + 4, + 22 + ], + [ + 4, + 23 + ], + [ + 4, + 24 + ], + [ + 4, + 25 + ], + [ + 4, + 26 + ], + [ + 4, + 27 + ], + [ + 4, + 28 + ], + [ + 4, + 29 + ], + [ + 4, + 30 + ], + [ + 4, + 31 + ], + [ + 4, + 32 + ], + [ + 4, + 33 + ], + [ + 4, + 34 + ], + [ + 4, + 35 + ], + [ + 4, + 36 + ], + [ + 4, + 37 + ], + [ + 4, + 38 + ], + [ + 4, + 39 + ], + [ + 4, + 40 + ], + [ + 4, + 41 + ], + [ + 4, + 42 + ], + [ + 4, + 43 + ], + [ + 4, + 44 + ], + [ + 4, + 45 + ], + [ + 4, + 46 + ], + [ + 5, + 22 + ], + [ + 5, + 23 + ], + [ + 5, + 24 + ], + [ + 5, + 25 + ], + [ + 5, + 26 + ], + [ + 5, + 27 + ], + [ + 5, + 28 + ], + [ + 5, + 29 + ], + [ + 5, + 30 + ], + [ + 5, + 31 + ], + [ + 5, + 32 + ], + [ + 5, + 33 + ], + [ + 5, + 34 + ], + [ + 5, + 35 + ], + [ + 5, + 36 + ], + [ + 5, + 37 + ], + [ + 5, + 38 + ], + [ + 5, + 39 + ], + [ + 5, + 40 + ], + [ + 5, + 41 + ], + [ + 5, + 42 + ], + [ + 5, + 43 + ], + [ + 5, + 44 + ], + [ + 5, + 45 + ], + [ + 5, + 46 + ], + [ + 5, + 47 + ], + [ + 6, + 22 + ], + [ + 6, + 23 + ], + [ + 6, + 24 + ], + [ + 6, + 25 + ], + [ + 6, + 26 + ], + [ + 6, + 27 + ], + [ + 6, + 28 + ], + [ + 6, + 29 + ], + [ + 6, + 30 + ], + [ + 6, + 31 + ], + [ + 6, + 32 + ], + [ + 6, + 33 + ], + [ + 6, + 34 + ], + [ + 6, + 35 + ], + [ + 6, + 36 + ], + [ + 6, + 37 + ], + [ + 6, + 38 + ], + [ + 6, + 39 + ], + [ + 6, + 40 + ], + [ + 6, + 41 + ], + [ + 6, + 42 + ], + [ + 6, + 43 + ], + [ + 6, + 44 + ], + [ + 6, + 45 + ], + [ + 6, + 46 + ], + [ + 6, + 47 + ], + [ + 6, + 48 + ], + [ + 7, + 22 + ], + [ + 7, + 23 + ], + [ + 7, + 24 + ], + [ + 7, + 25 + ], + [ + 7, + 26 + ], + [ + 7, + 27 + ], + [ + 7, + 28 + ], + [ + 7, + 29 + ], + [ + 7, + 30 + ], + [ + 7, + 31 + ], + [ + 7, + 32 + ], + [ + 7, + 33 + ], + [ + 7, + 34 + ], + [ + 7, + 35 + ], + [ + 7, + 36 + ], + [ + 7, + 37 + ], + [ + 7, + 38 + ], + [ + 7, + 39 + ], + [ + 7, + 40 + ], + [ + 7, + 41 + ], + [ + 7, + 42 + ], + [ + 7, + 43 + ], + [ + 7, + 44 + ], + [ + 7, + 45 + ], + [ + 7, + 46 + ], + [ + 7, + 47 + ], + [ + 7, + 48 + ], + [ + 7, + 49 + ], + [ + 8, + 22 + ], + [ + 8, + 23 + ], + [ + 8, + 24 + ], + [ + 8, + 25 + ], + [ + 8, + 26 + ], + [ + 8, + 27 + ], + [ + 8, + 28 + ], + [ + 8, + 29 + ], + [ + 8, + 30 + ], + [ + 8, + 31 + ], + [ + 8, + 32 + ], + [ + 8, + 33 + ], + [ + 8, + 34 + ], + [ + 8, + 35 + ], + [ + 8, + 36 + ], + [ + 8, + 37 + ], + [ + 8, + 38 + ], + [ + 8, + 39 + ], + [ + 8, + 40 + ], + [ + 8, + 41 + ], + [ + 8, + 42 + ], + [ + 8, + 43 + ], + [ + 8, + 44 + ], + [ + 8, + 45 + ], + [ + 8, + 46 + ], + [ + 8, + 47 + ], + [ + 8, + 48 + ], + [ + 8, + 49 + ], + [ + 9, + 22 + ], + [ + 9, + 23 + ], + [ + 9, + 24 + ], + [ + 9, + 25 + ], + [ + 9, + 26 + ], + [ + 9, + 27 + ], + [ + 9, + 28 + ], + [ + 9, + 29 + ], + [ + 9, + 30 + ], + [ + 9, + 31 + ], + [ + 9, + 32 + ], + [ + 9, + 33 + ], + [ + 9, + 34 + ], + [ + 9, + 35 + ], + [ + 9, + 36 + ], + [ + 9, + 37 + ], + [ + 9, + 38 + ], + [ + 9, + 39 + ], + [ + 9, + 40 + ], + [ + 9, + 41 + ], + [ + 9, + 42 + ], + [ + 9, + 43 + ], + [ + 9, + 44 + ], + [ + 9, + 45 + ], + [ + 9, + 46 + ], + [ + 9, + 47 + ], + [ + 9, + 48 + ], + [ + 9, + 49 + ], + [ + 9, + 50 + ], + [ + 10, + 22 + ], + [ + 10, + 23 + ], + [ + 10, + 24 + ], + [ + 10, + 25 + ], + [ + 10, + 26 + ], + [ + 10, + 27 + ], + [ + 10, + 28 + ], + [ + 10, + 29 + ], + [ + 10, + 30 + ], + [ + 10, + 31 + ], + [ + 10, + 32 + ], + [ + 10, + 33 + ], + [ + 10, + 34 + ], + [ + 10, + 35 + ], + [ + 10, + 36 + ], + [ + 10, + 37 + ], + [ + 10, + 38 + ], + [ + 10, + 39 + ], + [ + 10, + 40 + ], + [ + 10, + 41 + ], + [ + 10, + 42 + ], + [ + 10, + 43 + ], + [ + 10, + 44 + ], + [ + 10, + 45 + ], + [ + 10, + 46 + ], + [ + 10, + 47 + ], + [ + 10, + 48 + ], + [ + 10, + 49 + ], + [ + 10, + 50 + ], + [ + 10, + 51 + ], + [ + 11, + 22 + ], + [ + 11, + 23 + ], + [ + 11, + 24 + ], + [ + 11, + 25 + ], + [ + 11, + 26 + ], + [ + 11, + 27 + ], + [ + 11, + 28 + ], + [ + 11, + 29 + ], + [ + 11, + 30 + ], + [ + 11, + 31 + ], + [ + 11, + 32 + ], + [ + 11, + 33 + ], + [ + 11, + 34 + ], + [ + 11, + 35 + ], + [ + 11, + 36 + ], + [ + 11, + 37 + ], + [ + 11, + 38 + ], + [ + 11, + 39 + ], + [ + 11, + 40 + ], + [ + 11, + 41 + ], + [ + 11, + 42 + ], + [ + 11, + 43 + ], + [ + 11, + 44 + ], + [ + 11, + 45 + ], + [ + 11, + 46 + ], + [ + 11, + 47 + ], + [ + 11, + 48 + ], + [ + 11, + 49 + ], + [ + 11, + 50 + ], + [ + 11, + 51 + ], + [ + 11, + 52 + ], + [ + 12, + 23 + ], + [ + 12, + 24 + ], + [ + 12, + 25 + ], + [ + 12, + 26 + ], + [ + 12, + 27 + ], + [ + 12, + 28 + ], + [ + 12, + 29 + ], + [ + 12, + 30 + ], + [ + 12, + 31 + ], + [ + 12, + 32 + ], + [ + 12, + 33 + ], + [ + 12, + 34 + ], + [ + 12, + 35 + ], + [ + 12, + 36 + ], + [ + 12, + 37 + ], + [ + 12, + 38 + ], + [ + 12, + 39 + ], + [ + 12, + 40 + ], + [ + 12, + 41 + ], + [ + 12, + 42 + ], + [ + 12, + 43 + ], + [ + 12, + 44 + ], + [ + 12, + 45 + ], + [ + 12, + 46 + ], + [ + 12, + 47 + ], + [ + 12, + 48 + ], + [ + 12, + 49 + ], + [ + 12, + 50 + ], + [ + 12, + 51 + ], + [ + 12, + 52 + ], + [ + 12, + 53 + ], + [ + 13, + 23 + ], + [ + 13, + 24 + ], + [ + 13, + 25 + ], + [ + 13, + 26 + ], + [ + 13, + 27 + ], + [ + 13, + 28 + ], + [ + 13, + 29 + ], + [ + 13, + 30 + ], + [ + 13, + 31 + ], + [ + 13, + 32 + ], + [ + 13, + 33 + ], + [ + 13, + 34 + ], + [ + 13, + 35 + ], + [ + 13, + 36 + ], + [ + 13, + 37 + ], + [ + 13, + 38 + ], + [ + 13, + 39 + ], + [ + 13, + 40 + ], + [ + 13, + 41 + ], + [ + 13, + 42 + ], + [ + 13, + 43 + ], + [ + 13, + 44 + ], + [ + 13, + 45 + ], + [ + 13, + 46 + ], + [ + 13, + 47 + ], + [ + 13, + 48 + ], + [ + 13, + 49 + ], + [ + 13, + 50 + ], + [ + 13, + 51 + ], + [ + 13, + 52 + ], + [ + 13, + 53 + ], + [ + 14, + 23 + ], + [ + 14, + 24 + ], + [ + 14, + 25 + ], + [ + 14, + 26 + ], + [ + 14, + 27 + ], + [ + 14, + 28 + ], + [ + 14, + 29 + ], + [ + 14, + 30 + ], + [ + 14, + 31 + ], + [ + 14, + 32 + ], + [ + 14, + 33 + ], + [ + 14, + 34 + ], + [ + 14, + 35 + ], + [ + 14, + 36 + ], + [ + 14, + 37 + ], + [ + 14, + 38 + ], + [ + 14, + 39 + ], + [ + 14, + 40 + ], + [ + 14, + 41 + ], + [ + 14, + 42 + ], + [ + 14, + 43 + ], + [ + 14, + 44 + ], + [ + 14, + 45 + ], + [ + 14, + 46 + ], + [ + 14, + 47 + ], + [ + 14, + 48 + ], + [ + 14, + 49 + ], + [ + 14, + 50 + ], + [ + 14, + 51 + ], + [ + 14, + 52 + ], + [ + 14, + 53 + ], + [ + 14, + 54 + ], + [ + 15, + 23 + ], + [ + 15, + 24 + ], + [ + 15, + 25 + ], + [ + 15, + 26 + ], + [ + 15, + 27 + ], + [ + 15, + 28 + ], + [ + 15, + 29 + ], + [ + 15, + 30 + ], + [ + 15, + 31 + ], + [ + 15, + 32 + ], + [ + 15, + 33 + ], + [ + 15, + 34 + ], + [ + 15, + 35 + ], + [ + 15, + 36 + ], + [ + 15, + 37 + ], + [ + 15, + 38 + ], + [ + 15, + 39 + ], + [ + 15, + 40 + ], + [ + 15, + 41 + ], + [ + 15, + 42 + ], + [ + 15, + 43 + ], + [ + 15, + 44 + ], + [ + 15, + 45 + ], + [ + 15, + 46 + ], + [ + 15, + 47 + ], + [ + 15, + 48 + ], + [ + 15, + 49 + ], + [ + 15, + 50 + ], + [ + 15, + 51 + ], + [ + 15, + 52 + ], + [ + 15, + 53 + ], + [ + 15, + 54 + ], + [ + 15, + 55 + ], + [ + 16, + 23 + ], + [ + 16, + 24 + ], + [ + 16, + 25 + ], + [ + 16, + 26 + ], + [ + 16, + 27 + ], + [ + 16, + 28 + ], + [ + 16, + 29 + ], + [ + 16, + 30 + ], + [ + 16, + 31 + ], + [ + 16, + 32 + ], + [ + 16, + 33 + ], + [ + 16, + 34 + ], + [ + 16, + 35 + ], + [ + 16, + 36 + ], + [ + 16, + 37 + ], + [ + 16, + 38 + ], + [ + 16, + 39 + ], + [ + 16, + 40 + ], + [ + 16, + 41 + ], + [ + 16, + 42 + ], + [ + 16, + 43 + ], + [ + 16, + 44 + ], + [ + 16, + 45 + ], + [ + 16, + 46 + ], + [ + 16, + 47 + ], + [ + 16, + 48 + ], + [ + 16, + 49 + ], + [ + 16, + 50 + ], + [ + 16, + 51 + ], + [ + 16, + 52 + ], + [ + 16, + 53 + ], + [ + 16, + 54 + ], + [ + 16, + 55 + ], + [ + 17, + 23 + ], + [ + 17, + 24 + ], + [ + 17, + 25 + ], + [ + 17, + 26 + ], + [ + 17, + 27 + ], + [ + 17, + 28 + ], + [ + 17, + 29 + ], + [ + 17, + 30 + ], + [ + 17, + 31 + ], + [ + 17, + 32 + ], + [ + 17, + 33 + ], + [ + 17, + 34 + ], + [ + 17, + 35 + ], + [ + 17, + 36 + ], + [ + 17, + 37 + ], + [ + 17, + 38 + ], + [ + 17, + 39 + ], + [ + 17, + 40 + ], + [ + 17, + 41 + ], + [ + 17, + 42 + ], + [ + 17, + 43 + ], + [ + 17, + 44 + ], + [ + 17, + 45 + ], + [ + 17, + 46 + ], + [ + 17, + 47 + ], + [ + 17, + 48 + ], + [ + 17, + 49 + ], + [ + 17, + 50 + ], + [ + 17, + 51 + ], + [ + 17, + 52 + ], + [ + 17, + 53 + ], + [ + 17, + 54 + ], + [ + 17, + 55 + ], + [ + 17, + 56 + ], + [ + 18, + 23 + ], + [ + 18, + 24 + ], + [ + 18, + 25 + ], + [ + 18, + 26 + ], + [ + 18, + 27 + ], + [ + 18, + 28 + ], + [ + 18, + 29 + ], + [ + 18, + 30 + ], + [ + 18, + 31 + ], + [ + 18, + 32 + ], + [ + 18, + 33 + ], + [ + 18, + 34 + ], + [ + 18, + 35 + ], + [ + 18, + 36 + ], + [ + 18, + 37 + ], + [ + 18, + 38 + ], + [ + 18, + 39 + ], + [ + 18, + 40 + ], + [ + 18, + 41 + ], + [ + 18, + 42 + ], + [ + 18, + 43 + ], + [ + 18, + 44 + ], + [ + 18, + 45 + ], + [ + 18, + 46 + ], + [ + 18, + 47 + ], + [ + 18, + 48 + ], + [ + 18, + 49 + ], + [ + 18, + 50 + ], + [ + 18, + 51 + ], + [ + 18, + 52 + ], + [ + 18, + 53 + ], + [ + 18, + 54 + ], + [ + 18, + 55 + ], + [ + 18, + 56 + ], + [ + 18, + 57 + ], + [ + 19, + 23 + ], + [ + 19, + 24 + ], + [ + 19, + 25 + ], + [ + 19, + 26 + ], + [ + 19, + 27 + ], + [ + 19, + 28 + ], + [ + 19, + 29 + ], + [ + 19, + 30 + ], + [ + 19, + 31 + ], + [ + 19, + 32 + ], + [ + 19, + 33 + ], + [ + 19, + 34 + ], + [ + 19, + 35 + ], + [ + 19, + 36 + ], + [ + 19, + 37 + ], + [ + 19, + 38 + ], + [ + 19, + 39 + ], + [ + 19, + 40 + ], + [ + 19, + 41 + ], + [ + 19, + 42 + ], + [ + 19, + 43 + ], + [ + 19, + 44 + ], + [ + 19, + 45 + ], + [ + 19, + 46 + ], + [ + 19, + 47 + ], + [ + 19, + 48 + ], + [ + 19, + 49 + ], + [ + 19, + 50 + ], + [ + 19, + 51 + ], + [ + 19, + 52 + ], + [ + 19, + 53 + ], + [ + 19, + 54 + ], + [ + 19, + 55 + ], + [ + 19, + 56 + ], + [ + 19, + 57 + ], + [ + 19, + 58 + ], + [ + 20, + 23 + ], + [ + 20, + 24 + ], + [ + 20, + 25 + ], + [ + 20, + 26 + ], + [ + 20, + 27 + ], + [ + 20, + 28 + ], + [ + 20, + 29 + ], + [ + 20, + 30 + ], + [ + 20, + 31 + ], + [ + 20, + 32 + ], + [ + 20, + 33 + ], + [ + 20, + 34 + ], + [ + 20, + 35 + ], + [ + 20, + 36 + ], + [ + 20, + 37 + ], + [ + 20, + 38 + ], + [ + 20, + 39 + ], + [ + 20, + 40 + ], + [ + 20, + 41 + ], + [ + 20, + 42 + ], + [ + 20, + 43 + ], + [ + 20, + 44 + ], + [ + 20, + 45 + ], + [ + 20, + 46 + ], + [ + 20, + 47 + ], + [ + 20, + 48 + ], + [ + 20, + 49 + ], + [ + 20, + 50 + ], + [ + 20, + 51 + ], + [ + 20, + 52 + ], + [ + 20, + 53 + ], + [ + 20, + 54 + ], + [ + 20, + 55 + ], + [ + 20, + 56 + ], + [ + 20, + 57 + ], + [ + 20, + 58 + ], + [ + 21, + 23 + ], + [ + 21, + 24 + ], + [ + 21, + 25 + ], + [ + 21, + 26 + ], + [ + 21, + 27 + ], + [ + 21, + 28 + ], + [ + 21, + 29 + ], + [ + 21, + 30 + ], + [ + 21, + 31 + ], + [ + 21, + 32 + ], + [ + 21, + 33 + ], + [ + 21, + 34 + ], + [ + 21, + 35 + ], + [ + 21, + 36 + ], + [ + 21, + 37 + ], + [ + 21, + 38 + ], + [ + 21, + 39 + ], + [ + 21, + 40 + ], + [ + 21, + 41 + ], + [ + 21, + 42 + ], + [ + 21, + 43 + ], + [ + 21, + 44 + ], + [ + 21, + 45 + ], + [ + 21, + 46 + ], + [ + 21, + 47 + ], + [ + 21, + 48 + ], + [ + 21, + 49 + ], + [ + 21, + 50 + ], + [ + 21, + 51 + ], + [ + 21, + 52 + ], + [ + 21, + 53 + ], + [ + 21, + 54 + ], + [ + 21, + 55 + ], + [ + 21, + 56 + ], + [ + 21, + 57 + ], + [ + 21, + 58 + ], + [ + 21, + 59 + ], + [ + 22, + 23 + ], + [ + 22, + 24 + ], + [ + 22, + 25 + ], + [ + 22, + 26 + ], + [ + 22, + 27 + ], + [ + 22, + 28 + ], + [ + 22, + 29 + ], + [ + 22, + 30 + ], + [ + 22, + 31 + ], + [ + 22, + 32 + ], + [ + 22, + 33 + ], + [ + 22, + 34 + ], + [ + 22, + 35 + ], + [ + 22, + 36 + ], + [ + 22, + 37 + ], + [ + 22, + 38 + ], + [ + 22, + 39 + ], + [ + 22, + 40 + ], + [ + 22, + 41 + ], + [ + 22, + 42 + ], + [ + 22, + 43 + ], + [ + 22, + 44 + ], + [ + 22, + 45 + ], + [ + 22, + 46 + ], + [ + 22, + 47 + ], + [ + 22, + 48 + ], + [ + 22, + 49 + ], + [ + 22, + 50 + ], + [ + 22, + 51 + ], + [ + 22, + 52 + ], + [ + 22, + 53 + ], + [ + 22, + 54 + ], + [ + 22, + 55 + ], + [ + 22, + 56 + ], + [ + 22, + 57 + ], + [ + 22, + 58 + ], + [ + 22, + 59 + ], + [ + 23, + 23 + ], + [ + 23, + 24 + ], + [ + 23, + 25 + ], + [ + 23, + 26 + ], + [ + 23, + 27 + ], + [ + 23, + 28 + ], + [ + 23, + 29 + ], + [ + 23, + 30 + ], + [ + 23, + 31 + ], + [ + 23, + 32 + ], + [ + 23, + 33 + ], + [ + 23, + 34 + ], + [ + 23, + 35 + ], + [ + 23, + 36 + ], + [ + 23, + 37 + ], + [ + 23, + 38 + ], + [ + 23, + 39 + ], + [ + 23, + 40 + ], + [ + 23, + 41 + ], + [ + 23, + 42 + ], + [ + 23, + 43 + ], + [ + 23, + 44 + ], + [ + 23, + 45 + ], + [ + 23, + 46 + ], + [ + 23, + 47 + ], + [ + 23, + 48 + ], + [ + 23, + 49 + ], + [ + 23, + 50 + ], + [ + 23, + 51 + ], + [ + 23, + 52 + ], + [ + 23, + 53 + ], + [ + 23, + 54 + ], + [ + 23, + 55 + ], + [ + 23, + 56 + ], + [ + 23, + 57 + ], + [ + 23, + 58 + ], + [ + 23, + 59 + ], + [ + 23, + 60 + ], + [ + 24, + 23 + ], + [ + 24, + 24 + ], + [ + 24, + 25 + ], + [ + 24, + 26 + ], + [ + 24, + 27 + ], + [ + 24, + 28 + ], + [ + 24, + 29 + ], + [ + 24, + 30 + ], + [ + 24, + 31 + ], + [ + 24, + 32 + ], + [ + 24, + 33 + ], + [ + 24, + 34 + ], + [ + 24, + 35 + ], + [ + 24, + 36 + ], + [ + 24, + 37 + ], + [ + 24, + 38 + ], + [ + 24, + 39 + ], + [ + 24, + 40 + ], + [ + 24, + 41 + ], + [ + 24, + 42 + ], + [ + 24, + 43 + ], + [ + 24, + 44 + ], + [ + 24, + 45 + ], + [ + 24, + 46 + ], + [ + 24, + 47 + ], + [ + 24, + 48 + ], + [ + 24, + 49 + ], + [ + 24, + 50 + ], + [ + 24, + 51 + ], + [ + 24, + 52 + ], + [ + 24, + 53 + ], + [ + 24, + 54 + ], + [ + 24, + 55 + ], + [ + 24, + 56 + ], + [ + 24, + 57 + ], + [ + 24, + 58 + ], + [ + 24, + 59 + ], + [ + 24, + 60 + ], + [ + 24, + 61 + ], + [ + 25, + 23 + ], + [ + 25, + 24 + ], + [ + 25, + 25 + ], + [ + 25, + 26 + ], + [ + 25, + 27 + ], + [ + 25, + 28 + ], + [ + 25, + 29 + ], + [ + 25, + 30 + ], + [ + 25, + 31 + ], + [ + 25, + 32 + ], + [ + 25, + 33 + ], + [ + 25, + 34 + ], + [ + 25, + 35 + ], + [ + 25, + 36 + ], + [ + 25, + 37 + ], + [ + 25, + 38 + ], + [ + 25, + 39 + ], + [ + 25, + 40 + ], + [ + 25, + 41 + ], + [ + 25, + 42 + ], + [ + 25, + 43 + ], + [ + 25, + 44 + ], + [ + 25, + 45 + ], + [ + 25, + 46 + ], + [ + 25, + 47 + ], + [ + 25, + 48 + ], + [ + 25, + 49 + ], + [ + 25, + 50 + ], + [ + 25, + 51 + ], + [ + 25, + 52 + ], + [ + 25, + 53 + ], + [ + 25, + 54 + ], + [ + 25, + 55 + ], + [ + 25, + 56 + ], + [ + 25, + 57 + ], + [ + 25, + 58 + ], + [ + 25, + 59 + ], + [ + 25, + 60 + ], + [ + 25, + 61 + ], + [ + 26, + 23 + ], + [ + 26, + 24 + ], + [ + 26, + 25 + ], + [ + 26, + 26 + ], + [ + 26, + 27 + ], + [ + 26, + 28 + ], + [ + 26, + 29 + ], + [ + 26, + 30 + ], + [ + 26, + 31 + ], + [ + 26, + 32 + ], + [ + 26, + 33 + ], + [ + 26, + 34 + ], + [ + 26, + 35 + ], + [ + 26, + 36 + ], + [ + 26, + 37 + ], + [ + 26, + 38 + ], + [ + 26, + 39 + ], + [ + 26, + 40 + ], + [ + 26, + 41 + ], + [ + 26, + 42 + ], + [ + 26, + 43 + ], + [ + 26, + 44 + ], + [ + 26, + 45 + ], + [ + 26, + 46 + ], + [ + 26, + 47 + ], + [ + 26, + 48 + ], + [ + 26, + 49 + ], + [ + 26, + 50 + ], + [ + 26, + 51 + ], + [ + 26, + 52 + ], + [ + 26, + 53 + ], + [ + 26, + 54 + ], + [ + 26, + 55 + ], + [ + 26, + 56 + ], + [ + 26, + 57 + ], + [ + 26, + 58 + ], + [ + 26, + 59 + ], + [ + 26, + 60 + ], + [ + 26, + 61 + ], + [ + 26, + 62 + ], + [ + 27, + 23 + ], + [ + 27, + 24 + ], + [ + 27, + 25 + ], + [ + 27, + 26 + ], + [ + 27, + 27 + ], + [ + 27, + 28 + ], + [ + 27, + 29 + ], + [ + 27, + 30 + ], + [ + 27, + 31 + ], + [ + 27, + 32 + ], + [ + 27, + 33 + ], + [ + 27, + 34 + ], + [ + 27, + 35 + ], + [ + 27, + 36 + ], + [ + 27, + 37 + ], + [ + 27, + 38 + ], + [ + 27, + 39 + ], + [ + 27, + 40 + ], + [ + 27, + 41 + ], + [ + 27, + 42 + ], + [ + 27, + 43 + ], + [ + 27, + 44 + ], + [ + 27, + 45 + ], + [ + 27, + 46 + ], + [ + 27, + 47 + ], + [ + 27, + 48 + ], + [ + 27, + 49 + ], + [ + 27, + 50 + ], + [ + 27, + 51 + ], + [ + 27, + 52 + ], + [ + 27, + 53 + ], + [ + 27, + 54 + ], + [ + 27, + 55 + ], + [ + 27, + 56 + ], + [ + 27, + 57 + ], + [ + 27, + 58 + ], + [ + 27, + 59 + ], + [ + 27, + 60 + ], + [ + 27, + 61 + ], + [ + 27, + 62 + ], + [ + 28, + 23 + ], + [ + 28, + 24 + ], + [ + 28, + 25 + ], + [ + 28, + 26 + ], + [ + 28, + 27 + ], + [ + 28, + 28 + ], + [ + 28, + 29 + ], + [ + 28, + 30 + ], + [ + 28, + 31 + ], + [ + 28, + 32 + ], + [ + 28, + 33 + ], + [ + 28, + 34 + ], + [ + 28, + 35 + ], + [ + 28, + 36 + ], + [ + 28, + 37 + ], + [ + 28, + 38 + ], + [ + 28, + 39 + ], + [ + 28, + 40 + ], + [ + 28, + 41 + ], + [ + 28, + 42 + ], + [ + 28, + 43 + ], + [ + 28, + 44 + ], + [ + 28, + 45 + ], + [ + 28, + 46 + ], + [ + 28, + 47 + ], + [ + 28, + 48 + ], + [ + 28, + 49 + ], + [ + 28, + 50 + ], + [ + 28, + 51 + ], + [ + 28, + 52 + ], + [ + 28, + 53 + ], + [ + 28, + 54 + ], + [ + 28, + 55 + ], + [ + 28, + 56 + ], + [ + 28, + 57 + ], + [ + 28, + 58 + ], + [ + 28, + 59 + ], + [ + 28, + 60 + ], + [ + 28, + 61 + ], + [ + 28, + 62 + ], + [ + 29, + 23 + ], + [ + 29, + 24 + ], + [ + 29, + 25 + ], + [ + 29, + 26 + ], + [ + 29, + 27 + ], + [ + 29, + 28 + ], + [ + 29, + 29 + ], + [ + 29, + 30 + ], + [ + 29, + 31 + ], + [ + 29, + 32 + ], + [ + 29, + 33 + ], + [ + 29, + 34 + ], + [ + 29, + 35 + ], + [ + 29, + 36 + ], + [ + 29, + 37 + ], + [ + 29, + 38 + ], + [ + 29, + 39 + ], + [ + 29, + 40 + ], + [ + 29, + 41 + ], + [ + 29, + 42 + ], + [ + 29, + 43 + ], + [ + 29, + 44 + ], + [ + 29, + 45 + ], + [ + 29, + 46 + ], + [ + 29, + 47 + ], + [ + 29, + 48 + ], + [ + 29, + 49 + ], + [ + 29, + 50 + ], + [ + 29, + 51 + ], + [ + 29, + 52 + ], + [ + 29, + 53 + ], + [ + 29, + 54 + ], + [ + 29, + 55 + ], + [ + 29, + 56 + ], + [ + 29, + 57 + ], + [ + 29, + 58 + ], + [ + 29, + 59 + ], + [ + 29, + 60 + ], + [ + 29, + 61 + ], + [ + 29, + 62 + ], + [ + 29, + 63 + ], + [ + 30, + 23 + ], + [ + 30, + 24 + ], + [ + 30, + 25 + ], + [ + 30, + 26 + ], + [ + 30, + 27 + ], + [ + 30, + 28 + ], + [ + 30, + 29 + ], + [ + 30, + 30 + ], + [ + 30, + 31 + ], + [ + 30, + 32 + ], + [ + 30, + 33 + ], + [ + 30, + 34 + ], + [ + 30, + 35 + ], + [ + 30, + 36 + ], + [ + 30, + 37 + ], + [ + 30, + 38 + ], + [ + 30, + 39 + ], + [ + 30, + 40 + ], + [ + 30, + 41 + ], + [ + 30, + 42 + ], + [ + 30, + 43 + ], + [ + 30, + 44 + ], + [ + 30, + 45 + ], + [ + 30, + 46 + ], + [ + 30, + 47 + ], + [ + 30, + 48 + ], + [ + 30, + 49 + ], + [ + 30, + 50 + ], + [ + 30, + 51 + ], + [ + 30, + 52 + ], + [ + 30, + 53 + ], + [ + 30, + 54 + ], + [ + 30, + 55 + ], + [ + 30, + 56 + ], + [ + 30, + 57 + ], + [ + 30, + 58 + ], + [ + 30, + 59 + ], + [ + 30, + 60 + ], + [ + 30, + 61 + ], + [ + 30, + 62 + ], + [ + 30, + 63 + ], + [ + 31, + 23 + ], + [ + 31, + 24 + ], + [ + 31, + 25 + ], + [ + 31, + 26 + ], + [ + 31, + 27 + ], + [ + 31, + 28 + ], + [ + 31, + 29 + ], + [ + 31, + 30 + ], + [ + 31, + 31 + ], + [ + 31, + 32 + ], + [ + 31, + 33 + ], + [ + 31, + 34 + ], + [ + 31, + 35 + ], + [ + 31, + 36 + ], + [ + 31, + 37 + ], + [ + 31, + 38 + ], + [ + 31, + 39 + ], + [ + 31, + 40 + ], + [ + 31, + 41 + ], + [ + 31, + 42 + ], + [ + 31, + 43 + ], + [ + 31, + 44 + ], + [ + 31, + 45 + ], + [ + 31, + 46 + ], + [ + 31, + 47 + ], + [ + 31, + 48 + ], + [ + 31, + 49 + ], + [ + 31, + 50 + ], + [ + 31, + 51 + ], + [ + 31, + 52 + ], + [ + 31, + 53 + ], + [ + 31, + 54 + ], + [ + 31, + 55 + ], + [ + 31, + 56 + ], + [ + 31, + 57 + ], + [ + 31, + 58 + ], + [ + 31, + 59 + ], + [ + 31, + 60 + ], + [ + 31, + 61 + ], + [ + 31, + 62 + ], + [ + 31, + 63 + ], + [ + 32, + 23 + ], + [ + 32, + 24 + ], + [ + 32, + 25 + ], + [ + 32, + 26 + ], + [ + 32, + 27 + ], + [ + 32, + 28 + ], + [ + 32, + 29 + ], + [ + 32, + 30 + ], + [ + 32, + 31 + ], + [ + 32, + 32 + ], + [ + 32, + 33 + ], + [ + 32, + 34 + ], + [ + 32, + 35 + ], + [ + 32, + 36 + ], + [ + 32, + 37 + ], + [ + 32, + 38 + ], + [ + 32, + 39 + ], + [ + 32, + 40 + ], + [ + 32, + 41 + ], + [ + 32, + 42 + ], + [ + 32, + 43 + ], + [ + 32, + 44 + ], + [ + 32, + 45 + ], + [ + 32, + 46 + ], + [ + 32, + 47 + ], + [ + 32, + 48 + ], + [ + 32, + 49 + ], + [ + 32, + 50 + ], + [ + 32, + 51 + ], + [ + 32, + 52 + ], + [ + 32, + 53 + ], + [ + 32, + 54 + ], + [ + 32, + 55 + ], + [ + 32, + 56 + ], + [ + 32, + 57 + ], + [ + 32, + 58 + ], + [ + 32, + 59 + ], + [ + 32, + 60 + ], + [ + 32, + 61 + ], + [ + 32, + 62 + ], + [ + 32, + 63 + ], + [ + 32, + 64 + ], + [ + 33, + 23 + ], + [ + 33, + 24 + ], + [ + 33, + 25 + ], + [ + 33, + 26 + ], + [ + 33, + 27 + ], + [ + 33, + 28 + ], + [ + 33, + 29 + ], + [ + 33, + 30 + ], + [ + 33, + 31 + ], + [ + 33, + 32 + ], + [ + 33, + 33 + ], + [ + 33, + 34 + ], + [ + 33, + 35 + ], + [ + 33, + 36 + ], + [ + 33, + 37 + ], + [ + 33, + 38 + ], + [ + 33, + 39 + ], + [ + 33, + 40 + ], + [ + 33, + 41 + ], + [ + 33, + 42 + ], + [ + 33, + 43 + ], + [ + 33, + 44 + ], + [ + 33, + 45 + ], + [ + 33, + 46 + ], + [ + 33, + 47 + ], + [ + 33, + 48 + ], + [ + 33, + 49 + ], + [ + 33, + 50 + ], + [ + 33, + 51 + ], + [ + 33, + 52 + ], + [ + 33, + 53 + ], + [ + 33, + 54 + ], + [ + 33, + 55 + ], + [ + 33, + 56 + ], + [ + 33, + 57 + ], + [ + 33, + 58 + ], + [ + 33, + 59 + ], + [ + 33, + 60 + ], + [ + 33, + 61 + ], + [ + 33, + 62 + ], + [ + 33, + 63 + ], + [ + 33, + 64 + ], + [ + 34, + 23 + ], + [ + 34, + 24 + ], + [ + 34, + 25 + ], + [ + 34, + 26 + ], + [ + 34, + 27 + ], + [ + 34, + 28 + ], + [ + 34, + 29 + ], + [ + 34, + 30 + ], + [ + 34, + 31 + ], + [ + 34, + 32 + ], + [ + 34, + 33 + ], + [ + 34, + 34 + ], + [ + 34, + 35 + ], + [ + 34, + 36 + ], + [ + 34, + 37 + ], + [ + 34, + 38 + ], + [ + 34, + 39 + ], + [ + 34, + 40 + ], + [ + 34, + 41 + ], + [ + 34, + 42 + ], + [ + 34, + 43 + ], + [ + 34, + 44 + ], + [ + 34, + 45 + ], + [ + 34, + 46 + ], + [ + 34, + 47 + ], + [ + 34, + 48 + ], + [ + 34, + 49 + ], + [ + 34, + 50 + ], + [ + 34, + 51 + ], + [ + 34, + 52 + ], + [ + 34, + 53 + ], + [ + 34, + 54 + ], + [ + 34, + 55 + ], + [ + 34, + 56 + ], + [ + 34, + 57 + ], + [ + 34, + 58 + ], + [ + 34, + 59 + ], + [ + 34, + 60 + ], + [ + 34, + 61 + ], + [ + 34, + 62 + ], + [ + 34, + 63 + ], + [ + 34, + 64 + ], + [ + 35, + 23 + ], + [ + 35, + 24 + ], + [ + 35, + 25 + ], + [ + 35, + 26 + ], + [ + 35, + 27 + ], + [ + 35, + 28 + ], + [ + 35, + 29 + ], + [ + 35, + 30 + ], + [ + 35, + 31 + ], + [ + 35, + 32 + ], + [ + 35, + 33 + ], + [ + 35, + 34 + ], + [ + 35, + 35 + ], + [ + 35, + 36 + ], + [ + 35, + 37 + ], + [ + 35, + 38 + ], + [ + 35, + 39 + ], + [ + 35, + 40 + ], + [ + 35, + 41 + ], + [ + 35, + 42 + ], + [ + 35, + 43 + ], + [ + 35, + 44 + ], + [ + 35, + 45 + ], + [ + 35, + 46 + ], + [ + 35, + 47 + ], + [ + 35, + 48 + ], + [ + 35, + 49 + ], + [ + 35, + 50 + ], + [ + 35, + 51 + ], + [ + 35, + 52 + ], + [ + 35, + 53 + ], + [ + 35, + 54 + ], + [ + 35, + 55 + ], + [ + 35, + 56 + ], + [ + 35, + 57 + ], + [ + 35, + 58 + ], + [ + 35, + 59 + ], + [ + 35, + 60 + ], + [ + 35, + 61 + ], + [ + 35, + 62 + ], + [ + 35, + 63 + ], + [ + 35, + 64 + ], + [ + 36, + 23 + ], + [ + 36, + 24 + ], + [ + 36, + 25 + ], + [ + 36, + 26 + ], + [ + 36, + 27 + ], + [ + 36, + 28 + ], + [ + 36, + 29 + ], + [ + 36, + 30 + ], + [ + 36, + 31 + ], + [ + 36, + 32 + ], + [ + 36, + 33 + ], + [ + 36, + 34 + ], + [ + 36, + 35 + ], + [ + 36, + 36 + ], + [ + 36, + 37 + ], + [ + 36, + 38 + ], + [ + 36, + 39 + ], + [ + 36, + 40 + ], + [ + 36, + 41 + ], + [ + 36, + 42 + ], + [ + 36, + 43 + ], + [ + 36, + 44 + ], + [ + 36, + 45 + ], + [ + 36, + 46 + ], + [ + 36, + 47 + ], + [ + 36, + 48 + ], + [ + 36, + 49 + ], + [ + 36, + 50 + ], + [ + 36, + 51 + ], + [ + 36, + 52 + ], + [ + 36, + 53 + ], + [ + 36, + 54 + ], + [ + 36, + 55 + ], + [ + 36, + 56 + ], + [ + 36, + 57 + ], + [ + 36, + 58 + ], + [ + 36, + 59 + ], + [ + 36, + 60 + ], + [ + 36, + 61 + ], + [ + 36, + 62 + ], + [ + 36, + 63 + ], + [ + 36, + 64 + ], + [ + 37, + 23 + ], + [ + 37, + 24 + ], + [ + 37, + 25 + ], + [ + 37, + 26 + ], + [ + 37, + 27 + ], + [ + 37, + 28 + ], + [ + 37, + 29 + ], + [ + 37, + 30 + ], + [ + 37, + 31 + ], + [ + 37, + 32 + ], + [ + 37, + 33 + ], + [ + 37, + 34 + ], + [ + 37, + 35 + ], + [ + 37, + 36 + ], + [ + 37, + 37 + ], + [ + 37, + 38 + ], + [ + 37, + 39 + ], + [ + 37, + 40 + ], + [ + 37, + 41 + ], + [ + 37, + 42 + ], + [ + 37, + 43 + ], + [ + 37, + 44 + ], + [ + 37, + 45 + ], + [ + 37, + 46 + ], + [ + 37, + 47 + ], + [ + 37, + 48 + ], + [ + 37, + 49 + ], + [ + 37, + 50 + ], + [ + 37, + 51 + ], + [ + 37, + 52 + ], + [ + 37, + 53 + ], + [ + 37, + 54 + ], + [ + 37, + 55 + ], + [ + 37, + 56 + ], + [ + 37, + 57 + ], + [ + 37, + 58 + ], + [ + 37, + 59 + ], + [ + 37, + 60 + ], + [ + 37, + 61 + ], + [ + 37, + 62 + ], + [ + 37, + 63 + ], + [ + 37, + 64 + ], + [ + 38, + 23 + ], + [ + 38, + 24 + ], + [ + 38, + 25 + ], + [ + 38, + 26 + ], + [ + 38, + 27 + ], + [ + 38, + 28 + ], + [ + 38, + 29 + ], + [ + 38, + 30 + ], + [ + 38, + 31 + ], + [ + 38, + 32 + ], + [ + 38, + 33 + ], + [ + 38, + 34 + ], + [ + 38, + 35 + ], + [ + 38, + 36 + ], + [ + 38, + 37 + ], + [ + 38, + 38 + ], + [ + 38, + 39 + ], + [ + 38, + 40 + ], + [ + 38, + 41 + ], + [ + 38, + 42 + ], + [ + 38, + 43 + ], + [ + 38, + 44 + ], + [ + 38, + 45 + ], + [ + 38, + 46 + ], + [ + 38, + 47 + ], + [ + 38, + 48 + ], + [ + 38, + 49 + ], + [ + 38, + 50 + ], + [ + 38, + 51 + ], + [ + 38, + 52 + ], + [ + 38, + 53 + ], + [ + 38, + 54 + ], + [ + 38, + 55 + ], + [ + 38, + 56 + ], + [ + 38, + 57 + ], + [ + 38, + 58 + ], + [ + 38, + 59 + ], + [ + 38, + 60 + ], + [ + 38, + 61 + ], + [ + 38, + 62 + ], + [ + 38, + 63 + ], + [ + 38, + 64 + ], + [ + 38, + 65 + ], + [ + 39, + 23 + ], + [ + 39, + 24 + ], + [ + 39, + 25 + ], + [ + 39, + 26 + ], + [ + 39, + 27 + ], + [ + 39, + 28 + ], + [ + 39, + 29 + ], + [ + 39, + 30 + ], + [ + 39, + 31 + ], + [ + 39, + 32 + ], + [ + 39, + 33 + ], + [ + 39, + 34 + ], + [ + 39, + 35 + ], + [ + 39, + 36 + ], + [ + 39, + 37 + ], + [ + 39, + 38 + ], + [ + 39, + 39 + ], + [ + 39, + 40 + ], + [ + 39, + 41 + ], + [ + 39, + 42 + ], + [ + 39, + 43 + ], + [ + 39, + 44 + ], + [ + 39, + 45 + ], + [ + 39, + 46 + ], + [ + 39, + 47 + ], + [ + 39, + 48 + ], + [ + 39, + 49 + ], + [ + 39, + 50 + ], + [ + 39, + 51 + ], + [ + 39, + 52 + ], + [ + 39, + 53 + ], + [ + 39, + 54 + ], + [ + 39, + 55 + ], + [ + 39, + 56 + ], + [ + 39, + 57 + ], + [ + 39, + 58 + ], + [ + 39, + 59 + ], + [ + 39, + 60 + ], + [ + 39, + 61 + ], + [ + 39, + 62 + ], + [ + 39, + 63 + ], + [ + 39, + 64 + ], + [ + 40, + 23 + ], + [ + 40, + 24 + ], + [ + 40, + 25 + ], + [ + 40, + 26 + ], + [ + 40, + 27 + ], + [ + 40, + 28 + ], + [ + 40, + 29 + ], + [ + 40, + 30 + ], + [ + 40, + 31 + ], + [ + 40, + 32 + ], + [ + 40, + 33 + ], + [ + 40, + 34 + ], + [ + 40, + 35 + ], + [ + 40, + 36 + ], + [ + 40, + 37 + ], + [ + 40, + 38 + ], + [ + 40, + 39 + ], + [ + 40, + 40 + ], + [ + 40, + 41 + ], + [ + 40, + 42 + ], + [ + 40, + 43 + ], + [ + 40, + 44 + ], + [ + 40, + 45 + ], + [ + 40, + 46 + ], + [ + 40, + 47 + ], + [ + 40, + 48 + ], + [ + 40, + 49 + ], + [ + 40, + 50 + ], + [ + 40, + 51 + ], + [ + 40, + 52 + ], + [ + 40, + 53 + ], + [ + 40, + 54 + ], + [ + 40, + 55 + ], + [ + 40, + 56 + ], + [ + 40, + 57 + ], + [ + 40, + 58 + ], + [ + 40, + 59 + ], + [ + 40, + 60 + ], + [ + 40, + 61 + ], + [ + 40, + 62 + ], + [ + 40, + 63 + ], + [ + 40, + 64 + ], + [ + 41, + 23 + ], + [ + 41, + 24 + ], + [ + 41, + 25 + ], + [ + 41, + 26 + ], + [ + 41, + 27 + ], + [ + 41, + 28 + ], + [ + 41, + 29 + ], + [ + 41, + 30 + ], + [ + 41, + 31 + ], + [ + 41, + 32 + ], + [ + 41, + 33 + ], + [ + 41, + 34 + ], + [ + 41, + 35 + ], + [ + 41, + 36 + ], + [ + 41, + 37 + ], + [ + 41, + 38 + ], + [ + 41, + 39 + ], + [ + 41, + 40 + ], + [ + 41, + 41 + ], + [ + 41, + 42 + ], + [ + 41, + 43 + ], + [ + 41, + 44 + ], + [ + 41, + 45 + ], + [ + 41, + 46 + ], + [ + 41, + 47 + ], + [ + 41, + 48 + ], + [ + 41, + 49 + ], + [ + 41, + 50 + ], + [ + 41, + 51 + ], + [ + 41, + 52 + ], + [ + 41, + 53 + ], + [ + 41, + 54 + ], + [ + 41, + 55 + ], + [ + 41, + 56 + ], + [ + 41, + 57 + ], + [ + 41, + 58 + ], + [ + 41, + 59 + ], + [ + 41, + 60 + ], + [ + 41, + 61 + ], + [ + 41, + 62 + ], + [ + 41, + 63 + ], + [ + 41, + 64 + ], + [ + 41, + 65 + ], + [ + 42, + 23 + ], + [ + 42, + 24 + ], + [ + 42, + 25 + ], + [ + 42, + 26 + ], + [ + 42, + 27 + ], + [ + 42, + 28 + ], + [ + 42, + 29 + ], + [ + 42, + 30 + ], + [ + 42, + 31 + ], + [ + 42, + 32 + ], + [ + 42, + 33 + ], + [ + 42, + 34 + ], + [ + 42, + 35 + ], + [ + 42, + 36 + ], + [ + 42, + 37 + ], + [ + 42, + 38 + ], + [ + 42, + 39 + ], + [ + 42, + 40 + ], + [ + 42, + 41 + ], + [ + 42, + 42 + ], + [ + 42, + 43 + ], + [ + 42, + 44 + ], + [ + 42, + 45 + ], + [ + 42, + 46 + ], + [ + 42, + 47 + ], + [ + 42, + 48 + ], + [ + 42, + 49 + ], + [ + 42, + 50 + ], + [ + 42, + 51 + ], + [ + 42, + 52 + ], + [ + 42, + 53 + ], + [ + 42, + 54 + ], + [ + 42, + 55 + ], + [ + 42, + 56 + ], + [ + 42, + 57 + ], + [ + 42, + 58 + ], + [ + 42, + 59 + ], + [ + 42, + 60 + ], + [ + 42, + 61 + ], + [ + 42, + 62 + ], + [ + 42, + 63 + ], + [ + 42, + 64 + ], + [ + 43, + 23 + ], + [ + 43, + 24 + ], + [ + 43, + 25 + ], + [ + 43, + 26 + ], + [ + 43, + 27 + ], + [ + 43, + 28 + ], + [ + 43, + 29 + ], + [ + 43, + 30 + ], + [ + 43, + 31 + ], + [ + 43, + 32 + ], + [ + 43, + 33 + ], + [ + 43, + 34 + ], + [ + 43, + 35 + ], + [ + 43, + 36 + ], + [ + 43, + 37 + ], + [ + 43, + 38 + ], + [ + 43, + 39 + ], + [ + 43, + 40 + ], + [ + 43, + 41 + ], + [ + 43, + 42 + ], + [ + 43, + 43 + ], + [ + 43, + 44 + ], + [ + 43, + 45 + ], + [ + 43, + 46 + ], + [ + 43, + 47 + ], + [ + 43, + 48 + ], + [ + 43, + 49 + ], + [ + 43, + 50 + ], + [ + 43, + 51 + ], + [ + 43, + 52 + ], + [ + 43, + 53 + ], + [ + 43, + 54 + ], + [ + 43, + 55 + ], + [ + 43, + 56 + ], + [ + 43, + 57 + ], + [ + 43, + 58 + ], + [ + 43, + 59 + ], + [ + 43, + 60 + ], + [ + 43, + 61 + ], + [ + 43, + 62 + ], + [ + 43, + 63 + ], + [ + 43, + 64 + ], + [ + 44, + 23 + ], + [ + 44, + 24 + ], + [ + 44, + 25 + ], + [ + 44, + 26 + ], + [ + 44, + 27 + ], + [ + 44, + 28 + ], + [ + 44, + 29 + ], + [ + 44, + 30 + ], + [ + 44, + 31 + ], + [ + 44, + 32 + ], + [ + 44, + 33 + ], + [ + 44, + 34 + ], + [ + 44, + 35 + ], + [ + 44, + 36 + ], + [ + 44, + 37 + ], + [ + 44, + 38 + ], + [ + 44, + 39 + ], + [ + 44, + 40 + ], + [ + 44, + 41 + ], + [ + 44, + 42 + ], + [ + 44, + 43 + ], + [ + 44, + 44 + ], + [ + 44, + 45 + ], + [ + 44, + 46 + ], + [ + 44, + 47 + ], + [ + 44, + 48 + ], + [ + 44, + 49 + ], + [ + 44, + 50 + ], + [ + 44, + 51 + ], + [ + 44, + 52 + ], + [ + 44, + 53 + ], + [ + 44, + 54 + ], + [ + 44, + 55 + ], + [ + 44, + 56 + ], + [ + 44, + 57 + ], + [ + 44, + 58 + ], + [ + 44, + 59 + ], + [ + 44, + 60 + ], + [ + 44, + 61 + ], + [ + 44, + 62 + ], + [ + 44, + 63 + ], + [ + 44, + 64 + ], + [ + 45, + 23 + ], + [ + 45, + 24 + ], + [ + 45, + 25 + ], + [ + 45, + 26 + ], + [ + 45, + 27 + ], + [ + 45, + 28 + ], + [ + 45, + 29 + ], + [ + 45, + 30 + ], + [ + 45, + 31 + ], + [ + 45, + 32 + ], + [ + 45, + 33 + ], + [ + 45, + 34 + ], + [ + 45, + 35 + ], + [ + 45, + 36 + ], + [ + 45, + 37 + ], + [ + 45, + 38 + ], + [ + 45, + 39 + ], + [ + 45, + 40 + ], + [ + 45, + 41 + ], + [ + 45, + 42 + ], + [ + 45, + 43 + ], + [ + 45, + 44 + ], + [ + 45, + 45 + ], + [ + 45, + 46 + ], + [ + 45, + 47 + ], + [ + 45, + 48 + ], + [ + 45, + 49 + ], + [ + 45, + 50 + ], + [ + 45, + 51 + ], + [ + 45, + 52 + ], + [ + 45, + 53 + ], + [ + 45, + 54 + ], + [ + 45, + 55 + ], + [ + 45, + 56 + ], + [ + 45, + 57 + ], + [ + 45, + 58 + ], + [ + 45, + 59 + ], + [ + 45, + 60 + ], + [ + 45, + 61 + ], + [ + 45, + 62 + ], + [ + 45, + 63 + ], + [ + 45, + 64 + ], + [ + 46, + 23 + ], + [ + 46, + 24 + ], + [ + 46, + 25 + ], + [ + 46, + 26 + ], + [ + 46, + 27 + ], + [ + 46, + 28 + ], + [ + 46, + 29 + ], + [ + 46, + 30 + ], + [ + 46, + 31 + ], + [ + 46, + 32 + ], + [ + 46, + 33 + ], + [ + 46, + 34 + ], + [ + 46, + 35 + ], + [ + 46, + 36 + ], + [ + 46, + 37 + ], + [ + 46, + 38 + ], + [ + 46, + 39 + ], + [ + 46, + 40 + ], + [ + 46, + 41 + ], + [ + 46, + 42 + ], + [ + 46, + 43 + ], + [ + 46, + 44 + ], + [ + 46, + 45 + ], + [ + 46, + 46 + ], + [ + 46, + 47 + ], + [ + 46, + 48 + ], + [ + 46, + 49 + ], + [ + 46, + 50 + ], + [ + 46, + 51 + ], + [ + 46, + 52 + ], + [ + 46, + 53 + ], + [ + 46, + 54 + ], + [ + 46, + 55 + ], + [ + 46, + 56 + ], + [ + 46, + 57 + ], + [ + 46, + 58 + ], + [ + 46, + 59 + ], + [ + 46, + 60 + ], + [ + 46, + 61 + ], + [ + 46, + 62 + ], + [ + 46, + 63 + ], + [ + 46, + 64 + ], + [ + 47, + 23 + ], + [ + 47, + 24 + ], + [ + 47, + 25 + ], + [ + 47, + 26 + ], + [ + 47, + 27 + ], + [ + 47, + 28 + ], + [ + 47, + 29 + ], + [ + 47, + 30 + ], + [ + 47, + 31 + ], + [ + 47, + 32 + ], + [ + 47, + 33 + ], + [ + 47, + 34 + ], + [ + 47, + 35 + ], + [ + 47, + 36 + ], + [ + 47, + 37 + ], + [ + 47, + 38 + ], + [ + 47, + 39 + ], + [ + 47, + 40 + ], + [ + 47, + 41 + ], + [ + 47, + 42 + ], + [ + 47, + 43 + ], + [ + 47, + 44 + ], + [ + 47, + 45 + ], + [ + 47, + 46 + ], + [ + 47, + 47 + ], + [ + 47, + 48 + ], + [ + 47, + 49 + ], + [ + 47, + 50 + ], + [ + 47, + 51 + ], + [ + 47, + 52 + ], + [ + 47, + 53 + ], + [ + 47, + 54 + ], + [ + 47, + 55 + ], + [ + 47, + 56 + ], + [ + 47, + 57 + ], + [ + 47, + 58 + ], + [ + 47, + 59 + ], + [ + 47, + 60 + ], + [ + 47, + 61 + ], + [ + 47, + 62 + ], + [ + 47, + 63 + ], + [ + 47, + 64 + ], + [ + 48, + 23 + ], + [ + 48, + 24 + ], + [ + 48, + 25 + ], + [ + 48, + 26 + ], + [ + 48, + 27 + ], + [ + 48, + 28 + ], + [ + 48, + 29 + ], + [ + 48, + 30 + ], + [ + 48, + 31 + ], + [ + 48, + 32 + ], + [ + 48, + 33 + ], + [ + 48, + 34 + ], + [ + 48, + 35 + ], + [ + 48, + 36 + ], + [ + 48, + 37 + ], + [ + 48, + 38 + ], + [ + 48, + 39 + ], + [ + 48, + 40 + ], + [ + 48, + 41 + ], + [ + 48, + 42 + ], + [ + 48, + 43 + ], + [ + 48, + 44 + ], + [ + 48, + 45 + ], + [ + 48, + 46 + ], + [ + 48, + 47 + ], + [ + 48, + 48 + ], + [ + 48, + 49 + ], + [ + 48, + 50 + ], + [ + 48, + 51 + ], + [ + 48, + 52 + ], + [ + 48, + 53 + ], + [ + 48, + 54 + ], + [ + 48, + 55 + ], + [ + 48, + 56 + ], + [ + 48, + 57 + ], + [ + 48, + 58 + ], + [ + 48, + 59 + ], + [ + 48, + 60 + ], + [ + 48, + 61 + ], + [ + 48, + 62 + ], + [ + 48, + 63 + ], + [ + 49, + 23 + ], + [ + 49, + 24 + ], + [ + 49, + 25 + ], + [ + 49, + 26 + ], + [ + 49, + 27 + ], + [ + 49, + 28 + ], + [ + 49, + 29 + ], + [ + 49, + 30 + ], + [ + 49, + 31 + ], + [ + 49, + 32 + ], + [ + 49, + 33 + ], + [ + 49, + 34 + ], + [ + 49, + 35 + ], + [ + 49, + 36 + ], + [ + 49, + 37 + ], + [ + 49, + 38 + ], + [ + 49, + 39 + ], + [ + 49, + 40 + ], + [ + 49, + 41 + ], + [ + 49, + 42 + ], + [ + 49, + 43 + ], + [ + 49, + 44 + ], + [ + 49, + 45 + ], + [ + 49, + 46 + ], + [ + 49, + 47 + ], + [ + 49, + 48 + ], + [ + 49, + 49 + ], + [ + 49, + 50 + ], + [ + 49, + 51 + ], + [ + 49, + 52 + ], + [ + 49, + 53 + ], + [ + 49, + 54 + ], + [ + 49, + 55 + ], + [ + 49, + 56 + ], + [ + 49, + 57 + ], + [ + 49, + 58 + ], + [ + 49, + 59 + ], + [ + 49, + 60 + ], + [ + 49, + 61 + ], + [ + 49, + 62 + ], + [ + 49, + 63 + ], + [ + 50, + 23 + ], + [ + 50, + 24 + ], + [ + 50, + 25 + ], + [ + 50, + 26 + ], + [ + 50, + 27 + ], + [ + 50, + 28 + ], + [ + 50, + 29 + ], + [ + 50, + 30 + ], + [ + 50, + 31 + ], + [ + 50, + 32 + ], + [ + 50, + 33 + ], + [ + 50, + 34 + ], + [ + 50, + 35 + ], + [ + 50, + 36 + ], + [ + 50, + 37 + ], + [ + 50, + 38 + ], + [ + 50, + 39 + ], + [ + 50, + 40 + ], + [ + 50, + 41 + ], + [ + 50, + 42 + ], + [ + 50, + 43 + ], + [ + 50, + 44 + ], + [ + 50, + 45 + ], + [ + 50, + 46 + ], + [ + 50, + 47 + ], + [ + 50, + 48 + ], + [ + 50, + 49 + ], + [ + 50, + 50 + ], + [ + 50, + 51 + ], + [ + 50, + 52 + ], + [ + 50, + 53 + ], + [ + 50, + 54 + ], + [ + 50, + 55 + ], + [ + 50, + 56 + ], + [ + 50, + 57 + ], + [ + 50, + 58 + ], + [ + 50, + 59 + ], + [ + 50, + 60 + ], + [ + 50, + 61 + ], + [ + 50, + 62 + ], + [ + 50, + 63 + ], + [ + 51, + 23 + ], + [ + 51, + 24 + ], + [ + 51, + 25 + ], + [ + 51, + 26 + ], + [ + 51, + 27 + ], + [ + 51, + 28 + ], + [ + 51, + 29 + ], + [ + 51, + 30 + ], + [ + 51, + 31 + ], + [ + 51, + 32 + ], + [ + 51, + 33 + ], + [ + 51, + 34 + ], + [ + 51, + 35 + ], + [ + 51, + 36 + ], + [ + 51, + 37 + ], + [ + 51, + 38 + ], + [ + 51, + 39 + ], + [ + 51, + 40 + ], + [ + 51, + 41 + ], + [ + 51, + 42 + ], + [ + 51, + 43 + ], + [ + 51, + 44 + ], + [ + 51, + 45 + ], + [ + 51, + 46 + ], + [ + 51, + 47 + ], + [ + 51, + 48 + ], + [ + 51, + 49 + ], + [ + 51, + 50 + ], + [ + 51, + 51 + ], + [ + 51, + 52 + ], + [ + 51, + 53 + ], + [ + 51, + 54 + ], + [ + 51, + 55 + ], + [ + 51, + 56 + ], + [ + 51, + 57 + ], + [ + 51, + 58 + ], + [ + 51, + 59 + ], + [ + 51, + 60 + ], + [ + 51, + 61 + ], + [ + 51, + 62 + ], + [ + 51, + 63 + ], + [ + 52, + 23 + ], + [ + 52, + 24 + ], + [ + 52, + 25 + ], + [ + 52, + 26 + ], + [ + 52, + 27 + ], + [ + 52, + 28 + ], + [ + 52, + 29 + ], + [ + 52, + 30 + ], + [ + 52, + 31 + ], + [ + 52, + 32 + ], + [ + 52, + 33 + ], + [ + 52, + 34 + ], + [ + 52, + 35 + ], + [ + 52, + 36 + ], + [ + 52, + 37 + ], + [ + 52, + 38 + ], + [ + 52, + 39 + ], + [ + 52, + 40 + ], + [ + 52, + 41 + ], + [ + 52, + 42 + ], + [ + 52, + 43 + ], + [ + 52, + 44 + ], + [ + 52, + 45 + ], + [ + 52, + 46 + ], + [ + 52, + 47 + ], + [ + 52, + 48 + ], + [ + 52, + 49 + ], + [ + 52, + 50 + ], + [ + 52, + 51 + ], + [ + 52, + 52 + ], + [ + 52, + 53 + ], + [ + 52, + 54 + ], + [ + 52, + 55 + ], + [ + 52, + 56 + ], + [ + 52, + 57 + ], + [ + 52, + 58 + ], + [ + 52, + 59 + ], + [ + 52, + 60 + ], + [ + 52, + 61 + ], + [ + 52, + 62 + ], + [ + 53, + 23 + ], + [ + 53, + 24 + ], + [ + 53, + 25 + ], + [ + 53, + 26 + ], + [ + 53, + 27 + ], + [ + 53, + 28 + ], + [ + 53, + 29 + ], + [ + 53, + 30 + ], + [ + 53, + 31 + ], + [ + 53, + 32 + ], + [ + 53, + 33 + ], + [ + 53, + 34 + ], + [ + 53, + 35 + ], + [ + 53, + 36 + ], + [ + 53, + 37 + ], + [ + 53, + 38 + ], + [ + 53, + 39 + ], + [ + 53, + 40 + ], + [ + 53, + 41 + ], + [ + 53, + 42 + ], + [ + 53, + 43 + ], + [ + 53, + 44 + ], + [ + 53, + 45 + ], + [ + 53, + 46 + ], + [ + 53, + 47 + ], + [ + 53, + 48 + ], + [ + 53, + 49 + ], + [ + 53, + 50 + ], + [ + 53, + 51 + ], + [ + 53, + 52 + ], + [ + 53, + 53 + ], + [ + 53, + 54 + ], + [ + 53, + 55 + ], + [ + 53, + 56 + ], + [ + 53, + 57 + ], + [ + 53, + 58 + ], + [ + 53, + 59 + ], + [ + 53, + 60 + ], + [ + 53, + 61 + ], + [ + 53, + 62 + ], + [ + 54, + 23 + ], + [ + 54, + 24 + ], + [ + 54, + 25 + ], + [ + 54, + 26 + ], + [ + 54, + 27 + ], + [ + 54, + 28 + ], + [ + 54, + 29 + ], + [ + 54, + 30 + ], + [ + 54, + 31 + ], + [ + 54, + 32 + ], + [ + 54, + 33 + ], + [ + 54, + 34 + ], + [ + 54, + 35 + ], + [ + 54, + 36 + ], + [ + 54, + 37 + ], + [ + 54, + 38 + ], + [ + 54, + 39 + ], + [ + 54, + 40 + ], + [ + 54, + 41 + ], + [ + 54, + 42 + ], + [ + 54, + 43 + ], + [ + 54, + 44 + ], + [ + 54, + 45 + ], + [ + 54, + 46 + ], + [ + 54, + 47 + ], + [ + 54, + 48 + ], + [ + 54, + 49 + ], + [ + 54, + 50 + ], + [ + 54, + 51 + ], + [ + 54, + 52 + ], + [ + 54, + 53 + ], + [ + 54, + 54 + ], + [ + 54, + 55 + ], + [ + 54, + 56 + ], + [ + 54, + 57 + ], + [ + 54, + 58 + ], + [ + 54, + 59 + ], + [ + 54, + 60 + ], + [ + 54, + 61 + ], + [ + 55, + 23 + ], + [ + 55, + 24 + ], + [ + 55, + 25 + ], + [ + 55, + 26 + ], + [ + 55, + 27 + ], + [ + 55, + 28 + ], + [ + 55, + 29 + ], + [ + 55, + 30 + ], + [ + 55, + 31 + ], + [ + 55, + 32 + ], + [ + 55, + 33 + ], + [ + 55, + 34 + ], + [ + 55, + 35 + ], + [ + 55, + 36 + ], + [ + 55, + 37 + ], + [ + 55, + 38 + ], + [ + 55, + 39 + ], + [ + 55, + 40 + ], + [ + 55, + 41 + ], + [ + 55, + 42 + ], + [ + 55, + 43 + ], + [ + 55, + 44 + ], + [ + 55, + 45 + ], + [ + 55, + 46 + ], + [ + 55, + 47 + ], + [ + 55, + 48 + ], + [ + 55, + 49 + ], + [ + 55, + 50 + ], + [ + 55, + 51 + ], + [ + 55, + 52 + ], + [ + 55, + 53 + ], + [ + 55, + 54 + ], + [ + 55, + 55 + ], + [ + 55, + 56 + ], + [ + 55, + 57 + ], + [ + 55, + 58 + ], + [ + 55, + 59 + ], + [ + 55, + 60 + ], + [ + 56, + 23 + ], + [ + 56, + 24 + ], + [ + 56, + 25 + ], + [ + 56, + 26 + ], + [ + 56, + 27 + ], + [ + 56, + 28 + ], + [ + 56, + 29 + ], + [ + 56, + 30 + ], + [ + 56, + 31 + ], + [ + 56, + 32 + ], + [ + 56, + 33 + ], + [ + 56, + 34 + ], + [ + 56, + 35 + ], + [ + 56, + 36 + ], + [ + 56, + 37 + ], + [ + 56, + 38 + ], + [ + 56, + 39 + ], + [ + 56, + 40 + ], + [ + 56, + 41 + ], + [ + 56, + 42 + ], + [ + 56, + 43 + ], + [ + 56, + 44 + ], + [ + 56, + 45 + ], + [ + 56, + 46 + ], + [ + 56, + 47 + ], + [ + 56, + 48 + ], + [ + 56, + 49 + ], + [ + 56, + 50 + ], + [ + 56, + 51 + ], + [ + 56, + 52 + ], + [ + 56, + 53 + ], + [ + 56, + 54 + ], + [ + 56, + 55 + ], + [ + 56, + 56 + ], + [ + 56, + 57 + ], + [ + 56, + 58 + ], + [ + 56, + 59 + ], + [ + 56, + 60 + ], + [ + 57, + 23 + ], + [ + 57, + 24 + ], + [ + 57, + 25 + ], + [ + 57, + 26 + ], + [ + 57, + 27 + ], + [ + 57, + 28 + ], + [ + 57, + 29 + ], + [ + 57, + 30 + ], + [ + 57, + 31 + ], + [ + 57, + 32 + ], + [ + 57, + 33 + ], + [ + 57, + 34 + ], + [ + 57, + 35 + ], + [ + 57, + 36 + ], + [ + 57, + 37 + ], + [ + 57, + 38 + ], + [ + 57, + 39 + ], + [ + 57, + 40 + ], + [ + 57, + 41 + ], + [ + 57, + 42 + ], + [ + 57, + 43 + ], + [ + 57, + 44 + ], + [ + 57, + 45 + ], + [ + 57, + 46 + ], + [ + 57, + 47 + ], + [ + 57, + 48 + ], + [ + 57, + 49 + ], + [ + 57, + 50 + ], + [ + 57, + 51 + ], + [ + 57, + 52 + ], + [ + 57, + 53 + ], + [ + 57, + 54 + ], + [ + 57, + 55 + ], + [ + 57, + 56 + ], + [ + 57, + 57 + ], + [ + 57, + 58 + ], + [ + 57, + 59 + ], + [ + 58, + 23 + ], + [ + 58, + 24 + ], + [ + 58, + 25 + ], + [ + 58, + 26 + ], + [ + 58, + 27 + ], + [ + 58, + 28 + ], + [ + 58, + 29 + ], + [ + 58, + 30 + ], + [ + 58, + 31 + ], + [ + 58, + 32 + ], + [ + 58, + 33 + ], + [ + 58, + 34 + ], + [ + 58, + 35 + ], + [ + 58, + 36 + ], + [ + 58, + 37 + ], + [ + 58, + 38 + ], + [ + 58, + 39 + ], + [ + 58, + 40 + ], + [ + 58, + 41 + ], + [ + 58, + 42 + ], + [ + 58, + 43 + ], + [ + 58, + 44 + ], + [ + 58, + 45 + ], + [ + 58, + 46 + ], + [ + 58, + 47 + ], + [ + 58, + 48 + ], + [ + 58, + 49 + ], + [ + 58, + 50 + ], + [ + 58, + 51 + ], + [ + 58, + 52 + ], + [ + 58, + 53 + ], + [ + 58, + 54 + ], + [ + 58, + 55 + ], + [ + 58, + 56 + ], + [ + 58, + 57 + ], + [ + 58, + 58 + ], + [ + 58, + 59 + ], + [ + 59, + 23 + ], + [ + 59, + 24 + ], + [ + 59, + 25 + ], + [ + 59, + 26 + ], + [ + 59, + 27 + ], + [ + 59, + 28 + ], + [ + 59, + 29 + ], + [ + 59, + 30 + ], + [ + 59, + 31 + ], + [ + 59, + 32 + ], + [ + 59, + 33 + ], + [ + 59, + 34 + ], + [ + 59, + 35 + ], + [ + 59, + 36 + ], + [ + 59, + 37 + ], + [ + 59, + 38 + ], + [ + 59, + 39 + ], + [ + 59, + 40 + ], + [ + 59, + 41 + ], + [ + 59, + 42 + ], + [ + 59, + 43 + ], + [ + 59, + 44 + ], + [ + 59, + 45 + ], + [ + 59, + 46 + ], + [ + 59, + 47 + ], + [ + 59, + 48 + ], + [ + 59, + 49 + ], + [ + 59, + 50 + ], + [ + 59, + 51 + ], + [ + 59, + 52 + ], + [ + 59, + 53 + ], + [ + 59, + 54 + ], + [ + 59, + 55 + ], + [ + 59, + 56 + ], + [ + 59, + 57 + ], + [ + 59, + 58 + ], + [ + 60, + 23 + ], + [ + 60, + 24 + ], + [ + 60, + 25 + ], + [ + 60, + 26 + ], + [ + 60, + 27 + ], + [ + 60, + 28 + ], + [ + 60, + 29 + ], + [ + 60, + 30 + ], + [ + 60, + 31 + ], + [ + 60, + 32 + ], + [ + 60, + 33 + ], + [ + 60, + 34 + ], + [ + 60, + 35 + ], + [ + 60, + 36 + ], + [ + 60, + 37 + ], + [ + 60, + 38 + ], + [ + 60, + 39 + ], + [ + 60, + 40 + ], + [ + 60, + 41 + ], + [ + 60, + 42 + ], + [ + 60, + 43 + ], + [ + 60, + 44 + ], + [ + 60, + 45 + ], + [ + 60, + 46 + ], + [ + 60, + 47 + ], + [ + 60, + 48 + ], + [ + 60, + 49 + ], + [ + 60, + 50 + ], + [ + 60, + 51 + ], + [ + 60, + 52 + ], + [ + 60, + 53 + ], + [ + 60, + 54 + ], + [ + 60, + 55 + ], + [ + 60, + 56 + ], + [ + 60, + 57 + ], + [ + 61, + 23 + ], + [ + 61, + 24 + ], + [ + 61, + 25 + ], + [ + 61, + 26 + ], + [ + 61, + 27 + ], + [ + 61, + 28 + ], + [ + 61, + 29 + ], + [ + 61, + 30 + ], + [ + 61, + 31 + ], + [ + 61, + 32 + ], + [ + 61, + 33 + ], + [ + 61, + 34 + ], + [ + 61, + 35 + ], + [ + 61, + 36 + ], + [ + 61, + 37 + ], + [ + 61, + 38 + ], + [ + 61, + 39 + ], + [ + 61, + 40 + ], + [ + 61, + 41 + ], + [ + 61, + 42 + ], + [ + 61, + 43 + ], + [ + 61, + 44 + ], + [ + 61, + 45 + ], + [ + 61, + 46 + ], + [ + 61, + 47 + ], + [ + 61, + 48 + ], + [ + 61, + 49 + ], + [ + 61, + 50 + ], + [ + 61, + 51 + ], + [ + 61, + 52 + ], + [ + 61, + 53 + ], + [ + 61, + 54 + ], + [ + 61, + 55 + ], + [ + 61, + 56 + ], + [ + 61, + 57 + ], + [ + 62, + 23 + ], + [ + 62, + 24 + ], + [ + 62, + 25 + ], + [ + 62, + 26 + ], + [ + 62, + 27 + ], + [ + 62, + 28 + ], + [ + 62, + 29 + ], + [ + 62, + 30 + ], + [ + 62, + 31 + ], + [ + 62, + 32 + ], + [ + 62, + 33 + ], + [ + 62, + 34 + ], + [ + 62, + 35 + ], + [ + 62, + 36 + ], + [ + 62, + 37 + ], + [ + 62, + 38 + ], + [ + 62, + 39 + ], + [ + 62, + 40 + ], + [ + 62, + 41 + ], + [ + 62, + 42 + ], + [ + 62, + 43 + ], + [ + 62, + 44 + ], + [ + 62, + 45 + ], + [ + 62, + 46 + ], + [ + 62, + 47 + ], + [ + 62, + 48 + ], + [ + 62, + 49 + ], + [ + 62, + 50 + ], + [ + 62, + 51 + ], + [ + 62, + 52 + ], + [ + 62, + 53 + ], + [ + 62, + 54 + ], + [ + 62, + 55 + ], + [ + 62, + 56 + ], + [ + 63, + 23 + ], + [ + 63, + 24 + ], + [ + 63, + 25 + ], + [ + 63, + 26 + ], + [ + 63, + 27 + ], + [ + 63, + 28 + ], + [ + 63, + 29 + ], + [ + 63, + 30 + ], + [ + 63, + 31 + ], + [ + 63, + 32 + ], + [ + 63, + 33 + ], + [ + 63, + 34 + ], + [ + 63, + 35 + ], + [ + 63, + 36 + ], + [ + 63, + 37 + ], + [ + 63, + 38 + ], + [ + 63, + 39 + ], + [ + 63, + 40 + ], + [ + 63, + 41 + ], + [ + 63, + 42 + ], + [ + 63, + 43 + ], + [ + 63, + 44 + ], + [ + 63, + 45 + ], + [ + 63, + 46 + ], + [ + 63, + 47 + ], + [ + 63, + 48 + ], + [ + 63, + 49 + ], + [ + 63, + 50 + ], + [ + 63, + 51 + ], + [ + 63, + 52 + ], + [ + 63, + 53 + ], + [ + 63, + 54 + ], + [ + 63, + 55 + ], + [ + 63, + 56 + ], + [ + 64, + 23 + ], + [ + 64, + 24 + ], + [ + 64, + 25 + ], + [ + 64, + 26 + ], + [ + 64, + 27 + ], + [ + 64, + 28 + ], + [ + 64, + 29 + ], + [ + 64, + 30 + ], + [ + 64, + 31 + ], + [ + 64, + 32 + ], + [ + 64, + 33 + ], + [ + 64, + 34 + ], + [ + 64, + 35 + ], + [ + 64, + 36 + ], + [ + 64, + 37 + ], + [ + 64, + 38 + ], + [ + 64, + 39 + ], + [ + 64, + 40 + ], + [ + 64, + 41 + ], + [ + 64, + 42 + ], + [ + 64, + 43 + ], + [ + 64, + 44 + ], + [ + 64, + 45 + ], + [ + 64, + 46 + ], + [ + 64, + 47 + ], + [ + 64, + 48 + ], + [ + 64, + 49 + ], + [ + 64, + 50 + ], + [ + 64, + 51 + ], + [ + 64, + 52 + ], + [ + 64, + 53 + ], + [ + 64, + 54 + ], + [ + 64, + 55 + ], + [ + 65, + 23 + ], + [ + 65, + 24 + ], + [ + 65, + 25 + ], + [ + 65, + 26 + ], + [ + 65, + 27 + ], + [ + 65, + 28 + ], + [ + 65, + 29 + ], + [ + 65, + 30 + ], + [ + 65, + 31 + ], + [ + 65, + 32 + ], + [ + 65, + 33 + ], + [ + 65, + 34 + ], + [ + 65, + 35 + ], + [ + 65, + 36 + ], + [ + 65, + 37 + ], + [ + 65, + 38 + ], + [ + 65, + 39 + ], + [ + 65, + 40 + ], + [ + 65, + 41 + ], + [ + 65, + 42 + ], + [ + 65, + 43 + ], + [ + 65, + 44 + ], + [ + 65, + 45 + ], + [ + 65, + 46 + ], + [ + 65, + 47 + ], + [ + 65, + 48 + ], + [ + 65, + 49 + ], + [ + 65, + 50 + ], + [ + 65, + 51 + ], + [ + 65, + 52 + ], + [ + 65, + 53 + ], + [ + 65, + 54 + ], + [ + 66, + 23 + ], + [ + 66, + 24 + ], + [ + 66, + 25 + ], + [ + 66, + 26 + ], + [ + 66, + 27 + ], + [ + 66, + 28 + ], + [ + 66, + 29 + ], + [ + 66, + 30 + ], + [ + 66, + 31 + ], + [ + 66, + 32 + ], + [ + 66, + 33 + ], + [ + 66, + 34 + ], + [ + 66, + 35 + ], + [ + 66, + 36 + ], + [ + 66, + 37 + ], + [ + 66, + 38 + ], + [ + 66, + 39 + ], + [ + 66, + 40 + ], + [ + 66, + 41 + ], + [ + 66, + 42 + ], + [ + 66, + 43 + ], + [ + 66, + 44 + ], + [ + 66, + 45 + ], + [ + 66, + 46 + ], + [ + 66, + 47 + ], + [ + 66, + 48 + ], + [ + 66, + 49 + ], + [ + 66, + 50 + ], + [ + 66, + 51 + ], + [ + 66, + 52 + ], + [ + 66, + 53 + ], + [ + 67, + 23 + ], + [ + 67, + 24 + ], + [ + 67, + 25 + ], + [ + 67, + 26 + ], + [ + 67, + 27 + ], + [ + 67, + 28 + ], + [ + 67, + 29 + ], + [ + 67, + 30 + ], + [ + 67, + 31 + ], + [ + 67, + 32 + ], + [ + 67, + 33 + ], + [ + 67, + 34 + ], + [ + 67, + 35 + ], + [ + 67, + 36 + ], + [ + 67, + 37 + ], + [ + 67, + 38 + ], + [ + 67, + 39 + ], + [ + 67, + 40 + ], + [ + 67, + 41 + ], + [ + 67, + 42 + ], + [ + 67, + 43 + ], + [ + 67, + 44 + ], + [ + 67, + 45 + ], + [ + 67, + 46 + ], + [ + 67, + 47 + ], + [ + 67, + 48 + ], + [ + 67, + 49 + ], + [ + 67, + 50 + ], + [ + 67, + 51 + ], + [ + 67, + 52 + ], + [ + 67, + 53 + ], + [ + 68, + 22 + ], + [ + 68, + 23 + ], + [ + 68, + 24 + ], + [ + 68, + 25 + ], + [ + 68, + 26 + ], + [ + 68, + 27 + ], + [ + 68, + 28 + ], + [ + 68, + 29 + ], + [ + 68, + 30 + ], + [ + 68, + 31 + ], + [ + 68, + 32 + ], + [ + 68, + 33 + ], + [ + 68, + 34 + ], + [ + 68, + 35 + ], + [ + 68, + 36 + ], + [ + 68, + 37 + ], + [ + 68, + 38 + ], + [ + 68, + 39 + ], + [ + 68, + 40 + ], + [ + 68, + 41 + ], + [ + 68, + 42 + ], + [ + 68, + 43 + ], + [ + 68, + 44 + ], + [ + 68, + 45 + ], + [ + 68, + 46 + ], + [ + 68, + 47 + ], + [ + 68, + 48 + ], + [ + 68, + 49 + ], + [ + 68, + 50 + ], + [ + 68, + 51 + ], + [ + 68, + 52 + ], + [ + 69, + 22 + ], + [ + 69, + 23 + ], + [ + 69, + 24 + ], + [ + 69, + 25 + ], + [ + 69, + 26 + ], + [ + 69, + 27 + ], + [ + 69, + 28 + ], + [ + 69, + 29 + ], + [ + 69, + 30 + ], + [ + 69, + 31 + ], + [ + 69, + 32 + ], + [ + 69, + 33 + ], + [ + 69, + 34 + ], + [ + 69, + 35 + ], + [ + 69, + 36 + ], + [ + 69, + 37 + ], + [ + 69, + 38 + ], + [ + 69, + 39 + ], + [ + 69, + 40 + ], + [ + 69, + 41 + ], + [ + 69, + 42 + ], + [ + 69, + 43 + ], + [ + 69, + 44 + ], + [ + 69, + 45 + ], + [ + 69, + 46 + ], + [ + 69, + 47 + ], + [ + 69, + 48 + ], + [ + 69, + 49 + ], + [ + 69, + 50 + ], + [ + 69, + 51 + ], + [ + 70, + 23 + ], + [ + 70, + 24 + ], + [ + 70, + 25 + ], + [ + 70, + 26 + ], + [ + 70, + 27 + ], + [ + 70, + 28 + ], + [ + 70, + 29 + ], + [ + 70, + 30 + ], + [ + 70, + 31 + ], + [ + 70, + 32 + ], + [ + 70, + 33 + ], + [ + 70, + 34 + ], + [ + 70, + 35 + ], + [ + 70, + 36 + ], + [ + 70, + 37 + ], + [ + 70, + 38 + ], + [ + 70, + 39 + ], + [ + 70, + 40 + ], + [ + 70, + 41 + ], + [ + 70, + 42 + ], + [ + 70, + 43 + ], + [ + 70, + 44 + ], + [ + 70, + 45 + ], + [ + 70, + 46 + ], + [ + 70, + 47 + ], + [ + 70, + 48 + ], + [ + 70, + 49 + ], + [ + 70, + 50 + ], + [ + 70, + 51 + ], + [ + 71, + 22 + ], + [ + 71, + 23 + ], + [ + 71, + 24 + ], + [ + 71, + 25 + ], + [ + 71, + 26 + ], + [ + 71, + 27 + ], + [ + 71, + 28 + ], + [ + 71, + 29 + ], + [ + 71, + 30 + ], + [ + 71, + 31 + ], + [ + 71, + 32 + ], + [ + 71, + 33 + ], + [ + 71, + 34 + ], + [ + 71, + 35 + ], + [ + 71, + 36 + ], + [ + 71, + 37 + ], + [ + 71, + 38 + ], + [ + 71, + 39 + ], + [ + 71, + 40 + ], + [ + 71, + 41 + ], + [ + 71, + 42 + ], + [ + 71, + 43 + ], + [ + 71, + 44 + ], + [ + 71, + 45 + ], + [ + 71, + 46 + ], + [ + 71, + 47 + ], + [ + 71, + 48 + ], + [ + 71, + 49 + ], + [ + 71, + 50 + ], + [ + 72, + 23 + ], + [ + 72, + 24 + ], + [ + 72, + 25 + ], + [ + 72, + 26 + ], + [ + 72, + 27 + ], + [ + 72, + 28 + ], + [ + 72, + 29 + ], + [ + 72, + 30 + ], + [ + 72, + 31 + ], + [ + 72, + 32 + ], + [ + 72, + 33 + ], + [ + 72, + 34 + ], + [ + 72, + 35 + ], + [ + 72, + 36 + ], + [ + 72, + 37 + ], + [ + 72, + 38 + ], + [ + 72, + 39 + ], + [ + 72, + 40 + ], + [ + 72, + 41 + ], + [ + 72, + 42 + ], + [ + 72, + 43 + ], + [ + 72, + 44 + ], + [ + 72, + 45 + ], + [ + 72, + 46 + ], + [ + 72, + 47 + ], + [ + 72, + 48 + ], + [ + 72, + 49 + ], + [ + 73, + 22 + ], + [ + 73, + 23 + ], + [ + 73, + 24 + ], + [ + 73, + 25 + ], + [ + 73, + 26 + ], + [ + 73, + 27 + ], + [ + 73, + 28 + ], + [ + 73, + 29 + ], + [ + 73, + 30 + ], + [ + 73, + 31 + ], + [ + 73, + 32 + ], + [ + 73, + 33 + ], + [ + 73, + 34 + ], + [ + 73, + 35 + ], + [ + 73, + 36 + ], + [ + 73, + 37 + ], + [ + 73, + 38 + ], + [ + 73, + 39 + ], + [ + 73, + 40 + ], + [ + 73, + 41 + ], + [ + 73, + 42 + ], + [ + 73, + 43 + ], + [ + 73, + 44 + ], + [ + 73, + 45 + ], + [ + 73, + 46 + ], + [ + 73, + 47 + ], + [ + 73, + 48 + ], + [ + 74, + 22 + ], + [ + 74, + 23 + ], + [ + 74, + 24 + ], + [ + 74, + 25 + ], + [ + 74, + 26 + ], + [ + 74, + 27 + ], + [ + 74, + 28 + ], + [ + 74, + 29 + ], + [ + 74, + 30 + ], + [ + 74, + 31 + ], + [ + 74, + 32 + ], + [ + 74, + 33 + ], + [ + 74, + 34 + ], + [ + 74, + 35 + ], + [ + 74, + 36 + ], + [ + 74, + 37 + ], + [ + 74, + 38 + ], + [ + 74, + 39 + ], + [ + 74, + 40 + ], + [ + 74, + 41 + ], + [ + 74, + 42 + ], + [ + 74, + 43 + ], + [ + 74, + 44 + ], + [ + 74, + 45 + ], + [ + 74, + 46 + ], + [ + 74, + 47 + ], + [ + 75, + 22 + ], + [ + 75, + 23 + ], + [ + 75, + 24 + ], + [ + 75, + 25 + ], + [ + 75, + 26 + ], + [ + 75, + 27 + ], + [ + 75, + 28 + ], + [ + 75, + 29 + ], + [ + 75, + 30 + ], + [ + 75, + 31 + ], + [ + 75, + 32 + ], + [ + 75, + 33 + ], + [ + 75, + 34 + ], + [ + 75, + 35 + ], + [ + 75, + 36 + ], + [ + 75, + 37 + ], + [ + 75, + 38 + ], + [ + 75, + 39 + ], + [ + 75, + 40 + ], + [ + 75, + 41 + ], + [ + 75, + 42 + ], + [ + 75, + 43 + ], + [ + 75, + 44 + ], + [ + 75, + 45 + ], + [ + 75, + 46 + ], + [ + 75, + 47 + ], + [ + 76, + 22 + ], + [ + 76, + 23 + ], + [ + 76, + 24 + ], + [ + 76, + 25 + ], + [ + 76, + 26 + ], + [ + 76, + 27 + ], + [ + 76, + 28 + ], + [ + 76, + 29 + ], + [ + 76, + 30 + ], + [ + 76, + 31 + ], + [ + 76, + 32 + ], + [ + 76, + 33 + ], + [ + 76, + 34 + ], + [ + 76, + 35 + ], + [ + 76, + 36 + ], + [ + 76, + 37 + ], + [ + 76, + 38 + ], + [ + 76, + 39 + ], + [ + 76, + 40 + ], + [ + 76, + 41 + ], + [ + 76, + 42 + ], + [ + 76, + 43 + ], + [ + 76, + 44 + ], + [ + 76, + 45 + ], + [ + 76, + 46 + ], + [ + 77, + 22 + ], + [ + 77, + 23 + ], + [ + 77, + 24 + ], + [ + 77, + 25 + ], + [ + 77, + 26 + ], + [ + 77, + 27 + ], + [ + 77, + 28 + ], + [ + 77, + 29 + ], + [ + 77, + 30 + ], + [ + 77, + 31 + ], + [ + 77, + 32 + ], + [ + 77, + 33 + ], + [ + 77, + 34 + ], + [ + 77, + 35 + ], + [ + 77, + 36 + ], + [ + 77, + 37 + ], + [ + 77, + 38 + ], + [ + 77, + 39 + ], + [ + 77, + 40 + ], + [ + 77, + 41 + ], + [ + 77, + 42 + ], + [ + 77, + 43 + ], + [ + 77, + 44 + ], + [ + 77, + 45 + ], + [ + 78, + 22 + ], + [ + 78, + 23 + ], + [ + 78, + 24 + ], + [ + 78, + 25 + ], + [ + 78, + 26 + ], + [ + 78, + 27 + ], + [ + 78, + 28 + ], + [ + 78, + 29 + ], + [ + 78, + 30 + ], + [ + 78, + 31 + ], + [ + 78, + 32 + ], + [ + 78, + 33 + ], + [ + 78, + 34 + ], + [ + 78, + 35 + ], + [ + 78, + 36 + ], + [ + 78, + 37 + ], + [ + 78, + 38 + ], + [ + 78, + 39 + ], + [ + 78, + 40 + ], + [ + 78, + 41 + ], + [ + 78, + 42 + ], + [ + 78, + 43 + ], + [ + 78, + 44 + ], + [ + 79, + 35 + ], + [ + 79, + 36 + ], + [ + 79, + 37 + ], + [ + 79, + 38 + ], + [ + 79, + 39 + ], + [ + 79, + 40 + ], + [ + 79, + 41 + ], + [ + 79, + 42 + ], + [ + 79, + 43 + ] + ], + "summed_black_polygon_area_mm2": 76.936371, + "summed_white_base_area_mm2": 247.022189, + "black_to_base_area_ratio_estimate": 0.311455 + }, + { + "id": "compute", + "uv_map": "compute", + "svg": { + "path": "D:\\orisys_ws\\orisys-sensor-design\\build\\textures\\finger-xynova\\r01\\strokes\\stroke_texture_compute.svg", + "sha256": "192c13019257579a7e3bca3ddcbef16ef59cfc1a5d5c19ff3a8fa26c3b8ca041" + }, + "page_mm": [ + 18.5, + 16.4 + ], + "raster_px": [ + 3700, + 3280 + ], + "stroke_count": 2754, + "vector_fragment_count": 17351, + "width_mm": { + "min": 0.000263, + "p5": 0.045557, + "median": 0.119878, + "p95": 0.168626, + "max": 0.194138 + }, + "length_mm": { + "min": 0.001825, + "p5": 0.106696, + "median": 0.246277, + "p95": 0.338316, + "max": 0.399751 + }, + "width_below_target_count": 2754, + "smallest_width_strokes": [ + { + "cell": [ + 38, + 65 + ], + "width_mm": 0.000263, + "length_mm": 0.009027, + "fragments": 1 + }, + { + "cell": [ + 0, + 36 + ], + "width_mm": 0.000335, + "length_mm": 0.001825, + "fragments": 1 + }, + { + "cell": [ + 79, + 37 + ], + "width_mm": 0.000514, + "length_mm": 0.021572, + "fragments": 2 + }, + { + "cell": [ + 79, + 35 + ], + "width_mm": 0.001418, + "length_mm": 0.026969, + "fragments": 1 + }, + { + "cell": [ + 0, + 35 + ], + "width_mm": 0.001962, + "length_mm": 0.033709, + "fragments": 1 + }, + { + "cell": [ + 79, + 36 + ], + "width_mm": 0.002392, + "length_mm": 0.034465, + "fragments": 3 + }, + { + "cell": [ + 9, + 22 + ], + "width_mm": 0.002865, + "length_mm": 0.006686, + "fragments": 2 + }, + { + "cell": [ + 1, + 22 + ], + "width_mm": 0.003727, + "length_mm": 0.031306, + "fragments": 5 + }, + { + "cell": [ + 0, + 34 + ], + "width_mm": 0.003852, + "length_mm": 0.036746, + "fragments": 5 + }, + { + "cell": [ + 24, + 61 + ], + "width_mm": 0.004231, + "length_mm": 0.072051, + "fragments": 3 + } + ], + "camera_cells": [ + [ + 0, + 34 + ], + [ + 0, + 35 + ], + [ + 0, + 36 + ], + [ + 0, + 37 + ], + [ + 0, + 38 + ], + [ + 0, + 39 + ], + [ + 0, + 40 + ], + [ + 0, + 41 + ], + [ + 0, + 42 + ], + [ + 0, + 43 + ], + [ + 1, + 22 + ], + [ + 1, + 23 + ], + [ + 1, + 24 + ], + [ + 1, + 25 + ], + [ + 1, + 26 + ], + [ + 1, + 27 + ], + [ + 1, + 28 + ], + [ + 1, + 29 + ], + [ + 1, + 30 + ], + [ + 1, + 31 + ], + [ + 1, + 32 + ], + [ + 1, + 33 + ], + [ + 1, + 34 + ], + [ + 1, + 35 + ], + [ + 1, + 36 + ], + [ + 1, + 37 + ], + [ + 1, + 38 + ], + [ + 1, + 39 + ], + [ + 1, + 40 + ], + [ + 1, + 41 + ], + [ + 1, + 42 + ], + [ + 1, + 43 + ], + [ + 1, + 44 + ], + [ + 2, + 22 + ], + [ + 2, + 23 + ], + [ + 2, + 24 + ], + [ + 2, + 25 + ], + [ + 2, + 26 + ], + [ + 2, + 27 + ], + [ + 2, + 28 + ], + [ + 2, + 29 + ], + [ + 2, + 30 + ], + [ + 2, + 31 + ], + [ + 2, + 32 + ], + [ + 2, + 33 + ], + [ + 2, + 34 + ], + [ + 2, + 35 + ], + [ + 2, + 36 + ], + [ + 2, + 37 + ], + [ + 2, + 38 + ], + [ + 2, + 39 + ], + [ + 2, + 40 + ], + [ + 2, + 41 + ], + [ + 2, + 42 + ], + [ + 2, + 43 + ], + [ + 2, + 44 + ], + [ + 2, + 45 + ], + [ + 3, + 22 + ], + [ + 3, + 23 + ], + [ + 3, + 24 + ], + [ + 3, + 25 + ], + [ + 3, + 26 + ], + [ + 3, + 27 + ], + [ + 3, + 28 + ], + [ + 3, + 29 + ], + [ + 3, + 30 + ], + [ + 3, + 31 + ], + [ + 3, + 32 + ], + [ + 3, + 33 + ], + [ + 3, + 34 + ], + [ + 3, + 35 + ], + [ + 3, + 36 + ], + [ + 3, + 37 + ], + [ + 3, + 38 + ], + [ + 3, + 39 + ], + [ + 3, + 40 + ], + [ + 3, + 41 + ], + [ + 3, + 42 + ], + [ + 3, + 43 + ], + [ + 3, + 44 + ], + [ + 3, + 45 + ], + [ + 3, + 46 + ], + [ + 4, + 22 + ], + [ + 4, + 23 + ], + [ + 4, + 24 + ], + [ + 4, + 25 + ], + [ + 4, + 26 + ], + [ + 4, + 27 + ], + [ + 4, + 28 + ], + [ + 4, + 29 + ], + [ + 4, + 30 + ], + [ + 4, + 31 + ], + [ + 4, + 32 + ], + [ + 4, + 33 + ], + [ + 4, + 34 + ], + [ + 4, + 35 + ], + [ + 4, + 36 + ], + [ + 4, + 37 + ], + [ + 4, + 38 + ], + [ + 4, + 39 + ], + [ + 4, + 40 + ], + [ + 4, + 41 + ], + [ + 4, + 42 + ], + [ + 4, + 43 + ], + [ + 4, + 44 + ], + [ + 4, + 45 + ], + [ + 4, + 46 + ], + [ + 5, + 22 + ], + [ + 5, + 23 + ], + [ + 5, + 24 + ], + [ + 5, + 25 + ], + [ + 5, + 26 + ], + [ + 5, + 27 + ], + [ + 5, + 28 + ], + [ + 5, + 29 + ], + [ + 5, + 30 + ], + [ + 5, + 31 + ], + [ + 5, + 32 + ], + [ + 5, + 33 + ], + [ + 5, + 34 + ], + [ + 5, + 35 + ], + [ + 5, + 36 + ], + [ + 5, + 37 + ], + [ + 5, + 38 + ], + [ + 5, + 39 + ], + [ + 5, + 40 + ], + [ + 5, + 41 + ], + [ + 5, + 42 + ], + [ + 5, + 43 + ], + [ + 5, + 44 + ], + [ + 5, + 45 + ], + [ + 5, + 46 + ], + [ + 5, + 47 + ], + [ + 6, + 22 + ], + [ + 6, + 23 + ], + [ + 6, + 24 + ], + [ + 6, + 25 + ], + [ + 6, + 26 + ], + [ + 6, + 27 + ], + [ + 6, + 28 + ], + [ + 6, + 29 + ], + [ + 6, + 30 + ], + [ + 6, + 31 + ], + [ + 6, + 32 + ], + [ + 6, + 33 + ], + [ + 6, + 34 + ], + [ + 6, + 35 + ], + [ + 6, + 36 + ], + [ + 6, + 37 + ], + [ + 6, + 38 + ], + [ + 6, + 39 + ], + [ + 6, + 40 + ], + [ + 6, + 41 + ], + [ + 6, + 42 + ], + [ + 6, + 43 + ], + [ + 6, + 44 + ], + [ + 6, + 45 + ], + [ + 6, + 46 + ], + [ + 6, + 47 + ], + [ + 6, + 48 + ], + [ + 7, + 22 + ], + [ + 7, + 23 + ], + [ + 7, + 24 + ], + [ + 7, + 25 + ], + [ + 7, + 26 + ], + [ + 7, + 27 + ], + [ + 7, + 28 + ], + [ + 7, + 29 + ], + [ + 7, + 30 + ], + [ + 7, + 31 + ], + [ + 7, + 32 + ], + [ + 7, + 33 + ], + [ + 7, + 34 + ], + [ + 7, + 35 + ], + [ + 7, + 36 + ], + [ + 7, + 37 + ], + [ + 7, + 38 + ], + [ + 7, + 39 + ], + [ + 7, + 40 + ], + [ + 7, + 41 + ], + [ + 7, + 42 + ], + [ + 7, + 43 + ], + [ + 7, + 44 + ], + [ + 7, + 45 + ], + [ + 7, + 46 + ], + [ + 7, + 47 + ], + [ + 7, + 48 + ], + [ + 7, + 49 + ], + [ + 8, + 22 + ], + [ + 8, + 23 + ], + [ + 8, + 24 + ], + [ + 8, + 25 + ], + [ + 8, + 26 + ], + [ + 8, + 27 + ], + [ + 8, + 28 + ], + [ + 8, + 29 + ], + [ + 8, + 30 + ], + [ + 8, + 31 + ], + [ + 8, + 32 + ], + [ + 8, + 33 + ], + [ + 8, + 34 + ], + [ + 8, + 35 + ], + [ + 8, + 36 + ], + [ + 8, + 37 + ], + [ + 8, + 38 + ], + [ + 8, + 39 + ], + [ + 8, + 40 + ], + [ + 8, + 41 + ], + [ + 8, + 42 + ], + [ + 8, + 43 + ], + [ + 8, + 44 + ], + [ + 8, + 45 + ], + [ + 8, + 46 + ], + [ + 8, + 47 + ], + [ + 8, + 48 + ], + [ + 8, + 49 + ], + [ + 9, + 22 + ], + [ + 9, + 23 + ], + [ + 9, + 24 + ], + [ + 9, + 25 + ], + [ + 9, + 26 + ], + [ + 9, + 27 + ], + [ + 9, + 28 + ], + [ + 9, + 29 + ], + [ + 9, + 30 + ], + [ + 9, + 31 + ], + [ + 9, + 32 + ], + [ + 9, + 33 + ], + [ + 9, + 34 + ], + [ + 9, + 35 + ], + [ + 9, + 36 + ], + [ + 9, + 37 + ], + [ + 9, + 38 + ], + [ + 9, + 39 + ], + [ + 9, + 40 + ], + [ + 9, + 41 + ], + [ + 9, + 42 + ], + [ + 9, + 43 + ], + [ + 9, + 44 + ], + [ + 9, + 45 + ], + [ + 9, + 46 + ], + [ + 9, + 47 + ], + [ + 9, + 48 + ], + [ + 9, + 49 + ], + [ + 9, + 50 + ], + [ + 10, + 22 + ], + [ + 10, + 23 + ], + [ + 10, + 24 + ], + [ + 10, + 25 + ], + [ + 10, + 26 + ], + [ + 10, + 27 + ], + [ + 10, + 28 + ], + [ + 10, + 29 + ], + [ + 10, + 30 + ], + [ + 10, + 31 + ], + [ + 10, + 32 + ], + [ + 10, + 33 + ], + [ + 10, + 34 + ], + [ + 10, + 35 + ], + [ + 10, + 36 + ], + [ + 10, + 37 + ], + [ + 10, + 38 + ], + [ + 10, + 39 + ], + [ + 10, + 40 + ], + [ + 10, + 41 + ], + [ + 10, + 42 + ], + [ + 10, + 43 + ], + [ + 10, + 44 + ], + [ + 10, + 45 + ], + [ + 10, + 46 + ], + [ + 10, + 47 + ], + [ + 10, + 48 + ], + [ + 10, + 49 + ], + [ + 10, + 50 + ], + [ + 10, + 51 + ], + [ + 11, + 22 + ], + [ + 11, + 23 + ], + [ + 11, + 24 + ], + [ + 11, + 25 + ], + [ + 11, + 26 + ], + [ + 11, + 27 + ], + [ + 11, + 28 + ], + [ + 11, + 29 + ], + [ + 11, + 30 + ], + [ + 11, + 31 + ], + [ + 11, + 32 + ], + [ + 11, + 33 + ], + [ + 11, + 34 + ], + [ + 11, + 35 + ], + [ + 11, + 36 + ], + [ + 11, + 37 + ], + [ + 11, + 38 + ], + [ + 11, + 39 + ], + [ + 11, + 40 + ], + [ + 11, + 41 + ], + [ + 11, + 42 + ], + [ + 11, + 43 + ], + [ + 11, + 44 + ], + [ + 11, + 45 + ], + [ + 11, + 46 + ], + [ + 11, + 47 + ], + [ + 11, + 48 + ], + [ + 11, + 49 + ], + [ + 11, + 50 + ], + [ + 11, + 51 + ], + [ + 11, + 52 + ], + [ + 12, + 23 + ], + [ + 12, + 24 + ], + [ + 12, + 25 + ], + [ + 12, + 26 + ], + [ + 12, + 27 + ], + [ + 12, + 28 + ], + [ + 12, + 29 + ], + [ + 12, + 30 + ], + [ + 12, + 31 + ], + [ + 12, + 32 + ], + [ + 12, + 33 + ], + [ + 12, + 34 + ], + [ + 12, + 35 + ], + [ + 12, + 36 + ], + [ + 12, + 37 + ], + [ + 12, + 38 + ], + [ + 12, + 39 + ], + [ + 12, + 40 + ], + [ + 12, + 41 + ], + [ + 12, + 42 + ], + [ + 12, + 43 + ], + [ + 12, + 44 + ], + [ + 12, + 45 + ], + [ + 12, + 46 + ], + [ + 12, + 47 + ], + [ + 12, + 48 + ], + [ + 12, + 49 + ], + [ + 12, + 50 + ], + [ + 12, + 51 + ], + [ + 12, + 52 + ], + [ + 12, + 53 + ], + [ + 13, + 23 + ], + [ + 13, + 24 + ], + [ + 13, + 25 + ], + [ + 13, + 26 + ], + [ + 13, + 27 + ], + [ + 13, + 28 + ], + [ + 13, + 29 + ], + [ + 13, + 30 + ], + [ + 13, + 31 + ], + [ + 13, + 32 + ], + [ + 13, + 33 + ], + [ + 13, + 34 + ], + [ + 13, + 35 + ], + [ + 13, + 36 + ], + [ + 13, + 37 + ], + [ + 13, + 38 + ], + [ + 13, + 39 + ], + [ + 13, + 40 + ], + [ + 13, + 41 + ], + [ + 13, + 42 + ], + [ + 13, + 43 + ], + [ + 13, + 44 + ], + [ + 13, + 45 + ], + [ + 13, + 46 + ], + [ + 13, + 47 + ], + [ + 13, + 48 + ], + [ + 13, + 49 + ], + [ + 13, + 50 + ], + [ + 13, + 51 + ], + [ + 13, + 52 + ], + [ + 13, + 53 + ], + [ + 14, + 23 + ], + [ + 14, + 24 + ], + [ + 14, + 25 + ], + [ + 14, + 26 + ], + [ + 14, + 27 + ], + [ + 14, + 28 + ], + [ + 14, + 29 + ], + [ + 14, + 30 + ], + [ + 14, + 31 + ], + [ + 14, + 32 + ], + [ + 14, + 33 + ], + [ + 14, + 34 + ], + [ + 14, + 35 + ], + [ + 14, + 36 + ], + [ + 14, + 37 + ], + [ + 14, + 38 + ], + [ + 14, + 39 + ], + [ + 14, + 40 + ], + [ + 14, + 41 + ], + [ + 14, + 42 + ], + [ + 14, + 43 + ], + [ + 14, + 44 + ], + [ + 14, + 45 + ], + [ + 14, + 46 + ], + [ + 14, + 47 + ], + [ + 14, + 48 + ], + [ + 14, + 49 + ], + [ + 14, + 50 + ], + [ + 14, + 51 + ], + [ + 14, + 52 + ], + [ + 14, + 53 + ], + [ + 14, + 54 + ], + [ + 15, + 23 + ], + [ + 15, + 24 + ], + [ + 15, + 25 + ], + [ + 15, + 26 + ], + [ + 15, + 27 + ], + [ + 15, + 28 + ], + [ + 15, + 29 + ], + [ + 15, + 30 + ], + [ + 15, + 31 + ], + [ + 15, + 32 + ], + [ + 15, + 33 + ], + [ + 15, + 34 + ], + [ + 15, + 35 + ], + [ + 15, + 36 + ], + [ + 15, + 37 + ], + [ + 15, + 38 + ], + [ + 15, + 39 + ], + [ + 15, + 40 + ], + [ + 15, + 41 + ], + [ + 15, + 42 + ], + [ + 15, + 43 + ], + [ + 15, + 44 + ], + [ + 15, + 45 + ], + [ + 15, + 46 + ], + [ + 15, + 47 + ], + [ + 15, + 48 + ], + [ + 15, + 49 + ], + [ + 15, + 50 + ], + [ + 15, + 51 + ], + [ + 15, + 52 + ], + [ + 15, + 53 + ], + [ + 15, + 54 + ], + [ + 15, + 55 + ], + [ + 16, + 23 + ], + [ + 16, + 24 + ], + [ + 16, + 25 + ], + [ + 16, + 26 + ], + [ + 16, + 27 + ], + [ + 16, + 28 + ], + [ + 16, + 29 + ], + [ + 16, + 30 + ], + [ + 16, + 31 + ], + [ + 16, + 32 + ], + [ + 16, + 33 + ], + [ + 16, + 34 + ], + [ + 16, + 35 + ], + [ + 16, + 36 + ], + [ + 16, + 37 + ], + [ + 16, + 38 + ], + [ + 16, + 39 + ], + [ + 16, + 40 + ], + [ + 16, + 41 + ], + [ + 16, + 42 + ], + [ + 16, + 43 + ], + [ + 16, + 44 + ], + [ + 16, + 45 + ], + [ + 16, + 46 + ], + [ + 16, + 47 + ], + [ + 16, + 48 + ], + [ + 16, + 49 + ], + [ + 16, + 50 + ], + [ + 16, + 51 + ], + [ + 16, + 52 + ], + [ + 16, + 53 + ], + [ + 16, + 54 + ], + [ + 16, + 55 + ], + [ + 17, + 23 + ], + [ + 17, + 24 + ], + [ + 17, + 25 + ], + [ + 17, + 26 + ], + [ + 17, + 27 + ], + [ + 17, + 28 + ], + [ + 17, + 29 + ], + [ + 17, + 30 + ], + [ + 17, + 31 + ], + [ + 17, + 32 + ], + [ + 17, + 33 + ], + [ + 17, + 34 + ], + [ + 17, + 35 + ], + [ + 17, + 36 + ], + [ + 17, + 37 + ], + [ + 17, + 38 + ], + [ + 17, + 39 + ], + [ + 17, + 40 + ], + [ + 17, + 41 + ], + [ + 17, + 42 + ], + [ + 17, + 43 + ], + [ + 17, + 44 + ], + [ + 17, + 45 + ], + [ + 17, + 46 + ], + [ + 17, + 47 + ], + [ + 17, + 48 + ], + [ + 17, + 49 + ], + [ + 17, + 50 + ], + [ + 17, + 51 + ], + [ + 17, + 52 + ], + [ + 17, + 53 + ], + [ + 17, + 54 + ], + [ + 17, + 55 + ], + [ + 17, + 56 + ], + [ + 18, + 23 + ], + [ + 18, + 24 + ], + [ + 18, + 25 + ], + [ + 18, + 26 + ], + [ + 18, + 27 + ], + [ + 18, + 28 + ], + [ + 18, + 29 + ], + [ + 18, + 30 + ], + [ + 18, + 31 + ], + [ + 18, + 32 + ], + [ + 18, + 33 + ], + [ + 18, + 34 + ], + [ + 18, + 35 + ], + [ + 18, + 36 + ], + [ + 18, + 37 + ], + [ + 18, + 38 + ], + [ + 18, + 39 + ], + [ + 18, + 40 + ], + [ + 18, + 41 + ], + [ + 18, + 42 + ], + [ + 18, + 43 + ], + [ + 18, + 44 + ], + [ + 18, + 45 + ], + [ + 18, + 46 + ], + [ + 18, + 47 + ], + [ + 18, + 48 + ], + [ + 18, + 49 + ], + [ + 18, + 50 + ], + [ + 18, + 51 + ], + [ + 18, + 52 + ], + [ + 18, + 53 + ], + [ + 18, + 54 + ], + [ + 18, + 55 + ], + [ + 18, + 56 + ], + [ + 18, + 57 + ], + [ + 19, + 23 + ], + [ + 19, + 24 + ], + [ + 19, + 25 + ], + [ + 19, + 26 + ], + [ + 19, + 27 + ], + [ + 19, + 28 + ], + [ + 19, + 29 + ], + [ + 19, + 30 + ], + [ + 19, + 31 + ], + [ + 19, + 32 + ], + [ + 19, + 33 + ], + [ + 19, + 34 + ], + [ + 19, + 35 + ], + [ + 19, + 36 + ], + [ + 19, + 37 + ], + [ + 19, + 38 + ], + [ + 19, + 39 + ], + [ + 19, + 40 + ], + [ + 19, + 41 + ], + [ + 19, + 42 + ], + [ + 19, + 43 + ], + [ + 19, + 44 + ], + [ + 19, + 45 + ], + [ + 19, + 46 + ], + [ + 19, + 47 + ], + [ + 19, + 48 + ], + [ + 19, + 49 + ], + [ + 19, + 50 + ], + [ + 19, + 51 + ], + [ + 19, + 52 + ], + [ + 19, + 53 + ], + [ + 19, + 54 + ], + [ + 19, + 55 + ], + [ + 19, + 56 + ], + [ + 19, + 57 + ], + [ + 19, + 58 + ], + [ + 20, + 23 + ], + [ + 20, + 24 + ], + [ + 20, + 25 + ], + [ + 20, + 26 + ], + [ + 20, + 27 + ], + [ + 20, + 28 + ], + [ + 20, + 29 + ], + [ + 20, + 30 + ], + [ + 20, + 31 + ], + [ + 20, + 32 + ], + [ + 20, + 33 + ], + [ + 20, + 34 + ], + [ + 20, + 35 + ], + [ + 20, + 36 + ], + [ + 20, + 37 + ], + [ + 20, + 38 + ], + [ + 20, + 39 + ], + [ + 20, + 40 + ], + [ + 20, + 41 + ], + [ + 20, + 42 + ], + [ + 20, + 43 + ], + [ + 20, + 44 + ], + [ + 20, + 45 + ], + [ + 20, + 46 + ], + [ + 20, + 47 + ], + [ + 20, + 48 + ], + [ + 20, + 49 + ], + [ + 20, + 50 + ], + [ + 20, + 51 + ], + [ + 20, + 52 + ], + [ + 20, + 53 + ], + [ + 20, + 54 + ], + [ + 20, + 55 + ], + [ + 20, + 56 + ], + [ + 20, + 57 + ], + [ + 20, + 58 + ], + [ + 21, + 23 + ], + [ + 21, + 24 + ], + [ + 21, + 25 + ], + [ + 21, + 26 + ], + [ + 21, + 27 + ], + [ + 21, + 28 + ], + [ + 21, + 29 + ], + [ + 21, + 30 + ], + [ + 21, + 31 + ], + [ + 21, + 32 + ], + [ + 21, + 33 + ], + [ + 21, + 34 + ], + [ + 21, + 35 + ], + [ + 21, + 36 + ], + [ + 21, + 37 + ], + [ + 21, + 38 + ], + [ + 21, + 39 + ], + [ + 21, + 40 + ], + [ + 21, + 41 + ], + [ + 21, + 42 + ], + [ + 21, + 43 + ], + [ + 21, + 44 + ], + [ + 21, + 45 + ], + [ + 21, + 46 + ], + [ + 21, + 47 + ], + [ + 21, + 48 + ], + [ + 21, + 49 + ], + [ + 21, + 50 + ], + [ + 21, + 51 + ], + [ + 21, + 52 + ], + [ + 21, + 53 + ], + [ + 21, + 54 + ], + [ + 21, + 55 + ], + [ + 21, + 56 + ], + [ + 21, + 57 + ], + [ + 21, + 58 + ], + [ + 21, + 59 + ], + [ + 22, + 23 + ], + [ + 22, + 24 + ], + [ + 22, + 25 + ], + [ + 22, + 26 + ], + [ + 22, + 27 + ], + [ + 22, + 28 + ], + [ + 22, + 29 + ], + [ + 22, + 30 + ], + [ + 22, + 31 + ], + [ + 22, + 32 + ], + [ + 22, + 33 + ], + [ + 22, + 34 + ], + [ + 22, + 35 + ], + [ + 22, + 36 + ], + [ + 22, + 37 + ], + [ + 22, + 38 + ], + [ + 22, + 39 + ], + [ + 22, + 40 + ], + [ + 22, + 41 + ], + [ + 22, + 42 + ], + [ + 22, + 43 + ], + [ + 22, + 44 + ], + [ + 22, + 45 + ], + [ + 22, + 46 + ], + [ + 22, + 47 + ], + [ + 22, + 48 + ], + [ + 22, + 49 + ], + [ + 22, + 50 + ], + [ + 22, + 51 + ], + [ + 22, + 52 + ], + [ + 22, + 53 + ], + [ + 22, + 54 + ], + [ + 22, + 55 + ], + [ + 22, + 56 + ], + [ + 22, + 57 + ], + [ + 22, + 58 + ], + [ + 22, + 59 + ], + [ + 23, + 23 + ], + [ + 23, + 24 + ], + [ + 23, + 25 + ], + [ + 23, + 26 + ], + [ + 23, + 27 + ], + [ + 23, + 28 + ], + [ + 23, + 29 + ], + [ + 23, + 30 + ], + [ + 23, + 31 + ], + [ + 23, + 32 + ], + [ + 23, + 33 + ], + [ + 23, + 34 + ], + [ + 23, + 35 + ], + [ + 23, + 36 + ], + [ + 23, + 37 + ], + [ + 23, + 38 + ], + [ + 23, + 39 + ], + [ + 23, + 40 + ], + [ + 23, + 41 + ], + [ + 23, + 42 + ], + [ + 23, + 43 + ], + [ + 23, + 44 + ], + [ + 23, + 45 + ], + [ + 23, + 46 + ], + [ + 23, + 47 + ], + [ + 23, + 48 + ], + [ + 23, + 49 + ], + [ + 23, + 50 + ], + [ + 23, + 51 + ], + [ + 23, + 52 + ], + [ + 23, + 53 + ], + [ + 23, + 54 + ], + [ + 23, + 55 + ], + [ + 23, + 56 + ], + [ + 23, + 57 + ], + [ + 23, + 58 + ], + [ + 23, + 59 + ], + [ + 23, + 60 + ], + [ + 24, + 23 + ], + [ + 24, + 24 + ], + [ + 24, + 25 + ], + [ + 24, + 26 + ], + [ + 24, + 27 + ], + [ + 24, + 28 + ], + [ + 24, + 29 + ], + [ + 24, + 30 + ], + [ + 24, + 31 + ], + [ + 24, + 32 + ], + [ + 24, + 33 + ], + [ + 24, + 34 + ], + [ + 24, + 35 + ], + [ + 24, + 36 + ], + [ + 24, + 37 + ], + [ + 24, + 38 + ], + [ + 24, + 39 + ], + [ + 24, + 40 + ], + [ + 24, + 41 + ], + [ + 24, + 42 + ], + [ + 24, + 43 + ], + [ + 24, + 44 + ], + [ + 24, + 45 + ], + [ + 24, + 46 + ], + [ + 24, + 47 + ], + [ + 24, + 48 + ], + [ + 24, + 49 + ], + [ + 24, + 50 + ], + [ + 24, + 51 + ], + [ + 24, + 52 + ], + [ + 24, + 53 + ], + [ + 24, + 54 + ], + [ + 24, + 55 + ], + [ + 24, + 56 + ], + [ + 24, + 57 + ], + [ + 24, + 58 + ], + [ + 24, + 59 + ], + [ + 24, + 60 + ], + [ + 24, + 61 + ], + [ + 25, + 23 + ], + [ + 25, + 24 + ], + [ + 25, + 25 + ], + [ + 25, + 26 + ], + [ + 25, + 27 + ], + [ + 25, + 28 + ], + [ + 25, + 29 + ], + [ + 25, + 30 + ], + [ + 25, + 31 + ], + [ + 25, + 32 + ], + [ + 25, + 33 + ], + [ + 25, + 34 + ], + [ + 25, + 35 + ], + [ + 25, + 36 + ], + [ + 25, + 37 + ], + [ + 25, + 38 + ], + [ + 25, + 39 + ], + [ + 25, + 40 + ], + [ + 25, + 41 + ], + [ + 25, + 42 + ], + [ + 25, + 43 + ], + [ + 25, + 44 + ], + [ + 25, + 45 + ], + [ + 25, + 46 + ], + [ + 25, + 47 + ], + [ + 25, + 48 + ], + [ + 25, + 49 + ], + [ + 25, + 50 + ], + [ + 25, + 51 + ], + [ + 25, + 52 + ], + [ + 25, + 53 + ], + [ + 25, + 54 + ], + [ + 25, + 55 + ], + [ + 25, + 56 + ], + [ + 25, + 57 + ], + [ + 25, + 58 + ], + [ + 25, + 59 + ], + [ + 25, + 60 + ], + [ + 25, + 61 + ], + [ + 26, + 23 + ], + [ + 26, + 24 + ], + [ + 26, + 25 + ], + [ + 26, + 26 + ], + [ + 26, + 27 + ], + [ + 26, + 28 + ], + [ + 26, + 29 + ], + [ + 26, + 30 + ], + [ + 26, + 31 + ], + [ + 26, + 32 + ], + [ + 26, + 33 + ], + [ + 26, + 34 + ], + [ + 26, + 35 + ], + [ + 26, + 36 + ], + [ + 26, + 37 + ], + [ + 26, + 38 + ], + [ + 26, + 39 + ], + [ + 26, + 40 + ], + [ + 26, + 41 + ], + [ + 26, + 42 + ], + [ + 26, + 43 + ], + [ + 26, + 44 + ], + [ + 26, + 45 + ], + [ + 26, + 46 + ], + [ + 26, + 47 + ], + [ + 26, + 48 + ], + [ + 26, + 49 + ], + [ + 26, + 50 + ], + [ + 26, + 51 + ], + [ + 26, + 52 + ], + [ + 26, + 53 + ], + [ + 26, + 54 + ], + [ + 26, + 55 + ], + [ + 26, + 56 + ], + [ + 26, + 57 + ], + [ + 26, + 58 + ], + [ + 26, + 59 + ], + [ + 26, + 60 + ], + [ + 26, + 61 + ], + [ + 26, + 62 + ], + [ + 27, + 23 + ], + [ + 27, + 24 + ], + [ + 27, + 25 + ], + [ + 27, + 26 + ], + [ + 27, + 27 + ], + [ + 27, + 28 + ], + [ + 27, + 29 + ], + [ + 27, + 30 + ], + [ + 27, + 31 + ], + [ + 27, + 32 + ], + [ + 27, + 33 + ], + [ + 27, + 34 + ], + [ + 27, + 35 + ], + [ + 27, + 36 + ], + [ + 27, + 37 + ], + [ + 27, + 38 + ], + [ + 27, + 39 + ], + [ + 27, + 40 + ], + [ + 27, + 41 + ], + [ + 27, + 42 + ], + [ + 27, + 43 + ], + [ + 27, + 44 + ], + [ + 27, + 45 + ], + [ + 27, + 46 + ], + [ + 27, + 47 + ], + [ + 27, + 48 + ], + [ + 27, + 49 + ], + [ + 27, + 50 + ], + [ + 27, + 51 + ], + [ + 27, + 52 + ], + [ + 27, + 53 + ], + [ + 27, + 54 + ], + [ + 27, + 55 + ], + [ + 27, + 56 + ], + [ + 27, + 57 + ], + [ + 27, + 58 + ], + [ + 27, + 59 + ], + [ + 27, + 60 + ], + [ + 27, + 61 + ], + [ + 27, + 62 + ], + [ + 28, + 23 + ], + [ + 28, + 24 + ], + [ + 28, + 25 + ], + [ + 28, + 26 + ], + [ + 28, + 27 + ], + [ + 28, + 28 + ], + [ + 28, + 29 + ], + [ + 28, + 30 + ], + [ + 28, + 31 + ], + [ + 28, + 32 + ], + [ + 28, + 33 + ], + [ + 28, + 34 + ], + [ + 28, + 35 + ], + [ + 28, + 36 + ], + [ + 28, + 37 + ], + [ + 28, + 38 + ], + [ + 28, + 39 + ], + [ + 28, + 40 + ], + [ + 28, + 41 + ], + [ + 28, + 42 + ], + [ + 28, + 43 + ], + [ + 28, + 44 + ], + [ + 28, + 45 + ], + [ + 28, + 46 + ], + [ + 28, + 47 + ], + [ + 28, + 48 + ], + [ + 28, + 49 + ], + [ + 28, + 50 + ], + [ + 28, + 51 + ], + [ + 28, + 52 + ], + [ + 28, + 53 + ], + [ + 28, + 54 + ], + [ + 28, + 55 + ], + [ + 28, + 56 + ], + [ + 28, + 57 + ], + [ + 28, + 58 + ], + [ + 28, + 59 + ], + [ + 28, + 60 + ], + [ + 28, + 61 + ], + [ + 28, + 62 + ], + [ + 29, + 23 + ], + [ + 29, + 24 + ], + [ + 29, + 25 + ], + [ + 29, + 26 + ], + [ + 29, + 27 + ], + [ + 29, + 28 + ], + [ + 29, + 29 + ], + [ + 29, + 30 + ], + [ + 29, + 31 + ], + [ + 29, + 32 + ], + [ + 29, + 33 + ], + [ + 29, + 34 + ], + [ + 29, + 35 + ], + [ + 29, + 36 + ], + [ + 29, + 37 + ], + [ + 29, + 38 + ], + [ + 29, + 39 + ], + [ + 29, + 40 + ], + [ + 29, + 41 + ], + [ + 29, + 42 + ], + [ + 29, + 43 + ], + [ + 29, + 44 + ], + [ + 29, + 45 + ], + [ + 29, + 46 + ], + [ + 29, + 47 + ], + [ + 29, + 48 + ], + [ + 29, + 49 + ], + [ + 29, + 50 + ], + [ + 29, + 51 + ], + [ + 29, + 52 + ], + [ + 29, + 53 + ], + [ + 29, + 54 + ], + [ + 29, + 55 + ], + [ + 29, + 56 + ], + [ + 29, + 57 + ], + [ + 29, + 58 + ], + [ + 29, + 59 + ], + [ + 29, + 60 + ], + [ + 29, + 61 + ], + [ + 29, + 62 + ], + [ + 29, + 63 + ], + [ + 30, + 23 + ], + [ + 30, + 24 + ], + [ + 30, + 25 + ], + [ + 30, + 26 + ], + [ + 30, + 27 + ], + [ + 30, + 28 + ], + [ + 30, + 29 + ], + [ + 30, + 30 + ], + [ + 30, + 31 + ], + [ + 30, + 32 + ], + [ + 30, + 33 + ], + [ + 30, + 34 + ], + [ + 30, + 35 + ], + [ + 30, + 36 + ], + [ + 30, + 37 + ], + [ + 30, + 38 + ], + [ + 30, + 39 + ], + [ + 30, + 40 + ], + [ + 30, + 41 + ], + [ + 30, + 42 + ], + [ + 30, + 43 + ], + [ + 30, + 44 + ], + [ + 30, + 45 + ], + [ + 30, + 46 + ], + [ + 30, + 47 + ], + [ + 30, + 48 + ], + [ + 30, + 49 + ], + [ + 30, + 50 + ], + [ + 30, + 51 + ], + [ + 30, + 52 + ], + [ + 30, + 53 + ], + [ + 30, + 54 + ], + [ + 30, + 55 + ], + [ + 30, + 56 + ], + [ + 30, + 57 + ], + [ + 30, + 58 + ], + [ + 30, + 59 + ], + [ + 30, + 60 + ], + [ + 30, + 61 + ], + [ + 30, + 62 + ], + [ + 30, + 63 + ], + [ + 31, + 23 + ], + [ + 31, + 24 + ], + [ + 31, + 25 + ], + [ + 31, + 26 + ], + [ + 31, + 27 + ], + [ + 31, + 28 + ], + [ + 31, + 29 + ], + [ + 31, + 30 + ], + [ + 31, + 31 + ], + [ + 31, + 32 + ], + [ + 31, + 33 + ], + [ + 31, + 34 + ], + [ + 31, + 35 + ], + [ + 31, + 36 + ], + [ + 31, + 37 + ], + [ + 31, + 38 + ], + [ + 31, + 39 + ], + [ + 31, + 40 + ], + [ + 31, + 41 + ], + [ + 31, + 42 + ], + [ + 31, + 43 + ], + [ + 31, + 44 + ], + [ + 31, + 45 + ], + [ + 31, + 46 + ], + [ + 31, + 47 + ], + [ + 31, + 48 + ], + [ + 31, + 49 + ], + [ + 31, + 50 + ], + [ + 31, + 51 + ], + [ + 31, + 52 + ], + [ + 31, + 53 + ], + [ + 31, + 54 + ], + [ + 31, + 55 + ], + [ + 31, + 56 + ], + [ + 31, + 57 + ], + [ + 31, + 58 + ], + [ + 31, + 59 + ], + [ + 31, + 60 + ], + [ + 31, + 61 + ], + [ + 31, + 62 + ], + [ + 31, + 63 + ], + [ + 32, + 23 + ], + [ + 32, + 24 + ], + [ + 32, + 25 + ], + [ + 32, + 26 + ], + [ + 32, + 27 + ], + [ + 32, + 28 + ], + [ + 32, + 29 + ], + [ + 32, + 30 + ], + [ + 32, + 31 + ], + [ + 32, + 32 + ], + [ + 32, + 33 + ], + [ + 32, + 34 + ], + [ + 32, + 35 + ], + [ + 32, + 36 + ], + [ + 32, + 37 + ], + [ + 32, + 38 + ], + [ + 32, + 39 + ], + [ + 32, + 40 + ], + [ + 32, + 41 + ], + [ + 32, + 42 + ], + [ + 32, + 43 + ], + [ + 32, + 44 + ], + [ + 32, + 45 + ], + [ + 32, + 46 + ], + [ + 32, + 47 + ], + [ + 32, + 48 + ], + [ + 32, + 49 + ], + [ + 32, + 50 + ], + [ + 32, + 51 + ], + [ + 32, + 52 + ], + [ + 32, + 53 + ], + [ + 32, + 54 + ], + [ + 32, + 55 + ], + [ + 32, + 56 + ], + [ + 32, + 57 + ], + [ + 32, + 58 + ], + [ + 32, + 59 + ], + [ + 32, + 60 + ], + [ + 32, + 61 + ], + [ + 32, + 62 + ], + [ + 32, + 63 + ], + [ + 32, + 64 + ], + [ + 33, + 23 + ], + [ + 33, + 24 + ], + [ + 33, + 25 + ], + [ + 33, + 26 + ], + [ + 33, + 27 + ], + [ + 33, + 28 + ], + [ + 33, + 29 + ], + [ + 33, + 30 + ], + [ + 33, + 31 + ], + [ + 33, + 32 + ], + [ + 33, + 33 + ], + [ + 33, + 34 + ], + [ + 33, + 35 + ], + [ + 33, + 36 + ], + [ + 33, + 37 + ], + [ + 33, + 38 + ], + [ + 33, + 39 + ], + [ + 33, + 40 + ], + [ + 33, + 41 + ], + [ + 33, + 42 + ], + [ + 33, + 43 + ], + [ + 33, + 44 + ], + [ + 33, + 45 + ], + [ + 33, + 46 + ], + [ + 33, + 47 + ], + [ + 33, + 48 + ], + [ + 33, + 49 + ], + [ + 33, + 50 + ], + [ + 33, + 51 + ], + [ + 33, + 52 + ], + [ + 33, + 53 + ], + [ + 33, + 54 + ], + [ + 33, + 55 + ], + [ + 33, + 56 + ], + [ + 33, + 57 + ], + [ + 33, + 58 + ], + [ + 33, + 59 + ], + [ + 33, + 60 + ], + [ + 33, + 61 + ], + [ + 33, + 62 + ], + [ + 33, + 63 + ], + [ + 33, + 64 + ], + [ + 34, + 23 + ], + [ + 34, + 24 + ], + [ + 34, + 25 + ], + [ + 34, + 26 + ], + [ + 34, + 27 + ], + [ + 34, + 28 + ], + [ + 34, + 29 + ], + [ + 34, + 30 + ], + [ + 34, + 31 + ], + [ + 34, + 32 + ], + [ + 34, + 33 + ], + [ + 34, + 34 + ], + [ + 34, + 35 + ], + [ + 34, + 36 + ], + [ + 34, + 37 + ], + [ + 34, + 38 + ], + [ + 34, + 39 + ], + [ + 34, + 40 + ], + [ + 34, + 41 + ], + [ + 34, + 42 + ], + [ + 34, + 43 + ], + [ + 34, + 44 + ], + [ + 34, + 45 + ], + [ + 34, + 46 + ], + [ + 34, + 47 + ], + [ + 34, + 48 + ], + [ + 34, + 49 + ], + [ + 34, + 50 + ], + [ + 34, + 51 + ], + [ + 34, + 52 + ], + [ + 34, + 53 + ], + [ + 34, + 54 + ], + [ + 34, + 55 + ], + [ + 34, + 56 + ], + [ + 34, + 57 + ], + [ + 34, + 58 + ], + [ + 34, + 59 + ], + [ + 34, + 60 + ], + [ + 34, + 61 + ], + [ + 34, + 62 + ], + [ + 34, + 63 + ], + [ + 34, + 64 + ], + [ + 35, + 23 + ], + [ + 35, + 24 + ], + [ + 35, + 25 + ], + [ + 35, + 26 + ], + [ + 35, + 27 + ], + [ + 35, + 28 + ], + [ + 35, + 29 + ], + [ + 35, + 30 + ], + [ + 35, + 31 + ], + [ + 35, + 32 + ], + [ + 35, + 33 + ], + [ + 35, + 34 + ], + [ + 35, + 35 + ], + [ + 35, + 36 + ], + [ + 35, + 37 + ], + [ + 35, + 38 + ], + [ + 35, + 39 + ], + [ + 35, + 40 + ], + [ + 35, + 41 + ], + [ + 35, + 42 + ], + [ + 35, + 43 + ], + [ + 35, + 44 + ], + [ + 35, + 45 + ], + [ + 35, + 46 + ], + [ + 35, + 47 + ], + [ + 35, + 48 + ], + [ + 35, + 49 + ], + [ + 35, + 50 + ], + [ + 35, + 51 + ], + [ + 35, + 52 + ], + [ + 35, + 53 + ], + [ + 35, + 54 + ], + [ + 35, + 55 + ], + [ + 35, + 56 + ], + [ + 35, + 57 + ], + [ + 35, + 58 + ], + [ + 35, + 59 + ], + [ + 35, + 60 + ], + [ + 35, + 61 + ], + [ + 35, + 62 + ], + [ + 35, + 63 + ], + [ + 35, + 64 + ], + [ + 36, + 23 + ], + [ + 36, + 24 + ], + [ + 36, + 25 + ], + [ + 36, + 26 + ], + [ + 36, + 27 + ], + [ + 36, + 28 + ], + [ + 36, + 29 + ], + [ + 36, + 30 + ], + [ + 36, + 31 + ], + [ + 36, + 32 + ], + [ + 36, + 33 + ], + [ + 36, + 34 + ], + [ + 36, + 35 + ], + [ + 36, + 36 + ], + [ + 36, + 37 + ], + [ + 36, + 38 + ], + [ + 36, + 39 + ], + [ + 36, + 40 + ], + [ + 36, + 41 + ], + [ + 36, + 42 + ], + [ + 36, + 43 + ], + [ + 36, + 44 + ], + [ + 36, + 45 + ], + [ + 36, + 46 + ], + [ + 36, + 47 + ], + [ + 36, + 48 + ], + [ + 36, + 49 + ], + [ + 36, + 50 + ], + [ + 36, + 51 + ], + [ + 36, + 52 + ], + [ + 36, + 53 + ], + [ + 36, + 54 + ], + [ + 36, + 55 + ], + [ + 36, + 56 + ], + [ + 36, + 57 + ], + [ + 36, + 58 + ], + [ + 36, + 59 + ], + [ + 36, + 60 + ], + [ + 36, + 61 + ], + [ + 36, + 62 + ], + [ + 36, + 63 + ], + [ + 36, + 64 + ], + [ + 37, + 23 + ], + [ + 37, + 24 + ], + [ + 37, + 25 + ], + [ + 37, + 26 + ], + [ + 37, + 27 + ], + [ + 37, + 28 + ], + [ + 37, + 29 + ], + [ + 37, + 30 + ], + [ + 37, + 31 + ], + [ + 37, + 32 + ], + [ + 37, + 33 + ], + [ + 37, + 34 + ], + [ + 37, + 35 + ], + [ + 37, + 36 + ], + [ + 37, + 37 + ], + [ + 37, + 38 + ], + [ + 37, + 39 + ], + [ + 37, + 40 + ], + [ + 37, + 41 + ], + [ + 37, + 42 + ], + [ + 37, + 43 + ], + [ + 37, + 44 + ], + [ + 37, + 45 + ], + [ + 37, + 46 + ], + [ + 37, + 47 + ], + [ + 37, + 48 + ], + [ + 37, + 49 + ], + [ + 37, + 50 + ], + [ + 37, + 51 + ], + [ + 37, + 52 + ], + [ + 37, + 53 + ], + [ + 37, + 54 + ], + [ + 37, + 55 + ], + [ + 37, + 56 + ], + [ + 37, + 57 + ], + [ + 37, + 58 + ], + [ + 37, + 59 + ], + [ + 37, + 60 + ], + [ + 37, + 61 + ], + [ + 37, + 62 + ], + [ + 37, + 63 + ], + [ + 37, + 64 + ], + [ + 38, + 23 + ], + [ + 38, + 24 + ], + [ + 38, + 25 + ], + [ + 38, + 26 + ], + [ + 38, + 27 + ], + [ + 38, + 28 + ], + [ + 38, + 29 + ], + [ + 38, + 30 + ], + [ + 38, + 31 + ], + [ + 38, + 32 + ], + [ + 38, + 33 + ], + [ + 38, + 34 + ], + [ + 38, + 35 + ], + [ + 38, + 36 + ], + [ + 38, + 37 + ], + [ + 38, + 38 + ], + [ + 38, + 39 + ], + [ + 38, + 40 + ], + [ + 38, + 41 + ], + [ + 38, + 42 + ], + [ + 38, + 43 + ], + [ + 38, + 44 + ], + [ + 38, + 45 + ], + [ + 38, + 46 + ], + [ + 38, + 47 + ], + [ + 38, + 48 + ], + [ + 38, + 49 + ], + [ + 38, + 50 + ], + [ + 38, + 51 + ], + [ + 38, + 52 + ], + [ + 38, + 53 + ], + [ + 38, + 54 + ], + [ + 38, + 55 + ], + [ + 38, + 56 + ], + [ + 38, + 57 + ], + [ + 38, + 58 + ], + [ + 38, + 59 + ], + [ + 38, + 60 + ], + [ + 38, + 61 + ], + [ + 38, + 62 + ], + [ + 38, + 63 + ], + [ + 38, + 64 + ], + [ + 38, + 65 + ], + [ + 39, + 23 + ], + [ + 39, + 24 + ], + [ + 39, + 25 + ], + [ + 39, + 26 + ], + [ + 39, + 27 + ], + [ + 39, + 28 + ], + [ + 39, + 29 + ], + [ + 39, + 30 + ], + [ + 39, + 31 + ], + [ + 39, + 32 + ], + [ + 39, + 33 + ], + [ + 39, + 34 + ], + [ + 39, + 35 + ], + [ + 39, + 36 + ], + [ + 39, + 37 + ], + [ + 39, + 38 + ], + [ + 39, + 39 + ], + [ + 39, + 40 + ], + [ + 39, + 41 + ], + [ + 39, + 42 + ], + [ + 39, + 43 + ], + [ + 39, + 44 + ], + [ + 39, + 45 + ], + [ + 39, + 46 + ], + [ + 39, + 47 + ], + [ + 39, + 48 + ], + [ + 39, + 49 + ], + [ + 39, + 50 + ], + [ + 39, + 51 + ], + [ + 39, + 52 + ], + [ + 39, + 53 + ], + [ + 39, + 54 + ], + [ + 39, + 55 + ], + [ + 39, + 56 + ], + [ + 39, + 57 + ], + [ + 39, + 58 + ], + [ + 39, + 59 + ], + [ + 39, + 60 + ], + [ + 39, + 61 + ], + [ + 39, + 62 + ], + [ + 39, + 63 + ], + [ + 39, + 64 + ], + [ + 40, + 23 + ], + [ + 40, + 24 + ], + [ + 40, + 25 + ], + [ + 40, + 26 + ], + [ + 40, + 27 + ], + [ + 40, + 28 + ], + [ + 40, + 29 + ], + [ + 40, + 30 + ], + [ + 40, + 31 + ], + [ + 40, + 32 + ], + [ + 40, + 33 + ], + [ + 40, + 34 + ], + [ + 40, + 35 + ], + [ + 40, + 36 + ], + [ + 40, + 37 + ], + [ + 40, + 38 + ], + [ + 40, + 39 + ], + [ + 40, + 40 + ], + [ + 40, + 41 + ], + [ + 40, + 42 + ], + [ + 40, + 43 + ], + [ + 40, + 44 + ], + [ + 40, + 45 + ], + [ + 40, + 46 + ], + [ + 40, + 47 + ], + [ + 40, + 48 + ], + [ + 40, + 49 + ], + [ + 40, + 50 + ], + [ + 40, + 51 + ], + [ + 40, + 52 + ], + [ + 40, + 53 + ], + [ + 40, + 54 + ], + [ + 40, + 55 + ], + [ + 40, + 56 + ], + [ + 40, + 57 + ], + [ + 40, + 58 + ], + [ + 40, + 59 + ], + [ + 40, + 60 + ], + [ + 40, + 61 + ], + [ + 40, + 62 + ], + [ + 40, + 63 + ], + [ + 40, + 64 + ], + [ + 41, + 23 + ], + [ + 41, + 24 + ], + [ + 41, + 25 + ], + [ + 41, + 26 + ], + [ + 41, + 27 + ], + [ + 41, + 28 + ], + [ + 41, + 29 + ], + [ + 41, + 30 + ], + [ + 41, + 31 + ], + [ + 41, + 32 + ], + [ + 41, + 33 + ], + [ + 41, + 34 + ], + [ + 41, + 35 + ], + [ + 41, + 36 + ], + [ + 41, + 37 + ], + [ + 41, + 38 + ], + [ + 41, + 39 + ], + [ + 41, + 40 + ], + [ + 41, + 41 + ], + [ + 41, + 42 + ], + [ + 41, + 43 + ], + [ + 41, + 44 + ], + [ + 41, + 45 + ], + [ + 41, + 46 + ], + [ + 41, + 47 + ], + [ + 41, + 48 + ], + [ + 41, + 49 + ], + [ + 41, + 50 + ], + [ + 41, + 51 + ], + [ + 41, + 52 + ], + [ + 41, + 53 + ], + [ + 41, + 54 + ], + [ + 41, + 55 + ], + [ + 41, + 56 + ], + [ + 41, + 57 + ], + [ + 41, + 58 + ], + [ + 41, + 59 + ], + [ + 41, + 60 + ], + [ + 41, + 61 + ], + [ + 41, + 62 + ], + [ + 41, + 63 + ], + [ + 41, + 64 + ], + [ + 41, + 65 + ], + [ + 42, + 23 + ], + [ + 42, + 24 + ], + [ + 42, + 25 + ], + [ + 42, + 26 + ], + [ + 42, + 27 + ], + [ + 42, + 28 + ], + [ + 42, + 29 + ], + [ + 42, + 30 + ], + [ + 42, + 31 + ], + [ + 42, + 32 + ], + [ + 42, + 33 + ], + [ + 42, + 34 + ], + [ + 42, + 35 + ], + [ + 42, + 36 + ], + [ + 42, + 37 + ], + [ + 42, + 38 + ], + [ + 42, + 39 + ], + [ + 42, + 40 + ], + [ + 42, + 41 + ], + [ + 42, + 42 + ], + [ + 42, + 43 + ], + [ + 42, + 44 + ], + [ + 42, + 45 + ], + [ + 42, + 46 + ], + [ + 42, + 47 + ], + [ + 42, + 48 + ], + [ + 42, + 49 + ], + [ + 42, + 50 + ], + [ + 42, + 51 + ], + [ + 42, + 52 + ], + [ + 42, + 53 + ], + [ + 42, + 54 + ], + [ + 42, + 55 + ], + [ + 42, + 56 + ], + [ + 42, + 57 + ], + [ + 42, + 58 + ], + [ + 42, + 59 + ], + [ + 42, + 60 + ], + [ + 42, + 61 + ], + [ + 42, + 62 + ], + [ + 42, + 63 + ], + [ + 42, + 64 + ], + [ + 43, + 23 + ], + [ + 43, + 24 + ], + [ + 43, + 25 + ], + [ + 43, + 26 + ], + [ + 43, + 27 + ], + [ + 43, + 28 + ], + [ + 43, + 29 + ], + [ + 43, + 30 + ], + [ + 43, + 31 + ], + [ + 43, + 32 + ], + [ + 43, + 33 + ], + [ + 43, + 34 + ], + [ + 43, + 35 + ], + [ + 43, + 36 + ], + [ + 43, + 37 + ], + [ + 43, + 38 + ], + [ + 43, + 39 + ], + [ + 43, + 40 + ], + [ + 43, + 41 + ], + [ + 43, + 42 + ], + [ + 43, + 43 + ], + [ + 43, + 44 + ], + [ + 43, + 45 + ], + [ + 43, + 46 + ], + [ + 43, + 47 + ], + [ + 43, + 48 + ], + [ + 43, + 49 + ], + [ + 43, + 50 + ], + [ + 43, + 51 + ], + [ + 43, + 52 + ], + [ + 43, + 53 + ], + [ + 43, + 54 + ], + [ + 43, + 55 + ], + [ + 43, + 56 + ], + [ + 43, + 57 + ], + [ + 43, + 58 + ], + [ + 43, + 59 + ], + [ + 43, + 60 + ], + [ + 43, + 61 + ], + [ + 43, + 62 + ], + [ + 43, + 63 + ], + [ + 43, + 64 + ], + [ + 44, + 23 + ], + [ + 44, + 24 + ], + [ + 44, + 25 + ], + [ + 44, + 26 + ], + [ + 44, + 27 + ], + [ + 44, + 28 + ], + [ + 44, + 29 + ], + [ + 44, + 30 + ], + [ + 44, + 31 + ], + [ + 44, + 32 + ], + [ + 44, + 33 + ], + [ + 44, + 34 + ], + [ + 44, + 35 + ], + [ + 44, + 36 + ], + [ + 44, + 37 + ], + [ + 44, + 38 + ], + [ + 44, + 39 + ], + [ + 44, + 40 + ], + [ + 44, + 41 + ], + [ + 44, + 42 + ], + [ + 44, + 43 + ], + [ + 44, + 44 + ], + [ + 44, + 45 + ], + [ + 44, + 46 + ], + [ + 44, + 47 + ], + [ + 44, + 48 + ], + [ + 44, + 49 + ], + [ + 44, + 50 + ], + [ + 44, + 51 + ], + [ + 44, + 52 + ], + [ + 44, + 53 + ], + [ + 44, + 54 + ], + [ + 44, + 55 + ], + [ + 44, + 56 + ], + [ + 44, + 57 + ], + [ + 44, + 58 + ], + [ + 44, + 59 + ], + [ + 44, + 60 + ], + [ + 44, + 61 + ], + [ + 44, + 62 + ], + [ + 44, + 63 + ], + [ + 44, + 64 + ], + [ + 45, + 23 + ], + [ + 45, + 24 + ], + [ + 45, + 25 + ], + [ + 45, + 26 + ], + [ + 45, + 27 + ], + [ + 45, + 28 + ], + [ + 45, + 29 + ], + [ + 45, + 30 + ], + [ + 45, + 31 + ], + [ + 45, + 32 + ], + [ + 45, + 33 + ], + [ + 45, + 34 + ], + [ + 45, + 35 + ], + [ + 45, + 36 + ], + [ + 45, + 37 + ], + [ + 45, + 38 + ], + [ + 45, + 39 + ], + [ + 45, + 40 + ], + [ + 45, + 41 + ], + [ + 45, + 42 + ], + [ + 45, + 43 + ], + [ + 45, + 44 + ], + [ + 45, + 45 + ], + [ + 45, + 46 + ], + [ + 45, + 47 + ], + [ + 45, + 48 + ], + [ + 45, + 49 + ], + [ + 45, + 50 + ], + [ + 45, + 51 + ], + [ + 45, + 52 + ], + [ + 45, + 53 + ], + [ + 45, + 54 + ], + [ + 45, + 55 + ], + [ + 45, + 56 + ], + [ + 45, + 57 + ], + [ + 45, + 58 + ], + [ + 45, + 59 + ], + [ + 45, + 60 + ], + [ + 45, + 61 + ], + [ + 45, + 62 + ], + [ + 45, + 63 + ], + [ + 45, + 64 + ], + [ + 46, + 23 + ], + [ + 46, + 24 + ], + [ + 46, + 25 + ], + [ + 46, + 26 + ], + [ + 46, + 27 + ], + [ + 46, + 28 + ], + [ + 46, + 29 + ], + [ + 46, + 30 + ], + [ + 46, + 31 + ], + [ + 46, + 32 + ], + [ + 46, + 33 + ], + [ + 46, + 34 + ], + [ + 46, + 35 + ], + [ + 46, + 36 + ], + [ + 46, + 37 + ], + [ + 46, + 38 + ], + [ + 46, + 39 + ], + [ + 46, + 40 + ], + [ + 46, + 41 + ], + [ + 46, + 42 + ], + [ + 46, + 43 + ], + [ + 46, + 44 + ], + [ + 46, + 45 + ], + [ + 46, + 46 + ], + [ + 46, + 47 + ], + [ + 46, + 48 + ], + [ + 46, + 49 + ], + [ + 46, + 50 + ], + [ + 46, + 51 + ], + [ + 46, + 52 + ], + [ + 46, + 53 + ], + [ + 46, + 54 + ], + [ + 46, + 55 + ], + [ + 46, + 56 + ], + [ + 46, + 57 + ], + [ + 46, + 58 + ], + [ + 46, + 59 + ], + [ + 46, + 60 + ], + [ + 46, + 61 + ], + [ + 46, + 62 + ], + [ + 46, + 63 + ], + [ + 46, + 64 + ], + [ + 47, + 23 + ], + [ + 47, + 24 + ], + [ + 47, + 25 + ], + [ + 47, + 26 + ], + [ + 47, + 27 + ], + [ + 47, + 28 + ], + [ + 47, + 29 + ], + [ + 47, + 30 + ], + [ + 47, + 31 + ], + [ + 47, + 32 + ], + [ + 47, + 33 + ], + [ + 47, + 34 + ], + [ + 47, + 35 + ], + [ + 47, + 36 + ], + [ + 47, + 37 + ], + [ + 47, + 38 + ], + [ + 47, + 39 + ], + [ + 47, + 40 + ], + [ + 47, + 41 + ], + [ + 47, + 42 + ], + [ + 47, + 43 + ], + [ + 47, + 44 + ], + [ + 47, + 45 + ], + [ + 47, + 46 + ], + [ + 47, + 47 + ], + [ + 47, + 48 + ], + [ + 47, + 49 + ], + [ + 47, + 50 + ], + [ + 47, + 51 + ], + [ + 47, + 52 + ], + [ + 47, + 53 + ], + [ + 47, + 54 + ], + [ + 47, + 55 + ], + [ + 47, + 56 + ], + [ + 47, + 57 + ], + [ + 47, + 58 + ], + [ + 47, + 59 + ], + [ + 47, + 60 + ], + [ + 47, + 61 + ], + [ + 47, + 62 + ], + [ + 47, + 63 + ], + [ + 47, + 64 + ], + [ + 48, + 23 + ], + [ + 48, + 24 + ], + [ + 48, + 25 + ], + [ + 48, + 26 + ], + [ + 48, + 27 + ], + [ + 48, + 28 + ], + [ + 48, + 29 + ], + [ + 48, + 30 + ], + [ + 48, + 31 + ], + [ + 48, + 32 + ], + [ + 48, + 33 + ], + [ + 48, + 34 + ], + [ + 48, + 35 + ], + [ + 48, + 36 + ], + [ + 48, + 37 + ], + [ + 48, + 38 + ], + [ + 48, + 39 + ], + [ + 48, + 40 + ], + [ + 48, + 41 + ], + [ + 48, + 42 + ], + [ + 48, + 43 + ], + [ + 48, + 44 + ], + [ + 48, + 45 + ], + [ + 48, + 46 + ], + [ + 48, + 47 + ], + [ + 48, + 48 + ], + [ + 48, + 49 + ], + [ + 48, + 50 + ], + [ + 48, + 51 + ], + [ + 48, + 52 + ], + [ + 48, + 53 + ], + [ + 48, + 54 + ], + [ + 48, + 55 + ], + [ + 48, + 56 + ], + [ + 48, + 57 + ], + [ + 48, + 58 + ], + [ + 48, + 59 + ], + [ + 48, + 60 + ], + [ + 48, + 61 + ], + [ + 48, + 62 + ], + [ + 48, + 63 + ], + [ + 49, + 23 + ], + [ + 49, + 24 + ], + [ + 49, + 25 + ], + [ + 49, + 26 + ], + [ + 49, + 27 + ], + [ + 49, + 28 + ], + [ + 49, + 29 + ], + [ + 49, + 30 + ], + [ + 49, + 31 + ], + [ + 49, + 32 + ], + [ + 49, + 33 + ], + [ + 49, + 34 + ], + [ + 49, + 35 + ], + [ + 49, + 36 + ], + [ + 49, + 37 + ], + [ + 49, + 38 + ], + [ + 49, + 39 + ], + [ + 49, + 40 + ], + [ + 49, + 41 + ], + [ + 49, + 42 + ], + [ + 49, + 43 + ], + [ + 49, + 44 + ], + [ + 49, + 45 + ], + [ + 49, + 46 + ], + [ + 49, + 47 + ], + [ + 49, + 48 + ], + [ + 49, + 49 + ], + [ + 49, + 50 + ], + [ + 49, + 51 + ], + [ + 49, + 52 + ], + [ + 49, + 53 + ], + [ + 49, + 54 + ], + [ + 49, + 55 + ], + [ + 49, + 56 + ], + [ + 49, + 57 + ], + [ + 49, + 58 + ], + [ + 49, + 59 + ], + [ + 49, + 60 + ], + [ + 49, + 61 + ], + [ + 49, + 62 + ], + [ + 49, + 63 + ], + [ + 50, + 23 + ], + [ + 50, + 24 + ], + [ + 50, + 25 + ], + [ + 50, + 26 + ], + [ + 50, + 27 + ], + [ + 50, + 28 + ], + [ + 50, + 29 + ], + [ + 50, + 30 + ], + [ + 50, + 31 + ], + [ + 50, + 32 + ], + [ + 50, + 33 + ], + [ + 50, + 34 + ], + [ + 50, + 35 + ], + [ + 50, + 36 + ], + [ + 50, + 37 + ], + [ + 50, + 38 + ], + [ + 50, + 39 + ], + [ + 50, + 40 + ], + [ + 50, + 41 + ], + [ + 50, + 42 + ], + [ + 50, + 43 + ], + [ + 50, + 44 + ], + [ + 50, + 45 + ], + [ + 50, + 46 + ], + [ + 50, + 47 + ], + [ + 50, + 48 + ], + [ + 50, + 49 + ], + [ + 50, + 50 + ], + [ + 50, + 51 + ], + [ + 50, + 52 + ], + [ + 50, + 53 + ], + [ + 50, + 54 + ], + [ + 50, + 55 + ], + [ + 50, + 56 + ], + [ + 50, + 57 + ], + [ + 50, + 58 + ], + [ + 50, + 59 + ], + [ + 50, + 60 + ], + [ + 50, + 61 + ], + [ + 50, + 62 + ], + [ + 50, + 63 + ], + [ + 51, + 23 + ], + [ + 51, + 24 + ], + [ + 51, + 25 + ], + [ + 51, + 26 + ], + [ + 51, + 27 + ], + [ + 51, + 28 + ], + [ + 51, + 29 + ], + [ + 51, + 30 + ], + [ + 51, + 31 + ], + [ + 51, + 32 + ], + [ + 51, + 33 + ], + [ + 51, + 34 + ], + [ + 51, + 35 + ], + [ + 51, + 36 + ], + [ + 51, + 37 + ], + [ + 51, + 38 + ], + [ + 51, + 39 + ], + [ + 51, + 40 + ], + [ + 51, + 41 + ], + [ + 51, + 42 + ], + [ + 51, + 43 + ], + [ + 51, + 44 + ], + [ + 51, + 45 + ], + [ + 51, + 46 + ], + [ + 51, + 47 + ], + [ + 51, + 48 + ], + [ + 51, + 49 + ], + [ + 51, + 50 + ], + [ + 51, + 51 + ], + [ + 51, + 52 + ], + [ + 51, + 53 + ], + [ + 51, + 54 + ], + [ + 51, + 55 + ], + [ + 51, + 56 + ], + [ + 51, + 57 + ], + [ + 51, + 58 + ], + [ + 51, + 59 + ], + [ + 51, + 60 + ], + [ + 51, + 61 + ], + [ + 51, + 62 + ], + [ + 51, + 63 + ], + [ + 52, + 23 + ], + [ + 52, + 24 + ], + [ + 52, + 25 + ], + [ + 52, + 26 + ], + [ + 52, + 27 + ], + [ + 52, + 28 + ], + [ + 52, + 29 + ], + [ + 52, + 30 + ], + [ + 52, + 31 + ], + [ + 52, + 32 + ], + [ + 52, + 33 + ], + [ + 52, + 34 + ], + [ + 52, + 35 + ], + [ + 52, + 36 + ], + [ + 52, + 37 + ], + [ + 52, + 38 + ], + [ + 52, + 39 + ], + [ + 52, + 40 + ], + [ + 52, + 41 + ], + [ + 52, + 42 + ], + [ + 52, + 43 + ], + [ + 52, + 44 + ], + [ + 52, + 45 + ], + [ + 52, + 46 + ], + [ + 52, + 47 + ], + [ + 52, + 48 + ], + [ + 52, + 49 + ], + [ + 52, + 50 + ], + [ + 52, + 51 + ], + [ + 52, + 52 + ], + [ + 52, + 53 + ], + [ + 52, + 54 + ], + [ + 52, + 55 + ], + [ + 52, + 56 + ], + [ + 52, + 57 + ], + [ + 52, + 58 + ], + [ + 52, + 59 + ], + [ + 52, + 60 + ], + [ + 52, + 61 + ], + [ + 52, + 62 + ], + [ + 53, + 23 + ], + [ + 53, + 24 + ], + [ + 53, + 25 + ], + [ + 53, + 26 + ], + [ + 53, + 27 + ], + [ + 53, + 28 + ], + [ + 53, + 29 + ], + [ + 53, + 30 + ], + [ + 53, + 31 + ], + [ + 53, + 32 + ], + [ + 53, + 33 + ], + [ + 53, + 34 + ], + [ + 53, + 35 + ], + [ + 53, + 36 + ], + [ + 53, + 37 + ], + [ + 53, + 38 + ], + [ + 53, + 39 + ], + [ + 53, + 40 + ], + [ + 53, + 41 + ], + [ + 53, + 42 + ], + [ + 53, + 43 + ], + [ + 53, + 44 + ], + [ + 53, + 45 + ], + [ + 53, + 46 + ], + [ + 53, + 47 + ], + [ + 53, + 48 + ], + [ + 53, + 49 + ], + [ + 53, + 50 + ], + [ + 53, + 51 + ], + [ + 53, + 52 + ], + [ + 53, + 53 + ], + [ + 53, + 54 + ], + [ + 53, + 55 + ], + [ + 53, + 56 + ], + [ + 53, + 57 + ], + [ + 53, + 58 + ], + [ + 53, + 59 + ], + [ + 53, + 60 + ], + [ + 53, + 61 + ], + [ + 53, + 62 + ], + [ + 54, + 23 + ], + [ + 54, + 24 + ], + [ + 54, + 25 + ], + [ + 54, + 26 + ], + [ + 54, + 27 + ], + [ + 54, + 28 + ], + [ + 54, + 29 + ], + [ + 54, + 30 + ], + [ + 54, + 31 + ], + [ + 54, + 32 + ], + [ + 54, + 33 + ], + [ + 54, + 34 + ], + [ + 54, + 35 + ], + [ + 54, + 36 + ], + [ + 54, + 37 + ], + [ + 54, + 38 + ], + [ + 54, + 39 + ], + [ + 54, + 40 + ], + [ + 54, + 41 + ], + [ + 54, + 42 + ], + [ + 54, + 43 + ], + [ + 54, + 44 + ], + [ + 54, + 45 + ], + [ + 54, + 46 + ], + [ + 54, + 47 + ], + [ + 54, + 48 + ], + [ + 54, + 49 + ], + [ + 54, + 50 + ], + [ + 54, + 51 + ], + [ + 54, + 52 + ], + [ + 54, + 53 + ], + [ + 54, + 54 + ], + [ + 54, + 55 + ], + [ + 54, + 56 + ], + [ + 54, + 57 + ], + [ + 54, + 58 + ], + [ + 54, + 59 + ], + [ + 54, + 60 + ], + [ + 54, + 61 + ], + [ + 55, + 23 + ], + [ + 55, + 24 + ], + [ + 55, + 25 + ], + [ + 55, + 26 + ], + [ + 55, + 27 + ], + [ + 55, + 28 + ], + [ + 55, + 29 + ], + [ + 55, + 30 + ], + [ + 55, + 31 + ], + [ + 55, + 32 + ], + [ + 55, + 33 + ], + [ + 55, + 34 + ], + [ + 55, + 35 + ], + [ + 55, + 36 + ], + [ + 55, + 37 + ], + [ + 55, + 38 + ], + [ + 55, + 39 + ], + [ + 55, + 40 + ], + [ + 55, + 41 + ], + [ + 55, + 42 + ], + [ + 55, + 43 + ], + [ + 55, + 44 + ], + [ + 55, + 45 + ], + [ + 55, + 46 + ], + [ + 55, + 47 + ], + [ + 55, + 48 + ], + [ + 55, + 49 + ], + [ + 55, + 50 + ], + [ + 55, + 51 + ], + [ + 55, + 52 + ], + [ + 55, + 53 + ], + [ + 55, + 54 + ], + [ + 55, + 55 + ], + [ + 55, + 56 + ], + [ + 55, + 57 + ], + [ + 55, + 58 + ], + [ + 55, + 59 + ], + [ + 55, + 60 + ], + [ + 56, + 23 + ], + [ + 56, + 24 + ], + [ + 56, + 25 + ], + [ + 56, + 26 + ], + [ + 56, + 27 + ], + [ + 56, + 28 + ], + [ + 56, + 29 + ], + [ + 56, + 30 + ], + [ + 56, + 31 + ], + [ + 56, + 32 + ], + [ + 56, + 33 + ], + [ + 56, + 34 + ], + [ + 56, + 35 + ], + [ + 56, + 36 + ], + [ + 56, + 37 + ], + [ + 56, + 38 + ], + [ + 56, + 39 + ], + [ + 56, + 40 + ], + [ + 56, + 41 + ], + [ + 56, + 42 + ], + [ + 56, + 43 + ], + [ + 56, + 44 + ], + [ + 56, + 45 + ], + [ + 56, + 46 + ], + [ + 56, + 47 + ], + [ + 56, + 48 + ], + [ + 56, + 49 + ], + [ + 56, + 50 + ], + [ + 56, + 51 + ], + [ + 56, + 52 + ], + [ + 56, + 53 + ], + [ + 56, + 54 + ], + [ + 56, + 55 + ], + [ + 56, + 56 + ], + [ + 56, + 57 + ], + [ + 56, + 58 + ], + [ + 56, + 59 + ], + [ + 56, + 60 + ], + [ + 57, + 23 + ], + [ + 57, + 24 + ], + [ + 57, + 25 + ], + [ + 57, + 26 + ], + [ + 57, + 27 + ], + [ + 57, + 28 + ], + [ + 57, + 29 + ], + [ + 57, + 30 + ], + [ + 57, + 31 + ], + [ + 57, + 32 + ], + [ + 57, + 33 + ], + [ + 57, + 34 + ], + [ + 57, + 35 + ], + [ + 57, + 36 + ], + [ + 57, + 37 + ], + [ + 57, + 38 + ], + [ + 57, + 39 + ], + [ + 57, + 40 + ], + [ + 57, + 41 + ], + [ + 57, + 42 + ], + [ + 57, + 43 + ], + [ + 57, + 44 + ], + [ + 57, + 45 + ], + [ + 57, + 46 + ], + [ + 57, + 47 + ], + [ + 57, + 48 + ], + [ + 57, + 49 + ], + [ + 57, + 50 + ], + [ + 57, + 51 + ], + [ + 57, + 52 + ], + [ + 57, + 53 + ], + [ + 57, + 54 + ], + [ + 57, + 55 + ], + [ + 57, + 56 + ], + [ + 57, + 57 + ], + [ + 57, + 58 + ], + [ + 57, + 59 + ], + [ + 58, + 23 + ], + [ + 58, + 24 + ], + [ + 58, + 25 + ], + [ + 58, + 26 + ], + [ + 58, + 27 + ], + [ + 58, + 28 + ], + [ + 58, + 29 + ], + [ + 58, + 30 + ], + [ + 58, + 31 + ], + [ + 58, + 32 + ], + [ + 58, + 33 + ], + [ + 58, + 34 + ], + [ + 58, + 35 + ], + [ + 58, + 36 + ], + [ + 58, + 37 + ], + [ + 58, + 38 + ], + [ + 58, + 39 + ], + [ + 58, + 40 + ], + [ + 58, + 41 + ], + [ + 58, + 42 + ], + [ + 58, + 43 + ], + [ + 58, + 44 + ], + [ + 58, + 45 + ], + [ + 58, + 46 + ], + [ + 58, + 47 + ], + [ + 58, + 48 + ], + [ + 58, + 49 + ], + [ + 58, + 50 + ], + [ + 58, + 51 + ], + [ + 58, + 52 + ], + [ + 58, + 53 + ], + [ + 58, + 54 + ], + [ + 58, + 55 + ], + [ + 58, + 56 + ], + [ + 58, + 57 + ], + [ + 58, + 58 + ], + [ + 58, + 59 + ], + [ + 59, + 23 + ], + [ + 59, + 24 + ], + [ + 59, + 25 + ], + [ + 59, + 26 + ], + [ + 59, + 27 + ], + [ + 59, + 28 + ], + [ + 59, + 29 + ], + [ + 59, + 30 + ], + [ + 59, + 31 + ], + [ + 59, + 32 + ], + [ + 59, + 33 + ], + [ + 59, + 34 + ], + [ + 59, + 35 + ], + [ + 59, + 36 + ], + [ + 59, + 37 + ], + [ + 59, + 38 + ], + [ + 59, + 39 + ], + [ + 59, + 40 + ], + [ + 59, + 41 + ], + [ + 59, + 42 + ], + [ + 59, + 43 + ], + [ + 59, + 44 + ], + [ + 59, + 45 + ], + [ + 59, + 46 + ], + [ + 59, + 47 + ], + [ + 59, + 48 + ], + [ + 59, + 49 + ], + [ + 59, + 50 + ], + [ + 59, + 51 + ], + [ + 59, + 52 + ], + [ + 59, + 53 + ], + [ + 59, + 54 + ], + [ + 59, + 55 + ], + [ + 59, + 56 + ], + [ + 59, + 57 + ], + [ + 59, + 58 + ], + [ + 60, + 23 + ], + [ + 60, + 24 + ], + [ + 60, + 25 + ], + [ + 60, + 26 + ], + [ + 60, + 27 + ], + [ + 60, + 28 + ], + [ + 60, + 29 + ], + [ + 60, + 30 + ], + [ + 60, + 31 + ], + [ + 60, + 32 + ], + [ + 60, + 33 + ], + [ + 60, + 34 + ], + [ + 60, + 35 + ], + [ + 60, + 36 + ], + [ + 60, + 37 + ], + [ + 60, + 38 + ], + [ + 60, + 39 + ], + [ + 60, + 40 + ], + [ + 60, + 41 + ], + [ + 60, + 42 + ], + [ + 60, + 43 + ], + [ + 60, + 44 + ], + [ + 60, + 45 + ], + [ + 60, + 46 + ], + [ + 60, + 47 + ], + [ + 60, + 48 + ], + [ + 60, + 49 + ], + [ + 60, + 50 + ], + [ + 60, + 51 + ], + [ + 60, + 52 + ], + [ + 60, + 53 + ], + [ + 60, + 54 + ], + [ + 60, + 55 + ], + [ + 60, + 56 + ], + [ + 60, + 57 + ], + [ + 61, + 23 + ], + [ + 61, + 24 + ], + [ + 61, + 25 + ], + [ + 61, + 26 + ], + [ + 61, + 27 + ], + [ + 61, + 28 + ], + [ + 61, + 29 + ], + [ + 61, + 30 + ], + [ + 61, + 31 + ], + [ + 61, + 32 + ], + [ + 61, + 33 + ], + [ + 61, + 34 + ], + [ + 61, + 35 + ], + [ + 61, + 36 + ], + [ + 61, + 37 + ], + [ + 61, + 38 + ], + [ + 61, + 39 + ], + [ + 61, + 40 + ], + [ + 61, + 41 + ], + [ + 61, + 42 + ], + [ + 61, + 43 + ], + [ + 61, + 44 + ], + [ + 61, + 45 + ], + [ + 61, + 46 + ], + [ + 61, + 47 + ], + [ + 61, + 48 + ], + [ + 61, + 49 + ], + [ + 61, + 50 + ], + [ + 61, + 51 + ], + [ + 61, + 52 + ], + [ + 61, + 53 + ], + [ + 61, + 54 + ], + [ + 61, + 55 + ], + [ + 61, + 56 + ], + [ + 61, + 57 + ], + [ + 62, + 23 + ], + [ + 62, + 24 + ], + [ + 62, + 25 + ], + [ + 62, + 26 + ], + [ + 62, + 27 + ], + [ + 62, + 28 + ], + [ + 62, + 29 + ], + [ + 62, + 30 + ], + [ + 62, + 31 + ], + [ + 62, + 32 + ], + [ + 62, + 33 + ], + [ + 62, + 34 + ], + [ + 62, + 35 + ], + [ + 62, + 36 + ], + [ + 62, + 37 + ], + [ + 62, + 38 + ], + [ + 62, + 39 + ], + [ + 62, + 40 + ], + [ + 62, + 41 + ], + [ + 62, + 42 + ], + [ + 62, + 43 + ], + [ + 62, + 44 + ], + [ + 62, + 45 + ], + [ + 62, + 46 + ], + [ + 62, + 47 + ], + [ + 62, + 48 + ], + [ + 62, + 49 + ], + [ + 62, + 50 + ], + [ + 62, + 51 + ], + [ + 62, + 52 + ], + [ + 62, + 53 + ], + [ + 62, + 54 + ], + [ + 62, + 55 + ], + [ + 62, + 56 + ], + [ + 63, + 23 + ], + [ + 63, + 24 + ], + [ + 63, + 25 + ], + [ + 63, + 26 + ], + [ + 63, + 27 + ], + [ + 63, + 28 + ], + [ + 63, + 29 + ], + [ + 63, + 30 + ], + [ + 63, + 31 + ], + [ + 63, + 32 + ], + [ + 63, + 33 + ], + [ + 63, + 34 + ], + [ + 63, + 35 + ], + [ + 63, + 36 + ], + [ + 63, + 37 + ], + [ + 63, + 38 + ], + [ + 63, + 39 + ], + [ + 63, + 40 + ], + [ + 63, + 41 + ], + [ + 63, + 42 + ], + [ + 63, + 43 + ], + [ + 63, + 44 + ], + [ + 63, + 45 + ], + [ + 63, + 46 + ], + [ + 63, + 47 + ], + [ + 63, + 48 + ], + [ + 63, + 49 + ], + [ + 63, + 50 + ], + [ + 63, + 51 + ], + [ + 63, + 52 + ], + [ + 63, + 53 + ], + [ + 63, + 54 + ], + [ + 63, + 55 + ], + [ + 63, + 56 + ], + [ + 64, + 23 + ], + [ + 64, + 24 + ], + [ + 64, + 25 + ], + [ + 64, + 26 + ], + [ + 64, + 27 + ], + [ + 64, + 28 + ], + [ + 64, + 29 + ], + [ + 64, + 30 + ], + [ + 64, + 31 + ], + [ + 64, + 32 + ], + [ + 64, + 33 + ], + [ + 64, + 34 + ], + [ + 64, + 35 + ], + [ + 64, + 36 + ], + [ + 64, + 37 + ], + [ + 64, + 38 + ], + [ + 64, + 39 + ], + [ + 64, + 40 + ], + [ + 64, + 41 + ], + [ + 64, + 42 + ], + [ + 64, + 43 + ], + [ + 64, + 44 + ], + [ + 64, + 45 + ], + [ + 64, + 46 + ], + [ + 64, + 47 + ], + [ + 64, + 48 + ], + [ + 64, + 49 + ], + [ + 64, + 50 + ], + [ + 64, + 51 + ], + [ + 64, + 52 + ], + [ + 64, + 53 + ], + [ + 64, + 54 + ], + [ + 64, + 55 + ], + [ + 65, + 23 + ], + [ + 65, + 24 + ], + [ + 65, + 25 + ], + [ + 65, + 26 + ], + [ + 65, + 27 + ], + [ + 65, + 28 + ], + [ + 65, + 29 + ], + [ + 65, + 30 + ], + [ + 65, + 31 + ], + [ + 65, + 32 + ], + [ + 65, + 33 + ], + [ + 65, + 34 + ], + [ + 65, + 35 + ], + [ + 65, + 36 + ], + [ + 65, + 37 + ], + [ + 65, + 38 + ], + [ + 65, + 39 + ], + [ + 65, + 40 + ], + [ + 65, + 41 + ], + [ + 65, + 42 + ], + [ + 65, + 43 + ], + [ + 65, + 44 + ], + [ + 65, + 45 + ], + [ + 65, + 46 + ], + [ + 65, + 47 + ], + [ + 65, + 48 + ], + [ + 65, + 49 + ], + [ + 65, + 50 + ], + [ + 65, + 51 + ], + [ + 65, + 52 + ], + [ + 65, + 53 + ], + [ + 65, + 54 + ], + [ + 66, + 23 + ], + [ + 66, + 24 + ], + [ + 66, + 25 + ], + [ + 66, + 26 + ], + [ + 66, + 27 + ], + [ + 66, + 28 + ], + [ + 66, + 29 + ], + [ + 66, + 30 + ], + [ + 66, + 31 + ], + [ + 66, + 32 + ], + [ + 66, + 33 + ], + [ + 66, + 34 + ], + [ + 66, + 35 + ], + [ + 66, + 36 + ], + [ + 66, + 37 + ], + [ + 66, + 38 + ], + [ + 66, + 39 + ], + [ + 66, + 40 + ], + [ + 66, + 41 + ], + [ + 66, + 42 + ], + [ + 66, + 43 + ], + [ + 66, + 44 + ], + [ + 66, + 45 + ], + [ + 66, + 46 + ], + [ + 66, + 47 + ], + [ + 66, + 48 + ], + [ + 66, + 49 + ], + [ + 66, + 50 + ], + [ + 66, + 51 + ], + [ + 66, + 52 + ], + [ + 66, + 53 + ], + [ + 67, + 23 + ], + [ + 67, + 24 + ], + [ + 67, + 25 + ], + [ + 67, + 26 + ], + [ + 67, + 27 + ], + [ + 67, + 28 + ], + [ + 67, + 29 + ], + [ + 67, + 30 + ], + [ + 67, + 31 + ], + [ + 67, + 32 + ], + [ + 67, + 33 + ], + [ + 67, + 34 + ], + [ + 67, + 35 + ], + [ + 67, + 36 + ], + [ + 67, + 37 + ], + [ + 67, + 38 + ], + [ + 67, + 39 + ], + [ + 67, + 40 + ], + [ + 67, + 41 + ], + [ + 67, + 42 + ], + [ + 67, + 43 + ], + [ + 67, + 44 + ], + [ + 67, + 45 + ], + [ + 67, + 46 + ], + [ + 67, + 47 + ], + [ + 67, + 48 + ], + [ + 67, + 49 + ], + [ + 67, + 50 + ], + [ + 67, + 51 + ], + [ + 67, + 52 + ], + [ + 67, + 53 + ], + [ + 68, + 22 + ], + [ + 68, + 23 + ], + [ + 68, + 24 + ], + [ + 68, + 25 + ], + [ + 68, + 26 + ], + [ + 68, + 27 + ], + [ + 68, + 28 + ], + [ + 68, + 29 + ], + [ + 68, + 30 + ], + [ + 68, + 31 + ], + [ + 68, + 32 + ], + [ + 68, + 33 + ], + [ + 68, + 34 + ], + [ + 68, + 35 + ], + [ + 68, + 36 + ], + [ + 68, + 37 + ], + [ + 68, + 38 + ], + [ + 68, + 39 + ], + [ + 68, + 40 + ], + [ + 68, + 41 + ], + [ + 68, + 42 + ], + [ + 68, + 43 + ], + [ + 68, + 44 + ], + [ + 68, + 45 + ], + [ + 68, + 46 + ], + [ + 68, + 47 + ], + [ + 68, + 48 + ], + [ + 68, + 49 + ], + [ + 68, + 50 + ], + [ + 68, + 51 + ], + [ + 68, + 52 + ], + [ + 69, + 22 + ], + [ + 69, + 23 + ], + [ + 69, + 24 + ], + [ + 69, + 25 + ], + [ + 69, + 26 + ], + [ + 69, + 27 + ], + [ + 69, + 28 + ], + [ + 69, + 29 + ], + [ + 69, + 30 + ], + [ + 69, + 31 + ], + [ + 69, + 32 + ], + [ + 69, + 33 + ], + [ + 69, + 34 + ], + [ + 69, + 35 + ], + [ + 69, + 36 + ], + [ + 69, + 37 + ], + [ + 69, + 38 + ], + [ + 69, + 39 + ], + [ + 69, + 40 + ], + [ + 69, + 41 + ], + [ + 69, + 42 + ], + [ + 69, + 43 + ], + [ + 69, + 44 + ], + [ + 69, + 45 + ], + [ + 69, + 46 + ], + [ + 69, + 47 + ], + [ + 69, + 48 + ], + [ + 69, + 49 + ], + [ + 69, + 50 + ], + [ + 69, + 51 + ], + [ + 70, + 23 + ], + [ + 70, + 24 + ], + [ + 70, + 25 + ], + [ + 70, + 26 + ], + [ + 70, + 27 + ], + [ + 70, + 28 + ], + [ + 70, + 29 + ], + [ + 70, + 30 + ], + [ + 70, + 31 + ], + [ + 70, + 32 + ], + [ + 70, + 33 + ], + [ + 70, + 34 + ], + [ + 70, + 35 + ], + [ + 70, + 36 + ], + [ + 70, + 37 + ], + [ + 70, + 38 + ], + [ + 70, + 39 + ], + [ + 70, + 40 + ], + [ + 70, + 41 + ], + [ + 70, + 42 + ], + [ + 70, + 43 + ], + [ + 70, + 44 + ], + [ + 70, + 45 + ], + [ + 70, + 46 + ], + [ + 70, + 47 + ], + [ + 70, + 48 + ], + [ + 70, + 49 + ], + [ + 70, + 50 + ], + [ + 70, + 51 + ], + [ + 71, + 22 + ], + [ + 71, + 23 + ], + [ + 71, + 24 + ], + [ + 71, + 25 + ], + [ + 71, + 26 + ], + [ + 71, + 27 + ], + [ + 71, + 28 + ], + [ + 71, + 29 + ], + [ + 71, + 30 + ], + [ + 71, + 31 + ], + [ + 71, + 32 + ], + [ + 71, + 33 + ], + [ + 71, + 34 + ], + [ + 71, + 35 + ], + [ + 71, + 36 + ], + [ + 71, + 37 + ], + [ + 71, + 38 + ], + [ + 71, + 39 + ], + [ + 71, + 40 + ], + [ + 71, + 41 + ], + [ + 71, + 42 + ], + [ + 71, + 43 + ], + [ + 71, + 44 + ], + [ + 71, + 45 + ], + [ + 71, + 46 + ], + [ + 71, + 47 + ], + [ + 71, + 48 + ], + [ + 71, + 49 + ], + [ + 71, + 50 + ], + [ + 72, + 23 + ], + [ + 72, + 24 + ], + [ + 72, + 25 + ], + [ + 72, + 26 + ], + [ + 72, + 27 + ], + [ + 72, + 28 + ], + [ + 72, + 29 + ], + [ + 72, + 30 + ], + [ + 72, + 31 + ], + [ + 72, + 32 + ], + [ + 72, + 33 + ], + [ + 72, + 34 + ], + [ + 72, + 35 + ], + [ + 72, + 36 + ], + [ + 72, + 37 + ], + [ + 72, + 38 + ], + [ + 72, + 39 + ], + [ + 72, + 40 + ], + [ + 72, + 41 + ], + [ + 72, + 42 + ], + [ + 72, + 43 + ], + [ + 72, + 44 + ], + [ + 72, + 45 + ], + [ + 72, + 46 + ], + [ + 72, + 47 + ], + [ + 72, + 48 + ], + [ + 72, + 49 + ], + [ + 73, + 22 + ], + [ + 73, + 23 + ], + [ + 73, + 24 + ], + [ + 73, + 25 + ], + [ + 73, + 26 + ], + [ + 73, + 27 + ], + [ + 73, + 28 + ], + [ + 73, + 29 + ], + [ + 73, + 30 + ], + [ + 73, + 31 + ], + [ + 73, + 32 + ], + [ + 73, + 33 + ], + [ + 73, + 34 + ], + [ + 73, + 35 + ], + [ + 73, + 36 + ], + [ + 73, + 37 + ], + [ + 73, + 38 + ], + [ + 73, + 39 + ], + [ + 73, + 40 + ], + [ + 73, + 41 + ], + [ + 73, + 42 + ], + [ + 73, + 43 + ], + [ + 73, + 44 + ], + [ + 73, + 45 + ], + [ + 73, + 46 + ], + [ + 73, + 47 + ], + [ + 73, + 48 + ], + [ + 74, + 22 + ], + [ + 74, + 23 + ], + [ + 74, + 24 + ], + [ + 74, + 25 + ], + [ + 74, + 26 + ], + [ + 74, + 27 + ], + [ + 74, + 28 + ], + [ + 74, + 29 + ], + [ + 74, + 30 + ], + [ + 74, + 31 + ], + [ + 74, + 32 + ], + [ + 74, + 33 + ], + [ + 74, + 34 + ], + [ + 74, + 35 + ], + [ + 74, + 36 + ], + [ + 74, + 37 + ], + [ + 74, + 38 + ], + [ + 74, + 39 + ], + [ + 74, + 40 + ], + [ + 74, + 41 + ], + [ + 74, + 42 + ], + [ + 74, + 43 + ], + [ + 74, + 44 + ], + [ + 74, + 45 + ], + [ + 74, + 46 + ], + [ + 74, + 47 + ], + [ + 75, + 22 + ], + [ + 75, + 23 + ], + [ + 75, + 24 + ], + [ + 75, + 25 + ], + [ + 75, + 26 + ], + [ + 75, + 27 + ], + [ + 75, + 28 + ], + [ + 75, + 29 + ], + [ + 75, + 30 + ], + [ + 75, + 31 + ], + [ + 75, + 32 + ], + [ + 75, + 33 + ], + [ + 75, + 34 + ], + [ + 75, + 35 + ], + [ + 75, + 36 + ], + [ + 75, + 37 + ], + [ + 75, + 38 + ], + [ + 75, + 39 + ], + [ + 75, + 40 + ], + [ + 75, + 41 + ], + [ + 75, + 42 + ], + [ + 75, + 43 + ], + [ + 75, + 44 + ], + [ + 75, + 45 + ], + [ + 75, + 46 + ], + [ + 75, + 47 + ], + [ + 76, + 22 + ], + [ + 76, + 23 + ], + [ + 76, + 24 + ], + [ + 76, + 25 + ], + [ + 76, + 26 + ], + [ + 76, + 27 + ], + [ + 76, + 28 + ], + [ + 76, + 29 + ], + [ + 76, + 30 + ], + [ + 76, + 31 + ], + [ + 76, + 32 + ], + [ + 76, + 33 + ], + [ + 76, + 34 + ], + [ + 76, + 35 + ], + [ + 76, + 36 + ], + [ + 76, + 37 + ], + [ + 76, + 38 + ], + [ + 76, + 39 + ], + [ + 76, + 40 + ], + [ + 76, + 41 + ], + [ + 76, + 42 + ], + [ + 76, + 43 + ], + [ + 76, + 44 + ], + [ + 76, + 45 + ], + [ + 76, + 46 + ], + [ + 77, + 22 + ], + [ + 77, + 23 + ], + [ + 77, + 24 + ], + [ + 77, + 25 + ], + [ + 77, + 26 + ], + [ + 77, + 27 + ], + [ + 77, + 28 + ], + [ + 77, + 29 + ], + [ + 77, + 30 + ], + [ + 77, + 31 + ], + [ + 77, + 32 + ], + [ + 77, + 33 + ], + [ + 77, + 34 + ], + [ + 77, + 35 + ], + [ + 77, + 36 + ], + [ + 77, + 37 + ], + [ + 77, + 38 + ], + [ + 77, + 39 + ], + [ + 77, + 40 + ], + [ + 77, + 41 + ], + [ + 77, + 42 + ], + [ + 77, + 43 + ], + [ + 77, + 44 + ], + [ + 77, + 45 + ], + [ + 78, + 22 + ], + [ + 78, + 23 + ], + [ + 78, + 24 + ], + [ + 78, + 25 + ], + [ + 78, + 26 + ], + [ + 78, + 27 + ], + [ + 78, + 28 + ], + [ + 78, + 29 + ], + [ + 78, + 30 + ], + [ + 78, + 31 + ], + [ + 78, + 32 + ], + [ + 78, + 33 + ], + [ + 78, + 34 + ], + [ + 78, + 35 + ], + [ + 78, + 36 + ], + [ + 78, + 37 + ], + [ + 78, + 38 + ], + [ + 78, + 39 + ], + [ + 78, + 40 + ], + [ + 78, + 41 + ], + [ + 78, + 42 + ], + [ + 78, + 43 + ], + [ + 78, + 44 + ], + [ + 79, + 35 + ], + [ + 79, + 36 + ], + [ + 79, + 37 + ], + [ + 79, + 38 + ], + [ + 79, + 39 + ], + [ + 79, + 40 + ], + [ + 79, + 41 + ], + [ + 79, + 42 + ], + [ + 79, + 43 + ] + ], + "summed_black_polygon_area_mm2": 68.542362, + "summed_white_base_area_mm2": 220.734901, + "black_to_base_area_ratio_estimate": 0.310519 + } + ] +} diff --git a/src/orisys_sensor_design/cli.py b/src/orisys_sensor_design/cli.py index 20749b9..455b48a 100644 --- a/src/orisys_sensor_design/cli.py +++ b/src/orisys_sensor_design/cli.py @@ -557,8 +557,11 @@ def cmd_stroke_texture(revision_dir: Path, args: argparse.Namespace) -> int: } manifest_path = output_dir / "stroke_texture_manifest.json" temporary = manifest_path.with_suffix(".json.tmp") - auxiliary = ([output_dir / "_multiview_ground_truth.json", - output_dir / "_print_views.json"] if args.views else []) + production_report_path = output_dir / "stroke_texture_production_report.json" + auxiliary = [production_report_path] + if args.views: + auxiliary.extend((output_dir / "_multiview_ground_truth.json", + output_dir / "_print_views.json")) if settings["orientation_mode"] == "optimized": auxiliary.append(output_dir / "stroke_texture_optimization.json") if (manifest_path.exists() or temporary.exists() @@ -585,6 +588,21 @@ def cmd_stroke_texture(revision_dir: Path, args: argparse.Namespace) -> int: for path in missing: print(f"ERROR: stroke artifact missing or empty: {path}", file=sys.stderr) return 3 + try: + production_report = json.loads(production_report_path.read_text(encoding="utf-8")) + if production_report["schema"] != "orisys-sensor-design/stroke-production-report-v1": + raise ValueError("unexpected production report schema") + measured = production_report["views"] + if [view["id"] for view in measured] != source_ids: + raise ValueError("production report views differ from the source job") + for view in measured: + if view["svg"]["sha256"] != sha256_file(outputs[view["id"]]["svg"]): + raise ValueError(f"production report SVG hash differs for {view['id']}") + if view["stroke_count"] < 1 or view["width_mm"]["min"] is None: + raise ValueError(f"production report has no measurable strokes for {view['id']}") + except (OSError, ValueError, KeyError, TypeError) as exc: + print(f"ERROR: invalid stroke production report: {exc}", file=sys.stderr) + return 3 manifest = { "schema": "orisys-sensor-design/stroke-texture-manifest-v2", "revision_dir": str(paths.root), @@ -613,11 +631,22 @@ def cmd_stroke_texture(revision_dir: Path, args: argparse.Namespace) -> int: temporary.replace(manifest_path) artifacts = [path for entry in outputs.values() for path in entry.values()] if console.get_level() == console.QUIET: - console.artifact_paths([*artifacts, manifest_path]) + console.artifact_paths([*artifacts, production_report_path, manifest_path]) else: console.report(f"OK: wrote {len(artifacts)} stroke texture artifacts to {output_dir}") for path in artifacts: console.report(f" {path}") + for view in measured: + width = view["width_mm"] + length = view["length_mm"] + console.report( + f" {view['id']}: {view['stroke_count']} strokes, " + f"width {width['min']:.4g}-{width['max']:.4g} mm, " + f"length {length['min']:.4g}-{length['max']:.4g} mm, " + f"{view['width_below_target_count']} below " + f"{production_report['width_target_mm']:g} mm width target" + ) + console.report(f" production report: {production_report_path}") console.report(f" manifest: {manifest_path}") return 0 diff --git a/tests/test_stroke_production_report.py b/tests/test_stroke_production_report.py new file mode 100644 index 0000000..a63a89b --- /dev/null +++ b/tests/test_stroke_production_report.py @@ -0,0 +1,67 @@ +"""Production dimensions are measured per visible stroke, not per UV triangle.""" + +from __future__ import annotations + +import json +import math +import sys +from pathlib import Path + +import pytest + +SCRIPT_DIR = Path(__file__).resolve().parents[1] / "blender" / "scripts" +sys.path.insert(0, str(SCRIPT_DIR)) + +from stroke_production_report import summarize_view, write_report # noqa: E402 + + +def test_fragments_of_one_cell_are_one_stroke(tmp_path): + svg = tmp_path / "stroke_texture_uv_1.svg" + svg.write_text("", encoding="utf-8") + # 100 px/mm; the first 0.6 x 0.2 mm mark is split by a UV triangle. + polygons = [ + (1, 2, [(10, 10), (40, 10), (40, 30), (10, 30)]), + (1, 2, [(40, 10), (70, 10), (70, 30), (40, 30)]), + (3, 4, [(100, 10), (130, 10), (130, 20), (100, 20)]), + ] + mesh = [[(0, 0), (200, 0), (200, 200), (0, 200)]] + view = summarize_view("uv_1", "uv_1", polygons, mesh, + (1000, 1000), (10, 10), svg) + assert view["stroke_count"] == 2 + assert view["vector_fragment_count"] == 3 + assert view["width_mm"]["min"] == pytest.approx(0.1) + assert view["width_mm"]["max"] == pytest.approx(0.2) + assert view["length_mm"]["max"] == pytest.approx(0.6) + assert view["width_below_target_count"] == 1 + assert view["black_to_base_area_ratio_estimate"] == pytest.approx(0.0375) + + +def test_rotated_stroke_dimensions_use_print_page_units(tmp_path): + svg = tmp_path / "stroke.svg" + svg.write_text("", encoding="utf-8") + angle = math.radians(31) + ux, uy = math.cos(angle), math.sin(angle) + vx, vy = -uy, ux + # 2 px/mm horizontally, 4 px/mm vertically: convert the mm corners to pixels. + corners = [(sx * 0.3 * ux + sy * 0.1 * vx, + sx * 0.3 * uy + sy * 0.1 * vy) for sx, sy in + ((-1, -1), (1, -1), (1, 1), (-1, 1))] + pixels = [(x * 2 + 50, y * 4 + 50) for x, y in corners] + view = summarize_view("compute", "compute", [(7, 8, pixels)], [], + (200, 400), (100, 100), svg) + assert view["width_mm"]["min"] == pytest.approx(0.2) + assert view["length_mm"]["max"] == pytest.approx(0.6) + + +def test_report_counts_split_camera_cells_across_views(tmp_path): + source = tmp_path / "job.json" + source.write_text('{"settings": {"nx": 10, "ny": 8}}', encoding="utf-8") + a = {"camera_cells": [[1, 2], [3, 4]], "stroke_count": 2} + b = {"camera_cells": [[3, 4], [5, 6]], "stroke_count": 2} + output = tmp_path / "report.json" + report = write_report(output, source, {"seed": 7}, [a, b]) + assert report["unique_camera_cell_count"] == 3 + assert report["cells_in_multiple_views"] == 1 + assert report["total_view_strokes"] == 4 + assert report["camera_grid"] == [10, 8] + assert json.loads(output.read_text(encoding="utf-8"))["width_target_mm"] == 0.2 diff --git a/tests/test_stroke_texture_cli.py b/tests/test_stroke_texture_cli.py index ca46ff3..6a770ef 100644 --- a/tests/test_stroke_texture_cli.py +++ b/tests/test_stroke_texture_cli.py @@ -12,6 +12,21 @@ from orisys_sensor_design.manifest import RevisionPaths, sha256_file REVISION = Path(__file__).resolve().parents[1] / "sensors" / "finger-xynova" / "r01" +def _production_report(output_dir: Path, ids: tuple[str, ...]) -> None: + views = [] + for view_id in ids: + svg = output_dir / f"stroke_texture_{view_id}.svg" + views.append({ + "id": view_id, "stroke_count": 3, "width_mm": {"min": 0.1, "max": 0.3}, + "length_mm": {"min": 0.2, "max": 0.5}, "width_below_target_count": 1, + "svg": {"sha256": sha256_file(svg)}, + }) + (output_dir / "stroke_texture_production_report.json").write_text(json.dumps({ + "schema": "orisys-sensor-design/stroke-production-report-v1", + "width_target_mm": 0.2, "views": views, + }), encoding="utf-8") + + def _args(job: Path, output_dir: Path, views=False) -> argparse.Namespace: return argparse.Namespace( views=views, source_job=job, output_dir=output_dir, @@ -42,6 +57,7 @@ def test_exports_from_geometry_job(tmp_path, monkeypatch): calls.append((script, blend, args)) for fmt in ("png", "svg", "pdf"): (output_dir / f"stroke_texture_compute.{fmt}").write_bytes(fmt.encode()) + _production_report(output_dir, ("compute",)) return 0 monkeypatch.setattr(cli, "_run_blender_script", run_blender) @@ -55,6 +71,7 @@ def test_exports_from_geometry_job(tmp_path, monkeypatch): assert manifest["schema"] == "orisys-sensor-design/stroke-texture-manifest-v2" assert manifest["source_job"]["sha256"] == sha256_file(job) assert set(manifest["outputs"][0]["artifacts"]) == {"png", "svg", "pdf"} + assert "stroke_texture_production_report.json" in manifest["auxiliary"] assert cli.cmd_stroke_texture(REVISION, _args(job, output_dir)) == 2 assert len(calls) == 1 @@ -78,6 +95,7 @@ def test_multiview_exports_owned_pairs_without_colour_artwork(tmp_path, monkeypa (output_dir / f"stroke_texture_{pair}.{fmt}").write_bytes(pair.encode()) for name in ("_multiview_ground_truth.json", "_print_views.json"): (output_dir / name).write_text("{}", encoding="utf-8") + _production_report(output_dir, ("uv_1", "uv_2")) return 0 monkeypatch.setattr(cli, "_run_blender_script", run_blender) @@ -87,5 +105,24 @@ def test_multiview_exports_owned_pairs_without_colour_artwork(tmp_path, monkeypa manifest = json.loads((output_dir / "stroke_texture_manifest.json").read_text()) assert manifest["views"] is True assert [entry["id"] for entry in manifest["outputs"]] == ["uv_1", "uv_2"] - assert set(manifest["auxiliary"]) == {"_multiview_ground_truth.json", "_print_views.json"} + assert set(manifest["auxiliary"]) == { + "_multiview_ground_truth.json", "_print_views.json", + "stroke_texture_production_report.json", + } assert len(calls) == 1 + + +def test_rejects_report_for_a_different_svg(tmp_path, monkeypatch): + job = _job(tmp_path) + output_dir = tmp_path / "strokes" + + def run_blender(_script, _blend, _args): + for fmt in ("png", "svg", "pdf"): + (output_dir / f"stroke_texture_compute.{fmt}").write_bytes(fmt.encode()) + _production_report(output_dir, ("compute",)) + (output_dir / "stroke_texture_compute.svg").write_bytes(b"changed") + return 0 + + monkeypatch.setattr(cli, "_run_blender_script", run_blender) + assert cli.cmd_stroke_texture(REVISION, _args(job, output_dir)) == 3 + assert not (output_dir / "stroke_texture_manifest.json").exists()