{"id":"drawing-and-images-scaling-down","slug":"scaling-down","title":"Making an image smaller","text":"A photo gallery shows small copies of its photos, **thumbnails**, so that many fit on a screen. This step makes them, pixel by pixel.\n\n### Every second pixel\n\nThe simplest way to make an image half as wide and half as high: keep every second pixel of every second row, and drop the rest. Pixel (x, y) of the small image is pixel (2x, 2y) of the big one:\n\n| x in the small image | 0 | 1 | 2 | 3 |\n| --- | --- | --- | --- | --- |\n| x in the big image | 0 | 2 | 4 | 6 |\n\nThe same goes for y. So the loops go through the pixels of the **small** image, and each one reads its color from the big one:\n\n```asset landscape.png\n{\"name\":\"landscape.png\",\"image\":{\"asset\":\"landscape.png\",\"url\":\"images/landscape-309f25443f.png\",\"width\":32,\"height\":24,\"size\":317,\"alt\":\"A small landscape: a blue sky that gets lighter toward the horizon, a yellow sun, blue-green hills, a green slope, a small blue lake and a striped brown field.\"}}\n```\n\n```java\nimport javafx.application.Application;\nimport javafx.scene.Scene;\nimport javafx.scene.image.Image;\nimport javafx.scene.image.ImageView;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\nimport javafx.scene.layout.HBox;\nimport javafx.stage.Stage;\n\npublic class Main extends Application {\n\n    @Override\n    public void start(Stage stage) {\n        Image original = new Image(\"file:landscape.png\");\n        PixelReader reader = original.getPixelReader();\n        int width = (int) original.getWidth() / 2;\n        int height = (int) original.getHeight() / 2;\n\n        WritableImage half = new WritableImage(width, height);\n        PixelWriter writer = half.getPixelWriter();\n        for (int y = 0; y < height; y++) {\n            for (int x = 0; x < width; x++) {\n                writer.setColor(x, y, reader.getColor(2 * x, 2 * y));\n            }\n        }\n\n        stage.setScene(new Scene(new HBox(10, new ImageView(original), new ImageView(half))));\n        stage.setTitle(\"Half size\");\n        stage.show();\n    }\n\n    public static void main(String[] args) {\n        launch(Main.class);\n    }\n}\n```\n\n```window\n{\"events\":[],\"window\":{\"windows\":[{\"title\":\"Half size\",\"scene\":{\"root\":{\"n\":1,\"type\":\"HBox\",\"spacing\":10,\"children\":[{\"n\":2,\"type\":\"ImageView\",\"image\":{\"width\":32,\"height\":24,\"crc\":\"6315e812\",\"pixels\":\"RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7//9dA///XQP//10D/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR///XQP//10D//9dA///XQP//10D/XZTR/12U0f9dlNH/XZTR/12U0f9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P//10D//9dA///XQP//10D//9dA///XQP//10D/ZZvU/2Wb1P9lm9T/ZZvU/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX///XQP//10D//9dA///XQP//10D//9dA///XQP9sodf/bKHX/2yh1/9sodf/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r//9dA///XQP//10D//9dA///XQP//10D//9dA/3Sn2v90p9r/dKfa/3Sn2v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7//9dA///XQP//10D//9dA///XQP98rd7/fK3e/3yt3v98rd7/fK3e/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H//9dA///XQP//10D/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5vG6v+bxur/m8bq/5vG6v9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/m8bq/5vG6v+bxur/m8bq/5vG6v+bxur/m8bq/5vG6v+bxur/m8bq/5vG6v+bxur/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/oszt/6LM7f+izO3/oszt/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/zyZRv88mUb/PJlG/zyZRv88brT/PG60/zxutP88brT/PG60/zxutP88brT/PG60/zxutP88mUb/PJlG/zyZRv88mUb/PJlG/zyZRv88mUb/PJlG/zyZRv88mUb/PJlG/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/N5FB/zeRQf83kUH/N5FB/zxutP88brT/PG60/zxutP88brT/PG60/zxutP88brT/PG60/zeRQf83kUH/N5FB/zeRQf83kUH/N5FB/zeRQf83kUH/N5FB/zeRQf83kUH/PJlG/zyZRv88mUb/PJlG/zyZRv88mUb/PJlG/zyZRv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/\"}},{\"n\":3,\"type\":\"ImageView\",\"image\":{\"width\":16,\"height\":12,\"crc\":\"550aea5a\",\"pixels\":\"RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O///XQP9Vjs7/VY7O/1WOzv9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU///XQP//10D//9dA/2Wb1P9lm9T/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v//10D//9dA///XQP90p9r/dKfa/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh///XQP+Es+H/hLPh/4Sz4f+TwOf/k8Dn/5PA5/+TwOf/Woxu/1qMbv9ajG7/Woxu/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/oszt/6LM7f9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9GqlD/RqpQ/0aqUP9GqlD/N5FB/zeRQf88brT/PG60/zxutP88brT/PG60/zeRQf83kUH/N5FB/zeRQf83kUH/PJlG/zyZRv88mUb/PJlG/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/\"}}]}}}],\"problems\":[]},\"outline\":\"Window \\\"Half size\\\"\\n  HBox spacing 10\\n    ImageView 32 x 24, pixels 6315e812\\n    ImageView 16 x 12, pixels 550aea5a\"}\n```\n\n- `(int) original.getWidth() / 2`: the cast comes first, so this is 32 / 2, which is 16. The thumbnail is 16 x 12.\n- Each pixel of the thumbnail is set exactly once. Going through the big image's pixels instead would need a check for the ones to keep.\n- The page draws the small image more times larger than the big one, so on the page they can look about the same size. The window as text gives their real sizes.\n\nDropping pixels loses detail: a thin line one pixel wide can vanish from the thumbnail. Photo editors usually work out each small pixel from the colors of all the pixels it replaces (their average, for example), which looks smoother. Keeping every second pixel is the simplest way, and the one these lessons use.\n\n### A method that makes the thumbnail\n\nMaking a thumbnail is a job of its own, so it fits in a method, in a class without anything about windows: the image goes in, and a new image comes out. A WritableImage is an Image, so the method can be given either kind:\n\n```java\npublic static WritableImage half(Image source) {\n    PixelReader reader = source.getPixelReader();\n    int width = (int) source.getWidth() / 2;\n    int height = (int) source.getHeight() / 2;\n    WritableImage small = new WritableImage(width, height);\n    PixelWriter writer = small.getPixelWriter();\n    for (int y = 0; y < height; y++) {\n        for (int x = 0; x < width; x++) {\n            writer.setColor(x, y, reader.getColor(2 * x, 2 * y));\n        }\n    }\n    return small;\n}\n```\n\nA WritableImage can be made without any window, so a plain program can try the method on a tiny image whose colors it knows, and check what comes out. Here a 4 x 2 image gets shades of red in its first row and shades of green in its second:\n\n```java\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\nimport javafx.scene.paint.Color;\n\npublic class Main {\n    public static void main(String[] args) {\n        WritableImage strip = new WritableImage(4, 2);\n        PixelWriter writer = strip.getPixelWriter();\n        for (int x = 0; x < 4; x++) {\n            writer.setColor(x, 0, Color.rgb(x * 50, 0, 0));\n            writer.setColor(x, 1, Color.rgb(0, x * 50, 0));\n        }\n\n        WritableImage small = Thumbnail.half(strip);\n        System.out.println(small.getWidth() + \" x \" + small.getHeight());\n        System.out.println(small.getPixelReader().getColor(0, 0));\n        System.out.println(small.getPixelReader().getColor(1, 0));\n    }\n}\n// ==== Thumbnail.java ====\nimport javafx.scene.image.Image;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\n\npublic class Thumbnail {\n\n    public static WritableImage half(Image source) {\n        PixelReader reader = source.getPixelReader();\n        int width = (int) source.getWidth() / 2;\n        int height = (int) source.getHeight() / 2;\n        WritableImage small = new WritableImage(width, height);\n        PixelWriter writer = small.getPixelWriter();\n        for (int y = 0; y < height; y++) {\n            for (int x = 0; x < width; x++) {\n                writer.setColor(x, y, reader.getColor(2 * x, 2 * y));\n            }\n        }\n        return small;\n    }\n}\n```\n\n```output\n2.0 x 1.0\n0x000000ff\n0x640000ff\n```\n\nThe thumbnail kept the first row only, and from it the pixels at x 0 and x 2: red 0 and red 100 (`64` in hexadecimal). The challenges with methods check them like this, without a window.\n\n### Smaller by any whole number\n\nEvery third pixel makes a thumbnail a third of the size, and every fourth a quarter. With a **factor** `f`, the small image is `width / f` by `height / f`, and its pixel (x, y) is the big one's (x * f, y * f). The division is a whole-number division: the 32 x 24 landscape with a factor of 3 gives 10 x 8. Its 32 columns make 10 groups of 3 with 2 left over, and the leftover columns 30 and 31 are simply dropped. The sunset of `photo.png`, 64 x 48, at a half, a quarter and an eighth of its size:\n\n```asset photo.png\n{\"name\":\"photo.png\",\"image\":{\"asset\":\"photo.png\",\"url\":\"images/photo-5f4040f3fe.png\",\"width\":64,\"height\":48,\"size\":2077,\"alt\":\"A soft sunset: a sky going from purple to orange, a glowing low sun, dark hills, and rippled water reflecting the sky.\"}}\n```\n\n```java\nimport javafx.application.Application;\nimport javafx.scene.Scene;\nimport javafx.scene.image.Image;\nimport javafx.scene.image.ImageView;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\nimport javafx.scene.layout.HBox;\nimport javafx.stage.Stage;\n\npublic class Main extends Application {\n\n    @Override\n    public void start(Stage stage) {\n        Image photo = new Image(\"file:photo.png\");\n        HBox row = new HBox(10);\n        for (int factor = 2; factor <= 8; factor *= 2) {\n            row.getChildren().add(new ImageView(shrink(photo, factor)));\n        }\n\n        stage.setScene(new Scene(row));\n        stage.setTitle(\"Thumbnails\");\n        stage.show();\n    }\n\n    public static WritableImage shrink(Image source, int factor) {\n        PixelReader reader = source.getPixelReader();\n        int width = (int) source.getWidth() / factor;\n        int height = (int) source.getHeight() / factor;\n        WritableImage small = new WritableImage(width, height);\n        PixelWriter writer = small.getPixelWriter();\n        for (int y = 0; y < height; y++) {\n            for (int x = 0; x < width; x++) {\n                writer.setColor(x, y, reader.getColor(x * factor, y * factor));\n            }\n        }\n        return small;\n    }\n\n    public static void main(String[] args) {\n        launch(Main.class);\n    }\n}\n```\n\n```window\n{\"events\":[],\"window\":{\"windows\":[{\"title\":\"Thumbnails\",\"scene\":{\"root\":{\"n\":1,\"type\":\"HBox\",\"spacing\":10,\"children\":[{\"n\":2,\"type\":\"ImageView\",\"image\":{\"width\":32,\"height\":24,\"crc\":\"e2bf6484\",\"pixels\":\"PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+MW2b/j19o/5Jiaf+TZGn/kmJp/49faP+MW2b/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/m2Zl/6Juaf+peGz/r39v/7GCcP+vf2//qXhs/6Juaf+bZmX/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6dtZP+weWn/u4hv/8WVdf/Ln3n/zqJ6/8ufef/FlXX/u4hv/7B5af+nbWT/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+zc2L/uX1n/8SObv/RoHf/3LF+/+O7g//lv4X/47uD/9yxfv/RoHf/xI5u/7l9Z/+zc2L/snJi/7JyYv+ycmL/snJi/7JyYv+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/8F/Yv/KjWn/1aBz/+K1ff/sxob/89GM///wvv/z0Yz/7MaG/+K1ff/VoHP/yo1p/8F/Yv+/e2D/v3tg/797YP+/e2D/v3tg/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//z4li/9eZa//irXb/7MKC//XTi///8L7///C+///wvv/104v/7MKC/+Ktdv/XmWv/z4li/8yDX//Mg1//zINf/8yDX//Mg1//2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/ckWH/4qFr/+q0d//yyIP///C+///wvv//8L7///C+///wvv/yyIP/6rR3/+Kha//ckWH/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/mlFz/5pRc/+aUXP/mlFz/5pRc/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/0YyWv/mlFz/5pRc/+eZX//spmn/8bd1//bIgf/61ov///C+///wvv//8L7/+taL//bIgf/xt3X/7KZp/+eZX//mlFz/5pRc/+aUXP/mlFz/5pRc//OcW//znFv/85xb/0YyWv9CL1X/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/PSxQ/0IvVf9GMlr/855d//WoZf/3tnD/+cR7//vQhP/92Iv///C+//3Yi//70IT/+cR7/0YyWv9GMlr/RjJa/0YyWv9GMlr/85xb//OcW//znFv/+qBa/0YyWv9CL1X/PSxQ/zkpS/81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv81Jkb/OSlL/z0sUP9CL1X/RjJa//uxaP/8vHL//cZ6//3MgP/9z4L//cyA/0YyWv9CL1X/PSxQ/z0sUP89LFD/PSxQ/z0sUP9CL1X/RjJa//qgWv9GMlr/PSxQ/zkpS/81Jkb/MCJB/ywfPP8sHzz/LB88/ywfPP8sHzz/LB88/ywfPP8wIkH/NSZG/zkpS/89LFD/RjJa//uxaP/8uW///L50/0YyWv9CL1X/PSxQ/zkpS/81Jkb/NSZG/zUmRv81Jkb/NSZG/zkpS/89LFD/Qi9V/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fdFv/n3he/597Yf+gfmP/oH9k/6B+Y/+fe2H/n3he/590W/+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2hO/5NtU/+Uclf/lHdb/5R6Xv+Ue1//lHpe/5R3W/+Uclf/k21T/5NoTv+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TalH/k3FW/5R4XP+UfmH/lYJl/5WDZv+VgmX/lH5h/5R4XP+TcVb/k2pR/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/mG9b/5p1YP+bfmb/nYZs/5+Ocv+hnpD/oZ6Q/6GekP+fjnL/nYZs/5t+Zv+adWD/mG9b/5dtWf+XbVn/l21Z/5dtWf+XbVn/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+FX1D/iGdV/4xyXP+PfGP/k4Rp/5WShP+VkoT/lZKE/5OEaf+PfGP/jHJc/4hnVf+FX1D/hFxO/4RcTv+EXE7/hFxO/4RcTv99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/39bUf+DZFb/iG9c/416Y/+Rg2n/lZKE/5WShP+VkoT/kYNp/416Y/+Ib1z/g2RW/39bUf99WE//fVhP/31YT/99WE//fVhP/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/hGJd/4hqYv+Odmf/lYFt/5qKcv+hnpD/oZ6Q/6GekP+ainL/lYFt/452Z/+IamL/hGJd/4JfXP+CX1z/gl9c/4JfXP+CX1z/\"}},{\"n\":3,\"type\":\"ImageView\",\"image\":{\"width\":16,\"height\":12,\"crc\":\"7df35110\",\"pixels\":\"PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/j19o/5Nkaf+PX2j/i1pm/4taZv+LWmb/i1pm/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/sHlp/8WVdf/Oonr/xZV1/7B5af+lamP/pWpj/6VqY/+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/wX9i/9Wgc//sxob///C+/+zGhv/VoHP/wX9i/797YP+/e2D/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9yRYf/qtHf///C+///wvv//8L7/6rR3/9yRYf/Zi13/2Ytd//OcW//znFv/Qi9V/z0sUP89LFD/PSxQ/0IvVf/znl3/97Zw//vQhP//8L7/+9CE/0YyWv9GMlr/RjJa//OcW/9GMlr/OSlL/zAiQf8sHzz/LB88/ywfPP8wIkH/OSlL/0YyWv/8uW//RjJa/z0sUP81Jkb/NSZG/zUmRv89LFD/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TbVP/lHdb/5R7X/+Ud1v/k21T/5NmTf+TZk3/k2ZN/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+Yb1v/m35m/5+Ocv+hnpD/n45y/5t+Zv+Yb1v/l21Z/5dtWf99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//f1tR/4hvXP+Rg2n/lZKE/5GDaf+Ib1z/f1tR/31YT/99WE//\"}},{\"n\":4,\"type\":\"ImageView\",\"image\":{\"width\":8,\"height\":6,\"crc\":\"f03b269f\",\"pixels\":\"PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/6VqY/+lamP/pWpj/6VqY/+weWn/zqJ6/7B5af+lamP/2Ytd/9mLXf/Zi13/2Ytd/+q0d///8L7/6rR3/9mLXf9GMlr/MCJB/ywfPP8wIkH/RjJa/0YyWv81Jkb/NSZG/5dtWf+XbVn/l21Z/5dtWf+bfmb/oZ6Q/5t+Zv+XbVn/\"}}]}}}],\"problems\":[]},\"outline\":\"Window \\\"Thumbnails\\\"\\n  HBox spacing 10\\n    ImageView 32 x 24, pixels e2bf6484\\n    ImageView 16 x 12, pixels 7df35110\\n    ImageView 8 x 6, pixels f03b269f\"}\n```\n\nThe window as text lists the three image views, 32 x 24, 16 x 12 and 8 x 6. The page draws each of them larger, so compare their pixels: the smaller the copy, the blockier the sunset.\n\n### Into a bigger image\n\nA small copy can also go **inside** another image. A frame shop puts a picture on a mat: a white card as big as the original, with the half-size copy in the middle. The card is a WritableImage painted white, pixel by pixel. Then the copy is written into it shifted: the small image's pixel (x, y) goes to (x + left, y + top), where `left` is a quarter of the width and `top` a quarter of the height, which centers it:\n\n```asset landscape.png\n{\"name\":\"landscape.png\",\"image\":{\"asset\":\"landscape.png\",\"url\":\"images/landscape-309f25443f.png\",\"width\":32,\"height\":24,\"size\":317,\"alt\":\"A small landscape: a blue sky that gets lighter toward the horizon, a yellow sun, blue-green hills, a green slope, a small blue lake and a striped brown field.\"}}\n```\n\n```java\nimport javafx.application.Application;\nimport javafx.scene.Scene;\nimport javafx.scene.image.Image;\nimport javafx.scene.image.ImageView;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\nimport javafx.scene.layout.Pane;\nimport javafx.scene.paint.Color;\nimport javafx.stage.Stage;\n\npublic class Main extends Application {\n\n    @Override\n    public void start(Stage stage) {\n        Image original = new Image(\"file:landscape.png\");\n        PixelReader reader = original.getPixelReader();\n        int width = (int) original.getWidth();\n        int height = (int) original.getHeight();\n\n        WritableImage card = new WritableImage(width, height);\n        PixelWriter writer = card.getPixelWriter();\n        for (int y = 0; y < height; y++) {\n            for (int x = 0; x < width; x++) {\n                writer.setColor(x, y, Color.WHITE);\n            }\n        }\n        int left = width / 4;\n        int top = height / 4;\n        for (int y = 0; y < height / 2; y++) {\n            for (int x = 0; x < width / 2; x++) {\n                writer.setColor(x + left, y + top, reader.getColor(2 * x, 2 * y));\n            }\n        }\n\n        stage.setScene(new Scene(new Pane(new ImageView(card))));\n        stage.setTitle(\"On a mat\");\n        stage.show();\n    }\n\n    public static void main(String[] args) {\n        launch(Main.class);\n    }\n}\n```\n\n```window\n{\"events\":[],\"window\":{\"windows\":[{\"title\":\"On a mat\",\"scene\":{\"root\":{\"n\":1,\"type\":\"Pane\",\"children\":[{\"n\":2,\"type\":\"ImageView\",\"image\":{\"width\":32,\"height\":24,\"crc\":\"f9bd8d49\",\"pixels\":\"//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj//////////////////////////////////////////////////////////////////////////////////////1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O///XQP9Vjs7/VY7O/1WOzv//////////////////////////////////////////////////////////////////////////////////////ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P//10D//9dA///XQP9lm9T/ZZvU//////////////////////////////////////////////////////////////////////////////////////90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa///XQP//10D//9dA/3Sn2v90p9r//////////////////////////////////////////////////////////////////////////////////////4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh///XQP+Es+H/hLPh/4Sz4f//////////////////////////////////////////////////////////////////////////////////////k8Dn/5PA5/+TwOf/k8Dn/1qMbv9ajG7/Woxu/1qMbv+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn//////////////////////////////////////////////////////////////////////////////////////9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv+izO3/oszt/1qMbv9ajG7//////////////////////////////////////////////////////////////////////////////////////1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv//////////////////////////////////////////////////////////////////////////////////////QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/RqpQ/0aqUP9GqlD/RqpQ//////////////////////////////////////////////////////////////////////////////////////83kUH/N5FB/zxutP88brT/PG60/zxutP88brT/N5FB/zeRQf83kUH/N5FB/zeRQf88mUb/PJlG/zyZRv88mUb//////////////////////////////////////////////////////////////////////////////////////5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP//////////////////////////////////////////////////////////////////////////////////////lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\"}}]}}}],\"problems\":[]},\"outline\":\"Window \\\"On a mat\\\"\\n  Pane\\n    ImageView 32 x 24, pixels f9bd8d49\"}\n```\n\nWriting a pixel a second time replaces its color, as drawing over a canvas does: the white pixels in the middle are overwritten by the picture.\n\nOne more way to start: `new WritableImage(reader, width, height)` makes a WritableImage that is already a copy of the image the reader reads (of its top left corner, `width` x `height` pixels). A program that changes a part of a picture starts with such a copy, and writes over the part it changes.\n","task":"Thumbnails a quarter of the size. Read `pic.png` and make a copy of it that keeps every fourth pixel in each direction: it is `width / 4` by `height / 4`, and its pixel (x, y) is the original's (4x, 4y). Show the original and the thumbnail side by side in an HBox with a spacing of 10, the original first. The window's title is `Thumbnail`. The first test gives the program the sunset `photo.png` as `pic.png`, and the window should look like the drawing below.\n","kind":"code","seed":"import javafx.application.Application;\nimport javafx.scene.Scene;\nimport javafx.scene.image.Image;\nimport javafx.scene.image.ImageView;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\nimport javafx.scene.layout.HBox;\nimport javafx.stage.Stage;\n\npublic class Main extends Application {\n\n    @Override\n    public void start(Stage stage) {\n        Image original = new Image(\"file:pic.png\");\n\n        stage.setScene(new Scene(new HBox(10, new ImageView(original))));\n        stage.setTitle(\"Thumbnail\");\n        stage.show();\n    }\n\n    public static void main(String[] args) {\n        launch(Main.class);\n    }\n}\n","solution":"import javafx.application.Application;\nimport javafx.scene.Scene;\nimport javafx.scene.image.Image;\nimport javafx.scene.image.ImageView;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\nimport javafx.scene.layout.HBox;\nimport javafx.stage.Stage;\n\npublic class Main extends Application {\n\n    @Override\n    public void start(Stage stage) {\n        Image original = new Image(\"file:pic.png\");\n        PixelReader reader = original.getPixelReader();\n        int width = (int) original.getWidth() / 4;\n        int height = (int) original.getHeight() / 4;\n        WritableImage thumbnail = new WritableImage(width, height);\n        PixelWriter writer = thumbnail.getPixelWriter();\n        for (int y = 0; y < height; y++) {\n            for (int x = 0; x < width; x++) {\n                writer.setColor(x, y, reader.getColor(4 * x, 4 * y));\n            }\n        }\n\n        stage.setScene(new Scene(new HBox(10, new ImageView(original), new ImageView(thumbnail))));\n        stage.setTitle(\"Thumbnail\");\n        stage.show();\n    }\n\n    public static void main(String[] args) {\n        launch(Main.class);\n    }\n}\n","hints":["The thumbnail is `new WritableImage(width, height)` with `width = (int) original.getWidth() / 4`, and the same for the height.","Loop over the thumbnail's pixels, y outside and x inside, and copy `reader.getColor(4 * x, 4 * y)` with `writer.setColor(x, y, ...)`. Then add `new ImageView(thumbnail)` to the HBox after the original."],"tests":[{"name":"Test 1","stdin":"","files":{"pic.png":{"asset":"photo.png","url":"images/photo-5f4040f3fe.png","width":64,"height":48,"size":2077,"alt":"A soft sunset: a sky going from purple to orange, a glowing low sun, dark hills, and rippled water reflecting the sky."}},"expect":"","hidden":false,"events":[],"window":{"windows":[{"title":"Thumbnail","scene":{"root":{"n":1,"type":"HBox","spacing":10,"children":[{"n":2,"type":"ImageView","image":{"width":64,"height":48,"crc":"c17e1ae0","pixels":"PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hVdm/4ZYZ/+GWWf/hlln/4ZZZ/+GWGf/hVdm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4xbZv+NXWf/j19o/5FhaP+SYmn/k2Np/5Nkaf+TY2n/kmJp/5FhaP+PX2j/jV1n/4xbZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5NgZv+VY2f/mGdo/5tqaf+dbWv/n3Br/6FxbP+hcmz/oXFs/59wa/+dbWv/m2pp/5hnaP+VY2f/k2Bm/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mWNk/5tmZf+eamf/om5p/6Zza/+peGz/rHxu/69/b/+wgXD/sYJw/7CBcP+vf2//rHxu/6l4bP+mc2v/om5p/55qZ/+bZmX/mWNk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/n2dk/6FqZv+lb2f/qXVq/657bP+ygW//t4dx/7qLc/+9j3T/v5F1/7+Sdf+/kXX/vY90/7qLc/+3h3H/soFv/657bP+pdWr/pW9n/6FqZv+fZ2T/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6dtZP+rcmb/sHlp/7WAbP+7iG//wI9y/8WVdf/Im3f/y595/82hev/Oonr/zaF6/8ufef/Im3f/xZV1/8CPcv+7iG//tYBs/7B5af+rcmb/p21k/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6xwY/+wdWX/tXxo/7qEa//AjG//xpRz/8ycdv/RpHn/1al8/9iufv/asX//2rJ//9qxf//Yrn7/1al8/9Gkef/MnHb/xpRz/8CMb/+6hGv/tXxo/7B1Zf+scGP/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7NzYv+1d2T/uX1n/7+Fav/Ejm7/y5dz/9Ggd//XqXv/3LF+/+C3gf/ju4P/5b6E/+W/hf/lvoT/47uD/+C3gf/csX7/16l7/9Ggd//Ll3P/xI5u/7+Fav+5fWf/tXdk/7NzYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+5eWL/vX5k/8GGaP/Hjmz/zZhx/9Sidv/arHr/37V+/+S8gv/pw4X/7MiH/+3Lif/uy4n/7cuJ/+zIh//pw4X/5LyC/9+1fv/arHr/1KJ2/82Ycf/Hjmz/wYZo/71+ZP+5eWL/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/wX9i/8WFZf/KjWn/z5Zu/9Wgc//cq3j/4rV9/+e+gv/sxob/8MyJ//PRjP/01I3///C+//TUjf/z0Yz/8MyJ/+zGhv/nvoL/4rV9/9yreP/VoHP/z5Zu/8qNaf/FhWX/wX9i/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xoBg/8mEY//Mi2b/0ZNr/9edcP/cqHX/4rJ7/+i8gP/txYX/8c2J//XUjf//8L7///C+///wvv//8L7///C+//XUjf/xzYn/7cWF/+i8gP/isnv/3Kh1/9edcP/Rk2v/zItm/8mEY//GgGD/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/82EYP/PiWL/05Bm/9eZa//co3H/4q12/+e4fP/swoL/8cuH//XTi///8L7///C+///wvv//8L7///C+///wvv//8L7/9dOL//HLh//swoL/57h8/+Ktdv/co3H/15lr/9OQZv/PiWL/zYRg/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/UiV//1o1i/9mVZv/dnWv/4qdx/+exd//rvH3/8MaD//TOiP/41o3///C+///wvv//8L7///C+///wvv//8L7///C+//jWjf/0zoj/8MaD/+u8ff/nsXf/4qdx/92da//ZlWb/1o1i/9SJX//Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2o1e/9yRYf/fmGX/4qFr/+aqcf/qtHf/7r59//LIg//20Ij///C+///wvv//8L7///C+///wvv//8L7///C+///wvv//8L7/9tCI//LIg//uvn3/6rR3/+aqcf/ioWv/35hl/9yRYf/ajV7/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+GRXv/ilWH/5Jtl/+ejav/qrHD/7rZ2//G/ff/0yIP/99CI//rYjf//8L7///C+///wvv//8L7///C+///wvv//8L7/+tiN//fQiP/0yIP/8b99/+62dv/qrHD/56Nq/+SbZf/ilWH/4ZFe/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/mlFz/5pRc/+aUXP/mlFz/5pRc/+aUXP/mlFz/5pRc/+aUXP/mlFz/RjJa/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/+aUXP/mlFz/5pRc/+aUXP/mlV3/55lf/+mfZP/spmn/7q5v//G3df/zwHv/9siB//jQhv/61ov///C+///wvv//8L7///C+///wvv//8L7///C+//rWi//40Ib/9siB//PAe//xt3X/7q5v/+ymaf/pn2T/55lf/+aVXf/mlFz/5pRc/+aUXP/mlFz/5pRc/+aUXP/mlFz/5pRc/+aUXP/mlFz/7Zhb/+2YW//tmFv/7Zhb/+2YW//tmFv/7Zhb/+2YW/9GMlr/RjJa/0IvVf9CL1X/Qi9V/0IvVf9CL1X/Qi9V/0IvVf9CL1X/Qi9V/0IvVf9CL1X/Qi9V/0IvVf9GMlr/RjJa/+2YW//tmFv/7Zlb/+6cXv/voWL/8adn//KvbP/0t3L/9r94//jGfv/5zYP/+9OI//zYjP//8L7///C+///wvv//8L7///C+//zYjP/704j/+c2D//jGfv/2v3j/9Ldy//KvbP/xp2f/76Fi/+6cXv/tmVv/7Zhb/+2YW//tmFv/7Zhb/+2YW//tmFv/7Zhb/+2YW//tmFv/7Zhb//OcW//znFv/85xb//OcW//znFv/85xb/0YyWv9GMlr/Qi9V/0IvVf89LFD/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/Qi9V/0IvVf9GMlr/RjJa//OcW//znl3/9KNg//WoZf/2r2r/97Zw//i9df/5xHv/+8qA//vQhP/81Ij//diL//3ajP//8L7//dqM//3Yi//81Ij/+9CE//vKgP/5xHv/RjJa/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/0YyWv/znFv/85xb//OcW//znFv/85xb//OcW//6oFr/+qBa//qgWv/6oFr/RjJa/0YyWv9CL1X/Qi9V/z0sUP89LFD/OSlL/zkpS/85KUv/OSlL/zkpS/85KUv/OSlL/zkpS/85KUv/OSlL/zkpS/85KUv/OSlL/z0sUP89LFD/Qi9V/0IvVf9GMlr/RjJa//qlXv/7qWL/+69n//u1bP/8u3H//MF2//3He//9zID//dCD//7Thv/+1Yf//tWI//7Vh//+04b//dCD//3MgP9GMlr/RjJa/0IvVf9CL1X/Qi9V/0IvVf9CL1X/Qi9V/0IvVf9CL1X/Qi9V/0IvVf9CL1X/RjJa/0YyWv/6oFr/+qBa//qgWv/6oFr/+qBa//qgWv9GMlr/RjJa/0IvVf9CL1X/PSxQ/z0sUP85KUv/OSlL/zUmRv81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv85KUv/OSlL/z0sUP89LFD/Qi9V/0IvVf9GMlr/RjJa//urZP/7sWj//LZt//y8cv/8wXb//cZ6//3Kfv/9zID//c6B//3Pgv/9zoH//cyA/0YyWv9GMlr/Qi9V/0IvVf89LFD/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/PSxQ/0IvVf9CL1X/RjJa/0YyWv/6oFr/+qBa//qgWv9GMlr/Qi9V/0IvVf89LFD/PSxQ/zkpS/85KUv/NSZG/zUmRv8wIkH/MCJB/zAiQf8wIkH/MCJB/zAiQf8wIkH/MCJB/zAiQf8wIkH/MCJB/zAiQf8wIkH/NSZG/zUmRv85KUv/OSlL/z0sUP89LFD/Qi9V/0IvVf9GMlr/+61l//uyaf/8tm3//Ltx//y/df/8w3j//cV6//3He//9x3z//cd7/0YyWv9CL1X/Qi9V/z0sUP89LFD/OSlL/zkpS/85KUv/OSlL/zkpS/85KUv/OSlL/zkpS/85KUv/OSlL/zkpS/89LFD/PSxQ/0IvVf9CL1X/RjJa//qgWv9GMlr/Qi9V/z0sUP89LFD/OSlL/zkpS/81Jkb/NSZG/zAiQf8wIkH/LB88/ywfPP8sHzz/LB88/ywfPP8sHzz/LB88/ywfPP8sHzz/LB88/ywfPP8sHzz/LB88/zAiQf8wIkH/NSZG/zUmRv85KUv/OSlL/z0sUP89LFD/Qi9V/0YyWv/7rWX/+7Fo//u1bP/8uW///Lxy//y+dP/8v3X/RjJa/0YyWv9CL1X/PSxQ/z0sUP85KUv/OSlL/zUmRv81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv81Jkb/OSlL/zkpS/89LFD/PSxQ/0IvVf9GMlr/Qi9V/z0sUP85KUv/OSlL/zUmRv81Jkb/MCJB/zAiQf8sHzz/LB88/yccN/8nHDf/Jxw3/yccN/8nHDf/Jxw3/yccN/8nHDf/Jxw3/yccN/8nHDf/Jxw3/yccN/8sHzz/LB88/zAiQf8wIkH/NSZG/zUmRv85KUv/OSlL/z0sUP9CL1X/RjJa//urZP/7r2f/+7Jp//u0bP/8tm3/RjJa/0IvVf9CL1X/PSxQ/zkpS/85KUv/NSZG/zUmRv8wIkH/MCJB/zAiQf8wIkH/MCJB/zAiQf8wIkH/MCJB/zAiQf8wIkH/MCJB/zUmRv81Jkb/OSlL/zkpS/89LFD/Qi9V/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fc1r/n3Rb/592XP+feF7/n3pg/597Yf+ffWL/oH5j/6B/ZP+gf2T/oH9k/6B+Y/+ffWL/n3th/596YP+feF7/n3Zc/590W/+fc1r/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZ07/k2hP/5NqUP+TbVP/k29U/5NxVv+Uc1j/lHVa/5R2W/+Ud1v/lHdb/5R3W/+Udlv/lHVa/5RzWP+TcVb/k29U/5NtU/+TalD/k2hP/5NnTv+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2hO/5NqUP+TbVP/k29V/5RyV/+UdFn/lHdb/5R5Xf+Uel7/lHtf/5R7X/+Ue1//lHpe/5R5Xf+Ud1v/lHRZ/5RyV/+Tb1X/k21T/5NqUP+TaE7/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3Na/591XP+feF7/n3tg/6B+Y/+ggWb/oIRo/6CGav+giWz/oIpt/6CLbv+gi2//oItu/6CKbf+giWz/oIZq/6CEaP+ggWb/oH5j/597YP+feF7/n3Vc/59zWv+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NoT/+TalH/k25U/5NxVv+UdFn/lHhc/5R7X/+UfmH/lIBj/5WCZf+Vg2X/lYNm/5WDZf+VgmX/lIBj/5R+Yf+Ue1//lHhc/5R0Wf+TcVb/k25U/5NqUf+TaE//k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49kTv+PZ1D/kGpT/5BuVf+Rcln/kXVb/5J5X/+TfWH/k4Bk/5SCZv+UhGf/lIVo/5WShP+UhWj/lIRn/5SCZv+TgGT/k31h/5J5X/+RdVv/kXJZ/5BuVf+QalP/j2dQ/49kTv+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5duWf+Yb1v/mHJd/5p1YP+aemL/m35m/5yDaf+dhmz/nopv/5+Ocv+gkHT/oZ6Q/6GekP+hnpD/oZ6Q/6GekP+gkHT/n45y/56Kb/+dhmz/nINp/5t+Zv+aemL/mnVg/5hyXf+Yb1v/l25Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iGJP/4llUv+LaVX/jG1Y/45yW/+Pd1//kHxi/5GAZf+Tg2f/lZKE/5WShP+VkoT/lZKE/5WShP+VkoT/lZKE/5ODZ/+RgGX/kHxi/493X/+Oclv/jG1Y/4tpVf+JZVL/iGJP/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hV1P/4VfUP+GY1P/iGdV/4psWf+Mclz/jndg/498Y/+RgGb/k4Rp/5WShP+VkoT/lZKE/5WShP+VkoT/lZKE/5WShP+ThGn/kYBm/498Y/+Od2D/jHJc/4psWf+IZ1X/hmNT/4VfUP+FXU//hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/41nW/+OaVz/kG1f/5FyYv+Ud2X/ln1o/5iCbP+aiG//nIxy/6GekP+hnpD/oZ6Q/6GekP+hnpD/oZ6Q/6GekP+hnpD/oZ6Q/5yMcv+aiG//mIJs/5Z9aP+Ud2X/kXJi/5BtX/+OaVz/jWdb/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/9+WU//f1tR/4BfU/+DZFb/hWlZ/4hvXP+KdWD/jXpj/49/Zv+Rg2n/lZKE/5WShP+VkoT/lZKE/5WShP+VkoT/lZKE/5GDaf+Pf2b/jXpj/4p1YP+Ib1z/hWlZ/4NkVv+AX1P/f1tR/35ZT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//elZQ/3tZUf99XVP/f2JW/4JnWf+FbVz/iHNf/4t4Y/+OfWX/kIJn/5WShP+VkoT/lZKE/5WShP+VkoT/lZKE/5WShP+Qgmf/jn1l/4t4Y/+Ic1//hW1c/4JnWf9/Ylb/fV1T/3tZUf96VlD/eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JgXP+EYl3/hWZf/4hqYv+LcGX/jnZn/5F7a/+VgW3/l4Zw/5qKcv+cjnX/oZ6Q/6GekP+hnpD/oZ6Q/6GekP+cjnX/mopy/5eGcP+VgW3/kXtr/452Z/+LcGX/iGpi/4VmX/+EYl3/gmBc/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/c1NR/3VXU/94W1X/e2BY/35mWv+CbF3/hXFg/4h2Y/+LemX/jX5m/4+AaP+Pgmn/lZKE/4+Caf+PgGj/jX5m/4t6Zf+IdmP/hXFg/4JsXf9+Zlr/e2BY/3hbVf91V1P/c1NR/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/"}},{"n":3,"type":"ImageView","image":{"width":16,"height":12,"crc":"7df35110","pixels":"PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/j19o/5Nkaf+PX2j/i1pm/4taZv+LWmb/i1pm/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/sHlp/8WVdf/Oonr/xZV1/7B5af+lamP/pWpj/6VqY/+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/wX9i/9Wgc//sxob///C+/+zGhv/VoHP/wX9i/797YP+/e2D/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9yRYf/qtHf///C+///wvv//8L7/6rR3/9yRYf/Zi13/2Ytd//OcW//znFv/Qi9V/z0sUP89LFD/PSxQ/0IvVf/znl3/97Zw//vQhP//8L7/+9CE/0YyWv9GMlr/RjJa//OcW/9GMlr/OSlL/zAiQf8sHzz/LB88/ywfPP8wIkH/OSlL/0YyWv/8uW//RjJa/z0sUP81Jkb/NSZG/zUmRv89LFD/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TbVP/lHdb/5R7X/+Ud1v/k21T/5NmTf+TZk3/k2ZN/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+Yb1v/m35m/5+Ocv+hnpD/n45y/5t+Zv+Yb1v/l21Z/5dtWf99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//f1tR/4hvXP+Rg2n/lZKE/5GDaf+Ib1z/f1tR/31YT/99WE//"}}]}}}],"problems":[]},"outline":"Window \"Thumbnail\"\n  HBox spacing 10\n    ImageView 64 x 48, pixels c17e1ae0\n    ImageView 16 x 12, pixels 7df35110"},{"name":"Test 2","stdin":"","files":{"pic.png":{"asset":"landscape.png","url":"images/landscape-309f25443f.png","width":32,"height":24,"size":317,"alt":"A small landscape: a blue sky that gets lighter toward the horizon, a yellow sun, blue-green hills, a green slope, a small blue lake and a striped brown field."}},"expect":"","hidden":true,"events":[],"window":{"windows":[{"title":"Thumbnail","scene":{"root":{"n":1,"type":"HBox","spacing":10,"children":[{"n":2,"type":"ImageView","image":{"width":32,"height":24,"crc":"6315e812","pixels":"RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7//9dA///XQP//10D/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR///XQP//10D//9dA///XQP//10D/XZTR/12U0f9dlNH/XZTR/12U0f9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P//10D//9dA///XQP//10D//9dA///XQP//10D/ZZvU/2Wb1P9lm9T/ZZvU/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX///XQP//10D//9dA///XQP//10D//9dA///XQP9sodf/bKHX/2yh1/9sodf/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r//9dA///XQP//10D//9dA///XQP//10D//9dA/3Sn2v90p9r/dKfa/3Sn2v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7//9dA///XQP//10D//9dA///XQP98rd7/fK3e/3yt3v98rd7/fK3e/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H//9dA///XQP//10D/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5vG6v+bxur/m8bq/5vG6v9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/m8bq/5vG6v+bxur/m8bq/5vG6v+bxur/m8bq/5vG6v+bxur/m8bq/5vG6v+bxur/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/oszt/6LM7f+izO3/oszt/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/zyZRv88mUb/PJlG/zyZRv88brT/PG60/zxutP88brT/PG60/zxutP88brT/PG60/zxutP88mUb/PJlG/zyZRv88mUb/PJlG/zyZRv88mUb/PJlG/zyZRv88mUb/PJlG/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/N5FB/zeRQf83kUH/N5FB/zxutP88brT/PG60/zxutP88brT/PG60/zxutP88brT/PG60/zeRQf83kUH/N5FB/zeRQf83kUH/N5FB/zeRQf83kUH/N5FB/zeRQf83kUH/PJlG/zyZRv88mUb/PJlG/zyZRv88mUb/PJlG/zyZRv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/"}},{"n":3,"type":"ImageView","image":{"width":8,"height":6,"crc":"4438a513","pixels":"RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P//10D/ZZvU/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh///XQP+Es+H/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/oszt/1qMbv9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9GqlD/RqpQ/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/"}}]}}}],"problems":[]},"outline":"Window \"Thumbnail\"\n  HBox spacing 10\n    ImageView 32 x 24, pixels 6315e812\n    ImageView 8 x 6, pixels 4438a513"},{"name":"Test 3","stdin":"","files":{"pic.png":{"asset":"blocks.png","url":"images/blocks-e2cb7ee008.png","width":48,"height":32,"size":201,"alt":"Colored squares of 8 by 8 pixels in 4 rows of 6: bright colors, light colors, dark colors, and grays from black to white."}},"expect":"","hidden":true,"events":[],"window":{"windows":[{"title":"Thumbnail","scene":{"root":{"n":1,"type":"HBox","spacing":10,"children":[{"n":2,"type":"ImageView","image":{"width":48,"height":32,"crc":"c021ba0a","pixels":"/wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA////AP///wD///8A////AP///wD///8A////AP///wD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//4AAwP+AAMD/gADA/4AAwP+AAMD/gADA/4AAwP+AAMD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA////AP///wD///8A////AP///wD///8A////AP///wD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//4AAwP+AAMD/gADA/4AAwP+AAMD/gADA/4AAwP+AAMD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA////AP///wD///8A////AP///wD///8A////AP///wD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//4AAwP+AAMD/gADA/4AAwP+AAMD/gADA/4AAwP+AAMD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA////AP///wD///8A////AP///wD///8A////AP///wD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//4AAwP+AAMD/gADA/4AAwP+AAMD/gADA/4AAwP+AAMD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA////AP///wD///8A////AP///wD///8A////AP///wD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//4AAwP+AAMD/gADA/4AAwP+AAMD/gADA/4AAwP+AAMD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA////AP///wD///8A////AP///wD///8A////AP///wD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//4AAwP+AAMD/gADA/4AAwP+AAMD/gADA/4AAwP+AAMD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA////AP///wD///8A////AP///wD///8A////AP///wD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//4AAwP+AAMD/gADA/4AAwP+AAMD/gADA/4AAwP+AAMD//wAA//8AAP//AAD//wAA//8AAP//AAD//wAA//8AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA////AP///wD///8A////AP///wD///8A////AP///wD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AwAD/AMAA/wDAAP8AQP//AED//wBA//8AQP//AED//wBA//8AQP//AED//4AAwP+AAMD/gADA/4AAwP+AAMD/gADA/4AAwP+AAMD//4CA//+AgP//gID//4CA//+AgP//gID//4CA//+AgP//wID//8CA///AgP//wID//8CA///AgP//wID//8CA////gP///4D///+A////gP///4D///+A////gP///4D/gOCA/4DggP+A4ID/gOCA/4DggP+A4ID/gOCA/4DggP+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//8CA4P/AgOD/wIDg/8CA4P/AgOD/wIDg/8CA4P/AgOD//4CA//+AgP//gID//4CA//+AgP//gID//4CA//+AgP//wID//8CA///AgP//wID//8CA///AgP//wID//8CA////gP///4D///+A////gP///4D///+A////gP///4D/gOCA/4DggP+A4ID/gOCA/4DggP+A4ID/gOCA/4DggP+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//8CA4P/AgOD/wIDg/8CA4P/AgOD/wIDg/8CA4P/AgOD//4CA//+AgP//gID//4CA//+AgP//gID//4CA//+AgP//wID//8CA///AgP//wID//8CA///AgP//wID//8CA////gP///4D///+A////gP///4D///+A////gP///4D/gOCA/4DggP+A4ID/gOCA/4DggP+A4ID/gOCA/4DggP+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//8CA4P/AgOD/wIDg/8CA4P/AgOD/wIDg/8CA4P/AgOD//4CA//+AgP//gID//4CA//+AgP//gID//4CA//+AgP//wID//8CA///AgP//wID//8CA///AgP//wID//8CA////gP///4D///+A////gP///4D///+A////gP///4D/gOCA/4DggP+A4ID/gOCA/4DggP+A4ID/gOCA/4DggP+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//8CA4P/AgOD/wIDg/8CA4P/AgOD/wIDg/8CA4P/AgOD//4CA//+AgP//gID//4CA//+AgP//gID//4CA//+AgP//wID//8CA///AgP//wID//8CA///AgP//wID//8CA////gP///4D///+A////gP///4D///+A////gP///4D/gOCA/4DggP+A4ID/gOCA/4DggP+A4ID/gOCA/4DggP+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//8CA4P/AgOD/wIDg/8CA4P/AgOD/wIDg/8CA4P/AgOD//4CA//+AgP//gID//4CA//+AgP//gID//4CA//+AgP//wID//8CA///AgP//wID//8CA///AgP//wID//8CA////gP///4D///+A////gP///4D///+A////gP///4D/gOCA/4DggP+A4ID/gOCA/4DggP+A4ID/gOCA/4DggP+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//8CA4P/AgOD/wIDg/8CA4P/AgOD/wIDg/8CA4P/AgOD//4CA//+AgP//gID//4CA//+AgP//gID//4CA//+AgP//wID//8CA///AgP//wID//8CA///AgP//wID//8CA////gP///4D///+A////gP///4D///+A////gP///4D/gOCA/4DggP+A4ID/gOCA/4DggP+A4ID/gOCA/4DggP+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//8CA4P/AgOD/wIDg/8CA4P/AgOD/wIDg/8CA4P/AgOD//4CA//+AgP//gID//4CA//+AgP//gID//4CA//+AgP//wID//8CA///AgP//wID//8CA///AgP//wID//8CA////gP///4D///+A////gP///4D///+A////gP///4D/gOCA/4DggP+A4ID/gOCA/4DggP+A4ID/gOCA/4DggP+AoP//gKD//4Cg//+AoP//gKD//4Cg//+AoP//gKD//8CA4P/AgOD/wIDg/8CA4P/AgOD/wIDg/8CA4P/AgOD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AIID/ACCA/wAggP8AIID/ACCA/wAggP8AIID/ACCA/0AAYP9AAGD/QABg/0AAYP9AAGD/QABg/0AAYP9AAGD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AIID/ACCA/wAggP8AIID/ACCA/wAggP8AIID/ACCA/0AAYP9AAGD/QABg/0AAYP9AAGD/QABg/0AAYP9AAGD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AIID/ACCA/wAggP8AIID/ACCA/wAggP8AIID/ACCA/0AAYP9AAGD/QABg/0AAYP9AAGD/QABg/0AAYP9AAGD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AIID/ACCA/wAggP8AIID/ACCA/wAggP8AIID/ACCA/0AAYP9AAGD/QABg/0AAYP9AAGD/QABg/0AAYP9AAGD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AIID/ACCA/wAggP8AIID/ACCA/wAggP8AIID/ACCA/0AAYP9AAGD/QABg/0AAYP9AAGD/QABg/0AAYP9AAGD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AIID/ACCA/wAggP8AIID/ACCA/wAggP8AIID/ACCA/0AAYP9AAGD/QABg/0AAYP9AAGD/QABg/0AAYP9AAGD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AIID/ACCA/wAggP8AIID/ACCA/wAggP8AIID/ACCA/0AAYP9AAGD/QABg/0AAYP9AAGD/QABg/0AAYP9AAGD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4BAAP+AQAD/gEAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/gIAA/4CAAP+AgAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AYAD/AGAA/wBgAP8AIID/ACCA/wAggP8AIID/ACCA/wAggP8AIID/ACCA/0AAYP9AAGD/QABg/0AAYP9AAGD/QABg/0AAYP9AAGD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf+ZmZn/mZmZ/5mZmf/MzMz/zMzM/8zMzP/MzMz/zMzM/8zMzP/MzMz/zMzM////////////////////////////////////////////"}},{"n":3,"type":"ImageView","image":{"width":12,"height":8,"crc":"09b4338a","pixels":"/wAA//8AAP//gAD//4AA////AP///wD/AMAA/wDAAP8AQP//AED//4AAwP+AAMD//wAA//8AAP//gAD//4AA////AP///wD/AMAA/wDAAP8AQP//AED//4AAwP+AAMD//4CA//+AgP//wID//8CA////gP///4D/gOCA/4DggP+AoP//gKD//8CA4P/AgOD//4CA//+AgP//wID//8CA////gP///4D/gOCA/4DggP+AoP//gKD//8CA4P/AgOD/gAAA/4AAAP+AQAD/gEAA/4CAAP+AgAD/AGAA/wBgAP8AIID/ACCA/0AAYP9AAGD/gAAA/4AAAP+AQAD/gEAA/4CAAP+AgAD/AGAA/wBgAP8AIID/ACCA/0AAYP9AAGD/AAAA/wAAAP8zMzP/MzMz/2ZmZv9mZmb/mZmZ/5mZmf/MzMz/zMzM////////////AAAA/wAAAP8zMzP/MzMz/2ZmZv9mZmb/mZmZ/5mZmf/MzMz/zMzM////////////"}}]}}}],"problems":[]},"outline":"Window \"Thumbnail\"\n  HBox spacing 10\n    ImageView 48 x 32, pixels c021ba0a\n    ImageView 12 x 8, pixels 09b4338a"}],"require":[],"forbid":[],"more":[{"task":"In `Thumbnails.java`, write the method `public static WritableImage shrink(Image source, int factor)`: it returns a new image `factor` times smaller, `width / factor` by `height / factor` (whole-number division), whose pixel (x, y) is the source's pixel (x * factor, y * factor). The factor is at least 1, and never more than the source's width or height.\n\n`Main.java` has two methods to try it with: `sample(width, height)` makes an image whose pixel (x, y) has red `x * 30` and green `y * 60`, and `describe(image)` prints an image's size and then the colors of its pixels, a row on each line. Don't change them. The check calls:\n\n```java\ndescribe(Thumbnails.shrink(sample(7, 4), 3));\n```\n\nand expects:\n\n```\n2 x 1\n0x000000ff 0x5a0000ff\n```\n","kind":"code","seed":"// ==== Thumbnails.java ====\nimport javafx.scene.image.Image;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\n\npublic class Thumbnails {\n\n}\n\n// ==== Main.java ====\nimport javafx.scene.image.Image;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\nimport javafx.scene.paint.Color;\n\npublic class Main {\n    public static void main(String[] args) {\n        describe(Thumbnails.shrink(sample(7, 4), 3));\n    }\n\n    // An image to try things on: pixel (x, y) has red x * 30 and green y * 60.\n    public static WritableImage sample(int width, int height) {\n        WritableImage image = new WritableImage(width, height);\n        PixelWriter writer = image.getPixelWriter();\n        for (int y = 0; y < height; y++) {\n            for (int x = 0; x < width; x++) {\n                writer.setColor(x, y, Color.rgb(x * 30, y * 60, 0));\n            }\n        }\n        return image;\n    }\n\n    // Prints the size, then the color of every pixel, a row on each line.\n    public static void describe(Image image) {\n        int width = (int) image.getWidth();\n        int height = (int) image.getHeight();\n        System.out.println(width + \" x \" + height);\n        PixelReader reader = image.getPixelReader();\n        for (int y = 0; y < height; y++) {\n            String row = \"\";\n            for (int x = 0; x < width; x++) {\n                row += \" \" + reader.getColor(x, y);\n            }\n            System.out.println(row.trim());\n        }\n    }\n}\n","solution":"// ==== Thumbnails.java ====\nimport javafx.scene.image.Image;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\n\npublic class Thumbnails {\n\n    public static WritableImage shrink(Image source, int factor) {\n        PixelReader reader = source.getPixelReader();\n        int width = (int) source.getWidth() / factor;\n        int height = (int) source.getHeight() / factor;\n        WritableImage small = new WritableImage(width, height);\n        PixelWriter writer = small.getPixelWriter();\n        for (int y = 0; y < height; y++) {\n            for (int x = 0; x < width; x++) {\n                writer.setColor(x, y, reader.getColor(x * factor, y * factor));\n            }\n        }\n        return small;\n    }\n}\n\n// ==== Main.java ====\nimport javafx.scene.image.Image;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\nimport javafx.scene.paint.Color;\n\npublic class Main {\n    public static void main(String[] args) {\n        describe(Thumbnails.shrink(sample(7, 4), 3));\n    }\n\n    // An image to try things on: pixel (x, y) has red x * 30 and green y * 60.\n    public static WritableImage sample(int width, int height) {\n        WritableImage image = new WritableImage(width, height);\n        PixelWriter writer = image.getPixelWriter();\n        for (int y = 0; y < height; y++) {\n            for (int x = 0; x < width; x++) {\n                writer.setColor(x, y, Color.rgb(x * 30, y * 60, 0));\n            }\n        }\n        return image;\n    }\n\n    // Prints the size, then the color of every pixel, a row on each line.\n    public static void describe(Image image) {\n        int width = (int) image.getWidth();\n        int height = (int) image.getHeight();\n        System.out.println(width + \" x \" + height);\n        PixelReader reader = image.getPixelReader();\n        for (int y = 0; y < height; y++) {\n            String row = \"\";\n            for (int x = 0; x < width; x++) {\n                row += \" \" + reader.getColor(x, y);\n            }\n            System.out.println(row.trim());\n        }\n    }\n}\n","hints":["The new size is `(int) source.getWidth() / factor` by `(int) source.getHeight() / factor`. Make a WritableImage of that size and get its PixelWriter.","For every pixel (x, y) of the new image, `writer.setColor(x, y, reader.getColor(x * factor, y * factor));`, and at the end `return` the new image."],"tests":[{"name":"describe(Thumbnails.shrink(sample(7, 4), 3));","stdin":"","call":"describe(Thumbnails.shrink(sample(7, 4), 3));\n","expect":"2 x 1\n0x000000ff 0x5a0000ff","hidden":false},{"name":"describe(Thumbnails.shrink(sample(6, 4), 2));","stdin":"","call":"describe(Thumbnails.shrink(sample(6, 4), 2));\n","expect":"3 x 2\n0x000000ff 0x3c0000ff 0x780000ff\n0x007800ff 0x3c7800ff 0x787800ff","hidden":true},{"name":"Test 3","stdin":"","call":"describe(Thumbnails.shrink(sample(9, 5), 4));\ndescribe(Thumbnails.shrink(sample(3, 2), 1));\n","expect":"2 x 1\n0x000000ff 0x780000ff\n3 x 2\n0x000000ff 0x1e0000ff 0x3c0000ff\n0x003c00ff 0x1e3c00ff 0x3c3c00ff","hidden":true}],"require":[],"forbid":[]},{"task":"Picture in picture: a copy of `pic.png` with a third-size copy of it in its top right corner, 1 pixel in from the top and right edges. Start with a full copy, `new WritableImage(reader, width, height)`. Then write the third-size copy (every third pixel, as `Thumbnails.shrink` in the challenge before does with a factor of 3) over it: it is `width / 3` pixels wide and `height / 3` high (whole-number division), and its pixel (x, y), which is the original's (3x, 3y), goes to (x + width - width / 3 - 1, y + 1). The pixels around it stay the picture's own. Show only the result, in an ImageView inside a Pane. The window's title is `Picture in picture`. The first test gives the program `landscape.png` as `pic.png`, and the window should look like the drawing below.\n","kind":"code","seed":"import javafx.application.Application;\nimport javafx.scene.Scene;\nimport javafx.scene.image.Image;\nimport javafx.scene.image.ImageView;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\nimport javafx.scene.layout.Pane;\nimport javafx.stage.Stage;\n\npublic class Main extends Application {\n\n    @Override\n    public void start(Stage stage) {\n        Image original = new Image(\"file:pic.png\");\n\n        stage.setScene(new Scene(new Pane(new ImageView(original))));\n        stage.setTitle(\"Picture in picture\");\n        stage.show();\n    }\n\n    public static void main(String[] args) {\n        launch(Main.class);\n    }\n}\n","solution":"import javafx.application.Application;\nimport javafx.scene.Scene;\nimport javafx.scene.image.Image;\nimport javafx.scene.image.ImageView;\nimport javafx.scene.image.PixelReader;\nimport javafx.scene.image.PixelWriter;\nimport javafx.scene.image.WritableImage;\nimport javafx.scene.layout.Pane;\nimport javafx.stage.Stage;\n\npublic class Main extends Application {\n\n    @Override\n    public void start(Stage stage) {\n        Image original = new Image(\"file:pic.png\");\n        PixelReader reader = original.getPixelReader();\n        int width = (int) original.getWidth();\n        int height = (int) original.getHeight();\n        WritableImage result = new WritableImage(reader, width, height);\n        PixelWriter writer = result.getPixelWriter();\n        for (int y = 0; y < height / 3; y++) {\n            for (int x = 0; x < width / 3; x++) {\n                writer.setColor(x + width - width / 3 - 1, y + 1, reader.getColor(3 * x, 3 * y));\n            }\n        }\n\n        stage.setScene(new Scene(new Pane(new ImageView(result))));\n        stage.setTitle(\"Picture in picture\");\n        stage.show();\n    }\n\n    public static void main(String[] args) {\n        launch(Main.class);\n    }\n}\n","hints":["`new WritableImage(reader, width, height)` is a copy of the whole picture to start from, with `reader = original.getPixelReader()` and the size as ints.","Loop over the third-size copy, `y < height / 3` and `x < width / 3`, and write `reader.getColor(3 * x, 3 * y)` at `(x + width - width / 3 - 1, y + 1)`. Show `new ImageView(result)`."],"tests":[{"name":"Test 1","stdin":"","files":{"pic.png":{"asset":"landscape.png","url":"images/landscape-309f25443f.png","width":32,"height":24,"size":317,"alt":"A small landscape: a blue sky that gets lighter toward the horizon, a yellow sun, blue-green hills, a green slope, a small blue lake and a striped brown field."}},"expect":"","hidden":false,"events":[],"window":{"windows":[{"title":"Picture in picture","scene":{"root":{"n":1,"type":"Pane","children":[{"n":2,"type":"ImageView","image":{"width":32,"height":24,"crc":"60865dfc","pixels":"RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9OiMv/TojL/06Iy/9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/RoLI/0aCyP9Ggsj/TojL/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/1WOzv9Vjs7/VY7O/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH//9dA/12U0f9Vjs7/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/XZTR/12U0f9dlNH/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa///XQP//10D//9dA/12U0f9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P9lm9T/ZZvU/2Wb1P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/ZZvU/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/2yh1/9sodf/bKHX/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/oszt/6LM7f9sodf/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/dKfa/3Sn2v90p9r/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9ajG7/Woxu/3Sn2v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v98rd7/fK3e/3yt3v83kUH/N5FB/zxutP88brT/PG60/zeRQf83kUH/N5FB/zyZRv88mUb/fK3e/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/4Sz4f+Es+H/hLPh/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+Es+H/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+LueT/i7nk/4u55P+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5PA5/+TwOf/k8Dn/5vG6v+bxur/m8bq/5vG6v9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/m8bq/5vG6v+bxur/m8bq/5vG6v+bxur/m8bq/5vG6v+bxur/m8bq/5vG6v+bxur/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/oszt/6LM7f+izO3/oszt/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/Woxu/1qMbv9ajG7/Woxu/1qMbv9ajG7/Woxu/1qMbv9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9GqlD/RqpQ/0aqUP9GqlD/RqpQ/0aqUP9GqlD/RqpQ/zyZRv88mUb/PJlG/zyZRv88brT/PG60/zxutP88brT/PG60/zxutP88brT/PG60/zxutP88mUb/PJlG/zyZRv88mUb/PJlG/zyZRv88mUb/PJlG/zyZRv88mUb/PJlG/0GiS/9Bokv/QaJL/0GiS/9Bokv/QaJL/0GiS/9Bokv/N5FB/zeRQf83kUH/N5FB/zxutP88brT/PG60/zxutP88brT/PG60/zxutP88brT/PG60/zeRQf83kUH/N5FB/zeRQf83kUH/N5FB/zeRQf83kUH/N5FB/zeRQf83kUH/PJlG/zyZRv88mUb/PJlG/zyZRv88mUb/PJlG/zyZRv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/5ZuPP+Wbjz/lm48/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/pX1G/6V9Rv+lfUb/"}}]}}}],"problems":[]},"outline":"Window \"Picture in picture\"\n  Pane\n    ImageView 32 x 24, pixels 60865dfc"},{"name":"Test 2","stdin":"","files":{"pic.png":{"asset":"photo.png","url":"images/photo-5f4040f3fe.png","width":64,"height":48,"size":2077,"alt":"A soft sunset: a sky going from purple to orange, a glowing low sun, dark hills, and rippled water reflecting the sky."}},"expect":"","hidden":true,"events":[],"window":{"windows":[{"title":"Picture in picture","scene":{"root":{"n":1,"type":"Pane","children":[{"n":2,"type":"ImageView","image":{"width":64,"height":48,"crc":"5155b6cd","pixels":"PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/0Msbf9DLG3/Qyxt/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/zwobv88KG7/PChu/0Msbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9JMG3/STBt/0kwbf9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9JMG3/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/UDRs/1A0bP9QNGz/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/UDRs/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/1Y5a/9WOWv/Vjlr/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/1Y5a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/9dPWv/XT1r/109a/+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+PX2j/k2Np/5Jiaf+NXWf/i1pm/4taZv+LWmb/i1pm/4taZv9dPWv/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/Y0Fq/2NBav9jQWr/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/59nZP+pdWr/t4dx/7+Rdf+9j3T/soFv/6VvZ/+eZmT/nmZk/55mZP+eZmT/Y0Fq/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/2pFaf9qRWn/akVp/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+5fWf/y5dz/9yxfv/lvoT/47uD/9epe//Ejm7/tXdk/7JyYv+ycmL/snJi/2pFaf9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP9wSWj/cElo/3BJaP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/GgGD/0ZNr/+Kye//xzYn///C+///wvv/txYX/3Kh1/8yLZv/Gf2D/xn9g/8Z/YP9wSWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/d01o/3dNaP93TWj/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2o1e/+Kha//uvn3///C+///wvv//8L7/9tCI/+q0d//fmGX/2Ytd/9mLXf/Zi13/d01o/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/35RZ/9+UWf/flFn/+2YW//tmFv/7Zhb/0YyWv9CL1X/Qi9V/0IvVf9CL1X/RjJa/+2ZW//xp2f/9r94//vTiP//8L7///C+//nNg//0t3L/76Fi/+2YW//tmFv/7Zhb/35RZ/+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hFZm/4RWZv+EVmb/hVdm/4ZYZ/+GWWf/hlln/4ZZZ//6oFr/RjJa/z0sUP85KUv/NSZG/zUmRv81Jkb/NSZG/zkpS/9CL1X/RjJa//y2bf/9xnr//c6B//3MgP9CL1X/PSxQ/z0sUP89LFD/PSxQ/0YyWv+EVmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4taZv+LWmb/i1pm/4xbZv+NXWf/j19o/5FhaP+SYmn/k2Np/5Nkaf+TY2n/Qi9V/zkpS/8wIkH/LB88/yccN/8nHDf/Jxw3/yccN/8sHzz/NSZG/zkpS/9GMlr/+7Jp/0YyWv89LFD/NSZG/zAiQf8wIkH/MCJB/zAiQf85KUv/i1pm/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5FeZf+RXmX/kV5l/5NgZv+VY2f/mGdo/5tqaf+dbWv/n3Br/6FxbP+hcmz/oXFs/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TaE7/k29V/5R3W/+Ue1//lHpe/5R0Wf+TbVP/k2ZN/5NmTf+TZk3/k2ZN/5FeZf+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mGJk/5hiZP+YYmT/mWNk/5tmZf+eamf/om5p/6Zza/+peGz/rHxu/69/b/+wgXD/sYJw/7CBcP+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/kGpT/5F1W/+TgGT/lIVo/5SEZ/+TfWH/kXJZ/49nUP+PY03/j2NN/49jTf+YYmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/nmZk/55mZP+eZmT/n2dk/6FqZv+lb2f/qXVq/657bP+ygW//t4dx/7qLc/+9j3T/v5F1/7+Sdf+/kXX/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hV1P/4hnVf+Od2D/k4Rp/5WShP+VkoT/kYBm/4xyXP+GY1P/hFxO/4RcTv+EXE7/nmZk/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6VqY/+lamP/pWpj/6dtZP+rcmb/sHlp/7WAbP+7iG//wI9y/8WVdf/Im3f/y595/82hev/Oonr/zaF6/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3pWUP9/Ylb/iHNf/5CCZ/+VkoT/lZKE/459Zf+FbVz/fV1T/3lWT/95Vk//eVZP/6VqY/+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6xwY/+wdWX/tXxo/7qEa//AjG//xpRz/8ycdv/RpHn/1al8/9iufv/asX//2rJ//9qxf//Yrn7/1al8/9Gkef/MnHb/xpRz/8CMb/+6hGv/tXxo/7B1Zf+scGP/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/q25i/6tuYv+rbmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7NzYv+1d2T/uX1n/7+Fav/Ejm7/y5dz/9Ggd//XqXv/3LF+/+C3gf/ju4P/5b6E/+W/hf/lvoT/47uD/+C3gf/csX7/16l7/9Ggd//Ll3P/xI5u/7+Fav+5fWf/tXdk/7NzYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7JyYv+ycmL/snJi/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+5eWL/vX5k/8GGaP/Hjmz/zZhx/9Sidv/arHr/37V+/+S8gv/pw4X/7MiH/+3Lif/uy4n/7cuJ/+zIh//pw4X/5LyC/9+1fv/arHr/1KJ2/82Ycf/Hjmz/wYZo/71+ZP+5eWL/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+4d2H/uHdh/7h3Yf+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/wX9i/8WFZf/KjWn/z5Zu/9Wgc//cq3j/4rV9/+e+gv/sxob/8MyJ//PRjP/01I3///C+//TUjf/z0Yz/8MyJ/+zGhv/nvoL/4rV9/9yreP/VoHP/z5Zu/8qNaf/FhWX/wX9i/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/v3tg/797YP+/e2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xoBg/8mEY//Mi2b/0ZNr/9edcP/cqHX/4rJ7/+i8gP/txYX/8c2J//XUjf//8L7///C+///wvv//8L7///C+//XUjf/xzYn/7cWF/+i8gP/isnv/3Kh1/9edcP/Rk2v/zItm/8mEY//GgGD/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8Z/YP/Gf2D/xn9g/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/82EYP/PiWL/05Bm/9eZa//co3H/4q12/+e4fP/swoL/8cuH//XTi///8L7///C+///wvv//8L7///C+///wvv//8L7/9dOL//HLh//swoL/57h8/+Ktdv/co3H/15lr/9OQZv/PiWL/zYRg/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Mg1//zINf/8yDX//Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/UiV//1o1i/9mVZv/dnWv/4qdx/+exd//rvH3/8MaD//TOiP/41o3///C+///wvv//8L7///C+///wvv//8L7///C+//jWjf/0zoj/8MaD/+u8ff/nsXf/4qdx/92da//ZlWb/1o1i/9SJX//Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/04de/9OHXv/Th17/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2o1e/9yRYf/fmGX/4qFr/+aqcf/qtHf/7r59//LIg//20Ij///C+///wvv//8L7///C+///wvv//8L7///C+///wvv//8L7/9tCI//LIg//uvn3/6rR3/+aqcf/ioWv/35hl/9yRYf/ajV7/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/9mLXf/Zi13/2Ytd/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+GRXv/ilWH/5Jtl/+ejav/qrHD/7rZ2//G/ff/0yIP/99CI//rYjf//8L7///C+///wvv//8L7///C+///wvv//8L7/+tiN//fQiP/0yIP/8b99/+62dv/qrHD/56Nq/+SbZf/ilWH/4ZFe/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/gj13/4I9d/+CPXf/mlFz/5pRc/+aUXP/mlFz/5pRc/+aUXP/mlFz/5pRc/+aUXP/mlFz/RjJa/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/+aUXP/mlFz/5pRc/+aUXP/mlV3/55lf/+mfZP/spmn/7q5v//G3df/zwHv/9siB//jQhv/61ov///C+///wvv//8L7///C+///wvv//8L7///C+//rWi//40Ib/9siB//PAe//xt3X/7q5v/+ymaf/pn2T/55lf/+aVXf/mlFz/5pRc/+aUXP/mlFz/5pRc/+aUXP/mlFz/5pRc/+aUXP/mlFz/7Zhb/+2YW//tmFv/7Zhb/+2YW//tmFv/7Zhb/+2YW/9GMlr/RjJa/0IvVf9CL1X/Qi9V/0IvVf9CL1X/Qi9V/0IvVf9CL1X/Qi9V/0IvVf9CL1X/Qi9V/0IvVf9GMlr/RjJa/+2YW//tmFv/7Zlb/+6cXv/voWL/8adn//KvbP/0t3L/9r94//jGfv/5zYP/+9OI//zYjP//8L7///C+///wvv//8L7///C+//zYjP/704j/+c2D//jGfv/2v3j/9Ldy//KvbP/xp2f/76Fi/+6cXv/tmVv/7Zhb/+2YW//tmFv/7Zhb/+2YW//tmFv/7Zhb/+2YW//tmFv/7Zhb//OcW//znFv/85xb//OcW//znFv/85xb/0YyWv9GMlr/Qi9V/0IvVf89LFD/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/Qi9V/0IvVf9GMlr/RjJa//OcW//znl3/9KNg//WoZf/2r2r/97Zw//i9df/5xHv/+8qA//vQhP/81Ij//diL//3ajP//8L7//dqM//3Yi//81Ij/+9CE//vKgP/5xHv/RjJa/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/0YyWv9GMlr/RjJa/0YyWv/znFv/85xb//OcW//znFv/85xb//OcW//6oFr/+qBa//qgWv/6oFr/RjJa/0YyWv9CL1X/Qi9V/z0sUP89LFD/OSlL/zkpS/85KUv/OSlL/zkpS/85KUv/OSlL/zkpS/85KUv/OSlL/zkpS/85KUv/OSlL/z0sUP89LFD/Qi9V/0IvVf9GMlr/RjJa//qlXv/7qWL/+69n//u1bP/8u3H//MF2//3He//9zID//dCD//7Thv/+1Yf//tWI//7Vh//+04b//dCD//3MgP9GMlr/RjJa/0IvVf9CL1X/Qi9V/0IvVf9CL1X/Qi9V/0IvVf9CL1X/Qi9V/0IvVf9CL1X/RjJa/0YyWv/6oFr/+qBa//qgWv/6oFr/+qBa//qgWv9GMlr/RjJa/0IvVf9CL1X/PSxQ/z0sUP85KUv/OSlL/zUmRv81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv85KUv/OSlL/z0sUP89LFD/Qi9V/0IvVf9GMlr/RjJa//urZP/7sWj//LZt//y8cv/8wXb//cZ6//3Kfv/9zID//c6B//3Pgv/9zoH//cyA/0YyWv9GMlr/Qi9V/0IvVf89LFD/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/PSxQ/z0sUP89LFD/PSxQ/0IvVf9CL1X/RjJa/0YyWv/6oFr/+qBa//qgWv9GMlr/Qi9V/0IvVf89LFD/PSxQ/zkpS/85KUv/NSZG/zUmRv8wIkH/MCJB/zAiQf8wIkH/MCJB/zAiQf8wIkH/MCJB/zAiQf8wIkH/MCJB/zAiQf8wIkH/NSZG/zUmRv85KUv/OSlL/z0sUP89LFD/Qi9V/0IvVf9GMlr/+61l//uyaf/8tm3//Ltx//y/df/8w3j//cV6//3He//9x3z//cd7/0YyWv9CL1X/Qi9V/z0sUP89LFD/OSlL/zkpS/85KUv/OSlL/zkpS/85KUv/OSlL/zkpS/85KUv/OSlL/zkpS/89LFD/PSxQ/0IvVf9CL1X/RjJa//qgWv9GMlr/Qi9V/z0sUP89LFD/OSlL/zkpS/81Jkb/NSZG/zAiQf8wIkH/LB88/ywfPP8sHzz/LB88/ywfPP8sHzz/LB88/ywfPP8sHzz/LB88/ywfPP8sHzz/LB88/zAiQf8wIkH/NSZG/zUmRv85KUv/OSlL/z0sUP89LFD/Qi9V/0YyWv/7rWX/+7Fo//u1bP/8uW///Lxy//y+dP/8v3X/RjJa/0YyWv9CL1X/PSxQ/z0sUP85KUv/OSlL/zUmRv81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv81Jkb/NSZG/zUmRv81Jkb/OSlL/zkpS/89LFD/PSxQ/0IvVf9GMlr/Qi9V/z0sUP85KUv/OSlL/zUmRv81Jkb/MCJB/zAiQf8sHzz/LB88/yccN/8nHDf/Jxw3/yccN/8nHDf/Jxw3/yccN/8nHDf/Jxw3/yccN/8nHDf/Jxw3/yccN/8sHzz/LB88/zAiQf8wIkH/NSZG/zUmRv85KUv/OSlL/z0sUP9CL1X/RjJa//urZP/7r2f/+7Jp//u0bP/8tm3/RjJa/0IvVf9CL1X/PSxQ/zkpS/85KUv/NSZG/zUmRv8wIkH/MCJB/zAiQf8wIkH/MCJB/zAiQf8wIkH/MCJB/zAiQf8wIkH/MCJB/zUmRv81Jkb/OSlL/zkpS/89LFD/Qi9V/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fc1r/n3Rb/592XP+feF7/n3pg/597Yf+ffWL/oH5j/6B/ZP+gf2T/oH9k/6B+Y/+ffWL/n3th/596YP+feF7/n3Zc/590W/+fc1r/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZ07/k2hP/5NqUP+TbVP/k29U/5NxVv+Uc1j/lHVa/5R2W/+Ud1v/lHdb/5R3W/+Udlv/lHVa/5RzWP+TcVb/k29U/5NtU/+TalD/k2hP/5NnTv+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2hO/5NqUP+TbVP/k29V/5RyV/+UdFn/lHdb/5R5Xf+Uel7/lHtf/5R7X/+Ue1//lHpe/5R5Xf+Ud1v/lHRZ/5RyV/+Tb1X/k21T/5NqUP+TaE7/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3Na/591XP+feF7/n3tg/6B+Y/+ggWb/oIRo/6CGav+giWz/oIpt/6CLbv+gi2//oItu/6CKbf+giWz/oIZq/6CEaP+ggWb/oH5j/597YP+feF7/n3Vc/59zWv+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+fcln/n3JZ/59yWf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NoT/+TalH/k25U/5NxVv+UdFn/lHhc/5R7X/+UfmH/lIBj/5WCZf+Vg2X/lYNm/5WDZf+VgmX/lIBj/5R+Yf+Ue1//lHhc/5R0Wf+TcVb/k25U/5NqUf+TaE//k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/k2ZN/5NmTf+TZk3/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49kTv+PZ1D/kGpT/5BuVf+Rcln/kXVb/5J5X/+TfWH/k4Bk/5SCZv+UhGf/lIVo/5WShP+UhWj/lIRn/5SCZv+TgGT/k31h/5J5X/+RdVv/kXJZ/5BuVf+QalP/j2dQ/49kTv+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/49jTf+PY03/j2NN/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5duWf+Yb1v/mHJd/5p1YP+aemL/m35m/5yDaf+dhmz/nopv/5+Ocv+gkHT/oZ6Q/6GekP+hnpD/oZ6Q/6GekP+gkHT/n45y/56Kb/+dhmz/nINp/5t+Zv+aemL/mnVg/5hyXf+Yb1v/l25Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+XbVn/l21Z/5dtWf+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iGJP/4llUv+LaVX/jG1Y/45yW/+Pd1//kHxi/5GAZf+Tg2f/lZKE/5WShP+VkoT/lZKE/5WShP+VkoT/lZKE/5ODZ/+RgGX/kHxi/493X/+Oclv/jG1Y/4tpVf+JZVL/iGJP/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/iF9O/4hfTv+IX07/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hV1P/4VfUP+GY1P/iGdV/4psWf+Mclz/jndg/498Y/+RgGb/k4Rp/5WShP+VkoT/lZKE/5WShP+VkoT/lZKE/5WShP+ThGn/kYBm/498Y/+Od2D/jHJc/4psWf+IZ1X/hmNT/4VfUP+FXU//hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4RcTv+EXE7/hFxO/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/41nW/+OaVz/kG1f/5FyYv+Ud2X/ln1o/5iCbP+aiG//nIxy/6GekP+hnpD/oZ6Q/6GekP+hnpD/oZ6Q/6GekP+hnpD/oZ6Q/5yMcv+aiG//mIJs/5Z9aP+Ud2X/kXJi/5BtX/+OaVz/jWdb/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv+MZlr/jGZa/4xmWv99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/9+WU//f1tR/4BfU/+DZFb/hWlZ/4hvXP+KdWD/jXpj/49/Zv+Rg2n/lZKE/5WShP+VkoT/lZKE/5WShP+VkoT/lZKE/5GDaf+Pf2b/jXpj/4p1YP+Ib1z/hWlZ/4NkVv+AX1P/f1tR/35ZT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//fVhP/31YT/99WE//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//elZQ/3tZUf99XVP/f2JW/4JnWf+FbVz/iHNf/4t4Y/+OfWX/kIJn/5WShP+VkoT/lZKE/5WShP+VkoT/lZKE/5WShP+Qgmf/jn1l/4t4Y/+Ic1//hW1c/4JnWf9/Ylb/fV1T/3tZUf96VlD/eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/3lWT/95Vk//eVZP/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JgXP+EYl3/hWZf/4hqYv+LcGX/jnZn/5F7a/+VgW3/l4Zw/5qKcv+cjnX/oZ6Q/6GekP+hnpD/oZ6Q/6GekP+cjnX/mopy/5eGcP+VgW3/kXtr/452Z/+LcGX/iGpi/4VmX/+EYl3/gmBc/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP+CX1z/gl9c/4JfXP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/c1NR/3VXU/94W1X/e2BY/35mWv+CbF3/hXFg/4h2Y/+LemX/jX5m/4+AaP+Pgmn/lZKE/4+Caf+PgGj/jX5m/4t6Zf+IdmP/hXFg/4JsXf9+Zlr/e2BY/3hbVf91V1P/c1NR/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/clFQ/3JRUP9yUVD/"}}]}}}],"problems":[]},"outline":"Window \"Picture in picture\"\n  Pane\n    ImageView 64 x 48, pixels 5155b6cd"},{"name":"Test 3","stdin":"","files":{"pic.png":{"asset":"checker.png","url":"images/checker-f46dbecce7.png","width":16,"height":16,"size":110,"alt":"A checkerboard of dark gray and light gray squares, 4 by 4 pixels each, with a dark square at the top left."}},"expect":"","hidden":true,"events":[],"window":{"windows":[{"title":"Picture in picture","scene":{"root":{"n":1,"type":"Pane","children":[{"n":2,"type":"ImageView","image":{"width":16,"height":16,"crc":"96f88bad","pixels":"KCgo/ygoKP8oKCj/KCgo/+bm5v/m5ub/5ubm/+bm5v8oKCj/KCgo/ygoKP8oKCj/5ubm/+bm5v/m5ub/5ubm/ygoKP8oKCj/KCgo/ygoKP/m5ub/5ubm/+bm5v/m5ub/KCgo/ygoKP8oKCj/KCgo/+bm5v8oKCj/5ubm/+bm5v8oKCj/KCgo/ygoKP8oKCj/5ubm/+bm5v/m5ub/5ubm/ygoKP8oKCj/KCgo/ygoKP/m5ub/KCgo/+bm5v/m5ub/KCgo/ygoKP8oKCj/KCgo/+bm5v/m5ub/5ubm/+bm5v8oKCj/KCgo/+bm5v/m5ub/KCgo/+bm5v8oKCj/5ubm/+bm5v/m5ub/5ubm/+bm5v8oKCj/KCgo/ygoKP8oKCj/5ubm/+bm5v8oKCj/KCgo/+bm5v8oKCj/5ubm/ygoKP/m5ub/5ubm/+bm5v/m5ub/KCgo/ygoKP8oKCj/KCgo/+bm5v/m5ub/5ubm/+bm5v8oKCj/5ubm/ygoKP8oKCj/5ubm/+bm5v/m5ub/5ubm/ygoKP8oKCj/KCgo/ygoKP/m5ub/5ubm/+bm5v/m5ub/KCgo/ygoKP8oKCj/KCgo/+bm5v/m5ub/5ubm/+bm5v8oKCj/KCgo/ygoKP8oKCj/5ubm/+bm5v/m5ub/5ubm/ygoKP8oKCj/KCgo/ygoKP8oKCj/KCgo/ygoKP8oKCj/5ubm/+bm5v/m5ub/5ubm/ygoKP8oKCj/KCgo/ygoKP/m5ub/5ubm/+bm5v/m5ub/KCgo/ygoKP8oKCj/KCgo/+bm5v/m5ub/5ubm/+bm5v8oKCj/KCgo/ygoKP8oKCj/5ubm/+bm5v/m5ub/5ubm/ygoKP8oKCj/KCgo/ygoKP/m5ub/5ubm/+bm5v/m5ub/KCgo/ygoKP8oKCj/KCgo/+bm5v/m5ub/5ubm/+bm5v8oKCj/KCgo/ygoKP8oKCj/5ubm/+bm5v/m5ub/5ubm/ygoKP8oKCj/KCgo/ygoKP/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/ygoKP8oKCj/KCgo/ygoKP/m5ub/5ubm/+bm5v/m5ub/KCgo/ygoKP8oKCj/KCgo/+bm5v/m5ub/5ubm/+bm5v8oKCj/KCgo/ygoKP8oKCj/5ubm/+bm5v/m5ub/5ubm/ygoKP8oKCj/KCgo/ygoKP/m5ub/5ubm/+bm5v/m5ub/KCgo/ygoKP8oKCj/KCgo/+bm5v/m5ub/5ubm/+bm5v8oKCj/KCgo/ygoKP8oKCj/5ubm/+bm5v/m5ub/5ubm/ygoKP8oKCj/KCgo/ygoKP/m5ub/5ubm/+bm5v/m5ub/KCgo/ygoKP8oKCj/KCgo/w=="}}]}}}],"problems":[]},"outline":"Window \"Picture in picture\"\n  Pane\n    ImageView 16 x 16, pixels 96f88bad"}],"require":[],"forbid":[]}]}