diff options
Diffstat (limited to 'static')
-rw-r--r-- | static/artists.js | 1 | ||||
-rw-r--r-- | static/favicon.ico | bin | 0 -> 318 bytes | |||
-rw-r--r-- | static/manifest.js | 2 | ||||
-rw-r--r-- | static/script.js | 272 | ||||
-rw-r--r-- | static/styles.css | 40 | ||||
-rw-r--r-- | static/works.js | 2 |
6 files changed, 317 insertions, 0 deletions
diff --git a/static/artists.js b/static/artists.js new file mode 100644 index 0000000..501154c --- /dev/null +++ b/static/artists.js @@ -0,0 +1 @@ +var artists = [22, 20, 16, 17, 9, 1, 22, 9, 25, 11, 9, 14, 14, 1, 17, 12, 22, 7, 9, 7, 20, 18, 17, 13, 20, 4, 14, 13, 10, 22, 22, 25, 16, 12, 15, 9, 12, 14, 19, 20, 17, 8, 14, 6, 17, 21, 25, 16, 22, 15, 16, 19, 22, 21, 16, 20, 1, 16, 1, 14, 25, 25, 7, 14, 11, 9, 7, 17, 12, 8, 25, 4, 22, 21, 5, 17, 3, 16, 4, 2, 22, 4, 7, 14, 17, 4, 11, 18, 1, 17, 16, 12, 5, 8, 5, 14, 15, 2, 20, 15, 25, 14, 18, 15, 21, 14, 1, 9, 15, 14, 22, 20, 14, 22, 20, 18, 3, 18, 1, 6, 9, 12, 4, 7, 18, 25, 3, 20, 22, 15, 7, 8, 2, 22, 17, 12, 10, 1, 14, 12, 22, 4, 14, 11, 18, 18, 18, 25, 4, 16, 13, 11, 22, 18, 7, 3, 14, 3, 9, 16, 5, 2, 22, 13, 22, 12, 25, 25, 22, 1, 25, 10, 5, 14, 14, 15, 22, 5, 3, 14, 7, 25, 11, 15, 12, 4, 3, 14, 5, 15, 11, 8, 22, 20, 20, 17, 14, 22, 4, 22, 22, 21, 18, 22, 7, 12, 15, 13, 9, 22, 16, 9, 21, 22, 13, 10, 4, 18, 12, 10, 2, 18, 7, 13, 18, 19, 8, 22, 4, 15, 11, 0, 7, 6, 14, 19, 14, 1, 18, 22, 13, 6, 4, 10, 17, 14, 3, 22, 14, 1, 22, 14, 4, 17, 18, 17, 7, 14, 22, 13, 15, 11, 21, 1, 4, 17, 6, 4, 7, 17, 8, 22, 7, 25, 22, 11, 8, 4, 22, 4, 18, 17, 14, 19, 4, 9, 20, 12, 17, 17, 4, 1, 22, 15, 22, 8, 3, 1, 18, 15, 22, 22, 15, 12, 21, 10, 22, 4, 22, 17, 19, 19, 18, 9, 21, 15, 22, 7, 5, 7, 17, 11, 20, 25, 22, 25, 14, 6, 4, 1, 16, 15, 14, 11, 22, 12, 22, 25, 0, 22, 14, 6, 9, 18, 4, 22, 3, 15, 14, 0, 16, 20, 18, 14, 18, 20, 5, 11, 8, 22, 3, 8, 25, 22, 16, 11, 12, 2, 17, 22, 17, 10, 15, 8, 5, 11, 7, 25, 20, 1, 17, 14, 4, 22, 11, 11, 22, 3, 7, 14, 1, 15, 19, 11, 7, 4, 17, 9, 14, 15, 3, 8, 14, 14, 25, 13, 15, 10, 4, 4, 14, 5, 20, 4, 14, 22, 17, 20, 16, 2, 12, 17, 15, 6, 3, 20, 7, 5, 20, 4, 22, 16, 22, 25, 5, 25, 2, 11, 1, 9, 2, 13, 22, 6, 21, 25, 13, 6, 13, 14, 2, 4, 17, 1, 14, 4, 0, 25, 14, 14, 15, 16, 22, 11, 7, 15, 25, 2, 7, 7, 20, 13, 9, 3, 4, 1, 19, 5, 18, 22, 4, 4, 21, 11, 14, 22, 18, 25, 14, 1, 9, 13, 10, 5, 20, 17, 14, 17, 17, 18, 11, 13, 17, 1, 11, 21, 2, 18, 11, 6, 6, 19, 9, 14, 22, 14, 5, 1, 6, 16, 22, 19, 16, 25, 2, 9, 18, 14, 3, 14, 11, 18, 4, 14, 11, 4, 18, 17, 3, 21, 22, 22, 15, 22, 10, 2, 14, 9, 5, 10, 22, 10, 5, 3, 22, 2, 1, 2, 9, 2, 22, 14, 25, 1, 0, 21, 25, 18, 13, 11, 17, 13, 14, 10, 7, 13, 9, 17, 6, 8, 22, 14, 7, 16, 3, 9, 14, 14, 3, 2, 13, 6, 4, 6, 4, 3, 18, 25, 20, 18, 22, 17, 13, 13, 22, 15, 14, 2, 12, 5, 22, 2, 12, 4, 17, 22, 22, 22, 18, 25, 9, 21, 6, 14, 5, 19, 8, 22, 20, 14, 0, 22, 21, 13, 4, 4, 18, 14, 14, 14, 8, 25, 9, 4, 4, 20, 14, 15, 25, 3, 3, 22, 22, 7, 14, 8, 2, 20, 20, 25, 25, 2, 17, 12, 11, 18, 10, 14, 2, 25, 14, 25, 4, 6, 10, 13, 10, 22, 22, 14, 22, 15, 8, 14, 14, 11, 4, 25, 18, 2, 17, 25, 2, 13, 4, 1, 21, 12, 17, 7, 14, 4, 4, 22, 16, 2, 2, 12, 14, 14, 18, 19, 2, 9, 16, 14, 15, 22, 19, 3, 4, 15, 11, 7, 20, 1, 25, 22, 10, 10, 8, 25, 18, 20, 22, 17, 17, 12, 17, 11, 18, 4, 2, 12, 6, 8, 14, 18, 18, 7, 11, 19, 18, 8, 16, 9, 18, 1, 18, 2, 7, 19, 12, 25, 3, 5, 18, 22, 15, 20, 22, 8, 22, 4, 2, 25, 12, 2, 14, 13, 22, 25, 17, 17, 21, 5, 4, 16, 6, 3, 1, 21, 3, 20, 17, 18, 13, 17, 11, 20, 21, 1, 5, 17, 20, 4, 14, 19, 1, 17, 18, 17, 5, 21, 6, 2, 11, 17, 18, 17, 18, 13, 17, 8, 18, 4, 15, 1, 12, 14, 17, 15, 1, 14, 17, 3, 7, 22, 15, 22, 4, 17, 17, 15, 9, 5, 14, 21, 14, 4, 14, 17, 25, 18, 14, 19, 18, 22, 2, 10, 18, 18, 12, 20, 3, 13, 7, 15, 14, 7, 1, 19, 4, 5, 2, 8, 14, 20, 7, 6, 1, 13, 17, 14, 5, 15, 14, 9, 2, 22, 4, 12, 2, 22, 15, 13, 22, 22, 11, 17, 21, 20, 14, 22, 4, 14, 20, 4, 14, 7, 5, 7, 16, 13, 0, 22, 5, 15, 14, 14, 14, 4, 22, 18, 15, 14, 11, 20, 3, 17, 18, 1, 2, 7, 25, 8, 13, 22, 9, 19, 4, 6, 4, 4, 8, 22, 11, 15, 14, 12, 19, 7, 17, 22, 13, 5, 14, 22, 1, 4, 15, 11, 5, 4, 22, 22, 9, 19, 13, 18, 4, 14, 14, 19, 4, 18, 20, 22, 16, 14, 19, 5, 14, 18, 8, 25, 17, 8, 12, 18, 4, 3, 4, 21, 11, 20, 22, 22, 4, 1, 17, 11, 19, 20, 17, 22, 10, 16, 4, 4, 14, 12, 8, 18, 6, 8, 22, 22, 8, 8, 12, 22, 22, 2, 22, 9, 2, 12, 14, 5, 22, 7, 7, 2, 11, 13, 7, 14, 8, 18, 17, 22, 15, 20, 6, 14, 4, 18, 12, 4, 3, 2, 11, 1, 21, 14, 8, 1, 14, 22, 18, 2, 2, 14, 10, 14, 22, 22, 14, 22, 1, 18, 25, 7, 12, 2, 14, 21, 8, 14, 12, 14, 5, 1, 17, 20, 16, 15, 2, 1, 6, 15, 25, 1, 22, 14, 7, 18, 22, 18, 16, 14, 22, 4, 14, 7, 15, 22, 17, 1, 22, 8, 4, 14, 4, 3, 4, 7, 7, 21, 25, 9, 22, 1, 17, 8, 14, 11, 15, 17, 14, 4, 19, 22, 18, 11, 6, 7, 14, 17, 11, 20, 19, 6, 14, 14, 19, 8, 21, 17, 1, 5, 22, 21, 25, 13, 17, 21, 22, 19, 6, 15, 17, 5, 17, 25, 4, 10, 14, 10, 0, 17, 1, 18, 4, 25, 17, 11, 9, 9, 18, 20, 2, 25, 2, 25, 14, 19, 7, 9, 15, 4, 18, 17, 2, 22, 25, 20, 18, 8, 22, 5, 4, 22, 22, 6, 17, 10, 15, 19, 6, 13, 21, 14, 2, 22, 20, 17, 17, 25, 20, 3, 14, 9, 2, 4, 17, 8, 16, 25, 11, 21, 14, 17, 1, 12, 4, 11, 4, 4, 8, 18, 15, 6, 5, 2, 3, 8, 25, 25, 9, 14, 1, 17, 11, 8, 14, 22, 3, 12, 19, 19, 2, 13, 12, 14, 7, 8, 6, 7, 18, 4, 17, 5, 4, 7, 20, 1, 14, 20, 3, 14, 17, 8, 15, 11, 22, 6, 20, 6, 22, 18, 19, 8, 20, 11, 5, 17, 2, 20, 25, 14, 14, 14, 16, 14, 0, 16, 21, 20, 25, 14, 25, 15, 15, 18, 22, 12, 21, 11, 12, 14, 1, 2, 11, 12, 12, 25, 16, 8, 13, 11, 8, 4, 13, 16, 22, 22, 7, 22, 6, 14, 14, 2, 25, 15, 12, 5, 1, 21, 22, 10, 17, 17, 22, 8, 16, 2, 14, 6, 2, 22, 4, 13, 20, 14, 8, 4, 7, 14, 12, 10, 13, 17, 10, 5, 22, 16, 19, 18, 18, 14, 4, 25, 12, 3, 15, 14, 22, 13, 22, 13, 15, 12, 11, 4, 14, 22, 17, 11, 15, 14, 21, 19, 7, 4, 21, 16, 16, 8, 1, 12, 17, 13, 14, 15, 5, 12, 25, 16, 7, 5, 8, 9, 2, 11, 15, 5, 1, 9, 12, 20, 9, 15, 7, 15, 16, 16, 2, 16, 25, 17, 14, 11, 19, 1, 13, 11, 19, 2, 18, 18, 22, 7, 18, 12, 5, 22, 4, 16, 22, 25, 17, 11, 12, 10, 13, 22, 15, 4, 3, 18, 17, 6, 2, 17, 5, 11, 22, 18, 15, 18, 22, 17, 20, 15, 11, 14, 14, 17, 16, 4, 14, 18, 10, 1, 19, 4, 21, 14, 2, 20, 16, 14, 11, 2, 3, 2, 15, 5, 22, 17, 3, 1, 2, 18, 12, 18, 17, 19, 17, 5, 7, 19, 18, 22, 3, 5, 2, 5, 22, 4, 13, 1, 15, 2, 1, 22, 7, 9, 6, 15, 5, 25, 1, 3, 25, 14, 5, 17, 14, 4, 15, 8, 14, 6, 25, 6, 20, 2, 1, 16, 1, 6, 22, 1, 7, 15, 17, 18, 18, 4, 1, 14, 3, 14, 14, 20, 22, 20, 22, 15, 14, 11, 17, 10, 10, 17, 2, 10, 14, 19, 4, 13, 19, 4, 14, 12, 14, 17, 5, 20, 9, 17, 9, 22, 12, 22, 19, 7, 1, 22, 18, 19, 20, 14, 19, 12, 12, 1, 7, 22, 4, 9, 19, 22, 14, 1, 18, 11, 16, 22, 22, 14, 13, 14, 2, 17, 22, 4, 15, 19, 11, 19, 22, 4, 17, 4, 3, 5, 6, 4, 22, 5, 22, 19, 8, 11, 18, 15, 14, 22, 18, 18, 4, 14, 16, 14, 1, 17, 14, 7, 12, 12, 1, 14, 6, 3, 13, 25, 14, 22, 14, 1, 8, 7, 17, 18, 20, 17, 18, 25, 14, 22, 14, 22, 15, 22, 17, 11, 12, 18, 22, 25, 6, 4, 21, 17, 1, 9, 20, 1, 19, 2, 11, 17, 10, 14, 10, 13, 7, 4, 13, 11, 9, 7, 15, 14, 6, 18, 8, 6, 17, 13, 25, 14, 18, 8, 22, 15, 4, 17, 19, 22, 10, 16, 3, 12, 4, 14, 10, 17, 8, 2, 14, 14, 1, 14, 22, 1, 17, 11, 4, 13, 4, 17, 11, 16, 1, 13, 22, 20, 22, 16, 14, 22, 13, 5, 3, 14, 4, 9, 18, 14, 9, 2, 7, 22, 4, 15, 10, 22, 12, 22, 2, 20, 21, 2, 18, 4, 17, 7, 14, 25, 20, 18, 25, 17, 14, 20, 13, 4, 8, 12, 11, 4, 25, 4, 22, 17, 25, 9, 15, 20, 12, 22, 11, 7, 5, 22, 20, 14, 18, 4, 3, 4, 16, 8, 21, 6, 25, 2, 7, 20, 14, 17, 9, 5, 3, 19, 19, 17, 17, 18, 17, 19, 10, 16, 13, 13, 18, 17, 14, 18, 2, 17, 9, 13, 15, 22, 8, 6, 12, 6, 12, 9, 6, 25, 12, 10, 20, 12, 1, 22, 17, 1, 10, 2, 2, 22, 18, 6, 22, 11, 14, 4, 6, 16, 18, 19, 18, 7, 12, 2, 8, 6, 0, 20, 22, 22, 18, 11, 17, 11, 14, 16, 7, 17, 15, 14, 17, 25, 3, 4, 2, 11, 16, 21, 17, 17, 17, 22, 14, 13, 20, 25, 7, 22, 19, 3, 19, 1, 16, 7, 7, 20, 3, 18, 14, 17, 20, 22, 22, 6, 22, 17, 14, 6, 15, 15, 12, 14, 1, 17, 9, 12, 7, 2, 2, 22, 1, 2, 5, 14, 22, 15, 8, 14, 13, 13, 12, 16, 22, 14, 25, 9, 17, 6, 8, 22, 4, 25, 11, 15, 6, 22, 1, 17, 11, 6, 12, 17, 14, 13, 14, 12, 22, 22, 5, 15, 17, 22, 25, 15, 4, 18, 11, 4, 19, 9, 10, 3, 10, 12, 14, 10, 2, 5, 1, 8, 5, 18, 25, 11, 7, 15, 2, 16, 16, 4, 14, 14, 13, 12, 18, 6, 10, 20, 12, 21, 6, 13, 4, 14, 25, 18, 20, 3, 8, 17, 14, 2, 4, 16, 12, 14, 17, 11, 17, 14, 20, 21, 20, 14, 14, 5, 17, 17, 18, 4, 17, 19, 14, 14, 19, 3, 7, 11, 14, 10, 11, 22, 6, 20, 20, 15, 18, 13, 5, 8, 4, 7, 22, 20, 8, 8, 16, 4, 18, 8, 14, 18, 17, 25, 14, 4, 3, 11, 10, 22, 7, 22, 6, 17, 15, 15, 22, 7, 6, 9, 14, 14, 17, 16, 13, 22, 11, 15, 7, 22, 7, 20, 4, 21, 7, 1, 17, 9, 6, 2, 22, 12, 15, 16, 3, 17, 1, 10, 5, 11, 12, 3, 21, 19, 7, 17, 9, 15, 6, 14, 10, 5, 17, 14, 22, 25, 11, 14, 3, 20, 8, 18, 10, 12, 13, 6, 11, 14, 15, 2, 8, 15, 3, 22, 22, 22, 17, 11, 12, 5, 1, 7, 12, 10, 16, 22, 2, 20, 22, 11, 7, 25, 14, 17, 14, 1, 22, 8, 9, 21, 4, 14, 4, 12, 11, 20, 17, 9, 5, 15, 4, 12, 18, 4, 22, 18, 21, 22, 10, 14, 3, 16, 14, 8, 22, 17, 21, 14, 16, 13, 17, 5, 13, 10, 4, 25, 12, 18, 14, 14, 2, 7, 1, 15, 4, 14, 8, 16, 13, 21, 25, 11, 22, 22, 22, 18, 12, 14, 17, 19, 14, 4, 1, 21, 19, 10, 14, 17, 10, 16, 17, 14, 25, 7, 19, 18, 5, 13, 3, 12, 22, 4, 5, 14, 22, 8, 0, 22, 2, 13, 8, 14, 5, 6, 3, 18, 21, 17, 4, 2, 3, 17, 17, 19, 1, 4, 4, 22, 14, 5, 4, 7, 18, 1, 3, 22, 25, 14, 21, 20, 2, 1, 9, 1, 25, 11, 22, 11, 12, 7, 13, 14, 11, 14, 6, 18, 10, 17, 22, 7, 20, 14, 4, 17, 3, 14, 5, 13, 7, 2, 4, 10, 2, 6, 12, 13, 20, 20, 20, 20, 9, 20, 9, 10, 16, 2, 14, 5, 5, 21, 15, 17, 5, 14, 22, 5, 16, 17, 7, 4, 20, 14, 13, 22, 22, 16, 3, 14, 15, 4, 4, 16, 1, 15, 14, 20, 4, 18, 20, 5, 16, 22, 20, 19, 13, 18, 9, 4, 2, 15, 19, 2, 4, 14, 20, 10, 1, 10, 13, 2, 17, 2, 17, 18, 7, 25, 11, 9, 0, 22, 22, 14, 4, 14, 2, 22, 16, 17, 17, 19, 14, 20, 6, 12, 22, 25, 20, 19, 5, 17, 14, 14, 14, 6, 7, 22, 14, 19, 11, 10, 16, 7, 5, 18, 20, 20, 4, 13, 11, 12, 11, 17, 14, 14, 17, 14, 21, 11, 10, 12, 4, 0, 22, 7, 6, 15, 4, 14, 21, 17, 15, 11, 7, 4, 12, 14, 4, 16, 19, 17, 2, 17, 10, 6, 22, 16, 22, 18, 18, 2, 25, 4, 19, 11, 21, 17, 3, 15, 20, 25, 17, 9, 19, 16, 1, 22, 7, 4, 7, 12, 14, 18, 11, 3, 10, 21, 6, 20, 9, 20, 18, 4, 14, 10, 14, 17, 14, 1, 22, 17, 7, 5, 4, 4, 18, 14, 22, 11, 14, 14, 12, 5, 6, 9, 18, 15, 0, 14, 15, 3, 18, 4, 1, 14, 21, 8, 1, 22, 14, 9, 6, 22, 15, 4, 21, 14, 18, 8, 7, 16, 20, 20, 15, 4, 19, 21, 1, 20, 12, 13, 14, 18, 22, 11, 14, 16, 8, 11, 20, 17, 8, 7, 22, 7, 12, 25, 15, 25, 19, 1, 0, 12, 14, 5, 14, 4, 22, 20, 18, 21, 9, 14, 11, 2, 14, 13, 16, 3, 5, 4, 22, 13, 17, 22, 4, 22, 5, 13, 5, 22, 10, 3, 9, 17, 13, 5, 15, 5, 22, 5, 21, 20, 15, 2, 1, 22, 15, 17, 19, 14, 3, 17, 15, 22, 3, 22, 14, 15, 17, 10, 22, 13, 1, 4, 15, 18, 12, 20, 2, 22, 1, 2, 7, 10, 8, 13, 21, 17, 8, 14, 15, 14, 6, 16, 22, 1, 1, 3, 2, 13, 17, 4, 22, 9, 17, 14, 17, 2, 2, 12, 16, 17, 5, 22, 18, 22, 9, 25, 25, 22, 21, 5, 16, 2, 19, 18, 14, 22, 9, 22, 18, 10, 2, 17, 3, 12, 20, 6, 14, 5, 2, 19, 14, 14, 4, 17, 22, 6, 16, 3, 4, 19, 16, 22, 14, 21, 4, 22, 11, 12, 3, 12, 12, 2, 13, 7, 11, 5, 25, 11, 22, 17, 2, 3, 10, 10, 20, 25, 2, 16, 22, 16, 13, 11, 4, 13, 10, 25, 14, 22, 22, 18, 16, 14, 15, 18, 1, 9, 7, 3, 17, 12, 8, 14, 1, 4, 18, 4, 4, 22, 17, 8, 14, 12, 1, 4, 13, 17, 12, 2, 18, 22, 8, 17, 22, 14, 14, 22, 15, 3, 2, 16, 4, 10, 4, 13, 11, 1, 18, 21, 8, 9, 16, 22, 18, 22, 17, 13, 14, 25, 19, 4, 9, 13, 2, 16, 25, 22, 15, 1, 1, 18, 14, 7, 21, 22, 15, 22, 2, 14, 18, 8, 18, 4, 22, 20, 14, 20, 5, 7, 18, 21, 12, 3, 11, 6, 7, 3, 25, 17, 1, 22, 25, 12, 11, 7, 21, 6, 7, 21, 16, 3, 5, 14, 22, 17, 1, 20, 22, 8, 11, 1, 3, 5, 17, 22, 17, 22, 4, 17, 25, 15, 14, 17, 18, 22, 10, 17, 11, 22, 11, 11, 17, 25, 7, 2, 7, 8, 12, 17, 6, 22, 1, 21, 7, 6, 16, 8, 20, 17, 2, 16, 6, 22, 12, 25, 14, 8, 22, 19, 4, 1, 8, 6, 5, 1, 5, 2, 13, 7, 12, 15, 2, 19, 14, 2, 4, 17, 6, 10, 16, 20, 21, 16, 11, 6, 12, 14, 7, 13, 21, 18, 25, 3, 4, 17, 21, 17, 17, 3, 12, 11, 1, 11, 14, 22, 9, 13, 1, 20, 17, 2, 2, 13, 12, 18, 4, 21, 6, 12, 17, 2, 1, 5, 8, 19, 4, 16, 20, 17, 17, 25, 17, 19, 2, 22, 18, 17, 14, 19, 7, 4, 20, 18, 18, 15, 11, 17, 15, 12, 9, 14, 17, 12, 4, 17, 10, 15, 17, 2, 25, 16, 15, 15, 17, 1, 21, 14, 19, 2, 25, 17, 0, 7, 3, 14, 1, 2, 6, 18, 1, 22, 20, 6, 18, 10, 6, 25, 17, 25, 5, 4, 13, 5, 11, 16, 10, 18, 13, 25, 4, 4, 16, 25, 6, 14, 2, 7, 12, 14, 18, 7, 6, 16, 18, 10, 4, 14, 22, 25, 18, 11, 22, 11, 8, 14, 9, 12, 0, 17, 12, 4, 5, 14, 14, 22, 6, 7, 22, 15, 22, 15, 4, 9, 4, 18, 21, 9, 14, 17, 4, 17, 20, 17, 9, 11, 4, 21, 20, 16, 20, 17, 22, 10, 7, 12, 17, 22, 3, 16, 11, 18, 22, 25, 14, 4, 9, 1, 17, 8, 6, 18, 22, 20, 19, 25, 16, 22, 22, 2, 9, 12, 3, 10, 13, 11, 12, 8, 9, 15, 21, 4, 8, 6, 17, 9, 22, 1, 22, 18, 14, 13, 8, 8, 4, 14, 16, 22, 4, 12, 16, 25, 13, 2, 11, 16, 14, 17, 1, 22, 1, 4, 4, 17, 0, 4, 14, 17, 18, 8, 13, 7, 4, 13, 9, 22, 7, 10, 17, 6, 12, 3, 14, 3, 22, 3, 10, 21, 25, 7, 3, 22, 17, 22, 18, 9, 22, 12, 8, 17, 17, 21, 22, 7, 22, 7, 25, 4, 13, 20, 17, 22, 25, 22, 22, 4, 15, 7, 14, 12, 19, 13, 2, 18, 3, 9, 1, 22, 2, 22, 1, 22, 20, 22, 13, 5, 2, 4, 2, 22, 11, 17, 18, 2, 1, 14, 12, 14, 22, 6, 4, 16, 18, 21, 20, 22, 1, 22, 14, 3, 7, 3, 16, 17, 11, 15, 6, 5, 2, 5, 1, 21, 16, 25, 22, 25, 3, 21, 12, 22, 2, 3, 9, 25, 2, 19, 14, 18, 8, 4, 11, 11, 7, 20, 22, 4, 18, 22, 16, 16, 3, 0, 22, 21, 2, 8, 11, 18, 17, 7, 14, 7, 8, 17, 18, 17, 13, 11, 0, 21, 20, 13, 20, 7, 5, 10, 22, 19, 2, 7, 14, 12, 13, 12, 16, 7, 3, 13, 7, 9, 18, 25, 21, 4, 7, 22, 17, 4, 3, 11, 7, 2, 14, 14, 9, 8, 13, 14, 1, 4, 7, 9, 18, 14, 11, 17, 11, 14, 19, 17, 9, 5, 3, 2, 9, 17, 0, 25, 11, 18, 25, 1, 18, 17, 6, 12, 10, 18, 12, 14, 14, 12, 11, 7, 13, 7, 1, 20, 18, 14, 3, 6, 21, 5, 2, 8, 16, 25, 22, 9, 15, 22, 10, 7, 22, 10, 22, 25, 18, 17, 17, 11, 11, 7, 20, 22, 1, 19, 4, 15, 8, 14, 1, 5, 1, 22, 17, 1, 22, 21, 14, 12, 4, 2, 12, 7, 10, 1, 3, 20, 17, 17, 25, 21, 17, 14, 20, 18, 4, 25, 5, 18, 10, 4, 22, 14, 10, 14, 15, 5, 22, 11, 8, 14, 8, 0, 22, 18, 25, 3, 2, 17, 2, 13, 16, 4, 12, 17, 20, 2, 22, 9, 18, 9, 22, 22, 11, 4, 7, 14, 14, 10, 22, 8, 9, 9, 21, 4, 7, 2, 17, 2, 17, 1, 3, 14, 12, 7, 11, 8, 22, 1, 19, 7, 9, 20, 2, 4, 2, 22, 22, 14, 14, 4, 22, 11, 12, 25, 22, 25, 14, 14, 2, 7, 2, 22, 14, 19, 17, 14, 7, 21, 4, 17, 21, 13, 17, 10, 10, 11, 22, 2, 3, 5, 17, 9, 19, 3, 21, 19, 11, 20, 20, 16, 8, 4, 14, 14, 9, 18, 13, 12, 20, 1, 4, 19, 11, 22, 7, 18, 8, 22, 9, 10, 21, 2, 17, 20, 4, 12, 14, 8, 11, 17, 22, 25, 3, 17, 20, 25, 20, 4, 14, 22, 10, 12, 15, 8, 5, 4, 12, 10, 14, 4, 4, 10, 11, 16, 4, 17, 22, 7, 17, 14, 22, 13, 7, 15, 14, 1, 7, 2, 18, 7, 4, 22, 13, 14, 0, 19, 17, 6, 4, 17, 5, 7, 14, 4, 14, 10, 19, 13, 1, 9, 20, 14, 9, 3, 3, 13, 17, 14, 25, 22, 7, 19, 17, 18, 8, 13, 14, 6, 25, 25, 14, 16, 14, 22, 17, 4, 19, 15, 22, 12, 22, 14, 22, 13, 11, 19, 19, 18, 14, 17, 20, 4, 2, 12, 19, 13, 18, 14, 4, 20, 14, 4, 12, 5, 19, 20, 17, 1, 9, 16, 4, 1, 14, 17, 22, 16, 19, 4, 17, 25, 12, 22, 10, 2, 6, 16, 3, 12, 17, 7, 20, 2, 22, 11, 22, 14, 7, 6, 4, 1, 11, 4, 20, 1, 4, 12, 15, 10, 22, 14, 22, 5, 25, 8, 11, 7, 12, 2, 1, 18, 1, 8, 22, 4, 18, 12, 25, 20, 14, 12, 20, 4, 8, 12, 14, 11, 14, 18, 22, 7, 17, 25, 16, 14, 14, 16, 1, 22, 20, 16, 15, 13, 14, 25, 5, 15, 4, 17, 14, 8, 17, 12, 3, 14, 25, 6, 4, 4, 22, 11, 14, 17, 11, 1, 4, 14, 17, 13, 15, 4, 18, 20, 14, 13, 18, 22, 17, 5, 20, 22, 17, 5, 5, 22, 2, 15, 1, 10, 11, 25, 22, 11, 7, 12, 1, 12, 13, 9, 6, 21, 4, 25, 17, 22, 18, 18, 14, 11, 14, 19, 16, 7, 13, 14, 21, 6, 3, 14, 16, 10, 14, 16, 15, 16, 14, 10, 17, 10, 4, 25, 17, 15, 7, 2, 19, 14, 13, 15, 16, 22, 4, 17, 12, 15, 17, 20, 22, 19, 14, 20, 12, 14, 3, 10, 11, 22, 22, 14, 3, 10, 25, 17, 18, 5, 20, 4, 22, 11, 4, 3, 5, 2, 4, 17, 1, 12, 14, 15, 1, 12, 11, 18, 14, 17, 13, 19, 11, 11, 1, 14, 25, 22, 13, 15, 14, 25, 6, 22, 6, 8, 15, 4, 5, 12, 22, 1, 13, 22, 14, 5, 14, 22, 6, 4, 18, 10, 16, 22, 7, 25, 5, 5, 8, 14, 19, 25, 4, 2, 2, 15, 11, 10, 18, 5, 19, 0, 18, 25, 4, 18, 5, 1, 22, 17, 4, 18, 10, 7, 12, 22, 3, 14, 21, 17, 22, 0, 2, 15, 19, 13, 14, 15, 8, 6, 8, 7, 21, 11, 17, 14, 22, 7, 15, 18, 6, 19, 21, 14, 13, 11, 7, 15, 2, 22, 22, 14, 25, 17, 6, 15, 4, 22, 15, 4, 5, 22, 1, 1, 1, 17, 5, 20, 18, 14, 6, 17, 14, 15, 19, 3, 17, 18, 12, 6, 12, 2, 12, 18, 21, 22, 22, 9, 10, 14, 3, 14, 6, 11, 16, 7, 8, 15, 4, 11, 14, 17, 19, 4, 2, 14, 2, 5, 13, 25, 14, 8, 14, 18, 22, 18, 4, 17, 18, 14, 2, 10, 22, 22, 9, 12, 14, 17, 7, 14, 14, 18, 7, 17, 4, 12, 17, 12, 12, 2, 7, 22, 1, 6, 9, 25, 4, 4, 17, 22, 15, 2, 17, 9, 13, 6, 14, 22, 12, 6, 17, 16, 8, 25, 14, 3, 19, 17, 9, 18, 8, 10, 11, 20, 4, 15, 17, 5, 20, 17, 10, 9, 20, 22, 2, 25, 16, 22, 16, 25, 20, 18, 12, 1, 16, 17, 1, 14, 16, 5, 22, 17, 7, 16, 9, 22, 21, 22, 16, 15, 11, 2, 7, 18, 17, 2, 20, 14, 12, 19, 22, 17, 22, 25, 2, 18, 14, 12, 13, 15, 17, 20, 12, 6, 4, 22, 7, 20, 14, 7, 8, 25, 8, 3, 11, 9, 13, 22, 18, 14, 5, 14, 5, 4, 17, 16, 2, 22, 18, 12, 2, 17, 1, 16, 14, 2, 9, 14, 7, 21, 4, 22, 5, 15, 14, 7, 11, 3, 22, 5, 7, 1, 6, 3, 20, 17, 22, 15, 11, 25, 7, 16, 2, 14, 8, 14, 18, 21, 4, 19, 14, 21, 11, 21, 13, 16, 17, 17, 22, 25, 17, 17, 22, 4, 14, 4, 1, 22, 22, 4, 8, 21, 4, 22, 25, 2, 14, 17, 22, 17, 9, 21, 4, 12, 4, 16, 25, 11, 16, 7, 15, 12, 13, 4, 1, 12, 20, 22, 4, 14, 15, 14, 22, 12, 19, 9, 2, 20, 21, 7, 22, 18, 7, 10, 12, 15, 19, 14, 20, 22, 11, 16, 17, 9, 2, 11, 8, 9, 6, 22, 22, 9, 20, 15, 14, 5, 19, 17, 14, 0, 6, 11, 12, 15, 17, 20, 15, 18, 22, 1, 2, 4, 1, 4, 20, 16, 17, 22, 20, 8, 8, 17, 5, 10, 14, 16, 20, 16, 14, 15, 18, 5, 16, 20, 22, 14, 17, 4, 16, 3, 9, 16, 21, 15, 13, 2, 18, 22, 13, 5, 17, 3, 6, 3, 14, 14, 6, 2, 21, 18, 4, 16, 19, 2, 20, 7, 11, 14, 7, 7, 13, 3, 14, 20, 1, 2, 19, 14, 8, 13, 11, 9, 4, 12, 9, 4, 17, 14, 25, 14, 17, 0, 18, 25, 1, 16, 19, 14, 4, 17, 4, 15, 18, 14, 18, 4, 25, 5, 17, 19, 10, 4, 10, 22, 16, 22, 9, 17, 6, 2, 13, 13, 1, 20, 16, 14, 12, 16, 2, 7, 1, 13, 4, 14, 19, 15, 19, 17, 22, 8, 15, 14, 7, 22, 8, 14, 11, 4, 11, 5, 11, 18, 4, 13, 3, 2, 25, 9, 14, 7, 20, 20, 14, 20, 18, 14, 5, 4, 4, 6, 3, 6, 2, 4, 10, 6, 9, 25, 17, 25, 4, 2, 3, 14, 12, 8, 3, 20, 18, 9, 7, 20, 11, 7, 14, 3, 25, 22, 17, 9, 14, 5, 3, 7, 4, 14, 14, 5, 10, 25, 17, 9, 11, 7, 11, 12, 22, 14, 20, 2, 17, 22, 14, 14, 17, 1, 14, 22, 14, 9, 0, 13, 20, 20, 3, 21, 14, 22, 18, 14, 14, 12, 20, 17, 7, 14, 7, 10, 7, 12, 12, 10, 3, 25, 15, 19, 20, 22, 21, 18, 21, 17, 25, 7, 2, 20, 4, 22, 10, 17, 8, 22, 4, 7, 10, 7, 14, 4, 14, 13, 11, 13, 25, 15, 22, 17, 16, 11, 20, 6, 17, 19, 4, 25, 17, 15, 6, 9, 4, 18, 14, 4, 22, 4, 22, 18, 2, 5, 3, 15, 17, 21, 25, 5, 14, 3, 0, 4, 14, 7, 17, 21, 21, 22, 8, 4, 17, 14, 7, 11, 15, 3, 6, 21, 6, 4, 2, 4, 14, 17, 22, 5, 2, 2, 5, 22, 8, 2, 20, 5, 9, 22, 4, 6, 12, 4, 20, 19, 10, 1, 12, 5, 11, 2, 12, 7, 4, 3, 14, 2, 25, 22, 22, 4, 20, 22, 22, 10, 22, 7, 9, 13, 22, 19, 9, 12, 14, 19, 2, 2, 22, 17, 4, 2, 25, 20, 22, 7, 10, 11, 4, 14, 20, 9, 25, 7, 7, 5, 9, 4, 4, 3, 22, 17, 14, 15, 25, 5, 25, 12, 17, 12, 12, 6, 15, 5, 4, 18, 20, 14, 14, 15, 7, 13, 4, 22, 22, 20, 2, 12, 18, 18, 22, 14, 16, 25, 10, 22, 14, 19, 10, 22, 10, 17, 9, 14, 2, 15, 15, 7, 17, 1, 25, 21, 9, 11, 13, 11, 16, 4, 4, 17, 15, 2, 13, 13, 9, 17, 21, 8, 21, 9, 3, 11, 18, 11, 18, 7, 15, 22, 14, 20, 1, 20, 25, 4, 9, 5, 18, 25, 4, 4, 17, 10, 18, 22, 20, 21, 18, 5, 8, 25, 5, 9, 20, 13, 6, 17, 17, 17, 5, 3, 14, 20, 15, 11, 5, 14, 17, 4, 22, 6, 3, 4, 17, 14, 9, 21, 21, 5, 8, 9, 25, 7, 17, 13, 25, 25, 19, 17, 5, 18, 4, 14, 14, 22, 12, 2, 14, 13, 19, 16, 21, 11, 14, 9, 9, 11, 1, 25, 19, 17, 3, 2, 8, 17, 17, 1, 22, 22, 8, 14, 14, 25, 16, 17, 22, 14, 9, 11, 1, 8, 17, 14, 3, 22, 9, 2, 16, 4, 9, 17, 12, 7, 4, 1, 22, 5, 9, 10, 11, 15, 7, 22, 10, 11, 10, 12, 22, 4, 14, 21, 22, 4, 16, 13, 20, 12, 2, 14, 17, 17, 9, 14, 14, 22, 17, 6, 14, 14, 17, 4, 9, 22, 21, 8, 10, 9, 8, 7, 22, 11, 2, 19, 3, 22, 1, 14, 7, 5, 25, 17, 7, 1, 22, 22, 21, 4, 4, 11, 18, 14, 20, 18, 3, 18, 5, 6, 25, 2, 6, 22, 17, 4, 15, 17, 22, 17, 1, 3, 14, 6, 10, 11, 1, 21, 6, 13, 1, 21, 25, 14, 6, 22, 18, 18, 18, 16, 14, 9, 22, 3, 15, 17, 17, 2, 15, 1, 13, 20, 14, 6, 7, 17, 20, 22, 4, 3, 6, 15, 14, 11, 4, 2, 17, 22, 4, 6, 17, 4, 25, 17, 12, 3, 8, 4, 18, 8, 14, 1, 6, 9, 13, 22, 22, 11, 15, 25, 6, 14, 2, 20, 17, 21, 5, 2, 17, 22, 22, 22, 15, 16, 15, 2, 16, 16, 22, 4, 14, 22, 4, 18, 15, 20, 1, 15, 17, 18, 7, 13, 9, 8, 5, 10, 14, 22, 14, 8, 22, 14, 2, 20, 17, 8, 21, 15, 14, 14, 16, 12, 20, 15, 17, 4, 17, 4, 17, 2, 10, 22, 22, 22, 8, 14, 17, 4, 3, 0, 16, 15, 17, 17, 15, 16, 14, 4, 14, 2, 17, 13, 11, 20, 17, 20, 7, 6, 17, 15, 11, 4, 20, 4, 5, 3, 1, 1, 8, 19, 25, 14, 21, 10, 10, 10, 25, 1, 12, 4, 13, 18, 4, 18, 9, 5, 2, 1, 14, 18, 17, 4, 16, 9, 6, 22, 5, 22, 17, 8, 25, 5, 2, 17, 19, 18, 18, 14, 1, 4, 4, 16, 10, 20, 18, 14, 18, 14, 4, 7, 13, 5, 5, 20, 11, 22, 13, 1, 20, 4, 19, 3, 13, 8, 25, 18, 4, 14, 17, 17, 5, 15, 1, 20, 4, 15, 0, 21, 11, 1, 22, 16, 20, 16, 18, 3, 20, 2, 22, 0, 1, 2, 25, 5, 1, 1, 20, 20, 14, 19, 2, 4, 17, 2, 22, 19, 7, 25, 14, 4, 25, 9, 20, 25, 4, 4, 4, 13, 4, 13, 0, 2, 17, 4, 19, 2, 13, 4, 1, 1, 14, 10, 9, 12, 17, 19, 22, 5, 10, 14, 0, 6, 20, 9, 22, 1, 22, 13, 17, 4, 14, 18, 22, 4, 4, 2, 17, 20, 5, 14, 20, 22, 4, 3, 4, 7, 11, 11, 16, 18, 18, 18, 20, 14, 22, 17, 11, 4, 2, 18, 12, 22, 22, 11, 4, 22, 22, 13, 14, 17, 2, 3, 14, 1, 5, 6, 21, 9, 18, 10, 6, 25, 14, 22, 2, 20, 21, 2, 13, 1, 4, 9, 14, 22, 17, 22, 2, 22, 17, 11, 8, 12, 22, 22, 17, 2, 15, 14, 1, 19, 22, 17, 14, 20, 14, 0, 22, 8, 18, 22, 22, 4, 11, 12, 17, 2, 7, 2, 19, 22, 16, 22, 9, 14, 15, 15, 17, 1, 1, 25, 14, 17, 14, 15, 20, 13, 22, 17, 14, 4, 14, 3, 12, 4, 17, 22, 25, 17, 12, 17, 20, 13, 5, 22, 4, 2, 22, 5, 14, 15, 18, 19, 6, 5, 25, 5, 22, 1, 5, 1, 3, 5, 8, 5, 4, 22, 12, 15, 12, 11, 2, 14, 2, 8, 14, 22, 9, 3, 20, 4, 4, 6, 19, 25, 14, 20, 14, 0, 11, 18, 2, 10, 18, 1, 22, 9, 7, 2, 14, 9, 15, 13, 22, 4, 2, 6, 15, 20, 14, 22, 13, 11, 11, 6, 2, 8, 14, 9, 22, 15, 25, 16, 15, 17, 22, 14, 4, 22, 18, 3, 4, 20, 14, 9, 14, 10, 2, 2, 22, 12, 22, 11, 17, 22, 7, 22, 4, 11, 11, 11, 15, 2, 3, 18, 4, 22, 13, 2, 2, 14, 20, 9, 14, 14, 19, 2, 9, 2, 5, 6, 22, 2, 8, 15, 12, 22, 4, 19, 21, 19, 4, 18, 3, 15, 6, 9, 10, 10, 18, 15, 7, 17, 21, 15, 16, 20, 19, 5, 22, 4, 21, 15, 17, 14, 18, 25, 7, 21, 2, 4, 14, 1, 18, 14, 4, 3, 3, 22, 8, 21, 3, 15, 1, 22, 25, 4, 14, 11, 12, 14, 12, 19, 6, 12, 22, 15, 18, 25, 2, 5, 25, 14, 5, 21, 17, 3, 16, 11, 25, 22, 25, 18, 25, 8, 9, 20, 20, 14, 17, 14, 11, 2, 25, 10, 2, 20, 22, 8, 3, 22, 9, 3, 5, 20, 18, 11, 14, 7, 17, 7, 9, 5, 3, 18, 18, 2, 18, 17, 22, 2, 7, 17, 20, 18, 15, 12, 0, 1, 12, 12, 19, 4, 6, 8, 22, 19, 18, 2, 20, 1, 11, 1, 6, 12, 8, 21, 25, 18, 20, 18, 5, 2, 14, 17, 8, 6, 13, 15, 25, 16, 7, 4, 19, 4, 21, 7, 9, 20, 12, 22, 2, 8, 17, 21, 12, 22, 21, 21, 12, 12, 11, 4, 16, 22, 22, 13, 25, 20, 2, 14, 14, 22, 21, 14, 14, 1, 7, 13, 22, 19, 15, 22, 14, 22, 3, 11, 19, 4, 0, 18, 15, 4, 8, 6, 7, 17, 17, 3, 2, 9, 3, 16, 18, 15, 7, 14, 9, 3, 14, 7, 6, 18, 17, 8, 22, 19, 14, 5, 7, 0, 22, 3, 9, 22, 19, 12, 8, 5, 14, 2, 4, 12, 15, 8, 15, 18, 6, 4, 2, 4, 17, 20, 10, 4, 2, 25, 14, 18, 18, 7, 10, 11, 10, 20, 22, 22, 17, 25, 4, 21, 4, 15, 22, 5, 22, 5, 16, 5, 9, 14, 22, 16, 12, 19, 2, 6, 17, 17, 25, 25, 15, 25, 11, 25, 14, 3, 18, 18, 3, 19, 3, 17, 16, 17, 14, 22, 25, 14, 11, 25, 22, 5, 14, 6, 7, 17, 9, 22, 4, 2, 5, 13, 22, 13, 22, 11, 1, 22, 14, 19, 10, 17, 0, 14, 25, 16, 12, 14, 1, 9, 4, 18, 14, 11, 22, 9, 4, 17, 4, 10, 18, 2, 20, 21, 5, 1, 9, 6, 2, 15, 4, 16, 18, 6, 16, 7, 7, 17, 4, 5, 18, 17, 2, 10, 9, 13, 2, 14, 15, 6, 22, 14, 8, 17, 10, 6, 16, 14, 18, 2, 11, 10, 2, 17, 2, 11, 8, 10, 16, 7, 10, 14, 7, 14, 18, 5, 8, 4, 22, 11, 18, 1, 19, 14, 3, 7, 17, 7, 14, 11, 8, 6, 14, 2, 1, 7, 11, 10, 14, 16, 22, 5, 22, 18, 22, 15, 21, 22, 6, 7, 9, 20, 22, 17, 1, 20, 11, 7, 4, 17, 17, 12, 20, 22, 11, 2, 1, 18, 12, 14, 21, 14, 7, 11, 18, 14, 14, 20, 0, 4, 7, 12, 19, 1, 18, 15, 5, 22, 7, 0, 4, 22, 10, 12, 5, 16, 22, 18, 22, 22, 14, 3, 17, 21, 21, 14, 9, 4, 15, 20, 18, 20, 11, 22, 22, 14, 12, 3, 7, 13, 17, 21, 10, 2, 14, 12, 21, 1, 22, 22, 11, 20, 2, 12, 12, 14, 12, 6, 14, 11, 6, 11, 17, 17, 25, 7, 12, 18, 17, 14, 7, 9, 16, 15, 3, 6, 17, 18, 12, 1, 3, 11, 7, 7, 4, 8, 21, 12, 18, 15, 12, 3, 20, 1, 13, 10, 2, 12, 1, 15, 1, 22, 2, 14, 22, 21, 8, 18, 19, 17, 22, 22, 17, 22, 15, 3, 18, 22, 2, 1, 11, 22, 20, 8, 22, 21, 18, 20, 11, 12, 2, 15, 7, 14, 2, 4, 15, 1, 16, 19, 13, 11, 20, 20, 17, 2, 15, 5, 22, 22, 22, 15, 12, 5, 17, 12, 1, 17, 22, 14, 8, 21, 1, 15, 12, 21, 14, 15, 10, 14, 20, 17, 18, 22, 13, 22, 21, 21, 25, 8, 5, 17, 10, 3, 22, 15, 25, 17, 14, 9, 12, 14, 2, 14, 8, 22, 14, 9, 2, 4, 25, 15, 15, 7, 14, 13, 2, 18, 4, 22, 5, 14, 18, 14, 12, 8, 3, 6, 15, 22, 17, 2, 2, 14, 13, 17, 5, 6, 13, 19, 18, 14, 2, 5, 22, 22, 14, 20, 16, 4, 14, 2, 11, 14, 14, 7, 14, 9, 0, 10, 17, 12, 25, 4, 22, 18, 22, 22, 17, 2, 19, 18, 11, 7, 2, 14, 17, 14, 9, 15, 22, 11, 18, 9, 0, 18, 2, 21, 11, 12, 13, 3, 9, 14, 5, 11, 20, 14, 8, 5, 17, 6, 9, 19, 2, 22, 18, 20, 9, 16, 18, 20, 17, 17, 15, 14, 14, 16, 12, 4, 20, 14, 13, 16, 18, 2, 14, 22, 17, 22, 15, 15, 7, 9, 1, 13, 19, 4, 25, 3, 2, 11, 3, 14, 1, 17, 10, 22, 12, 11, 9, 4, 12, 9, 5, 14, 14, 20, 19, 4, 1, 5, 6, 7, 15, 10, 11, 9, 12, 1, 18, 16, 7, 22, 8, 16, 20, 4, 18, 1, 20, 0, 10, 3, 20, 14, 5, 22, 7, 17, 22, 25, 15, 17, 14, 4, 4, 12, 14, 21, 12, 7, 11, 14, 17, 18, 1, 4, 2, 25, 4, 7, 4, 11, 15, 25, 20, 4, 3, 12, 13, 4, 14, 18, 20, 1, 15, 17, 6, 3, 4, 7, 5, 12, 9, 14, 14, 19, 7, 19, 2, 14, 10, 13, 22, 12, 6, 5, 14, 5, 17, 13, 16, 14, 2, 20, 22, 15, 7, 14, 9, 18, 13, 14, 3, 15, 22, 4, 0, 17, 25, 19, 20, 1, 11, 1, 5, 12, 17, 15, 16, 25, 7, 16, 17, 22, 4, 14, 3, 17, 14, 22, 22, 10, 20, 14, 8, 4, 15, 22, 2, 13, 4, 6, 18, 17, 22, 14, 18, 8, 25, 14, 17, 6, 19, 3, 22, 8, 1, 2, 1, 1, 1, 2, 8, 14, 22, 16, 16, 4, 22, 14, 2, 16, 18, 22, 22, 9, 13, 11, 22, 15, 9, 4, 4, 11, 19, 11, 5, 25, 10, 14, 12, 14, 8, 7, 14, 20, 14, 17, 12, 10, 22, 13, 18, 5, 5, 25, 11, 11, 14, 11, 22, 7, 17, 4, 9, 18, 1, 16, 5, 10, 13, 11, 8, 2, 13, 5, 18, 9, 19, 22, 18, 19, 13, 5, 17, 25, 15, 25, 22, 4, 22, 3, 13, 22, 11, 19, 22, 2, 12, 9, 12, 4, 18, 22, 1, 6, 2, 2, 17, 6, 13, 3, 11, 14, 3, 6, 22, 4, 0, 20, 25, 20, 8, 15, 9, 1, 15, 15, 12, 15, 17, 14, 4, 14, 13, 12, 14, 20, 18, 9, 7, 25, 14, 22, 1, 10, 4, 22, 22, 2, 19, 22, 1, 14, 17, 15, 7, 14, 25, 4, 9, 22, 9, 18, 18, 14, 18, 13, 22, 19, 10, 22, 12, 9, 5, 13, 3, 12, 22, 17, 14, 14, 17, 22, 12, 2, 20, 0, 22, 17, 14, 25, 14, 22, 16, 21, 3, 6, 12, 6, 17, 22, 10, 17, 14, 9, 17, 12, 7, 10, 15, 2, 25, 7, 11, 18, 14, 11, 5, 14, 16, 25, 18, 10, 5, 2, 19, 4, 11, 17, 25, 11, 20, 22, 1, 10, 4, 10, 12, 22, 12, 22, 17, 17, 4, 14, 15, 21, 7, 11, 18, 12, 18, 4, 14, 5, 14, 9, 3, 17, 2, 7, 14, 17, 7, 14, 22, 22, 8, 4, 3, 4, 17, 7, 22, 9, 5, 14, 20, 3, 10, 8, 15, 2, 14, 15, 8, 17, 22, 12, 13, 17, 2, 14, 12, 8, 17, 1, 18, 14, 15, 14, 16, 3, 11, 22, 10, 8, 22, 25, 19, 3, 10, 22, 2, 7, 16, 2, 19, 25, 7, 16, 19, 17, 8, 22, 4, 17, 20, 4, 17, 4, 19, 10, 13, 18, 14, 22, 7, 1, 17, 25, 17, 22, 21, 22, 16, 14, 22, 17, 4, 18, 17, 4, 25, 9, 4, 18, 4, 4, 22, 14, 12, 22, 4, 22, 15, 19, 22, 4, 19, 19, 12, 20, 20, 18, 6, 9, 1, 14, 17, 22, 11, 6, 4, 11, 22, 20, 17, 22, 2, 4, 11, 17, 12, 4, 3, 14, 17, 21, 11, 22, 14, 19, 17, 16, 1, 9, 17, 15, 14, 2, 17, 11, 14, 8, 17, 3, 11, 4, 14, 12, 15, 18, 20, 6, 22, 22, 17, 4, 14, 20, 15, 19, 5, 1, 14, 18, 4, 10, 17, 14, 21, 21, 11, 15, 13, 2, 22, 22, 15, 4, 5, 12, 9, 22, 12, 22, 14, 14, 14, 2, 7, 21, 22, 22, 22, 21, 6, 14, 10, 17, 1, 25, 17, 4, 6, 21, 12, 4, 2, 9, 4, 15, 25, 9, 22, 21, 14, 12, 14, 2, 8, 11, 4, 16, 18, 3, 18, 18, 18, 17, 22, 22, 17, 11, 10, 0, 18, 11, 4, 6, 6, 14, 25, 15, 9, 2, 14, 19, 25, 8, 17, 11, 4, 17, 8, 3, 14, 14, 3, 25, 4, 17, 5, 7, 15, 2, 1, 16, 7, 5, 17, 5, 2, 15, 6, 12, 9, 19, 14, 14, 12, 7, 25, 22, 17, 1, 10, 14, 6, 18, 14, 4, 19, 22, 14, 22, 6, 14, 4, 22, 4, 20, 14, 14, 15, 3, 22, 21, 19, 20, 9, 22, 13, 22, 1, 12, 2, 18, 2, 12, 22, 6, 22, 7, 6, 13, 15, 16, 4, 4, 12, 10, 21, 2, 17, 15, 25, 4, 11, 7, 11, 5, 20, 22, 1, 7, 22, 14, 25, 2, 17, 2, 8, 16, 4, 12, 2, 11, 25, 9, 21, 17, 6, 5, 12, 3, 4, 7, 7, 12, 14, 25, 16, 11, 14, 9, 13, 4, 18, 22, 20, 12, 4, 7, 1, 18, 12, 25, 7, 22, 4, 4, 22, 17, 25, 13, 8, 16, 20, 7, 4, 17, 14, 22, 12, 21, 3, 7, 25, 7, 21, 12, 20, 0, 20, 7, 18, 14, 14, 12, 6, 2, 12, 14, 20, 8, 4, 11, 19, 4, 18, 17, 18, 12, 25, 17, 22, 16, 17, 0, 14, 22, 2, 22, 16, 5, 4, 14, 14, 22, 25, 22, 16, 9, 2, 20, 20, 17, 22, 16, 14, 6, 8, 22, 2, 3, 18, 1, 3, 3, 4, 22, 11, 16, 15, 14, 17, 11, 14, 17, 4, 8, 4, 14, 21, 13, 18, 25, 15, 5, 7, 22, 10, 15, 13, 10, 21, 9, 22, 19, 3, 11, 22, 1, 20, 18, 13, 25, 14, 11, 9, 2, 14, 17, 14, 13, 14, 2, 4, 17, 13, 14, 22, 14, 19, 21, 15, 14, 12, 14, 12, 3, 14, 6, 4, 7, 1, 12, 25, 5, 1, 4, 4, 13, 18, 4, 17, 22, 17, 1, 9, 17, 5, 22, 14, 17, 17, 9, 22, 12, 0, 14, 5, 1, 9, 8, 17, 17, 14, 17, 2, 4, 14, 5, 12, 22, 21, 15, 22, 25, 4, 4, 14, 17, 7, 16, 1, 20, 10, 16, 22, 17, 17, 11, 9, 4, 17, 7, 10, 11, 22, 11, 4, 6, 11, 15, 20, 22, 22, 16, 14, 8, 14, 13, 22, 2, 22, 14, 4, 4, 15, 12, 22, 14, 25, 4, 8, 21, 2, 15, 7, 25, 20, 12, 7, 4, 20, 19, 8, 13, 20, 1, 12, 4, 6, 7, 25, 14, 4, 4, 22, 5, 22, 8, 14, 22, 22, 12, 4, 17, 2, 5, 16, 22, 22, 11, 14, 16, 6, 18, 5, 18, 20, 20, 13, 19, 6, 5, 9, 25, 17, 10, 6, 9, 17, 15, 8, 25, 4, 22, 14, 3, 9, 8, 18, 20, 11, 6, 4, 6, 14, 18, 14, 10, 18, 15, 8, 20, 4, 14, 25, 18, 14, 2, 6, 20, 0, 21, 9, 2, 10, 16, 11, 14, 16, 2, 10, 14, 25, 8, 18, 14, 16, 4, 6, 15, 22, 5, 11, 5, 15, 19, 4, 17, 22, 20, 13, 13, 7, 10, 12, 11, 22, 13, 7, 15, 13, 6, 13, 7, 16, 19, 19, 5, 18, 14, 15, 15, 17, 13, 8, 7, 13, 14, 10, 6, 4, 11, 9, 1, 1, 13, 4, 22, 22, 16, 17, 11, 14, 22, 11, 4, 9, 13, 22, 22, 12, 25, 17, 12, 14, 12, 22, 11, 13, 2, 4, 20, 15, 18, 22, 16, 13, 20, 5, 22, 17, 5, 7, 11, 17, 18, 8, 22, 7, 15, 20, 9, 7, 14, 14, 2, 22, 14, 18, 21, 9, 14, 9, 19, 14, 18, 4, 14, 1, 4, 25, 18, 4, 8, 1, 21, 13, 19, 12, 5, 11, 1, 2, 17, 17, 22, 12, 22, 2, 9, 14, 11, 6, 12, 14, 13, 22, 17, 22, 10, 22, 18, 11, 11, 25, 22, 4, 9, 25, 22, 22, 17, 21, 17, 14, 15, 12, 8, 10, 25, 14, 6, 8, 4, 22, 22, 25, 3, 10, 19, 15, 12, 11, 8, 16, 14, 6, 1, 6, 2, 17, 22, 21, 10, 22, 7, 19, 12, 15, 18, 15, 7, 9, 14, 14, 2, 11, 18, 17, 10, 17, 4, 16, 16, 7, 7, 22, 1, 22, 4, 20, 4, 4, 18, 11, 22, 17, 17, 11, 13, 5, 22, 14, 17, 18, 14, 3, 16, 9, 2, 22, 22, 21, 4, 17, 22, 2, 17, 14, 7, 4, 21, 8, 5, 16, 17, 8, 4, 7, 14, 11, 19, 4, 22, 12, 20, 22, 14, 10, 4, 20, 14, 20, 1, 25, 21, 13, 3, 6, 4, 8, 20, 13, 13, 17, 14, 22, 15, 15, 2, 4, 10, 25, 18, 3, 22, 10, 2, 14, 14, 2, 2, 6, 20, 14, 12, 1, 20, 6, 14, 2, 12, 4, 7, 16, 5, 10, 14, 11, 3, 25, 21, 15, 25, 13, 11, 11, 16, 20, 16, 19, 3, 20, 15, 9, 2, 14, 5, 11, 12, 17, 1, 5, 25, 17, 12, 14, 18, 15, 4, 16, 10, 13, 3, 14, 8, 6, 19, 13, 4, 22, 13, 12, 17, 0, 11, 17, 17, 15, 1, 17, 17, 22, 15, 13, 25, 4, 17, 4, 14, 14, 9, 10, 14, 4, 20, 25, 4, 21, 5, 13, 25, 11, 3, 8, 20, 25, 11, 10, 7, 4, 17, 19, 0, 12, 14, 19, 17, 15, 7, 25, 4, 4, 6, 11, 22, 4, 18, 21, 6, 5, 4, 14, 7, 4, 9, 3, 17, 15, 18, 9, 4, 21, 8, 14, 14, 2, 22, 15, 2, 17, 17, 15, 8, 14, 1, 21, 15, 8, 7, 5, 11, 20, 9, 15, 8, 22, 13, 12, 17, 25, 2, 14, 7, 14, 11, 25, 4, 7, 17, 20, 20, 4, 18, 22, 15, 21, 25, 10, 17, 14, 17, 20, 15, 25, 20, 6, 17, 25, 4, 12, 12, 21, 18, 4, 22, 22, 17, 5, 10, 2, 1, 25, 4, 2, 4, 14, 13, 16, 9, 15, 2, 10, 22, 18, 11, 14, 8, 19, 13, 2, 7, 18, 15, 9, 4, 4, 20, 7, 17, 4, 19, 6, 8, 20, 9, 14, 17, 4, 21, 4, 17, 4, 22, 7, 20, 2, 14, 6, 9, 14, 18, 14, 1, 10, 0, 4, 14, 22, 11, 8, 20, 22, 6, 5, 4, 17, 11, 2, 22, 20, 8, 5, 3, 22, 3, 2, 22, 10, 14, 12, 17, 16, 2, 20, 17, 9, 22, 11, 11, 21, 6, 20, 11, 2, 8, 13, 22, 20, 14, 19, 8, 9, 18, 6, 4, 13, 1, 14, 12, 16, 8, 11, 17, 0, 4, 20, 25, 7, 22, 10, 4, 10, 2, 14, 17, 5, 17, 9, 15, 12, 9, 1, 9, 18, 9, 1, 20, 6, 1, 14, 16, 2, 22, 22, 10, 7, 21, 14, 2, 2, 12, 16, 14, 18, 5, 13, 17, 12, 22, 11, 22, 12, 14, 11, 2, 8, 14, 8, 25, 4, 3, 21, 11, 11, 7, 2, 3, 15, 4, 9, 4, 18, 21, 18, 0, 7, 22, 20, 18, 3, 4, 2, 9, 4, 7, 22, 17, 9, 14, 7, 17, 25, 3, 7, 15, 1, 11, 16, 12, 14, 8, 14, 22, 16, 12, 25, 7, 5, 15, 18, 18, 17, 7, 14, 17, 4, 12, 5, 7, 20, 4, 22, 4, 17, 22, 2, 19, 6, 10, 15, 19, 5, 7, 3, 14, 15, 22, 19, 8, 12, 7, 14, 17, 19, 4, 15, 20, 7, 13, 2, 25, 14, 1, 5, 18, 4, 22, 19, 6, 10, 18, 6, 19, 25, 5, 3, 3, 2, 22, 3, 25, 17, 14, 10, 11, 20, 16, 22, 25, 20, 11, 18, 21, 15, 7, 2, 25, 16, 13, 6, 15, 6, 1, 3, 22, 6, 3, 22, 18, 8, 16, 1, 19, 14, 16, 15, 20, 4, 18, 14, 6, 4, 22, 1, 13, 4, 19, 18, 5, 2, 16, 3, 22, 15, 14, 18, 11, 5, 8, 21, 3, 11, 14, 15, 7, 1, 18, 10, 13, 1, 18, 17, 13, 17, 17, 7, 12, 4, 14, 0, 22, 17, 18, 8, 18, 8, 22, 18, 16, 22, 14, 14, 22, 9, 17, 1, 17, 25, 7, 22, 5, 6, 17, 14, 15, 22, 13, 22, 22, 4, 10, 22, 14, 17, 22, 17, 14, 3, 14, 6, 22, 12, 6, 7, 2, 25, 2, 4, 15, 22, 18, 4, 8, 20, 17, 4, 22, 22, 22, 11, 17, 22, 14, 6, 2, 17, 18, 22, 6, 15, 11, 15, 3, 4, 16, 15, 17, 6, 18, 14, 11, 3, 10, 18, 15, 25, 19, 21, 12, 25, 11, 4, 9, 17, 5, 11, 9, 25, 22, 22, 17, 1, 6, 12, 21, 20, 17, 18, 4, 11, 10, 22, 8, 2, 2, 2, 2, 2, 19, 22, 17, 22, 20, 17, 20, 8, 7, 15, 5, 13, 9, 2, 1, 20, 18, 20, 8, 12, 2, 4, 12, 12, 16, 11, 18, 10, 12, 20, 20, 12, 7, 15, 14, 2, 14, 14, 6, 1, 12, 25, 11, 7, 18, 13, 22, 17, 1, 17, 10, 20, 16, 17, 4, 8, 20, 22, 3, 17, 14, 13, 2, 22, 20, 10, 9, 7, 17, 22, 25, 8, 25, 19, 12, 14, 25, 4, 8, 4, 8, 7, 14, 16, 18, 6, 17, 22, 13, 21, 25, 19, 15, 12, 18, 7, 17, 13, 19, 7, 18, 17, 14, 9, 21, 14, 14, 13, 14, 16, 4, 22, 21, 15, 11, 14, 22, 6, 3, 7, 4, 18, 4, 22, 14, 2, 25, 22, 3, 4, 16, 10, 18, 3, 12, 12, 4, 22, 1, 7, 14, 11, 8, 7, 8, 11, 13, 22, 17, 17, 15, 4, 25, 12, 7, 9, 11, 13, 6, 25, 22, 17, 17, 2, 0, 11, 19, 5, 16, 22, 22, 8, 1, 11, 1, 5, 25, 16, 25, 21, 10, 16, 7, 17, 14, 11, 13, 6, 20, 16, 4, 20, 0, 4, 19, 17, 6, 14, 15, 19, 22, 18, 8, 17, 21, 16, 25, 4, 19, 25, 6, 14, 5, 20, 22, 18, 11, 3, 2, 1, 18, 17, 22, 10, 25, 7, 21, 22, 22, 4, 4, 10, 22, 22, 4, 12, 22, 8, 5, 1, 25, 16, 10, 18, 5, 22, 3, 17, 12, 18, 9, 7, 22, 12, 20, 0, 7, 13, 19, 3, 15, 1, 17, 3, 4, 5, 25, 11, 21, 2, 11, 14, 1, 22, 20, 22, 8, 14, 22, 4, 19, 15, 22, 21, 14, 25, 22, 11, 22, 4, 17, 10, 5, 10, 8, 4, 18, 5, 18, 4, 25, 11, 16, 4, 4, 18, 16, 25, 1, 18, 2, 1, 9, 22, 19, 14, 22, 22, 17, 14, 5, 18, 20, 6, 12, 6, 10, 14, 17, 17, 9, 6, 20, 8, 16, 3, 5, 18, 15, 15, 7, 5, 5, 17, 21, 12, 3, 6, 17, 19, 21, 14, 18, 6, 14, 4, 2, 12, 19, 1, 20, 12, 8, 4, 10, 14, 4, 4, 25, 15, 20, 6, 18, 4, 11, 14, 11, 22, 2, 3, 17, 12, 22, 17, 12, 17, 16, 5, 22, 6, 2, 18, 12, 12, 22, 11, 25, 12, 1, 25, 14, 4, 21, 6, 12, 22, 22, 22, 1, 22, 20, 7, 15, 17, 22, 13, 2, 7, 12, 12, 9, 2, 22, 13, 3, 14, 15, 16, 6, 7, 22, 7, 14, 15, 13, 25, 3, 10, 14, 8, 20, 1, 20, 22, 8, 3, 17, 15, 9, 9, 3, 15, 17, 18, 4, 13, 17, 18, 8, 6, 17, 18, 17, 13, 17, 1, 5, 20, 22, 6, 17, 13, 8, 5, 17, 10, 17, 7, 22, 5, 9, 12, 14, 22, 12, 12, 12, 25, 15, 18, 5, 25, 17, 2, 15, 9, 17, 1, 11, 22, 17, 6, 17, 4, 25, 2, 4, 20, 12, 21, 15, 6, 18, 14, 18, 3, 20, 17, 11, 15, 3, 14, 1, 20, 2, 4, 12, 7, 25, 6, 10, 2, 11, 8, 5, 12, 18, 4, 15, 11, 17, 15, 18, 17, 22, 14, 17, 25, 16, 16, 14, 14, 18, 3, 2, 13, 4, 8, 6, 16, 14, 13, 4, 15, 22, 22, 8, 11, 22, 12, 25, 17, 4, 7, 22, 9, 10, 10, 19, 2, 4, 12, 18, 15, 9, 15, 11, 17, 19, 9, 6, 8, 2, 22, 2, 2, 0, 20, 15, 11, 18, 14, 3, 14, 13, 17, 18, 20, 2, 18, 6, 12, 21, 14, 2, 25, 6, 1, 15, 17, 22, 7, 19, 13, 3, 11, 1, 7, 8, 6, 17, 6, 10, 13, 11, 14, 18, 19, 3, 5, 1, 14, 16, 22, 17, 14, 12, 5, 14, 22, 4, 17, 22, 9, 5, 22, 22, 13, 17, 21, 25, 6, 25, 2, 21, 14, 14, 12, 4, 5, 22, 8, 16, 7, 21, 4, 15, 4, 6, 22, 15, 20, 6, 19, 18, 25, 1, 1, 15, 3, 1, 17, 25, 12, 13, 18, 2, 22, 10, 7, 4, 1, 12, 11, 15, 14, 2, 4, 5, 18, 12, 14, 2, 12, 3, 5, 6, 22, 14, 7, 19, 19, 7, 14, 22, 5, 4, 2, 4, 14, 16, 22, 18, 22, 16, 7, 25, 25, 21, 2, 9, 17, 6, 17, 14, 14, 14, 4, 17, 11, 21, 22, 12, 18, 14, 16, 16, 14, 14, 4, 20, 14, 17, 9, 14, 12, 4, 16, 18, 18, 17, 17, 11, 10, 5, 16, 14, 14, 22, 22, 5, 22, 8, 17, 14, 7, 15, 12, 4, 9, 3, 25, 25, 13, 20, 15, 17, 22, 15, 20, 22, 9, 22, 21, 15, 22, 2, 14, 18, 15, 7, 14, 14, 22, 6, 7, 2, 17, 10, 7, 4, 20, 25, 0, 9, 6, 17, 8, 15, 4, 2, 17, 4, 12, 13, 18, 13, 8, 22, 3, 12, 6, 15, 2, 14, 17, 2, 16, 14, 12, 2, 3, 19, 17, 22, 19, 5, 15, 14, 3, 9, 6, 14, 14, 19, 6, 14, 0, 7, 17, 21, 6, 14, 18, 18, 5, 2, 12, 13, 5, 2, 22, 19, 11, 6, 14, 17, 1, 22, 25, 12, 15, 20, 6, 18, 8, 22, 22, 18, 13, 10, 22, 22, 9, 15, 7, 4, 10, 18, 17, 22, 16, 18, 20, 1, 4, 22, 9, 17, 14, 19, 22, 14, 2, 15, 19, 5, 2, 10, 12, 4, 12, 22, 13, 17, 4, 14, 16, 0, 10, 12, 17, 2, 22, 6, 22, 20, 18, 4, 1, 2, 14, 22, 11, 21, 10, 18, 19, 14, 15, 5, 22, 7, 21, 20, 2, 20, 25, 17, 22, 20, 14, 25, 18, 14, 4, 14, 18, 4, 2, 22, 17, 15, 22, 22, 2, 22, 25, 20, 10, 4, 14, 14, 14, 15, 2, 16, 25, 1, 4, 2, 4, 25, 12, 20, 16, 14, 6, 16, 22, 14, 17, 22, 17, 12, 25, 18, 22, 21, 14, 15, 4, 2, 8, 10, 2, 20, 15, 4, 6, 1, 1, 13, 9, 22, 8, 14, 21, 7, 4, 14, 22, 18, 1, 18, 14, 1, 21, 14, 11, 14, 12, 22, 22, 3, 18, 12, 19, 19, 3, 7, 17, 20, 14, 7, 16, 16, 8, 12, 4, 16, 22, 4, 19, 15, 9, 25, 3, 14, 17, 22, 18, 16, 11, 2, 19, 18, 17, 4, 21, 15, 9, 8, 14, 16, 10, 15, 16, 12, 10, 1, 16, 22, 8, 10, 4, 7, 7, 10, 14, 7, 11, 2, 11, 11, 15, 17, 20, 25, 17, 7, 17, 22, 10, 9, 19, 8, 9, 17, 20, 3, 3, 14, 7, 6, 2, 7, 10, 11, 4, 7, 16, 21, 3, 17, 16, 14, 11, 11, 22, 4, 2, 22, 13, 2, 4, 16, 3, 13, 12, 11, 14, 5, 10, 3, 16, 14, 2, 13, 17, 17, 12, 16, 17, 18, 11, 5, 4, 12, 11, 22, 21, 14, 22, 20, 22, 17, 16, 7, 20, 17, 7, 2, 20, 7, 4, 15, 17, 11, 1, 15, 18, 20, 1, 20, 2, 17, 9, 13, 18, 22, 20, 3, 16, 22, 18, 14, 14, 20, 16, 17, 15, 15, 19, 19, 22, 5, 16, 14, 11, 15, 16, 25, 1, 4, 2, 16, 14, 1, 18, 14, 15, 22, 4, 8, 22, 22, 12, 8, 11, 9, 14, 5, 19, 19, 18, 14, 11, 14, 6, 14, 14, 4, 22, 21, 16, 4, 6, 11, 20, 17, 16, 19, 7, 4, 16, 22, 14, 17, 5, 10, 25, 16, 11, 22] diff --git a/static/favicon.ico b/static/favicon.ico Binary files differnew file mode 100644 index 0000000..efb711c --- /dev/null +++ b/static/favicon.ico diff --git a/static/manifest.js b/static/manifest.js new file mode 100644 index 0000000..d7d350c --- /dev/null +++ b/static/manifest.js @@ -0,0 +1,2 @@ +var manifest = {"dataset":"huggan/wikiart","config":"default","split":"train","features":[{"feature_idx":0,"name":"image","type":{"_type":"Image"}},{"feature_idx":1,"name":"artist","type":{"names":["Unknown Artist","boris-kustodiev","camille-pissarro","childe-hassam","claude-monet","edgar-degas","eugene-boudin","gustave-dore","ilya-repin","ivan-aivazovsky","ivan-shishkin","john-singer-sargent","marc-chagall","martiros-saryan","nicholas-roerich","pablo-picasso","paul-cezanne","pierre-auguste-renoir","pyotr-konchalovsky","raphael-kirchner","rembrandt","salvador-dali","vincent-van-gogh","hieronymus-bosch","leonardo-da-vinci","albrecht-durer","edouard-cortes","sam-francis","juan-gris","lucas-cranach-the-elder","paul-gauguin","konstantin-makovsky","egon-schiele","thomas-eakins","gustave-moreau","francisco-goya","edvard-munch","henri-matisse","fra-angelico","maxime-maufra","jan-matejko","mstislav-dobuzhinsky","alfred-sisley","mary-cassatt","gustave-loiseau","fernando-botero","zinaida-serebriakova","georges-seurat","isaac-levitan","joaquãÂn-sorolla","jacek-malczewski","berthe-morisot","andy-warhol","arkhip-kuindzhi","niko-pirosmani","james-tissot","vasily-polenov","valentin-serov","pietro-perugino","pierre-bonnard","ferdinand-hodler","bartolome-esteban-murillo","giovanni-boldini","henri-martin","gustav-klimt","vasily-perov","odilon-redon","tintoretto","gene-davis","raphael","john-henry-twachtman","henri-de-toulouse-lautrec","antoine-blanchard","david-burliuk","camille-corot","konstantin-korovin","ivan-bilibin","titian","maurice-prendergast","edouard-manet","peter-paul-rubens","aubrey-beardsley","paolo-veronese","joshua-reynolds","kuzma-petrov-vodkin","gustave-caillebotte","lucian-freud","michelangelo","dante-gabriel-rossetti","felix-vallotton","nikolay-bogdanov-belsky","georges-braque","vasily-surikov","fernand-leger","konstantin-somov","katsushika-hokusai","sir-lawrence-alma-tadema","vasily-vereshchagin","ernst-ludwig-kirchner","mikhail-vrubel","orest-kiprensky","william-merritt-chase","aleksey-savrasov","hans-memling","amedeo-modigliani","ivan-kramskoy","utagawa-kuniyoshi","gustave-courbet","william-turner","theo-van-rysselberghe","joseph-wright","edward-burne-jones","koloman-moser","viktor-vasnetsov","anthony-van-dyck","raoul-dufy","frans-hals","hans-holbein-the-younger","ilya-mashkov","henri-fantin-latour","m.c.-escher","el-greco","mikalojus-ciurlionis","james-mcneill-whistler","karl-bryullov","jacob-jordaens","thomas-gainsborough","eugene-delacroix","canaletto"],"_type":"ClassLabel"}},{"feature_idx":2,"name":"genre","type":{"names":["abstract_painting","cityscape","genre_painting","illustration","landscape","nude_painting","portrait","religious_painting","sketch_and_study","still_life","Unknown Genre"],"_type":"ClassLabel"}},{"feature_idx":3,"name":"style","type":{"names":["Abstract_Expressionism","Action_painting","Analytical_Cubism","Art_Nouveau","Baroque","Color_Field_Painting","Contemporary_Realism","Cubism","Early_Renaissance","Expressionism","Fauvism","High_Renaissance","Impressionism","Mannerism_Late_Renaissance","Minimalism","Naive_Art_Primitivism","New_Realism","Northern_Renaissance","Pointillism","Pop_Art","Post_Impressionism","Realism","Rococo","Romanticism","Symbolism","Synthetic_Cubism","Ukiyo_e"],"_type":"ClassLabel"}}],"truncated":true} + diff --git a/static/script.js b/static/script.js new file mode 100644 index 0000000..4dfd3c6 --- /dev/null +++ b/static/script.js @@ -0,0 +1,272 @@ +"use strict"; + +var questionState = new Map(); +var globalLevel; +var globalId; + +function randomId() { + return works[randomInt(0, works.length-1)]; +} + +var queryTypes = [ + { + modes: new Set(["novice", "intermediate", "expert"]), + type: "hue", + inputType: "range", + generateInputAttrs: function(attrs) { + return new Map([["min", "0"], ["max", "359"], ["value", "180"]]); + }, + changeEvents: ["input"], + calculateScore: function(attrs) { + var hue = attrs.get("hue"); + return Math.min(360 - hue, hue); + }, + imgAttrsModifier: function(evt) { + var imgAttrs = questionState.get(globalId); + var hueRandomness = imgAttrs.get("hueRandomness"); + var newHue = Number(evt.target.value); + imgAttrs.set("hue", mod(newHue + (hueRandomness - 180), 360)); + redraw(); + }, + filterStyleString: function(attrs) { + return 'hue-rotate(' + attrs.get("hue") + 'deg)' + }, + generateDefaultAttrs: function() { + var r = randomInt(0, 359); + return new Map([["hueRandomness", r], ["hue", r]]); + }, + generateInputId: function(id) { + return `hue-input-${id}`; + } + }, + { + modes: new Set(["intermediate", "expert"]), + type: "contrast", + inputType: "range", + generateInputAttrs: function(attrs) { + return new Map([["min", attrs.get("contrastLowerBound")], ["max", attrs.get("contrastUpperBound")], ["value", attrs.get("contrast")]]); + }, + changeEvents: ["input"], + calculateScore: function(attrs) { + var contrast = attrs.get("contrast"); + return abs(100 - contrast); + }, + imgAttrsModifier: function(evt) { + var imgAttrs = questionState.get(globalId); + imgAttrs.set("contrast", Number(evt.target.value)); + redraw(); + }, + filterStyleString: function(attrs) { + return 'contrast(' + attrs.get("contrast") + '%)' + }, + generateDefaultAttrs: function() { + var r = randomInt(50, 100); + var mid = r + 50; + var lowerBound = r; + var upperBound = r + 100; + return new Map([["contrast", mid], ["contrastLowerBound", lowerBound], ["contrastUpperBound", upperBound]]); + }, + generateInputId: function(id) { + return `contrast-input-${id}`; + } + }, + { + modes: new Set(["expert"]), + type: "saturation", + inputType: "range", + generateInputAttrs: function(attrs) { + return new Map([["min", attrs.get("saturationLowerBound")], ["max", attrs.get("saturationUpperBound")], ["value", attrs.get("saturation")]]); + }, + changeEvents: ["input"], + calculateScore: function(attrs) { + var saturation = attrs.get("saturation"); + return abs(100 - saturation); + }, + imgAttrsModifier: function(evt) { + var imgAttrs = questionState.get(globalId); + imgAttrs.set("saturation", Number(evt.target.value)); + redraw(); + }, + filterStyleString: function(attrs) { + return 'saturate(' + attrs.get("saturation") + '%)' + }, + generateDefaultAttrs: function() { + var r = randomInt(50, 100); + var mid = r + 50; + var lowerBound = r; + var upperBound = r + 100; + return new Map([["saturation", mid], ["saturationLowerBound", lowerBound], ["saturationUpperBound", upperBound]]); + }, + generateInputId: function(id) { + return `saturation-input-${id}`; + } + } +]; + +function load() { + var urlParams = new URLSearchParams(window.location.search); + var id = urlParams.get('id') + var level = urlParams.get('level') + + if (!id) { + id = randomId(); + level = "novice"; + } + + startGame(id, level); +} + +function renderArtist(s) { + return s.split('-').map(capitalize).join(' '); +} + +function getArtist(id) { + var info = artists[id] + var artist = manifest.features[1].type.names[info] + return renderArtist(artist); +} + +function startGame(id, level) { + document.getElementById('answer').innerHTML = ''; + document.getElementById('scoring').innerHTML = ''; + document.getElementById('sliders').innerHTML = ''; + document.getElementById('question').innerHTML = ''; + globalId = id; + globalLevel = level; + addQuestion(id, level); + finalizeQuestion(id, level); + redraw(); + document.getElementById('copy').addEventListener('click', function() { + navigator.clipboard.writeText(`${location.origin}/countervisual?id=${id}&level=${level}`) + }); +} + +function redraw() { + var el = document.getElementById('img'); + var styleString = '' + for (var queryType of queryTypes) { + if (queryType.modes.has(globalLevel)) { + var attrs = questionState.get(globalId); + styleString += ` ${queryType.filterStyleString(attrs)} ` + } + } + el.setAttribute("style", 'filter: ' + styleString); +} + +function addQuestion(id, level) { + var attrs = new Map(); + for (var queryType of queryTypes) { + if (queryType.modes.has(level)) { + attrs = new Map([...attrs, ...queryType.generateDefaultAttrs()]); + } + } + + document.getElementById('question').innerHTML = `<figcaption>Countervisual #${id}</figcaption>` + generateImgDom(id, "img"); + document.getElementById('sliders').innerHTML = generateAttrDOM(id, level, attrs) + questionState.set(id, attrs); +} + +function getImgUrl(id) { + return `/countervisual/static/data/${id}.jpg` +} + +function generateImgDom(id, htmlId) { + return `<img id="${htmlId}" src="${getImgUrl(id)}"></img>` +} + +function finalizeQuestion(id, level) { + for (var queryType of queryTypes) { + var inputId = queryType.generateInputId(id); + var input = document.getElementById(inputId); + if (queryType.modes.has(level)) { + for (var changeEvent of queryType.changeEvents) { + input.addEventListener(changeEvent, queryType.imgAttrsModifier); + } + } + } +} + +function generateAttrDOM(id, level, attrs) { + var dom = ``; + for (var queryType of queryTypes) { + if (queryType.modes.has(level)) { + var attrString = generateAttrString(queryType.generateInputAttrs(attrs)); + dom += `<label>${queryType.type}</label><br> + <input id="${queryType.generateInputId(id)}" style="width: 45%" type="${queryType.inputType}" ${attrString}> + <br>`; + } + } + dom += `</div>`; + return dom; +} + +document.onload = load(); + +document.getElementById('score-game').addEventListener('click', function(evt) { + var s = score(); + var imageUrl = location.protocol + '//' + location.host + location.pathname + getImgUrl(globalId) + var lensUrl = `https://www.google.com/searchbyimage?image_url=${imageUrl}&client=app` + document.getElementById('scoring').innerHTML = `<p>You were ${s} points away from zero.</p> + <p>This work is by <a target="_blank" href="${lensUrl}">${getArtist(globalId)}</a>.</p>` + document.getElementById('answer').innerHTML = `<figcaption>Solution</figcaption>` + generateImgDom(globalId, "ans"); + evt.preventDefault(); +}) + +document.getElementById('reset').addEventListener('click', function(evt) { + startGame(globalId, globalLevel); +}); + +document.getElementById('random-novice').addEventListener('click', function(evt) { + startGame(randomId(), "novice"); +}); + +document.getElementById('random-intermediate').addEventListener('click', function(evt) { + startGame(randomId(), "intermediate"); +}); + +document.getElementById('random-expert').addEventListener('click', function(evt) { + startGame(randomId(), "expert"); +}); + +function generateAttrString(attrs) { + var attrString = ""; + for (var [attr, val] of attrs) { + attrString += ` ${attr}=${val}` + } + return attrString; +} + +// Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random +function randomInt(min, max) { + var min = Math.ceil(min); + var max = Math.floor(max); + return Math.floor(Math.random() * (max - min + 1)) + min; +} + +function score() { + var total = 0; + for (var queryType of queryTypes) { + if (queryType.modes.has(globalLevel)) { + total += queryType.calculateScore(questionState.get(globalId)); + } + } + return total; +} + +function mod(p, n) { + var z = (p % n); + if (z >= 0) { + return z; + } else { + return z + n; + } +} + +function abs(a) { + return Math.max(a, -a); +} + +function capitalize(s) { + return s.substr(0,1).toUpperCase() + s.substr(1); +} + diff --git a/static/styles.css b/static/styles.css new file mode 100644 index 0000000..d38aa7e --- /dev/null +++ b/static/styles.css @@ -0,0 +1,40 @@ +label { + font-family: Cantarell; + font-weight: bold; + font-size: small; +} + +#gameboard { + text-align: center; +} + +figcaption { + font-size: small; + font-weight: bold; + margin-bottom: .5em; + text-align: left; +} + + +.wrapper { + text-align: left; + overflow: auto; + overflow-y; hidden; + white-space: nowrap; + padding-top: 10px; +} + +img { + display: inline-block; + max-height: 500px; + max-width: 100%; +} + +figure { + vertical-align: top; + margin: 0; + padding: 10px; + display: inline-block; + max-width: 80%; +} + diff --git a/static/works.js b/static/works.js new file mode 100644 index 0000000..18ef9ab --- /dev/null +++ b/static/works.js @@ -0,0 +1,2 @@ +var works = [0,2,3,4,5,6,9,10,11,12,13,14,15,21,22,24,25,26,27,29,30,32,34,35,36,37,38,40,43,44,45,47,49,50,51,53,54,55,56,57,58,59,64,65,67,68,69,71,73,74,75,76,77,78,79,80,81,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,101,102,104,106,107,108,109,110,111,113,114,115,116,117,119,120,122,124,126,129,131,132,134,135,136,137,138,141,143,144,145,148,149,150,151,152,153,155,156,157,158,159,160,161,162,163,165,169,171,172,173,174,175,176,177,178,182,183,184,185,186,187,188,189,190,191,194,195,198,199,201,202,203,208,210,211,212,213,216,219,220,221,223,225,226,227,228,229,230,231,234,235,237,238,239,241,242,243,246,247,248,252,253,254,255,257,259,260,261,262,264,265,266,267,269,270,273,275,276,277,279,281,282,283,284,285,286,287,288,289,290,291,293,294,295,296,297,298,302,303,304,305,307,309,311,312,313,315,318,320,321,327,328,330,331,332,333,334,335,338,341,342,343,344,345,346,347,349,350,351,352,353,354,357,358,360,361,364,367,368,370,371,372,373,374,375,380,381,382,383,384,385,386,387,389,390,391,392,393,395,396,397,399,400,401,402,403,404,406,408,409,410,411,413,416,418,419,421,422,423,424,427,428,429,430,431,432,434,436,437,440,441,442,444,446,447,448,449,450,451,452,455,456,458,459,460,465,467,471,472,473,474,477,478,480,481,483,485,486,489,490,492,493,495,496,498,499,500,502,503,504,505,506,507,508,509,510,512,513,514,515,516,517,518,519,521,522,524,526,527,528,530,531,532,533,534,535,536,537,538,539,540,541,542,543,545,548,549,552,553,554,555,556,557,558,559,560,561,565,567,568,569,570,571,572,575,577,578,579,581,583,584,585,586,587,588,589,590,592,593,594,595,596,599,600,601,602,603,606,607,608,611,612,613,614,616,617,618,620,621,622,623,624,625,626,629,631,632,634,635,636,637,638,640,643,644,645,646,647,649,650,654,655,656,659,661,662,663,664,665,666,667,668,669,672,674,676,677,679,681,682,683,684,685,686,688,689,690,691,692,693,694,696,697,698,700,701,702,703,704,705,706,707,708,710,712,713,714,716,718,719,720,721,722,724,729,730,732,733,735,736,738,739,740,741,744,745,747,748,751,752,753,754,755,756,758,759,762,764,765,766,768,769,770,773,774,778,779,781,782,783,784,785,786,787,789,792,793,794,795,797,798,799,800,802,805,806,807,808,809,810,811,812,814,815,816,817,818,819,820,821,822,823,824,825,826,827,830,831,832,834,835,837,839,840,841,842,843,844,845,849,850,851,853,854,856,858,859,860,861,862,864,865,867,868,872,873,874,875,879,880,881,882,883,884,885,886,887,888,890,891,892,893,894,895,896,897,898,899,900,902,903,904,905,907,908,910,912,914,916,917,919,920,921,922,923,924,925,926,928,929,930,932,934,935,936,937,938,939,940,941,942,943,944,946,947,949,952,955,956,957,959,960,961,962,963,964,966,968,969,970,972,973,974,975,976,978,980,981,982,983,986,987,990,991,992,993,996,997,998,999,1000,1001,1002,1003,1004,1005,1007,1008,1009,1010,1011,1012,1013,1014,1017,1018,1020,1022,1023,1024,1025,1026,1027,1028,1029,1033,1034,1035,1037,1038,1039,1040,1041,1042,1044,1045,1046,1047,1049,1050,1051,1052,1054,1055,1056,1057,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1074,1075,1076,1077,1078,1079,1081,1082,1084,1086,1087,1088,1089,1090,1091,1097,1098,1100,1101,1102,1104,1106,1107,1108,1109,1110,1111,1112,1114,1115,1116,1119,1121,1122,1123,1124,1125,1126,1127,1128,1129,1131,1132,1133,1134,1135,1136,1138,1139,1140,1142,1144,1145,1146,1148,1149,1150,1152,1153,1156,1157,1158,1159,1160,1161,1162,1163,1164,1166,1167,1169,1171,1173,1174,1176,1177,1180,1181,1182,1184,1186,1187,1189,1190,1191,1192,1193,1194,1195,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1208,1210,1212,1213,1214,1215,1217,1218,1221,1222,1224,1225,1226,1227,1228,1231,1232,1233,1235,1236,1237,1238,1239,1240,1241,1243,1244,1245,1246,1247,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1261,1262,1263,1265,1267,1268,1270,1271,1272,1273,1274,1276,1278,1280,1282,1283,1284,1285,1286,1287,1288,1289,1291,1292,1293,1295,1296,1297,1298,1301,1302,1303,1304,1306,1307,1308,1310,1314,1315,1316,1317,1318,1319,1321,1323,1324,1326,1328,1332,1333,1334,1335,1340,1341,1342,1343,1345,1346,1347,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1362,1363,1364,1366,1367,1370,1371,1372,1373,1375,1376,1377,1378,1379,1380,1381,1382,1384,1385,1386,1387,1388,1389,1390,1391,1393,1394,1395,1396,1399,1400,1401,1402,1403,1405,1406,1407,1408,1409,1410,1412,1413,1414,1415,1416,1417,1419,1422,1423,1424,1425,1426,1427,1430,1432,1433,1435,1436,1437,1438,1439,1441,1442,1443,1444,1446,1447,1449,1450,1451,1454,1456,1458,1459,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1478,1479,1480,1481,1483,1484,1485,1486,1488,1489,1490,1491,1492,1493,1494,1496,1497,1498,1500,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1516,1517,1518,1519,1520,1521,1523,1524,1526,1527,1528,1529,1530,1531,1532,1533,1534,1535,1536,1537,1539,1540,1542,1544,1545,1547,1549,1550,1552,1554,1557,1559,1561,1562,1563,1564,1567,1568,1569,1570,1571,1573,1576,1577,1578,1579,1581,1582,1583,1584,1585,1586,1587,1588,1589,1591,1592,1593,1594,1595,1596,1599,1600,1601,1603,1604,1605,1606,1607,1608,1610,1616,1619,1621,1622,1623,1624,1626,1627,1628,1629,1630,1632,1634,1635,1636,1637,1638,1639,1640,1641,1642,1644,1645,1646,1647,1648,1649,1650,1651,1652,1653,1654,1655,1656,1658,1659,1661,1662,1663,1664,1665,1666,1668,1669,1670,1672,1675,1676,1677,1678,1680,1684,1686,1687,1688,1689,1690,1692,1694,1695,1697,1698,1699,1701,1702,1704,1705,1706,1707,1708,1709,1710,1712,1714,1715,1716,1721,1722,1723,1724,1726,1727,1728,1729,1730,1731,1732,1733,1736,1737,1738,1739,1740,1741,1742,1743,1746,1747,1748,1750,1751,1753,1755,1757,1758,1759,1760,1761,1762,1763,1764,1765,1766,1767,1768,1771,1773,1777,1778,1779,1780,1781,1782,1784,1785,1787,1788,1789,1790,1791,1792,1794,1795,1796,1797,1798,1799,1800,1801,1802,1806,1807,1809,1811,1812,1813,1814,1815,1816,1817,1819,1821,1822,1823,1825,1826,1828,1829,1831,1832,1833,1834,1835,1836,1837,1838,1839,1841,1844,1845,1847,1848,1850,1851,1852,1853,1854,1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1870,1871,1872,1873,1874,1875,1876,1878,1879,1880,1881,1882,1884,1885,1886,1887,1888,1890,1891,1892,1894,1895,1896,1898,1900,1903,1904,1905,1908,1909,1910,1911,1912,1913,1914,1915,1917,1918,1919,1920,1922,1923,1924,1926,1927,1928,1929,1930,1931,1933,1940,1941,1942,1946,1947,1948,1949,1950,1953,1954,1955,1956,1957,1958,1959,1961,1962,1963,1964,1965,1967,1968,1971,1972,1973,1975,1976,1977,1978,1979,1980,1981,1982,1983,1986,1987,1988,1989,1990,1992,1993,1994,1995,1997,1998,1999,2000,2001,2002,2004,2007,2008,2009,2010,2011,2014,2015,2016,2017,2019,2021,2022,2023,2024,2025,2026,2027,2028,2030,2031,2033,2034,2036,2037,2038,2039,2040,2041,2042,2044,2045,2046,2048,2049,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2066,2067,2068,2069,2070,2071,2073,2075,2076,2077,2078,2079,2080,2081,2082,2083,2085,2087,2088,2089,2090,2093,2095,2096,2098,2099,2100,2102,2104,2105,2106,2107,2108,2110,2111,2112,2115,2116,2118,2121,2122,2123,2124,2125,2128,2129,2130,2132,2133,2134,2135,2136,2137,2139,2141,2142,2146,2147,2148,2149,2150,2151,2152,2153,2154,2155,2157,2158,2159,2161,2162,2163,2165,2166,2168,2169,2170,2171,2172,2173,2176,2178,2179,2180,2181,2182,2185,2186,2187,2189,2190,2191,2192,2193,2195,2196,2197,2198,2199,2203,2204,2206,2207,2209,2212,2213,2214,2215,2216,2217,2219,2220,2221,2222,2223,2225,2226,2227,2228,2229,2230,2231,2232,2233,2235,2236,2237,2238,2239,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,2252,2253,2254,2257,2258,2259,2260,2262,2263,2264,2265,2266,2267,2268,2269,2271,2272,2274,2275,2276,2277,2278,2279,2280,2281,2283,2284,2286,2287,2289,2290,2291,2294,2295,2296,2297,2298,2299,2300,2301,2302,2305,2307,2308,2311,2312,2313,2314,2315,2316,2317,2318,2319,2320,2321,2322,2324,2325,2326,2328,2329,2330,2332,2333,2334,2335,2337,2338,2340,2341,2342,2345,2346,2347,2350,2352,2353,2354,2355,2357,2360,2361,2362,2363,2364,2366,2367,2369,2370,2371,2372,2373,2375,2377,2378,2379,2380,2382,2383,2384,2385,2386,2387,2388,2390,2391,2392,2393,2394,2395,2396,2397,2399,2401,2404,2405,2406,2407,2408,2409,2410,2411,2413,2414,2415,2416,2419,2420,2422,2423,2424,2425,2426,2427,2429,2430,2431,2432,2435,2436,2439,2440,2441,2442,2443,2445,2446,2448,2449,2450,2452,2453,2454,2456,2457,2458,2459,2460,2462,2463,2464,2468,2469,2470,2471,2472,2473,2476,2477,2478,2479,2480,2483,2486,2489,2490,2491,2493,2494,2495,2496,2497,2498,2499,2500,2502,2504,2505,2506,2507,2508,2509,2510,2513,2514,2515,2516,2517,2518,2519,2520,2521,2522,2524,2525,2527,2528,2529,2531,2533,2534,2535,2536,2537,2538,2540,2542,2543,2544,2547,2550,2551,2552,2553,2554,2555,2556,2557,2561,2562,2563,2564,2565,2566,2567,2568,2569,2571,2572,2573,2574,2575,2576,2577,2578,2579,2580,2581,2582,2583,2585,2587,2589,2590,2591,2593,2595,2596,2597,2599,2600,2602,2603,2604,2605,2606,2607,2609,2612,2613,2614,2616,2619,2620,2621,2623,2624,2625,2626,2627,2629,2630,2634,2635,2636,2639,2643,2645,2646,2647,2648,2649,2651,2652,2653,2654,2655,2656,2657,2658,2659,2660,2661,2662,2664,2665,2667,2668,2671,2672,2673,2674,2675,2677,2678,2679,2681,2682,2683,2684,2685,2686,2687,2688,2690,2691,2692,2694,2696,2697,2698,2700,2701,2702,2703,2704,2705,2706,2708,2710,2711,2713,2714,2715,2716,2718,2719,2720,2722,2723,2724,2725,2726,2727,2728,2729,2730,2731,2732,2733,2734,2735,2736,2737,2739,2740,2741,2742,2743,2744,2745,2746,2747,2749,2750,2751,2752,2753,2755,2756,2757,2758,2759,2760,2761,2762,2763,2764,2765,2767,2768,2769,2770,2771,2772,2774,2775,2778,2779,2780,2781,2782,2783,2784,2785,2787,2788,2790,2792,2793,2794,2797,2801,2802,2803,2804,2805,2808,2809,2810,2811,2812,2813,2814,2816,2819,2821,2822,2823,2824,2825,2826,2827,2829,2830,2831,2832,2833,2834,2835,2836,2837,2838,2840,2841,2843,2844,2845,2847,2849,2850,2851,2852,2853,2854,2855,2856,2858,2859,2860,2861,2862,2864,2865,2866,2868,2869,2870,2871,2872,2873,2874,2875,2876,2877,2878,2880,2881,2882,2883,2884,2885,2887,2888,2889,2891,2892,2894,2895,2896,2898,2899,2900,2901,2902,2903,2905,2906,2907,2910,2911,2913,2914,2915,2917,2919,2920,2924,2926,2927,2930,2931,2932,2933,2935,2936,2938,2939,2940,2941,2942,2944,2945,2946,2947,2948,2949,2951,2952,2953,2954,2956,2957,2958,2959,2960,2961,2962,2965,2967,2969,2970,2972,2973,2975,2976,2977,2979,2980,2981,2982,2987,2988,2990,2991,2992,2993,2994,2996,2997,2998,3000,3001,3002,3003,3004,3005,3006,3007,3008,3009,3010,3011,3013,3014,3015,3017,3019,3020,3021,3023,3024,3025,3026,3027,3028,3029,3031,3032,3033,3035,3036,3037,3038,3040,3041,3042,3045,3046,3047,3049,3050,3051,3052,3053,3054,3056,3057,3059,3060,3062,3063,3064,3065,3066,3067,3069,3071,3072,3073,3074,3075,3076,3078,3080,3081,3082,3084,3085,3087,3088,3089,3091,3092,3093,3094,3095,3096,3097,3098,3099,3101,3104,3107,3108,3109,3112,3113,3114,3115,3118,3119,3120,3121,3123,3124,3125,3126,3127,3128,3130,3131,3132,3134,3135,3136,3139,3140,3142,3143,3146,3147,3148,3150,3151,3153,3154,3155,3156,3159,3160,3161,3162,3163,3164,3168,3172,3173,3174,3175,3176,3177,3178,3179,3180,3181,3183,3184,3185,3189,3191,3192,3193,3195,3196,3197,3198,3201,3202,3205,3206,3207,3208,3209,3210,3211,3214,3216,3219,3220,3221,3222,3223,3224,3225,3226,3228,3229,3230,3231,3232,3233,3234,3235,3236,3237,3238,3239,3240,3241,3243,3244,3245,3246,3248,3249,3250,3252,3253,3254,3255,3257,3258,3261,3262,3263,3265,3266,3267,3269,3270,3272,3273,3274,3275,3277,3278,3279,3281,3283,3284,3285,3286,3287,3290,3291,3292,3294,3295,3296,3298,3299,3300,3301,3302,3304,3307,3308,3309,3310,3313,3315,3316,3318,3320,3321,3323,3325,3326,3327,3328,3329,3331,3333,3335,3336,3337,3338,3339,3340,3341,3342,3343,3347,3348,3349,3350,3351,3353,3358,3359,3361,3362,3363,3364,3365,3366,3367,3368,3369,3371,3372,3374,3376,3377,3379,3380,3381,3382,3384,3385,3387,3388,3389,3390,3391,3393,3395,3396,3397,3398,3399,3400,3403,3404,3406,3408,3413,3415,3416,3417,3421,3422,3424,3427,3428,3430,3431,3433,3434,3436,3439,3440,3442,3443,3445,3446,3447,3448,3449,3451,3452,3454,3455,3456,3457,3459,3461,3462,3463,3464,3465,3466,3468,3469,3470,3471,3472,3473,3474,3475,3478,3479,3480,3482,3483,3484,3485,3486,3487,3489,3490,3491,3492,3494,3496,3497,3499,3500,3501,3503,3504,3505,3507,3509,3510,3511,3512,3514,3518,3519,3520,3521,3522,3526,3528,3529,3530,3531,3532,3533,3534,3535,3536,3538,3539,3540,3543,3546,3547,3548,3550,3551,3554,3557,3558,3560,3561,3562,3563,3566,3567,3568,3569,3570,3571,3573,3574,3579,3580,3581,3582,3583,3584,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3599,3600,3601,3603,3604,3605,3607,3609,3610,3611,3612,3613,3614,3615,3616,3619,3620,3622,3624,3625,3626,3627,3628,3629,3630,3632,3633,3634,3635,3637,3641,3642,3644,3645,3647,3648,3649,3651,3652,3653,3654,3656,3658,3660,3661,3662,3663,3664,3665,3667,3668,3669,3673,3674,3675,3676,3677,3678,3679,3680,3681,3682,3683,3684,3685,3686,3687,3689,3690,3692,3693,3694,3695,3696,3697,3698,3699,3700,3701,3702,3703,3705,3706,3707,3711,3712,3714,3715,3716,3718,3722,3723,3724,3725,3726,3727,3728,3729,3732,3733,3734,3735,3736,3737,3738,3739,3741,3742,3744,3746,3747,3748,3749,3750,3751,3752,3753,3754,3756,3757,3758,3760,3762,3763,3764,3765,3766,3767,3768,3771,3775,3776,3777,3778,3780,3781,3783,3784,3785,3788,3789,3790,3791,3792,3794,3795,3796,3797,3798,3799,3801,3803,3804,3805,3806,3808,3809,3810,3811,3812,3813,3814,3815,3817,3819,3820,3822,3823,3824,3825,3826,3827,3828,3829,3830,3831,3832,3834,3837,3838,3839,3840,3841,3842,3846,3847,3849,3851,3852,3853,3854,3855,3857,3858,3860,3862,3863,3865,3866,3867,3868,3870,3871,3873,3874,3875,3877,3878,3882,3885,3886,3887,3888,3890,3891,3892,3894,3895,3896,3897,3898,3899,3900,3901,3902,3903,3904,3906,3908,3909,3910,3911,3912,3913,3914,3915,3916,3917,3918,3919,3920,3921,3923,3925,3926,3927,3928,3930,3932,3933,3934,3935,3937,3938,3940,3941,3942,3944,3945,3946,3947,3948,3949,3950,3951,3952,3954,3955,3957,3959,3960,3961,3963,3964,3966,3968,3969,3970,3971,3972,3973,3974,3976,3977,3978,3979,3980,3981,3982,3983,3984,3985,3986,3987,3988,3990,3992,3994,3997,4000,4001,4002,4004,4005,4006,4007,4008,4011,4012,4014,4015,4016,4017,4018,4022,4023,4025,4026,4027,4029,4031,4032,4033,4034,4035,4036,4037,4038,4039,4040,4041,4042,4043,4044,4045,4046,4047,4048,4049,4053,4054,4056,4057,4058,4059,4060,4061,4062,4063,4065,4066,4067,4068,4070,4071,4073,4074,4075,4076,4077,4078,4079,4080,4081,4084,4085,4086,4088,4090,4091,4092,4094,4095,4096,4097,4098,4101,4102,4103,4104,4105,4106,4107,4108,4109,4110,4113,4114,4115,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4130,4131,4132,4133,4136,4137,4138,4139,4140,4141,4145,4146,4147,4148,4149,4151,4152,4153,4154,4155,4156,4157,4158,4160,4161,4163,4164,4166,4167,4168,4169,4170,4171,4172,4173,4174,4175,4176,4177,4178,4179,4180,4181,4182,4183,4185,4186,4187,4188,4189,4190,4191,4192,4194,4195,4196,4197,4198,4199,4201,4202,4203,4204,4205,4206,4208,4209,4210,4211,4212,4213,4214,4215,4216,4217,4218,4219,4220,4221,4222,4223,4224,4229,4231,4232,4233,4234,4235,4236,4237,4239,4240,4241,4242,4243,4244,4245,4246,4248,4249,4250,4251,4252,4253,4254,4255,4257,4258,4259,4260,4261,4262,4263,4264,4265,4266,4267,4268,4269,4270,4272,4273,4274,4276,4277,4279,4280,4281,4282,4284,4285,4286,4289,4290,4291,4292,4293,4295,4296,4297,4298,4299,4301,4302,4305,4306,4307,4308,4309,4311,4312,4313,4315,4318,4319,4321,4322,4323,4327,4328,4329,4331,4332,4333,4335,4338,4339,4340,4341,4342,4343,4344,4345,4346,4347,4348,4350,4351,4352,4353,4354,4355,4356,4358,4359,4360,4361,4363,4364,4367,4368,4370,4371,4372,4374,4375,4379,4380,4381,4382,4383,4384,4385,4386,4389,4390,4391,4393,4394,4395,4396,4397,4398,4399,4400,4401,4402,4403,4404,4405,4406,4408,4409,4411,4413,4414,4415,4416,4417,4420,4421,4423,4425,4427,4428,4430,4431,4432,4433,4435,4436,4438,4439,4440,4441,4442,4443,4444,4445,4446,4447,4448,4449,4453,4454,4456,4461,4463,4464,4465,4468,4469,4470,4472,4473,4474,4475,4476,4481,4483,4484,4485,4486,4487,4488,4489,4491,4492,4494,4495,4497,4498,4499,4500,4501,4502,4503,4504,4506,4507,4508,4509,4510,4511,4512,4513,4515,4516,4517,4518,4519,4520,4523,4524,4525,4526,4527,4528,4529,4531,4532,4534,4537,4538,4539,4540,4541,4543,4544,4545,4546,4547,4548,4549,4550,4551,4553,4554,4555,4558,4559,4560,4561,4563,4565,4566,4567,4568,4569,4570,4572,4573,4574,4576,4577,4578,4580,4583,4584,4586,4587,4588,4589,4590,4591,4592,4593,4595,4596,4597,4598,4599,4600,4601,4602,4603,4604,4605,4606,4607,4608,4610,4611,4612,4613,4615,4616,4618,4619,4620,4623,4625,4626,4627,4628,4629,4632,4633,4634,4635,4636,4637,4638,4639,4640,4641,4642,4643,4645,4646,4649,4650,4653,4654,4655,4656,4657,4658,4660,4661,4662,4664,4666,4668,4669,4670,4672,4673,4674,4675,4676,4679,4680,4682,4683,4684,4686,4688,4689,4690,4692,4693,4694,4695,4696,4698,4699,4700,4702,4704,4705,4707,4708,4710,4711,4712,4713,4715,4716,4717,4719,4721,4722,4723,4724,4727,4729,4730,4731,4733,4735,4739,4740,4742,4743,4746,4747,4748,4749,4752,4754,4757,4758,4759,4760,4764,4765,4767,4768,4771,4773,4774,4775,4777,4778,4779,4780,4782,4783,4784,4785,4786,4787,4789,4790,4791,4793,4794,4795,4796,4797,4798,4799,4801,4802,4803,4805,4806,4808,4809,4810,4811,4812,4813,4814,4815,4817,4818,4819,4820,4821,4822,4823,4824,4825,4827,4828,4829,4830,4831,4832,4833,4834,4835,4836,4837,4840,4841,4843,4844,4845,4848,4849,4850,4851,4854,4855,4856,4857,4859,4860,4861,4862,4863,4864,4865,4868,4871,4872,4873,4874,4876,4877,4878,4879,4880,4881,4883,4886,4887,4888,4889,4890,4891,4895,4896,4898,4899,4900,4901,4902,4903,4905,4906,4908,4909,4910,4912,4913,4914,4915,4917,4919,4921,4922,4923,4924,4926,4927,4928,4929,4930,4931,4932,4935,4936,4937,4938,4941,4942,4944,4945,4946,4948,4949,4952,4953,4954,4955,4956,4957,4958,4959,4961,4962,4963,4965,4967,4968,4969,4970,4972,4973,4974,4976,4977,4979,4980,4983,4985,4986,4988,4989,4990,4992,4994,4995,4996,4997,5000,5004,5005,5006,5007,5008,5009,5011,5013,5014,5016,5017,5019,5020,5021,5022,5023,5024,5025,5027,5028,5030,5032,5033,5034,5036,5037,5038,5039,5040,5041,5042,5044,5045,5046,5047,5048,5049,5051,5052,5053,5054,5055,5056,5058,5059,5060,5061,5062,5063,5064,5065,5067,5068,5069,5070,5072,5073,5074,5075,5077,5078,5079,5080,5081,5082,5083,5085,5086,5087,5088,5089,5090,5092,5093,5095,5096,5097,5098,5099,5102,5103,5105,5106,5107,5108,5109,5110,5111,5112,5113,5114,5115,5116,5117,5118,5119,5120,5121,5122,5124,5125,5126,5127,5128,5129,5132,5133,5134,5135,5136,5139,5140,5142,5145,5147,5149,5151,5152,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164,5165,5167,5168,5170,5171,5173,5175,5176,5177,5179,5181,5182,5184,5185,5187,5188,5191,5192,5193,5194,5195,5196,5199,5200,5202,5203,5204,5205,5206,5208,5209,5211,5214,5215,5217,5219,5220,5221,5222,5224,5225,5226,5227,5229,5231,5232,5233,5234,5235,5236,5237,5238,5239,5240,5241,5243,5244,5246,5248,5249,5250,5251,5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5265,5266,5267,5268,5269,5270,5272,5274,5275,5278,5279,5280,5281,5282,5284,5285,5286,5287,5288,5290,5292,5293,5294,5295,5296,5298,5299,5300,5301,5302,5303,5304,5305,5311,5312,5314,5316,5317,5318,5319,5320,5321,5322,5323,5325,5326,5327,5328,5329,5330,5333,5334,5335,5336,5337,5338,5339,5340,5341,5343,5344,5345,5346,5347,5348,5349,5353,5354,5355,5356,5357,5358,5359,5360,5361,5363,5365,5366,5367,5368,5369,5370,5372,5374,5375,5377,5378,5379,5380,5382,5383,5384,5385,5386,5387,5389,5390,5391,5394,5396,5397,5398,5400,5401,5403,5404,5405,5406,5407,5408,5409,5410,5411,5412,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424,5425,5427,5429,5430,5431,5432,5433,5435,5437,5439,5440,5441,5442,5444,5445,5446,5447,5448,5449,5450,5451,5455,5460,5461,5462,5463,5464,5467,5468,5469,5471,5472,5473,5474,5475,5477,5478,5479,5480,5481,5482,5483,5484,5485,5487,5489,5490,5491,5492,5493,5494,5495,5497,5498,5499,5500,5501,5502,5503,5504,5505,5506,5508,5509,5510,5512,5513,5514,5515,5516,5519,5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536,5537,5538,5539,5540,5541,5542,5543,5544,5546,5548,5550,5552,5553,5554,5556,5557,5560,5562,5564,5565,5566,5567,5568,5569,5570,5571,5572,5574,5575,5576,5577,5578,5580,5582,5584,5586,5587,5588,5590,5591,5593,5594,5595,5596,5597,5598,5599,5600,5601,5602,5603,5606,5607,5608,5609,5612,5613,5614,5615,5616,5617,5618,5619,5620,5621,5622,5623,5625,5627,5628,5629,5630,5631,5633,5634,5635,5636,5637,5638,5639,5641,5642,5643,5644,5645,5646,5647,5648,5649,5650,5652,5653,5654,5656,5657,5658,5659,5660,5662,5663,5665,5666,5667,5668,5670,5672,5674,5675,5676,5677,5678,5679,5681,5683,5684,5685,5686,5687,5690,5692,5694,5695,5697,5698,5699,5700,5703,5704,5705,5707,5709,5710,5711,5712,5713,5714,5716,5717,5719,5720,5722,5723,5726,5727,5728,5729,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744,5745,5747,5748,5749,5751,5752,5753,5754,5755,5756,5757,5758,5759,5760,5762,5763,5764,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5777,5778,5779,5780,5781,5783,5784,5785,5786,5788,5790,5793,5794,5795,5797,5798,5800,5801,5802,5803,5804,5805,5806,5807,5809,5811,5812,5813,5814,5815,5817,5818,5819,5820,5821,5822,5824,5825,5828,5829,5830,5831,5832,5833,5835,5837,5838,5839,5840,5842,5843,5844,5845,5846,5847,5850,5853,5854,5855,5856,5857,5858,5860,5861,5862,5864,5866,5868,5869,5870,5871,5873,5875,5877,5878,5879,5880,5883,5885,5886,5887,5888,5891,5892,5893,5894,5895,5896,5897,5898,5900,5901,5902,5903,5904,5905,5906,5907,5908,5909,5911,5912,5913,5917,5918,5919,5920,5922,5924,5925,5926,5927,5928,5929,5930,5932,5933,5934,5936,5937,5938,5943,5944,5946,5948,5953,5954,5955,5956,5957,5959,5960,5961,5963,5964,5965,5966,5967,5969,5971,5972,5973,5974,5976,5977,5978,5979,5981,5982,5983,5984,5986,5987,5988,5989,5990,5991,5992,5993,5997,5998,5999,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016,6019,6020,6021,6022,6024,6026,6027,6028,6029,6030,6032,6033,6034,6035,6036,6037,6039,6040,6041,6042,6043,6044,6045,6047,6048,6049,6050,6051,6052,6053,6056,6057,6058,6060,6061,6062,6063,6064,6065,6066,6067,6068,6069,6070,6074,6076,6077,6078,6081,6082,6084,6085,6086,6087,6088,6089,6090,6091,6092,6094,6095,6096,6097,6100,6101,6103,6104,6106,6107,6108,6109,6110,6111,6112,6113,6114,6115,6116,6117,6119,6120,6121,6123,6124,6125,6126,6127,6128,6129,6130,6133,6134,6135,6136,6137,6138,6142,6143,6144,6145,6146,6147,6148,6149,6150,6151,6152,6153,6154,6155,6156,6158,6159,6160,6161,6162,6163,6164,6167,6169,6171,6172,6173,6175,6176,6177,6178,6179,6180,6182,6184,6185,6186,6187,6188,6189,6190,6192,6194,6195,6196,6197,6198,6199,6200,6201,6202,6203,6204,6206,6207,6209,6211,6212,6214,6215,6216,6219,6220,6221,6223,6224,6225,6226,6227,6231,6234,6235,6237,6240,6241,6243,6246,6248,6250,6251,6252,6253,6254,6255,6256,6257,6258,6259,6260,6261,6262,6263,6264,6266,6268,6270,6271,6273,6276,6278,6279,6280,6282,6284,6286,6288,6289,6292,6294,6295,6296,6298,6299,6302,6304,6305,6308,6310,6311,6312,6313,6315,6316,6317,6320,6321,6322,6323,6324,6325,6327,6328,6329,6330,6331,6332,6333,6335,6336,6337,6338,6339,6341,6342,6345,6346,6348,6349,6350,6351,6352,6354,6356,6357,6358,6359,6361,6362,6363,6364,6365,6366,6367,6369,6370,6371,6372,6373,6374,6375,6377,6380,6381,6382,6383,6384,6386,6387,6389,6390,6391,6393,6395,6396,6397,6399,6400,6401,6402,6403,6407,6408,6409,6410,6412,6413,6415,6416,6417,6418,6419,6421,6422,6423,6424,6427,6428,6429,6430,6432,6433,6434,6435,6437,6438,6439,6440,6441,6442,6443,6444,6445,6446,6447,6449,6451,6452,6453,6454,6456,6457,6458,6459,6460,6461,6462,6463,6465,6468,6469,6472,6474,6475,6476,6477,6478,6479,6480,6482,6483,6484,6485,6487,6489,6491,6494,6496,6497,6498,6500,6501,6502,6503,6505,6507,6508,6509,6511,6512,6514,6516,6517,6519,6520,6521,6523,6524,6525,6526,6527,6528,6530,6531,6532,6533,6534,6535,6536,6538,6539,6540,6542,6543,6544,6545,6546,6548,6550,6551,6553,6554,6555,6557,6559,6561,6563,6565,6566,6567,6568,6570,6571,6572,6574,6575,6578,6580,6582,6584,6585,6586,6587,6588,6590,6591,6592,6593,6594,6595,6596,6597,6599,6600,6601,6602,6603,6604,6608,6609,6610,6611,6613,6615,6618,6619,6621,6622,6624,6626,6628,6629,6630,6631,6632,6633,6636,6638,6639,6640,6642,6643,6644,6645,6647,6648,6649,6650,6652,6653,6655,6656,6658,6659,6660,6663,6666,6667,6669,6670,6671,6672,6673,6675,6676,6678,6679,6681,6683,6686,6687,6689,6690,6692,6693,6694,6695,6696,6697,6700,6701,6702,6704,6705,6706,6707,6709,6710,6711,6712,6713,6714,6715,6716,6719,6720,6721,6722,6723,6724,6725,6726,6727,6728,6729,6730,6731,6733,6735,6737,6738,6739,6740,6741,6743,6744,6745,6746,6747,6748,6749,6753,6754,6755,6758,6759,6760,6762,6763,6764,6765,6766,6767,6769,6770,6771,6772,6773,6774,6775,6776,6777,6778,6782,6783,6784,6785,6786,6787,6788,6789,6790,6791,6792,6794,6795,6796,6797,6798,6800,6801,6802,6803,6805,6806,6807,6809,6810,6811,6812,6813,6814,6815,6818,6819,6820,6821,6822,6826,6827,6829,6830,6831,6832,6835,6836,6837,6839,6840,6842,6843,6844,6846,6847,6849,6850,6851,6852,6853,6855,6859,6860,6861,6862,6864,6865,6867,6868,6870,6871,6872,6873,6874,6876,6877,6880,6881,6882,6884,6885,6886,6887,6888,6891,6892,6893,6897,6898,6900,6901,6902,6903,6904,6907,6909,6912,6914,6915,6916,6917,6918,6919,6920,6921,6923,6925,6927,6928,6930,6932,6933,6934,6935,6936,6937,6938,6939,6940,6941,6942,6943,6944,6945,6947,6948,6949,6952,6953,6954,6955,6956,6958,6960,6961,6962,6963,6964,6965,6966,6967,6969,6971,6973,6974,6977,6978,6979,6980,6981,6982,6985,6987,6988,6990,6991,6992,6993,6994,6995,6996,6997,6998,7000,7001,7003,7005,7006,7007,7008,7009,7010,7012,7013,7014,7015,7017,7018,7019,7020,7021,7022,7023,7024,7025,7027,7028,7029,7030,7032,7033,7034,7035,7037,7039,7041,7042,7044,7045,7046,7048,7049,7050,7052,7054,7055,7056,7058,7059,7060,7061,7062,7063,7064,7065,7066,7067,7068,7069,7070,7071,7072,7073,7078,7080,7082,7084,7085,7087,7088,7089,7090,7091,7093,7094,7095,7096,7097,7098,7099,7102,7103,7104,7107,7108,7109,7113,7115,7116,7117,7118,7119,7121,7122,7123,7126,7128,7129,7131,7132,7133,7134,7135,7136,7137,7138,7140,7142,7143,7145,7146,7147,7149,7150,7151,7152,7153,7154,7155,7156,7157,7158,7159,7160,7162,7164,7165,7166,7167,7169,7170,7172,7173,7174,7175,7176,7177,7178,7180,7181,7182,7183,7184,7185,7186,7188,7189,7190,7192,7195,7197,7198,7199,7201,7202,7203,7204,7205,7206,7207,7208,7209,7210,7212,7213,7214,7215,7216,7217,7218,7220,7221,7223,7224,7225,7226,7227,7228,7229,7230,7232,7233,7234,7235,7236,7237,7238,7239,7241,7242,7246,7247,7248,7249,7250,7251,7253,7254,7255,7256,7257,7259,7260,7261,7262,7263,7264,7266,7267,7268,7269,7270,7271,7272,7274,7275,7276,7277,7279,7280,7281,7283,7284,7285,7286,7287,7289,7290,7294,7298,7299,7300,7301,7304,7305,7306,7307,7308,7309,7310,7311,7313,7314,7315,7317,7322,7323,7324,7326,7327,7328,7329,7330,7331,7332,7334,7335,7336,7337,7338,7339,7340,7341,7342,7343,7344,7345,7347,7348,7351,7352,7357,7359,7360,7361,7362,7363,7364,7365,7366,7367,7369,7371,7372,7373,7374,7375,7376,7380,7382,7383,7384,7385,7386,7387,7388,7391,7392,7395,7396,7399,7400,7401,7403,7406,7407,7408,7410,7411,7412,7415,7416,7420,7423,7425,7428,7429,7430,7431,7432,7433,7435,7436,7437,7438,7439,7440,7441,7442,7445,7447,7448,7451,7452,7454,7455,7456,7457,7461,7462,7464,7465,7467,7468,7469,7471,7472,7474,7475,7476,7477,7478,7479,7480,7481,7482,7483,7484,7485,7486,7487,7489,7490,7491,7492,7493,7495,7496,7498,7499,7501,7503,7506,7507,7508,7509,7510,7511,7512,7513,7514,7515,7516,7519,7520,7521,7522,7523,7524,7525,7527,7528,7529,7531,7533,7534,7535,7536,7537,7541,7542,7543,7544,7546,7549,7550,7551,7552,7553,7554,7555,7556,7558,7559,7560,7561,7562,7564,7565,7566,7567,7568,7569,7572,7573,7574,7576,7577,7578,7579,7580,7581,7583,7584,7585,7587,7589,7590,7591,7592,7593,7596,7597,7599,7600,7601,7602,7605,7606,7609,7611,7612,7614,7615,7617,7618,7619,7621,7623,7624,7625,7628,7629,7630,7632,7633,7635,7636,7638,7639,7641,7642,7643,7645,7646,7647,7648,7649,7651,7652,7653,7654,7656,7657,7658,7659,7661,7663,7664,7665,7666,7667,7668,7669,7670,7671,7672,7675,7676,7677,7678,7679,7680,7681,7683,7685,7686,7687,7688,7689,7690,7691,7692,7693,7694,7695,7696,7698,7700,7701,7702,7703,7704,7706,7708,7709,7710,7711,7714,7715,7716,7718,7719,7721,7723,7724,7727,7728,7729,7731,7732,7734,7735,7737,7739,7740,7741,7742,7743,7744,7745,7747,7748,7749,7752,7753,7754,7755,7756,7759,7761,7762,7763,7766,7767,7768,7770,7772,7773,7774,7775,7777,7778,7779,7780,7784,7785,7786,7787,7788,7790,7791,7792,7793,7795,7796,7797,7798,7800,7801,7802,7804,7805,7806,7808,7810,7811,7812,7813,7814,7815,7816,7817,7818,7819,7820,7821,7824,7825,7826,7827,7829,7830,7831,7832,7835,7837,7841,7842,7843,7844,7845,7850,7851,7852,7853,7854,7855,7857,7858,7859,7860,7861,7865,7867,7868,7869,7870,7871,7873,7874,7875,7876,7877,7878,7879,7882,7883,7884,7885,7886,7887,7888,7889,7892,7893,7894,7895,7897,7898,7899,7900,7901,7902,7904,7906,7907,7909,7910,7911,7913,7914,7915,7916,7917,7918,7920,7921,7922,7923,7924,7925,7926,7928,7929,7932,7934,7935,7936,7938,7939,7940,7941,7942,7944,7945,7946,7947,7948,7949,7953,7954,7955,7957,7958,7959,7960,7961,7962,7963,7964,7965,7966,7969,7970,7971,7972,7973,7974,7975,7976,7977,7978,7979,7980,7982,7983,7986,7987,7988,7989,7990,7991,7993,7995,7996,7997,7998,7999,8000,8001,8004,8005,8006,8007,8011,8013,8014,8015,8016,8018,8019,8020,8021,8022,8023,8024,8025,8026,8027,8028,8029,8030,8031,8032,8033,8034,8035,8036,8037,8040,8041,8042,8043,8044,8045,8046,8047,8048,8050,8051,8052,8053,8054,8055,8058,8061,8062,8063,8064,8065,8066,8067,8068,8069,8071,8072,8073,8074,8076,8078,8079,8080,8081,8083,8084,8085,8086,8087,8088,8089,8090,8092,8093,8094,8095,8096,8097,8099,8102,8103,8104,8106,8107,8108,8109,8110,8112,8113,8114,8115,8116,8117,8118,8119,8120,8121,8123,8124,8125,8126,8128,8129,8130,8133,8134,8136,8137,8140,8141,8143,8144,8146,8147,8148,8149,8150,8152,8153,8154,8155,8156,8157,8158,8160,8161,8162,8163,8164,8165,8167,8168,8169,8171,8172,8173,8175,8176,8177,8178,8179,8180,8181,8182,8184,8186,8187,8188,8189,8190,8191,8192,8193,8194,8195,8196,8197,8198,8200,8201,8203,8205,8208,8209,8211,8212,8215,8216,8217,8219,8220,8222,8223,8225,8227,8228,8230,8231,8232,8233,8234,8235,8236,8239,8240,8241,8242,8243,8245,8247,8248,8249,8250,8251,8252,8253,8254,8255,8256,8258,8259,8261,8262,8265,8266,8267,8268,8269,8270,8271,8273,8274,8275,8276,8277,8278,8282,8283,8284,8287,8288,8290,8292,8295,8296,8299,8300,8301,8302,8303,8304,8305,8308,8309,8310,8311,8312,8314,8315,8317,8318,8319,8321,8322,8323,8324,8325,8326,8327,8329,8330,8332,8336,8338,8339,8340,8341,8343,8344,8346,8347,8348,8349,8351,8352,8357,8359,8360,8361,8362,8363,8365,8366,8367,8369,8370,8371,8372,8373,8374,8375,8376,8377,8378,8380,8381,8383,8385,8386,8387,8388,8389,8390,8391,8392,8393,8394,8396,8398,8399,8400,8402,8404,8406,8407,8408,8409,8410,8412,8413,8414,8415,8417,8418,8420,8423,8424,8425,8426,8427,8428,8429,8430,8433,8437,8439,8441,8444,8446,8448,8450,8451,8454,8455,8456,8457,8458,8460,8461,8462,8463,8464,8465,8467,8469,8470,8471,8472,8475,8476,8477,8478,8480,8481,8482,8484,8485,8488,8489,8490,8491,8492,8493,8495,8496,8499,8500,8501,8502,8504,8505,8507,8508,8509,8511,8512,8513,8514,8516,8517,8518,8521,8523,8524,8525,8527,8528,8529,8530,8532,8534,8535,8537,8538,8540,8541,8542,8543,8544,8545,8546,8547,8548,8550,8551,8553,8554,8555,8556,8558,8561,8562,8563,8564,8565,8566,8567,8568,8569,8571,8572,8573,8574,8575,8576,8577,8578,8580,8582,8583,8584,8587,8588,8590,8591,8594,8595,8596,8598,8599,8600,8601,8602,8603,8604,8605,8606,8609,8610,8611,8612,8613,8618,8619,8620,8621,8623,8624,8625,8626,8628,8629,8630,8632,8633,8634,8636,8637,8639,8641,8642,8643,8644,8645,8646,8648,8649,8651,8652,8655,8656,8657,8659,8660,8661,8662,8663,8665,8666,8667,8668,8669,8671,8672,8674,8675,8676,8677,8678,8679,8680,8681,8683,8684,8687,8688,8689,8690,8691,8692,8695,8696,8697,8699,8700,8701,8704,8705,8706,8709,8710,8711,8712,8713,8715,8717,8719,8720,8721,8724,8725,8727,8728,8729,8731,8733,8734,8735,8736,8737,8738,8739,8740,8741,8743,8745,8750,8751,8752,8753,8755,8757,8759,8760,8762,8764,8766,8767,8768,8769,8770,8773,8774,8776,8777,8778,8781,8783,8790,8791,8792,8793,8794,8795,8798,8799,8800,8801,8806,8807,8808,8811,8812,8813,8815,8816,8818,8819,8821,8822,8823,8824,8825,8828,8829,8831,8832,8833,8835,8836,8837,8838,8839,8840,8843,8844,8845,8847,8848,8851,8853,8855,8856,8859,8863,8864,8865,8866,8868,8870,8871,8872,8873,8876,8877,8878,8880,8881,8882,8883,8886,8888,8889,8890,8891,8892,8894,8895,8896,8898,8899,8900,8902,8904,8908,8909,8910,8911,8912,8913,8914,8916,8917,8918,8919,8920,8922,8923,8925,8927,8929,8930,8931,8932,8933,8936,8938,8941,8942,8943,8944,8945,8946,8949,8952,8953,8954,8956,8957,8958,8960,8961,8962,8963,8964,8965,8967,8972,8974,8975,8977,8978,8979,8980,8982,8985,8986,8991,8992,8993,8994,8995,8996,8997,9001,9002,9004,9005,9006,9007,9008,9009,9010,9011,9012,9013,9014,9016,9017,9018,9019,9020,9021,9024,9025,9026,9028,9029,9030,9031,9032,9033,9034,9035,9036,9038,9040,9041,9043,9044,9045,9046,9047,9048,9049,9050,9051,9052,9053,9056,9057,9058,9059,9061,9062,9063,9064,9065,9066,9067,9069,9070,9071,9073,9074,9077,9078,9080,9081,9082,9084,9085,9086,9087,9088,9089,9090,9091,9092,9094,9095,9096,9097,9098,9099,9100,9101,9102,9103,9104,9105,9106,9107,9110,9115,9116,9118,9120,9123,9124,9127,9128,9129,9131,9133,9135,9136,9137,9139,9140,9141,9142,9143,9147,9148,9149,9151,9154,9158,9159,9160,9161,9162,9165,9166,9167,9169,9170,9171,9172,9174,9175,9176,9177,9178,9179,9181,9182,9184,9185,9187,9188,9189,9190,9191,9194,9195,9196,9198,9199,9200,9201,9203,9205,9207,9208,9209,9210,9211,9212,9213,9214,9215,9216,9217,9218,9219,9220,9221,9222,9224,9225,9226,9227,9229,9230,9231,9232,9233,9234,9235,9236,9237,9239,9240,9241,9244,9246,9247,9248,9250,9251,9252,9253,9254,9255,9256,9257,9258,9259,9260,9261,9263,9264,9265,9267,9268,9269,9270,9271,9272,9273,9274,9275,9276,9277,9278,9279,9281,9282,9284,9285,9286,9287,9289,9290,9292,9293,9294,9295,9297,9298,9299,9300,9301,9302,9303,9304,9305,9306,9307,9308,9309,9310,9313,9314,9315,9317,9318,9319,9320,9321,9323,9324,9325,9326,9329,9331,9332,9333,9334,9337,9338,9339,9340,9341,9343,9344,9345,9346,9347,9349,9350,9351,9352,9353,9354,9355,9357,9358,9359,9360,9361,9362,9364,9365,9366,9368,9369,9370,9371,9372,9373,9374,9376,9378,9379,9380,9382,9383,9385,9386,9387,9389,9390,9391,9392,9393,9394,9395,9397,9398,9399,9400,9403,9404,9405,9406,9407,9408,9409,9410,9411,9413,9415,9416,9417,9420,9421,9422,9423,9424,9425,9426,9427,9428,9429,9430,9431,9433,9436,9438,9439,9440,9442,9443,9444,9445,9446,9449,9452,9453,9454,9455,9456,9458,9459,9461,9462,9463,9464,9465,9468,9470,9471,9472,9473,9474,9475,9476,9477,9478,9481,9482,9483,9484,9485,9486,9489,9490,9491,9495,9497,9498,9501,9503,9505,9508,9509,9510,9511,9512,9516,9518,9519,9523,9526,9527,9528,9529,9531,9532,9535,9536,9539,9540,9541,9542,9543,9544,9545,9547,9548,9549,9550,9551,9552,9554,9555,9556,9557,9558,9559,9560,9562,9563,9565,9566,9567,9568,9569,9570,9571,9572,9573,9574,9575,9576,9578,9579,9580,9581,9584,9585,9586,9587,9588,9589,9590,9591,9592,9593,9594,9595,9598,9599,9600,9601,9602,9603,9604,9605,9606,9607,9608,9609,9610,9611,9613,9614,9615,9617,9618,9619,9621,9622,9623,9624,9625,9626,9627,9628,9629,9630,9631,9632,9633,9634,9635,9637,9638,9639,9640,9641,9642,9643,9644,9645,9646,9647,9648,9649,9650,9651,9652,9655,9656,9657,9658,9659,9662,9663,9665,9668,9669,9670,9671,9674,9675,9676,9678,9680,9683,9686,9688,9689,9690,9691,9692,9693,9694,9695,9696,9699,9700,9701,9703,9704,9705,9707,9708,9709,9710,9711,9712,9713,9714,9715,9716,9718,9719,9720,9721,9723,9724,9725,9726,9727,9728,9730,9732,9734,9735,9736,9737,9738,9739,9740,9741,9742,9743,9744,9745,9749,9750,9751,9752,9754,9755,9757,9758,9759,9760,9761,9762,9763,9764,9765,9766,9767,9768,9769,9770,9773,9774,9776,9780,9781,9782,9783,9784,9785,9787,9788,9789,9792,9793,9794,9795,9796,9797,9798,9799,9800,9801,9802,9803,9805,9806,9809,9810,9811,9812,9813,9814,9816,9817,9818,9819,9820,9823,9824,9826,9827,9828,9829,9830,9831,9832,9834,9836,9837,9838,9839,9840,9842,9843,9845,9846,9847,9849,9850,9853,9854,9856,9858,9859,9860,9861,9863,9865,9866,9869,9870,9871,9874,9875,9878,9879,9880,9881,9882,9883,9884,9885,9887,9888,9889,9890,9891,9892,9894,9895,9896,9897,9901,9902,9904,9905,9907,9908,9911,9912,9913,9914,9915,9916,9917,9920,9921,9923,9924,9926,9927,9928,9929,9930,9931,9932,9933,9934,9935,9936,9937,9941,9942,9943,9944,9945,9946,9948,9949,9950,9951,9952,9953,9954,9956,9957,9958,9963,9964,9965,9966,9967,9968,9969,9970,9971,9972,9973,9974,9975,9976,9977,9980,9981,9982,9983,9985,9986,9989,9990,9991,9992,9993,9995,9997,9998,9999] + |